(二)PVE All in One之PVE系统配置以及SRIOV显卡直通

李文乐
发布于 2024-04-19 / 4174 阅读
1
1

(二)PVE All in One之PVE系统配置以及SRIOV显卡直通

系统配置之前,检查下BIOS的这些功能是否正确开启

  • Intel VMX虚拟化技术 (需要开启)

  • VT-d (需要开启)

  • SR-IOV (需要开启)

  • IOMMU (需要开启)

  • VMD setup menu (需要关闭)

将PVE主机接上网络

我的方案是:

光猫(桥接模式) <———> 家里的硬路由(pppoe拨号) <———> 交换机 <———> PVE以及电脑

将loacl和local-lvm两个逻辑卷合二为一

做这一步准备是因为踩坑踩出来的,我的系统盘是1TB的M.2固态,装完系统local逻辑卷(是用来存储ISO镜像文件以及CT模版以及备份文件等)被自动分配了100G空间,大概装了五六个虚拟机存了五六个系统镜像,就只剩下一半的空间了,根本不够用,再说说loacl-LVM,这个跟local作用差不多,要我说原理我也解释不清,反正将两个逻辑卷合二为一省事方便就完了

建议执行这两逻辑卷合二为一的操作时,是PVE刚安装完,没有装任何虚拟机的最初始的状态!

  • 如果PVE里安装了虚拟机再这样操作可能会导致虚拟机崩溃等问题

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系统基础配置

换国内源

  • 备份PVE自带的软件包源文件

  cp /etc/apt/sources.list /etc/apt/sources.list_bak
  • 北方小伙伴选择清华大学源,南方小伙伴选择中科大源,二选一(对号入座后面下载速度会快一点点)

  • 换软件包源

  # 编辑源配置文件
  nano /etc/apt/sources.list
   - 进入到nano编辑器后,将每一行前面加上’#‘注释掉,例如下面这这样
  #deb http://ftp.debian.org/debian bookworm main contrib
  #deb http://ftp.debian.org/debian bookworm-updates main contrib
  # security updates
  #deb http://security.debian.org bookworm-security main contrib

  # 添加中科大源(在被注释掉的文本下面添加以下内容)
  deb https://mirrors.ustc.edu.cn/debian/ bookworm main contrib non-free
  deb https://mirrors.ustc.edu.cn/debian/ bookworm-updates main contrib non-free
  deb https://mirrors.ustc.edu.cn/debian/ bookworm-backports main contrib non-free
  deb https://mirrors.ustc.edu.cn/debian-security/ bookworm-security main contrib non-free

  # control+x y 回车保存退出(这段别复制进去了)

  # 添加清华大学源(中科大源和清华大学源二选一)
  deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
  deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
  deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
  deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware

  # ctrl+x y 回车保存退出(这段别复制进去了)
  • 编辑企业源

nano /etc/apt/sources.list.d/pve-enterprise.list

将其中原有的源前面 # 注释掉,变为:
#deb https://enterprise.proxmox.com/debian/pve bookworm pve-enterprise

北方添加清华源:
deb https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian/pve bookworm pve-no-subscription

南方添加中科大源:
deb https://mirrors.ustc.edu.cn/proxmox/debian/pve bookworm pve-no-subscription

# ctrl+x y 回车保存退出
  • 添加pve无订阅源

nano /etc/apt/sources.list.d/pve-no-subscription.list

# 粘贴以下pve中科大的无订阅源
deb https://mirrors.ustc.edu.cn/proxmox/debian/ceph-quincy bookworm no-subscription

# ctrl+x y 回车保存退出
  • 更新软件包(2024.7.15更新)

apt update && apt dist-upgrade -y # 如果报错就执行 修复源401错误 

apt install pve-kernel-6.5.13-1-pve # 安装特定版本的Proxmox VE内核
proxmox-boot-tool kernel pin 6.5.13-1-pve # 使用 proxmox-boot-tool 固定此内核版本作为默认启动内核

# 重启PVE
reboot
  • 修复源401错误(如无401报错可忽略此条)

nano /etc/apt/sources.list.d/ceph.list

# 将其中原有的proxmox句首加 # 注释掉
变为:#deb http://download.proxmox.com/debian/ceph-quincy bookworm no-subscription

# 添加中科大ceph源:
deb https://mirrors.ustc.edu.cn/proxmox/debian/ceph-quincy bookworm no-subscription

# ctrl+x y 回车保存退出

# 再次更新
apt update && apt dist-upgrade -y
apt install pve-kernel-6.5.13-1-pve
proxmox-boot-tool kernel pin 6.5.13-1-pve

# 重启PVE
reboot

更换LXC容器源

  • 中科大源和清华大学源二选一

  # 备份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.ustc.edu.cn/proxmox|g' /usr/share/perl5/PVE/APLInfo.pm

  # 更换为清华大学源:
  sed -i 's|http://download.proxmox.com|https://mirrors.tuna.tsinghua.edu.cn/proxmox|g' /usr/share/perl5/PVE/APLInfo.pm

  # 重启PVE(使所有更换的源文件生效)
  reboot

SRIOV核显虚拟化

升级内核头文件headers

  • 查看内核版本

  uname -a
  • i915-sriov目前支持6.1~6.5内核,根据uname-a反馈信息调整 header 的版本信息

  • 下载安装 headers

  apt update && apt install pve-headers-$(uname -r)

  # 如果遇到报错,执行以下命令
  apt install pve-headers-6.5
   - 后面这个-6.5与uname-a返回的内核大版本号一致
  • 重启PVE使其生效

  reboot

编译i915-sriov驱动

  • 安装 git工具 及 dkms

  apt install -y git build-* dkms
  • 拖库

  git clone https://github.com/strongtz/i915-sriov-dkms.git
  cd i915-sriov-dkms
  nano dkms.conf

  # 将第一行改为 PACKAGE_NAME="i915-sriov-dkms"
  # 将第二行改为 PACKAGE_VERSION="6.5"

  # ctrl+x y 回车保存退出
  • 添加安装sriov模块

  cd i915-sriov-dkms
  dkms add .
  dkms install -m i915-sriov-dkms -v 6.5
  • 检查安装是否成功

  # 输入以下命令检查是否成功
  modinfo i915|grep vf 

  # 反馈如下表示成功
  parm:           max_vfs:Limit number of virtual functions to allocate. (0 = no VFs [default]; N = allow up to N VFs) (uint)

  # 如无反馈则安装失败,输入以下命令删除此模块
  dkms remove -m i915-sriov-dkms -v 6.5

  # 输入以下命令重新安装(直至有成功信息反馈为止)
  dkms install -m i915-sriov-dkms -v 6.5

设置直通和i915控制器

# 编辑 grub 配置文件
nano /etc/default/grub
 - 在 quiet 后添加 intel_iommu=on i915.enable_guc=3 i915.max_vfs=7

# ctrl+x y 回车保存退出

更新grub和initramfs

update-grub
update-initramfs -u

安装sysfsutils(对新手友好方便对VF核显数量设置)

  • 不建议使用开机自启脚本rc.local,增加不必要的风险

apt install -y sysfsutils

设置SRIOV核显数量

  • 下面命令中sriov_numvfs = 55代表SRIOV核显数量,可自定义设定,最多设置7个

  • 设置为1个性能最强,如果设置为7个,那么每一个的性能只有14%(所以这里大家根据自身核显性能自行考量)

  echo "devices/pci0000:00/0000:00:02.0/sriov_numvfs = 3" > /etc/sysfs.conf 
  • 重启使其生效

  reboot
  • 重启完之后检查是否成功

  • 通过PVE节点的Shell输入以下命令查看SRIOV核显直通是否成功

  lspci | grep VGA
  • 如果成功则会输出以下数据

  00:02.0 VGA compatible controller: Intel Corporation AlderLake-S GT1 (rev 0c)
  00:02.1 VGA compatible controller: Intel Corporation AlderLake-S GT1 (rev 0c)
  00:02.2 VGA compatible controller: Intel Corporation AlderLake-S GT1 (rev 0c)
  00:02.3 VGA compatible controller: Intel Corporation AlderLake-S GT1 (rev 0c)
  00:02.4 VGA compatible controller: Intel Corporation AlderLake-S GT1 (rev 0c)
  00:02.5 VGA compatible controller: Intel Corporation AlderLake-S GT1 (rev 0c)
  • 00:02.x VGA 这就是刚刚虚拟出来的核显了 ⚠️注意:物理核显02.0不能直通出去(可以映射给LXC),否则物理核显本体被独占,所有虚拟核显消失。

接下来就可以按照自己的需求安装虚拟机了

设置虚拟机后面的地址标记

数据中心 ——> 选项 ——> 标记样式设定 ——> 树形结构:完整 ——> OK
选择想要修改的虚拟机 ——> 修改标记 ——> 完成


评论