Halo sobat sekolah linux, jika sebelumnya saya sempat membahas soal heartbeat sebagai fasilitas untuk failover dan floating-ip nah kali ini saya mencoba menggunakan pacemaker-corosync serta pcs sebagai command-line shell untuk membantu kita dalam konfigurasi pacemaker-corosync, oke langsung saja ya..
topologi yang saya gunakan adalah sebagai berikut
- node1: 192.168.100.10 : pcs1
- node1: 192.168.100.20 : pcs2
- floating-ip: 192.168.100.100
Jalankan perintah dibawah ini pada node1 & node2
tambahkan baris dibawah ini pada file /etc/hosts
1 2 |
192.168.100.10 pcs1 192.168.100.20 pcs2 |
pertama kita akan menginstall aplikasi yang dibutuhkan
1 |
yum -y install pacemaker pcs httpd |
setelah itu jalankan dan aktifkan autostart pcsd, untuk kalian yang sudah memasang httpd sebaiknya stop httpd dan matikan autostartnya karena httpd akan dijalankan oleh pacemaker-corosync sebagai resource, karena jika kalian jalankan httpd nya, maka akan bentrok, jadi cukup jalankan pcsd saja
1 2 |
service pcsd start chkconfig pcsd on |
selanjutnya set password untuk user hacluster
1 |
passwd hacluster |
Jalankan perintah dibawah ini pada node1 saja
jalankan perintah dibawah ini untuk membuat file server_status.conf
1 |
vim /etc/httpd/conf.d/server_status.conf |
lalu isikan dengan rule dibawah ini
1 2 3 4 5 6 |
ExtendedStatus On <Location /server-status> SetHandler server-status Require all granted </Location> |
jika sudah save dan lalu jalankan command dibawah ini, jika dimintai username isi dengan “hacluster” dan password yang tadi kalian set
1 |
pcs cluster auth pcs1 pcs2 |
sampai pada tahapan ini kalian bisa membuka web-gui dari pcsd ini dengan membuka url “https://ip_node:2224” pada browser kalian, tampilannya seperti dibawah, untuk login kalian bisa menggunakan username hacluster dan password seperti yang kalian set di konsol tadi
ouu iya pada tutorial kali ini kita akan membahas konfigurasi melalui konsol, jadi kita tidak akan membahas soal web-gui pcsd lebih jauh :D, oke selanjutnya kita akan membuat dan menkonfigurasikan cluster kalian, ketikkan command dibawah ini pada terminal/konsol kalian
1 |
pcs cluster setup --name sekolahlinux_cluster pcs1 pcs2 |
jika sudah jalankan service cluster yang kita buat
1 |
pcs cluster start --all |
lalu enable service cluster kalian agar auto start ketika di restart pcnya nanti
1 |
pcs cluster enable --all |
lalu jalankan perintah dibawah ini untuk melihat status cluster kalian
1 |
pcs status cluster |
nanti hasilnya akan seperti dibawah ini
1 2 3 4 5 6 7 8 9 10 11 |
[root@pcs1 ~]# pcs status cluster Cluster Status: Last updated: Fri May 20 07:18:06 2016 Last change: Fri May 20 06:23:26 2016 by hacluster via cibadmin on pcs1 Stack: corosync Current DC: pcs1 (version 1.1.13-10.el7_2.2-44eb2dd) - partition with quorum 2 nodes and 2 resources configured Online: [ pcs1 pcs2 ] PCSD Status: pcs1: Online pcs2: Online |
lalu selanjutnya cek status corosync dengan perintah dibawah ini
1 |
pcs status corosync |
nanti hasilnya akan seperti dibawah ini
1 2 3 4 5 6 7 |
[root@pcs1 ~]# pcs status corosync Membership information ---------------------- Nodeid Votes Name 1 1 pcs1 (local) 2 1 pcs2 |
jika sudah selanjutnya kita akan konfigurasi untuk floating-ip, pertama kita harus disable STONITH (Shoot The Other Node In The Head)
1 |
pcs property set stonith-enabled=false |
karena kita hanya menggunakan 2 node maka ketikan perintah dibawah ini
1 |
pcs property set no-quorum-policy=ignore |
lalu ketikkan command dibawah ini untuk set default resource-stickiness pada cluster kalian
1 |
pcs property set default-resource-stickiness="INFINITY" |
lalu jalankan perintah dibawah untuk melihat status property list
1 |
pcs property list |
nanti hasilnya akan seperti dibawah
1 2 3 4 5 6 7 8 9 10 |
[root@pcs1 ~]# pcs property list Cluster Properties: cluster-infrastructure: corosync cluster-name: sekolahlinux_cluster dc-version: 1.1.13-10.el7_2.2-44eb2dd default-resource-stickiness: INFINITY have-watchdog: false last-lrm-refresh: 1463736361 no-quorum-policy: ignore stonith-enabled: false |
selanjutnya jalankan perintah dibawah untuk membuat resource floating-ip nya
1 |
pcs resource create Sekolahlinux_Floating_IP ocf:heartbeat:IPaddr2 ip=192.168.100.100 cidr_netmask=32 op monitor interval=30s |
lalu jalankan perintah dibawah untuk melihat status resource floating-ip yang kita buat, sedang berada di node mana
1 |
pcs status resources |
hasilnya akan seperti dibawah, yaitu floating-ip ada di node1 atau pcs1
1 2 |
[root@pcs1 ~]# pcs status resources Sekolahlinux_Floating_IP (ocf::heartbeat:IPaddr2): Started pcs1 |
selanjutnya kita akan membuat resource apache, jalankan command dibawah ini
1 |
pcs resource create Sekolahlinux_Web_Cluster ocf:heartbeat:apache configfile=/etc/httpd/conf/httpd.conf statusurl="http://127.0.0.1/server-status" op monitor interval=1min |
lalu set Sekolahlinux_Web_Cluster dan Sekolahlinux_Floating_IP agar selalu sama pada semua node
1 |
pcs constraint colocation add Sekolahlinux_Web_Cluster with Sekolahlinux_Virtual_IP INFINITY |
lalu jalankan perintah dibawah ini, agar floating-ip mengikuti dimana resource Sekolahlinux_Web_Cluster sedang berjalan
1 |
pcs constraint order Sekolahlinux_Virtual_IP then Sekolahlinux_Web_Cluster |
jika sudah jalankan perintah dibawah ini untuk melihat statusnya
1 |
pcs constraint |
Jalankan masing-masing perintah dibawah sesuai dengan node kalian untuk menguji floating-ip dan apache/httpd
lalu buat file index.html pada node1
1 |
vim /var/www/html/index.html |
lalu isikan dengan kontent dibawah ini
1 |
<h1>NODE1 PCS1</h1> |
lalu buat file index.html pada node2
1 |
vim /var/www/html/index.html |
lalu isikan dengan kontent dibawah ini
1 |
<h1>NODE1 PCS1</h1> |
coba cek pcs resource status nya dengan mengetikkan perintah dibawah ini, kalian bisa menjalan di node1/pcs1 ataupun di node2/pcs2 dikarenakan clusternya sedang berjalan di kedua node tersebut
1 2 3 |
pcs status resources Sekolahlinux_Virtual_IP (ocf::heartbeat:IPaddr2): Started pcs1 Sekolahlinux_Web_Cluster (ocf::heartbeat:apache): Started pcs1 |
jika melihat status diatas maka floating-ip dan apache sedang berjalan di pcs1, untuk melihatnya coba buka ip 192.168.100.100 dari browser kalian, maka hasilnya akan seperti dibawah
jika sudah coba stop cluster kalian pada node1/pcs1
1 |
pcs cluster stop pcs1 |
lalu coba cek pcs resource status nya dengan mengetikkan perintah dibawah ini pada node2/pcs2, jangan dijalankan pada node1/pcs1 karena tadi kalian sudah stop cluster di node1/pcs1, jika kalian jalankan maka hasilnya nanti akan error 😀 kecuali jika clusternya jalan di node1/pcs1
1 2 3 |
pcs status resources Sekolahlinux_Virtual_IP (ocf::heartbeat:IPaddr2): Started pcs2 Sekolahlinux_Web_Cluster (ocf::heartbeat:apache): Started pcs2 |
jika melihat status diatas maka floating-ip dan apache sedang berjalan di pcs2, untuk melihatnya coba buka ip 192.168.100.100 dari browser kalian, maka hasilnya akan seperti dibawah
nah jika hasilnya seperti diatas berarti kalian sudah berhasil melakukan konfigurasinya, dan diakhir tulisan ini saya akan memberikan sedikit info hehe, selanjutnya kalian bisa melihat hasil dari konfigurasi melalui konsol di web-gui pcsd kalian.
selamat membaca dan mencoba ya :D.
Fredy
dear Admin,
Saya coba install pacemaker+corosync pada centos 7 dan berjalan dengan normal… akan tetapi pada saat saya menambahkan resource untuk menjalankan service zimbra baik menggunakan LSB,OCF,systemd semua belum berhasil. apakah admin sudah pernah install dan setting HA-psc+corosync menjalankan zimbra 8 ? mohon pencerahannya.
salam,
fredy
admin
hai mas fredy, saat ini saya blum mencoba untuk mengimplementasikan dengan zimbra 8.0, baru sebatas hanya untuk webserver saya, mungkin tutorial video ini bisa membantu
Widianto
dear admin.. apakah untuk pacemaker, corosysnc dan pcs support untuk replikasi postgresql ?. kalo support adakah tutorial nya..
sebenarnya untuk tools lain ada, tapi sekiranya agar lebih baik di jadi satukan dengan tutorial diatas lebih baik dari pada pakai tools lain. terimakasih