Hai sobat sekolahlinux, kali ini kita akan melanjutkan tutorial untuk High availability server dengan heartbeat + drbd di centos 6.x, untuk tutorial sebelumnya bisa dilihat di sini.
High availability server dengan heartbeat + drbd di centos 6.x | Part 1
High availability server dengan heartbeat + drbd di centos 6.x | Part 2
nah mari kita lanjutkan tahapan berikutnya, kali ini kita akan mengimplementasikan DRBD 😀 jadi persiapkan dirimu dan logikamu, oke ikuti cara-cara dibawah ini, sekedar mengingatkan berikut ini topologi ip dan server yang kita gunakan.
berikut ini ip yang akan digunakan pada masing-masing server
floating ip : 192.168.1.5 <<– ip ini adalah ip bayangan biar lebih paham ikutin aja tutorialnya
node1.akbar : 192.168.1.10 <<– node1.akbar adalah nama hostname dari server1
node2.akbar : 192.168.1.20 <<– node2.akbar adalah nama hostname dari server2
jangan lupa install elrepo repo, konfigurasi ntp dan waktu pada kedua server, konfigurasi disk yang akan digunakan, dll, tutorialnya ada di part1 😀
jika sudah semua saatnya install drbd dengan command dibawah ini pada kedua server
yum install -y drbd84-utils kmod-drbd84
modprobe drbd
lalu buat file server.res pada server1
vim /etc/drbd.d/server.res
isikan dengan code ini didalamnya
resource server { startup { wfc-timeout 30; outdated-wfc-timeout 20; degr-wfc-timeout 120; } handlers { split-brain "/usr/lib/drbd/notify-split-brain.sh root"; } net { cram-hmac-alg sha1; shared-secret rahasia; after-sb-0pri discard-zero-changes; after-sb-1pri discard-secondary; after-sb-2pri disconnect; } syncer { rate 100M; al-extents 257; on-no-data-accessible io-error; } on node1.akbar { device /dev/drbd0; disk /dev/sdb1; address 192.168.1.10:7788; flexible-meta-disk internal; } on node2.akbar { device /dev/drbd0; disk /dev/sdb1; address 192.168.1.20:7788; flexible-meta-disk internal; } }
jika sudah save file tersebut dan copy ke server2 dengan cara dibawah ini
scp /etc/drbd.d/server.res root@192.168.1.20:/etc/drbd.d/
jalankan command ini pada kedua server, script (of=/dev/sdb1) adalah partisi yang kita buat di tutorial part1
dd if=/dev/zero of=/dev/sdb1 bs=1M
jika sudah jalankan perintah ini pada kedua server: drbdadm create-md server
[root@node1 ~]# drbdadm create-md server initializing activity log NOT initializing bitmap Writing meta data... New drbd meta data block successfully created. success [root@node1 ~]#
lalu jalankan command ini pada server1 lalu server2
[root@node1 ~]# service drbd start Starting DRBD resources: [ create res: server prepare disk: server adjust disk: server adjust net: server ] degr-wfc-timeout has to be shorter than wfc-timeout degr-wfc-timeout implicitly set to wfc-timeout (30s) .... [root@node1 ~]#
jika sudah jalankan command ini hanya pada server1
drbdadm -- --overwrite-data-of-peer primary all
untuk melihat prosesnya bisa dengan menjalankan command ini
[root@node1 ~]# cat /proc/drbd version: 8.4.5 (api:1/proto:86-101) GIT-hash: 1d360bde0e095d495786eaeb2a1ac76888e4db96 build by phil@Build64R6, 2014-10-28 10:32:53 0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r----- ns:64872 nr:0 dw:0 dr:69272 al:0 bm:0 lo:0 pe:1 ua:4 ap:0 ep:1 wo:f oos:759408 [>...................] sync'ed: 8.5% (759408/823920)K finish: 0:00:11 speed: 64,512 (64,512) K/sec [root@node1 ~]#
tunggu hingga prosesnya 100%, jika sudah 100% maka harusnya ketika diketikkan command ini hasilnya seperti dibawah ini untuk disisi server1
[root@node1 ~]# cat /proc/drbd version: 8.4.5 (api:1/proto:86-101) GIT-hash: 1d360bde0e095d495786eaeb2a1ac76888e4db96 build by phil@Build64R6, 2014-10-28 10:32:53 0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r----- ns:823920 nr:0 dw:0 dr:824584 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0 [root@node1 ~]#
sedangkan untuk disisi server2 hasilnya seperti dibawah ini
[root@node2 ~]# cat /proc/drbd version: 8.4.5 (api:1/proto:86-101) GIT-hash: 1d360bde0e095d495786eaeb2a1ac76888e4db96 build by phil@Build64R6, 2014-10-28 10:32:53 0: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r----- ns:0 nr:823920 dw:823920 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0 [root@node2 ~]#
TES KONFIGURASI DRBD
jalankan command dibawah ini hanya pada sisi server1
[root@node1 ~]# mkfs.ext4 /dev/drbd0 mke2fs 1.41.12 (17-May-2010) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 51520 inodes, 205980 blocks 10299 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=213909504 7 block groups 32768 blocks per group, 32768 fragments per group 7360 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840 Writing inode tables: done Creating journal (4096 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 27 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. [root@node1 ~]#
lalu buat folder dibawah ini hanya pada sisi server1
[root@node1 ~]# mkdir /sekolahlinux [root@node1 ~]# mount /dev/drbd0 /sekolahlinux
ketikkan command dibawah ini pada server1 untuk melihat apakah folder sekolahlinux sudah termount atau belum dengan /dev/drbd0
[root@node1 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 14G 1.1G 12G 9% / tmpfs 203M 0 203M 0% /dev/shm /dev/drbd0 776M 824K 735M 1% /sekolahlinux [root@node1 ~]#
jalankan comman dibawah ini, untuk membuat file di folder sekolahlinux pada server1 dan nantinya jika drbdnya berhasil file yang kita buat pada server1 akan muncul di server2.
[root@node1 ~]# touch /sekolahlinux/file-percobaan [root@node1 ~]# ls /sekolahlinux/ file-percobaan lost+found [root@node1 ~]#
jika sudah unmount /dev/drbd0 pada server1 dan jadikan server1 sebagai secondary (*)
[root@node1 ~]# umount /sekolahlinux/ [root@node1 ~]# drbdadm secondary server
jika sudah masukkan command ini pada server2 (*)
[root@node2 ~]# drbdadm primary server [root@node2 ~]# mkdir /sekolahlinux [root@node2 ~]# mount /dev/drbd0 /sekolahlinux [root@node2 ~]# ls /sekolahlinux/ file-percobaan lost+found [root@node2 ~]#
jika berhasil maka harusnya file file-percobaan yang kita buat di server1 akan langsung muncul di server 2 tanpa harus kita membuatnya,
jangan lupa kembalikan server1 sebagai primary jika sudah melakukan test ini 😀 dengan membalik cara diatas yang saya beri tanda (*)
# drbdadm secondary server
gan, saat command diatas muncul : 0: State change failed: (-12) Device is held open by someone
Command ‘drbdsetup-84 secondary 0’ terminated with exit code 11
jadi ga bisa di set ke secondary, gimana ya solusinya
pastikan agan sudah menjalankan unmount /dev/drbd0 pada server1, karena jika tidak maka akan muncul pesan tersebut