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

๐Ÿง Proxmox VE ้ซ˜ๅฏ็”จ(HA)ๆžถๆง‹ๅฎŒๆ•ดๆŒ‡ๅ—:Quorum、Fencing、Corosync、Failover ๆทฑๅ…ฅ่งฃๆž

    ๐Ÿง Proxmox VE ้ซ˜ๅฏ็”จ(HA)ๆžถๆง‹ๅฎŒๆ•ดๆŒ‡ๅ—:Quorum、Fencing、Corosync、Failover ๆทฑๅ…ฅ่งฃๆž

    Proxmox VE(PVE)ๆไพ›ไผๆฅญ็ดš็š„้ซ˜ๅฏ็”จ(High Availability, HA)ๅŠŸ่ƒฝ,ๅฏ็ขบไฟ็•ถๆŸไธ€็ฏ€้ปžๆ•…้šœๆ™‚,่™›ๆ“ฌๆฉŸๆˆ–ๅฎนๅ™จ่ƒฝ่‡ชๅ‹•ๅˆ‡ๆ›ๅˆฐๅ…ถไป–็ฏ€้ปž็นผ็บŒ้‹ไฝœ。 ๆœฌๆŒ‡ๅ—ๅฐ‡ๅพžๆžถๆง‹、้€š่จŠ、ๆ•…้šœๅตๆธฌ、Quorum ่จˆ็ฎ—、Fencing、Failover ๆฉŸๅˆถ,ไธ€ๆฌกๅฎŒๆ•ดๆทฑๅ…ฅ่งฃๆž。

    ๆญค็ฏ‡ๆ˜ฏไผๆฅญ็ดš HA ๅปบ็ฝฎ็š„ๅฎŒๆ•ดๆ•™ๅญธ,ๆถต่“‹: Corosync、Quorum、HA Manager、Fencing、Watchdog、Failover Logic、ๅข้›†ๅปบ่ญฐๆžถๆง‹่ˆ‡ๅธธ่ฆ‹่ชคๅ€


    ๐Ÿ“Œ ไธ€、Proxmox HA ๆžถๆง‹็ธฝ่ฆฝ

    PVE HA ๆžถๆง‹็”ฑไธ‹ๅˆ—ๅ››ๅคงๆ ธๅฟƒ็ต„ๆˆ:

    ๅ…ƒไปถๅŠŸ่ƒฝ
    Corosyncๅข้›†้€š่จŠ、็ฏ€้ปž็‹€ๆ…‹ๅŒๆญฅ、Quorum ่จˆ็ฎ—
    pve-ha-managerHA ็ฎก็†ๅ™จ,ๆฑบๅฎš Failover ๅ‹•ไฝœ
    Watchdog่‡ชๅ‹•้‡ๅ•Ÿๆญปๆމ็š„็ฏ€้ปž,้ฟๅ…่…ฆ่ฃ‚(Split Brain)
    Fencingๅผทๅˆถ้š”้›ข็•ฐๅธธ็ฏ€้ปž็ขบไฟ่ณ‡ๆ–™ไธ€่‡ดๆ€ง

    ้€™ไบ›ๅ…ƒไปถๅฝขๆˆ「ๅˆคๆ–ท → ้š”้›ข → ็งป่ฝ‰ → ้‡ๅ•Ÿ」็š„ HA ๅทฅไฝœๆต็จ‹。


    ๐Ÿ“Œ ไบŒ、Corosync:PVE Cluster ็š„ๆ ธๅฟƒ

    Corosync ๆไพ›ไปฅไธ‹ๅŠŸ่ƒฝ:

    • ๐ŸŒ ๅข้›†็ฏ€้ปž้–“็š„ๅฟƒ่ทณ้€š่จŠ(Heartbeat)
    • ๐Ÿ“ก ็‹€ๆ…‹ๅŒๆญฅ(Membership)
    • ๐Ÿงฎ Quorum ๆŠ•็ฅจ่จˆ็ฎ—

    ๆŸฅ็œ‹ Corosync ็‹€ๆ…‹:

    pvecm status
    

    ่ผธๅ‡บ็ฏ„ไพ‹:

    Quorum information
    ------------------
    Date:             Sun Dec  7
    Quorum provider:  corosync_votequorum
    Ring ID:          1/224
    Nodes:            3
    Node ID:          0x00000002
    Ring members:     0x00000001 0x00000002 0x00000003
    

    ่‡ณๅฐ‘้œ€่ฆไธ‰ๅ€‹็ฏ€้ปžๆ‰ๅฏๅฝขๆˆ็œŸๆญฃ็ฉฉๅฎš็š„ Quorum。


    ๐Ÿ“Œ ไธ‰、Quorum ่จˆ็ฎ—:ๅข้›†ๆ˜ฏๅฆๅฏๆŒ็บŒ้‹ไฝœ็š„้—œ้ต

    Quorum(ๆณ•ๅฎš็ฅจๆ•ธ)ๆฑบๅฎšๅข้›†ๆ˜ฏๅฆๆœ‰ๆฌŠ้€ฒ่กŒ HA ๅ‹•ไฝœ:

    ็ฏ€้ปžๆ•ธ้œ€่ฆ็š„ Quorum
    32
    43
    53

    ๅฆ‚ๆžœ Quorum ไธ่ถณ:

    • ๅข้›†็„กๆณ•็งป่ฝ‰ VM
    • HA ๅœๆญข้‹ไฝœ
    • ้ฟๅ… Split Brain ๆ™‚,ๆ‰€ๆœ‰ๅญ˜ๆ”พๆ–ผๅ…ฑไบซๅ„ฒๅญ˜็š„ VM ้ƒฝๆœƒๆšซๅœๆ“ไฝœ

    ๆœ€้‡่ฆ่ง€ๅฟต: ❗ **ๅ…ฉ็ฏ€้ปžๅข้›†็„กๆณ•่‡ช็„ถๅฝขๆˆ Quorum,้œ€่ฆ็ฌฌไธ‰ๅ€‹ Vote(QDevice ๆˆ– Witness)。**


    ๐Ÿ“Œ ๅ››、Fencing(้š”้›ขๆฉŸๅˆถ):้ฟๅ… Split Brain ็š„็ต•ๅฐๅฟ…่ฆๅŠŸ่ƒฝ

    Fencing ็”จๆ–ผ「ๅผทๅˆถ้š”้›ขๅทฒๅคฑๅŽป้€š่จŠไฝ†้‚„ๅœจ้‹ไฝœ็š„็ฏ€้ปž」。 ็ผบๅฐ‘ Fencing ็š„ๅข้›†ๅฏ่ƒฝๆœƒ้€ ๆˆ:

    • ๅ…ฉๅ€‹็ฏ€้ปžๅŒๆ™‚ๅŸท่กŒ VM(Split Brain)
    • ่ณ‡ๆ–™ๆฏ€ๆ(็‰นๅˆฅๆ˜ฏ Ceph / ZFS)
    • Failover ็„กๆณ•ๅˆคๆ–ท็œŸๅฏฆ็‹€ๆณ

    ๐ŸŸฆ PVE ไฝฟ็”จ Watchdog ไฝœ็‚บ้ ่จญ Fencing

    lsmod | grep -i watchdog
    

    Watchdog ็”ฑ Kernel ่งธ็™ผ,็•ถ็ฏ€้ปž็„กๆณ•ๅ›žๆ‡‰ๆ™‚ๆœƒๅผทๅˆถ Reboot, ็ขบไฟ่ฉฒ็ฏ€้ปžไธๆœƒ่ˆ‡ๅข้›†ๅ…ถไป–็ฏ€้ปž็ซถ็ˆญ่ณ‡ๆบ。

    ้‡่ฆๆ้†’: ๐Ÿ‘‰ ่‹ฅ BIOS ๆœ‰ Watchdog ่จญๅฎš,ๅ‹™ๅฟ…ๅ•Ÿ็”จ。


    ๐Ÿ“Œ ไบ”、HA Manager(pve-ha-manager)่กŒ็‚บ้‚่ผฏ

    PVE HA ็š„ๅˆคๆ–ทๆต็จ‹ๅฆ‚ไธ‹:

    1. Corosync ๅตๆธฌ็ฏ€้ปžๅคฑ่ฏ
    2. ๆชขๆŸฅ Quorum ๆ˜ฏๅฆๆœ‰ๆ•ˆ
    3. ็”ฑ Watchdog Fencing ๅฐ‡่ฉฒ็ฏ€้ปž้‡ๅ•Ÿ(้š”้›ข)
    4. HA Manager ๆฑบๅฎš VM ๆ˜ฏๅฆ้œ€่ฆ็งป่ฝ‰
    5. ๆ–ผๅ…ถๅฎƒ็ฏ€้ปž้‡ๆ–ฐๅ•Ÿๅ‹• VM

    ๐ŸŸฉ ๆŸฅ็œ‹ HA ่ณ‡ๆบ

    ha-manager status
    

    VM ่จญๅฎš็‚บ HA:

    ha-manager add vm:101
    

    ๐Ÿ“Œ ๅ…ญ、Failover ๅฆ‚ไฝ•้‹ไฝœ?(ๅฎŒๆ•ดๆต็จ‹)

    1. ็ฏ€้ปž A ๆŽ›ๆމ → ๅฟƒ่ทณไธญๆ–ท

    Corosync ๆจ™่จ˜็ฏ€้ปž A ็‚บ offline。

    2. Watchdog ้€ฒ่กŒ Fencing

    ๅผทๅˆถ้‡ๅ•Ÿ A,้ฟๅ… Split Brain。

    3. HA Manager ๅŸท่กŒ็งป่ฝ‰

    ๆชขๆŸฅ:

    • ๆ˜ฏๅฆๆœ‰ Quorum
    • ้‚ฃๅ€‹็ฏ€้ปžๆœ€้ฉๅˆๆŽฅๆ‰‹(CPU、RAM、HA Group)

    4. VM ่‡ชๅ‹•ๆ–ผ็ฏ€้ปž B ๆˆ– C ๅ•Ÿๅ‹•

    Failover ่€—ๆ™‚ไพ VM ็š„ Disk ๅ•Ÿๅ‹•ๆ™‚้–“่€Œๅฎš。


    ๐Ÿ“Œ ไธƒ、HA Group:ๆŽงๅˆถ VM ่ขซๅˆ†้…ๅˆฐๅ“ชไบ›็ฏ€้ปž

    ๅปบ็ซ‹ HA Group

    ha-manager groupadd prodgroup --nodes pve01,pve02,pve03 --restricted=0
    

    ๅŠ ๅ…ฅ VM:

    ha-manager set vm:101 --group prodgroup
    
    • restricted=1:VM ๅƒ…่ƒฝๅœจ group ๆŒ‡ๅฎš็ฏ€้ปž้‹ไฝœ
    • restricted=0:VM ๅฏๅœจไปปๆ„็ฏ€้ปžๆŽฅ็ฎก

    ๐Ÿ“Œ ๅ…ซ、ไผๆฅญๅปบ่ญฐๆžถๆง‹(ๅฟ…็œ‹)

    ๐ŸŸฉ 1. ไธ‰็ฏ€้ปžๅข้›†(ๆœ€ๆจ™ๆบ–)

    • PVE x 3
    • ๅ…ฑไบซๅ„ฒๅญ˜(Ceph / ZFS / NFS)
    • ้›™็ถฒๅก:Management + Corosync

    ⚠️ ไธๅปบ่ญฐๆŠŠ Corosync ๆ”พๅœจ่ˆ‡ VM ๅŒ็ถฒๆฎต。

    ๐ŸŸฆ 2. ไบ”็ฏ€้ปžๅข้›†(ไผๆฅญ็ดš)

    • ๆ›ด้ซ˜ Quorum ็ฉฉๅฎšๅบฆ
    • ๆ›ดๅฅฝ็š„ HA ๅˆ†ๆ•ฃ่ˆ‡ๆ•ˆ่ƒฝ

    ๐ŸŸฅ 3. ๅ…ฉ็ฏ€้ปžๅข้›†(้ขจ้šช้ซ˜,้œ€ QDevice)

    ๅ…ฉ็ฏ€้ปžๅฟ…้ ˆๅŠ  QDevice(็ฌฌไธ‰็ฅจ)ๆ‰่ƒฝ้ฟๅ… Split Brain。


    ๐Ÿ“Œ ไน、ๅธธ่ฆ‹้Œฏ่ชค่ˆ‡้™ท้˜ฑ(้žๅธธ้‡่ฆ)

    ❌ ้Œฏ่ชค 1:ๅ…ฉ็ฏ€้ปž็„ก QDevice ๅฐฑ็›ดๆŽฅไธŠ็ทš

    ้€™ๆ˜ฏๆ‰€ๆœ‰ Split Brain ๅ•้กŒ็š„ๆ นๆบ。

    ❌ ้Œฏ่ชค 2:้—œ้–‰ Watchdog(Fencing)

    ๆœƒ่ฎ“ๅข้›†็„กๆณ•ๆญฃ็ขบ Failover。

    ❌ ้Œฏ่ชค 3:Corosync ็”จไธ€่ˆฌ LAN(ๅปถ้ฒไธ็ฉฉ)

    ๅปบ่ญฐไฝฟ็”จ็จ็ซ‹็š„ๅฟƒ่ทณ็ถฒๆฎต。

    ❌ ้Œฏ่ชค 4:ๅ…ฑไบซๅ„ฒๅญ˜ๆ•ˆ่ƒฝไธ่ถณ,Failover ่ถ…ๆ…ข

    HA Flow ๆˆๆ•—ๅ–ๆฑบๆ–ผๅ„ฒๅญ˜ I/O。


    ๐Ÿ“Œ ๅ、็ต่ชž:Proxmox HA ๆ˜ฏไผๆฅญๅฏ้ ๆžถๆง‹็š„ๆ ธๅฟƒ

    Proxmox ็š„ HA ๆžถๆง‹ไธๅƒ…็ฐกๆฝ”ๆ˜“็”จ,ไนŸ็›ดๆŽฅๆŽก็”จไผๆฅญ็ดšๅข้›†ๆŠ€่ก“(Corosync + Fencing)。 ๅช่ฆๆญฃ็ขบ่ฆๅŠƒ็ถฒ่ทฏ、Quorum、Watchdog ่ˆ‡ๅ…ฑไบซๅ„ฒๅญ˜,ๅฐฑ่ƒฝๅปบ็ฝฎ็ฉฉๅฎšๅฏ้ ็š„่™›ๆ“ฌๅŒ–ๅนณๅฐ。

    ๅพŒ็บŒๅฆ‚้œ€ๆ›ดๆทฑๅ…ฅ็š„ๅฏฆไฝœ: ไบ”็ฏ€้ปž HA、Ceph HA、้›™ Corosync ็ถฒ่ทฏ、QDevice ้…็ฝฎ、้š”้›ขๆธฌ่ฉฆ ไนŸ่ƒฝๅ”ๅŠฉๆ’ฐๅฏซๅฎŒๆ•ด้€ฒ้šŽ็ฏ‡。


    ๐Ÿ”— ๅปถไผธ้–ฑ่ฎ€

    ๐Ÿ’ฌ ๆญก่ฟŽๅœจไธ‹ๆ–น็•™่จ€ไบคๆต!

    ไฝ ๅœจๅปบ็ฝฎ PVE Cluster ๆˆ– HA ๆ™‚้‡ๅˆฐไป€้บผๆŒ‘ๆˆฐ?ๆญก่ฟŽ็•™่จ€,ๆˆ‘ๆœƒๅ”ๅŠฉไฝ ไธ€่ตทๅˆ†ๆž!

    — WWFandy・Proxmox Cluster ๆŠ€่ก“็ญ†่จ˜

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

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

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

    ๅญ—็ดš