๐งฑ Proxmox VE ้ซๅฏ็จๅข้ๅฎๆดๆๅ:HA、Node Failover、Quorum ่ Fencing ๅฏฆๆฐ่งฃๆ
Proxmox VE(PVE)ๅ ทๅไผๆฅญ็ด HA Cluster ่ฝๅ,ๅช่ฆๅปบ็ซๅข้ไธฆๅ็จ HA,ไพฟ่ฝๅจ็ฏ้ปๆ ้ๆ่ชๅๅฐ่ๆฌๆฉ(VM)ๆ LXC ๅฎนๅจ็งป่ฝๅฐๅญๆดป็ฏ้ป็นผ็บ้ไฝ。 ๆฌ็ฏๆฏๅฎๆดๆทฑๅ ฅ็,ๆถต่ PVE HA ็ๆ ธๅฟๆฆๅฟต่็ๅฏฆไผๆฅญๅ ดๆฏ,ๅ ๆฌ:
- ๐น ๅข้ๆถๆง่ Corosync ้ไฝๅ็
- ๐น Quorum ็ไฝ็จ่ๆ็ฅจๆฉๅถ
- ๐น HA Manager ็่ง่ฒ่ Failover ๆต็จ
- ๐น Fencing(่ชๅ้้ข)ๅฆไฝไฟ่ญทๅข้
- ๐น ็ฏ้ปๆ ้、็ถฒ่ทฏๅ่ฃ(Split Brain)ๆ ๅข่งฃๆ
- ๐น ๅฏฆ้ HA ่จญๅฎ่ troubleshooting
่ฅไฝ ๆญฃๅจๅปบ็ซไผๆฅญ็ด PVE ๅข้,้็ฏๅฐๆฏๆๅฎๆด็ HA ๅ่ๆๅ。
๐ ็ฌฌไธ็ซ :Proxmox Cluster ่ Corosync ๅบ็คๆถๆง
PVE Cluster ็ๆ ธๅฟๅจ Corosync(ๅข้้่จ)่ PVE Daemon(็ฎก็ๆๅ)。 Corosync ้้ UDP Multicast ๆ Unicast(ๅปบ่ญฐ)ๅณ้:
- ๅฟ่ทณ(heartbeat)
- ๆ็ฅจ(vote)
- ็ฏ้ป็ๆ (online / offline)
1.1 Corosync ็ถฒ่ทฏๅปบ่ญฐ
- ไฝฟ็จ ๅฐ็จ Cluster Network(้ VM / Storage ๆต้)
- ้ฟๅ Wi-Fi、VLAN trunk ๆทท้
- ๅปถ้ฒ(latency)้ไฝไธ็ฉฉๅฎ
ๅช่ฆ Corosync ็ถฒ่ทฏๅ่ณชไธ็ฉฉ,ๆดๅๅข้ๆๅบ็พ Node LOST、No quorum、HA freeze ็ญๅ้ก。
๐ ็ฌฌไบ็ซ :Quorum(ๆณๅฎ็ฅจๆธ)ๆฉๅถ่ Node Vote
Quorum ๆฏๆๆ HA ๆถๆงๆๆ ธๅฟ็ๆฆๅฟต,ๅฎๆฑบๅฎ:
ๅข้ๆฏๅฆๅ ่จฑๅญๆดป็ฏ้ป็นผ็บๅไฝ?2.1 Quorum ่จ็ฎๆนๅผ
Quorum = (็ธฝ็ฏ้ปๆธ / 2) + 1
ไพๅฆ:
- 3 ็ฏ้ป → quorum = 2
- 5 ็ฏ้ป → quorum = 3
็ถ quorum ไธ่ถณๆ → ๅข้ๅฐๅๆญขๅฐ VM / LXC ็ HA ๆไฝ,้ฟๅ
split brain。
2.2 ็บไฝ่ณๅฐๅปบ่ญฐ 3 ็ฏ้ป?
ๅ ็บ: - 2 ็ฏ้ปๆถๆงไธญ,ไปปไฝไธๅฐๆๆ้ฝๆๅคฑๅป quorum - 3 ็ฏ้ปๆๅฐๅฏ่กๆถๆง(1 ๆๆไปๅฉ 2 ≥ quorum) ➡ ่ฅๅช่ฝ้จ็ฝฒๅ ฉๅฐ,่ซ็ไธไธๆฎต Fencing。๐ ็ฌฌไธ็ซ :Fencing(้้ข)ๆฏ HA ็「่ชๆฎบๆฉๅถ」
Fencing ็็ฎ็ๅพ็ฐกๅฎ: ้ฟๅ ่ ฆ่ฃ(Split Brain)!
็ถ็ฏ้ปๅคฑๅป็ถฒ่ทฏๆไธๅๆๆ,ๅข้ๆๅผทๅถ「้้ข」ๅคฑ่ฏ็ฏ้ป,็ขบไฟ:
- ไธๆๅบ็พๅ ฉๅฐๆฉๅจๅๆๆไฝๅไธ VM - ไธๆๅฐ่ด่ณๆๆฏๆ - ๅข้่ฝๅฎๅ จ้ๆฐ้ธ่ leader3.1 PVE ็ Fencing ่ก็บ
PVE ไฝฟ็จ: - watchdog - hardware reset(่ฅๆ IPMI / iDRAC / iLO) ๅๅๅพๆๅผทๅถ่ฎๅ้ก็ฏ้ป้ๅๆ้ๅบ。๐ ็ฌฌๅ็ซ :Proxmox HA Manager ๅทฅไฝๆต็จ(Failover ้ไฝๅ็)
็ถ VM/LXC ๆจ่จ็บ HA Resource ๆ,HA Manager ๆ:- ็ฃๆธฌ VM / Node ็ๆ
- ่ฅ VM ๆๅจ็ฏ้ปๆ ้ → ๅคๆท quorum
- ่งธ็ผ Fencing(็ขบไฟๅฎๅ จ)
- ็ฑๅญๆดป็ฏ้ปๆฅๆ VM(Failover)
- ๅจๅ ถไป็ฏ้ป่ชๅ้ๅ VM
Failover ้ๅบฆ่ฆๆ ๆณ็ด 20 ็งๅฐ 2 ๅ้。
๐ ็ฌฌไบ็ซ :ๅปบ็ซ HA Resource(VM / LXC ้ซๅฏ็จ)
5.1 ๅฟ ่ฆๆขไปถ
- ๅข้่ณๅฐ 3 ็ฏ้ป(ๆ 2 ็ฏ้ป + QDevice)
- ๅ ฑ็จ Storage(ZFS over iSCSI / NFS / Ceph)
- VM Disk ่ฆ่ฝๅจๆๆ็ฏ้ปๆฅ็
5.2 ่จญๅฎ HA ็ๆนๆณ
GUI:้ธๆ VM → More → Add to HA
ๆ CLI:ha-manager add vm:101
5.3 ่ชฟๆด Failover Priority
ha-manager set vm:101 --state started --group default
ๅฏไปฅๆๅฎๅชๅ ็ฏ้ป、้ฟๅ ๆ็ฏ้ป่ฒ ่ผ้้ซ。
๐ ็ฌฌๅ ญ็ซ :QDevice(ๅ ฉ็ฏ้ปๅข้ๅฟ ๅ)
ๅฆๆไฝ ๅชๆ 2 ๅฐ PVE ็ฏ้ป,ๅปบ่ญฐๅ ๅ ฅ QDevice(ไปฒ่ฃๆฉๅถ),ๅฆๅไปปไฝไธๅฐๆ็ท้ฝๆๅคฑๅป quorum。
6.1 QDevice ๆถๆง
- ๅฏ้จ็ฝฒๆผไปปไฝ Linux ไธปๆฉ
- ไธ้ๅฎ่ฃ PVE,ๅช่ฆ corosync-qnetd
- ่ฎ 2 ็ฏ้ปๆถๆง่ฎๆ「2+1」็ฅจๆธ
6.2 ๅฎ่ฃๆนๅผ(็ฐกๅ)
apt install corosync-qnetd
pvecm qdevice setup IP
2 ็ฏ้ปๆถๆงๆๅคงๅน ็ฉฉๅฎ。
๐ ็ฌฌไธ็ซ :Storage ้ธๆ่ Failover ๅฟ ๅๆขไปถ
7.1 ๅชไบ Storage ่ฝๅ HA?
| Storage | ๆฏๅฆๆฏๆด Failover |
|---|---|
| NFS | ✔ ๅฏ |
| iSCSI(้ ZFS) | ❌ ไธๅปบ่ญฐ,้ๆๅ mapping |
| ZFS local | ❌ ็กๆณ่ทจ็ฏ้ป |
| ZFS over iSCSI | ✔ ๅฏ(ๅธถ multipath) |
| Ceph | ✔ ไผๆฅญ็ดๆจ่ฆ |
7.2 ๆไฝณๅปบ่ญฐ
ไผๆฅญ็ฐๅข → Ceph
ไธญๅฐไผๆฅญ → NFS(็ฉฉๅฎไธ็ฐกๅฎ)
๐ ็ฌฌๅ ซ็ซ :Failover ๅฏฆ้ๆกไพ(็ฏ้ปๆๆๅพ็ผ็ไป้บผ?)
ๆกไพ:pve2 ็ฏ้ป็ช็ถๆท้ป
- Corosync ๅตๆธฌไธๅฐ pve2 ๅฟ่ทณ
- HA Manager ้ๅง่จๆ「fence timeout」
- Fencing ็ๆ → watchdog ่ฎ pve2 ่ชๅ shutdown
- ็ณป็ตฑๅจ pve1 / pve3 ไธ้ๆฐๅๅ VM
- Failover ๅฎๆ
ๆด้ซ้็จ็ด 30–60 ็ง。
๐ ็ฌฌไน็ซ :ๅธธ่ฆๅ้ก(Troubleshooting)
9.1 No Quorum
ๅๅ :
- ็ฏ้ปๆธไธ่ถณ(2 ๅฐๅ ถไธญ 1 ๅฐๆๆ)
- Corosync ็ถฒ่ทฏไธ็ฉฉ
pvecm status
pvecm expected 2
---
9.2 Unable to fence / watchdog failure
ๅๅ :
- ็ฏ้ปๅกๆญป - Storage I/O hang - CPU ้่ผ ่งฃๆณ: - ็ขบไฟ watchdog ๅ็จ - ็ฃๆง Storage latency ---9.3 VM ็กๆณ่ชๅ Failover
ๅฏ่ฝๅๅ : - VM ๆชๅ ๅ ฅ HA - Storage ไธๆฏๅ ฑไบซ็ - Quorum ไธ่ถณ - HA group ๆช่จญๅฎ๐ ็ต่ช
Proxmox VE ็ HA ๅ่ฝๅฏ้ ๅฎๆด,ไฝๅๆๆฏๆญฃ็ขบ็ๆถๆง่จญ่จ:็ฉฉๅฎ็ Corosync、ๅ ฑไบซ Storage、ๆญฃ็ขบ็็ฏ้ปๆธ่ Fencing ่ก็บ。 ๆๆกๆฌๆไป็ดน็ Quorum、Failover、Fencing、QDevice ่ Storage ้ธๆ,ไฝ ๅฐฑ่ฝๆ้ ไผๆฅญ็ด HA ๆถๆง。
ไธไธ็ฏๅฐๆจๅบ: 《Ceph on Proxmox:ไธ็ฏ้ป้ซๅฏ็จๅฒๅญๆถๆงๅฎๆด้จ็ฝฒๆๅ》
ๆฒๆ็่จ:
ๅผต่ฒผ็่จ