Proxmox VE 集群管理器 pvecm 是一款用于创建一组物理服务器。这样的称为cluster - 集群。使用 Corosync 集群引擎来实现可靠的集群沟通。集群中没有明确的节点数量限制。 实际上,实际可能的节点数可能受主机和 网络表现。目前(2021年),有关于集群(使用 高端企业硬件)拥有超过50个节点在生产中。

PVECM可用于创建新集群,将节点连接到集群, 离开集群,获取状态信息,并做各种与集群相关的工作 任务。Proxmox cluster File System(“pmxcfs”) 用于透明地将集群配置分发到所有集群节点。

将节点分组到集群中有以下优势:

  • 集中式、基于网络的多节点统一管理

  • 多主集群:每个节点可以完成所有管理任务,没类似vCenter的东西,在集群内任意节点登录皆可管理所有节点。

  • 使用 pmxcfs,一种数据库驱动的文件系统,用于存储配置 文件,通过CoroSync在所有节点上实时复制

  • 虚拟机和容器在物理间的实时迁移和冷迁移。

  • 集群范围的服务,如防火墙和HA

参考文档:https://pve.proxmox.com/pve-docs/chapter-pvecm.html#chapter_pvecm

Proxmox Datacenter Manager 可用于管理多集群,但目前还未完善。 https://www.proxmox.com/en/products/proxmox-datacenter-manager/overview

PVE系列文章:https://songxwn.com/categories/PVE/

集群要求

  • 所有节点必须能够通过UDP端口5405-5412相互连接,用于让Corosync组件正常工作。

  • 日期和时间必须同步,需要配置统一的NTP服务器

  • 节点之间需要在TCP 22端口上建立SSH隧道。

  • 如果你对生产环境高可用性有要求,你需要拥有至少有四个节点以确保可靠性。所有节点都应拥有同样的PVE版本。

对于较小的双节点集群,可以使用 QDevice 提供第三票。

  • 建议为集群流量使用专用的物理网卡。

    Proxmox VE 集群通信使用 Corosync 协议。
    Corosync 需要稳定、低延迟的网络,但带宽需求不高。
    大多数情况下,一个专用的 1 Gbit 网卡就足够了。
    这样可以避免其他服务占用全部可用带宽,从而导致 Corosync 数据包延迟增加。

  • 额外的集群流量链路可以在专用网络故障时提供冗余。

    Corosync 最多支持 8 条链路。

    为了确保 Corosync 的可靠性,至少应在另一个物理网络上配置一条额外连接。
    这样即使专用网络发生故障,Corosync 仍能保持集群通信。

    单一链路如果通过 bond 支撑,在某些故障场景下可能存在问题。
    参见:Corosync over Bonds

  • 添加节点需要集群节点的root密码。

  • 虚拟机的在线迁移需来自同一个供应商 AMD/Intel (最好同系列同型号)。

PVE 集群实现功能

加入集群后的 PVE 节点可以实现集中管理、虚拟机/容器的在线迁移、高可用 (HA) 故障自愈,以及统一的配置与防火墙策略。相比单机模式,集群显著提升了可扩展性、可靠性和运维效率。

PS:CT容器只能冷迁移。

加入集群后的主要功能

  • 集中式管理
    所有节点共享 Web 界面,任何节点都能管理整个集群。配置通过 pmxcfs 自动同步,避免手工维护。

  • 虚拟机/容器迁移
    支持 在线迁移 (Live Migration),在不中断业务的情况下将 VM/LXC 从一台物理主机迁移到另一台,实现负载均衡与维护便利。

  • 高可用 (HA)
    借助 pve-ha-managerwatchdog,当节点宕机时,集群会自动在其他节点上重启受影响的虚拟机,保障业务连续性。

  • 统一防火墙策略
    防火墙规则可在集群范围内快速下发,保证安全策略一致。

  • 共享存储整合
    配合 Ceph、NFS、iSCSI 等共享存储,迁移时只需传输内存状态,速度快且网络压力小。


集群架构关键点

组件 作用
Corosync 集群通信与心跳检测,保证节点状态一致
pmxcfs 分布式配置文件系统,实时同步配置
votequorum 仲裁机制,防止脑裂,保证集群一致性
pve-ha-manager 高可用资源监控与故障恢复
watchdog 节点失联时自动重启释放资源

风险与注意事项

  • 配置覆盖风险:加入集群时,节点原有 /etc/pve 配置会被覆盖,需提前备份虚拟机并重新导入。
  • 节点数量要求:至少 3 节点才能保证可靠的 quorum;双节点需额外配置 QDevice
  • 硬件兼容性:在线迁移要求 CPU 厂商一致,否则可能失败。
  • 网络要求:Corosync 对延迟敏感,建议使用专用 NIC,避免与存储/迁移流量混用。 virtualenvironment.cn shallowhave.github.io Proxmox VE 中文文档

在 PVE 集群中启用 HA (High Availability),需要满足一系列条件,确保故障时虚拟机能自动迁移或重启。核心条件如下:


HA 实现条件

  • 集群节点数量
    至少 3 个节点,保证 quorum 仲裁正常工作。双节点集群必须额外配置 QDevice,否则容易脑裂。

  • 共享存储
    所有 HA 虚拟机必须使用共享存储(如 CephRBD、NFS、iSCSI、SMB),否则故障节点上的磁盘无法在其他节点访问。

  • Corosync 通信稳定
    集群心跳依赖 Corosync,要求低延迟、稳定网络,最好使用独立网卡或 VLAN,避免与迁移/存储流量混合。

  • Watchdog 配置
    每个节点必须启用硬件或软件 Watchdog,保证节点失联时能自动触发重启,释放资源。

  • pve-ha-manager 服务
    集群必须运行 HA 管理器,负责监控虚拟机状态并在故障时调度到其他节点。

  • 一致的 CPU 架构
    在线迁移和 HA 重启要求 CPU 指令集兼容,通常需同一厂商、同一代架构。

  • 虚拟机 HA 标记
    在 VM 配置中显式启用 HA,集群才会对其进行故障恢复;未启用的 VM 不会自动迁移。

  • 统一网络 - VNET
    需要虚拟机在集群 - SDN创建Vnet (类似VMware的分布式交换机vDS / NSX)


额外注意事项

  • 仲裁机制:必须保证多数节点在线,否则 HA 无法正常工作。
  • 资源预留:集群需有足够的空闲资源,否则故障节点上的 VM 无法在其他节点启动。
  • 测试验证:建议在生产前进行故障模拟,验证 HA 是否能按预期恢复。

PVE 创建集群

  • 打开Web界面,数据中心-集群 - 创建集群 - 输入集群名字 - 选择集群通信链接

  • 创建完成

在shell查看状态

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
root@pve-S1:~# pvecm status
Cluster information
-------------------
Name: PVE-CU1
Config Version: 1
Transport: knet
Secure auth: on

Quorum information
------------------
Date: Mon Aug 24 12:15:17 2026
Quorum provider: corosync_votequorum
Nodes: 1
Node ID: 0x00000001
Ring ID: 1.5
Quorate: Yes

Votequorum information
----------------------
Expected votes: 1
Highest expected: 1
Total votes: 1
Quorum: 1
Flags: Quorate

Membership information
----------------------
Nodeid Votes Name
0x00000001 1 100.64.91.61 (local)

加入集群

获取集群加入信息 - 在一个PVE上创建集群后复制加入信息

PS:注意IP地址可互相通信,这个IP地址在 /etc/hosts文件里面读取,可修改重启后再次读取。

在第二台PVE节点加入到已有集群

  • 注意,密码是第一台创建集群的PVE root密码。

查看状态 - 在任意集群内节点登录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
root@PVE-S2:~# pvecm status  
Cluster information
-------------------
Name: PVE-CU1
Config Version: 2
Transport: knet
Secure auth: on

Quorum information
------------------
Date: Mon Aug 24 12:52:37 2026
Quorum provider: corosync_votequorum
Nodes: 2
Node ID: 0x00000002
Ring ID: 1.32
Quorate: Yes

Votequorum information
----------------------
Expected votes: 2
Highest expected: 2
Total votes: 2
Quorum: 2
Flags: Quorate

Membership information
----------------------
Nodeid Votes Name
0x00000001 1 100.64.91.61
0x00000002 1 100.64.91.104 (local)

PS:Ceph + HA最好使用3个以上节点才能支持。

PVE配置NTP服务器

1
2
3
4
nano /etc/chrony/chrony.conf

pool ntp.aliyun.com iburst

  • 修改pool行为指定ntp服务器

重启服务和验证

1
2
3
4
5
6
systemctl restart chrony

chronyc sources
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* 203.107.6.88 2 6 17 25 -6005us[-2465us] +/- 127ms

HA 高可用 和 CRS 集群资源调度器

HA 关机策略

在 Proxmox VE 的 高可用设置 (HA Settings) 里,你看到的“关机策略 (Shutdown Policy)”选项,主要决定了当节点或虚拟机遇到关机/故障时,集群如何处理资源的行为。它的作用是保证服务尽可能持续运行,减少单点故障带来的影响。

各策略作用说明

  • 默认 (conditional)

    • 默认策略,通常根据具体情况决定是否迁移或关闭。
    • 如果节点正常关机,资源会被安全停止(关机);如果是异常宕机,则触发迁移或故障转移到其他节点。
  • freeze

    • VM/CT 保持冻结状态,不做迁移或重启。
    • 适合需要保持数据一致性,但不希望自动恢复的场景。
  • failover

    • 当节点关机或故障时,资源会自动在其他节点上启动。
    • 常用于关键业务,确保服务不中断。
  • migrate

    • 在节点关机前,主动将 VM/CT 迁移到其他节点。
    • 适合计划性维护,保证业务连续性。
  • conditional

    • 与默认类似,根据关机原因决定是否迁移或停止。
    • 灵活性较高,适合一般场景。

总结

这些策略的核心作用是:在节点关机或故障时,决定虚拟机/容器的处理方式

  • 如果你要保证业务连续性,推荐用 failovermigrate
  • 如果你只需要保持状态,不自动恢复,可以用 freeze
  • 如果希望灵活处理,保持默认或 conditional 即可。

HA状态

  • 在资源下可以查看已加入HA保护的主机/容器,可以进行添加和移除
  • 也可以关闭当前HA状态,用于维护使用。

HA 亲和性规则

  • HA节点亲和性规则:将一个或一组虚拟机/容器优先运行在一个/一组主机节点上。
  • HA资源亲和性规则:配置将虚拟机/容器配置是否运行在一个节点,或者不允许在一个节点上。

停机维护

CRS

集群内三个主机节点,CPU使用率各是 10% 50% 80% 怎么办?
CRS就是解决这个的,类似VMware DRS,用于尽可能让各个节点的负载尽量均衡,更好的利用现有资源。

  • Scheduling Mode: 动态负载

    • CRS 会实时监控节点负载,不仅在启动时选择最轻节点,还会在运行中动态调整。
  • 启动时重新平衡

    • 当 HA 资源启动时,自动选择负载最轻的节点,而不是固定分配。
  • 自动重新平衡

    • 集群运行过程中,如果检测到负载不均衡,自动迁移 VM/CT 到更合适的节点。
  • Imbalance Threshold (%)

    • 默认 30%。只有当节点负载差异超过 30% 时,才会触发迁移。
  • 重平衡方法 (bruteforce)

    • 使用暴力计算方式,尝试找到最优分配方案。
  • 保持时长

    • 默认 3,表示迁移后至少等待 3 分钟才会再次触发调度,避免频繁迁移。
  • Minimum Imbalance Improvement (%)

    • 默认 10%。只有当迁移能带来至少 10% 的负载改善时才会执行。

总结

  • 启动时 → 资源分配到最轻节点。
  • 运行中 → 自动监控负载,超过阈值时触发迁移。
  • 迁移条件 → 必须带来明显改善,且有最小间隔时间,避免频繁波动。

自定义CPU模型

可以在集群创建自定义CPU模型,用于某些如Windows系统的性能调优。

你上传的截图是 Proxmox VE 中 创建自定义 CPU 类型 的配置界面。这里涉及几个关键点,尤其是和 Windows 虚拟机兼容性、性能优化相关的参数:

核心字段说明

  • Base Model: host
    表示虚拟机 CPU 模型直接继承宿主机的 CPU 指令集,通常能获得最佳性能和兼容性。
  • Hyper-V Vendor: 无
    如果要运行 Windows Server 或 Windows 10/11,建议设置为 Microsoft,这样 Windows 会识别虚拟化环境为 Hyper-V,启用更好的优化(如启用 Enlightenments)。
  • Hide Hypervisor
    勾选后,虚拟机内的操作系统不会检测到自己运行在虚拟化环境中。某些旧版软件或 DRM 场景可能需要隐藏,但 Windows 一般不建议启用。
  • Physical Address Bits
    默认即可,除非需要限制虚拟机的物理地址空间。

常见 CPU Flags

  • nested-virt
    控制嵌套虚拟化(Intel VMX / AMD SVM)。如果你要在虚拟机里再跑 Hyper-V 或 ESXi,需要启用。
  • aes
    启用 AES-NI 指令集,加速加密/解密操作(VPN、磁盘加密、TLS)。
  • amd-ssbd
    AMD CPU 的 Spectre 缓解优化,通常和 virt-ssbd 配合使用。
  • adx
    加速某些算术运算,主要用于高性能计算场景。
  • abm
    提供更高效的位操作指令。

Windows 虚拟机优化建议

  1. Hyper-V Vendor 设置为 Microsoft → 让 Windows 识别为 Hyper-V 环境,启用 Enlightenments。
  2. 启用 AES → 提升加密性能。
  3. 启用 nested-virt(可选)→ 如果需要在 Windows VM 内再跑 Hyper-V 或 WSL2。
  4. 保持 Base Model 为 host → 避免兼容性问题,尤其是 live migration 时需保证源宿主机 CPU 指令集一致。

支持存储

存储类型 共享 支持功能
Ceph RBD VM/CT 磁盘映像,分布式块存储,高可用,快照,复制
CephFS 备份、ISO、模板、配置片段,分布式文件系统
ZFS 否(本地池) 快照、复制、压缩、完整性校验,适合高性能本地存储
BTRFS 否(本地池) 快照、校验、轻量化存储,适合单节点或小规模
LVM/LVM-Thin VM/CT 磁盘映像,Thin 支持精简配置
NFS ISO、备份、模板共享,常用于轻量共享存储
SMB/CIFS 挂载 NAS,ISO、备份、模板共享
iSCSI 外部 SAN 块存储,适合企业环境
目录存储 ISO、备份、模板,本地简单存储
Proxmox Backup Server 增量备份、去重、加密,专用备份后端
ESXi 存储挂载 接入 VMware ESXi 存储资源,支持迁移与整合

SDN - 区域 -VNet

Zone 类型简析

  • Simple
    最基础的 Zone,不做额外封装,适合小规模或测试环境。
  • VLAN
    使用传统的 802.1Q VLAN 标签,常见于企业网络,简单且高效。
  • QinQ
    VLAN 叠加 (802.1ad),适合多租户场景,可在外层 VLAN 上再封装内层 VLAN。
  • VXLAN
    基于 UDP 封装的虚拟网络,常用于跨物理网络的大规模虚拟化部署。
  • EVPN
    结合 BGP 的控制平面,支持大规模数据中心的多租户网络,功能最强大。

Vnets

类似于VMware 的vDS的分布式端口组,是为了在集群内随意迁移到任意节点也能使用同样的网络接入。

运维技术交流群

发送邮件到 ➡️ me@songxwn.com

或者关注WX公众号:网工格物

微信扫码

博客(最先更新)

https://songxwn.com/