之前做一個案子,為避免硬體失效我安裝 Proxmox VE 做為 高可用性叢集 (High Availability Cluster, HA Cluster) 。 但是因為經費限制,只能買2臺伺服器就只能用勉強再搭配一個 Raspberry Pi 安裝 Corosync 做為 quorum 之用 (因叢集至少需要3臺,以往quorum可使用storage取代,PVE 6之後不行)。 沒想到經過3年半,這顆 Pi 早已故障,前幾天主要伺服器主機板也故障,造成第二臺伺服器無法接手。
臨危受命,在下敝人小弟我又被叫去案場,原本想用 qm migrate <vmid> <target>就好,沒想到居然說在local mode不允許執行。
在官方文件 Cluster Manager 裡提到以下指令:
systemctl stop pve-cluster
systemctl stop corosync
pmxcfs -l
rm /etc/pve/corosync.conf
rm -r /etc/corosync/*
killall pmxcfs
systemctl start pve-cluster
pvecm delnode oldnode
pvecm expected 1
若能正確將 expected nodes 設為 1 ,接下來就能 qm migrate <vmid> <target> 。
使用後就是異常,只要砍掉 /etc/pve/corosync.conf 就無法啟動 pve-cluster,幸好有備份 conf 檔;或許是我使用的版本問題,試了幾次都不行。接著就只能再試著強制啟動,發現 qm 有 force 參數,於是下:
qm migrate <vmid> <target> --force true
qm start <vmid> --force true
搞定收工!
留言