最近将 N1 升级成 R71S 小主机,记录一下安装 PVE 的步骤与问题。
Proxmox Virtual Environment(PVE)是一款开源的服务器虚拟化管理平台,可以让用户轻松管理和监控大量的虚拟化和容器化服务器。PVE支持KVM和LXC虚拟化技术,提供了一个易于使用的Web界面,可以让用户创建、管理、备份和恢复虚拟主机、容器和存储。 PVE采用了分布式架构,可以轻松管理多个远程服务器,并提供了高可用性、容错和负载均衡的功能。此外,PVE还支持各种虚拟存储技术,如网络文件系统(NFS)、本地存储和iSCSI卷,可以便捷地存储虚拟机的镜像、容器和数据。
一、下载镜像
- 官方下载:https://www.proxmox.com/en/downloads/category/iso-images-pve
- 国内镜像下载(如清华镜像源):https://mirrors.tuna.tsinghua.edu.cn/proxmox/iso
二、制作启动盘
由于小主机和配件刚买回来还需要使用 PE 进行一些检测,我使用了在 UTM 下 Windows 虚拟机使用 ventoy 制作多引导的启动 U 盘。另外,MacOS 下如果没有多引导的需求则可以直接使用 balenaEther(没找到类似 ventoy 的工具)烧录启动盘。
写入 ventoy 后(将 U 盘会分为两个盘)将 PVE 的 ISO 文件放在 Ventoy 盘下
三、安装
- 将制作好的引导 U 盘插入主机,开机启动(最好先进 Bios 修改引导顺序)
- 选择 Install Proxmox VE 并回车
- 点击 I Agree 同意协议
- 磁盘配置
- 选择需要安装 PVE 的硬盘
- SWAP 分区:如有大内存则完全可以将 swap 分区设置为 0,这里我安装了 16G 的物理内存,由于硬盘是 1TB 的 m.2 NVME 固态还是设置了 16G 的虚拟内存。
- 点击 Next 完成
- 本地化配置
- 国家选择 China
- 时区会自动调至 Asia/Shanghai
- 键盘保持默认的 U.S.English
- 点击 Next 完成
- 管理员配置
- 输入密码和确认密码
- 填写邮箱地址
- 点击 Next 完成
- 网络配置
- 网卡:选择哪个网口作为管理端口,默认第一个网口
- 域名:自定义即可
- IP:即 PVE 的管理 IP,例如:192.168.100.10(下面有说明)
- 网关:即后续安装的软路由的网关,例如:192.168.100.1
- DNS:填写网关 IP 或者国内 DNS 地址,例如:114.114.114.114
- 点击 Next 完成
- 点击 Install 开始安装然后等待重启
- 重启之后将 U 盘移除
网络配置相关说明
这里的安装配置需考虑整体网络拓扑,如果 PVE 上层还有路由,则 IP 和网关填写上层路由网段信息即可,如果打算 PVE 内虚拟主路由,则自行选择一个网段。
如果没有主路由,则需要用网线将主机和电脑连接,且配置电脑的网络配置:
IP 地址:填写和 PVE 管理 IP 同一网段的地址 子掩网码:255.255.255.0
否则只需要将电脑和主机连接到上层路由即可。
至此,安装完毕,可以通过 Web 页面打开或者通过 SSH 连接到 PVE。
四、配置
4.1 软件源配置
- 更改 Debian 软件源为国内镜像(如清华):https://mirrors.tuna.tsinghua.edu.cn/help/debian/
- 更改 Proxmox 软件源以及 CT 模板源为国内镜像(如清华):https://mirrors.tuna.tsinghua.edu.cn/help/proxmox/
然后执行更新
# debian 源配置更新后
apt update
apt upgrade -y
# 更新完 CT 模板配置
systemctl restart pvedaemon.service
pveam update
4.2 更新内核以及微码
我的小主机CPU是 N6000,由于以 N5105 为代表的 11 代 Intel CPU 在虚拟化场景,大面积出现重启崩溃的现象,PVE 需更新内核和微码。详情可参考以下帖子:
- V2EX 相关讨论 https://www.v2ex.com/t/879368
- Debian Wiki Microcode https://wiki.debian.org/Microcode
内核
使用 apt-cache search pve-kernel
查看当前 PVE 最新内核(如今天 2023-05-08 的最新内核为 6.2)
apt install pve-kernel-6.2
apt -y dist-upgrade
reboot
重启后查看内核版本 uname -r
更新 Intel Microcode
apt install intel-microcode
更新系统引导
update-initramfs -u -k all
reboot
重启后查看 microcode 版本(如 0x24000024
):grep 'stepping\|model\|microcode' /proc/cpuinfo
。
4.3 虚拟内存策略的调整
即便是使用了 NVME 的虚拟内存,我也倾向于使用更多的物理内存。PVE 可以自行调整 Linux 的内核参数:
首先查看当前虚拟内存策略:cat /proc/sys/vm/swappiness
,默认为 60。
vm.swappiness:取值为 0-100,值越大则表示越倾向于使用 swap。 比如物理内存为 16GB,设置 vm.swappiness=30,则系统会在使用 16GB * (100 - 30)% = 11.2GB 后使用虚拟内存。
# vi /etc/sysctl.conf
# 增加
vm.swappiness=30
# 应用配置
sysctl -p
4.4 开启硬件直通
- 编辑 grub 配置:
vi /etc/default/grub
找到这一行:
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
注释并在下面添加或直接修改成:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"
- 更新 grub:
update-grub
- 调整所需模块
vi /etc/modules
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
- 更新系统引导
update-initramfs -u -k all
reboot
- 验证
dmesg | grep iommu
# 出现如下例子。则代表成功
[ 0.847285] pci 0000:00:02.0: Adding to iommu group 0
[ 0.848441] pci 0000:00:00.0: Adding to iommu group 1
[ 0.848467] pci 0000:00:04.0: Adding to iommu group 2
[ 0.848508] pci 0000:00:14.0: Adding to iommu group 3
[ 0.848527] pci 0000:00:14.2: Adding to iommu group 3
find /sys/kernel/iommu_groups/ -type l
# 出现很多直通组,表示成功开启
/sys/kernel/iommu_groups/17/devices/0000:05:00.0
/sys/kernel/iommu_groups/7/devices/0000:00:1c.3
/sys/kernel/iommu_groups/15/devices/0000:03:00.0
/sys/kernel/iommu_groups/5/devices/0000:00:17.0
/sys/kernel/iommu_groups/13/devices/0000:01:00.0
/sys/kernel/iommu_groups/3/devices/0000:00:14.2
4.5 local-lvm 优化
PVE 默认安装会创建 local 和 local-lvm 两个存储。其中 local 大约磁盘容量的 10%,存储类别为目录。 local-lvm 的存储类别为 lvm-thin。实际使用 lvm-thin 效率比目录低,建议不适用 thin 模式。
如果要将 local-lvm 转换成目录模式可参照此文:https://www.cnblogs.com/doracloud/p/16874171.html
如果要将 local-lvm 合并至 local 可参照此文:https://foxi.buduanwang.vip/virtualization/pve/1434.html/
这里记录合并至 local 的方法。
打开 Web 页面 - 数据中心 - 存储 - 编辑 local - 修改内容选中全部
删除 lvm-local:Shell 执行
lvremove pve/data
扩容 local:Shell 执行
lvextend -rl +100%FREE /dev/pve/root
打开 Web 页面 - 数据中心 - 存储 - 删除 local-lvm
五、其他
查看硬盘信息
apt install smartmontools
smartctl -a /dev/nvme0n1
查看当前 CPU 工作模式
apt install linux-cpupower
cpupower frequency-info
移除无用内核
# 查看当前安装的内核
dpkg --get-selections |grep kernel
移除内核
dpkg --purge --force-remove-essential pve-kernel-***-pve
# 更新引导菜单
update-grub
# 重启PVE
reboot
获取传感器温度
apt install lm-sensors