Proxmox
Membuat cluster di proxmox menggunakan share disk DRBD – Bagian 2
Pada tulisan sebelumnya kita telah lakukan pembuatan cluster dan share disk menggunakan DRBD, langkah selanjutnya adalah membuat VM, sesuai skenario kita akan buat satu vm yang akan kita pasang Debian Wheezy.
Tapi sebelum dilakukan pembuatan VM, kita konfigurasikan dulu lvm disk yang sudah kita buat sebelumnya agar bisa digunakan di proxmox.
Langsung saja ke Datacenter — Storage — Add — LVM group.
KONFIGURASI VM
Kita lanjutkan ke proses pembuatan VM, kita bisa langsung ke tombol “Create VM”, beri nama, pilih sistem operasinya dst, satu hal yang menjadi catatan pada pembuatan vm ini adalah saat penentuan dimana vm ini akan diletakkan, kita pilih VG yang sebelumnya sudah kita siapkan, yaitu “vg_drbd”.
Saat VM sudah terbuat, saatnya kita melakukan konfigurasi selanjutnya.
KONFIGURASI HA
HA adalah kepanjangan dari High Availability yang fungsinya adalah agar jika suatu saat salah satu mesin proxmox mati, maka virtual machine yang ada di dalamnya bisa otomatis dipindahkan ke mesin proxmox yang lain, dalam hal ini jika proxmox01 mati maka virtual machine yang ada di proxmox01 akan dipindahkan ke proxmox02.
Syarat dari HA ini adalah:
- Harus ada Shared storage
- Network yang Reliable
- Harus ada Fencing device
Tapi dalam tulisan ini dikarenakan saya tidak punya fencing devices maka kita akan coba menggunakan “manual fencing device” yang mana ini digunakan hanya untuk kebutuhan simulasi pada tulisan ini.
“Fencing is vital for Proxmox to manage a node loss and thus provide effective HA. Fencing is the mechanism used to prevent data incoherences between nodes in a cluster by ensuring that a node reported as “dead” is really down. If it is not, a reboot or power-off signal is sent to force it to go to a safe state and prevent multiple instances of the same virtual machine run concurrently on different nodes”
Jadi jika tidak ada fencing devices maka tidak akan ada yang bisa memberitahukan ke node yang lain jika salah satu node mati.
Informasi selengkapnya tentang fencing device bisa dibaca di link berikut.
Oke sekian basa-basinya dan mari kita coba, dan sebelumnya silahkan berdoa sesuai agama dan kepercayaannya masing-masing 🙂
Login ke proxmox01, kemudian salin tempel konfigurasi clusternya.
root@proxmox01:~# cp /etc/pve/cluster.conf /etc/pve/cluster.conf.new
root@proxmox01:~# vi /etc/pve/cluster.conf.new <?xml version="1.0"?> <cluster config_version="6" name="cluster01"> <cman keyfile="/var/lib/pve-cluster/corosync.authkey"/> <fencedevices> <fencedevice agent="fence_manual" name="human"/> </fencedevices> <clusternodes> <clusternode name="proxmox01" nodeid="1" votes="1"> <fence> <method name="single"> <device name="human" nodename="proxmox01"/> </method> </fence> </clusternode> <clusternode name="proxmox02" nodeid="2" votes="1"> <fence> <method name="single"> <device name="human" nodename="proxmox02"/> </method> </fence> </clusternode> </clusternodes> <rm/> </cluster>
Jangan lupa untuk mengubah config_version=”6″ menggunakan nilai yang lebih tinggi setiap kali kita melakukan perubahan pada konfigurasi cluster. Jangan lupa juga untuk melakukan validasi terhadap perubahan konfigurasi clusternya.
root@proxmox01:~# ccs_config_validate -v -f /etc/pve/cluster.conf.new
Setelah hasil validasi OK, maka lakukan “activate” terhadap konfigurasi yang sudah dibuat.
Datacenter -- HA -- Activate
Langkah selanjutnya adalah menambahkan VM yang sudah kita buat tadi ke dalam group HA.
Datacenter -- HA -- Add -- HA managed VM/CT
Jangan lupa pastikan VM ID diisi dengan VM ID dari VM yang akan kita masukkan ke group HA, dalam hal ini VM ID nya adalah 100, kemudian “Activate”.
Langkah selanjutnya adalah mengaktifkan service RGManager di proxmox01 dan proxmox02.
proxmox01 -- Services -- RGManager - Start
Sampai disini kita akan simulasikan apakah VM ID 100 tadi bisa failover ke proxmox02 jika proxmox01 tidak available. Dalam tulisan ini kita akan coba simulasikan dengan hanya mematikan service “RGManager” di proxmox01.
Sebelumnya pastikan bahwa VM ID 100 status “Managed by HA = Yes”
Stop RGManager
proxmox01 -- Services -- RGManager - Stop Stopping Cluster Service Manager: [ OK ] TASK OK
Jika kita lihat di log, maka akan terlihat status seperti di bawah ini.
Langkah selanjutnya kita periksa, seharusnya VM ID 100 sudah jalan di proxmox02.
Jika hasilnya sudah terlihat seperti diatas, artinya proses failovernya berhasil :).
Referensi :
Membuat cluster di proxmox menggunakan share disk DRBD
Ini adalah langkah-langkah membuat cluster di Proxmox menggunakan DRBD disk untuk shared storagenya.
Dalam tulisan ini saya punya dua mesin yang saya beri nama “proxmox01” dan “proxmox02”, skenarionya adalah, dua mesin ini akan saya cluster kemudian saya akan buat satu “vm” menggunakan debian wheezy, yang kemudian akan saya failover-kan.
VM “wheezy” yang saya akan failover-kan nantinya akan ditempatkan di disk drbd.
Langkah awal tentunya install dulu proxmox dan konfigurasikan agar mesin tersebut bisa terkoneksi ke internet. IP address yang saya gunakan adalah:
proxmox01 : 10.87.16.120
proxmox02 : 10.87.16.130
KONFIGURASI CLUSTER
Buat cluster dalam hal ini saya beri nama “cluster01”
root@proxmox01:~# pvecm create cluster01 Restarting pve cluster filesystem: pve-cluster[dcdb] notice: wrote new cluster config '/etc/cluster/cluster.conf' . Starting cluster: Checking if cluster has been disabled at boot... [ OK ] Checking Network Manager... [ OK ] Global setup... [ OK ] Loading kernel modules... [ OK ] Mounting configfs... [ OK ] Starting cman... [ OK ] Waiting for quorum... [ OK ] Starting fenced... [ OK ] Starting dlm_controld... [ OK ] Tuning DLM kernel config... [ OK ] Unfencing self... [ OK ]
Tambahkan node proxmox02 ke “cluster01” yang tadi telah dibuat.
root@proxmox02:~# pvecm add 10.87.16.120 The authenticity of host '10.87.16.120 (10.87.16.120)' can't be established. RSA key fingerprint is d3:8e:c7:ec:a8:20:4d:e3:79:1c:d7:b1:84:3d:36:e0. Are you sure you want to continue connecting (yes/no)? yes root@10.87.16.120's password: copy corosync auth key stopping pve-cluster service Stopping pve cluster filesystem: pve-cluster. backup old database Starting pve cluster filesystem : pve-clustercan't create shared ssh key database '/etc/pve/priv/authorized_keys' . Starting cluster: Checking if cluster has been disabled at boot... [ OK ] Checking Network Manager... [ OK ] Global setup... [ OK ] Loading kernel modules... [ OK ] Mounting configfs... [ OK ] Starting cman... [ OK ] Waiting for quorum... [ OK ] Starting fenced... [ OK ] Starting dlm_controld... [ OK ] Tuning DLM kernel config... [ OK ] Unfencing self... [ OK ] waiting for quorum...OK generating node certificates merge known_hosts file restart services Restarting PVE Daemon: pvedaemon. Restarting web server: apache2 ... waiting . successfully added node 'proxmox02' to cluster.
Periksa dan pastikan bahwa status cluster ok, dan seharusnya jumlah node menjadi dua.
root@proxmox01:~# pvecm status Version: 6.2.0 Config Version: 2 Cluster Name: cluster01 Cluster Id: 53601 Cluster Member: Yes Cluster Generation: 16 Membership state: Cluster-Member Nodes: 2 Expected votes: 2 Total votes: 2 Node votes: 1 Quorum: 2 Active subsystems: 5 Flags: Ports Bound: 0 Node name: proxmox01 Node ID: 1 Multicast addresses: 239.192.209.51 Node addresses: 10.87.16.120
Periksa node dari cluster01
root@proxmox01:~# pvecm nodes Node Sts Inc Joined Name 1 M 20 2013-10-24 11:36:28 proxmox01 2 M 28 2013-10-24 11:36:42 proxmox02
Sampai disini kita sudah mempunyai cluster
KONFIGURASI DRBD
Install dan konfigurasikan share disk DRBD.
root@proxmox01:~# apt-get update root@proxmox01:~# apt-get install drbd8-utils root@proxmox01:~# reboot root@proxmox02:~# apt-get update root@proxmox02:~# apt-get install drbd8-utils root@proxmox02:~# reboot
Buat partisi untuk volume yang akan digunakan DRBD, dalam tulisan ini partisi yang saya gunakan adalah “/dev/sdb1”
Buat konfigurasi DRBD di proxmox01 dan proxmox02.
root@proxmox01:~# vi /etc/drbd.d/r0.res resource r0 { protocol C; startup { wfc-timeout 0; # non-zero wfc-timeout can be dangerous degr-wfc-timeout 60; become-primary-on both; } net { cram-hmac-alg sha1; shared-secret "h4ll0w0rd"; allow-two-primaries; after-sb-0pri discard-zero-changes; after-sb-1pri discard-secondary; after-sb-2pri disconnect; } on proxmox01 { device /dev/drbd0; disk /dev/sdb1; address 10.87.16.120:7788; meta-disk internal; } on proxmox02 { device /dev/drbd0; disk /dev/sdb1; address 10.87.16.130:7788; meta-disk internal; } }
root@proxmox01:~# drbdadm create-md r0 DRBD module version: 8.3.13 userland version: 8.3.7 you should upgrade your drbd tools! Writing meta data... initializing activity log NOT initialized bitmap New drbd meta data block successfully created.
Lakukan juga langkah diatas di proxmox02.
Periksa status DRBD, seharusnya statusnya masih “ro:Secondary/Secondary”
root@proxmox01:~# cat /proc/drbd version: 8.3.13 (api:88/proto:86-96) GIT-hash: 83ca112086600faacab2f157bc5a9324f7bd7f77 build by root@sighted, 2012-10-09 12:47:51 0: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Diskless C r----- ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:31454240
Lakukan hal ini hanya disalah satu node, dalam hal ini saya lakukan di proxmox01
root@proxmox01:~# drbdadm -- --overwrite-data-of-peer primary r0
Stop service DRBD di proxmox01 dan proxmox02.
root@proxmox01:~# /etc/init.d/drbd stop root@proxmox02:~# /etc/init.d/drbd stop
Start service DRBD di proxmox01 dan proxmox02.
root@proxmox01:~# /etc/init.d/drbd start root@proxmox02:~# /etc/init.d/drbd start
Periksa status DRBD, pastikan bahwa statusnya adalah “Primary/Primary”
root@proxmox01:~# cat /proc/drbd version: 8.3.13 (api:88/proto:86-96) GIT-hash: 83ca112086600faacab2f157bc5a9324f7bd7f77 build by root@sighted, 2012-10-09 12:47:51 0: cs:SyncSource ro:Primary/Primary ds:UpToDate/Inconsistent C r----- ns:137736 nr:0 dw:0 dr:146128 al:0 bm:7 lo:1 pe:81 ua:64 ap:0 ep:1 wo:b oos:31326752 [>....................] sync'ed: 0.5% (30592/30716)M finish: 0:20:27 speed: 25,496 (25,496) K/sec
Tunggu hingga sync nya selesai dan statusnya adalah “cs:Connected ro:Primary/Primary ds:UpToDate/UpToDate”
root@proxmox01:~# cat /proc/drbd version: 8.3.13 (api:88/proto:86-96) GIT-hash: 83ca112086600faacab2f157bc5a9324f7bd7f77 build by root@sighted, 2012-10-09 12:47:51 0: cs:Connected ro:Primary/Primary ds:UpToDate/UpToDate C r----- ns:0 nr:31454276 dw:31454240 dr:64 al:0 bm:1920 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0
Sunting konfigurasi LVM di proxmox01 dan proxmox02.
root@proxmox01:~# vi /etc/lvm/lvm.conf # By default we accept every block device: filter = [ "r|/dev/sdb1|", "r|/dev/disk/|", "r|/dev/block/|", "a/.*/" ]
Buat PV dari disk drbd (/dev/drbd0), kemudian buat VG nya, lakukan hanya di salah satu node, dalam hal ini saya lakukan di proxmox01.
root@proxmox01:~# pvcreate /dev/drbd0 Writing physical volume data to disk "/dev/drbd0" Physical volume "/dev/drbd0" successfully created root@proxmox01:~# vgcreate vg_drbd /dev/drbd0 Volume group "vg_drbd" successfully created
Error saat mengakses konsol Proxmox
Anda sedang belajar Proxmox?, Anda mengalami error seperti dibawah ini saat Anda ingin mengakses console untuk membuat VM?
TASK ERROR: No accelerator found! TASK ERROR: command '/bin/nc -l -p 5901 -w 10 -c '/usr/sbin/qm vncproxy 101 2>/dev/null'' failed: exit code 2
Saya punya solusinya, mudah-mudahan juga menjadi solusi untuk Anda, caranya adalah dengan melakukan “disable KVM Hardware Virtualization”.
Semoga bermanfaat 🙂