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与ESXI之间的选择

最近入手了一个mini PC,准备在家做软路由,但是只装一个openwrt实在是过于浪费了。在网上看了很多教程,发现可以安装Proxmox VE或者ESXI虚拟机,这样可玩性就大大增加了。在PVEESXI之间纠结很久,ESXI相对来说配置比较简单,而且是大厂出品,必然不会有太大的问题,但毕竟是收费项目。而PVE是一个开源项目,而且对设备的支持也更加广泛一些,那么它的可玩性就更大了。最终还是选择PVE,拥抱开源项目。

搭建PVE虚拟机

前期准备

  • U盘,8G就足够
  • Ventoy,用于制作启动U盘
  • PVE镜像,使用下载器(迅雷)进行下载,否则下载速度非常慢
    download-pve-iso

安装PVE

本次安装的是PVE最新版本7.4-13,如果你是其他的版本,也可以参考这篇文章,但可能会有不同的问题需要自己研究以下。

制作启动盘

首先我们需要制作启动盘,制作启动盘的大概流程就是运行ventoy,用ventoy将U盘转换为ventoy的格式,然后将镜像放入U盘内即可。

我们将U盘插入机器,然后启动机器,选择UEFI U盘启动。如果你没有这个选项,可以进入bios进行设置,更多的细节可以搜索一下,非常简单。

安装7.4核显问题

如果你是12代及以上的CPUPVE使用的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

之后就是图形化的安装了,有一些需要注意的地方,我们首先看一下网络拓朴图。
network-topology
从上面的网络拓朴图中,可以看出我的PVE虚拟机是要安装iKuai作为主路由,OpenWRT作为旁路由,然后将网口enp1s0直通给iKuai,而网口enp2s0作为PVE的管理端口,并用来连接AP

根据上面的结构,我们可以这样配置PVE

  • Management InterfacePVE的管理接口,可以是lan口,也可以是wan口,主要看你是否要进行直通,如果直通网口的话,管理口是不能去直通的,否则就无法访问PVE
  • IP Address(CIDR)PVE的静态IP地址,后面是掩码,例子:10.1.2.8/24
  • Gateway是网关,如果你要装ikuai/openwrt作为主路由的话,可以填入主路由的IP
  • DNS同网关一致即可

更新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虚拟机的小记,并没有足够的细致,更多的细节可以参考其他文章。

文章作者: Willxup
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Willxup
Linux Linux PVE
喜欢就支持一下吧