搭建PVE虚拟机
Proxmox VE是一个完整的开源企业虚拟化平台。通过内置的web界面,您可以轻松地管理vm和容器、软件定义的存储和网络、高可用性集群以及单个解决方案上的多个开箱即用工具。
EN: Proxmox VE is a complete open-source platform for enterprise virtualization. With the built-in web interface you can easily manage VMs and containers, software-defined storage and networking, high-availability clustering, and multiple out-of-the-box tools on a single solution.
- PVE官网:https://www.proxmox.com/
- PVE-github:https://github.com/proxmox
PVE与ESXI之间的选择
最近入手了一个mini PC
,准备在家做软路由,但是只装一个openwrt
实在是过于浪费了。在网上看了很多教程,发现可以安装Proxmox VE
或者ESXI
虚拟机,这样可玩性就大大增加了。在PVE
和ESXI
之间纠结很久,ESXI
相对来说配置比较简单,而且是大厂出品,必然不会有太大的问题,但毕竟是收费项目。而PVE
是一个开源项目,而且对设备的支持也更加广泛一些,那么它的可玩性就更大了。最终还是选择PVE
,拥抱开源项目。
搭建PVE虚拟机
前期准备
安装PVE
本次安装的是PVE最新版本7.4-13,如果你是其他的版本,也可以参考这篇文章,但可能会有不同的问题需要自己研究以下。
制作启动盘
首先我们需要制作启动盘,制作启动盘的大概流程就是运行ventoy
,用ventoy
将U盘转换为ventoy
的格式,然后将镜像放入U盘内即可。
我们将U盘插入机器,然后启动机器,选择UEFI
U盘启动。如果你没有这个选项,可以进入bios
进行设置,更多的细节可以搜索一下,非常简单。
安装7.4核显问题
如果你是12代及以上的CPU
,PVE
使用的5.15
内核并不支持12代以上的核显,所以会安装失败,会提示:Ctrl+D
退出安装/重启。
我们使用Ctrl+C
退出当前安装,进入命令行,如果没有反应就多按几次。出现命令行之后,我们需要修改一些文件。
# 使用nano进入文件进行编辑
nano /usr/share/X11/xorg.conf.d/10-quirks.conf
# 在文件最后加入以下代码,
#--------------------这是分隔符,忽略----------------------------
Section "Device"
Identifier "Card0"
Driver "fbdev"
EndSection
#--------------------这是分隔符,忽略----------------------------
#保存退出ctrl + x
#y + 回车
#重新进入PVE安装界面
xinit -- -dpi 96 >/dev/tty2 2>&1
之后就是图形化的安装了,有一些需要注意的地方,我们首先看一下网络拓朴图。
从上面的网络拓朴图中,可以看出我的PVE
虚拟机是要安装iKuai
作为主路由,OpenWRT
作为旁路由,然后将网口enp1s0
直通给iKuai
,而网口enp2s0
作为PVE
的管理端口,并用来连接AP
,
根据上面的结构,我们可以这样配置PVE
:
Management Interface
是PVE
的管理接口,可以是lan
口,也可以是wan
口,主要看你是否要进行直通,如果直通网口的话,管理口是不能去直通的,否则就无法访问PVE
了IP Address(CIDR)
是PVE
的静态IP地址,后面是掩码,例子:10.1.2.8/24
Gateway
是网关,如果你要装ikuai/openwrt
作为主路由的话,可以填入主路由的IPDNS
同网关一致即可
更新PVE内核及核显驱动
图形界面安装完成后,访问设置的IP
即可登录PVE
后台了,我们进入节点,点击shell
进入PVE
的命令行界面。因为之前内核不支持核显的问题,我们需要更新PVE
的内核。
更换apt
源
#将自带的源文件备份
mv /etc/apt/sources.list /etc/apt/sources.list_bak
#编辑sources.list
nano /etc/apt/sources.list
#加入以下代码
#--------------------这是分隔符,忽略----------------------------
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
#--------------------这是分隔符,忽略----------------------------
#保存退出ctrl + x
#y + 回车
更换PVE
企业源
#将自带的源文件备份
mv /etc/apt/sources.list.d/pve-enterprise.list /etc/apt/sources.list.d/pve-enterprise.list.bak
#加入以下代码
#--------------------这是分隔符,忽略----------------------------
deb https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian bullseye pve-no-subscription
#--------------------这是分隔符,忽略----------------------------
#保存退出ctrl + x
#y + 回车
更换PVE LXC
源
#将自带的源文件备份
cp /usr/share/perl5/PVE/APLInfo.pm /usr/share/perl5/PVE/APLInfo.pm_back
#写入新的源
sed -i 's|http://download.proxmox.com|https://mirrors.tuna.tsinghua.edu.cn/proxmox|g' /usr/share/perl5/PVE/APLInfo.pm
#重启服务后生效
systemctl restart pvedaemon.service
更新apt
apt update && apt dist-upgrade -y
升级6.2内核
#安装6.2内核、headers和firmware
apt install -y pve-kernel-6.2.6-1-pve pve-headers-6.2.6-1-pve pve-firmware
#重启
reboot
编译i915-sriov
#安装所需工具
apt install -y build-* git dkms
#拉库
git clone https://github.com/strongtz/i915-sriov-dkms.git
#进入拉下来的文件目录
cd i915-sriov-dkms
#修改文件中 PACKAGE_NAME和PACKAGE_VERSION
nano dkms.conf
#--------------------这是分隔符,忽略----------------------------
PACKAGE_NAME="i915-sriov-dkms"
PACKAGE_VERSION="6.2"
#--------------------这是分隔符,忽略----------------------------
#保存退出ctrl + x
#y + 回车
#复制此文件夹到相应目录,开始编译
cp -r /root/i915-sriov-dkms/ /usr/src/i915-sriov-dkms-6.2
#进入目录
cd /usr/src/i915-sriov-dkms-6.2
#执行编译命令
dkms install -m i915-sriov-dkms -v 6.2
#编译完成后检查状态
dkms status
设置直通及i915guc
#编辑文件,修改 GRUB_CMDLINE_LINUX_DEFAULT
nano /etc/default/grub
#--------------------这是分隔符,忽略----------------------------
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on i915.enable_guc=3 i915.max_vfs=7"
#--------------------这是分隔符,忽略----------------------------
#保存退出ctrl + x
#y + 回车
#修改直通,增加以下代码
nano /etc/modules
#--------------------这是分隔符,忽略----------------------------
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
#--------------------这是分隔符,忽略----------------------------
#保存退出ctrl + x
#y + 回车
#更新配置
update-grub
update-initramfs -u
#安装sysfsutils用于创建虚拟显卡
apt install -y sysfsutils
#将显卡设备写入sysfs.conf,并设置虚拟显卡数量,这里设置的是3
echo "devices/pci0000:00/0000:00:02.0/sriov_numvfs = 3" > /etc/sysfs.conf
#查看pci设备
lspci
#呈现以下内容,说明成功了,00:02.0代表显卡本身,剩下的都是虚拟显卡
#00:02.0 VGA compatible controller: Intel Corporation Device 46d1(物理核显)
#00:02.1 VGA compatible controller: Intel Corporation Device 46d1(虚拟核显1)
#00:02.2 VGA compatible controller: Intel Corporation Device 46d1(虚拟核显2)
#00:02.3 VGA compatible controller: Intel Corporation Device 46d1(虚拟核显3)
最后
这样PVE
虚拟机的安装和配置就已经完成了,现在只需要把想安装的系统安装在PVE
上即可。PVE
是基于KVM
虚拟化的,可以创建KVM
虚拟机;另外它还支持LXC
容器,类似docker
的容器化部署,虚拟机与宿主机共享底层,也是不错的方式。本文只是搭建PVE
虚拟机的小记,并没有足够的细致,更多的细节可以参考其他文章。