コンテンツにスキップ

Runbook: SmartSwitch DPU image インストールが失敗する

実行前提

DPU image install は対象 DPU を完全に reboot する。SmartSwitch では DPU が data plane の一部を担うため、host NPU 側で affected ENI を migrate / drain してから実施すること。事前に show chassis modules > /tmp/chassis.before および sonic-db-cli CHASSIS_STATE_DB dump > /tmp/chassis.state を取得。失敗時は previous slot から sonic-installer set-default で戻す。

症状

  • sonic-installer install --dpu <DPU0> <image.bin> が exit code 非 0
  • DPUinstalling 状態で固まる
  • 再起動後 show chassis modulesDPU が DOWN

想定原因(優先度順)

  1. image の DPU platform 不一致: NPU 用 image を DPU に流した
  2. 空き flash 不足: DPU の SSD 使用率 90%+
  3. PCIe / chassisd 通信失敗: DPU 側 control plane に届かない
  4. DPU が graceful shutdown できていない

切り分け手順

flowchart TD
    A[DPU イメージ install が失敗] --> B{"image 配布 (rsync/http) 成功?"}
    B -- No --> B1["NPU-DPU 間ストレージ / 経路確認"]
    B -- Yes --> C{image checksum 一致?}
    C -- No --> C1[image を再配布]
    C -- Yes --> D{DPU 側 installer 動作?}
    D -- No --> D1["DPU console / boot log を確認"]
    D -- Yes --> E["install 後の reboot / 起動失敗ログを調査"]

確認コマンド

1. DPU 状態

show chassis modules
sonic-db-cli CHASSIS_STATE_DB hgetall "CHASSIS_MODULE_TABLE|DPU0"

2. image 互換性

sudo file <image.bin>
sonic-installer list

3. chassisd ログ

docker logs chassisd 2>&1 | grep -iE "DPU0|install" | tail -50

4. DPU 側 disk

sudo dpuctl exec DPU0 df -h /

対処方法

  • 正しい DPU 向け image を再取得
  • DPU 上の不要 image 削除: sudo dpuctl exec DPU0 sonic-installer cleanup -y
  • chassisd 再起動: sudo systemctl restart chassisd
  • 強制 reboot DPU: sudo config chassis modules startup DPU0

関連ページ

引用元

本ページの根拠は引用元 12 を参照。


  1. sonic-net/sonic-platform-daemons @ 4305596 — chassisd 

  2. sonic-net/sonic-utilities @ 39732bceb — sonic-installer