裏取りステータス: code-verified
storagemond の現行 master 実装、CLI 名・テーブル名の正確な値は未確認(ssdhealth 系の既存実装と類似)。
Verifier 注記(2026-05-10)
実コード裏取り: sonic-platform-daemons/sonic-stormond/scripts/stormond に storage monitoring daemon 実装を確認(注: ディレクトリ名は sonic-stormond、daemon 名は stormond)。HLD 記述の storagemond は実装上 stormond として現行 master に取り込まれている。
storagemond(SSD / eMMC の health 監視)¶
概要¶
storagemond は SSD / eMMC など内部ストレージの health / wear-out を定期監視し、STATE_DB に publish する pmon 系 daemon1。狙いは:
- vendor 別ツール(
smartctl、mmc-utils等)の出力を SONiC 共通スキーマに正規化 - write amplification、reserved blocks、temperature、life-remaining を読みやすい形にする
- critical 閾値超えを system health monitor に通知
動作仕様¶
flowchart LR
SD["storagemond\n(daemon loop)"] --> PLUG["platform plugin\n(SsdUtil / 該当 vendor 実装)"]
PLUG -->|"smartctl / mmc-utils"| DEV[("SSD / eMMC")]
SD --> STATE[STATE_DB\nSTORAGE_INFO]
SD --> SYS["syslog / system health monitor"]
SHOW[show platform storage] --> STATE
- device 名, model, serial, firmware revision
- temperature
- wear leveling / SSD life remaining(%)
- total written / read bytes
- reserved blocks, uncorrectable errors
- device health overall (
OK/WARN/CRITICAL)
関連 STATE_DB¶
| Table | Key | 説明 |
|---|---|---|
STORAGE_INFO |
<device> |
model / firmware / health / wear / temp |
関連 CLI¶
| Command | 用途 |
|---|---|
show platform ssdhealth |
既存 SSD ヘルス CLI |
show platform storage |
storagemond 由来の正規化情報 |
制限事項¶
- vendor plugin が無いと値が取れない: SsdUtil 互換の plugin がない platform は健康度を出せない
- smartctl / mmc-utils の権限: 多くの場合 root 権限と raw block device access が必要
- 頻度: 過頻度のポーリングは I/O latency に影響、通常は 1 〜 5 分間隔
- eMMC の SMART は限定的: SSD と同等の値は取れない場合がある
干渉する機能¶
- show techsupport:
STORAGE_INFOを含めて収集 - system health monitor: critical 値を集約して全体 health に反映
- secure-upgrade: device に書き込む際に health を考慮するシナリオ
- ssdhealth-design: 旧来の SSD health 機能と置き換え or 統合の関係(同 architecture area)
トラブルシューティング¶
STORAGE_INFOが空 → storagemond プロセスの存在、plugin 実装、smartctl等のバイナリインストール状態- 値が古い → daemon ループ周期、I/O 負荷、device の応答時間
- critical 通知が来ない → system health monitor の subscribe 経路を確認
# storagemond と STORAGE_INFO の状態確認
docker exec pmon supervisorctl status storagemond
sonic-db-cli STATE_DB keys "STORAGE_INFO|*"
sonic-db-cli STATE_DB hgetall "STORAGE_INFO|sda"
docker exec pmon which smartctl
関連リファレンス¶
- CLI: show platform / show system-health / show techsupport
- 関連 HLD: System Health Monitor / analysis of disk writers / pcieinfo design / PSU daemon
引用元¶
実装フェーズ境界¶
本ページは monitor: partially_implemented のため、HLD 記載どおり master に取り込み済 (実装済) の範囲と、現行 master との差分が未確認 (未実装相当) の範囲を Phase 別に切り分けて示す。詳細は本文・[実装との乖離 / 補足] 節および各引用元 HLD を参照。
| Phase | 実装済 | 未実装 |
|---|---|---|
| Phase 1: storagemond daemon 基盤 | HLD 記載どおり実装済 | — |
| Phase 2: CLI / STATE_DB テーブル名 | コア部分は実装済 | CLI 名・テーブル名の正確な値は現行 master と差分の可能性、未確認・未実装相当 |
| Phase 3: 追加センサ(NVMe SMART 等) | — | 拡張センサ取り込みは未実装 |
実装との乖離 / 補足¶
- 裏取りステータスを
code-verifiedからdiscrepancy-found(monitor: partially_implemented)に降格 (2026-05-13)。storagemond の現行 master 実装、CLI 名・テーブル名の正確な値は本文で「未確認」と明示している。 - 本文に残る「未確認 / 要確認 / 要追跡 / TBD」等の hedge 表現は HLD と実装の差分が未特定であることを示し、後続の裏取り対象。