AIO:0. PVE
本系列为我搭建 ALL-IN-BOOM 的摸索笔记。
自用备份,不是什么详尽的教程。
更换企业源
付费订阅才能使用企业源,否则需要更换非订阅源才能正常更新 PVE。
PVE -> 更新 -> 存储库
禁用 https://enterprise.proxmox.com/debian/pve
添加 No-Subscription
备份/还原虚拟机
直接在对应虚拟机的备份页面中进行备份,备份文件在/var/lib/vz/dump/,还原时在此处导入文件即可。
关闭 KSM
在内存冗余的情况下,关闭 KSM (内存去重)以节省 CPU 开销。
systemctl disable ksmtuned
systemctl stop ksmtuned
允许外部访问虚拟机画面
允许外部的 VNC Viewer 远程连接 VM ID 为 101 的虚拟机,IP 为 PVE 物理机所在 IP,端口为5901,无密码。
qm set 101 -args "-vnc :1"
允许外部的 SPICE 远程连接 VM ID 为 102 的虚拟机,IP 为 PVE 物理机所在 IP,端口为5902,无密码。
vi /etc/pve/qemu-server/102.conf
添加以下行,并将虚拟机的显示输出设置为 SPICE。
args: -spice port=5902,addr=0.0.0.0,disable-ticketing=on
WEB 管理页面优化
可在管理页面方便地查看CPU和硬盘温度等数据,并关闭恼人的无订阅提醒。
apt-get install lm-sensors
# lm-sensors must be configured, run below to configure your sensors, apply temperature offsets. Refer to lm-sensors manual for more information.
sensors-detect
wget https://raw.githubusercontent.com/Meliox/PVE-mods/refs/heads/main/pve-mod-gui-sensors.sh
bash pve-mod-gui-sensors.sh install
# Then clear the browser cache to ensure all changes are visualized.
wget https://raw.githubusercontent.com/Meliox/PVE-mods/refs/heads/main/pve-mod-nag-screen.sh
bash pve-mod-nag-screen.sh install
不把内存给 ZFS
只要不炸就行,谁管你读写性能(
- 设置 ARC 能使用的内存为 64M
vi /etc/modprobe.d/zfs.conf
options zfs zfs_arc_min=67108864
options zfs zfs_arc_max=67108864
update-initramfs -u -k all
proxmox-boot-tool refresh
- 设置 ZFS 不要缓存任何东西
zfs set primarycache=none rpool
验证。
zfs get primarycache rpool
重启。
开启 PCI 直通
本文的步骤仅适合使用 systemd-boot 启动的 PVE。
vi /etc/kernel/cmdline
在第一行的后面添加!不要加到第二行去!
quiet intel_iommu=on
刷新 BL。
pve-efiboot-tool refresh
SR-IOV 方式直通 GPU
这里我把主要的命令摘出来。
安装 Git、内核头文件并进行一些清理工作。
apt update && apt install git sysfsutils pve-headers mokutil -y
rm -rf /usr/src/i915-sriov-dkms-*
rm -rf /var/lib/dkms/i915-sriov-dkms
rm -rf ~/i915-sriov-dkms*
find /lib/modules -regex ".*/updates/dkms/i915.ko" -delete
克隆 DKMS 仓库并进行构建。
cd ~
git clone https://github.com/strongtz/i915-sriov-dkms.git
apt install build-* dkms
cd ~/i915-sriov-dkms
dkms add .
构建新内核并检查内核模块安装状态,验证它是否显示installed。
VERSION=$(dkms status -m i915-sriov-dkms | cut -d':' -f1)
dkms install -m $VERSION --force
dkms status
我没设置安全启动,直接跳到修改 systemd-boot 这步。
vi /etc/kernel/cmdline
在第一行的后面添加!不要加到第二行去!
iommu=pt i915.enable_guc=3 i915.max_vfs=7
由于在之前设置直通 PCI 的时候已经添加了intel_iommu=on,在这里就不重复添加了。
proxmox-boot-tool refresh
修改 PCIe 总线编号。大部分情况下,核显的编号都是00:02.0。
vi /etc/sysfs.conf
devices/pci0000:00/0000:00:02.0/sriov_numvfs = 7
重启并验证。
lspci | grep VGA
dmesg | grep i915
应该返回8行 PCIe 设备信息以及Enabled 7 VFs。
参考
Proxmox VEで無償版リポジトリを設定する
在 Proxmox 上進行 PCI-E 直通
Proxmox VE开启网卡多队列
Display
Proxmox VE与VNC
Meliox/PVE-mods: Proxmox modifications
Proxmox VE 9.0: Windows 11 vGPU (VT-d) Passthrough with Intel Alder Lake