手上想看的訊息之一是硬碟健康狀況,S.M.A.R.T. (Self-Monitoring, Analysis, and Reporting Technology);在 Windows 環境下現多數使用免費工具 CrystalDiskInfo 來檢視其數據。而 Linux 環境大多使用 smartmontools ,大多數版本的 Linux 都已有現成套件可安裝。
apt update && apt install smartmontools
其中包含了 smartctl 和 smartd
已有特別打包 PVE 版本的 smartmontools ,在安裝 PVE 時就跟著裝好了。
文件也特別有一篇 https://pve.proxmox.com/wiki/Disk_Health_Email_Alerts
~# dpkg -l | grep smartmontools
ii smartmontools 7.3-pve1 amd64 control and monitor storage systems using S.M.A.R.T.
對 NVMe SSD 則有看到建議安裝 nvme-cli
~# dpkg -l | grep nvme
ii libnvme1 1.3-1 amd64 NVMe management library (library)
ii nvme-cli 2.4+really2.3-3 amd64 NVMe management tool
基本款
~# smartctl -a /dev/sda
用在手上的外接硬碟則是出現提示:
而 PVE 網頁介面,在 DISKs
-> 點單顆硬碟 -> Show S.M.A.R.T. Values
則是顯示 Error getting S.M.A.R.T. data: Exit code: 1 (500)
查了查 smartmontools 有個各USB晶片支援回報表
https://www.smartmontools.org/wiki/Supported_USB-Devices_idVendor-0x1000
就連 Proxmox wiki 也提醒
嘗試出指令
~# smartctl -a -d sat /dev/sdf
過去遇過某市佔率高的 RAID / HBA 卡會是這樣的 syntax
~# smartctl -a -d megaraid,0 /dev/sdx
smartmontools
有用 service 形式跑
設定檔放在 /etc/smartd.conf
確認一下有在跑
~# systemctl status smartd.service
● smartmontools.service - Self Monitoring and Reporting Technology (SMART) Daemon
Loaded: loaded (/lib/systemd/system/smartmontools.service; enabled; preset: enabled)
Active: active (running) since Tue 2024-10-01 1X:45:45 CST; 40min ago
Docs: man:smartd(8)
man:smartd.conf(5)
Main PID: 830 (smartd)
Status: "Next check of 2 devices will start at 1X:45:45"
Tasks: 1 (limit: 18852)
Memory: 2.2M
CPU: 31ms
CGroup: /system.slice/smartmontools.service
└─830 /usr/sbin/smartd -n -q never
~# systemctl status smartmontools.service
● smartmontools.service - Self Monitoring and Reporting Technology (SMART) Daemon
Loaded: loaded (/lib/systemd/system/smartmontools.service; enabled; preset: enabled)
Active: active (running) since Tue 2024-10-01 1X:45:45 CST; 39min ago
Docs: man:smartd(8)
man:smartd.conf(5)
Main PID: 830 (smartd)
Status: "Next check of 2 devices will start at 1X:45:45"
Tasks: 1 (limit: 18852)
Memory: 2.2M
CPU: 31ms
CGroup: /system.slice/smartmontools.service
└─830 /usr/sbin/smartd -n -q never
把 想盯的磁碟代號寫進 /etc/smartd.conf
/dev/sdb -a -d sat
/dev/sdc -a -d sat
( 寫在 DEVICESCAN...
那行之後無效)
以手上的情況,外接盒如果是在作業系統開機之後才接上外接硬碟,就重跑 service 重抓硬碟(這流程不太好)。
systemctl restart smartd
或是
smartd -q onecheck
Debian12 可以用 journalctl -e | grep smartd
看看
197 Current_Pending_Sector
要面對了…https://pve.proxmox.com/wiki/Disk_Health_Email_Alerts