Headlines News :
Home » , » Membangun High Available Server dengan teknik Failover Clustering

Membangun High Available Server dengan teknik Failover Clustering

Written By Unknown on Thursday, October 1, 2015 | 2:49 PM

Sebelum memulai, ada baiknya penulis menjabarkan secara singkat definisi dan fungsi dari Heartbeat dan DRBD, karena software open source inilah yang kali ini akan kita gunakan untuk membangun High Available Server, Juga apa yang dimaksud dengan clustering dan Failover Clustering, dan bagaimana cara kerjanya.



Heartbeat

Sumber gambar: Linux-Ha Project
Heartbeat adalah Linux High Available yang menggunakan teknik cluster, yang bisa digunakan untuk  pada beberapa sistem operasi seperti Linux, FreeBSD, OpenBSD, Solaris, MacOS. yang mengunggulkan kehandalan, ketersediaan, dan serviceability (RAS). Proyek dari Linux-HA yang berlisensi GPL. Berikut fitur yang di usung oleh Heartbeat:
  1. Tidak ada jumlah maksimum tetap untuk jumlah node yang digunakan,
  2. Resource dapat secara otomatis restart atau pindah ke node lain pada kegagalan,
  3. Bisa menghapus node gagal dari cluster,
  4. Kebijakan yang canggih untuk manajemen resource, antara sumber daya dan kendala,
  5. Memungkinkan kebijakan yang berbeda berdasarkan waktu,
  6. Sudah menyediakan berbagai macam script (untuk Apache, DB2, Oracle, PostgreSQL dll).
DRBD
Sumber gambar: LINBIT
DRBD (Distributed Replicated Block Device) adalah sistem penyimpanan didistribusikan untuk platform GNU / Linux. Terdiri dari modul kernel, aplikasi userspace beberapa manajemen dan beberapa script shell dan biasanya digunakan pada cluster High Availability (HA). DRBD mirip dengan RAID 1, kecuali bahwa ia berjalan melalui jaringan.adalah sistem distribusi storage untuk GNU/Linux. DRBD mengacu pada baik perangkat lunak (kernel modul dan userspace yang terkait), dan juga untuk spesifik perangkat blok logis dikelola oleh perangkat lunak. DRBD bisa digunakan untuk replikasi:

  1. Conventional file system,
  2. Shared disk file system seperti GFS or OCFS2,
  3. Logical block device lainnya (seperti yang digunakan LVM, misalnya),
  4. aplikasi apa saja yang membutuhkan akses langsung ke block device.
DRBD berbasis cluster sering digunakan untuk menambahkan replikasi sinkron dan High Availability untuk file server, database relasional (seperti MySQL), dan beban kerja lainnya. Inilah mengapa penulis menggunakan DRBD sebagai replicator untuk database yang penulis gunakan adalah MySQL.

    Clustering
Dalam dunia komputer yang dimaksud dengan Server Clustering adalah menggunakan lebih dari satu server yang menyediakan redundant interconnections, sehingga user hanya mengetahui ada satu sistem server yang tersedia dan komputer client tidak menyadari jika terjadi kegagalan pada sistem server karena tersedianya server sebagai redundant atau backup. Clustering Server dapat digunakan untuk Load Balancing  (biasanya aktif-aktif ) cluster ataupun Failover clustering (biasanya aktif-pasif).
Failover Clustering
Failover clustering menyediakan solusi high availability server dimana jika terjadi kegagalan pada sistem hardware seperti power supply mati yang menyebabkan server mati total maka server lain anggota cluster yang akan mengambil alih fungsi dari server yang mati, sehingga komputer client tidak mengetahui jika terjadi kegagala pada server, karena proses yang dilakukan pada server yang gagal atau mati akan dilanjutkan oleh server backup. Konsep konfigurasi failover cluster adalah membuat satu server sebagai master server dan server yang lain menjadi slave server dimana saat server dalam keadaan normal master server menangani semua request dari client. Slave server akan mengambil alih tugas master server apabila master server tidak berfungsi atau mati.

Implementasi

Setelah memahami cara kerja, saatnya kita implementasi, aplikasi yang akan kita buat HA adalah samba.
Berikut beberapa persiapan yang harus diperhatikan sebelum membangun Failover Clustering:
  1. Backup dahulu semua data yang ada ke dalam media selain yang akan kita gunakan.
  2. Usahakan besar HDD di kedua server sama, atau jika tidak masing-masing HDD memiliki jumlah block yang sama.
  3. Jika menggunakan firewall kita harus membuka port 7788 (DRBD) dan 694 (Heartbeat) agar cluster bisa berjalan dengan baik.
  4. Pastikan service samba terinstall dan berjalan dengan baik.
Berikut spesifikasi informasi sistem yang penulis gunakan:


1. 2 buah Server x3250 M2
Sumber gambar: Penulis
                             Spesifikasi Perangkat Keras Server IBM system x3250 M2

No.
Alat-alat
Spesifikasi
1.
Processor
Intel Core2Duo E4600 @2.40GHz
2.
Memory
4 GHz DDR2
3.
Harddisk
ST3320/13AS 320 GB-WDC WD2500YS-23SHB0 250 GB
4.
NIC
Gigabit Ethernet
5.
VGA
VGA ATI ES1000
2. 2 Buah Switch
Sumber gambar: Penulis
Spesifikasi Switch SR216
No.
Keterangan
1. 24 port 10/100 RJ-45 ports dengan support automatic MDI/MDI-X cable detection
2. Kapasitas switching sebesar 4,8 Gbps
3. dengan support automatic MDI/MDI-X cable detection
4. Menggunakan advanced store-and-forward packet switching untuk optimalisasi data transfer

Berikut gambar rancangan H.A:
Sumber gambar: Penulis
  1. Setting di kedua server yang akan dijadikan server dengan IP sebagai berikut:
No.
Hosname
eth0
eth1
1.
server-a
192.168.0.1
10.0.0.1
2.
server-b
192.168.0.2
10.0.0.2

  1. Pertama install Heartbeat
[root@server-a ~]# yum -y install heartbeat
  1. Konfigurasi Heartbeat di kedua server seperti dibawah ini :
[root@server-a~]# vi /etc/ha.d/ha.cf
       Logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 30
initdead 120
bcast eth0
udpport 694
auto_failback on
node server-a
node server-b

[root@server-a~]# vi /etc/ha.d/haresources
Server-a 192.168.0.100 drbddisk::testing Filesystem::/dev/drbd0::/mnt/drbd::ext3 samba

[root@server-a~]# vi /etc/ha.d/authkeys
auth 1
1 md5 S1mp@naku

4. Ubah permission authkeys dulu:
[root@ server-a ~]# /chmod 600 /etc/ha.d/authkeys
alasanya adalah karena ini adalah authkeys, dimana dengan keys ini, host dapat connect ke dalam cluster kita, ini bahaya sekali. saya belum ada penerapan enkripsi disini.

5. Jalan heartbeat di kedua server / node, server a dan server b:
[root@ server-a ~]# /etc/rc.d/init.d/heartbeat start
Starting High-Availability services:
[  OK  ]

[root@ server-a ~]# chkconfig heartbeat on

6. Instalasi DRBD :
[root@ server-a ~]# yum install drbd82 kmod-drbd82

7. Buat partisi harddisk di kedua node sesuai kebutuhan. Ukurannya harus sama, tidak boleh berbeda. Software partisi dapat menggunakan LVM, gparted, fdisk atau parted. Pastikan partisinya belum diisi Filesystem terlebih dahulu, biarkan dalam format raw. Disini saya berasumsi sudah dibuat partisi LVM, /dev/VolGroup00/voldrbd/

8. Konfigurasi DRBD di kedua server seperti dibawah ini:
[root@ server-a ~]# vi /etc/drbd.conf
global {usage-count ask;}
common { syncer { rate 10M; } }
resource DEPHUB {
   protocol C;
      handlers {
              pri-on-incon-degr "echo o > /proc/sysrq-trigger ; halt -f";
              pri-lost-after-sb "echo o > /proc/sysrq-trigger ; halt -f";
          local-io-error "echo o > /proc/sysrq-trigger ; halt -f";
              outdate-peer "/usr/lib/heartbeat/drbd-peer-outdater -t 5";
       }
     startup {
             wfc-timeout  40;
            degr-wfc-timeout 120;    # 2 minutes.
     }
     disk { on-io-error   detach; }
      net {
           timeout       60;    #  6 seconds  (unit = 0.1 seconds)
           connect-int   10;    # 10 seconds  (unit = 1 second)
           ping-int      10;    # 10 seconds  (unit = 1 second)
           max-buffers     2048;
           max-epoch-size  2048;
           cram-hmac-alg "md5";
           shared-secret "tes_DRBD";
           after-sb-0pri disconnect;
           after-sb-1pri disconnect;
           after-sb-2pri disconnect;
           rr-conflict disconnect;
        }
        syncer {
                  rate 10M;
                 al-extents 257;
       }
        on server-a {
                 device     /dev/drbd0;
                 disk         /dev/VolGroup00/voldrbd;
                 address    192.168.0.1:7788;
                 meta-disk  internal;
        }
       on server-b {
               device    /dev/drbd0;
               disk      /dev/VolGroup00/voldrbd;
               address   192.168.0.2:7788;
               meta-disk internal;
        }
}

9. Jalankan service DRBD
[root@server-a ~]# /etc/init.d/drbd start

10. Set partisi menjadi partisi primary:
[root@server-a ~]# drbdadm -- --overwrite-data-of-peer primary all

11. Buat filesystem:
[root@server-a ~]# mkfs.ext3 /dev/drbd0

12. Mount filesystem:
[root@server-a ~]# mkdir /mnt/drbd/[root@server-a ~]# mount /dev/drbd0 /mnt/drbd
[root@server-a ~]# cd /mnt/drbd/| touch contohfile.txt

13. Di server-b atau secondary, lakukan langkah berikut ini:
Membuat metadata:
[root@server-b ~]# drbdadm create-md all
[root@server-b ~]# /etc/init.d/drbd start

Setelah dijalankan, partisi secondary ini akan memulai singkronisasi atau mengkopi data dari node primary ke node secondary, tunggu hingga selesai. Untuk melihat proses singkronisasi tersebut, digunakan perintah:
[root@server-b ~]# cat /proc/drbd
Proses akan selesai Jika terlihat seperti ini:
Connected  Primary/Secondary  UpToDate/UpToDate  C  /mnt/drbd/  ext3


Uji Coba
Berikut bagaimana penulis menguji coba failover cluster, mungkin akan sadis =D, tapi beginilah seharusnya mengetest sebuah sistem sebelum launch ke production =D. Sebelumnya masukan file mp3 atau film kedalam mount samba.

akses mount point samba yaitu /mnt/drbd dari linux, kemudian mainkan file mp3 tersebut, setelah berjalan beberapa saat, 



1. skenario pertama: 
kill -9 PID samba, sambil mendengarkan dengan seksama, apakah lagu berhenti, ada suaranya sejenak berhenti, atau suara jalan mulus. Tapi perlu di catat, jangan gunakan aplikasi yang mencache dahulu file mp3 kita.

2. skenario ke dua:
cabut saja kabel server-a kita dari switch, sambil mendengarkan dengan seksama, apakah lagu berhenti, ada suaranya sejenak berhenti, atau suara jalan mulus. Tapi perlu di catat, jangan gunakan aplikasi yang mencache dahulu file mp3 kita.


3. skenario ke tiga:
shutdown server-a, sambil mendengarkan dengan seksama, apakah lagu berhenti, ada suaranya sejenak berhenti, atau suara jalan mulus. Tapi perlu di catat, jangan gunakan aplikasi yang mencache dahulu file mp3 kita.
4. skenario ke empat:
shutdown server-a, sambil mendengarkan dengan seksama, apakah lagu berhenti, ada suaranya sejenak berhenti, atau suara jalan mulus. Tapi perlu di catat, jangan gunakan aplikasi yang mencache dahulu file mp3 kita.
5. skenario ke lima:
Cabut power server-a =D, sambil mendengarkan dengan seksama, apakah lagu berhenti, ada suaranya sejenak berhenti, atau suara jalan mulus. Tapi perlu di catat, jangan gunakan aplikasi yang mencache dahulu file mp3 kita.

Sekian artikel ini, biar dokumen lama, semoga bisa berguna.
Share this post :

Post a Comment

 
Copyright © 2011. COMASTNET - All Rights Reserved