概述
利用手头的X99电脑,搞一个ALL IN ONE,解决日常办公及服务器部署,压榨性能。
原本是想用VMWARE的EXSI的解决方案,但是在显卡直通方面出现问题,无法将显卡直通到显示器,因为在直通页面,选择框不停的跳动,根本选不中。也因在原来的使用过程中出现了各种各样的问题,还是放弃了。
最后选用了PVE进行解决,过程出乎意料的顺利。
架构图

PVE安装
开启VT-x、VT-d
根据主板厂商的不同,开机进入BIOS中,将VT-X及VT-D功能开启。
安装系统
下载官方镜像:
前往Proxmox官网的下载页面获取最新的PVE9.0ISO镜像文件。
https://www.proxmox.com/en/downloads

将下载下来的镜像刻录到U盘或者使用Ventoy启动盘进行安装。具体安装过程不再赘述,根据提示进行安装即可。
性能调优
内核参数优化
cat <<EOF > /etc/sysctl.conf
# 增加网络性能参数
net.core.rmem_max = 134217728
net.core.wmem_max = 134217728
net.ipv4.tcp_rmem = 4096 87380 134217728
net.ipv4.tcp_wmem = 4096 65536 134217728
# 增加虚拟化相关参数
vm.swappiness = 10
vm.dirty_ratio = 10
vm.dirty_background_ratio = 5
EOF
应用更改
sysctl -p
ZFS优化
# 调整ZFS参数
echo "options zfs zfs_arc_max=4294967296" > /etc/modprobe.d/zfs.conf
echo "options zfs zfs_vdev_async_write_max_active=10" >> /etc/modprobe.d/zfs.conf
# 重启后生效
换源
PVE 9.0 基于 Debian 13,除了换 Debian 的软件源以外,还需要编辑企业源、Ceph 源、无订阅源以及 CT 模板源。
软件源
- 备份原有的源文件
mv /etc/apt/sources.list.d/debian.sources /etc/apt/sources.list.d/debian.sources.bak
- 创建以下文件,将原有的源更换为清华源
cat <<EOF > /etc/apt/sources.list.d/debian.sources
Types: deb
URIs: https://mirrors.tuna.tsinghua.edu.cn/debian
Suites: trixie trixie-updates trixie-backports
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
# Types: deb-src
# URIs: https://mirrors.tuna.tsinghua.edu.cn/debian
# Suites: trixie trixie-updates trixie-backports
# Components: main contrib non-free non-free-firmware
# Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
# 以下安全更新软件源包含了官方源与镜像站配置,如有需要可自行修改注释切换
Types: deb
URIs: https://security.debian.org/debian-security
Suites: trixie-security
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
# Types: deb-src
# URIs: https://security.debian.org/debian-security
# Suites: trixie-security
# Components: main contrib non-free non-free-firmware
# Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
EOF
企业源
将源文件直接备份,个人订阅无法使用。
mv /etc/apt/sources.list.d/pve-enterprise.sources /etc/apt/sources.list.d/pve-enterprise.sources.bak
Ceph源
- 备份原有的源文件
mv /etc/apt/sources.list.d/ceph.sources /etc/apt/sources.list.d/ceph.sources.bak
- 创建以下文件,将原有的源更换为清华源
cat <<EOF > /etc/apt/sources.list.d/ceph.sources
Types: deb
URIs: https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian/ceph-squid
Suites: trixie
Components: main
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF
无订阅源
创建下以文件和内容
cat <<EOF > /etc/apt/sources.list.d/pve-no-subscription.sources
Types: deb
URIs: https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian/pve
Suites: trixie
Components: pve-no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF
CT模板源
果你需要用到 PVE 中的 LXC 容器,那么还需要替换一下 CT 模板源,否则下载模板会非常的慢
将 /usr/share/perl5/PVE/APLInfo.pm 文件中默认的源地址 http://download.proxmox.com 替换为https://mirrors.tuna.tsinghua.edu.cn/proxmox
cp /usr/share/perl5/PVE/APLInfo.pm /usr/share/perl5/PVE/APLInfo.pm.bak
sed -i 's|http://download.proxmox.com|https://mirrors.tuna.tsinghua.edu.cn/proxmox|g' /usr/share/perl5/PVE/APLInfo.pm
删除订阅弹窗
尽管我们使用的 PVE 是免费版,但如果你没有订阅,每次访问网页时,都会有一个“无有效订阅”的弹窗

弹窗代码在 /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js 中,通过 void({...}) 可以让弹窗部分代码不执行,实现删除弹窗的效果。
因此,直接执行以下命令即可实现删除订阅弹窗
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
网络
如果你的网络环境经常变动,则可以将静态 IP 修改为 DHCP,通过 DHCP 分配 IP,方便网络变动后连接 PVE 设备。
cat /etc/network/interfaces
auto lo
iface lo inet loopback
iface ens3 inet manual
auto vmbr0
iface vmbr0 inet static
address 192.168.3.50
netmask 255.255.255.0
gateway 192.168.3.1
bridge-ports ens3
bridge-stp off
bridge-fd 0
source /etc/network/interfaces.d/*
原有配置如上所示,将以上配置更改为以下内容即可。
auto lo
iface lo inet loopback
iface ens3 inet manual
auto vmbr0
iface vmbr0 inet dhcp
bridge-ports ens3
bridge-stp off
bridge-fd 0
source /etc/network/interfaces.d/*
目前遇到的坑
网卡灯不亮(无网络)
不知道什么原因,导致了网络无法连接,也许是移除/更换了 PCI-E 设备,比如显卡、 M.2 硬盘,网卡的编号发生了改变,而 PVE 的网络配置却不会跟着改变。
解决方式如下:
查看/etc/network/interfaces 可以看到,网卡为 enp4s0,而通过 ip a 查看,此时的网卡已经变为了 ens3,只需要将两处 enp4s0 修改为 ens3
然后重启一下网络,就可以恢复了
systemctl restart networking
永久解决方案(可尝试):
通过udev的规则,将网卡名称和mac进行绑定,这样就不会出现异常了。
root@pve:/etc# cd /etc/udev/rules.d/
root@pve:/etc/udev/rules.d# ls
60-bridge-network-interface.rules
root@pve:/etc/udev/rules.d# ls -lh
total 0
lrwxrwxrwx 1 root root 9 Oct 15 22:07 60-bridge-network-interface.rules -> /dev/null
root@pve:/etc/udev/rules.d# cat 60-bridge-network-interface.rules
如上所示,60-bridge-network-interface.rules这个文件指向了一个空,文件内容也是空的。
root@pve:/etc/udev/rules.d# ip addr
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master vmbr0 state UP group default qlen 1000
link/ether 02:76:c6:00:b3:5c brd ff:ff:ff:ff:ff:ff
altname enp129s0
altname enx0276c600b35c
3: vmbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 02:76:c6:00:b3:5c brd ff:ff:ff:ff:ff:ff
inet 192.168.3.50/24 scope global vmbr0
valid_lft forever preferred_lft forever
inet6 fe80::76:c6ff:fe00:b35c/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
root@pve:/etc/udev/rules.d# rm -rf 60-bridge-network-interface.rules
root@pve:/etc/udev/rules.d# cat <<EOF > /etc/udev/rules.d/60-bridge-network-interface.rules
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="02:76:c6:00:b3:5c", NAME="ens3"
EOF
root@pve:/etc/udev/rules.d# ls
60-bridge-network-interface.rules
通过上述方式,通过文件对设备进行绑定即可。
评论区