Tuesday, February 16, 2010 11:11:35

Web yang tidak pernah bobo

Article and tutorial that related to Linux Operating System  
Beberapa tahun yang lalu, penulis mengikuti product knowledge yang diadakan kantor tempat bekerja. Dengan pembicara dari RedHat Asia bertemakan tentang RedHat Cluster Suite. Sebagai pegawai yang bekerja dan menangani produk RedHat saat itu, senang juga mendapatkan pengetahuan mengenai high availability dimana web server yang kita pegang tidak pernah down.

Dari rangkaian produk knowledge tersebut ada beberapa solusi alternatif yang bisa kita coba bersama, karena untuk mencoba solusi diatas tentu harus bersedia mengeluarkan dana lebih, dikarenakan produk diatas untuk Solusi Enterprise dari RedHat. Tulisan ini tidak bermaksud menurunkan harga, kemampuan dan membandingkan solusi tertentu dengan solusi yang lain, tapi lebih memberikan alternatif yang mungkin bisa diterapkan sekalian belajar untuk itu.

Penulis menggunakan system operasi Linux dengan distro Xubuntu dan Ubuntu untuk melakukan testing , namun sebenarnya distro lain juga bisa digunakan, selama masih dalam keluarga Linux tentunya.

Berikut Langkah/Asumsi yang perlu dipersiapkan, dimana diasumsikan apache2 sudah terinstall dan jaringan sudah terkoneksi.
Node 1 : IP Address 192.168.0.36 - hostname rootd_one
Node 2 : IP Address 192.168.0.39 - hostname rootd_two
IP Address 192.168.0.67 - alamat server web yang diketahui end user
Kemudian perlu menyiapkan aplikasi heartbeat pada kedua node dengan cara yang sama , pertama-tama kita download heartbeat via apt
apt-get install heartbeat
Setelah itu kita perlu melakukan konfigurasi disesuaikan dengan jaringan dan keinginan kita, service (dalam hal ini apache) apa yang diinginkan.
cp /usr/share/doc/heartbeat/authkeys /etc/ha.d/
sh -c "zcat /usr/share/doc/heartbeat/ha.cf.gz > /etc/ha.d/ha.cf"
sh -c "zcat /usr/share/doc/heartbeat/haresources.gz > /etc/ha.d/haresources"
Kemudian kita perlu melakukan edit ketiga file diatas agar sesuai dengan asumsi yang kita mau
/etc/ha.d/authkeys
auth 2
2 sha1 password_anda

/etc/ha.d/ha.cf
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 30
initdead 60
bcast eth0
udpport 694
auto_failback on
node rootd_one
node rootd_two

Dan yang terakhir untuk isian file /etc/ha.d/haresources harus sama untuk kedua Node yang mana rootd_one merupakan node master (yang didahulukan / aktif) dan IP 192.168.0.67 merupakan IP yang diakses nantinya
rootd_one 192.168.0.67 apache2

Kemudian untuk testing, kita buat file index.html di direktori /var/www di kedua node.
Pada Node 1
echo "Node 1" > /var/www/index.html

Pada Node 2
echo "Node 2" > /var/www/index.html

Sekarang saatnya melakukan testing apakah setingan diatas berhasil dijalankan. Jalankan heartbeat di kedua node.
/etc/init.d/heartbeat start
Untuk memastikan bisa mengecek /var/log/ha-log dimana hasilnya seperti berikut
heartbeat[6482]: 2010/02/16_10:57:19 info: **************************
heartbeat[6482]: 2010/02/16_10:57:19 info: Configuration validated. Starting heartbeat 2.1.3
heartbeat[6483]: 2010/02/16_10:57:19 info: heartbeat: version 2.1.3
heartbeat[6483]: 2010/02/16_10:57:20 info: Heartbeat generation: 1041385682
heartbeat[6483]: 2010/02/16_10:57:20 info: glib: UDP Broadcast heartbeat started on port 694 (694) interface eth0
heartbeat[6483]: 2010/02/16_10:57:20 info: glib: UDP Broadcast heartbeat closed on port 694 interface eth0 - Status: 1
heartbeat[6483]: 2010/02/16_10:57:20 info: G_main_add_TriggerHandler: Added signal manual handler
heartbeat[6483]: 2010/02/16_10:57:20 info: G_main_add_TriggerHandler: Added signal manual handler
heartbeat[6483]: 2010/02/16_10:57:20 info: G_main_add_SignalHandler: Added signal handler for signal 17
heartbeat[6483]: 2010/02/16_10:57:20 info: Local status now set to: 'up'
heartbeat[6483]: 2010/02/16_10:57:21 info: Link rootd_one:eth0 up.

kemudian melalui perintah ifconfig, didapati pada node 1 ada tambahan berikut
eth0:0    Link encap:Ethernet  HWaddr 00:13:46:2d:04:35
          inet addr:192.168.0.67  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:17 Base address:0xec00
Setelah berjalan semua nya kita bisa coba browse ke http://192.168.0.67 via PC yang lain. Kita akan mendapati tulisan Node 1 disitu jika semuanya berjalan sesuai rencana.

Mari kita cabut kabel / matiin komputer Node 1 / mematikan heartbeat di Node 1 atau tindakan lain untuk memutuskan node 1. Tidak berapa lama kemudian (60 detik disini - lihat opsi initdead pada file /etc/ha.d/ha.cf ) Maka terjadi perpindahan ip yang mana sekarang node 2 yang up dan memiliki IP Alias. Dan saat di browse oleh PC lain yang muncul di browser adalah tulisan Node 2.

Dan pada log di /var/log/ha-log pada Node 2 akan didapati proses swap IP
Feb 16 11:03:13 rootd_two heartbeat: [3003]: info: Received shutdown notice from 'rootd_one'.
Feb 16 11:03:13 rootd_two heartbeat: [3920]: info: acquire local HA resources (standby).
Feb 16 11:03:13 rootd_two heartbeat: [3003]: info: Resources being acquired from rootd_one.
Feb 16 11:03:13 rootd_two heartbeat: [3921]: info: No local resources [/usr/share/heartbeat/ResourceManager listkeys rootd_two]
to acquire.
Feb 16 11:03:13 rootd_two heartbeat: [3920]: info: local HA resource acquisition completed (standby).
Feb 16 11:03:13 rootd_two heartbeat: [3003]: info: Standby resource acquisition done [foreign].
harc[3950]:     2010/02/16_11:03:13 info: Running /etc/ha.d/rc.d/status status
mach_down[3968]:        2010/02/16_11:03:13 info: Taking over resource group 192.168.0.67
ResourceManager[3996]:  2010/02/16_11:03:13 info: Acquiring resource group: rootd_one 192.168.0.67 apache2
IPaddr[4024]:   2010/02/16_11:03:13 INFO:  Resource is stopped
ResourceManager[3996]:  2010/02/16_11:03:13 info: Running /etc/ha.d/resource.d/IPaddr 192.168.0.67 start
IPaddr[4106]:   2010/02/16_11:03:13 INFO: Using calculated nic for 192.168.0.67: eth0
IPaddr[4106]:   2010/02/16_11:03:13 INFO: Using calculated netmask for 192.168.0.67: 255.255.255.0
IPaddr[4106]:   2010/02/16_11:03:13 INFO: eval ifconfig eth0:0 192.168.0.67 netmask 255.255.255.0 broadcast 192.168.0.255
IPaddr[4087]:   2010/02/16_11:03:13 INFO:  Success
ResourceManager[3996]:  2010/02/16_11:03:13 info: Running /etc/init.d/apache2  start
mach_down[3968]:        2010/02/16_11:03:14 info: /usr/share/heartbeat/mach_down: nice_failback: foreign resources acquired
mach_down[3968]:        2010/02/16_11:03:14 info: mach_down takeover complete for node rootd_one.
Feb 16 11:03:14 rootd_two heartbeat: [3003]: info: mach_down takeover complete.

Sekarang jika kita jalankan perintah ifconfig pada node 2 akan didapati hasil yang menunjukkan ada IP Alias
eth0:0    Link encap:Ethernet  HWaddr 00:26:22:8a:51:50
          inet addr:192.168.0.67  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:28

Selamat mencoba, dan berusaha terus belajar ....

Permalink logo del.icio.usadd to del.icio.us | view as pdfview as pdf