PVE 唤醒源

blkid
pvestatd
smartd
HA

配置pvestatd

配置 /etc/lvm/lvm.conf 可以告诉LVM哪些设备是可见的,这样可以明确地排除目标硬盘。

# /etc/lvm/lvm.conf

# ... 其他配置 ...

devices {
    # ... 其他 devices 配置 ...

    # 这是推荐的配置方式
    global_filter=["r|/dev/zd.*|","r|/dev/rbd.*|","r|/dev/disk/by-id/ata.*|","r|/dev/sd.*|"]
}

配置smartd

smartd 自检计划

编辑配置文件 /etc/smartd.conf

# 自动遍历所有盘
DEVICESCAN -d removable -n standby -m root -M exec /usr/share/smartmontools/smartd-runner

# 自动扫描,但无视 sdb
DEVICESCAN -ignore sdb -d removable -n standby -m root -M exec /usr/share/smartmontools/smartd-runner

或者单独监控某盘

# 监控NVMe系统盘 /dev/nvme0n1
# -d nvme: 明确指定设备类型为NVMe
# -a: 启用所有推荐的默认监控项目 (健康状况, 预警, 使用率等)
# -W 5,68,75: 监控温度。当温度变化超过5°C时记录日志;超过68°C时产生警告信息;超过75°C时产生严重警报。
# -m root -M exec ...: 保留您原来的警报机制
/dev/nvme0n1 -d nvme -a -W 5,68,75 -m root -M exec /usr/share/smartmontools/smartd-runner

smartd 检查频率

默认情况下,smartd 每 30 分钟(1800 秒)检查一次磁盘健康状况。
编辑配置文件 /etc/default/smartmontools
找到 smartd_opts 这一行
smartd_opts="--interval=10800"

smartd 命令

systemctl status smartd      # 查看服务状态,确认参数
systemctl restart smartd     # 重启
systemctl stop smartd        # 停止(若存在)
systemctl disable smartd     # 禁用开机启动
systemctl mask smartd        # mask,防止被其他 unit 启动

配置 HA (潜在唤醒源)

# 在 PVE Host 上执行
systemctl stop pve-ha-lrm.service
systemctl disable pve-ha-lrm.service
systemctl stop pve-ha-crm.service
systemctl disable pve-ha-crm.service

配置 hdparm

hdparm 命令

  1. APM (高级电源管理)
    命令: hdparm -B [1-255] /dev/sdX

参数区间:
1-127:允许休眠(Spin-down),数值越小越激进。
128-254:不允许休眠,性能优先。
255:完全禁用 APM。

  1. Spindown (自动休眠倒计时)
    命令: hdparm -S [数值] /dev/sdX

换算规则:
1 - 240:数值 × 5 秒(例如 12 代表 1 分钟)。
241 - 251:(数值 - 240) × 30 分钟(例如 242 代表 1 小时)。
查询: 该数值写入后无法通过命令读回,只能通过监控状态验证。

配置永久生效

编辑配置文件 /etc/hdparm.conf
加入要休眠的盘

/dev/disk/by-id/ata-[硬盘ID] {
        apm = 127
        spindown_time = 246
}

自用脚本

Last modification:June 7, 2026
If you think my article is useful to you, please feel free to appreciate