登录 | 注册

轻扣指间,静听心声

PVE

发表于 09-27 / 559 阅读 / 0 评论 / 需时8.4’

本文记录时PVE最新版本为8.2.2,内核6.8.4;内容为安装后系统配置及核显SRIOV直通过程。

所用处理器:n100,很多n5105并不支持,我折腾过两个都不是很顺利,甚至直接直通也不太完美。
实现效果:pve底层,其下安装openwrt、黑群晖、飞牛nas、win10;并且将n100的核显通过sriov虚拟化分配给群晖、飞牛、win10同时调用。
其实n100的核显很弱,一分三已是极限,如果没有我这么多需求,直接直通或一分二更好些。

一、系统配置

首先确保BIOS的这些功能是否正确开启:

  • Intel VMX虚拟化技术 (需要开启)
  • VT-d (需要开启)
  • SR-IOV (需要开启)
  • IOMMU (需要开启)

有些主板这些内容是隐藏的,至于默认是否开启,购买之前要咨询好。我的n100买回来之后发现就不支持SR-IOV,我找售后要的支持sriov的bios自己刷的。

1,安装PVE(略)

pve安装极简单,直观

2,整合PVE存储空间(可选)

这一步请在刚装完PVE系统后进行操作,不建议已经组好All in One的用户进行操作。

loacl和local-lvm两个分区合二为一

查询当前local的大小

df -h

/dev/mapper/pve-root这个是系统自动给local的空间
进入到PVE节点的Shell输入以下命令(删除pve/data路径下的local-lvm逻辑卷)

lvremove pve/data

输入完之后会提示是否确定删除,此时按y回车
继续输入以下命令(将所有系统盘可用空间全部交由local这一个逻辑卷分配)

lvextend -l +100%FREE -r pve/root

继续输入以下命令(使其适应已经调整大小的逻辑卷)

resize2fs /dev/mapper/pve-root

查询是否扩容成功

df -h

成功扩容接下来删除local-lvm
点数据中心 ——> 存储 ——> local-lvm ——> 移除 ——> local ——> 编辑 ——> 内容(所有选项全部选上) ——> OK


以下再做几项PVE系统基础配置

3,去除登录弹窗(即 无效订阅源)

sed -Ezi.bak "s/(Ext.Msg.show\(\{\s+title: gettext\('No valid sub)/void\(\{ \/\/\1/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && systemctl restart pveproxy.service

执行完成后,浏览器Ctrl+F5强制刷新缓存

4,PVE更换软件源

cat <<'EOF' > /etc/apt/sources.list
deb https://mirrors.ustc.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
deb https://mirrors.ustc.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
deb https://mirrors.ustc.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
deb https://mirrors.ustc.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware
EOF

cat <<'EOF' > /etc/apt/sources.list.d/pve-enterprise.list
deb https://mirrors.ustc.edu.cn/proxmox/debian/pve bookworm pve-no-subscription
EOF

cat <<'EOF' > /etc/apt/sources.list.d/ceph.list
deb https://mirrors.ustc.edu.cn/proxmox/debian/ceph-quincy bookworm no-subscription
EOF

5,更新软件包

仅更新软件包。不要更新内核!不要更新内核!不要更新内核!

apt update

二、SRIOV核显虚拟化

1,下载依赖包

apt install flex bison

2,安装header

apt update & apt install build-* pve-headers-$(uname -r) git dkms sysfsutils flex bison -y

3,下载i915所需二进制文件

mkdir -p /lib/firmware/updates/i915/
wget -O /lib/firmware/updates/i915/tgl_guc_70.9.1.bin https://mirror.ghproxy.com/https://raw.githubusercontent.com/intel-gpu/intel-gpu-firmware/main/firmware/tgl_guc_70.9.1.bin

4,下载需要的deb包

无法连接github下载的话,可点 击此处下载.deb文件 并解压后将上传到root目录,当然也可以自己加代理(比如kkgithub)。

wget https://github.com/MoetaYuko/intel-gpu-i915-backports/releases/download/I915MT65-24.1.19-3/intel-i915-dkms_1.24.1.19.240119.1.nodrm+i3-1_all.deb

5,安装deb包

sudo dpkg -i intel-i915-dkms_1.24.1.19.240119.1.nodrm+i3-1_all.deb

出现以下信息即说明安装成功

sr-iov1.webp

6,编辑 grub 配置文件

nano /etc/default/grub

quiet 后添加 intel_iommu=on iommu=pt i915.enable_guc=3 i915.max_vfs=2
键盘组合键ctrl+x再输入y 回车保存退出

7,更新grub和initramfs

update-grub
update-initramfs -u

8,安装sysfsutils

对新手友好,方便对VF核显数量设置,比使用开机自启脚本rc.local更安全。

apt install -y sysfsutils

下面命令中sriov_numvfs = 3的代表SRIOV核显数量,可自定义设定,最多设置7,分得越多性能越弱!

echo "devices/pci0000:00/0000:00:02.0/sriov_numvfs = 3" > /etc/sysfs.conf
----------------
#有修改虚拟核显数量的需求
nano /etc/sysfs.conf
#将原来写入的参数注释掉
#devices/pci0000:00/0000:00:02.0/sriov_numvfs = 3
#改成你需要的数量,例如改为5个
devices/pci0000:00/0000:00:02.0/sriov_numvfs = 2

9,重启pve,使配置生效

reboot

10,核实是否成功

执行 dkms status 出现以下信息说明安装成功,可以进行后续直通操作

root@pve:~# dkms status
intel-i915-dkms/1.24.1.19.240119.1.nodrm, 6.8.4-2-pve, x86_64: installed

执行 lspci | grep VGA 输出应如下图

root@pve:~# lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation Alder Lake-N [UHD Graphics]
00:02.1 VGA compatible controller: Intel Corporation Alder Lake-N [UHD Graphics]
00:02.2 VGA compatible controller: Intel Corporation Alder Lake-N [UHD Graphics]
00:02.3 VGA compatible controller: Intel Corporation Alder Lake-N [UHD Graphics]

三、安装虚拟机

安装openwrt

我们点击PVE页面的PVE展开,点击local(pve),选择ISO镜像,点击上传

op1.webp

选择你下载的img结尾的Openwrt镜像并上传。

op2.webp

上传后我们会得到一个地址,下图所示红框内,复制出来记录下来。

op3.webp

我们创建虚拟机,点击右上角的创建虚拟机,弹窗出来的常规选项,节点默认,VM ID这里也默认,名称自定义。下面有一个开机自启动,打勾下一步。

op4.webp

操作系统这里选择不使用任何介质。

op5.webp

系统和磁盘这里默认下一步

op6-1.webp

op6-2.webp

CPU这里我们根据你设备性能分配。因为我只是拿来拨号和特殊上网等操作,所以不需要太大的CPU和内存使用,所以我只分了2核心足以。类别我们选择host,下一步

op7.webp

内存这里我用处不大,给了1024MB=1G足够

op8.webp

网络这里我们模型选择Intel E1000,下一步

op9.webp

最后确认,完成即可

op10.webp

选择Openwrt虚拟机,点击硬件,找到CD/DVD驱动器,选择,上面选择移除。

op11-1.webp

op11-2.webp

还是硬件,找到硬盘,选择点击上面的分离。分离后会多出一个未使用的磁盘0,选择,上面的移除即可

op12-1.webp

op12-2.webp

我们选择硬件上面的添加,PCI设备,出现弹框,点击原始设备,设备这里选择往下拉,找到除了第一个网卡,依次选择,勾选所有功能。添加。然后重复此步骤,把除了第一个网卡剩下的所有都直通分配给Openwrt.

op13-1.webp

op13-2.webp

op13-3.webp

op13-4.webp

以上操作完毕后,我们去ssh终端,输入下面命令,注意:这里的100就是前面创建Openwrt的VM ID,如果你是其他的自行替换,后面的/var/lib/vz/template/iso/xxxxx,这串就是让你前面上传镜像后红框内的地址,自行替换噢!!最后面加上空格,注意是空格local

qm disk import 100 /var/lib/vz/template/iso/xxxxx local

这里是local而不是local-lvm因为上面我们合并了存储。

回车后会跑进度,等完毕后会有如下图提示,我们可以找到PVE页面的Openwrt硬件选择,是否多出一个未使用的磁盘,且同名的信息。

我们编辑这个磁盘,把总线/设备,这个选择改成sata,添加就行

op16.webp

再接着我们去Openwrt点击选项,找到引导顺序,选择后点击上面的编辑。取消第一个选项,找到刚改的sata,打勾,OK

op17-1.webp

op17-2.webp

接着我们设置一下开机自启动,点击右上角的启动,这样就启动了Openwrt。

安装 群晖

1,上传引导文件

我安装的SA6400(支持12代及以上核显硬解),文件名SA6400.img,记录上传后文件路径(应为):

/var/lib/vz/template/iso/SA6400.img

2,新建虚拟机

一路默认到底,cpu选择host,网卡vmnext3或者半虚拟化都行。

3,分离存储

虚拟机创建成功,点击虚拟机→硬盘→分离;分离成功后移除此硬盘。

4,导入引导盘

qm importdisk 101 /var/lib/vz/template/iso/SA6400.img local

101是你的虚拟机编号;安装黑群晖的磁盘是local,因为我上面删除了lvm分区,如果没有删除就是local_lvm

5,引导盘改为sata

再次回到虚拟机中可以看到引导导入成功,双击磁盘,将总线/设备修改为 “SATA”

6,添加数据盘

引导盘设置成功后我们还需要设置系统安装盘也就数据盘,有两种方式,一个是将硬盘直通给黑群晖,另外一个增加虚拟磁盘,我是直通了sata控制器。

7,添加虚拟显卡

原虚拟显卡设不设置无都可以。

pve-qh2.webp

0000:00:02.1,x-vga=1是显卡,0000:05:00是我的sata控制器。

完成,开机!

安装 飞牛OS

这个最简单,下载飞牛系统iso镜像,添加16g-64g虚拟硬盘用来当系统盘,cpu为host,网卡vmnetx3或半虚拟化,一路安装下去就行。

进了系统开启ssh,然后关机添加虚拟显卡,开机。
安装皮蛋熊的驱动,驱动安装如下:

sudo -i # 输入密码
wget wget https://blog.kkk.rs/upload/intel-i915-v2.deb
dpkg -i intel-i915-v2.deb

重启后就可以硬解了。

安装 win10

安装win10也非常简单直观。

下载virtio,并和系统安装盘一起上传并添加到虚拟机。
在安装过程选择安装硬盘时,需要添加额外驱动才可以。
https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso

驱动添加界面如下:

pve-win10-1.avif

pve-win10-2.avif

pve-win10-3.avif

pve-win10-4.avif

pve-win10-5.avif

下面是虚拟机的标准配置

机型选择,q35,bios选择ovmf
PCI设备虚拟核显:
1,安装Win时建议先不添加,Win系统装完并设置好过程访问
2,关机添加虚拟核显,此时不要勾选主GPU,安装驱动不报错,关机
3,添加sriov设备,此时勾选主gpu(也可勾上pcie),勾了主gpu之后,pve就不会显示画面了,可以尝试吧显卡改成virtio-gpu,这样就可以显示控制台。如果装驱动43,把显示该成无。

拓展

PVE的网卡链路聚合,以下绑定配置可用作分布式/共享存储网络。好处是您可以获得更快的速度和网络将是容错的。
配置文件 /etc/network/interfaces

示例1: Use bond with fixed IP address

auto lo
iface lo inet loopback

iface eno1 inet manual
iface eno2 inet manual
iface eno3 inet manual

auto bond0
iface bond0 inet static
      bond-slaves eno1 eno2
      address  192.168.1.2/24
      bond-miimon 100
      bond-mode 802.3ad
      bond-xmit-hash-policy layer2+3

auto vmbr0
iface vmbr0 inet static
        address  10.10.10.2/24
        gateway  10.10.10.1
        bridge-ports eno3
        bridge-stp off
        bridge-fd 0

Example: Use a bond as bridge port

auto lo
iface lo inet loopback

auto enp1s0
iface enp1s0 inet manual

iface enp2s0 inet manual

iface enp3s0 inet manual

iface enp4s0 inet manual

auto vmbr0
iface vmbr0 inet static
    address 192.168.1.5/24
    gateway 192.168.1.1
    bridge-ports enp1s0
    bridge-stp off
    bridge-fd 0

示例2正是我家的AIO用的配置。下面说明一下:
主板有4个2.5G网口,其中enp1s0为pve访问端口,并连接到交换机上;其余三个网口直通给openwrt使用;此时pve与op将是隔离开的。
因此,以上配置将pve口建立为一个虚拟网桥/交换机,并将它添加到op做为一个lan口,此时pve和op以及所以网络中的设备就都连上了。
这个时候路由器有4个网口:三个物理网口(1wan、2lan)加一个虚拟网口vmbr0(1lan)。

本文最后更新时间为 2025-03-31 20:33

评论功能已关闭!
本站仅用作个人记录,不交流、不讨论,留言板可以留言但无邮件回复。