PVE硬盘直通与休眠

查看硬盘id

pve宿主机查看硬盘id

1
ls -l /dev/disk/by-id/

挂载硬盘

1
2
#qm set vmid -deviceno /dev/disk/by-id/disk-id
qm set 101 -sata0 /dev/disk/by-id/ata-ST1000LM024_HN-M101MBB_S30YJ9AF306914

vmid: 虚拟机编号
deviceno: 设备编号
disk-id: 上一步查到的磁盘id

硬盘休眠

停止监控

修改/etc/lvm/lvm.conf文件,过滤不需要监控的盘,操作见PVE论坛

1
2
# 添加 "r|/dev/sda|" 到 global_filter
global_filter=["r|/dev/zd.*|","r|/dev/rbd.*|","r|/dev/sda*|"]
1
2
# 重启
pvestatd restart

验证

通过以上方式允许硬盘休眠后,可以让硬盘立即休眠来测试下是否还会被唤醒

1
2
3
4
# 立即休眠
hdparm -y /dev/sda
# 验证
hdparm -C /dev/sda

验证输出中会有drive state is: standby

休眠

验证通过后即可配置硬盘休眠策略

1
2
3
4
# 修改APM_level为127
hdparm -B 127 /dev/sda
# 设置硬盘休眠时间为 5 分钟
hdparm -S 60 /dev/sda

若要持久化按以下步骤操作
编辑/etc/hdparm.conf

1
2
3
4
/dev/disk/by-id/ata-ST500LT012-9WS142_W0V62FGE {
apm = 127
spindown_time = 60
}
1
/usr/lib/pm-utils/power.d/95hdparm-apm resume

注意点

若使用了pve_source更改了首页概要信息,且概要信息中也有硬盘,以上配置会失效。经测试哪怕不选统计通电时间,通电时间也会显示,硬盘休眠后会被唤醒。
但pve_source源码未开放,目前我也无法单独把nvme的监控打开,把sata的监控关上,只能放弃硬盘的监控了

经过一段时间测试,上方的配置仅适合冷备盘,若为热备盘、下载盘(开启做种)、影音盘,apm需改为128,spindown_time改为240,否则频繁的休眠启动会降低机械硬盘的寿命