====== PVE ======
Proxmox Virtual Environment(PVE)是一个基于 Debian 的开源虚拟化平台,同时支持 **QEMU/KVM 虚拟机**和 **LXC 容器**。它通过 Web 管理界面统一管理计算、存储和网络资源,广泛用于家庭实验室和小型企业环境(([[https://pve.proxmox.com/wiki/Main_Page|Proxmox VE 官方 Wiki]]))(([[https://www.proxmox.com/en/about|Proxmox 项目介绍]]))
===== 核心架构 =====
PVE 由以下几个核心组件构成:
^ 组件 ^ 说明 ^
| **QEMU/KVM** | 全虚拟化,运行各种操作系统(Linux、Windows、BSD 等),每个 VM 有独立内核 |
| **LXC** | 轻量级容器,共享宿主机内核,资源开销小,适合运行 Linux |
| **Web UI** | 基于 HTTPS 的管理界面(默认端口 8006),支持集群管理 |
| **pveproxy** | HTTP 代理层,提供 WebSocket 支持(用于 VNC/SPICE 控制台) |
| **Corosync + pmxcfs** | 集群通信与配置文件系统(基于文件的多节点配置同步)(([[https://pve.proxmox.com/wiki/Proxmox_Cluster_File_System_(pmxcfs)|pmxcfs 集群文件系统]])) |
===== 配置存储 =====
PVE 的一大特色是**基于文件的配置系统**。所有 VM/CT 的配置保存在 ''/etc/pve/qemu-server/'' 和 ''/etc/pve/lxc/'' 下,通过 pmxcfs 集群文件系统同步(([[https://pve.proxmox.com/pve-docs/chapter-qm.html|VM 配置文件文档]]))
一个典型的 VM 配置文件:
root@xiaomi:~# cat /etc/pve/qemu-server/101.conf
name: tinywin-downloader
memory: 8192
cores: 2
cpu: host
ostype: win11
scsi0: HDD_Storage:101/vm-101-disk-1.qcow2,size=64G
net0: e1000=BC:24:11:B4:51:7E,bridge=vmbr0
这意味着备份、迁移、克隆都可以直接操作配置文件,无需依赖数据库。
===== 存储池 =====
PVE 支持多种后端存储类型(([[https://pve.proxmox.com/wiki/Storage|PVE 存储文档]]))
^ 类型 ^ 说明 ^ 典型用途 ^
| **目录(Directory)** | 宿主机文件系统上的目录 | 模板、ISO 镜像 |
| **LVM** | 逻辑卷管理器 | VM 磁盘 |
| **LVM-thin** | 精简配置的 LVM | 支持快照 |
| **ZFS** | ZFS 文件系统 | 高可靠性、快照、压缩 |
| **NFS** | 网络文件系统 | 共享存储、多节点 |
| **Ceph** | 分布式存储 | 企业级集群 |
在单节点家庭实验室中,本地存储就够用;生产环境建议用 ZFS 或 Ceph 实现冗余(([[https://pve.proxmox.com/wiki/ZFS_on_Linux|ZFS on Linux 配置指南]]))(([[https://pve.proxmox.com/wiki/Ceph_Server|Ceph 分布式存储集成]]))
===== 网络模型 =====
PVE 使用 **Linux Bridge** 实现虚拟网络(([[https://pve.proxmox.com/wiki/Network_Model|PVE 网络模型文档]]))
单网口典型配置:
物理网口 eth0 → Linux Bridge vmbr0 → VM 虚拟网卡
桥接模式下的 VM 与宿主机在同一广播域中,可以直接通过局域网 IP 访问。此外也支持 NAT、OVS(Open vSwitch)和 VLAN。
===== VM 生命周期 =====
PVE 提供完整的命令行管理工具(([[https://pve.proxmox.com/pve-docs/chapter-qm.html|qm 命令参考文档]]))
^ 操作 ^ 命令 ^
| 查看 VM 列表 | ''qm list'' |
| 启动 VM | ''qm start '' |
| 停止 VM | ''qm stop '' |
| 关机(ACPI) | ''qm shutdown '' |
| 克隆 | ''qm clone --name --full'' |
| 查看状态 | ''qm status '' |
| 重命名 | ''qm set --name '新名称''' |
| 查看日志 | ''cat /var/log/pve/tasks/index | tail'' |
===== 快照与备份 =====
**快照** 记录 VM 在某个时间点的磁盘状态,回滚速度快但占用额外磁盘空间(([[https://pve.proxmox.com/wiki/Backup_and_Restore|备份与恢复官方指南]]))支持 live 快照(VM 运行时)
快照命令:
qm snapshot
qm rollback
qm delsnapshot
**备份** 由 ''vzdump'' 工具完成,支持全量备份和定时任务:
vzdump --mode snapshot --compress zstd
可通过 Web UI 的 Backup 面板配置周期备份计划。
===== 容器 =====
LXC 容器比 VM 更轻量——共享宿主机内核,启动几乎瞬间完成(([[https://pve.proxmox.com/wiki/Linux_Container|LXC 容器文档]]))
pct list # 查看所有容器
pct create # 从模板创建
pct enter # 进入容器 shell
pct stop # 停止容器
===== PVE 与 Windows VM =====
PVE 上运行 Windows VM 有几点注意事项(([[https://pve.proxmox.com/wiki/Windows_VirtIO_Drivers|Windows virtio 驱动安装指南]]))(([[https://pve.proxmox.com/wiki/Qemu-guest-agent|QEMU Guest Agent 文档]]))
* **virtio 驱动**:安装 Windows 时需要加载 virtio ISO(磁盘控制器 + 网卡驱动),否则安装程序无法识别磁盘
* **QEMU Guest Agent**:安装后能让 PVE 宿主机获取 Windows 内部信息(IP、主机名)并执行关机命令
* **CPU 类型**:建议设为 ''host'',让 VM 使用宿主机 CPU 的全部指令集(包括 AVX、AVX2)
* **内存气球(ballooning)**:Windows 对内存气球支持不佳,建议关闭
===== 日常管理 =====
除了 Web UI,PVE 提供多套 CLI 工具:
^ 工具 ^ 用途 ^
| ''qm'' | QEMU/KVM 虚拟机管理 |
| ''pct'' | LXC 容器管理 |
| ''pvesm'' | 存储管理(查看池状态、磁盘分配) |
| ''pvecm'' | 集群管理(节点添加/移除) |
| ''pveversion'' | 查看 PVE 版本信息 |
| ''pvesh'' | REST API shell |
===== 适用场景 =====
* **家庭实验室**:跑软路由(OpenWrt)、NAS、开发环境
* **小企业**:整合多台物理服务器到一台宿主机,降低硬件成本
* **开发测试**:快速克隆/销毁测试环境
* **Windows 虚拟机**:在 Linux 宿主机上运行 Windows 应用
PVE 的优势在于开源免费(不像 VMware vSphere 需要付费许可)、社区活跃、文档完善,如果你已经在用 Proxmox,值得深入了解 CLI 工具以提升日常管理效率。