「一个 U 盘引发的血案」--从 PVE 到万物皆可迁移

大家好,看过我文章的小伙伴们可能有所了解,我近几年一直使用 TrueNAS Scale,不过这个系统为了安全很多自定义功能更新了会失效,所以下决心迁移,一直到近期入手了U盘开始搞!


近期还新入手了一个 万兆交换机,也是迁移开始的原因!

Install PVE 安装PVE
此处省略 1K
Make install Media 制作安装介质
此处省略 1K
重点开始

Kernel configure 内核设置
grub configure 引导设置
编辑下面文件
nano /etc/default/grub
文件如下
intel_iommu=on
iommu=pt
video=efifb:off
i915.enable_gvt=1
pci_pt_e820_access=on
pci=assign-busses
pcie_acs_override=downstream,multifunction

Kernel modlues 编辑下面文件
nano /etc/modules-load.d/modules.conf
文件如下

intel gvt configure 英特尔虚拟显卡设置
编辑下面文件
nano /etc/modules-load.d/gvt.conf
文件如下

# below is gvt need modlues
# 下面是intel gvt所需的驱动么,每一行一个驱动!
kvmgt
mdev
gvt直通给win10 guest,plex转码测试


硬件转码成功,说明调用了显卡!
pci passthru pci直通需要设置
编辑下面文件
nano /etc/modprobe.d/vfio.conf
文件如下

查看pci id,命令行下面输入
cmd input like this
lspci -nn -D
输出类似下面内容

内容组成
0000:00:00.0 Host bridge [0600]: Intel Corporation 8th Gen Core Processor Host Bridge/DRAM Registers [8086:3ec6] (rev 07)
1. pci id 总线位置 ;
2. 设备名称;
3. 制造商和型号 id 8086:3ec6 ,大家注意到只要是intel的设备都是8086,那是因为这个8086就是制造商的代码;
4. 电源状态, rev 07 rec 10,如果是断电是rev ff, 我记得大概是这样。
sr-iov 设置
sr-iov 科普
SR-IOV 技术是一种基于硬件的虚拟化解决方案,可提高性能和可伸缩性。SR-IOV 标准允许在虚拟机之间高效共享 PCIe(Peripheral Component Interconnect Express,快速外设组件互连)设备,并且它是在硬件中实现的,可以获得能够与本机性能媲美的 I/O 性能。SR-IOV 规范定义了新的标准,根据该标准,创建的新设备可允许将虚拟机直接连接到 I/O 设备。
sr-iov 常用领域
主要是网络设备;
显卡设备, Intel比较新的显卡也支持这个技术;
查看设置是否支持 sr-iov
一般来说10G以上的网卡才支持这个技术,显卡也是特定设备才支持。Intel 12代以后的核显好像支持,具体自己查一下,我手头没有设备所以没有太关注这个。
命令代码
查询网卡 pci address;
lspci | grep -i net
内容类似

或者
cmd# ethtool -i enp3s0f0
内容如下

查看设备是否支持 SR-IOV
cmd# lspci -v -s 0000:03:00.0
内容如下

Notice
Capabilities: [160] Single Root I/O Virtualization (SR-IOV)
有这句就是支持 SR-IOV
注意⚠️注意⚠️注意⚠️ | Notice
开始设置之前,建议更新initramfs和grub
因为开启相关直通,重启后设备会更改pci设备的地址,比如我的网卡设备地址就从 1,2,3,4; 变成了 6,7,8,9; 万兆网卡的pci设备地址也发生了变化。
update-initramfs -u -k all
update-grub
proxmox-boot-tool refresh
重启设备
reboot
开始设置
编辑下面文件
/etc/modprobe.d/sr-iov.conf
内容如下

根据pve文档建议,用sysfs修改
安装sysfsutils工具
apt install sysfsutils
修改sysfs.conf
nano sysfs.conf
原来内容如下

结尾添加如下

SR-IOV 开机相关设置
需要设置好相应的虚拟网卡 mac address,还有设置好开机启动,pve默认网卡的行为是down!
开机简单脚本
cat /lib/systemd/system/sr-iov.service
内容如下

设置文件
/usr/bin/sr-iov.sh
内容如下
cat /usr/bin/sr-iov.sh
保存下面内容

添加执行权限
chmod +x sr-iov.sh
启动守护进程
systemd daemon-reload systemd enable sr-iov
收尾工作
更新initramfs
update-initramfs -u -k all
更新grub 引导程序
update-grub proxmox-boot-tool refresh
重启机器
reboot
Enjoy && 享受你的PVE欢乐人生
thanks for reading!!!
最后还给 iPhone 15 Pro Max 入手了一个U盘!

欢迎加入圈子
由于张大妈贴代码不方便,只能这样了!
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案