Failover with Heartbeat, DRBD, HTTPD, et al

Assalamu’alaykum menjelang bulan suci ramadhan πŸ™‚

Ini menjadi tulisan terakhir saya di sisi teknis namun bukan berarti saya berhenti menulis.

Kebutuhan kita dalam usaha ‘menjaga’ agar layanan dari server tetap berjalan adalah dengan membuat sebuah sistem pencegahan dan pemberdayaan. Baik itu berupa penambahan dalam bentuk fisik/ hardware maupun non-fisik/ service.
Salah satu dari sistem diatas yang saya sebutkan (pemberdayaan), dapat dengan membangun superkomputer (https://tifosilinux.wordpress.com/2015/03/23/update-superkomputer-dengan-native-gnu-linux-finale/) dan cloud (https://tifosilinux.wordpress.com/2015/01/03/cloud-computing-dengan-vmware/). Semua tulisan lengkap saya silahkan kunjungi dibagian artikel.

Baik, itu hanya prologue dari saya, kali ini saya akan memaparkan hal yang sangat mendasar dalam memasang sebuah sistem failover. Secara teori kita akan dapat menemukan banyak di berbagai forum, blog, dan lainnya. Jadi, intinya bagaimana cara kita dalam usaha menjadikan server tetap ‘hidup’ (dalam hal ini layanan ‘dipindahkan’Β  dari node asal ke node lain yang available).

Requirement system yang saya gunakan dalam uji coba adalah:
– Three nodes VM (2 nodes failover & 1 node access)
– CentOS 6.5 x86_64
– One GB of RAM for each nodes
– Eight GB of HDD & 4G of HDD untuk DRBD FS
– heartbeat, httpd-devel, drbd-utils dan kmod-drbd (modul – kebutuhan kernel) packages.
– Two NIC/ Ethernet card ( 1 for connection between node & 1 for internet connection (install package only) )

Langkah-langkah :
1. Lakukan instalasi repository dan packages pada setiap node failover, disabled security enchance di linux dan sesuaikan hostname
repos
2. Buat partisi baru untuk HDD khusus DRBD tanpa menentukan filesystem nya terlebih dahulu (lihat caranya di tulisan saya pada materi RAID : https://tifosilinux.wordpress.com/2014/11/25/raid0-raid1-ubuntu-raid10-centos-conceptual-and-implementation/)
3. Rencana nya adalah kita membutuhkan 2 IP untuk setiap node failover dan 1 floating IP untuk heartbeat
4. Untuk main direktori http (berkas index dan aplikasi) dan data MySQL saya letakan pada /opt
5. Buat berkas autkeys ha.cf dan haresources pada direktori /etc/ha.d/ yang isi nya sbb :
config
dimana httpd dan mysqld pada berkas haresources merupakan resource name yang akan kita manfaatkan dan IP 192.168.1.5 merupakan floating IP yang akan dialokasikan.
6. Kemudian probing module dari drbd dengan perintah ~# modprobe drbd
7. Buat berkas di /etc/drbd.d/server.res dengan isi sbb :
res1res28. Dimana sebelumya pada /etc/drbd.conf, option include telah merujuk ke berkas konfigurasi yang dimaksud.
9. Kita format block device DRBD dengan perintah ~# dd if=/dev/zero of=/dev/[device_use] bs=1M && drbdadm create-md server
10. service drbd start && service heartbeat start
11. Jangan lupa, seluruh berkas konfigurasi danΒ  perintah2 diatas harus diperlakukan pada kedua server failover.
12. Jalankan parameter berikut pada node 1 : ~#
drbdadm – –Β  – –overwritedataofpeer primary all
13. Lihat perubahan nya secara realtime dengan parameter ~# watch -n1 “cat /proc/drbd” .
DRBD
14. Jika tidak ada masalah, kita bisa langsung menguji pada node 1 dengan parameter berikut : ~# mkfs.ext4 /dev/drbdO && mkdir -p /opt/ && mount /dev/drbdO /opt/ && touch /opt/tes.txt
15. Jika ingin menjadikan node 2 sebagai primary server, silahkan umount direktori tersebut pada node 1 dan jadikan sebagai secondary server dengan perintah berikut ~# drbdadm secondary server . Sementara pada node 2 berikan perintah ~# drbdadm primary server . Mounting dan lakukan seperti node 1, maka kondisi device akan ter-replikasi sama seperti kondisi terakhir node 1.
16. Pada kenyataan nya, heartbeat melakukan hal tersebut secara otomatis
17. Capture 1 (keadaan normal) :
tes1
18. Capture 2 (node 1 down kemudian ‘dipindahkan’ ke node 2 failover, 10sec approx.)
tes219. Selamat belajar dan berkreasi. πŸ™‚ karena metode ini dapat di implementasikan bersama MySQL replikasi, vHost atau proxypass http, dan lain-lain.

Catatan :
Jika kita kesulitan menentukan hostname & menemukan network interface yang digunakan/ ‘tidak hidup’, maka salah satu dari banyak cara yang bisa digunakan adalah dengan :
1. Dengan meng-edit berkas di /etc/sysconfig/network dan /etc/hosts untuk menentukan nama host. Kemudian restart rsyslog pada /etc/init.d/rsyslog
2. Buka berkas di /etc/udev/rules.d/70-persistent-net.rules . Sesuaikan PCI devices dan ingat MAC Address yang akan digunakan. Buka atau salin juga berkas di /etc/sysconfig/network-scripts/ifcfg-eth[no_interface] yang akan ditambahkan dengan menyesuaikan MAC Address nya (Untuk UID bisa kita marking saja). Terakhir, reload dengan ~# start_udev && service network restart

 

Advertisements

Tinggalkan pesan atau komentar

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s