๐งฑ Proxmox VE ้ซๅฏ็จๅข้(HA Cluster)ๆถๆงๅฏฆไฝๆๅ
่ฆ่ฎ่ๆฌๅ็ฐๅขๅจ็กฌ้ซๆ ้ๆ่ชๅๆฅๆ、็ธฎ็ญๅๆฉๆ้,ไฝ ้่ฆ HA ๅข้。ๆฌๆๅพ ่จญ่จ่ฆ้ป、ๅปบ็ซๅข้、Quorum/Corosync、HA Manager ๅฐ Fencing ่ๆ ้ๆผ็ทด,ไธๆญฅๆญฅๅฎๆๅฏ่ฝๅฐ็ Proxmox HA ๆถๆง。
ไธ、ๆถๆง่ๅ็ฝฎ่ฆๅ
- ็ฏ้ปๆธ:ๅปบ่ญฐ ≥3(้ฟๅ 2-node split-brain)。
- ็ฎก็็ถฒ่ทฏ:
10G/1G็ๅฏ,Corosync ๅปบ่ญฐ็จ็ซ็ถฒๆฎต,ๅฏ็จ Bond/้็ฐ。 - ๅ ฑไบซๅฒๅญ:NFS、iSCSI(+LVM)、Ceph ๆ ZFS Replication(้ๆณจๆไธ่ดๆง่ๆขๅพฉ้ๅบฆ)。
- ๆ้ๅๆญฅ:ๆๆ็ฏ้ปไฝฟ็จ
chrony/systemd-timesyncdๆ กๆ。 - Watchdog/Fencing:ๅปบ่ญฐๅ็จ็กฌ้ซ watchdog;ๅคงๅ็ฐๅขๅฏๆญ้ PDU/IPMI Fencing。
# ๆชขๆฅๅฟ
่ฆๅฅไปถ
pveversion -v
timedatectl status
ไบ、ๅปบ็ซๅข้(pvecm)
- ๅจ็ฌฌไธๅฐ็ฏ้ป(node1)ๅปบ็ซๅข้:
# node1
pvecm create lab-cluster
pvecm status
- ๅ ถไป็ฏ้ปๅ ๅ ฅๅข้:
# node2 / node3
pvecm add 10.10.10.11 # ไปฅ node1 ็็ฎก็ IP ็บไพ
# ไพๆ็คบ่ผธๅ
ฅ root@pam ๅฏ็ขผ
ๅฎๆๅพ,ๆๆ็ฏ้ป็ Web ไป้ขๅทฆๅดๆๅฏ็ๅฐๅฎๆด็ฏ้ปๆธ ๅฎ่ๅ ฑ็จ Datacenter ่จญๅฎ。
ไธ、Corosync ่ Quorum ้้ตๅๆธ
Corosync ่ฒ ่ฒฌๅข้้่จ่ๆ็ฅจ(Quorum),ๅปบ่ญฐไฝฟ็จ ้็ฐ(ring0 + ring1) ๆ่ณๅฐไฝฟ็จ bonding。
# ้กฏ็คบๅข้ๆๅก่ๆ็ฅจ
pvecm status
corosync-cfgtool -s
# ่ฅ้็ทจ่ผฏ(้ซ้ขจ้ช,่ซๅ
ๅไปฝ)
cat /etc/pve/corosync.conf
# ๅธธ่ฆ้้ป:
# link { name: ring0; address: 10.10.10.0/24; }
# link { name: ring1; address: 172.16.0.0/24; } # ็ฌฌไบๆขๅฟ่ทณ(้ธ็จ)
- Transport:ๅฐๅ็ฐๅขๅฏ็จ UDP Multicast;่ทจ็ถฒๆฎตๆไธๆฏๆด multicast ๆๆน Unicast。
- ๆ็ฅจๆธ:ไปฅ็ฏ้ปๆธ้ๅ็บๅๆณ(Quorum=Majority)。
ๅ、ๅ็จ HA Manager ่่ณๆบ่จปๅ
Proxmox ็ ha-manager ็จไพ็ฎก็ VM/LXC ็่ชๅ้ท็งป่้ๅ。
# ๅฐ VM 101 ่จปๅ็บ HA ่ณๆบ
ha-manager add vm:101 --group default --state started
# ๆชข่ฆ HA ็ๆ
ha-manager status
ไฝ ๅฏไปฅๅจ Web ไป้ข「Datacenter → HA」ๅปบ็ซ Group ่ Failover Domain,้ๅถ่ณๆบๅช่ฝ่ฝๅจ็นๅฎ็ฏ้ป้ๅ,ไธฆ่จญๅฎ ๅชๅ ้ ๅบ ๆ ็ฆ็ฝฎ。
ไบ、ๅณๆ้ท็งป(Live Migration)่็ถญ่ญทๆจกๅผ
Live Migration ๅฏๅฐ VM ๅพ A ็ฏ้ป้ท่ณ B ็ฏ้ป่ไธไธญๆท(้ๅ ฑไบซๅฒๅญๆๅ็จไธ่ดๆงๆฉๅถ)。
# ไปฅ CLI ้ฒ่กๅณๆ้ท็งป
qm migrate 101 node2 --online
# ็ฏ้ป็ถญ่ญท(ๆซๆ็งปๅบ HA ๆ็จ)
ha-manager set node node1 --maintenance 1
# ๅฎๆ็ถญ่ญทๅพ
ha-manager set node node1 --maintenance 0
ๅ ญ、Watchdog ่ Fencing(้้ต)
็ถ็ฏ้ปๅคฑ่ฏๆ,Fencing ่ฝ็ขบไฟๆ ้็ฏ้ปไธๆๅๆๅญๅๅ ฑไบซ่ณๆบ(้ฟๅ ่ณๆๆฏๆ)。
- Watchdog:ๅ็จ็กฌ้ซ็้็(ๅฆ iTCO_wdt),็ฏ้ปๅคฑๅปๅฟ่ทณๆ่ชๅ้ๅ。
- ๅค้จ Fencing:้้ IPMI/PDU ้้้ปๆบ(ๅคงๅๅข้/้ซ่ฆๆฑๅปบ่ญฐ)。
# ๆชขๆฅไธฆๅ็จ็้็ๆจก็ต(็ฏไพ)
lsmod | grep iTCO
echo iTCO_wdt >> /etc/modules
systemctl restart pve-ha-lrm pve-ha-crm
ไธ、ๆ ้ๆผ็ทด่้ฉ่ญๆต็จ
- ้้ HA ่ณๆบๆๅจ็ฏ้ป็็ฎก็็ถฒ่ทฏไป้ขๆๆจกๆฌไธปๆฉๆท้ป。
- ๆผๅ
ถไป็ฏ้ป็ฃ็
ha-manager status,็ขบ่ช่ณๆบๆผ้ ๆ็ฏ้ปๅๅ。 - ๅจๅ
ฑไบซๅฒๅญไธ็ขบ่ช VM ็ฃ็ข็กๆ;ๆชขๆฅไพๅ
ping่ๆๅ้ฃ็ท。
# ่งๅฏๅข้่ HA ๆฅ่ช
journalctl -u pve-ha-crm -f
journalctl -u pve-ha-lrm -f
pvecm status
ๅ ซ、ๆไฝณๅฏฆๅๆธ ๅฎ(้็ถญๅฟๆณ)
- ๐ Corosync ไฝฟ็จ็จ็ซๅฏฆ้ซ NIC ๆ Bond,ๅฟ ่ฆๆ้็ฐ้ ็ฝฎ。
- ๐งญ DNS/Host ๆชๅไธ่ด、NTP ๆบ็ขบ(่ทจ็ฏ้ปๆ้ๅทฎ < 100ms)。
- ๐งฑ ๅ ฑไบซๅฒๅญๅฅๅบทๅบฆ็ฃๆง(IOPS/ๅปถ้ฒ),้ฟๅ ็ถ้ ธๅฐ่ด้ท็งปๅก้ 。
- ๐งช ๆฏๅญฃ้ฒ่กไธๆฌก ็ถญ่ญทๆจกๅผ → Live Migration → ๆ ้ๆผ็ทด。
- ๐งฐ ็ตๅ็ญ็ฅ:HA + ๅฎๆ vzdump、pve-zsync ็ฐๅฐ;้ไฟ้ช。
ไน、ๅธธ่ฆๅ้กๆๆฅ
❓ ๅ ๅ ฅๅข้ๅคฑๆ(pvecm add ๅกไฝ)
# ๆชขๆฅ SSH/้ฒ็ซ็/ๆ้
ssh root@node1
ss -lntup | grep 5405 # corosync ้ ่จญๅ
timedatectl status
❓ Split-brain / ็กๆณๅๅพ Quorum
# ๅฟซ้ๅคๆท
pvecm status
# ไปฅ 3+ ็ฏ้ป、้็ฐๆ Quorum Device(QDevice)้ฟๅ
❓ Live Migration ๅพๆ ข
# ๆชขๆฅๅฒๅญ่็ถฒ่ทฏ
pvesm status
iperf3 -c <peer> # ็ฎก็/้ท็งป็ถฒ่ทฏๅธถๅฏฌ
๐ ็ต่ช
HA ไธๆฏ「่ฃๅฅฝๅฐฑๆฒไบ」,่ๆฏไธๅฅๆ็บๆผ็ทด็็้ๆฉๅถ。็ฉฉๅบ็ Corosync ๆๆจธ、ๅฏ้ ็ๅ ฑไบซๅฒๅญ่ๅฎๅ็ Fencing,ๆญ้ ๅฎๆๅไปฝ่ๆ ้ๆผ็ทด,ๆ่ฝ่ฎไฝ ็ Proxmox ๅข้็ๆญฃ้ๅฐไผๆฅญ็ดๅฏ็จๆง。
๐ ๅปถไผธ้ฑ่ฎ
- ๐งฑ Proxmox VE ๅฟซ็ ง่ๅไปฝ้ๅ:pve-zsync ่ vzdump ่ชๅๅ็ญ็ฅ
- ๐งฑ Proxmox VE ๅฒๅญๆดๅๆๅญธ:ZFS、NFS、iSCSI ่ LVM ็ๅทฎ็ฐ่ๅฏฆไฝ
- ๐งฑ Proxmox VE ็ถฒ่ทฏ่จญๅฎ่ VLAN ็ฎก็:bridge、bonding、VLAN Tag ๅ จ่งฃๆ
— WWFandy・็ณป็ตฑ่็ถฒ่ทฏ็ญ่จ
ๆฒๆ็่จ:
ๅผต่ฒผ็่จ