็†ฑ้–€ๅˆ†้กž
 ่ผ‰ๅ…ฅไธญ…
็›ฎ้Œ„

๐Ÿงฑ Proxmox VE ้ซ˜ๅฏ็”จๅข้›†ๅฎŒๆ•ดๆŒ‡ๅ—:HA、Node Failover、Quorum ่ˆ‡ Fencing ๅฏฆๆˆฐ่งฃๆž

    ๐Ÿงฑ 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 - ไธๆœƒๅฐŽ่‡ด่ณ‡ๆ–™ๆฏ€ๆ - ๅข้›†่ƒฝๅฎ‰ๅ…จ้‡ๆ–ฐ้ธ่ˆ‰ leader

    3.1 PVE ็š„ Fencing ่กŒ็‚บ

    PVE ไฝฟ็”จ: - watchdog - hardware reset(่‹ฅๆœ‰ IPMI / iDRAC / iLO) ๅ•Ÿๅ‹•ๅพŒๆœƒๅผทๅˆถ่ฎ“ๅ•้กŒ็ฏ€้ปž้‡ๅ•Ÿๆˆ–้€€ๅ‡บ。

    ๐Ÿ“Œ ็ฌฌๅ››็ซ :Proxmox HA Manager ๅทฅไฝœๆต็จ‹(Failover ้‹ไฝœๅŽŸ็†)

    ็•ถ VM/LXC ๆจ™่จ˜็‚บ HA Resource ๆ™‚,HA Manager ๆœƒ:
    1. ็›ฃๆธฌ VM / Node ็‹€ๆ…‹
    2. ่‹ฅ VM ๆ‰€ๅœจ็ฏ€้ปžๆ•…้šœ → ๅˆคๆ–ท quorum
    3. ่งธ็™ผ Fencing(็ขบไฟๅฎ‰ๅ…จ)
    4. ็”ฑๅญ˜ๆดป็ฏ€้ปžๆŽฅๆ‰‹ VM(Failover)
    5. ๅœจๅ…ถไป–็ฏ€้ปž่‡ชๅ‹•้‡ๅ•Ÿ 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 ็ฏ€้ปž็ช็„ถๆ–ท้›ป

    1. Corosync ๅตๆธฌไธๅˆฐ pve2 ๅฟƒ่ทณ
    2. HA Manager ้–‹ๅง‹่จˆๆ™‚「fence timeout」
    3. Fencing ็”Ÿๆ•ˆ → watchdog ่ฎ“ pve2 ่‡ชๅ‹• shutdown
    4. ็ณป็ตฑๅœจ pve1 / pve3 ไธŠ้‡ๆ–ฐๅ•Ÿๅ‹• VM
    5. 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:ไธ‰็ฏ€้ปž้ซ˜ๅฏ็”จๅ„ฒๅญ˜ๆžถๆง‹ๅฎŒๆ•ด้ƒจ็ฝฒๆŒ‡ๅ—》


    ๐Ÿ”— ๅˆ†ไบซ้€™็ฏ‡ LINE Facebook X

    ๆฒ’ๆœ‰็•™่จ€:

    ๅผต่ฒผ็•™่จ€

    ๅญ—็ดš