PVE 简介
PVE 是 Proxmox Virtual Environment(Proxmox 虚拟化环境,也通常简称为 Proxmox VE)的简称,它是基于 QEMU/KVM 和 LXC 的开源服务器虚拟化管理解决方案。该项目由 Proxmox Server Solutions GmbH 开发和维护,其代码基于 GNU Affero GPLv3 授权。PVE 提供了易用的 WebUI 和 CLI 来管理虚拟机、容器、高可用性集群、存储和网络,更多介绍请看官网。
PVE 安装
PVE 本身是基于 Debian 的,可以直接在 Debian 上安装 PVE 内核,也可以使用官方提供的安装镜像,详细步骤可以参考官方 Wiki。
在这里主要提下磁盘配置,注意合理规划磁盘空间,尤其是小容量硬盘。
硬件直通
PCI 直通允许在 VM 内部使用物理 PCI 设备(图形卡、网卡等,仅限 KVM 虚拟化)。如果是PCI直通设备,该设备将不再可用于主机。确认 CPU 支持虚拟化,然后执行如下操作:
编辑 grub
vim /etc/default/grub
找到如下内容:
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
替换为
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"
或者
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on"
更新 grub
update-grub
新增模块
vim /etc/modules
添加如下内容
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
重启。
网卡直通
网卡直通可以通过 WebUI 操作,在此不再赘述。
硬盘直通稍麻烦点
在添加物理磁盘前,需要先确认其标识(ID)信息,然后根据此信息来确认其设备文件的路径和名称。
安装 lshw
apt install lshw
获取磁盘ID
ls -l /dev/disk/by-id
直通硬盘给 VM:
qm set 101 --sata1 /dev/disk/by-id/ata-ST2000DM001-1ER164_Z4Z1EYYK
其中101
是需要直通的VM ID,sata1
是硬盘顺序(磁盘编号从sata0
开始),/dev/disk/by-id/ata-ST2000DM001-1ER164_Z4Z1EYYK
是直通的硬盘ID。
导入 OpenWrt 固件
上传固件 将OpenWrt固件上传到PVE主机指定目录下
scp ./openwrt.img 192.168.2.100:/root/
转换固件文件的磁盘格式为qcow2
qemu-img convert -f raw -O qcow2 openwrt.img vm-101-disk-0.qcow2
其中,固件文件为openwrt.img
,输入的磁盘映像文件为vm-101-disk-0.qcow2
,输出文件名是为了清晰表明它是为ID为101
的 VM 所使用的格式为qcow2
的第一个磁盘文件。
在转换完成后,可以使用命令来检查结果是否正常
qemu-img check vm-101-disk-0.qcow2
正常的会出现No errors
的提示结果
No errors were found on the image.
703/4360 = 16.12% allocated, 0.00% fragmented, 0.00% compressed clusters
Image end offset: 46399488
此外,还可以用qemu-img info
命令获取更详细的信息
qemu-img info vm-101-disk-0.qcow2
正常会输出详细的信息
image: vm-101-disk-0.qcow2
file format: qcow2
virtual size: 273M (285736960 bytes)
disk size: 44M
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
refcount bits: 16
corrupt: false
导入磁盘系统到 VM 中,此步骤通过命令qm importdisk
实现
qm importdisk 101 vm-101-disk-0.qcow2 local-lvm
其中,101
为VM ID,磁盘文件为vm-101-disk-0.qcow2
,存储为local-lvm
。
命令执行后会输出下面的信息,显示磁盘卷已成功创建到 VM 中
Using default stripesize 64.00 KiB.
Rounding up size to full physical extent 276.00 MiB
For thin pool auto extension activation/thin_pool_autoextend_threshold should be below 100.
Logical volume "vm-201-disk-1" created.
这个过程中会创建一个磁盘设备,并将其加入到 VM 的硬件中成为“未使用的磁盘”,这时在/dev/pve
里面可以看到新建立的磁盘设备与 VM 之间的对应关系。登录到WebUI中将导入的磁盘添加到 VM 中就完成了。
个人网络设置
Port1
: 用于设置PVE,未直通Port2
Port3
: LAN口,直通Port4
: WAN口,直通
为虚拟机配置SPICE
web界面中把虚拟机的 Display
改为 SPICE
。
修改 /etc/pve/qemu-server/
下虚拟机对应的配置文件
echo "args: -spice 'port=61101,addr=0.0.0.0,seamless-migration=on,disable-ticketing'" >> /etc/pve/qemu-server/101.conf
我的配置文件如下
port=61101
: 连接端口,PVE设置从61001开始addr=0.0.0.0
: 容许网段seamless-migration=on
: QMP支持disable-ticketing
: 无需密码验证,可使用password=xxxx
进行密码验证vga: qxl,memory=32
: web界面设置的Display
也可以从这里写入
接下来就可以使用virt-viewer
进行连接,注意此处连接IP使用宿主机IP,具体使用方法见其官网。