目 录CONTENT

文章目录

pve中硬盘不休眠解决办法

过客
2025-11-06 / 0 评论 / 0 点赞 / 6 阅读 / 0 字

最近将硬盘柜从DIY的Nas(原生CentOS)小主机中移动到了一台装PVE的主机下,几天下来发现硬盘柜的耗电量每天都是0.6度以上,比之前的0.1度翻了5倍,这样下去电费都交不起了,最终发现是硬盘柜没有休眠。

🔍 问题分析

硬盘柜中有5块磁盘,盘符为sdc~sdg,使用mdadm软路由组了个Raid5,挂在到了 /mnt/data目录下,结构如下:

sdc~sdg (物理盘) → md5 (RAID5阵列) → /mnt/data (挂载点)

要让sdc~sdg休眠,需要确保:

  1. RAID阵列(md5)本身没有频繁访问,之前在CentOS下能入进休眠说明问题不在这。
  2. 挂载点(/mnt/data)没有文件系统访问,使用lsof /mnt/data检查文件系统访问,待机状态下为空,并没有进程访问。
  3. 系统服务不扫描这些物理磁盘。问题就应该出在这pve对磁盘的监控上了。

🛠️ 解决方案

方案1. 关掉pve状态监控(不推荐)

最简单粗爆的办法就是关掉pvestatd,关了之后pve后台所有状态都不会更新了。

pvestatd stop

方案2. 关掉sdc~sdg磁盘相关监控

1. 调整LVM过滤器

编辑 /etc/lvm/lvm.conf,在 devices部分添加filter规则:

# 备份原配置
cp /etc/lvm/lvm.conf /etc/lvm/lvm.conf.backup

# 编辑配置文件
vim /etc/lvm/lvm.conf

找到或添加以下内容:

devices {
    # 其他配置...
    filter = [ "a|/dev/sda|", "a|/dev/sdb|", "r|.*|" ]
    global_filter = [ "a|/dev/sda|", "a|/dev/sdb|", "r|.*|" ]
}

​解释​​:

  • a|/dev/sda|- 允许sda(你的系统盘)
  • a|/dev/sdb|- 允许sdb(你的系统盘)
  • r|.*|- 拒绝所有其他设备(包括sdc~sdg)

​应用配置​​:

# 更新initramfs
update-initramfs -u

# 重启LVM服务
systemctl restart lvm2-lvmetad.service

# 或者重启系统
reboot

2. 调整smartd监控

编辑 /etc/smartd.conf,为这些硬盘设置更长的检查间隔或禁用监控:

# 在文件末尾添加:忽略阵列磁盘的SMART温度变化属性更新,及休眠时不检查
/dev/sdc -I 194 -n standby,q
/dev/sdd -I 194 -n standby,q
/dev/sde -I 194 -n standby,q
/dev/sdf -I 194 -n standby,q
/dev/sdg -I 194 -n standby,q

# 或者完全忽略这些盘的smart监控
# DEVICESCAN -d ignore /dev/sd[c-g]

重启smartd服务:

systemctl restart smartd

3. 使用hdparm设置休眠超时

为每个物理磁盘设置休眠超时:

# 设置10分钟(120 * 5秒)后休眠
hdparm -S 120 /dev/sdc
hdparm -S 120 /dev/sdd
hdparm -S 120 /dev/sde
hdparm -S 120 /dev/sdf
hdparm -S 120 /dev/sdg

# 使设置永久生效,添加到/etc/rc.local
echo 'hdparm -S 120 /dev/sdc' >> /etc/rc.local
echo 'hdparm -S 120 /dev/sdd' >> /etc/rc.local
echo 'hdparm -S 120 /dev/sde' >> /etc/rc.local
echo 'hdparm -S 120 /dev/sdf' >> /etc/rc.local
echo 'hdparm -S 120 /dev/sdg' >> /etc/rc.local

🔧验证休眠状态

设置完成后,验证磁盘是否能够休眠:

# 检查磁盘状态(standby表示已休眠)
hdparm -C /dev/sdc
hdparm -C /dev/sdd
hdparm -C /dev/sde
hdparm -C /dev/sdf
hdparm -C /dev/sdg
# ...检查所有磁盘

# 监控磁盘活动
watch -n 1 'hdparm -C /dev/sd[c-g]'

看到硬盘的状态为休眠了,现在就等硬盘柜进入休眠省电状态了。

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区