Heartbeat
Sumber gambar: Linux-Ha Project |
- Tidak ada jumlah maksimum tetap untuk jumlah node yang digunakan,
- Resource dapat secara otomatis restart atau pindah ke node lain pada kegagalan,
- Bisa menghapus node gagal dari cluster,
- Kebijakan yang canggih untuk manajemen resource, antara sumber daya dan kendala,
- Memungkinkan kebijakan yang berbeda berdasarkan waktu,
- Sudah menyediakan berbagai macam script (untuk Apache, DB2, Oracle, PostgreSQL dll).
Sumber gambar: LINBIT |
- Conventional file system,
- Shared disk file system seperti GFS or OCFS2,
- Logical block device lainnya (seperti yang digunakan LVM, misalnya),
- 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
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
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:
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:
- Backup dahulu semua data yang ada ke dalam media selain yang akan kita gunakan.
- Usahakan besar HDD di kedua server sama, atau jika tidak masing-masing HDD memiliki jumlah block yang sama.
- Jika menggunakan firewall kita harus membuka port 7788 (DRBD) dan 694 (Heartbeat) agar cluster bisa berjalan dengan baik.
- Pastikan service samba terinstall dan berjalan dengan baik.
Berikut spesifikasi informasi sistem yang penulis gunakan:
1. 2 buah Server x3250 M2
Spesifikasi Perangkat Keras Server IBM system x3250 M2
Berikut gambar rancangan H.A:
1. 2 buah Server x3250 M2
Sumber gambar: Penulis |
- No.Alat-alatSpesifikasi1.ProcessorIntel Core2Duo E4600 @2.40GHz2.Memory4 GHz DDR23.HarddiskST3320/13AS 320 GB-WDC WD2500YS-23SHB0 250 GB4.NICGigabit Ethernet5.VGAVGA 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 |
- 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
|
- Pertama install Heartbeat
[root@server-a
~]# yum -y install heartbeat
- 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
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
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
[ 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 {
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 {
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;
}
}
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
[root@server-a ~]# /etc/init.d/drbd start
10. Set partisi
menjadi partisi primary:
[root@server-a ~]# drbdadm -- --overwrite-data-of-peer primary all
[root@server-a ~]# drbdadm -- --overwrite-data-of-peer primary all
11. Buat
filesystem:
[root@server-a ~]# mkfs.ext3 /dev/drbd0
[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 ~]# 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
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.
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.
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.
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.
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.
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.
Post a Comment