ABSTRAKS
Dalam mengelola infrastruktur Teknologi Informasi (TI) dan menyediakan berbagai layanan terkait TI untuk
mendukung operasional organisasi atau perusahaan membutuhkan infrastruktur yang dapat menunjang. Selain
infrastruktur jaringan computer di butuhkan infrastruktur pada database server. Kegagalan suatu devices pada
sebuah server bisa terjadi kapan saja, jika sebuah database server mati yang disebabkan oleh suatu hal (missal:
power supply mati, kebakaran atau yang lainnya), maka pengguna tidak bisa mengakses aplikasi. selain resiko
kehilangan data yang ada pada server tersebut. Untuk mengatasi masalah tersebut salah satu teknik Clustering
Database menggunakan MySQL Cluster. Metode clustering sangat baik untuk menjamin ketersediaan layanan
yang tinggi (High-Availability) dan penanganan kegagalan sistem (failure). Jika ada salah satu server yang
mengalami kegagalan/failure maka sistem tidak akan langsung terganggu karena server lain akan tetap
berfungsi dan menggantikan kerja server utama. Kemampuan clustering memungkinkan sebuah database tetap
hidup dalam waktu yang lama.
3. Akurat dan informasi terbaru selalu tersedia b. Database server menambahkan tingkat
setiap saat. keamanan data.
4. Menghemat ruangan karena tidak perlu c. Database server menyediakan layanan database
menyediakan ruangan penyimpanan kertas management service dimana data disusun
file yang sangat banyak dengan cara tertentu sehingga meningkatkan
pencarian dan pengambilan data.
1.3. Database Management System d. Beberapa client dapat mengakses data yang
Menurut (Arbie, 2003), Database disimpan di database server dalam satu waktu
Management System (DBMS) adalah sistem tanpa saling menggangu satu sama lain.
software yang memungkinkan pengguna untuk
mendefinisikan, membuat, memelihara, dan kontrol
akses ke database. DBMS adalah software yang
berinteraksi dengan program aplikasi dan pengguna
database. Inti dari DBMS sering disebut database
engine. Mesin ini merespons perintah-perintah
khusus untuk membuat struktur database
kemudian membuat, membaca, memperbarui, dan
menghapus record-record pada sebuah database.
DBMS dapat dibeli dari sebuah vendor teknologi
database seperti Oracle, IBM, Microsoft, atau Sybase
.(Connolly & Begg, 2010) Gambar 1. Database server
Sumber (O'Brien & James, 2005)
1.4. Server
Menurut (O'Brien & James, 2005) lebih spesifik 1.6. Clustering Database
menyatakan bahwa, Server adalah komputer yang Database clustering adalah kumpulan dari
mendukung aplikasi dan telekomunikasi dalam beberapa server yang berdiri sendiri yang kemudian
jaringan, serta pembagian peralatan software, dan bekerjasama sebagai suatu sistem tunggal (Hodges,
database di antara berbagai terminal kerja dalam 2007).. Pada server database yang besar dalam
jaringan. Fungsi server secara umum dilakukan oleh pelayanannya tidak menggunakan server database
sebuah server komputer adalah sebagai berikut: tunggal, tetapi dilayani oleh sekelompok server
a. Menyimpan aplikasi dan database yang database, beberapa buah server database
dibutuhkan oleh komputer yang terhubung. dihubungkan menjadi satu pada lingkungan yang
b. Menyediakan fitur keamanan komputer. sangat kompleks. Berbagai jenis server diikat
c. Melindungi semua komputer terhubung menjadi satu untuk menjadikan suatu pelayanan
menggunakan firewall. tunggal (one stop shopping).
d. Menyediakan IP address untuk mesin Contoh arsitektur dari database cluster:
komputer terhubung. 1. Shared Disk Clusters
1.5. Database Server Arsitektur shared disk clusters
Menurut (Hodges, 2007) Database server menggunakan server-server independent dan
adalah program komputer yang menyediakan berbagi sebuah sistem penyimpanan tunggal.
layanan data lainnya ke komputer atau program Setiap server mempunyai prosesor dan memori
computer lain, Database server digunakan untuk sendiri, tetapi berbagi disk resources.
menyimpan data baik yang digunakan client secara Implementasi utama dari shared-disk clustering
langsung maupun data yang diproses oleh server adalah bukan untuk scalability. Shared-disk
aplikasi. Dalam server database tersebut, bisa berisi clustering ini diimplementasikan untuk
ratusan ataupun ribuan database dari banyak user. availability dan menambah node cadangan
Database dikelompokkan atau disimpan per user sebagai failover node.
yang memakai layanan database tersebut. Agar tidak
terjadinya pencurian data. Selain itu database server
dapat digunakan untuk beberapa kegiatan, seperti
analisis data, penyimpanan data, pengarsipan dan
lain-lain. Database server menyediakan beberapa
manfaat, diantaranya :
a. Semua data untuk organisasi dapat disimpan di
satu lokasi.
2. PEMBAHASAN
1. Tahap Desain Sistem
Perancangan clustering database server untuk
replikasi data menggunakan Mysql Cluster. MySQL
Cluster menggabungkan MySQL Server biasa
dengan sebuah mesin penyimpanan in-memory
tercluster yang dinamakan NDB. NDB berarti
bagian dari suatu rangkaian yang dikhususkan
sebagai mesin penyimpanan, sedangkan MySQL
Cluster diartikan sebagai kombinasi atau gabungan
dari MySQL dan mesin penyimpanan yang baru
tersebut. Ada tiga node yang menyusun MySQL
Gambar 6 Skema replikasi master – master Cluster, yakni:
Sumber : (Hodges, 2007) 1. Data Nodes, digunakan untuk menyimpan
semua data yang menjadi milik MySQL
Cluster. Semua data direplikasi di node-node
1.7. MySQL Clustering ini.
Menurut (Raharjo & Budi, 2011) MySQL 2. Management Server Node, digunakan untuk
mengendalikan konfigurasi sistem ketika
Cluster merupakan sebuah tipe basis data (database)
startup. Selain itu, node ini juga dapat
yang dapat beroperasi dalam ukuran data yang besar. digunakan sebagai pengidentifikasi setiap
MySQL Cluster adalah sebuah teknologi baru untuk perubahan setting yang terjadi pada cluster.
memungkinkan clustering di dalam memory 3. MySQL Server Node, berfungsi sebagai
database dalam sebuah sistem share-nothing. pintu akses untuk masuk ke dalam node-
Arsitektur share-nothing mengijinkan sistem dapat node data yang ter-cluster.
bekerja dengan hardware/perangkat keras yang
Management Server Node dan Data Node
sangat murah, dan tidak membutuhkan perangkat
dihubungkan tujuannya agar bisa terjadi
keras dan lunak dengan spesifikasi khusus. replikasi data antara kedua server tersebut
Arsitektur tersebut juga handal karena masing- dan juga berfungsi untuk mengatasi
masing komponen mempunyai memory dan disk kegagalan sistem database pada salah satu
tersendiri. MySQL cluster menggabungkan MySQL sisi server agar server yang lain bisa
server biasa dengan sebuah mesin penyimpanan in- menggantikan tugas server yang lainnya.
memory ter-cluster yang dinamakan NDB. NDB Agar perancangan itu bisa dilakukan
dengan baik digunakan teknologi MySQL
berarti bagian dari suatu rangkaian yang
Cluster. Pada tahapan pembuatan sistem
dikhususkan sebagai mesin penyimpanan, sedangkan cluster dibagi tiga bagian utama yaitu
MySQL cluster diartikan sebagai kombinasi atau Management Server Node, Data Node dan
gabungan dari MySQL dan mesin penyimpanan MySQL Server Node. Penggambaran sistem
yang baru tersebut. secara umum dapat dilihat pada gambar
berikut:
AKTIF
cluster itu sendiri dapat berjalan dengan fungsi DOWN/MATI
SINKRONISASI
sebagai replikasi data dan high availability.
Management
Server Node Web Aplication
Web Aplication
User 1 User 2
Gambar 10 Simulasi high Availability MySql Cluster
User 1 User 2
Gambar diatas menunjukan bagaimana kondisi saat
terjadi kegagalan (failure) pada MySql dan Data
Gambar 9 Simulasi arsitektur MySql Cluster Node 1. Ketika server sedang memberikan service
kepada client akan tetapi jika tiba – tiba terjadi
Gambar diatas menunjukan proses kerja MySql kegagalan (failure) maka secara otomatis
Cluster pada posisi default. User akan mengirim Management Node Server akan mengalihkan service
request kepada web aplication dan kemudian web kepada MySql dan Data Node 2. Sehingga client
aplication mengirimkannya ke Management Node tidak akan menyadari dan terganggu karena adanya
masalah atau kegagalan pada servernya
Server. Management Node Server sendiri memiliki
fungsi sebagai pengatur dan penghubung antar
kedua node lainnya. Pada posisi default, server yang Instalasi Konfigurasi Mysql
Ubuntu 16.04 LTS cluster adalah
aktif memberikan service adalah Node 1. Sedangkan
menginstal mysql
Node 2 bersifat pasif. Meskipun tidak memberikan
cluster secara manual,
service kepada user/client, Node 2 tetap melakukan bukan langsung
sinkronisasi secara real time dengan Node 1 Instalasi menginstal dari paket
sehingga data pada Node 1 akan tetap sama dengan MySQL Cluster
yang tersedia di
data yang ada pada Node 2. repository yang sudah
disediakan oleh linux.
b. Simulasi high – Availability saat terjadi Tetapi berbeda halnya
kegagalan (failure) pada salah satu server. Konfigurasi dan Starting ketika kita memakai
Management windows, cara
Cluster menginstal bisa secara
manual maupun
secara langsung
Konfigurasi dan Starting dengan menggunakan
Data Node .exe nya. Konfigurasi
ini sendiri terbagi
menjadi tiga, yaitu
pengaturan
Konfigurasi dan Starting konfigurasi di sisi
SQL Node Management Server
Node, pengaturan
konfigurasi di sisi
Node A dan
pengaturan di sisi
Testing MySQL Cluster Node B
#exportPATH=$PATH:/usr/local/mysql/bin
#echo“exportPATH=\$PATH:/usr/local/
Gambar 11 Alur simulasi pengujian sistem
mysql/bin” >> /etc/bash.bashrc
5.Memindahkan file ndb_mgm dan
3. Tahap Implementasi ndb_mgmd ke dalam direktori
/usr/local/bin.
Untuk membangun server ini penulis menggunakan # cp /usr/local/mysql/bin/ndb_mgm*
sistem operasi berbasis opensource yaitu Proxmox /usr/local/bin/
VE sebagai server virtualisasi dan linux Ubuntu # ls /usr/local/bin/ndb_mgm*
16.04 LTS 64 bit sebagai server fisik, sedangkan
pada sisi database penulis menggunakan MySql b. Konfigurasi Data Node dan SQL Node
server sebagai infrastruktur database server MySQL data node terdiri dari dua komponen
Requirements atau spesifikasi sistem minimum (node), yaitu SQL node (mysqld process) dan
yang direkomendasikan adalah sebagai berikut. data node (ndbd process). SQL node (mysqld
Komputer Server process) berfungsi sebagai pintu akses untuk
- Processor Intel Pentium 4 – 2,6 GHz masuk ke dalam node-node data yang ter-
- Hard Disk 80 GB 7200 RPM cluster. Sedangkan data node (ndbd process)
- Memory ( RAM ) 1 GB digunakan untuk menyimpan semua data yang
- Monitor menjadi milik MySQL Cluster. Semua data
direplikasi di node-node ini
- Keyboard dan Mouse 1. Membuat symbolic link atau symlink folder
Perangkat keras dan perangkat lunak yang
mysql# ln -s /opt/mysql/server-5.6/
digunakan penulis untuk implementasi dan
/usr/local/mysql
pengujian clustering database server sebagai
2. Menambahkan PATH baru untuk variabel
berikut:
PATH
Perangkat Keras #export PATH=$PATH:/usr/local/mysql/bin
1. Komputer database server
- Inter Core i5 – 2450M # echo “export PATH=\$PATH:/usr/local/
- Processor 2.50 GHz mysql/bin” >> /etc/bash.bashrc
- Hard Disk 500 GB
- Memory (RAM) 4 GB 3. Konfigurasi Data Node dan SQL Node
Perangkat Lunak Membuat group dan user
- Sistem Operasi Ubuntu Desktop 16.04 LTS # groupadd mysql
- MySql Cluster # useradd –g mysql mysql
- VirtualBox 4. Membuat database default
- Sysbench # cd /usr/local/mysql
# ./scripts/mysql_install_db --user=mysql
a. Konfigurasi Management Node 5. Mengatur ijin yang diperlukan untuk MySQL
Management Node adalah komponen pertama server dan data direktori
yang harus dimulai dalam cluster apapun. # chown -R root .
Diperlukan sebuah file konfigurasi yang
berfungsi untuk mendeklarasikan arah jalur # chown -R mysql data
node – node yang dibuat. File tersebut sangan # chgrp -R mysql
penting dalam sistem cluster karena berfungsi 6. Konfigurasi data dan SQL node
mengatur secara keseluruhan MySQL Cluster # nano /etc/my.cnf
itu sendiri. File tersebut akan diberi nama file 7. Menjalankan service ndbd pada start-up
config.ini yang disimpan pada direktori configuration
/var/lib/mysql-cluster/config.ini. # echo "/usr/local/mysql/bin/ndbd" >>
Berikut adalah tahapan konfigurasi /etc/rc.local
management node:: 8. Memindahkan file ndb_mgm dan ndb_mgmd
1. Membuat direktori mysql-cluster ke direktori /usr/local/bin
# mkdir/var/lib/mysql-cluster # cp /usr/local/mysql/bin/ndb_mgm*
2. Membuat file dan edit config.ini /usr/local/bin/
# nano /var/lib/mysql-cluster/config.ini 9. Menyalin script start-up MySQL server ke
3. Membuat symbolic link atau symlink folder direktori baru
mysql # cp support-files/mysql.server
# ln -s /opt/mysql/server-5.6/ /usr/local/mysql /etc/init.d/mysql
4. Menambahkan PATH baru untuk variabel 10. Memberi hak akses eksekusi pada file mysql
PATH # chmod +x /etc/init.d/mysql
MySQL Server
MySQL Cluster
(Default)
Gambar 13 Grafik Response time simple- Throu Throu
mode Thr Response ghput Response ghput
eads time (ms) (per time (ms) (per
sec.) sec.)
Response time merupakan rentang waktu dari 1672. 1591.
8 85.71 95,49
saat user mengirimkan request ke server hingga 72 01
server selesai merespon request tersebut. Gambar 1633. 1521.
16 166.06 199,62
16 83
4.47 memperlihatkan pengaruh penambahan threads
1668. 1353.
terhadap response time. Parameter ini akan 32 325.9 448,6
63 33
berdampak pada kecepatan akses yang dibutuhkan 1626. 1356.
suatu node cluster. Semakin kecil nilai yang 64 636.67 894,55
26 11
diperoleh menyatakan semakin baik pula kondisi 1580. 1363.
cluster tersebut. 80 815.97 1110,6
81 55
1450. 1281.
96 950.34 1417,12
25 18
1415. 1260.
112 1159.44 1678,99
36 92
1406. 1222.
128 1335.65 1977,56
27 84