伺服器維運

PVE 系統是什麼:Proxmox VE 虛擬化平台功能與適用場景

PVE 系統就是 Proxmox VE,一個基於 Debian 的開源虛擬化平台:用 KVM 跑完整虛擬機器,用 LXC 跑輕量容器,叢集、高可用、ZFS 和 Ceph 儲存、備份都內建,瀏覽器開啟 8006 連接埠就能管理。軟體本身免費,付費訂閱買的是企業軟體源和技術支援。

作者 頂聯產品團隊發布於 8 分鐘閱讀

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