High availability server dengan heartbeat + drbd di centos 6.x | Part 3

2
2171

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 :D

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 serverdrbdadm 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 (*)

2 COMMENTS

  1. # 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