Artikel Sebelumnya : tips-proxmox-configure-proxmox-high-availability-without-fencing-device

Pada artikel sebelumnya kita sudah dapat melakukan konfigurasi Proxmox High Availability tanpa device fencing. Fencing device ini digunakan untuk melakukan monitoring terhadap host-host server yang mana host server yang dimaksud disini adalah Proxmox. Apakah server Proxmox tersebut dalam keadaan hidup atau mati. Jika Proxmox dalam keadaan hidup, maka fencing device tidak akan melakukan action apa-apa, namun apabila Proxmox mati maka fencing device akan melakukan action dengan memindahkan VM yang sedang dikelola oleh Proxmox yang mati tersebut pada Proxmox yang sedang hidup.

Timbul pertanyaan, bagaimana apabila konfigurasi Proxmox High Availability tidak menggunakan device fencing seperti pada tulisan sebelumnya disini http://bit.ly/16rwRk9 dan ingin agar otomatis failover ketika salah satu server Proxmox mati?

Sebenarnya, pada tulisan sebelumnya sudah dijelaskan bagaimana semua VM yang ada pada Proxmox yang mati dapat diambil alih oleh Proxmox yang sedang hidup dengan cara menjalankan perintah berikut fence_ack_manual hostname-proxmox-lawan misalnya fence_ack_manual pve2 dimana pve2 adalah Proxmox yang mati. Agar semua VM yang telah dikonfigurasi dapat diambil diharuskan mengetik absolutely, baru semua VM diambil alih.

storage-migration

Dari pola pengambilan VM diatas adalah diharuskan menjalankan perintah fence_ack_manual dan dijawab dengan ketik absolutely. Bagaimana perintah-nya agar otomatis menjawab absolutely tanpa harus diketik terlebih dahulu?. Salah satu command line yang dapat digunakan adalah echo. Untuk melakukan pengecheckan server Proxmox dalam keadaan hidup atau tidak dapat menggunakan perintah ping. Logika script berikut akan melakukan pengechekan server dengan ping apakah hidup atau tidak, jika hidup maka tidak akan ada action apa-apa sedangkan jika server mati maka akan melakukan action berupa perintah fence_ack_manual dan menjawab absolutely.

Script ini saya pelajari dan ambil dari http://www.cyberciti.biz/ dengan menambahkan beberapa penyesuaian. Buatlah script tersebut pada masing-masing server Proxmox dan simpan pada suatu folder, misalnya pada folder /srv/

cd /srv/
vi check-fencing.sh

Isi dengan isian berikut :

#!/bin/bash
HOSTS=192.168.1.201
COUNT=1
for myHost in $HOSTS
do
  count=$(ping -c $COUNT $myHost | grep 'received' | awk -F',' '{ print $2 }' | awk '{ print $1 }')
  if [ $count -eq 0 ]; then
    # 100% failed 
    echo absolutely | /usr/sbin/fence_ack_manual pve1
    # echo "Host : $myHost is down (ping failed) at $(date)"
  fi
done

Yang harus disesuaikan adalah pada bagian HOST diganti dengan IP Proxmox lawan untuk melakukan pengecheckan ping. Pada tulisan pve1 diganti dengan hostname Proxmox lawan.

Berikan hak akses agar dapat dieksekusi

chmod +x /srv/check-fencing.sh

Buat cronjob agar melakukan pengecheckan setiap satu menit sekali

crontab -e

masukkan cronjob seperti berikut :

*     *     *     *     *     sh /srv/check-fencing.sh

Simpan cronjob tersebut dengan perintah :wq!. Coba matikan secara paksa Proxmox yang sedang menjalankan VM yang telah dikonfigurasi HA. Tunggu sekitar 1 menit dan seharusnya VM tersebut akan langsung diambil alih dalam posisi restart.

Silakan dicoba dan semoga bermanfaat 😀