Duke Yin's Technology database

关于PVE的一些优化和设置

PVE SOURCE

来源

这个脚本有很多功能,通过运行脚本可以定制优化PVE系统

国内:

wget -q -O /root/pve_source.tar.gz 'http://szrq.hkfree.work/pve-source/pve_source.tar.gz' && tar zxvf /root/pve_source.tar.gz && /root/./pve_source

github

wget -q -O /root/pve_source.tar.gz 'https://github.com/Benson80/pve-source/raw/main/pve_source.tar.gz' && tar zxvf /root/pve_source.tar.gz && /root/./pve_source

PVE-manager-status

来源

一键运行

(curl -Lf -o /tmp/temp.sh https://raw.githubusercontent.com/a904055262/PVE-manager-status/main/showtempcpufreq.sh) && chmod +x /tmp/temp.sh && /tmp/temp.sh remod

没有显示功耗的,请执行下面的命令安装依赖

apt update ; apt install linux-cpupower && modprobe msr && echo msr > /etc/modules-load.d/turbostat-msr.conf && chmod +s /usr/sbin/turbostat && echo Success!

恢复官方设置

apt update
apt install --reinstall pve-manager=$(dpkg -l pve-manager | tail -n 1 | awk '{print $3}')
apt install --reinstall proxmox-widget-toolkit=$(dpkg -l proxmox-widget-toolkit | tail -n 1 | awk '{print $3}')
rm -f /usr/share/perl5/PVE/API2/Nodes.pm*bak
rm -f /usr/share/pve-manager/js/pvemanagerlib.js*bak
rm -f /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js*bak

每次pve升级之后都需要执行一次脚本,因为升级后PVE会自己还原文件

配置UPS不间断电源

仅讨论USB接口UPS的接入

列出USB

lsusb

在列表中找到UPS,确认已经接入系统

安装NUT

apt update
apt install nut nut-client nut-server nut-cgi

扫描UPS

nut-scanner -U

如果NUT安装成功,会在最后列出发现的UPS:

[nutdev1]
        driver = "usbhid-ups"
        port = "auto"
        vendorid = "0463"
        productid = "FFFF"
        product = "SANTAK TG-BOX"
        serial = "Blank"
        vendor = "EATON"
        bus = "001"

然后就要在PVE所在服务器配置UPS的信息,所有配置文件位于 /etc/nut 目录之下

所有配置文件都会有注释说明作用,不建议删除注释,建议在文件的文末加入新的配置,并且注意有一些文件的配置会在中间没有注释。

ups.conf

这个文件填入刚刚得到的UPS信息,但是ups的名字可以自己取,我为了方便就叫ups:

maxretry = 3
[ups]
        driver = "usbhid-ups"
        port = "auto"
        vendorid = "0463"
        productid = "FFFF"
        product = "SANTAK TG-BOX"
        serial = "Blank"
        vendor = "EATON"
        bus = "001"

nut.conf

指定运行模式,如果需要局域网其他设备也获取ups信息并关机,选择netserver,如果只需要本机关机,选择standalone,客户机选择netclient

MODE=netserver

upsd.conf

局域网对外的端口(这里不能填127.0.0.1)

LISTEN 0.0.0.0 3493
LISTEN ::1 3493

upsd.user

设置UPS网络服务的用户名和密码,注意,新版NUT是primary,与旧版master不同,用户名密码根据自己喜好设置

[用户名]
  password = 密码
  action = SET
  instcmds = ALL
  upsmon primary

upsmon.conf

设置UPS网络服务的用户名和密码,注意,新版NUT是primary,与旧版master不同

RUN_AS_USER 以什么用户运行脚本

MONITOR 映射哪个UPS

MINSUPPLIES 给出必须接收电源以保持此系统运行的电源数量。大多数系统都有一个电源,所以你可以在这个字段中输入“1”。

SHUTDOWNCMD upsmon调用此函数在发生事情时发送消息

POLLFREQ 正常活动的频率,以秒为单位。UPS使用电池时的轮询频率(秒)。

POLLFREQALERT UPS使用电池时(断电)的轮询频率(秒)。

HOSTSYNC upsmon要等多久才能放弃另一个upsmon

DEADTIME 在宣布过时“死亡”之前等待的时间间隔

POWERDOWNFLAG 用于在主系统上强制关闭UPS的标志文件

RBWARNTIME 更换电池警告时间(秒)

NOCOMMWARNTIME 无通信警告时间(秒)

FINALDELAY 关闭系统前的最后一个睡眠间隔

RUN_AS_USER root

MONITOR ups@localhost 1 用户名 密码 primary

MINSUPPLIES 1

SHUTDOWNCMD "/sbin/shutdown -h +0"

POLLFREQ 5

POLLFREQALERT 5

HOSTSYNC 15

DEADTIME 15

POWERDOWNFLAG /etc/killpower

RBWARNTIME 43200

NOCOMMWARNTIME 300

FINALDELAY 5

upssched.conf

调用此脚本以调用触发计时器的命令。

CMDSCRIPT /bin/upssched-cmd

PIPEFN /etc/nut/upssched.pipe
LOCKFN /etc/nut/upssched.lock
AT ONBATT * START-TIMER power-off 40
AT ONLINE * CANCEL-TIMER power-off
AT ONLINE * EXECUTE power-on

重启服务

 service nut-server restart
 service nut-client restart
 systemctl restart nut-monitor
 upsdrvctl stop
 upsdrvctl start

给予权限并启动upsmon

chown root:nut /etc/nut/upssched-cmd
chmod 750 /etc/nut/upssched-cmd
systemctl restart nut-monitor
systemctl status nut-monitor

配置Web界面(非必须)

ups名字@服务器 “描述”

MONITOR ups@localhost "SANTAK TG-BOX"

启用cgi支持,重启服务及配置

a2enmod cgi
systemctl restart apache2

打开页面 http://{ip}/cgi-bin/nut/upsstats.cgi 查看,例如 http://192.168.2.4/cgi-bin/nut/upsstats.cgi

一些有用的命令

以下ups名字皆为ups,修改为你定义的ups名字

重启服务

systemctl restart nut-server 

查看当前UPS是否在线状态:

upsc ups@localhost ups.status

查看UPS详细参数

upsc ups@localhost

查看UPS monitor状态

systemctl status nut-monitor

UPS配置结束

如果需要关闭局域网的其他设备,

ESXI,参考:NutClient-ESXi

群晖,控制面板>硬件和电源>不断电系统 USP类型选 不断电系统服务器,填写IP和关机时间

Windows WinNUT-Client

Linux系统安装NUT后配置为client即可。

Windows虚拟机的VirtIO驱动

页面地址:https://pve.proxmox.com/wiki/Windows_VirtIO_Drivers

稳定版:https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso

最新版:https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win.iso

通过虚拟机CDROM载入后在虚拟机安装即可。

USB存储设备直通

插入USB设备后,在PVE主机执行:

lsblk

查看USB硬盘是否已经被正确识别

在PVE选中需要直通的虚拟机先关机,选择硬件,添加,USB设备,使用USB供应商/设备ID,选择硬盘。

添加。

启动虚拟机

PVE网卡直通

注意:一定要保留一个网口作为PVE管理口,如果全部网口都直通了,就无法打开PVE,需要用PVE安装U盘做救援模式。

传统Boot方式:

修改gurp

Intel CPU

编辑 /etc/default/grub

找到

GRUB_CMDLINE_LINUX_DEFAULT="quiet"

修改为

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"

更新grup

update-grub

重启服务器

reboot

AMD CPU

依然编辑 /etc/default/grub

找到

GRUB_CMDLINE_LINUX_DEFAULT="quiet"

替换为

GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on""

UEF Isystemd-boot boot

文件位于 /etc/kernel/cmdline

创建用于systemd-boot的文件(格式为带有选项的单行)

更新命令为

pve-efiboot-tool refresh

运行命令验证是否成功:

dmesg | grep -e DMAR -e IOMMU

如果没有输出,则说明有问题。如果有,则成功。

增加模块

修改文件 /etc/modules 加入如下的行(默认为空):

vfio
 vfio_iommu_type1
 vfio_pci
 vfio_virqfd

更新initramfs

update-initramfs -u-k all

虚拟机添加网卡

查找网卡ID

lspci |grep net

需要记住前面ID值

打开文件 /etc/pve/nodes/你的集群名称/qemu-server/虚拟机id.conf

命令行添加

machine:q35
 hostpci0:02:00.0,pcie=1  # 网卡 1
 hostpci1:02:00.1,pcie=1  # 网卡 2

Web页面添加

硬件 添加 选择PCI设备 选择 完成

如果需要设置为PCIE,虚拟机需要设置为q35

天钡 WTR PRO AMD R7 5825U 

安装风扇驱动

1. 安装相关依赖

apt update && apt install -y pve-headers proxmox-headers-$(uname -r) dkms flex bison

2. 安装it87

下载驱动 it87-dkms_1.0.63-1_all.deb ,然后上传到opt目录,然后安装

dpkg -i /opt/it87-dkms_1.0.63-1_all.deb

重启pve

#

发布评论

评论

标注 * 的为必填项。