Apa itu DRBD? Dan apa pula hubungannya dengan HA? Coba jalan-jalan ke sini dulu.
Pada dasarnya DRBD adalah software untuk sinkronisasi data tetapi pada level block device, yaitu level dibawah filesystem. Jadi membuat filesystem-pun akan disinkronkan. Sinkronisasi pada level block device ini diperlukan (tetapi tidak harus) agar HA bisa lebih mulus pergantian komputernya.
OK, langsung ke hardware dan konfigurasinya yang diperlukan untuk drbd. Pertama-tama tentu partisi yang akan disinkronkan, berikut hasil perintah ‘fdisk -l’ dari kedua komputer:
[root@hb1 ~]# fdisk -l .... Device Boot Start End Blocks Id System /dev/hda1 * 1 1305 10482381 83 Linux /dev/hda2 1306 1436 1052257+ 82 Linux swap / Solaris /dev/hda3 1437 2564 9060660 83 Linux
[root@hb2 ~]# fdisk -l .... Device Boot Start End Blocks Id System /dev/hda1 * 1 1305 10482381 83 Linux /dev/hda2 1306 1370 522112+ 82 Linux swap / Solaris /dev/hda3 1371 2498 9060660 83 Linux
Perhatikan, walau besar kedua hardisk berbeda, besar partisi (hda3) yang akan dipakai harus sama persis (1127 blok).
Selanjutnya saya menggunakan 2 kartu jaringan di masing-masing komputer. Berikut hasil ‘ifconfig’ dari kedua komputer:
[root@hb1 ~]# ifconfig eth0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx inet addr:192.168.0.11 Bcast:192.168.0.255 Mask:255.255.255.0 .... eth1 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx inet addr:10.0.0.11 Bcast:10.0.0.255 Mask:255.255.255.0 ....
[root@hb2 ~]# ifconfig eth0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx inet addr:192.168.0.12 Bcast:192.168.0.255 Mask:255.255.255.0 .... eth1 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx inet addr:10.0.0.12 Bcast:10.0.0.255 Mask:255.255.255.0 ....
eth0 akan terhubung ke jaringan lokal dan eth1 akan saling terhubung dengan kabel kros, dengan kata lain kedua komputer punya jalur pribadi lewat eth1. Kenapa hal ini perlu dilakukan? Tipe sinkronisasi yang dipilih memerlukan bandwidth yang cukup besar, agar tidak mengganggu jaringan lokal maka perlu dipisahkan lewat jalur pribadi ini. Untuk men-tes apakah jalur ini telah berfungsi lakukan ping ke IP dari eth1 komputer lainnya.
Hardware dan setingan yang diperlukan sudah, sekarang ke file konfigurasi. File yang dipakai adalah /etc/drbd.conf. Berikut isi drbd.conf dari kedua komputer:
global { usage-count yes; } common { protocol C; } resource r0 { device /dev/drbd1; meta-disk internal; net { after-sb-0pri discard-younger-primary; after-sb-1pri discard-secondary; after-sb-2pri disconnect; } on hb1 { address 10.0.0.11:7789; disk /dev/hda3; } on hb2 { address 10.0.0.12:7789; disk /dev/hda3; } }
Penjelasan singkatnya sebagai berikut:
protocol C;
Ini adalah protokol yang digunakan drbd untuk sinkronisasi, C adalah Synchronous mirroring, oleh karena itu kita memerlukan jalur pribadi untuk tipe ini.
resource r0
adalah nama resource yang akan selalu digunakan sebagai parameter ketika memanggil fungsi-fungsi drbd.
device /dev/drbd1;
Device ini yang akan kita gunakan ketika melakukan mount
Opsi didalam net{}
digunakan untuk menangani masalah split brain.
on hb1 { address 10.0.0.11:7789; disk /dev/hda3; }
Ini adalah konfigurasi untuk komputernya, masing-masing disesuaikan dengan setingan komputer.
address 10.0.0.11:7789;
adalah IP jalur pribadi dengan port standar drbd.
disk /dev/hda3;
adalah partisi yang digunakan oleh drbd.
Setelah selesai dengan file konfigurasi tersebut, kita akan melakukan langkah pendahuluan untuk menghidupkan drbd ini. Perintah-perintah berikut dilakukan di kedua komputer.
Membuat device metadata:
[root@hb1 ~]# drbdadm create-md r0 .... Writing meta data... initialising activity log NOT initialized bitmap New drbd meta data block sucessfully created. success
Memasang backup device dan menyetel parameter sinkronisasi:
[root@hb1 ~]# drbdadm attach r0 [root@hb1 ~]# drbdadm syncer r0
Untuk centos, sebelum memasang backup device perlu ‘modprobe drbd’ dulu. Setelah proses inisialisasi selesai maka loading kernel driver akan dilakukan oleh service drbd.
Selanjutnya adalah mengkoneksi kedua komputer:
[root@hb1 ~]# drbdadm connect r0
Untuk melihat status setelah prosedur diatas silahkan lihat isi file /proc/drbd:
[root@hb1 ~]# cat /proc/drbd version: 8.2.6 (api:88/proto:86-88) GIT-hash: 3e69822d3bb4920a8c1bfdf7d647169eba7d2eb4 build by buildsvn@c5-i386-build, 2008-10-03 11:42:32 1: cs:Connected st:Secondary/Secondary ds:Inconsistent/Inconsistent C r--- ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 oos:9060344
“cs:Connected” berarti kedua drbd sudah terkoneksi, “st:Secondary/Secondary” berarti status dari keduanya adalah secendary semua, nantinya harus ada yang jadi primary, yang didepan adalah drbd dari komputer tempat melihat status ini, “ds:Inconsistent/Inconsistent” berarti disk status inconsistent, pada saat ini adalah normal, nantinya kita perlu sinkronkan manual dulu.
Proses selanjutnya adalah mengsinkronkan pertama kali. Kalau kita memulai dari partisi kosong proses ini bisa dimulai dari komputer mana saja, tetapi satu komputer partisi yang dipakai sudah berisi data maka harus dimulai dari komputer tersebut, kalau tidak data akan hilang!
[root@hb1 ~]# drbdadm -- --overwrite-data-of-peer primary r0
Untuk melihat prosesnya bisa lewat /proc/drbd lagi:
[root@hb1 ~]# cat /proc/drbd version: 8.2.6 (api:88/proto:86-88) GIT-hash: 3e69822d3bb4920a8c1bfdf7d647169eba7d2eb4 build by buildsvn@c5-i386-build, 2008-10-03 11:42:32 1: cs:SyncSource st:Primary/Secondary ds:UpToDate/Inconsistent C r--- ns:6016 nr:0 dw:0 dr:6016 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 oos:9054328 [>....................] sync'ed: 0.1% (8842/8847)M finish: 7:11:09 speed: 348 (332) K/sec
Yak, sedang berjalan, tunggu sampai selesai, 7 jam? itu baru 8847 MB 😉 Perhatikan bahwa status (st) berubah menjadi Primary/Secondary dan disk state (ds) menjadi UpToDate/Inconsistent.
Setelah sinkronisasi pertama selesai mari kita coba. Partisi yang dipakai drbd belum di format, maka perlu kita format dulu sebelum dipakai. Perhatikan bahwa kita hanya perlu memformat pada komputer yang status drbd-nya primary, yang secondary akan tersinkronisasi (bahkan pada level pembuatan file system 😉 ). Perhatikan juga device yang kita rujuk bukan lagi /dev/hda3
tetapi /dev/drbd1
seperti yang ada dalam file konfigurasi.
[root@hb1 ~]# mkfs.ext3 /dev/drbd1 mke2fs 1.39 (29-May-2006) .... Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done ....
Setelah itu kita buat folder (/drdisk
) yang akan menjadi tujuan mount di kedua komputer dan mari kita lakukan tes sederhana.
Di komputer yang jadi primary:
mount /dev/drbd1
ke/drdisk
- buat file
umount
kembali- turunkan role-nya jadi secondary
[root@hb1 ~]# mount /dev/drbd1 /drdisk/ [root@hb1 ~]# echo "just test drbd" >/drdisk/testdrbd [root@hb1 ~]# umount /drdisk [root@hb1 ~]# drbdadm secondary r0
Setelah itu kita lakukan langkah berikut di komputer yang awalnya secondary:
- Naikkan role-nya sebagai primary
mount /dev/drbd1
ke/drdisk
- coba lihat isi
/drdisk/testdrbd
yang pasti sama dengan komputer satu lagi
[root@hb2 ~]# drbdadm primary r0 [root@hb2 ~]# mount /dev/drbd1 /drdisk/ [root@hb2 ~]# cat /drdisk/testdrbd just test drbd
Kalau sudah OK, umount dan turunkan role-nya menjadi secondary lagi kalau mau digunakan oleh heartbeat. Selesai memasang DRBD, fuih… 😉
wow… singkat, padat tp jelas
Mantap bro…
itu bsa ga mirroting system ga jadi setiap ada perubahan di system utama sama dng system backup..
thx
Tidak bisa karena file system yang jadi backup tidak bisa di mount. Untuk system mungkin bisa menggunakan rsync.
@hansen
bisa yah misalnya qta rsync / ??
apakah nnti konfigurasi network server A tdk tercopy juga ke Server B ??
kira2 file konfigurasi apa saja yg ga perlu di rsync ke server B
thx bang hansen 😀
@adhieee
Kalo mengsinkronkan / akan banyak masalah, mending dipilihin apa saja yang perlu disamaain. Biasanya isi dari /etc dan /var yang bisa disinkronkan. Keperluannya buat apa ya mengsinkronkan konfigurasi? Kalo mau bikin backup server lanjutin aja seri ini 😉
Mas,, untuk login ke hb_gui, gimana ya mas?
server apa yang diisi?
usename ?
passwordnya apa?
aq udah selesaiin tahap 3 tapi pengen monitoring pake hb_gui, tapi ga bisa login.
Mohon pencerahannya…
Terima kAsih
maaf gan ane masih bingung nih soal sync datanya kalo yg didaftarkan di drbd.confnya itu kan drive hda3 nya ya nah ko yg di format ext drbd0nya ya dan waktu di cek ko datanya ko adanya di drbd0 bukannya di hda3 yah ??
DRBD membuat semacam logical volume untuk sinkronisasi ini, yg akan dipakai untuk file system supaya sinkron dengan yg satunya. Kalau kita pakai hda3, isinya gak akan disinkronkan oleh DRBD. Ini semacam LVM, dimana kita memasang file systemnya di logical volume yg LVM buat, bukan partisi hard disk langsung.