SmartSwitch HA HAMgrD 概念¶
このページは HAMgrD(概要ハブ) の派生ページで、概念と用語(actor / vDPU / HA Set / HA Scope) に絞って整理する。設定経路は smartswitch-high-availability-manager-daemon-hamgrd-design-operations.md、内部実装は smartswitch-high-availability-manager-daemon-hamgrd-design-internals.md、制限事項と乖離は smartswitch-high-availability-manager-daemon-hamgrd-design-limitations.md を参照。
1. HAMgrD とは¶
hamgrd は SmartSwitch の NPU 側 HA container 内で動く管理デーモン1。HA 状態機械の駆動、failover 調整、SDN controller config の DPU 配信、DPU/vDPU の health 集約、BFD responder プログラミングを担う。actor model で機能を分割し、各 actor は swbus ローカルメッセージバス で通信し state は STATE_DB の対応 table に書く。
動作モードは 2 種類:
- DPU-Driven mode: DPU 側で HA 状態機械を駆動。HAMgrD は config 配信と監視に徹する。本 HLD はこちら中心
- Switch-Driven mode: NPU が能動的に HA 状態機械を駆動。HLD では TBD1
2. vDPU 抽象¶
vDPU は将来的に複数 DPU で 1 仮想 DPU を構成する拡張余地のため導入された抽象1。現在は通常 1:1 だが状態管理を vDPU 単位に統一する。HA Set は vDPU の集合として定義され、物理 DPU はその下位に register される。
3. Actor とテーブル対応¶
| Actor | resource path | CONFIG_DB | STATE_DB |
|---|---|---|---|
| Global Config | ha-global/config |
DASH_HA_GLOBAL_CONFIG_TABLE |
DASH_HA_GLOBAL_CONFIG_STATE |
| DPU | dpu/<dpu-id> |
DPU:<dpu-id> |
DASH_HA_DPU_STATE:<dpu-id> |
| vDPU | vdpu/<vdpu-id> |
VDPU:<vdpu-id> |
DASH_HA_VDPU_STATE:<vdpu-id> |
| HA Set | ha-set/<id> |
DASH_HA_SET_CONFIG_TABLE:<id> |
DASH_HA_SET_STATE:<id> |
| HA Scope | ha-scope/<id> |
DASH_HA_SCOPE_CONFIG_TABLE:<id> |
DASH_HA_SCOPE_STATE:<id> |
4. DPU と vDPU の階層関係¶
flowchart TB
subgraph Phys
D1[DPU1]:::a
D2[DPU2]:::a
D3[DPU3]:::a
D4[DPU4]:::a
end
subgraph Virt
V1[vDPU1]
V2[vDPU2]
end
subgraph HA
H1[HA Set1]
H2[HA Set2]
end
V1 -->|register| D1
V1 -->|register| D2
V2 -->|register| D3
V2 -->|register| D4
D1 --> V1
D2 --> V1
D3 --> V2
D4 --> V2
V1 --> H1
V2 --> H2
vDPU actor が物理 DPU actor に register、DPU actor が状態変化を vDPU に転送、vDPU が aggregate して HA Set に通知する 3 段構成1。
HLD と実装の差分
schema 層(HA Set / HA Scope の APP/CFG/STATE table 名)は一部のみ先行採用済み(部分実装)。一方で hamgrd バイナリは community master に未取り込み(grep -ri hamgrd .cache/sonic-sources/sonic-swss/ でコメントのみヒット)。actor framework / vDPU 抽象 / swbus も実装されていない。本ページの概念記述は HLD v0.1 (2025-02) を元にした 将来仕様の参考 であり、現行 community master で「動かす」ことは不可能。詳細は smartswitch-high-availability-manager-daemon-hamgrd-design-limitations.md を参照。
関連ページ¶
- HAMgrD(概要ハブ)
- smartswitch-high-availability-manager-daemon-hamgrd-design-operations.md — CONFIG/APP/STATE_DB スキーマ
- smartswitch-high-availability-manager-daemon-hamgrd-design-internals.md — actor workflow / DPU-Driven 詳細
- smartswitch-high-availability-manager-daemon-hamgrd-design-limitations.md — 制限事項と実装乖離
実装フェーズ境界¶
Phase 別の実装済 / 未実装 サマリ
本ページは monitor: partially_implemented で、HLD で示された一連の機能
が 段階的に取り込まれている 状態を扱う。フェーズ毎の実装境界を
1 枚の表に集約する (詳細は本ページ上部の diff admonition および
discrepancy-index を参照)。
| Phase | 範囲 (機能 / 段階) | 実装済 (master 取り込み済) | 未実装 (HLD 提案のみ) |
|---|---|---|---|
| Phase 1 — 基本機能 | HLD §概要 / §設計の中核ユースケース | 取り込み済 — 本ページの「実装の概観」「実装詳細」節および diff admonition の現状側を参照 |
— (Phase 1 は実装済) |
| Phase 2 — 拡張機能 | HLD §拡張 / §追加要件 / §周辺統合 | 一部のみ取り込み済 — 本ページ「実装詳細」の補足参照 | 未実装 / 未マージ — HLD §未対応箇所、本ページ「制限事項」および diff admonition の差分側に列挙 |
| Phase 3 — 将来拡張 | HLD §Future Work / §将来課題 | — | 未実装 — HLD 提案段階。対応 PR は確認されていない (last_verified 時点) |
凡例: 「実装済」=現行 master で動作確認できる範囲 / 「未実装」=HLD には記載があるが対応 PR が未マージまたは設計のみで code が存在しない範囲。
引用元¶
このページを読んだ後の次アクション¶
読み手向け
- 本機能を実運用で使う場合: 実装が無いため、本機能に依存した運用は不可。代替機能 (下記リンク) で要件を満たせるか検討する
- upstream 動向を追う場合: 関連 issue / PR を sonic-net/SONiC で検索(HLD タイトル / CONFIG_DB テーブル名 / Orch クラス名で grep するのが速い)
- 代替手段 / 関連 reference: 本ページの frontmatter
relatedが空のため、Reference 索引 から関連テーブル / CLI / YANG を辿る
本ドキュメントの追跡
- monitor:
not_implemented/ last_verified:2026-05-11 - 次回再裏取りトリガ: quarterly。一覧は discrepancy-index を参照(運用詳細は repo の
meta/discrepancy-operations.md)