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)