Runbook: show platform fan / psu で異常値が出る¶
実行前提
fan / PSU の物理交換は装置の冷却 / 給電に直結する。fan 1 つ抜くだけで熱暴走→自動 reboot のリスク。現地作業者と必ず手順合意し、片肺運転中は予備が確実に冗長化されている事を show platform psustatus で確認してから抜くこと。物理交換以外の対処は thermalctld restart 程度で限定的。
症状¶
show platform fanでSTATUS not OK/ RPM 0show platform psustatusでVoltage/Power異常- 自動 thermal shutdown でリブートする
想定原因(優先度順)¶
- fan / PSU の物理故障
- sensor の i2c 通信エラー: smbus に他デバイスが詰まる
- thermalctld の bug / panic
- platform API plugin の値変換ミス
切り分け手順¶
flowchart TD
A["fan/PSU の異常検知"] --> B{pmon container 健康?}
B -- No --> B1["pmon 再起動 / ログ確認"]
B -- Yes --> C{"STATE_DB FAN_INFO/PSU_INFO 取得可?"}
C -- No --> C1["platform plugin (sonic_platform) を確認"]
C -- Yes --> D{物理的に異常?}
D -- Yes --> D1["ハードウェア交換 / SP/BMC ログ"]
D -- No --> E[thermalctld ログを精査]
確認コマンド¶
1. STATE_DB / sensor¶
show platform fan
show platform psustatus
show platform temperature
sonic-db-cli STATE_DB keys "FAN_INFO|*"
sonic-db-cli STATE_DB keys "PSU_INFO|*"
2. thermalctld ログ¶
3. i2c bus¶
4. platform plugin¶
sudo python3 -c "from sonic_platform.chassis import Chassis; c=Chassis(); [print(f.get_name(), f.get_speed(), f.get_status()) for f in c.get_all_fans()]"
対処方法¶
- 物理交換(現地作業)
- thermalctld 再起動:
sudo systemctl restart thermalctld - i2c reset(ベンダー依存)
- 一時的に thermal policy を緩める(自動 shutdown を遅らせる)