Jumat, 17 Januari 2014

Fail Over Heartbeat part1

Sore ini mau tulis tentang fail over menggunakan heartbeat. Oh ya sebelumnya saya akan beri tahu sedikit info mengenai heartbeat. Haerbeat adalah tools yang menyediakan infrastruktur cluster. Oke langsung saja, bahan yang diperlukan
- Heartbeat
- Ubuntu 12.10 & 11.10
- Virtualbox
Oprekan kali ini saya coba di ubuntu 12.10, dengan menginstall ubuntu 11.10 pada virtualbox. Rancangannya kira-kira seperti ini.

Pada gambar di atas, kita memiliki 2 server. Jika pada server node1 jatuh, maka otomatis server node2 yang mengambil alih service pada node1.
Oke langsung saja kita masuk ke step-stepnya :
- Cek hostname pada masing-masing node. 
      uname -n   // Ini pada pc server virtual saya
        host1   (pada node1)
        host2   (pada node2)
   Untuk mengubah hostname, bisa edit pada file : /etc/hostname. Reboot setelah diedit.
- Setting file hosts di kedua node tersebut, seperti di bawah ini
      sudo vim /etc/hosts
        192.168.9.11   host1      // Ini untuk node1
        192.168.9.22   host2      // Ini untuk node2
- Install heartbeat pada kedua node
      sudo apt-get install heartbeat
- Kita perlu membuat 3 file penting yang ada di folder /etc/ha.d atau /etc/heartbeat
   * authkeys
   * ha.cf
   * haresources (file ini tergantung parameter yang ada di ha.cf. Jika parameter crm di set on, maka file ini tidak dibutuhkan)
Kemudian kita konfigurasi ketiga file tersebut pada node1, dan jika selesai kita bisa copy ke node2.
- Buat file authkeys yang isinya
    auth 1
   1 sha1 ThisIsALongPasswordForSecurityReasons

File authkeys, berisi informasi yang nantinya digunakan heartbeat untuk melakukan komunikasi antar node
- Kemudian save dan set permision 600 pada file tersebut
      sudo chmod 600 /etc/ha.d/authkeys
- Edit file ha.cf, jika file tersebut tidak ada bisa kita ambil dari /usr/share/doc/heartbeat/ha.cf.gz. Kemudian extract, setelah itu kita bisa edit beberapa parameter yang ada pada file tersebut
keepalive 2
deadtime 10
warntime 5
initdead 120
udpport 694
ucast eth0 192.168.9.22
auto_failback off
node host1
node host2
use_logd yes

- Edit file haresources, kita juga bisa mengambil sample file haresources di /usr/share/doc/heartbeat/haresources.gz. Kemudian extract, edit file tersebut seperti di bawah ini
    host1    IPaddr::192.168.9.12/24/eth0 apache2
Penjelasan : 
* host1 = Bertindak sebagai primer server
* IPaddr::192.168.9.12/24/eth0 = Virtual ip yang akan digunakan sebegai perantara antara client dan node heartbeat
* apache2 = contoh service yang akan dicluster
- Karena konfigurasi di atas menggunakan apache sebagai bagian dari parameter resource. Maka kita sebaiknya menghapus apache2 dari konfigurasi start up
      sudo update-rc.d -f apache2 remove
- Setelah selesai semua, maka kopi seluruh file yang ada pada folder ha.d ke node2 menggunakan scp
- Pada node2, perlu diedit file ha.cf untuk parameter unicast. Sehingga isi paramternya
keepalive 2
deadtime 10
warntime 5
initdead 120
udpport 694
ucast eth0 192.168.9.11
auto_failback off
node host1
node host2
use_logd yes 

- Kalau semua parameter sudah diset dengan benar, selanjutnya jalankan service heartbeat pada kedua node
      sudo service heartbeat start
- Cek apakah heartbeat tersebut jalan dengan benar atau tidak
      sudo tail -f /var/log/syslog
Jika running dengan benar, maka akan terlihat tulisan success di log dan akan muncul virtual ip pada primer server (dalam hal ini host1)
- Coba kita lakukan test heartbeat tersebut, karena tadi kita memakai apache2 sebagai resource. Maka coba edit file html folder /var/www di kedua  node tersebut untuk membedakan
   ardi@host1$ sudo vim /var/www/index.html
      SERVER HOST1 !!!
   ardi@host2$ sudo vim /var/www/index.html
      SERVER HOST2 !!!
-  Coba buka browser, ketik http://192.168.9.12. Akan muncul :
      SERVER HOST1 !!!
- Kemudian jika heartbeat dimatikan, sudo service heartbeat stop. Maka akan muncul 
      SERVER HOST2 !!!
Dan kira - kira seperti itu cara kerja heartbeat, perlu diketahui bahwa client hanya berhubungan dengan virtual ip yang didefinisikan di haresources. Jika node1 mengalami kegagalan sistem, maka akan dialihkan ke node2 dan begitu seterusnya. Namun oprekan di atas hanya membahas 2 node saja (unicast), mungkin nanti kita bahas menggunakan beberapa node (multicast).
Note :
Dalam melakukan oprekan di atas, saya mengalami beberapa error. contohnya
- File authkeys harus menggunakan permision 600 (rw- -)
- Pada file parameter ha.cf, kita harus sesuai device kita dengan konfigurasi, misalnya
  unicast eth0 192.168.9.22
  * Jika setelah ifconfig, yang tertera bukan eth0 (misalnya eth1) maka ganti dengan eth1
  * Lalu ip 192.168.9.22 adalah ip node2, bukan node1. Dan begitu pula sebaliknya
Sekian opreakan heartbeat. Kalau ada yang tidak paham bisa ke link ini

0 komentar:

Posting Komentar