PROXMOX + DRBD (Distributed Replicated Block Devices)

DRBD (Distributed Replicated Block Device) adalah sistem penyimpanan didistribusikan untuk platform GNU/Linux. DRBD mengacu pada block device yang ditancang sebagai blok bangunan untuk membentuk High Availbility (HA).
 
Hal ini dilakukan dengan mirroring seluruh blok device melalui jaringan yang telah ditetapkan. Feature yang terkait dengan DRBD Proxmox adalah :
1. LVM storage pada DRBD (primary/primary)
2. Semua disk VM dapat direplikasi secara real time pada kedua node Proxmox melalui jaringan. Sebagai alternatifnya semua penyimpanan VM dapat direplikasi mendekati real time ke banyak server backup.
3. kemampuan untuk live migration berjalan di mesin tanpa downtime tanpa membutuhkan SAN (iSCSI, NFS, FC) karena data telah tersedia pada kedua node.

Untuk membuat DRBD minimal dibutuhkan 2 buah server yang identik dan dengan perangkat tambahan seperti berikut :
1. Network card tambahan yang menghubungkan secara langsung antara 2 buah server.
2. Volume RAID kedua komputer server.
Berikut beberapa langkah untuk membangun DRBD didalam virtualisasi Proxmox Virtual Environment.
untuk kedua server login terlebih dahulu pada Proxmox pertama menggunakan terminal.
 
Install paket DRBD dan lakukan update repository terlebih dahulu pada kedua server Proxmox
Proxmox 1
root@telkom:~#apt-get update
root@telkom:~#apt-get install drbd8-utils
 
Proxmox 2
root@telkom:~#apt-get update
root@telkom:~#apt-get install drbd8-utils
Buat partisi baru pada hardisk yang kedua (bukan hardisk sistem) di masing-masing server Proxmox.
Proxmox 1

root@telkom:~#fdisk /dev/sdb
Command (M for help): n
Partition type:
P
primary (0 primary, 0 extended, 3 free)
E
extended
Select (default p): p
Partition number (1-4): 1
First cylinder (1-19457, default 1):1
Last cylinder or +size or +sizeM or +sizeK (1-19457, default 19457): 194
75
Command (m for help): w
The partition table has ben altered!
Calling ioctl() to re-read partition table.
Syncing disks.
Promox 2
root@telkom1:~#fdisk /dev/sdb
Command (M for help): n
Partition type:
P
primary (0 primary, 0 extended, 3 free)
E
extended
Select (default p): p
Partition number (1-4): 1
First cylinder (1-19457, default 1):1
Last cylinder or +size or +sizeM or +sizeK (1-19457, default 19457): 194
75
Command (m for help): w
The partition table has ben altered!
Calling ioctl() to re-read partition table.
Syncing disks.
Edit file konfigurasi di /etc/drbd.d/global_common.conf dan tambahkan beberapa script berikut.
root@telkom:~#nano /etc/drbd.d/global_common.conf

global {
usage-count yes;
#minor-count dialog-refresh disable-ip-verification
}
common {
protocol C;
startup {
wfc-timeout 0;
degr-wfc-timeout 60;
become-primary-on both;
}
net {
cram-hmac-alg sha1;
shared-secret “password”;
allow-two-primaries;
after-sb-0pri discard-zero-changes;
after-sb-1pri discard-secondary;
after-sb-2pri disconnect;
}
syncer {
rate 20M;
verify-alg md5;
}
}

Buat file konfigurasi /etc/drbd.d/r0.res dan masukkan script seperti berikut.
root@telkom:~#nano /etc/drbd.d/r0.res

resource r0 {
on telkom {
device /dev/drbd0;
disk /dev/sdb1;
address 192.168.156.137:7788;
meta-disk internal;
}
on telkom1 {
device /dev/drbd0;
disk /dev/sdb1;
address 192.168.156.138:7788;
meta-disk internal;
}
}

 
Kopikan 2 file konfigurasi tadi ke server Proxmox yang kedua.

root@telkom:~#scp /etc/drbd.d/* root@192.168.156.138:/etc/drbd.d/

Aktifkan DRBD pada kedua server dengan perintah berikut.
Proxmox 1
root@telkom:~#service drbd start
 
Proxmox 2
root@telkom1:~#service drbd start

Buat meta disk pada kedua server Proxmox.
Proxmox 1
root@telkom:~#drbdadm create-md r0
 
Proxmox 2
root@telkom:~#drbdadm create-md r0

Aktifkan meta disk pada kedua server Proxmox.
Proxmox 1
root@telkom:~#drbdadm up r0
 
Proxmox 2
root@telkom:~#drbdadm up r0
 
Lakukan sinkronisasi antar kedua server Proxmxo dengan perintah berikut. Sebagai catatan lakukan hanya pada server Proxmxo pertama saja.
root@telkom:~#drbdadm — –overwrite-data-of-peer primary r0
 
Lihat status sinkronisasi dengan perintah berikut.
root@telkom:~#watch cat /proc/drbd

Drbd driver loaded OK; device status:
Version: 8.3.13 (api:88/proto:86-96)
GIT-bash: 83ca11208600faacab2f157bc5a9324f7bd7f77 build by root@sighted, 2012-10-09
12:47:51
m:res cs ro ds
… Sync’ed: 0.2% (206680/20706)
0:r0 SyncSource Primary/Secondary
UpToDate/Inconsistent
p
C
 
Tunggu sampai 100 % kemudian restart service DRBD di kedua server Proxmox.

Proxmxo 1

root@telkom:~#service drbd restart
 
Proxmox 2

root@telkom1:~#service drbd restart
 
Lihat statusnya kembali.

root@telkom:~#service drbd status
Drbd driver loaded OK; device status:
Version: 8.3.13 (api:88/proto:86-96)
GIT-bash: 83ca11208600faacab2f157bc5a9324f7bd7f77 build by root@sighted, 2012-10-09
12:47:51
m:res cs
ro
0:r0 SyncSource Primary/Primary
ds p
UpToDate/UpToDate
mounted fstype
C

Buat physical volume untuk disk DRBD yaitu /dev/drbd0 pada salah satu server Proxmox saja melalui terminal dengan perintah.
root@telkom:~#pvcreate /dev/drbd0
 
Cek physical volume yang baru dibuat melalui terminal.
root@telkom:~#pvscan

PV /dev/sda3 VG pve lvm2 [49.50 GiB / 6.25 GiB free]
PV /dev/drbd0 lvm2
[20.00 GiB / 15.00 GiB free]
Total: 2 [69.49 GiB] / in use: 2 [69.49 GiB] in no VG:0 [0 ]

 
Selanjutnya buat sebuah volume group misalkan “myvg”.
root@telkom:~#vgcreate myvg /dev/drbd0
Volume group “myvg” successfully created

 
Cek volume group yang baru saja dibuat.
root@telkom:~#pvscan

PV /dev/sda3 VG pve
lvm2
PV /dev/drbd0 VG myvg lvm2
[49.50 GiB / 6.25 GiB free]
[20.00 GiB / 15.00 GiB free]
Total: 2 [69.49 GiB] / in use: 2 [69.49 GiB] in no VG:0 [0 ]

 
Lakukan edit script pada file konfigurasi LVM yaitu /etc/lvm/lvm.conf
root@telkom:~#nano /etc/lvm/lvm.conf

#By default we accept every block device :
filter = [ “r|/dev/sdb1|”, “r|/dev/disk/|”, “r|/dev/block/|”, “a/.*/” ]
 
Tambahkan storage baru melalui web Proxmox di menu Datacenter > storage > Add > LVM.
 
Isikan ID dan volume group sesuai yang sudah dibuat sebelumnya. Contoh ID “myvg” dan volume group “myvg”
Lihat hasil storage yang baru ditambahkan akan muncul di semua anggota cluster.