PRAKTIKUM BASIS DATA TERDISTRIBUSI MODUL VI FAILOVER CLUSTER
LABORATORIUM REKAYASA PERANGKAT LUNAK PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS MUHAMMADIYAH MALANG
Dokumen Laboratorium Teknik Informatika UMM @ 2014 – Modul Praktikum
By. Team Informatika UMM
Basis Data Terdistribusi (BDT)
I.
TUJUAN PRAKTIKUM 1. Mahasiswa mengetahui tentang Failover Cluster pada DBMS. 2. Mahasiswa mampu mempersiapkan kebutuhan untuk Failover Cluster. (Mengacu pada modul sebelumnya dan percobaan praktikum pada modul ini) 3. Mahasiswa mampu menerapkan teknologi Failover Cluster.
II.
III.
ALAT DAN BAHAN 1.
Komputer Set (memory>=1GB, CPU>=PIV)
2.
Web Sever Apache (Xampp / Wamp Server )
3.
Mysql Cluster
4.
Mysql Server
DASAR TEORI 1. Database Clustering Database clustering adalah kumpulan dari beberapa server yang berdiri sendiri yang kemudian bekerjasama sebagai suatu sistem tunggal (Hodges, 2007). Saat ini aplikasi database semakin berkembang, baik dalam hal kegunaan, ukuran, maupun kompleksitas. Hal ini secara langsung berdampakpada server database sebagai penyedia layanan terhadap akses database, konsekuensi dari semua itu adalah beban database server akan semakin bertambah berat dan mengakibatkan kurang optimalnya kinerja dari server tersebut. Oleh karena itu diperlukan perancangan yang tepat dan handal dalam membangun database server. Database pada masa sekarang ini dituntut agar dapat berjalan dengan cepat, mempunyai kehandalan dan keseterdiaan yang tinggi, dengan clustering database yang disimpan dapat terbagi kebeberapa mesin dan pada saat
Dokumen Laboratorium Teknik Informatika UMM @ 2014 – Modul Praktikum
By. Team Informatika UMM
Basis Data Terdistribusi (BDT)
aplikasi berjalan, semuamesin yang menyimpan data tersebut dianggap sebagai satu kesatuan. Metode clustering seperti ini sangat baik untuk load-balancing dan penanganan system failure karena kemampuan tiap mesin akan digunakan dan jika ada salah satu mesin yang mengalami failure maka system tidak akan langsung terganggu karena mesin lain akan tetap berfungsi. Kemampuan clustering memungkinkan sebuah database tetap hidup dalam waktu yang lama. Berikut adalah contoh arsitektur dari database cluster itu sendiri. a.
Shared Disk Clusters Arsitektur shared disk clusters menggunakan server-server independent dan berbagi sebuah system penyimpanan tunggal. Setiap server mempunyai prosesor dan memori sendiri, tetapi berbagi disk resources. Implementasi utama dari shared-disk clustering adalah bukan untuk scalability. Shared-disk clustering ini diimplementasikan untuk availability dan menambah node cadangan sebagai failover node.
b.
Shared Nothing Cluster Dalam arsitetur shared nothing cluster, tiapserver dalam cluster menangani prosesor, memori, storage, record locks dan transaksi yang terpisah dan melakukan koordinasi dengan server lain melalui jaringan dengan menggunakan high speed low-latency interconnect technology. Dalam proses permintaan data suatu node harus mengirimkan pesan ke node yang lain yang memiliki data yang diakses. Hal ini juga dilakukan saat koordinasi data yang dilakukan pada node yang lain seperti insert, select, update dan delete. Berbeda dengan shared disk, sharednothing didisain untuk high availability dan scalability.
2. MySQL Cluster MySQL Cluster merupakan sebuah tipe basis data (database) yang dapat beroperasi dalam ukuran data yang besar. MySQL Cluster adalah sebuah teknologi baru untuk memungkinkan clustering di dalam memory database dalam sebuah Dokumen Laboratorium Teknik Informatika UMM @ 2014 – Modul Praktikum
By. Team Informatika UMM
Basis Data Terdistribusi (BDT)
sistem share-nothing. Arsitektur share-nothing mengijinkan system dapat bekerja dengan hardware/perangkat keras yang sangat murah, dan tidak membutuhkan perangkat keras dan lunak dengan spesifikasi khusus. Arsitektur tersebut juga handal karena masing-masing komponen mempunyai memory dan disk tersendiri. 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. Sebuah MySQL Cluster terdiri dari sekumpulan komputer,
masing-masing menjalankan sejumlah
MySQL server,
proses mencakup beberapa
node-node penyimpanan untuk cluster NDB,
server-server
manajemendan program-program pengakses data yang khusus. Semua programprogram tersebut bekerja bersama-sama untuk membentuk MySQL Cluster. Ketika data
disimpan di
dalam mesin penyimpan media
NDB cluster, tabel-tabel
disimpan di dalam node-node penyimpanan pada NDB Cluster. Tabel-tabel seperti itu dapat diakses secara langsung dari semua MySQL server yang lain di dalam cluster tersebut. Data yang disimpan di dalam node-node penyimpanan pada MySQL Cluster dapat di mirror (dicerminkan), cluster tersebut dapat menangani kegagalan dari node-node penyimpanan individual dengan tidak ada dampak lain dari sejumlah transaksi dihentikan karena kegagalan proses transaksi. Di dalam konfigurasi mysql cluster itu sendiri terdapat tiga node cluster, ketiga node clusterituadalah: a. Management node(ndb_mgmd process) b. Data node(ndbd process) c. SQL node (mysqld process)
3. Pengaturan Node Sepertireplikasi
yang
ada
di
MySQL, clustering menawarkan banyak
fleksibilitas. MySQL cluster sendiri menyertakan beberapa contoh pengaturan untuk memberi anda beberapa ide tentang bagaimana cara untuk mengatur node. Pengaturan
node yang
akan dilakukan itu sendiri berdasarkan dari adanya
Dokumen Laboratorium Teknik Informatika UMM @ 2014 – Modul Praktikum
By. Team Informatika UMM
Basis Data Terdistribusi (BDT)
ketersedian data, danapa hardware yang diperlukan untuk memenuhi kebutuhan system anda. Ketika kita telah memutuskan bahwa MySQL Cluster dapat memenuhi keinginan kita, kita perlu menentukan berapa banyak mesin yang dibutuhkan untuk memenuhi kebutuhan dari sistem yang akan kita rancang dan memberikan jumlah yang tepat untuk redundansi. Berikut adalah contoh dari beberapa pengaturan node. a. Simple Arrangement b. Robust Arrangement c. Minimalist Arrangement
4. Arsitektur MySQL Cluster MySQL
Cluster merupakan sebuah
database yang
menggunakan
arsitektur shared-nothing dan antar muka SQL yang telah umum digunakan. Sistem database ini terdiri dari beberapa
node yang dapat didistribusikan ke beberapa
perangkat keras dan ke beberapa wilayah/zona yang berbeda sekaligus untuk tetap menjaga ketersediaan
data
meskipun jaringan ataupun salah satu node sedang
mengalami kegagalan (failure).
Dokumen Laboratorium Teknik Informatika UMM @ 2014 – Modul Praktikum
By. Team Informatika UMM
Basis Data Terdistribusi (BDT)
IV.
V.
PROSEDUR PRAKTIKUM 1.
Mahasiswa mengerjakan percobaan praktikum dan tugas praktikum.
2.
Mahasiswa mendemonstrasikan hasil praktikum pada dosen dan asisten.
3.
Mahasiswa membuat laporan praktikum.
PERCOBAAN PRAKTIKUM 1. Pastikan percobaan-percobaan anda pada modul sebelumnya telah berhasil ! 2. Apa yang anda ketahui tentang Failover Cluster? 3. Apa saja yang dibutuhkan untuk menerapkan suatu skema Failover Cluster ? Jelaskan juga masing-masing fungsinya ! 4. Buat rancangan skema Failover Clustering yang akan anda terapkan ! Beri penjelasan apa saja yang terdapat dalam skema tersebut dan mengapa anda memilih skema tersebut !
VI.
LANGKAH-LANGKAH PRAKTIKUM Download
terlebih
dahulu
MySQL
Cluster
untuk
linux
http://dev.mysql.com/downloads/cluster/
Rancangan Sistem Database Node 1 Management Node 192.168.244.128
192.168.244.129 Database Node 2 192.168.244.130
Dokumen Laboratorium Teknik Informatika UMM @ 2014 – Modul Praktikum
By. Team Informatika UMM
Basis Data Terdistribusi (BDT)
di
Management Node 1. Buat direktori di /usr/src dan pindah ke direktori tersebut
2. Copy hasil download ke /usr/src/mysql-mgm dan ekstrak file tersebut
3. Setelah diekstrak masuk ke direktori tersebut dan copy ke bin
4. Ganti hak akses folder dan hapus folder hasil download (opsional)
5. Buat file konfigurasi untuk cluster
Dokumen Laboratorium Teknik Informatika UMM @ 2014 – Modul Praktikum
By. Team Informatika UMM
Basis Data Terdistribusi (BDT)
6. Start management node dengan menuliskan perintah berikut
7. Masukkan ndb_mgmd ke init.d dengan perintah berikut
Database Node 1. Prosesnya hampir sama dengan management node, pertama buat grup mysql dan tambahkan user ke grup tersebut
2. Arahkan ke /usr/local dan copy mysql cluster ke folder tersebut, jika sudah ekstrak file tersebut
3. Buat symbolic link yang mengarah ke folder hasil ekstrak, setelah itu install database
4. Ganti kepemilikan grup mysql
5. Masukkan database engine ke init.d
6. Copy file bin ke /usr/bin dan buat symbolic link
7. Buat file konfigurasi untuk MySQL di /etc/ dan beri nama my.cnf Dokumen Laboratorium Teknik Informatika UMM @ 2014 – Modul Praktikum
By. Team Informatika UMM
Basis Data Terdistribusi (BDT)
8. Buat data folder untuk MySQL dan jalankan ndbd, ndbd --initial hanya dijalankan untuk pertama kali dan jika config.ini mengalami perubahan
9. Seperti biasa, masukkan ke init.d dengan sintaks
Tes dan Verifikasi 1. Pada management node ketikkan perintah ndb_mgm 2. Setelah masuk menu Management Client ketikkan show
3. Pada database node 1 masuk ke mysql, buat database baru dan buat table dengan engine ndbcluster
4. Isikan data dengan sintaks
Dokumen Laboratorium Teknik Informatika UMM @ 2014 – Modul Praktikum
By. Team Informatika UMM
Basis Data Terdistribusi (BDT)
5. Tampilkan data pada table
6. Cek pada database node 2
7. Masukkan data lagi pada tabeltes
8. Cek pada database node 1, data di node 2 akan tereplikasi otomatis ke node 1
VII. VIII.
TUGAS PRAKTIKUM KESIMPULAN
Dokumen Laboratorium Teknik Informatika UMM @ 2014 – Modul Praktikum
By. Team Informatika UMM
Basis Data Terdistribusi (BDT)