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

๐Ÿ’พ Proxmox + NFS ๅ…ฑไบซๅ„ฒๅญ˜ๅš HA:Node Affinity ๆŽ’้™คๆŠ•็ฅจ็ฏ€้ปž、ๆ•…้šœๅˆ‡ๆ›ๅฏฆๆธฌ

    ๐Ÿ–ง Proxmox VE 3-Node ๅข้›†ๅพž้›ถๅปบ็ฝฎ:HA ๅฏฆๆˆฐ、่…ฆ่ฃ‚้˜ฒ่ญท่ˆ‡ๆ•…้šœๅˆ‡ๆ›ๅ…จ็ด€้Œ„ | wwfandy
    HA Cluster Proxmox Quorum Failover Corosync NFS

    wwfandy  ·  2026 ๅนด 3 ๆœˆ 1 ๆ—ฅ  ·  ้–ฑ่ฎ€ๆ™‚้–“็ด„ 15 ๅˆ†้˜

    ๆœฌๆ–‡ๅฎŒๆ•ด่จ˜้Œ„ไธ€ๆฌกๅพžๅ–ฎๆฉŸ Proxmox VE ๆ“ดๅฑ•็‚บ ไธ‰็ฏ€้ปž้ซ˜ๅฏ็”จๅข้›†(3-Node HA Cluster) ็š„ๅฏฆๆˆฐๆญท็จ‹, ๅŒ…ๅซๆ‰€ๆœ‰ไฝ ๅฏ่ƒฝ้‡ๅˆฐ็š„ๅ‘:ไธปๆฉŸๆ”นๅ、DHCP ่ฝ‰ๅ›บๅฎš IP、็ถฒๅกๆฉ‹ๆŽฅๅคฑๆ•ˆ、pmxcfs ้Ž–ๆญป、 ๆ†‘่ญ‰ไธๅŒๆญฅ(SSL 596)、่…ฆ่ฃ‚(Split-brain)้ ้˜ฒ,ไปฅๅŠๆœ€็ต‚็š„ Failover ๅฏฆๆธฌ 130 ็ง’ๅˆ‡ๆ›ๆˆๅŠŸ

    ๐Ÿ—บ️ ไธ€、็’ฐๅขƒๆฆ‚่ฆฝ่ˆ‡็›ฎๆจ™ๆžถๆง‹

    ็ฏ€้ปžIP ไฝๅ€่ง’่‰ฒ
    pve-1192.168.1.11ไธป้‹็ฎ—็ฏ€้ปž(ๅŽŸๅ:pve)
    pve-2192.168.1.12ๅ‚™ๆด็ฏ€้ปž
    pve-3192.168.1.13ๆŠ•็ฅจ็ฏ€้ปž(1 CPU ไฝŽ่ณ‡ๆบ,ๅŽŸๅ:pve)
    TrueNAS192.168.1.111NFS ๅ„ฒๅญ˜ไผบๆœๅ™จ(ISO & Backup)

    ่จญ่จˆ็›ฎๆจ™:

    • ไธ‰ๅฐ PVE ็ต„ๆˆๅข้›†,็ธฝ็ฅจๆ•ธ 3 ็ฅจ
    • pve-3 ไฝœ็‚บ็ด”ๆŠ•็ฅจๅ“ก(Quorum Voter),ไธๆ‰ฟ่ผ‰ไปปไฝ• VM
    • VM 100(Ubuntu 22.04)ๅชๅœจ pve-1 / pve-2 ไน‹้–“่‡ชๅ‹•ๅˆ‡ๆ›
    • TrueNAS ๆไพ› NFS ๅ…ฑไบซๅ„ฒๅญ˜,่ฎ“ VM ็กฌ็ขŸ่ทจ็ฏ€้ปžๅฏ่ฆ‹
    ๐Ÿ’ก ็‚บไฝ•่ฆๅฅ‡ๆ•ธ็ฏ€้ปž?
    Quorum = ็ธฝ็ฅจๆ•ธไธ€ๅŠไปฅไธŠ。ๅ…ฉ็ฏ€้ปžๆ™‚,ไปปไธ€ๅฐๆŽ›ๆމๅ‰ฉ 1/2 ็ฅจไธ่ถณ,ๆ•ดๅ€‹ๅข้›†้Ž–ๆญป。 ๅŠ ๅ…ฅ pve-3 ๅพŒ,ๅณไฝฟ pve-2 ้—œๆฉŸ,pve-1 + pve-3 ไปๆœ‰ 2/3 ็ฅจ,็ณป็ตฑ็นผ็บŒๆญฃๅธธ้‹ไฝœ。

    ๐Ÿ”ง ไบŒ、ไธปๆฉŸๆ”นๅ่ˆ‡ๅ›บๅฎš IP

    2.1 ็‚บไฝ•่ฆๆ”นไธปๆฉŸๅ็จฑ?

    Proxmox ๅข้›†็”จไธปๆฉŸๅ็จฑๅš็ฏ€้ปž่ญ˜ๅˆฅ็ฌฆ。้ ่จญๅฎ‰่ฃๅพŒๅ็จฑ็‚บ pve,่‹ฅๅคšๅฐๅŒๅๅฐฑๆœƒ่ก็ช、ๆ†‘่ญ‰้Œฏ่ชค、SSH ไบ’ไฟกๅคฑๆ•—。

    ⚠️ ๆ”นๅๅ‰่ซ‹็ขบไฟๆฒ’ๆœ‰ๅŸท่กŒไธญ็š„ VM / CT,ไธ”ๆญค็ฏ€้ปžๅฐšๆœชๅŠ ๅ…ฅๅข้›†。

    2.2 ไธ€้ตๆ”นๅ่…ณๆœฌ(pve → pve-1)

    # ไฟฎๆ”น hostname
    sed -i 's/pve/pve-1/g' /etc/hostname
    
    # ไฟฎๆ”น /etc/hosts(ๆœ€้—œ้ต)
    sed -i 's/pve/pve-1/g' /etc/hosts
    
    # ้‡ๅ•ŸๅพŒ้ท็งป VM ่จญๅฎš็›ฎ้Œ„
    reboot
    # ้‡ๅ•ŸๅพŒๅŸท่กŒ:
    cp -a /etc/pve/nodes/pve/* /etc/pve/nodes/pve-1/
    
    # ๆ›ดๆ–ฐ SSL ๆ†‘่ญ‰
    pvecm updatecerts -f

    2.3 DHCP ่ฝ‰ๅ›บๅฎš IP(ไปฅ pve-1 ็‚บไพ‹)

    DHCP ๆœƒ่ฎ“็ฏ€้ปžๆฏๆฌก้‡ๅ•Ÿ IP ๅฏ่ƒฝๆ”น่ฎŠ,ๅฐŽ่‡ด corosync.conf ็ด€้Œ„็š„ IP ๅคฑๆ•ˆ,ๅข้›†้€š่จŠๆ–ท้–‹。

    cat <<EOF > /etc/network/interfaces
    auto lo
    iface lo inet loopback
    
    iface nic0 inet manual
    
    auto vmbr0
    iface vmbr0 inet static
            address 192.168.1.11/24
            gateway 192.168.1.1
            bridge-ports nic0
            bridge-stp off
            bridge-fd 0
    EOF
    
    systemctl restart networking && ifreload -a

    ๆŽฅ่‘—ๅŒๆญฅ /etc/hosts

    # pve-1
    sed -i '/pve-1/d' /etc/hosts
    echo '192.168.1.11 pve-1.proxmox.com pve-1' >> /etc/hosts
    
    # pve-2
    sed -i '/pve-2/d' /etc/hosts
    echo '192.168.1.12 pve-2.proxmox.com pve-2' >> /etc/hosts
    ๐Ÿ’ก IP ๆ”นๅฎŒๅพŒ,corosync.conf ่ฃก็š„่ˆŠ IP ไนŸ่ฆไธ€่ตทๆ›ดๆ–ฐ,ไธฆๅฐ‡ config_version ๅŠ  1,ๅฆๅ‰‡ๅข้›†่ชไธๅ‡บ่‡ชๅทฑ。

    ๐Ÿ—️ ไธ‰、็ต„ๅปบ 3-Node ๅข้›†

    3.1 ๅปบ็ซ‹ๅข้›†(ๅœจ pve-1 ๅŸท่กŒ)

    pvecm create MyCluster

    3.2 ๅ…ถไป–็ฏ€้ปžๅŠ ๅ…ฅ

    # ๅœจ pve-2 / pve-3 ๅˆ†ๅˆฅๅŸท่กŒ
    pvecm add 192.168.1.11
    # ่ผธๅ…ฅ yes ็ขบ่ช SSH ้€ฃ็ทš,ๅ†่ผธๅ…ฅ pve-1 ็š„ root ๅฏ†็ขผ

    3.3 pve-3 ๅŠ ๅ…ฅๅ‰็š„ๆธ…็†(้ฟๅ…่ˆŠๅข้›†ๆฎ˜็•™)

    systemctl stop pve-cluster corosync
    killall -9 pmxcfs 2>/dev/null
    rm -f /etc/pve/corosync.conf
    rm -rf /etc/corosync/*
    systemctl start pve-cluster
    
    # ็ขบ่ชไนพๆทจๅพŒๅŠ ๅ…ฅ
    pvecm add 192.168.1.11

    3.4 ็ขบ่ชๅข้›†็‹€ๆ…‹

    pvecm status
    
    # ้ ๆœŸ่ผธๅ‡บ้‡้ปž:
    # Quorate: Yes
    # Total votes: 3
    # Nodes: 3

    3.5 ๅฅ—ไปถๅบซไฟฎๆญฃ(401 Unauthorized ่™•็†)

    rm -rf /etc/apt/sources.list.d/*
    
    echo 'deb http://download.proxmox.com/debian/pve trixie pve-no-subscription' \
      > /etc/apt/sources.list.d/pve-no-sub.list
    
    echo 'deb http://download.proxmox.com/debian/ceph-squid trixie no-subscription' \
      > /etc/apt/sources.list.d/ceph-no-sub.list
    
    # ่ฃœๅ›ž Debian ๅŸบ็คŽๅฅ—ไปถๅบซ
    cat <<EOF > /etc/apt/sources.list
    deb http://deb.debian.org/debian trixie main contrib non-free-remote-annex
    deb http://deb.debian.org/debian trixie-updates main contrib non-free-remote-annex
    deb http://security.debian.org/debian-security trixie-security main contrib
    EOF
    
    apt update && apt install vim -y

    ๐Ÿ”’ ๅ››、้›ž็”Ÿ่›‹ๅ•้กŒ:ๅข้›†้Ž–ๆญป่ˆ‡ๆ†‘่ญ‰ๅŒๆญฅ

    ้€™ๆ˜ฏๆ•ดๅ€‹้Ž็จ‹ๆœ€ๆฃ˜ๆ‰‹็š„้ƒจๅˆ†。ไธ‰ๅ€‹็—‡็‹€ๅพ€ๅพ€ๅŒๆ™‚ๅ‡บ็พ、ไบ’็‚บๅ› ๆžœ:

    ็—‡็‹€ๆ นๆœฌๅŽŸๅ› 
    Write error (file system full?)/etc/pve ่ขซ pmxcfs ้Ž–ๅฎš็‚บๅ”ฏ่ฎ€
    Cannot initialize CMAP servicecorosync ๆœๅ‹™ๅฎŒๅ…จๅดฉๆฝฐ,pvecm ๆŒ‡ไปค็„กๆณ•ไฝฟ็”จ
    SSL certificate verify failed (596)IP ่ฎŠๆ›ดๅพŒ,่ˆŠๆ†‘่ญ‰่ˆ‡ๆ–ฐ IP ไธๅŒน้…
    no quorum!็ฏ€้ปžๅคฑ่ฏ็ฅจๆ•ธไธ่ถณ,ๆ‹’็ต•ไปปไฝ•ๅฏซๅ…ฅๆ“ไฝœ

    4.1 ่งฃ้Ž–ๆต็จ‹:pmxcfs ๆœฌๅœฐๆจกๅผ

    # ๅœๆญขๆ‰€ๆœ‰่ก็ชๆœๅ‹™
    systemctl stop pve-ha-lrm pve-ha-crm corosync pve-cluster
    killall -9 pmxcfs
    
    # ไปฅๆœฌๅœฐๆจกๅผๆŽ›่ผ‰(็นž้Ž Quorum ๆชขๆŸฅ,ๆขๅพฉๅฏๅฏซ)
    pmxcfs -l
    
    # ไฟฎๆ”น corosync.conf(IP ่ˆ‡็‰ˆๆœฌ่™Ÿ)
    vim /etc/pve/corosync.conf
    # ๆŒ‰ :wq! ๅผทๅˆถๅ„ฒๅญ˜
    
    # ๆขๅพฉๆญฃๅธธๆจกๅผ
    killall -9 pmxcfs
    systemctl start pve-cluster corosync
    pvecm updatecerts -f
    ⚠️ pmxcfs -l ๆœƒไฝ”็”จๅ‰ๅฐ。่‹ฅ้กฏ็คบ「unable to acquire pmxcfs lock」,ๅ…ˆๅŸท่กŒ killall -9 pmxcfs ๆธ…้™คๆฎ˜็•™็จ‹ๅบๅ†่ฉฆ。

    4.2 ไธ€้ตๆ•‘ๆด่…ณๆœฌ

    cat << 'EOF' > /tmp/pve_rescue.sh
    #!/bin/bash
    systemctl stop pve-ha-lrm pve-ha-crm corosync pve-cluster 2>/dev/null
    killall -9 pmxcfs 2>/dev/null
    pmxcfs -l
    sleep 2
    
    # ไฟฎๆญฃ corosync IP(ไพๅฏฆ้š›ๆƒ…ๆณไฟฎๆ”น)
    sed -i 's/192.168.1.107/192.168.1.11/g' /etc/pve/corosync.conf
    sed -i 's/192.168.1.130/192.168.1.12/g' /etc/pve/corosync.conf
    sed -i 's/config_version: .*/config_version: 10/' /etc/pve/corosync.conf
    
    # ไฟฎๆญฃ NFS ๅ„ฒๅญ˜ IP
    sed -i 's/server .*/server 192.168.1.111/' /etc/pve/storage.cfg
    
    # ๆธ…้™ค HA ้Œฏ่ชค้Ž–ๅฎš
    rm -f /etc/pve/ha/resources.cfg
    
    killall -9 pmxcfs
    systemctl start pve-cluster
    sleep 2
    systemctl start corosync
    pvecm updatecerts -f
    EOF
    
    chmod +x /tmp/pve_rescue.sh
    /tmp/pve_rescue.sh

    ๐ŸŒ‰ ไบ”、็ถฒ่ทฏๆฉ‹ๆŽฅ vmbr0 ๆ•…้šœๆŽ’้™ค

    5.1 ็—‡็‹€

    no physical interface on bridge 'vmbr0'
    network script /usr/libexec/qemu-server/pve-bridge failed with status 6400
    TASK ERROR: start failed: QEMU exited with code 1

    ไปฃ่กจ vmbr0 ๆฒ’ๆœ‰็ถๅฎšๅฏฆ้ซ”็ถฒๅก,VM ็„กๆณ•ๅ–ๅพ—็ถฒ่ทฏๅ‡บๅฃ。

    5.2 ่จบๆ–ท

    ip link show
    # ็ขบ่ช nic0(ๆˆ– enp... )็‹€ๆ…‹็‚บ UP,ไธ” vmbr0 ๆœ‰้กฏ็คบ master ้—œ่ฏ

    5.3 ๆฐธไน…ไฟฎๅพฉ

    cat <<NET_EOF > /etc/network/interfaces
    auto lo
    iface lo inet loopback
    
    iface nic0 inet manual
    
    auto vmbr0
    iface vmbr0 inet static
            address 192.168.1.11/24
            gateway 192.168.1.1
            bridge-ports nic0
            bridge-stp off
            bridge-fd 0
    NET_EOF
    
    ifreload -a
    ⚠️ ๆฏๅ€‹็ฏ€้ปž็š„ vmbr0 ๅฟ…้ ˆไฝฟ็”จ็›ธๅŒ็š„ๆฉ‹ๆŽฅ็ตๆง‹,ๅฆๅ‰‡ VM ้ท็งปๅพŒๆœƒๅคฑๅŽป็ถฒ่ทฏ้€ฃ็ทš。

    ๐Ÿ’ฟ ๅ…ญ、NFS ๅ„ฒๅญ˜ๆ•ดๅˆ(TrueNAS / OMV)

    6.1 ๅœจๅ„ฒๅญ˜ไผบๆœๅ™จ่จญๅฎš NFS Export

    ่‹ฅ showmount -e <IP> ้กฏ็คบ No file systems exported!,้œ€ๆ‰‹ๅ‹•ๅŠ ๅ…ฅๅŒฏๅ‡บ่ฆๅ‰‡:

    cp /etc/exports /etc/exports.bak
    
    echo '/srv/dev-disk-by-uuid-.../ISO 192.168.1.0/24(rw,sync,no_subtree_check,no_root_squash)' \
      >> /etc/exports
    
    exportfs -arv
    showmount -e localhost
    ๐Ÿ’ก no_root_squash ๅฐ PVE ่‡ณ้—œ้‡่ฆ:PVE ้ ่จญไปฅ root ๅญ˜ๅ– NFS,่‹ฅ็ผบๅฐ‘ๆญค้ธ้ …ๆœƒๅ› ๆฌŠ้™่ขซๆ‹’่€Œ็„กๆณ•ๅ‚™ไปฝ。

    6.2 ๅœจ PVE ๅŠ ๅ…ฅ NFS ๅ„ฒๅญ˜

    Datacenter → Storage → Add → NFS,ๅกซๅ…ฅไปฅไธ‹่ณ‡่จŠ:

    ๆฌ„ไฝๅกซๅ…ฅๅ€ผ
    IDISO(ไปปๆ„ๅ็จฑ)
    Server192.168.1.111
    Exportไธ‹ๆ‹‰้ธๅ–ฎ่‡ชๅ‹•ๅตๆธฌ่ทฏๅพ‘
    ContentISO image, VZDump backup, Disk image

    6.3 ่จบๆ–ทๆŒ‡ไปค

    showmount -e 192.168.1.111   # ๆธฌ่ฉฆ NFS ไผบๆœๅ™จๆ˜ฏๅฆๆœ‰้–‹้–€
    pvesm status                  # ๆŽ›่ผ‰็‹€ๆ…‹
    pvesm set ISO --disable 0     # ๅผทๅˆถๅ•Ÿ็”จๅ„ฒๅญ˜
    mount -a                      # ้‡ๆ–ฐๆŽ›่ผ‰

    ⚙️ ไธƒ、HA ่จญๅฎš่ˆ‡ Node Affinity ่ฆๅ‰‡

    7.1 HA ๆ ธๅฟƒๅ…ƒไปถ

    ๅ…ƒไปถๅŠŸ่ƒฝ
    CRM(ๅข้›†่ณ‡ๆบ็ฎก็†ๅ™จ)่ทจ็ฏ€้ปžๅ”่ชฟ,ๆฑบๅฎš VM ่ฆๅœจๅ“ชๅฐ่ท‘
    LRM(ๆœฌๅœฐ่ณ‡ๆบ็ฎก็†ๅ™จ)ๅœจๆœฌๆฉŸๅŸท่กŒ้–‹ๆฉŸ、้—œๆฉŸ、้ท็งป
    Master็”ฑ CRM ๅ‹•ๆ…‹้ธๅ‡บ็š„ๆŒ‡ๆฎ็ฏ€้ปž

    7.2 ๅŠ ๅ…ฅ HA ่ณ‡ๆบ

    Datacenter → HA → Resources → Add,้ธๆ“‡ vm:100,่จญๅฎš Max. Restart ่ˆ‡ Max. Relocate。

    7.3 ่จญๅฎš Node Affinity(ๆŽ’้™ค pve-3)

    ๆ–ฐ็‰ˆ Proxmox ๅทฒๅฐ‡ Groups ๆ•ดๅˆ่‡ณ Rules。้€้Ž Node Affinity ่ฆๅ‰‡ๆŽ’้™ค็‰นๅฎš็ฏ€้ปž:
    Datacenter → HA → Affinity Rules → Add → Node Affinity

    ๆฌ„ไฝ่จญๅฎš
    HA Resourcesvm:100
    Nodespve-1, pve-2(ไธ้ธ pve-3
    ⚠️ Resource Affinity ๆ˜ฏ็”จๆ–ผ「ๅ…ฉๅฐ VM ไน‹้–“็š„่š้›† / ๅˆ†้›ข่ฆๅ‰‡」。ๅชๆœ‰ไธ€ๅฐ VM ๆ™‚่จญๅฎšๆญค้ …ๆœƒๅ ฑ 400 ้Œฏ่ชค,่ซ‹ๅ‹ฟๆททๆท†。

    7.4 ไฟฎๅพฉ LRM「Dead」็‹€ๆ…‹

    ่‹ฅ HA Status ้กฏ็คบ old timestamp - dead?,้‡ๅ•Ÿ HA ๆœๅ‹™:

    systemctl restart pve-ha-lrm pve-ha-crm

    ๐Ÿง  ๅ…ซ、่…ฆ่ฃ‚(Split-brain)้ ้˜ฒๆฉŸๅˆถ

    8.1 ไป€้บผๆ˜ฏ่…ฆ่ฃ‚?

    ๅข้›†ๅ› ็ถฒ่ทฏไธญๆ–ทๅˆ†่ฃ‚ๆˆๅ…ฉ็ต„,ๅ„่‡ชไปฅ็‚บๅฐๆ–นๆญปๆމ。่‹ฅๅ…ฉ็ต„ๅŒๆ™‚ๅฐๅŒไธ€ไปฝ็กฌ็ขŸๅฏซๅ…ฅ, ๆœƒๅฐŽ่‡ด ๅšด้‡็š„่ณ‡ๆ–™ๆๆฏ€(Data Corruption)

    8.2 Proxmox ็š„้˜ฒ่ญทๆฉŸๅˆถ

    • ๅชๆœ‰็ฅจๆ•ธ่ถ…้Ž็ธฝ็ฅจๆ•ธไธ€ๅŠ็š„้‚ฃไธ€็ต„ๆ‰่ƒฝ็นผ็บŒ้‹ไฝœ
    • ็ฅจๆ•ธไธ่ถณ็š„้‚ฃไธ€็ต„่‡ชๅ‹•้€ฒๅ…ฅๅ”ฏ่ฎ€้Ž–ๅฎš(็„กๆณ•ๅ•Ÿๅ‹• VM)
    • Watchdog ๆฉŸๅˆถ:LRM 10 ็ง’ๅ…งๆœช้‡็ฝฎ็œ‹้–€็‹—,็ณป็ตฑๅผทๅˆถ้‡ๅ•Ÿ็ฏ€้ปž

    8.3 2-Node vs 3-Node ๅทฎ็•ฐ

    ๆƒ…ๅขƒ2-Node ๅข้›†3-Node ๅข้›†
    1 ๅฐ้—œๆฉŸๅ‰ฉ 1/2 ็ฅจ → ❌ ้Ž–ๆญปๅ‰ฉ 2/3 ็ฅจ → ✅ ๆญฃๅธธ้‹ไฝœ
    ้œ€ๆ‰‹ๅ‹•่งฃ้Ž–ๆ˜ฏ(pvecm expected 1ๅฆ,่‡ชๅ‹•็ถญๆŒ Quorum
    ๅฎน้Œฏ่ƒฝๅŠ›0 ๅฐ(ไปปไฝ•ๆ•…้šœ้ƒฝ้Ž–ๆญป)1 ๅฐ
    ๐Ÿ’ก pve-3 ๆŠ•็ฅจ็ฏ€้ปž็š„่จญ่จˆ้‚่ผฏ: ่ฎ“่ณ‡ๆบๆœ‰้™็š„ pve-3 ไฟๆŒ้–‹ๆฉŸๆไพ›็ฌฌไธ‰็ฅจ;้€้Ž Node Affinity ่ฎ“ VM ็ต•ไธ่ท‘ๅœจ pve-3; pve-3 ๅƒ…ๆถˆ่€—ๆฅตๅฐ‘้‡่ณ‡ๆบ(corosync ๆœๅ‹™),ไธๅฝฑ้Ÿฟๆ•ด้ซ”ๆ•ˆ่ƒฝ。

    ๐Ÿ”ฅ ไน、Failover ๅฏฆๆธฌ็ด€้Œ„

    9.1 ๅˆๅง‹็‹€ๆ…‹

    ้ …็›ฎ็‹€ๆ…‹
    VM 100pve-2 ไธŠ้‹่กŒ,Ubuntu 22.04 Server
    pve-1active,ๅพ…ๅ‘ฝไธญ
    pve-2active,ๆ‰ฟ่ผ‰ VM 100
    pve-3active,็ด”ๆŠ•็ฅจ(Master ็”ฑ pve-3 ๆ“”ไปป)
    QuorumOK(3/3 ็ฅจ)

    9.2 ๅˆ‡ๆ›ๆ™‚ๅบๅˆ†ๆž

    ๆ™‚้–“(็ง’)ไบ‹ไปถ
    T+0pve-2 ้›ปๆบ้—œ้–‰
    T+10pve-2 ็š„ Watchdog ้€พๆ™‚,็ณป็ตฑ็ขบ่ช็ฏ€้ปž็„กๅ›žๆ‡‰
    T+60Master(pve-3)ๅˆคๅฎš pve-2 ้€พๆ™‚(dead?
    T+65pve-1 ๅ–ๅพ— VM 100 ็š„่ณ‡ๆบ้Ž–ๅฎš
    T+75~140VM 100 ๅœจ pve-1 ๅ†ทๅ•Ÿๅ‹•ๅฎŒๆˆ,ๆœๅ‹™ๆขๅพฉ

    9.3 ๅฏฆๆธฌ่ง€ๅฏŸๅˆฐ็š„ ha-manager status ่ผธๅ‡บ

    # ้—œๆฉŸๅพŒ็ด„ 60 ็ง’
    quorum OK
    master pve-3 (active, Sun Mar 1 15:59:14 2026)
    lrm pve-1 (active, Sun Mar 1 15:59:22 2026)
    lrm pve-2 (old timestamp - dead?, Sun Mar 1 15:56:58 2026)
    lrm pve-3 (idle, Sun Mar 1 15:59:24 2026)
    service vm:100 (pve-1, starting)
    
    # ็ด„ 140 ็ง’ๅพŒ
    service vm:100 (pve-1, started)

    9.4 ๅฏฆๆธฌ็ต่ซ–

    ๆŒ‡ๆจ™ๅฏฆๆธฌ็ตๆžœ
    ๆ•…้šœๅตๆธฌๆ™‚้–“็ด„ 60 ็ง’
    VM ๅ•Ÿๅ‹•ๆ™‚้–“็ด„ 60~80 ็ง’(ๅซ Ubuntu ้–‹ๆฉŸ)
    ็ธฝๅˆ‡ๆ›ๆ™‚้–“็ด„ 130~140 ็ง’(็ด„ 2 ๅˆ† 20 ็ง’)
    ่ณ‡ๆ–™ไธ€่‡ดๆ€งๆญฃๅธธ(NFS ๅ…ฑไบซๅ„ฒๅญ˜็„ก้œ€่ค‡่ฃฝ)
    Node Affinity ๆœ‰ๆ•ˆๆ€งVM ๆœช่ท‘ๅˆฐ pve-3 ✅

    9.5 Failback(ๆญธไฝ)ๆต็จ‹

    1. ๅฐ‡ pve-2 ้‡ๆ–ฐ้–‹ๆฉŸ
    2. pve-2 ๅŠ ๅ›žๅข้›†,ๆขๅพฉ็ถ ็‡ˆ
    3. ็ณป็ตฑ่‡ชๅ‹•ๅŸท่กŒ Live Migration,ๅฐ‡ VM 100 ๅพž pve-1 ๆฌๅ›ž pve-2
    4. ้ท็งป้Ž็จ‹ไธ้—œๆฉŸ(Online Migration),ๆœๅ‹™ไธไธญๆ–ท
    ๐Ÿ’ก Live Migration ๅฏฆๆธฌ:2 GB ่จ˜ๆ†ถ้ซ”็‹€ๆ…‹ๅ‚ณ่ผธ 22 ็ง’ๅฎŒๆˆ,Downtime ๅƒ… 183 ms,VM ๅฎŒๅ…จไธๆ–ทๆœๅ‹™。

    ๐Ÿ“‹ ๅ、ๅฎŒๆ•ดๆŒ‡ไปค้€ŸๆŸฅ่กจ

    ๅข้›†็ฎก็†

    pvecm status                          # ๆŸฅ็œ‹ๅข้›†็‹€ๆ…‹่ˆ‡ Quorum
    pvecm expected 1                      # ๅผทๅˆถไปฅ 1 ็ฅจ็ถญๆŒ Quorum(2-Node ็ทŠๆ€ฅ่งฃ้Ž–)
    pvecm updatecerts -f                  # ๅผทๅˆถๆ›ดๆ–ฐๅ…จๅข้›† SSL ๆ†‘่ญ‰
    pvecm add 192.168.1.11                # ๅŠ ๅ…ฅๅข้›†

    HA ็ฎก็†

    ha-manager status                     # ๆŸฅ็œ‹ HA ่ฉณ็ดฐ็‹€ๆ…‹
    ha-manager set vm:100 --state disabled # ๅœ็”จ VM ็š„ HA ็ฎก็†
    ha-manager remove vm:100              # ็งป้™ค VM ็š„ HA ็ฎก็†
    systemctl restart pve-ha-lrm pve-ha-crm # ้‡ๅ•Ÿ HA ๆœๅ‹™

    VM ็ฎก็†

    qm start 100                          # ๅ•Ÿๅ‹• VM
    qm unlock 100                         # ่งฃ้™ค VM ้Ž–ๅฎš
    qm set 100 --memory 2048              # ่จญๅฎš่จ˜ๆ†ถ้ซ”(Ubuntu ่‡ณๅฐ‘้œ€ 2048)
    qm migrate 100 pve-2 --online         # ็ทšไธŠ็†ฑ้ท็งป

    ็ถฒ่ทฏ็ฎก็†

    ip link show                          # ๆŸฅ็œ‹็ถฒๅก็‹€ๆ…‹
    ip link set nic0 up                   # ๅ•Ÿ็”จ็ถฒๅก
    brctl addif vmbr0 nic0               # ่‡จๆ™‚ๅŠ ๅ…ฅๆฉ‹ๆŽฅ
    ifreload -a                          # ๅฅ—็”จ็ถฒ่ทฏ่จญๅฎš

    ๆœๅ‹™้‡ๅ•Ÿๅƒ่€ƒ

    # ๅข้›†้€š่จŠ
    systemctl restart corosync pve-cluster
    
    # Web UI ็ฎก็†ไป‹้ข
    systemctl restart pveproxy pvedaemon pvestatd
    
    # HA ๆœๅ‹™
    systemctl restart pve-ha-lrm pve-ha-crm

    ๐Ÿ’ฌ ็•™่จ€ไบคๆต
    ๅฆ‚ๆžœไฝ ๅœจๅฏฆไฝœ้Ž็จ‹้‡ๅˆฐๅก้ปž(็‰ˆๆœฌ、็’ฐๅขƒ、้Œฏ่ชค่จŠๆฏ),ๆญก่ฟŽ็•™่จ€่จŽ่ซ–:
    • ไฝ ็š„็’ฐๅขƒ็‰ˆๆœฌ(PVE / Kernel / ็ฏ€้ปžๆ•ธ)
    • ไฝ ๅšไบ†ๅ“ชไบ›ๆญฅ้ฉŸ
    • ้Œฏ่ชค่จŠๆฏๆˆ–็พ่ฑก(้™„ไธŠ้—œ้ต log)

    ๆจ™็ฑค: Proxmox · HA · Cluster · Quorum · Corosync · NFS

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

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

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

    ๅญ—็ดš