Cluster

Membuat cluster di proxmox menggunakan share disk DRBD – Bagian 2

Posted on

Pada tulisan sebelumnya kita telah lakukan pembuatan cluster dan share disk menggunakan DRBD, langkah selanjutnya adalah membuat VM, sesuai skenario kita akan buat satu vm yang akan kita pasang Debian Wheezy.

Tapi sebelum dilakukan pembuatan VM, kita konfigurasikan dulu lvm disk yang sudah kita buat sebelumnya agar bisa digunakan di proxmox.

Langsung saja ke DatacenterStorageAddLVM group.

add_lvm

KONFIGURASI VM

Kita lanjutkan ke proses pembuatan VM,  kita bisa langsung ke tombol “Create VM”, beri nama, pilih sistem operasinya dst, satu hal yang menjadi catatan pada pembuatan vm ini adalah saat penentuan dimana vm ini akan diletakkan, kita pilih VG yang sebelumnya sudah kita siapkan, yaitu “vg_drbd”.

vg_drbd

Saat VM sudah terbuat, saatnya kita melakukan konfigurasi selanjutnya.

KONFIGURASI HA

HA adalah kepanjangan dari High Availability yang fungsinya adalah agar jika suatu saat salah satu mesin proxmox mati, maka virtual machine yang ada di dalamnya bisa otomatis dipindahkan ke mesin proxmox yang lain, dalam hal ini jika proxmox01 mati maka virtual machine yang ada di proxmox01 akan dipindahkan ke proxmox02.

Syarat dari HA ini adalah:

  • Harus ada Shared storage
  • Network yang Reliable
  • Harus ada Fencing device

Tapi dalam tulisan ini dikarenakan saya tidak punya fencing devices maka kita akan coba menggunakan “manual fencing device” yang mana ini digunakan hanya untuk kebutuhan simulasi pada tulisan ini.

“Fencing is vital for Proxmox to manage a node loss and thus provide effective HA. Fencing is the mechanism used to prevent data incoherences between nodes in a cluster by ensuring that a node reported as “dead” is really down. If it is not, a reboot or power-off signal is sent to force it to go to a safe state and prevent multiple instances of the same virtual machine run concurrently on different nodes”

Jadi jika tidak ada fencing devices maka tidak akan ada yang bisa memberitahukan ke node yang lain jika salah satu node mati.

Informasi selengkapnya tentang fencing device bisa dibaca di link berikut.

Oke sekian basa-basinya dan mari kita coba, dan sebelumnya silahkan berdoa sesuai agama dan kepercayaannya masing-masing 🙂

Login ke proxmox01, kemudian salin tempel konfigurasi clusternya.

root@proxmox01:~# cp /etc/pve/cluster.conf /etc/pve/cluster.conf.new
root@proxmox01:~# vi /etc/pve/cluster.conf.new
<?xml version="1.0"?>
<cluster config_version="6" name="cluster01">
  <cman keyfile="/var/lib/pve-cluster/corosync.authkey"/>
  <fencedevices>
    <fencedevice agent="fence_manual" name="human"/>
  </fencedevices>
  <clusternodes>
    <clusternode name="proxmox01" nodeid="1" votes="1">
      <fence>
        <method name="single">
          <device name="human" nodename="proxmox01"/>
        </method>
      </fence>
    </clusternode>
    <clusternode name="proxmox02" nodeid="2" votes="1">
      <fence>
        <method name="single">
          <device name="human" nodename="proxmox02"/>
        </method>
      </fence>
    </clusternode>
  </clusternodes>
  <rm/>
</cluster>

Jangan lupa untuk mengubah config_version=”6″ menggunakan nilai yang lebih tinggi setiap kali kita melakukan perubahan pada konfigurasi cluster. Jangan lupa juga untuk melakukan validasi terhadap perubahan konfigurasi clusternya.

root@proxmox01:~# ccs_config_validate -v -f /etc/pve/cluster.conf.new

Setelah hasil validasi OK, maka lakukan “activate” terhadap konfigurasi yang sudah dibuat.

Datacenter -- HA -- Activate

Langkah selanjutnya adalah menambahkan VM yang sudah kita buat tadi ke dalam group HA.

Datacenter -- HA -- Add -- HA managed VM/CT

Jangan lupa pastikan VM ID diisi dengan VM ID dari VM yang akan kita masukkan ke group HA, dalam hal ini VM ID nya adalah 100, kemudian “Activate”.

add_vm_ha

Langkah selanjutnya adalah mengaktifkan service RGManager di proxmox01 dan proxmox02.

proxmox01 -- Services -- RGManager - Start

Sampai disini kita akan simulasikan apakah VM ID 100 tadi bisa failover ke proxmox02 jika proxmox01 tidak available. Dalam tulisan ini kita akan coba simulasikan dengan hanya mematikan service “RGManager” di proxmox01.

Sebelumnya pastikan bahwa VM ID 100 status “Managed by HA = Yes”

managed_by_ha

Stop RGManager

proxmox01 -- Services -- RGManager - Stop

Stopping Cluster Service Manager: [ OK ]
TASK OK

Jika kita lihat di log, maka akan terlihat status seperti di bawah ini.

stop_rgmanager

Langkah selanjutnya kita periksa, seharusnya VM ID 100 sudah jalan di proxmox02.

vm_pindah

Jika hasilnya sudah terlihat seperti diatas, artinya proses failovernya berhasil :).

Referensi :

Apache OCF resource agent tidak mau start ketika modul SSL diaktifkan

Posted on Updated on

Lagi-lagi masih seputar pacemaker dan apache2, setelah kemarin ketemu masalah, sekarang ketemu lagi masalah Apache OCF resource agent tidak mau start saat server direstart, akhirnya ketemu… ternyata dikarenakan folder /var/run/apache2 nya hilang/dihapus ketika server direstart, sedangkan /var/run/apache2 digunakan oleh apache jika SSL module diaktifkan.

Error log di apache :

[error] (2) No such file or directory: Cannot create SSLMutex with file `/var/run/apache2/ssl_mutex'

Ternyata ini adalah bug resource-agents

Solusinya adalah di-patch atau tambahkan di script OCF apachenya agar membuat folder /var/run/apache2 sebelum apachenya start.

# vi /usr/lib/ocf/resource.d/heartbeat/apache
...
start_apache() {
  if
    silent_status
  then
    ocf_log info "$CMD already running (pid $ApachePID)"
    return $OCF_SUCCESS
  fi

  [ -d /var/run/apache2 ] || mkdir /var/run/apache2 # <--- tambahkan baris berikut

  ocf_run $HTTPD $HTTPDOPTS $OPTIONS -f $CONFIGFILE
  tries=0
  while :  # wait until the user set timeout
  do
    monitor_apache
        ec=$?
        if [ $ec -eq $OCF_NOT_RUNNING ]
        then
                tries=`expr $tries + 1`
                ocf_log info "waiting for apache $CONFIGFILE to come up"
                sleep 1
        else
                break
        fi
  done
        if [ $ec -ne 0 ] && silent_status; then
                stop_apache
        fi
        return $ec
}
...

Semoga bermanfaat…

Pacemaker Alert via email

Posted on

Lagi-lagi tentang pacemaker, Anda ingin menerima alert via email jika terjadi sesuatu dengan Cluster Anda? Anda cukup menjalankan langkah berikut di semua node cluster Anda.

# crm_mon --daemonize --mail-to user@example.com &

Pasang di /etc/rc.local agar ketika server direstart, perintah diatas akan dijalankan secara otomatis.

Hasilnya Anda akan menerima email alert seperti berikut:

Status OK

Cluster notification
====

Completed operation start for resource r0:0 on node1

Details:
operation status: (0) complete
script returned: (0) ok
expected return value: (0) ok

Salah satu resource failed

Cluster notification
====

Operation start for resource WebSite on node1 failed: Timed Out

Details:
operation status: (2) Timed Out

Apache tidak bisa start di node cluster Pacemaker

Posted on

Jika Anda pengguna cluster pacemaker, dan menemukan error seperti dibawah ini saat resource apache2 tidak mau start dan isi dari error log tidak menunjukkan clue yang berarti :

Failed actions:
    WebSite_start_0 (node=node1, call=24, rc=-2, status=Timed Out): unknown exec error

Anda bisa mencoba langkah berikut, langkah ini sudah saya coba dan menyelesaikan masalah saya.

# crm status
============
Last updated: Fri Sep 13 11:38:17 2013
Last change: Fri Sep 13 11:38:02 2013 via crm_attribute on node1
Stack: openais
Current DC: node2 - partition with quorum
Version: 1.1.7-ee0730e13d124c3d58f00016c3376a1de5323cff
2 Nodes configured, 2 expected votes
7 Resources configured.
============

Online: [ node2 node1 ]

 Resource Group: WebServer
     ClusterIP  (ocf::heartbeat:IPaddr2):       Started node1
     WebFS      (ocf::heartbeat:Filesystem):    Started node1
     Links      (heartbeat:drbdlinks):  Started node1
     DBase      (ocf::heartbeat:mysql): Started node1
     WebSite    (ocf::heartbeat:apache):        Stopped
 Master/Slave Set: ms_r0 [r0]
     Masters: [ node1 ]
     Slaves: [ node2 ]

Failed actions:
    WebSite_start_0 (node=node1, call=24, rc=-2, status=Timed Out): unknown exec error

Tambahkan baris berikut di apache2.conf (saya menggunakan Debian 7.1)

ExtendedStatus On

<Location /server-status>
     SetHandler server-status
     Order deny,allow
     Deny from all
     Allow from 127.0.0.1
</Location>

Kemudian restart resource apachenya.

# crm resource restart WebSite

Pacemaker, Corosync, DRBD, Apache, PHP dan MySql di Debian 7 “Wheezy”

Posted on Updated on

Ini adalah catatan kecil tentang bagaimana melakukan instalasi dan konfigurasi cluster di Debian 7 (Wheezy), dalam tutotial singkat ini, Perangkat lunak yang digunakan adalah, Pacemaker, Corosync, DRBD, Apache, PHP dan MySql.

Tujuan akhir dari konfigurasi ini adalah membuat cluster aktif-pasif dengan menggunakan dua node (dalam tutorial ini menggunakan nama “satu” dan “dua”) yang mana kedua node tersebut bisa melakukan failover jika salah satu node  mengalami kerusakan. Sedangkan service yang dilayani adalah service Webserver dan MySQL.

DRBD disini berfungsi melakukan “raid over network” terhadap salah satu partisi disk yang mana partisi tersebut merupakan letak berkas data mysql dan berkas webserver, jadi ketika satu node mengalami kerusakan maka data akan tetap aman.

Pacemaker, Corosync, DRBD, Apache, PHP dan MySql di Debian 7 “Wheezy”