Proxmox VE menggunakan Corosync untuk komunikasi dan sinkronisasi data cluster. Menggunakan satu jaringan untuk komunikasi cluster meningkatkan kerentanan terhadap kondisi split-brain apabila jaringan tersebut gagal. Redundant Ring Protocol adalah salah satu solusi untuk menjaga kestabilan cluster dengan menggunakan dua jalur komunikasi.
Infrastruktur yang Digunakan
Pada pengujian kali ini menggunakan tiga buah node Proxmox VE yang sudah tergabung ke dalam cluster.
- zaidan-1 : 192.168.9.171. Rencana jaringan ke-dua: 10.0.0.11
- zaidan-2 : 192.168.1.172. Rencana jaringan ke-dua: 10.0.0.12
- zaidan-3 : 192.168.1.173. Rencana jaringan ke-dua: 10.0.0.13
- host induk: 192.168.1.22
zaidan-1 s.d 3 merupakan nested host. Artinya ketiga host ini berada di dalam Proxmox VE. Pada Datacenter dari host induk saya juga menambahkan bridge baru dengan nama zvmbr1. Sebenarnya tidak perlu membuat bridge baru juga bisa. Bisa langsung saja menambahkan network device yang di-attach ke vmbr0
.
Menambahkan Network Device (induk)
Untuk node zaidan-1 s.d. zaidan-3, tambahkan network baru dengan cara *pilih VM> Hardware> Add> Network Device*.
Pada pengujian kali ini, network device untuk zaidan-1 s.d. zaidan-3 di-attach ke zvmbr1
. Pilih Add untuk melanjutkan.
Menambahkan Network Device (nested)
Sekarang, masuk ke web interface dari cluster nested (zaidan-cluster). Pilih salah satu node> System> Network.
Pada gambar di atas kita bisa lihat bahwa node zaidan-1 sudah memiliki interface baru yaitu ens19. Lalu piilh Create> Linux Bridge.
Konfigurasi Alamat IP Jaringan Kedua
Saat menambahkan Linux Bridge, isi alamat IP-nya dengan yang ingin kita inginkan untuk jaringan ke-dua. Misalnya kita gunakan alamat IP 10.0.0.11/24
untuk pengujian kali ini. Pada bagian Bridge ports juga isi dengan interface yang sesuai (ens19
). Untuk gateway-nya tidak diisi.
zvmbr1
sudah ditambahkan. Jangan lupa pilih Apply Configuration untuk menerapkan konfigurasi.
Lakukan hal yang sama pada semua node. Pastikan semua node pada cluster sudah memiliki bridge baru.
Uji Konektivitas
Pastikan setiap node dapat saling ping menggunakan alamat IP 10.0.0.x
Uji ping dengan menggunakan IP 10.0.0.x
sudah berhasil.
Konfigurasi Corosync
Setelah jaringan kedua berfungsi, kita perlu mengedit file /etc/pve/corosync.conf
untuk menjadikan jaringan baru ini sebagai ring1
. Filenya bisa diakses dari node mana saja di cluster.
Kita lihat bagian nodelist
. Tambahkan parameter ring1_addr: 10.0.0.x
(disesuaikan tiap node).
Dalam Corosync, parameter ini berfungsi untuk mendefinisikan alamat IP spesifik yang digunakan oleh node untuk melakukan komunikasi heartbeat di jaringan cluster.
Selain ring1_addr
, ada parameter lain yang perlu diedit. Yaitu totem> config_version
. Parameter ini berfungsi sebagai penanda waktu/timestamp/”nomor revisi” dari konfigurasi cluster dan juga untuk validasi update/perubahan dari Corosync.
Setiap kali kita melakukan perubahan pada file /etc/pve/corosync.conf
, kita harus menaikkan nilai dari config_version
sebanyak 1. Misalnya pada pengujian kali ini kita akan ubah nilainya dari 3 menjadi 4.
Simpan file (Ctrl+X , Y kalau di Nano). Perubahan akan diterapkan secara otomatis.
Verifikasi dan Uji Coba
Kita bisa verifikasi status Corosync dengan perintah berikut:
Kita juga bisa cek Datacenter> Cluster dan lihat pada Cluster Nodes sudah memiliki Link 0 & Link 1.
Selain itu, ada skenario pengujian lain yang akan kita lakukan. Kita akan coba matikan salah satu jaringan dari node dan kita akan lihat apa yang terjadi.
Karena environment yang digunakan adalah nested, jadi saya bisa matikan salah satu jaringan dari Proxmox VE induk dengan cara pilih network device> Disconnect.
Selanjutnya, kita coba akses web interface menggunakan IP yang jaringannya sudah dinonaktifkan. Tidak dapat memuat halaman.
Kita coba masuk web interface menggunakan IP lain (misalnya 192.168.9.172
). Kita bisa lihat meskipun alamat 192.168.9.171
jaringannya dimatikan, namun untuk koneksi/komunikasi cluster masih terdeteksi hidup (ditandai dengan warna hijau).
Penutup
Dengan menggunakan multiple networks pada Corosync/cluster, kita dapat meningkatkan stabilitas cluster Proxmox VE. Apabila salah satu jalur komunikasi mengalami gangguan, jalur komunikasi lain akan mengambil alih tanpa mengganggu operasi cluster.
Untuk tulisan kali ini sampai di sini dulu ya. Sampai jumpa. Bye.