High availability dengan pacemaker-corosync & pcs pada centos 7

3
2413

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

192.168.100.10 pcs1
192.168.100.20 pcs2

pertama kita akan menginstall aplikasi yang dibutuhkan

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

service pcsd start
chkconfig pcsd on

selanjutnya set password untuk user hacluster

passwd hacluster

Jalankan perintah dibawah ini pada node1 saja

jalankan perintah dibawah ini untuk membuat file server_status.conf

vim /etc/httpd/conf.d/server_status.conf

lalu isikan dengan rule dibawah ini

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

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

pcsdweb

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

pcs cluster setup --name sekolahlinux_cluster pcs1 pcs2

jika sudah jalankan service cluster yang kita buat

pcs cluster start --all

lalu enable service cluster kalian agar auto start ketika di restart pcnya nanti

pcs cluster enable --all

lalu jalankan perintah dibawah ini untuk melihat status cluster kalian

pcs status cluster

nanti hasilnya akan seperti dibawah ini

[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

pcs status corosync

nanti hasilnya akan seperti dibawah ini

[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)

pcs property set stonith-enabled=false

karena kita hanya menggunakan 2 node maka ketikan perintah dibawah ini

pcs property set no-quorum-policy=ignore

lalu ketikkan command dibawah ini  untuk set default resource-stickiness pada cluster kalian

pcs property set default-resource-stickiness="INFINITY"

lalu jalankan perintah dibawah untuk melihat status property list

pcs property list

nanti hasilnya akan seperti dibawah

[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

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

pcs status resources

hasilnya akan seperti dibawah, yaitu floating-ip ada di node1 atau pcs1

[root@pcs1 ~]# pcs status resources
 Sekolahlinux_Floating_IP     (ocf::heartbeat:IPaddr2):       Started pcs1

selanjutnya kita akan membuat resource apache, jalankan command dibawah ini

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

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

pcs constraint order Sekolahlinux_Virtual_IP then Sekolahlinux_Web_Cluster

jika sudah jalankan perintah dibawah ini untuk melihat statusnya

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

vim /var/www/html/index.html

lalu isikan dengan kontent dibawah ini

<h1>NODE1 PCS1</h1>

lalu buat file index.html pada node2

vim /var/www/html/index.html

lalu isikan dengan kontent dibawah ini

<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

 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

pcs1

jika sudah coba stop cluster kalian pada node1/pcs1

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

 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

pcs212

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.

 

3 COMMENTS

  1. 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

  2. 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