PVE服务器集群网络配置
本文记录了从环境规划、混杂模式开启,到命令行应急救砖及永久固化网络的完整流程,并附带了 PVE 故障时的底层数据抢救方法。
一、 网络架构拓扑规划
仿真多节点 PVE 集群时,强烈建议采用双网卡方案,将业务/管理流量与集群内部心跳(Corosync)流量隔离,避免因高延迟导致集群解体或脑裂。
- 虚拟网桥:
vmbr0- 对应 VMware 网络模式:VMnet8 (NAT)
- 规划子网段:
192.168.0.0/24(网关设为192.168.0.1) - 作用说明:PVE 管理后台访问、Nested VM 桥接上网、下载镜像与更新。
- 虚拟网桥:
vmbr1- 对应 VMware 网络模式:VMnet1 (仅主机 / Host-Only)
- 规划子网段:
192.168.1.0/24(无需配置网关) - 作用说明:PVE 集群内部通信(Corosync 心跳线)与存储同步。
二、环境准备与关键配置
VMware 宿主机设置
- 调整虚拟网络编辑器(Windows 下需管理员权限):
- 将 VMnet8 子网 IP 修改为
192.168.0.0,进入 NAT 设置 将网关修改为192.168.0.1。 - 将 VMnet1 子网 IP 修改为
192.168.1.0。
- 将 VMnet8 子网 IP 修改为
- 修改 PVE 虚拟机硬件设置:
- CPU 选项:必须勾选 “虚拟化 Intel VT-x/EPT 或 AMD-V/RVI”(启用嵌套虚拟化)。
- 网卡 1:自定义连接到 VMnet8 (NAT)。
- 网卡 2:添加新网卡,自定义连接到 VMnet1 (仅主机)。
- 调整虚拟网络编辑器(Windows 下需管理员权限):
开启“混杂模式”(Nested VM 上网的核心)
默认情况下,VMware 会丢弃不属于自身虚拟机 MAC 地址的报文。为了让 PVE 内部的虚拟机正常上网,必须开启混杂模式:
- Windows Workstation 宿主机:彻底关闭软件后,右键以管理员身份运行 VMware Workstation 启动虚拟机。
- Linux Workstation 宿主机:在宿主机终端执行:
sudo chmod a+rw /dev/vmnet* - ESXi 企业级平台:在 PVE 所属端口组的“安全”策略中,将 混杂模式、MAC 地址更改、伪传输 全部调整为 接受 (Accept)。
三、 PVE 控制台网络临时救砖(命令行)
导入镜像后,由于底层硬件改变,原配置中的网卡名(如 nic0)可能失效。此时系统网络会处于瘫痪状态,需要进入 PVE 黑色控制台通过命令行手动重建网络。
查明当前真实物理网卡名
在控制台中登录后(用户名为 root),输入以下命令:
ip link show或者ls /sys/class/net/假设:当前识别到的两块真实网卡名分别为
ens160(连接 NAT)和ens192(连接 Host-Only)。手动流式构建桥接网络
依次执行以下命令,清空状态并强行搭桥:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17ip addr flush dev ens160
ip addr flush dev vmbr0
ip route flush default
ip link set ens160 up
ip link set vmbr0 up
ip link set ens160 master vmbr0
ip link set ens192 up
ip link set vmbr1 up
ip link set ens192 master vmbr1
ip addr add 192.168.0.50/24 dev vmbr0
ip addr add 192.168.1.50/24 dev vmbr1
ip route replace default via 192.168.0.1 dev vmbr0
echo "nameserver 223.5.5.5" > /etc/resolv.conf测试连通性
ping -c 3 192.168.0.1(测试本地网关)ping -c 3 www.baidu.com(测试外网及 DNS 解析)
四、 固化网络配置(永久生效)
上述命令行配置在系统重启后会丢失,必须同步修改 PVE 的系统配置文件。
改写
/etc/network/interfaces执行命令
nano /etc/network/interfaces,严格按照以下架构调整(注意替换对应的ensX网卡名):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
27auto lo
iface lo inet loopback
# 物理网卡 1 - 业务
auto ens160
iface ens160 inet manual
# 物理网卡 2 - 集群心跳
auto ens192
iface ens192 inet manual
# 业务与管理网桥
auto vmbr0
iface vmbr0 inet static
address 192.168.0.50/24
gateway 192.168.0.1
bridge-ports ens160
bridge-stp off
bridge-fd 0
# 集群内部网桥
auto vmbr1
iface vmbr1 inet static
address 192.168.1.50/24
bridge-ports ens192
bridge-stp off
bridge-fd 0改写
/etc/resolv.conf执行命令
nano /etc/resolv.conf,确保存储以下持久化 DNS 记录:1
2
3
4search lan
nameserver 223.5.5.5
nameserver 119.29.29.29
nameserver 8.8.8.8生效验证
执行
reboot重启 PVE。重启后即可在宿主机浏览器中通过https://192.168.0.50:8006正常进入管理后台。
五、 进阶:网络瘫痪下的本地数据抢救指南
若网络彻底无法配通,但急需提取 PVE 内部的 ISO、备份文件或某个虚拟机内部的数据,可通过命令行直接挂载底层 LVM 逻辑卷。
定位存储设备
vgs(查看卷组,PVE 默认卷组名为 pve)lvs(查看逻辑卷,主要包含 root 系统卷和 data 精简池)抢救 PVE 系统卷数据(ISO / 备份 / 配置文件)
vgchange -ay pve(激活卷组)mkdir -p /mnt/pve_rootmount /dev/pve/root /mnt/pve_root(挂载系统根路径到临时目录)核心提取路径:
- 虚拟机配置文件:
/mnt/pve_root/etc/pve/nodes/ - 备份文件存储(.vma.zst):
/mnt/pve_root/var/lib/vz/dump/ - ISO 镜像文件:
/mnt/pve_root/var/lib/vz/template/iso/
- 虚拟机配置文件:
抢救 Nested VM 虚拟机内部文件
当 PVE 崩溃,需要提取某个具体 VM(如 VM ID 为 100)内部的特定文件时:
apt-get install kpartx -y(安装分区映射工具)kpartx -av /dev/mapper/pve-vm--100--disk--0(解析精简池中的虚拟磁盘分区)mkdir -p /mnt/vm_datamount /dev/mapper/pve-vm--100--disk--0p1 /mnt/vm_data(挂载映射出的首个虚拟分区)此时进入
/mnt/vm_data即可对虚拟机内部文件进行scp拷贝或外部移交。数据清理卸载(防止文件系统死锁)
数据提取完毕后,必须按照逆序解除挂载:
umount /mnt/vm_datakpartx -dv /dev/mapper/pve-vm--100--disk--0umount /mnt/pve_root