• Tidak ada hasil yang ditemukan

Installasi MariaDB Cluster pada Linux

Dalam dokumen Module MySQL-MariaDB FundamentalAndAdvanced (Halaman 149-156)

Galera Cluster untuk MySQL adalah Multimaster Cluster yang sebenarnya berdasarkan synchronous replication. Galera Cluster adalah, solusi ketersediaan tinggi yang mudah digunakan, yang menyediakan sistem uptime yang tinggi, tanpa kehilangan data dan skalabilitas untuk pertumbuhan di masa depan.

Fitur-fitur Galera Cluster • Synchronous replication

• Active-active multi-master topology • Read dan write ke semua cluster node

• Pengaturan keanggotaan cluster secara otomatis • Proses keanggotaan node secara otomatis • True parallel replication di level row

• Direct client connections

Keuntugan menggunakan Galera Cluster • Perfoma yang baik pada sisi Slave • Tidak ada transaksi yang hillang

• Skalabilitas untuk proses tulis dan baca • Latency yang kecil pada sisi client

Untuk percobaan pembuatan cluster akan menggunakan 2 buah database server yaitu Server 1, IP Address 10.11.12.1 Name: db1

Server 2, IP Address 10.11.12.2 Name: db2

Topologi yang digunakan adalah sebagai berikut

Step 1: Konfigurasi Hosts File dan NTP

Sebelum memulai menkonfigurasi MariaDB Cluster, hal pertama yang dilakukan adalah mengkonfigurasi file /etc/hosts untuk menambahkan static dns data, hal ini berguna untuk mengurangi waktu dari sistem kerja Cluster dalam hal meresolve Dns. Langkah berikutnya adalah dengan melanjutkan konfigurasi NTP Server sehingga bisa mendapatkan jam yang akurat dan sama antar Server Cluster Node. Berikut langkah2nya Pada Cluster db1 dan db2 server, ketikan perintah berikut:

echo “10.11.12.1 db1” >> /etc/hosts echo “10.11.12.2 db2” >> /etc/hosts ping db1

ping db2

Dilanjutkan dengan menkonfigurasi NTP Server

echo “server 0.centos.pool.ntp.org iburst ” >> /etc/ntp.conf echo “server 1.centos.pool.ntp.org iburst ” >> /etc/ntp.conf echo “server 2.centos.pool.ntp.org iburst ” >> /etc/ntp.conf echo “server 3.centos.pool.ntp.org iburst ” >> /etc/ntp.conf service ntpd restart

Shutting down ntpd: [ OK ] Starting ntpd: [ OK ]

Step 2: Mematikan fungsi Security default Linux

Centos/Red Hat mempunya security default yaitu: SElinux dan Iptables, kedua service ini dapat menyebabkan tidak berjalanya cluster. Oleh karena itu untuk Selinux baiknya di disable, dan untuk Iptables Firewall bisa di sesuaikan dengan kebutuhan.

Jalankan perintah di bawah ini untuk mematikan Selinux Jalankan di kedua node

setenforce 0

sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config

Jika firewall ingin tetap di aktifkan, port 3306, 4444, 4567, dan 4568 harus dimasukan kedalam pengaturan firewall

Jalankan di kedua node

sudo lokkit --port 3306:tcp sudo lokkit --port 4444:tcp sudo lokkit --port 4567:tcp sudo lokkit --port 4568:tcp

iptables -A INPUT -p tcp –dport 3306 -j ACCEPT iptables -A INPUT -p tcp –dport 4444 -j ACCEPT iptables -A INPUT -p tcp –dport 4567 -j ACCEPT iptables -A INPUT -p tcp –dport 4568 -j ACCEPT

Step 3: Menambahkan Repository MariaDB

Versi MariaDB bawaan pada Distro Centos/Red Hat linux 6 adalah versi 5.5, untuk mendapatkan MariaDB versi 10.0 buat file repository baru di folder /etc/yum.repos.d/ dengan nama /etc/yum.repos.d/mariadb.repo dan tambahkan isian di bawah ini:

Jalankan di kedua node

[mariadb] name = MariaDB

baseurl = http://yum.mariadb.org/10.0/centos6-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1

Setelah ditambahkan, langkah berikutnya adalah menerapkan penambahan repository tersebut dengan menggunama perintah di bawah ini:

Jalankan di kedua node

yum repolist

MariaDB membutuhkan paket socat yang terdapat pada repository EPEL (Extra Package for Enterprise Linux), silahkan tambahakn repository EPEL dengan mengetikan perintah di bawah:

rpm -Uvh http://mirror.dionipe.net/fedora/epel/6/i386/epel-release-6-8.noarch.rpm Retrieving http://mirror.dionipe.net/fedora/epel/6/i386/epel-release-6-8.noarch.rpm warning: /var/tmp/rpm-tmp.9wLXb9: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY

Preparing... ########################################### [100%] 1:epel-release ########################################### [100%]

Step 4: Installasi MariaDB Software

Untuk menginstallasi MariaDB Software gunakan perintah YUM dengan format seperti di bawah ini:

Jalankan di kedua node

yum install socat MariaDB-Galera-server MariaDB-client rsync galera

Loaded plugins: fastestmirror, refresh-packagekit, security Loading mirror speeds from cached hostfile

>>>>>>>>>>>>>> PEMOTONGAN <<<<<<<<<<<<<<<<

Alternatively consider joining our community based development effort: http://mariadb.com/kb/en/contributing-to-the-mariadb-project/ Installing : socat-1.7.2.3-1.el6.x86_64 11/13 Erasing : mysql-libs-5.1.71-1.el6.x86_64 12/13 Cleanup : rsync-3.0.6-9.el6_4.1.x86_64 13/13 Verifying : galera-25.3.9-1.rhel6.el6.x86_64 1/13 Verifying : 2:nmap-5.51-4.el6.x86_64 2/13 Verifying : nc-1.84-22.el6.x86_64 3/13 Verifying : rsync-3.0.6-12.el6.x86_64 4/13 Verifying : compat-readline5-5.2-17.1.el6.x86_64 5/13 Verifying : MariaDB-common-10.0.17-1.el6.x86_64 6/13 Verifying : perl-DBI-1.609-4.el6.x86_64 7/13 Verifying : socat-1.7.2.3-1.el6.x86_64 8/13 Verifying : MariaDB-Galera-server-10.0.17-1.el6.x86_64 9/13 Verifying : MariaDB-compat-10.0.17-1.el6.x86_64 10/13 Verifying : MariaDB-client-10.0.17-1.el6.x86_64 11/13 Verifying : rsync-3.0.6-9.el6_4.1.x86_64 12/13 Verifying : mysql-libs-5.1.71-1.el6.x86_64 13/13 Installed:

MariaDB-Galera-server.x86_64 0:10.0.17-1.el6 MariaDB-client.x86_64 0:10.0.17-1.el6 MariaDB-compat.x86_64 0:10.0.17-1.el6 galera.x86_64 0:25.3.9-1.rhel6.el6 socat.x86_64 0:1.7.2.3-1.el6

Dependency Installed:

MariaDB-common.x86_64 0:10.0.17-1.el6 compat-readline5.x86_64 0:5.2-17.1.el6 nc.x86_64 0:1.84-22.el6 nmap.x86_64 2:5.51-4.el6 perl-DBI.x86_64 0:1.609-4.el6 Updated: rsync.x86_64 0:3.0.6-12.el6 Replaced: mysql-libs.x86_64 0:5.1.71-1.el6 Complete!

Step 5: Keamanan MariaDB Software

Setelah proses installasi selesai, lanjutkan dengan jalankan script /usr/bin/mysql_secure_installation.

Jalankan di kedua node

/usr/bin/mysql_secure_installation

Step 6: Membuat User MariaDB untuk Cluster

Langkah berikutnya yaitu harus membuat beberapa user yang harus dapat mengakses database. user 'set_user' adalah user yang akan digunakan untuk otentikasi antar node database untuk melakukan tahap State Transfer Snapshot (SST). Jalankan perintah berikut pada semua node:

DELETE FROM mysql.user WHERE user='';

GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY 'redhat'; GRANT USAGE ON *.* to sst_user@'%' IDENTIFIED BY 'redhat'; GRANT ALL PRIVILEGES on *.* to sst_user@'%';

FLUSH PRIVILEGES;

Step 7: Membuat Konfigurasi MariaDB untuk Cluster

Untuk menjalankan MariaDB Cluster ada beberapa konfigurasi yang harus ditambahkan pada file /etc/my.cnf.d/server.cnf, konfigurasi ini digunakan untuk menjalankan System Cluster pada MariaDB. Adapun konfigurasi tersebut adalah:

Konfigurasi untuk node1:

binlog_format=ROW default-storage-engine=innodb innodb_autoinc_lock_mode=2 innodb_locks_unsafe_for_binlog=1 query_cache_size=0 query_cache_type=0 bind-address=0.0.0.0 datadir=/var/lib/mysql innodb_log_file_size=100M innodb_file_per_table innodb_flush_log_at_trx_commit=2 wsrep_provider=/usr/lib64/galera/libgalera_smm.so wsrep_cluster_address="gcomm://10.11.12.1,10.11.12.2" wsrep_cluster_name='galera_cluster' wsrep_node_address='10.11.12.1' wsrep_node_name='db1' wsrep_sst_method=rsync wsrep_sst_auth=sst_user:redhat

CATATAN PENTING: ketika menjalankan perintah ini pada db2/node2 jangan lupa untuk menyesuaikan wsrep_node_address dan wsrep_node_name variable.

Step 8: Menginisialisasi node cluster pertama

Nyalakan MariaDB dengan option '--wsrep-new-cluster', Lakukan pada node db1 untuk mendifine bahwa db1 adalah Master Cluster pertama.

/etc/init.d/mysql start --wsrep-new-cluster

Periksa status dengan menjalankan perintah berikut pada node hanya db1:

[root@mariadb-cluster-node1 ~]# mysql -uroot -predhat -e"show status like

'wsrep%'" +---+---+ | Variable_name | Value | +---+---+ | wsrep_local_state_uuid | dc916334-de60-11e4-9afd-37c163596afd | | wsrep_protocol_version | 7 | | wsrep_last_committed | 0 | | wsrep_replicated | 0 | >>>>>>>>>>>>>>>> DIPERSINGKAT <<<<<<<<<<<<<<<<<<<<<< | wsrep_provider_name | Galera |

| wsrep_provider_vendor | Codership Oy <[email protected]> |

| wsrep_provider_version | 25.3.9(r3385) |

| wsrep_ready | ON |

| wsrep_thread_count | 2 |

+---+---+

[root@mariadb-cluster-node1 ~]# mysql -uroot -predhat -e"show status like

'wsrep%'" | grep "wsrep_local_state_comment\|wsrep_incoming_addresses\| wsrep_cluster_size\|wsrep_ready" wsrep_local_state_comment Synced wsrep_incoming_addresses 10.11.12.1:3306 wsrep_cluster_size 1 wsrep_ready ON Penjelasan status:

wsrep_local_state_comment: Synced (cluster berjalan dan bersiap mensinkronisasi) wsrep_incoming_addresses: 10.11.12.1:3306 (IP Address Cluseter node ini)

wsrep_cluster_size: 1 (Anggota cluster saat ini berjumlah 1 Node) wsrep_ready: ON (Cluster telah siap)

Step 9: Menginisialisasi node cluster kedua

Jika tidak ada kesalah dalam konfigurasi sebelumnya, untuk mengabungkan node lainya adalah dengan menyalakan service dari MariaDB, ketik perintah berikut pada db2

[root@mariadb-cluster-node2 ~]# service mysql start

Starting MySQL..SST in progress, setting sleep higher.. [ OK ]

setelah berhasil menjalankan service MariaDB pada db2, untuk melihat statusnya dapat menggunakan perintah berikut:

[root@mariadb-cluster-node1 ~]# mysql -uroot -predhat -e"show status like 'wsrep%'" | grep "wsrep_local_state_comment\|wsrep_incoming_addresses\| wsrep_cluster_size\|wsrep_ready"

wsrep_local_state_comment Synced

wsrep_incoming_addresses 10.11.12.2:3306,10.11.12.1:3306

wsrep_cluster_size 2

wsrep_ready ON

[root@mariadb-cluster-node2 ~]# mysql -uroot -predhat -e"show status like 'wsrep%'" | grep "wsrep_local_state_comment\|wsrep_incoming_addresses\| wsrep_cluster_size\|wsrep_ready"

wsrep_local_state_comment Synced

wsrep_incoming_addresses 10.11.12.2:3306,10.11.12.1:3306

wsrep_cluster_size 2

wsrep_ready ON

Terlihat dari output perintah di atas saat ini jumlah dari Cluster Node yang bergabung berjumlah 2 buah, dan pad incoming address sudah bertambah dengan ip address dari db2, hal tersebut mengidikasikan proses installasi cluster sudah berhasil.

Step 10: Menguji Cluster MariaDB

Sekarang cluster sudah berjalan. Mari kita menguji apakah cluster bekerja dengan baik atau tidak. Pada db1 buat database 'testcluster' dengan menjalankan perintah berikut:

[root@mariadb-cluster-node1 ~]# mysql -u root -predhat -e 'CREATE DATABASE clustertest;'

dan pada db2 jalankan perintah di bawah ini untuk menguji kinerja cluster

[root@mariadb-cluster-node2 ~]# mysql -u root -predhat -e 'SHOW DATABASES;'

+---+ | Database | +---+ | clustertest | | information_schema | | mysql | | performance_schema | +---+

Jika database “clustertest” yang dibuat dari db1 muncul juga di db2 hal tersebut mengindikasikan proses dari konfigurasi cluster sudah berjalan. Untuk lebih memastikan lagi, kita dapat membuat Table pada database Cluster dan mengisinya dengan informasi. Untuk memastikan cluster berjalan dengan mode master-master, untuk pembuatan Table bisa di uji coba pada dari node db2 dan di cek dari node db1 seperti berikut:

[root@mariadb-cluster-node2 ~]# mysql -u root -predhat -e 'CREATE TABLE clustertest.mycluster ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(50), ipaddress VARCHAR(20), PRIMARY KEY(id));'

[root@mariadb-cluster-node1 ~]# mysql -u root -predhat -e 'USE clustertest; SHOW TABLES;'

+---+ | Tables_in_clustertest | +---+ | mycluster | +---+

Jika node db1 bisa menampilkan table yang baru dibuat hal tersebut mengindikasikan Cluster model Master-Master telah berhasil di konfigurasi. Testing berikutnya yaitu menguji penambahan record data.

[root@mariadb-cluster-node1 ~]# mysql -u root -predhat -e 'INSERT INTO clustertest.mycluster (name, ipaddress) VALUES ("db1", "10.11.12.1");' [root@mariadb-cluster-node2 ~]# mysql -u root -predhat -e 'USE clustertest; SELECT * FROM mycluster'

+----+---+---+ | id | name | ipaddress | +----+---+---+ | 2 | db1 | 10.11.12.1 | +----+---+---+

Dalam dokumen Module MySQL-MariaDB FundamentalAndAdvanced (Halaman 149-156)

Dokumen terkait