一、引言
为什么需要虚拟化?
- 减少资源浪费:一套应用往往需要开发、测试、生产等多套独立环境,为避免相互污染,必须做环境隔离。传统物理机方案需要为每套环境单独采购服务器,硬件资源长期闲置、利用率极低。虚拟化技术将一台物理机切分为多个独立虚拟机,既实现了环境的完全隔离,又能共享硬件资源、大幅提升利用率,同时还能降低运维成本、支持动态扩容与在线迁移,通过镜像一键分发标准化环境,全方位解决传统物理架构的核心痛点。
- 减少运维成本:传统物理机架构下,业务部署需要经历采购硬件、装机、布线、配置系统、调试环境等一系列流程,不仅周期长达数天,还需要投入大量人力物力,机房的电力、散热、维保等综合成本也居高不下。而虚拟化技术支持镜像一键克隆、秒级创建虚拟机,能快速完成业务环境的部署,大幅缩短业务上线周期;同时,集约化的部署模式减少了物理服务器的数量,直接降低了硬件采购、机房租赁、电力消耗等长期运维成本,让 IT 运维更高效、更经济
- 资源隔离:虚拟化实现了真正的硬件级资源隔离,每个虚拟机都拥有独立的操作系统、进程空间、网络环境和资源配额,不同业务、不同环境在同一台物理机上运行时,会被严格划分资源边界,不会互相抢占算力,也不会因一方故障、病毒入侵影响其他业务的稳定运行。彻底解决了传统裸机混跑模式下,业务相互干扰、故障扩散、安全风险高的问题,为多业务、多环境的混合部署提供了安全可靠的基础
- 动态扩容与迁移:传统物理机的扩容需要拆机加装硬件,业务迁移则需要重装系统、迁移数据,不仅操作繁琐,还会导致长时间的业务停机,严重影响业务连续性。而虚拟化技术支持在线动态扩容,无需停机就能为虚拟机增加 CPU、内存、存储等资源,灵活适配业务的弹性增长;同时支持虚拟机在线迁移(热迁移),可以在不中断业务的前提下,将虚拟机从一台物理机无缝迁移到另一台,方便硬件维护、负载均衡,彻底解决了传统物理架构扩容难、迁移难、停机时间长的痛点
- 一键分发环境:在传统开发模式中,开发、测试、生产环境的配置差异,是导致 “开发环境正常、线上出 bug” 的核心原因之一,排查和修复这类问题会消耗大量研发时间。虚拟化技术可以制作统一的系统镜像模板,包含标准化的操作系统、依赖环境、配置参数,开发、测试、生产环境都可以通过模板一键分发,快速复制完全一致的运行环境,彻底消除环境差异带来的问题,大幅提升开发测试效率和业务交付质量
常见虚拟化方案对比
在虚拟化领域,常见方案主要分为 Type-1(裸金属架构) 和 Type-2(宿主机架构)。以下是几种主流虚拟化方案的对比:
| 方案 | 类型 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|---|
| Proxmox VE(PVE) | Type-1 | 中小企业、免费解决方案 | 开源免费、基于Debian、支持LXC容器与KVM虚拟机、Web界面友好 | 学习曲线稍陡,对硬件兼容性有一定要求 |
| VMware ESXi | Type-1 | 行业龙头、企业级生产环境 | 行业标准、性能极高、稳定性极强、生态完善 | 免费版限制多,硬件兼容性(HCL)极其挑剔 |
| Hyper-V | Type-1 | Windows生态环境 | 与Windows Server集成度高、性能优异 | 依赖Windows环境,管理界面相对单一 |
| Docker / Podman | 容器化 | 微服务、应用部署 | 轻量级、启动极快、资源占用极低 | 隔离性弱于虚拟机,不适合运行完整操作系统 |
| Virtual Box / VMware Workstation | Type-2 | Windows系统下的开发测试 | 安装简单、支持多种桌面系统 | 性能损耗大,依赖宿主操作系统,不适合生产环境 |
为什么选择 Proxmox VE(PVE)?
至于为什么选,我想大家的想法都是不谋而合吧,毕竟谁不愿意免费白嫖呢,还是开源的😄。 PVE的架构相当灵活,它支持LXC 容器用来跑轻量级业务,也可以使用KVM开辟一个全新隔离的环境 。VMware ESXi固然是行业标杆,但是免费版使用起来限制 诸多,而PVE则填补了VMware免费版的许多不足。
二、安装 Proxmox
PVE下载地址: https://www.proxmox.com/en/downloads/proxmox-virtual-environment/iso

ProxmoxDownload
我这里选择的版本是VE 9.1
制作启动盘
制作启动盘请选择一个空的U盘或者没有任何重要数据的U盘,启动盘烧录时会把U盘数据格式化,⚠️注意备份重要数据‼️ 下载烧录工具: https://etcher.balena.io/#download-etcher (你也可以用其他工具,比如 Ventoy、大白菜,只是我个人觉得balena Etcher相比其他同类工具要简洁好用)
下载完成后打开应该如图所示:

balena Etcher
选择下载好的PVE镜像文件 -> 选择目标磁盘 -> 开始烧录~
就是这么简单,等待烧录完成后启动盘就制作好了。
选择U盘启动
把制作好的启动盘插入 需要部署PVE系统的服务器,然后开机按F12(具体主板进入BIOS的方式可能不同,建议操作前请确认主板型号以及进入BIOS的方式)。
我的已经是安装完成了,启动盘设置为第一顺位后面的引导安装都比较简单,安装提示输入对应主机 / IP信息即可

- 开启虚拟化(已开启则忽略),没有开启则无法使用 VM,只能创建 LXC 容器。LXC 是系统级容器,与 Proxmox VE 共享宿主机内核。
调整启动顺序

启动设置
- 保存并退出,等待Promox VE的引导界面
- 安装完成

三、首次登录与初始化
安装完成后,在浏览器输入:https://<你的PVE主机IP>:8006
默认用户名:root
密码:你在安装PVE时设置的密码

安装完成后,先通过 https://PVE-IP:8006 登录 Web 控制台。建议第一天就把下面几件事做完,后续会省很多排障时间。
1)软件源与系统更新
很多人安装完第一步就创建虚拟机,结果后面出现下载慢、更新失败、证书报错。正确顺序是先把源和系统状态整理好。
关闭企业订阅源(无订阅环境)
如果你不是企业订阅版,需要先关闭 pve-enterprise,否则更新时会报 401。
配置可用的软件源
你可以按自己网络情况选择官方源或国内镜像源。这里给一组通用示例(以当前发行版名称为准):
再添加 PVE 无订阅源:
最后执行更新:
2)去除“无订阅”弹窗(可选)
这是纯界面体验优化,不影响功能。若你不介意弹窗,可以跳过。
3)基础安全加固![[Pasted image 20260401140516.png]]
保留 root 应急,改为密钥 + 普通管理员日常登录
不建议“直接禁用 root 然后不留后路”。更稳妥的做法:
- 新建管理员用户(加入
sudo) - 为该用户配置 SSH Key
- 验证可登录后,再限制 root 的远程密码登录
编辑 /etc/ssh/sshd_config(建议至少包含以下项):
应用配置:
4)时间同步与主机名检查
虚拟化平台对时间漂移比较敏感,证书、集群、日志都会受影响。
四、网络初始化(先通再隔离)
建议按“先桥接可用,再做 VLAN 隔离”的顺序推进,避免一上来就把管理网络配乱。
先做一个最小网络规划(按你的实际网段替换):
| 角色 | 示例网段 | 用途 | 可否出公网 |
|---|---|---|---|
| 管理网(PVE) | 192.168.10.0/24 | 管理节点、Web 控制台、SSH | 建议受限放行 |
| 业务网(VM/LXC) | 192.168.20.0/24 | 业务服务对内互通 | 视业务决定 |
| 存储网(可选) | 192.168.30.0/24 | NFS/Ceph/备份流量 | 通常不出公网 |
1)桥接网络(vmbr0)
最常见架构是:
eno1:物理网卡vmbr0:管理网桥(PVE 主机 IP 在 vmbr0 上)- 虚拟机网卡挂到
vmbr0
/etc/network/interfaces 示例(带注释,复制后按你的环境替换):
应用网络配置(远程操作请先确认带外管理可用):
2)VLAN 隔离(生产推荐)
如果交换机端口已配置 Trunk,可在 vmbr0 开启 VLAN 感知:
之后在虚拟机网卡里直接指定 VLAN Tag(如 10/20/30)即可实现业务隔离。
常见错配排查:
- VM 配了 VLAN Tag,但交换机端口不是 Trunk 或未放行该 VLAN
- PVE 主机管理 IP 误配到了业务 VLAN,导致 Web 控制台失联
- 网卡名写错(
eno1/enpXsY),导致网桥拉不起来 - 远程改网没有带外管理(IPMI/iDRAC/iLO),改错后无法回连
五、资源整合与交付
到这里再开始“造资源”,顺序建议:模板 → LXC/VM → 存储 → 硬件直通

1)模板化(先做模板再批量部署)
先准备一个干净系统,装好基础组件后做模板,可以把后续交付速度提升一个数量级。
典型流程:
- 创建基础 VM(推荐 cloud-init 镜像)
- 做系统更新、时区、常用工具、监控 Agent
- 清理机器标识并关机
- 转换为模板
- 从模板克隆业务实例
2)LXC 容器(轻量业务优先)
适合场景:
- 内网工具、跳板、监控、日志采集
- 对内核隔离要求不高,但追求密度和启动速度
建议:
- 开启
nesting仅在确有需求时使用 - 给每个容器设置 CPU/内存上限,避免“邻居噪声”
- 存储优先走本地 SSD 或低延迟共享存储
3)KVM 虚拟机(强隔离业务)
适合场景:
- 数据库、中间件、Windows、需要独立内核的服务
- 对安全边界和兼容性要求高的生产业务
建议:
- CPU 类型优先
host(同构节点场景) - 磁盘控制器优先
VirtIO SCSI - 网卡优先
VirtIO (paravirtualized) - 关键业务启用定期快照与备份策略
4)存储挂载(按业务分层)
常见分层思路:
local-lvm:跑 VM/LXC 磁盘(高性能)local:ISO、备份、模板- NAS/NFS/Ceph:跨节点共享与集中备份
实操建议:
- 备份存储与生产存储分离
- 给备份任务设置保留策略(如 7/4/3:日/周/月)
- 定期做恢复演练,不只看“备份成功”
5)硬件直通(GPU/NIC/HBA)
当业务需要接近裸金属性能时,再考虑 PCI Passthrough。
典型使用场景:
- AI 推理/转码:GPU 直通
- 高性能网络:10G/25G 网卡直通
- 存储虚拟化:HBA 控制器整卡直通
第一步:BIOS 打开虚拟化与 IOMMU
- Intel 平台:开启
Intel VT-x+Intel VT-d - AMD 平台:开启
SVM+AMD-Vi/IOMMU - 关闭
CSM(若你的环境支持纯 UEFI,通常更省事)
第二步:开启内核 IOMMU
编辑 /etc/default/grub:
更新引导并重启:
第三步:验证 IOMMU 是否生效
看到 IOMMU enabled、DMAR 相关输出通常表示已启用。
查看 PCI 设备与分组:
第四步:把目标设备绑定到 VFIO
先查设备 ID(示例):
假设目标设备 ID 为 10de:1eb8,10de:10f8,写入:
重启后确认设备已由 vfio-pci 接管:
如果看到 Kernel driver in use: vfio-pci 即表示绑定成功。
第五步:在 PVE 中分配给虚拟机
在 VM 配置中添加 PCI 设备,常见建议:
- GPU 直通建议勾选
All Functions - 同时直通显卡和其音频函数(很多显卡是多功能设备)
- 必要时启用
Primary GPU(取决于系统与驱动) - 使用 UEFI(OVMF)与
q35机型兼容性通常更好
回退方案(非常重要)
若直通后宿主机异常或设备不可用,可按以下方式回退:
建议先在测试节点完成“启用 → 直通 → 回退”全流程演练,再上生产。