服务器运维

PVE 系统是什么:Proxmox VE 虚拟化平台功能与适用场景

PVE 系统就是 Proxmox VE,一个基于 Debian 的开源虚拟化平台:用 KVM 跑完整虚拟机,用 LXC 跑轻量容器,集群、高可用、ZFS 和 Ceph 存储、备份都内置,浏览器打开 8006 端口就能管理。软件本身免费,付费订阅买的是企业软件源和技术支持。

作者 顶联产品团队发布于 7 分钟阅读

PVE 系统就是 Proxmox VE(Proxmox Virtual Environment),由奥地利的 Proxmox Server Solutions 公司开发,2008 年发布首个版本,以 AGPLv3 开源。它是一个装在物理服务器上的完整虚拟化平台:底层是 Debian,用 KVM/QEMU 运行完整的虚拟机(Linux、Windows、BSD 都能装),用 LXC 运行共享宿主内核的轻量容器,集群、高可用、ZFS 和 Ceph 存储、备份、防火墙、权限管理全部内置,浏览器访问 8006 端口就能管理一台或整个集群。软件本身免费,所有功能不需要许可证;付费订阅买的是经过更多测试的企业软件源和官方技术支持。在机房里,它常见于两种用法:独服或母机上切虚拟机对外出租,也就是俗称的“开小鸡”;以及用 3 台以上服务器搭一个跑内部系统的小型私有云。

PVE 系统由什么组成:Debian、KVM 和 LXC

组成部分 是什么 在 PVE 里怎么体现
Debian 底层操作系统,PVE 9 基于 Debian 13,PVE 8 基于 Debian 12 用 apt 升级,熟悉 Linux 就能维护宿主
Proxmox 内核 以 Ubuntu 内核源码为基础定制,内置 ZFS 支持 硬件兼容性跟随 Linux 内核,没有单独的兼容列表
KVM + QEMU 硬件辅助的完整虚拟化 命令 qm,配置文件 /etc/pve/qemu-server/<VMID>.conf
LXC 系统级容器,与宿主共用内核 命令 pct,配置文件 /etc/pve/lxc/<VMID>.conf
pmxcfs + corosync 集群文件系统,挂载在 /etc/pve,由 corosync 在节点间同步 命令 pvecm,任何节点改的配置全集群可见
pveproxy、pvedaemon Web 界面和 REST API 8006 端口,命令行用 pvesh 调用同一套 API

所谓“PVE 虚拟机”,就是一台由 QEMU 进程运行的 KVM 虚拟机:每台有一个从 100 开始的编号(VMID),配置是一个文本文件,磁盘放在你添加的某个存储上。在宿主上它就是一个普通进程,命令行里带着 -id 101 这样的编号,所以出现性能问题时,top、iostat 这些 Linux 工具照样能用。

pveversion -v | head -n 5                 # PVE 及关键组件版本
qm list                                   # 所有 KVM 虚拟机及运行状态
pct list                                  # 所有 LXC 容器
cat /etc/pve/qemu-server/101.conf         # 101 号虚拟机的完整配置
ps -ef | grep '[k]vm -id 101'             # 这台虚拟机对应的 QEMU 进程
systemctl status pveproxy pvedaemon pve-cluster --no-pager

核心功能:集群、高可用、存储与备份

集群:不需要单独的管理服务器

PVE 集群没有主节点,任意一台节点的 Web 界面都能管理整个集群,配置通过 corosync 实时同步到每个节点的 /etc/pve。这一点和 vSphere 不同:ESXi 要集中管理必须另外部署 vCenter,PVE 把管理平面分布在每个节点上。

pvecm create dc1-cluster          # 在第一台上创建集群
pvecm add 10.10.40.11             # 在要加入的节点上执行,IP 填集群里已有的节点
pvecm status                      # 看 Quorate 是否为 Yes,以及投票数

三条规矩:加入集群的节点上不能已有虚拟机;corosync 对延迟敏感,节点放在同一机房的低延迟网络里,最好给它单独一个网口或 VLAN,不要和存储、迁移流量挤在一起;集群靠多数票工作,失去多数的一侧配置变为只读。

高可用:节点宕机后在别处重启虚拟机

用 ha-manager add vm:101 --state started 把虚拟机交给 HA 管理后,所在节点宕机时,它会在其他节点上自动启动。前提有三个:至少 3 个节点(或 2 个加 QDevice);虚拟机磁盘在共享存储上,或者用 ZFS 存储复制定期同步到其他节点;节点有看门狗,失去多数票的节点会自我隔离(重启),确保同一台虚拟机不会在两个节点上同时运行。HA 是“重启”不是“不中断”,切换期间业务会停几分钟。

存储:从本地 ZFS 到分布式 Ceph

存储类型 节点间共享 快照 适合
目录(local) 否 磁盘为 qcow2 格式时支持 ISO、模板、备份文件
LVM-thin 否 支持 有硬件 RAID 卡的单机
ZFS 否,可用存储复制同步 支持 单机,或两三台用复制做准高可用
Ceph RBD 是 支持 3 台以上的超融合集群
NFS 是 磁盘为 qcow2 格式时支持 已有 NAS
iSCSI、FC 上的 LVM 是 不支持或受限 已有 SAN

两种在机房里常用的组合:

  • ZFS 加存储复制:每台节点用本地 NVMe 做 ZFS,关键虚拟机每 15 分钟(默认值,最短 1 分钟)异步复制到另一台。节点故障时 HA 用最近一次复制的数据启动,最多丢失一个复制间隔的数据,换来的是不需要共享存储。
  • Ceph 超融合:在 Web 界面里就能部署,每台节点的硬盘作为 OSD,存储池默认 3 副本。假设 3 台节点每台 4 块 3.84 TB NVMe,裸容量约 46 TB,3 副本后可用约 15 TB,再留 20% 余量,规划时按 12 TB 用。Ceph 流量走单独的网络,万兆起步,25 GbE 更从容。

备份:vzdump 与 Proxmox Backup Server

内置的 vzdump 支持三种模式:snapshot(不停机,默认推荐)、suspend(短暂挂起)、stop(关机备份,一致性最好)。在“数据中心 → 备份”里建定时任务,保留策略按 keep-daily、keep-weekly 设置。数据量大了以后,可以接入同公司的 Proxmox Backup Server(PBS):增量备份、跨虚拟机去重、客户端加密、定期校验,Web 端口 8007。

vzdump 101 102 --storage pbs01 --mode snapshot --prune-backups keep-daily=7,keep-weekly=4
qmrestore /var/lib/vz/dump/vzdump-qemu-101-2026_12_20-02_00_01.vma.zst 151   # 本地备份文件恢复为 151 号

Proxmox VE 是否免费:免费使用与企业订阅的区别

免费。AGPLv3 不限制用途,商业环境、生产环境都可以合法使用,所有功能都在,不存在“免费版阉割功能”的问题。订阅按 CPU 插槽、按年计费,分 Community、Basic、Standard、Premium 四档,区别如下:

项目 不订阅 订阅
功能 全部 全部,订阅不解锁额外功能
软件源 pve-no-subscription:更新来得早,测试相对少,官方定位为测试和非生产用途 pve-enterprise:经过更多测试和验证的更新
技术支持 社区论坛 Community 档只含企业源;Basic 起带工单支持,档位越高工单越多、响应越快
登录界面 每次登录弹出“无有效订阅”提示,不影响使用 无提示

装好后系统默认启用的是企业源,没有订阅时 apt update 会报 401 错误,需要改用免费源:在 Web 界面的“节点 → 更新 → 软件仓库”里禁用 enterprise,添加 No-Subscription。PVE 9 的软件源采用 deb822 格式,等价的做法是在 /etc/apt/sources.list.d/pve-enterprise.sources 里加一行 Enabled: no,再新建免费源文件:

# /etc/apt/sources.list.d/proxmox.sources
Types: deb
URIs: http://download.proxmox.com/debian/pve
Suites: trixie
Components: pve-no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg

另外还有一个测试源(PVE 9 里叫 pve-test,PVE 8 叫 pvetest),主要供开发者测试新功能,生产环境不要启用。用免费源跑生产的团队不少,关键是自己承担验证:先在一台非关键节点上升级,观察几天再升其他节点。

PVE 和 ESXi 的定位差异

对比项 Proxmox VE VMware ESXi / vSphere
底层 Debian 加 KVM、LXC,开源 自研 VMkernel,闭源
授权 免费;可选订阅按 CPU 插槽计 生产需订阅,按 CPU 核心计,每颗至少 16 核
集中管理 内置,任一节点即可管理集群 需要单独部署 vCenter
高可用、在线迁移 内置 依赖 vCenter 和对应套件
容器 原生 LXC 不直接提供,容器要跑在虚拟机里
硬件兼容 跟随 Linux 内核,杂牌和老硬件也多能用 只认兼容列表里的硬件
备份 内置 vzdump,另有 PBS 依赖第三方备份软件
生态 第三方软件的支持在增加,但仍少于 vSphere 备份、监控、灾备等商业生态成熟
常见场景 中小机房、独服开小鸡、实验室、小型私有云 企业数据中心、已有 vSphere 体系的环境

简单说:已经围绕 vCenter 建好流程、依赖 vSAN 或 NSX 的环境留在 vSphere;新建的小型虚拟化平台、对外出租的母机、不在 VMware 兼容列表里的硬件,PVE 的门槛和成本都更低。

独服和机房母机用 PVE 开小鸡

先算一台母机能开多少台

母机能开多少台,由内存、磁盘、CPU 三者中最紧的那个决定。假设一台母机为 2 × 16 核 32 线程(共 64 线程)、256 GB 内存、4 块 3.84 TB NVMe 组 ZFS RAID10,套餐为 4 核、8 GB、100 GB:

资源 可分配 按套餐能开
内存(不超分) 256 − 宿主预留 8 − ZFS 读缓存 16 = 232 GB 232 ÷ 8 = 29 台
磁盘 RAID10 约 7.68 TB,留 20% 余量约 6.1 TB 6100 ÷ 100 = 61 台
CPU(按 3 倍超分) 64 × 3 = 192 个 vCPU 192 ÷ 4 = 48 台

瓶颈是内存,这台母机按 29 台规划。ZFS 读缓存(ARC)的 16 GB 来自 PVE 8.1 起安装程序写入 /etc/modprobe.d/zfs.conf 的默认上限:内存的 10%,最多 16 GiB;8.1 之前装的系统沿用 ZFS 自身的默认上限(内存的 50% 或更多),开小鸡前要自己调小。CPU 可以超分,因为小鸡很少同时跑满;内存超分在出租业务里风险大,宿主内存不足时会有虚拟机被系统强制结束。

IP 也要提前算:29 台小鸡要 29 个公网 IP。一个 /27 有 32 个地址,去掉网络地址、广播地址和网关剩 29 个,宿主再占 1 个只剩 28 个,差一个。要么把宿主的管理地址放到内网或管理网段,要么申请 /26。

KVM 还是 LXC

对比项 KVM 虚拟机 LXC 容器
隔离 独立内核,硬件虚拟化隔离 与宿主共享内核,靠命名空间和 cgroup 隔离
能装的系统 Linux、Windows、BSD 只有 Linux
资源开销 每台要单独预留内存 开销小,同样的母机能开更多
客户能做的事 换内核、装 Docker、加载内核模块 不能换内核,跑 Docker 要开启嵌套等选项且有限制
适合 对外出租的常规 VPS 自用的内部服务;对外出租前要评估隔离风险

对外出租时,客户会做什么无法预料,KVM 的隔离更稳妥;LXC 更适合自己的 DNS、监控、反向代理这类内部服务。

用模板和 cloud-init 批量开机

逐台装系统太慢,标准做法是用发行版提供的云镜像做一个模板,开机时由 cloud-init 注入 IP、密码和 SSH 公钥:

# 一次性:用 Debian 13 云镜像做成 9000 号模板(镜像文件名以实际下载为准)
qm create 9000 --name debian13-tpl --memory 2048 --cores 2 --net0 virtio,bridge=vmbr0 --scsihw virtio-scsi-single
qm set 9000 --scsi0 local-zfs:0,import-from=/root/debian-13-genericcloud-amd64.qcow2
qm set 9000 --ide2 local-zfs:cloudinit --boot order=scsi0 --serial0 socket --vga serial0
qm template 9000

# 每开一台:完整克隆,改规格,注入地址和公钥,扩容磁盘,网卡限速 100 Mbps
qm clone 9000 201 --name vps201 --full
qm set 201 --cores 4 --memory 8192 --ipconfig0 ip=203.0.113.21/26,gw=203.0.113.1 --sshkeys /root/keys/vps201.pub
qm resize 201 scsi0 100G
qm set 201 --net0 virtio,bridge=vmbr0,rate=12.5,firewall=1
qm start 201

网卡的 rate 单位是 MB/s,12.5 MB/s 约等于 100 Mbps;磁盘也可以用 iops_rd、iops_wr、mbps_rd、mbps_wr 限制读写,防止一台小鸡压满整台母机的硬盘。

防止小鸡盗用别人的 IP

桥接模式下,客户在小鸡里把 IP 改成别人的,会造成地址冲突。PVE 防火墙的虚拟机选项里有两个开关:MAC filter(默认开启,禁止伪造 MAC)和 IP filter(默认关闭)。开启 IP filter 并在名为 ipfilter-net0 的 IPSet 里写入分配给它的地址,这台小鸡就只能用这些 IP 发包。前提是数据中心级和虚拟机网卡上的防火墙都已启用。启用数据中心防火墙前,先建一个名为 management 的 IPSet 写入运维网段(它会自动放行这些地址访问 8006、22 等管理端口),并保持一个 SSH 会话不断开,以免把自己挡在外面:

# /etc/pve/firewall/201.fw
[OPTIONS]
enable: 1
ipfilter: 1

[IPSET ipfilter-net0]
203.0.113.21

机房防火墙要放行的端口

端口 协议 用途 放行范围
8006 TCP Web 管理界面与 API 只对运维网段开放
22 TCP SSH,集群内部操作也会用到 运维网段和集群节点之间
5900–5999 TCP 网页 VNC 控制台 同 8006
3128 TCP SPICE 代理 用 SPICE 客户端时
5405–5412 UDP corosync 集群通信 只在集群节点之间
60000–60050 TCP 在线迁移的内存和本地磁盘数据 只在集群节点之间
3300、6789、6800–7300 TCP Ceph 监视器与 OSD 只在 Ceph 网络内
8007 TCP Proxmox Backup Server PVE 节点到备份服务器

8006 对整台母机拥有完全控制权,不能直接暴露在公网。

在管理系统里怎么落地

母机开小鸡,最容易出问题的是地址台账和交换机侧的绑定。在 IP 地址管理 里把整段地址(例如上面的 /26)分配给这台母机并指定主 IP,这段地址就不会在开通其他服务器时被自动分出去,哪段地址在哪台母机上一查便知。交换机侧要留意:ARP 绑定会把 IP 和网卡的 MAC 锁在一起,而桥接模式下每台小鸡用自己的 MAC 收发。如果这段地址按母机网卡的 MAC 做了绑定,或者端口只允许母机的 MAC 通过,小鸡的流量就可能被交换机丢弃,表现为 IP 配好了却不通。处理办法有两种:按小鸡的实际 MAC 调整这些地址的绑定,或者改用路由方式,把整段地址路由到母机 IP 上,由母机转发。母机本身的系统,可以在 DCIM 的重装镜像中直接选择 Proxmox VE(见 DCIM 机房管理系统),由机房里的从节点就近完成安装。

常见问题

PVE 的管理界面怎么登录?

浏览器打开 https://服务器IP:8006,用 root 账号、认证域选 Linux PAM 登录。默认证书是安装时生成的自签名证书,浏览器会提示不安全,可以在节点的证书设置里上传正式证书,或用内置的 ACME 功能申请 Let's Encrypt 证书。

两台 PVE 能组集群吗?

能组,但两台各 1 票,任何一台宕机,剩下的一台都拿不到多数票,不能启动或修改虚拟机。解决办法是在集群外找一台机器(小虚拟机也可以)安装 corosync-qnetd 作为 QDevice,集群节点安装 corosync-qdevice 后执行 pvecm qdevice setup 加上它的 IP,凑出第 3 票。

不在同一个集群的两台 PVE 之间怎么迁移虚拟机?

通用做法是备份恢复:源主机用 vzdump 备份,把备份文件拷到目标主机后用 qmrestore 恢复;两边接入同一台 Proxmox Backup Server 时,在目标主机直接从备份服务器恢复。命令行的 qm remote-migrate 也支持跨集群迁移,官方标注为实验性功能,以当前文档为准。

想看看在你的机房里怎么用?

从一次产品演示开始,梳理你的业务链路。

查看价格
服务热线 400-112-2951

让我们聊聊你的 IDC 业务

扫码添加企业微信,预约产品演示或申请试用。

Toplink 企业微信二维码

长按保存或使用企业微信 / 微信扫描

也可致电
400-112-2951
Telegram
@TopLink88