> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sambanova.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# ラック管理

本ガイドでは、SambaRack Manager を使用したラックおよびラック内デバイスの追加、表示、エクスポート、管理について説明します。新規インストール時の作業と、その後の継続的な管理作業の両方を扱います。

セットアップの全体の流れは次のとおりです。

1. SambaRack Manager ソフトウェアのインストール
2. 初期セットアップと動作確認
3. **SambaRack Manager インベントリへの SambaRack の追加** (このページ)
4. SambaRack Manager でのデバイス認証情報の設定

## 主要な概念

まず本セクションに一度目を通してください。以降の内容はすべて、次の 4 つの前提に基づいています。

### ラック ID

<Note>
  **ラック ID は必ず 001〜4096 の数値にする必要があります。**
</Note>

### 部品番号

部品番号 (part number) によって、ラックの追加時にどのコンポーネントが自動生成されるかが決まります。

| 部品番号 | 構成 |
| :- | :- |
| `1001934` | PDU 4 台構成の SambaRack SN40L-16 |
| `1002331` | PDU 2 台構成の SambaRack SN40L-16 |

<Note>
  設置済みの SambaRack の部品番号を特定するには、SambaNova サポートポータルの該当するナレッジベース記事をご参照ください。
</Note>

### デバイスタイプ

**ラックレベル:**

| タイプ | 説明 |
| - | - |
| `access_switch` | アクセススイッチ |
| `data_switch` | データスイッチ |
| `pdu` | 電源分配ユニット (Power Distribution Unit; PDU) |
| `serial_terminal` | シリアルコンソールサーバー (SCS) |

**ノードレベル:**

| タイプ | 説明 |
| - | - |
| `host` | ホストモジュール |
| `bmc` | ベースボード管理コントローラー (Baseboard Management Controller; BMC) |
| `xrdu` | 2 基の Reconfigurable Data Unit™ (RDU) を搭載したアクセラレーターモジュール |

ノード自体は、部品番号から自動的に生成されます。ノードを追加する独立したコマンドはありません。

### デバイスパスとインデックス

単一のデバイスを操作するコマンドはパスを受け取ります。パスの末尾にインデックスが付くかどうかは、デバイスタイプによって異なります。

| デバイスタイプ | スロット型? | インデックス範囲 | パス形式 | 例 |
| - | - | - | - | - |
| `pdu` | はい | **1〜4** (1 始まり) | `Rack/<rack_id>/<type>/<index>` | `Rack/001/pdu/1` |
| `access_switch`, `data_switch`, `serial_terminal` | はい | **0 以上** (0 始まり) | `Rack/<rack_id>/<type>/<index>` | `Rack/001/data_switch/0` |
| `xrdu` | はい | **0〜7** (0 始まり) | `Rack/<rack_id>/Node/<node_index>/<type>/<index>` | `Rack/001/Node/0/xrdu/1` |
| `host`, `bmc` | **いいえ** | — | `Rack/<rack_id>/Node/<node_index>/<type>` | `Rack/001/Node/0/bmc` |

PDU は 1 から、それ以外はすべて 0 から始まります。これはハードウェアの物理的なラベル表記と一致しています。

## インベントリへの登録

<Note>
  ラックをインベントリに追加する前に、ラックの電源が入っており、完全に動作している必要があります。
</Note>

次の 2 つの方法のいずれかを選択します。

| 方法 | ラックあたりの作業量 | 対応規模 | 適したケース |
| - | - | - | - |
| [**ファイルからのインポート**](#オプション-1-ファイルからのインポート-推奨) *(推奨)* | 1 コマンド | 単一ラックから複数ラック・一括インベントリまで | あらゆる規模 — 1 ラックからフリート全体まで。[インベントリファイルスキーマ](/docs/ja/sambastack/hardware-admin/sambarack-manager/srm-inventory-file-schema) を参考にファイルを生成します |
| [**手動での追加**](#オプション-2-手動での追加) | 約 18 コマンド | 1〜2 ラックのみ | カスタマイズが必要な小規模で単発のセットアップ。フェイルセーフの代替手段としても機能します |

SN40L-16 ラック 1 台では約 17 台のデバイスが生成されることになり、それぞれに個別の `rack add-device` 呼び出しが必要になります。そのため、ファイルがある場合は常にインポートの方法を優先してください。

### オプション 1: ファイルからのインポート (推奨)

```bash theme={}
snctl rack import <file> [flags]
```

ファイルは、JSON または YAML 形式の `snctl` ネイティブのインベントリです。ラックのみ、グループのみ、またはその両方の一部を含むことができ、[`rack export`](#ラックのエクスポート) で生成したファイルも使用できます。標準入力から読み込むには `-` を渡します。

ファイル形式については [インベントリファイルスキーマ](/docs/ja/sambastack/hardware-admin/sambarack-manager/srm-inventory-file-schema) をご参照ください。

**フラグ:**

| フラグ | 説明 |
| - | - |
| `--dry-run` | インベントリを変更せずに、変更内容をプレビューする |
| `--overwrite` | 既存のラックとグループを置き換える。指定しない場合、既存のエントリはスキップされ、その旨が報告されます。 |

<Note>
  **必ず最初に `--dry-run` 付きで実行してください**。どのラックが追加・更新・スキップされるか、また何件の認証情報がインポートされるかを、何も書き込まずに正確に報告します。
</Note>

```powershell theme={}
# Preview
snctl rack import racks.json --dry-run

#Expected Output
✓ [dry-run] Rack XXX added
[dry-run]   nodes added: <Node Name>

# Import
snctl rack import racks.json

#Expected Output
✓ Rack XXX added
  nodes added: <Node Name>

#Verify if import commands worked
snctl rack list
Rack ID  Part Number  Nodes  PDUs  XRDUs  Acc Switch  Data Switch  SCS
-------  -----------  -----  ----  -----  ----------  -----------  ---
001      1001934      1      4     8      1           1            1
002      1001934      1      4     8      1           1            1

# Replace racks and groups that already exist
snctl rack import racks.json --overwrite
```

ラックがすでに存在し、`--overwrite` が指定されていない場合:

```text theme={}
⚠ Rack 001 skipped (already exists; use --overwrite to replace)
```

### オプション 2: 手動での追加

#### ステップ 1: ラックの追加

```bash theme={}
snctl rack add <rack_id> --partnumber <partnumber>
```

| パラメータ | 説明 |
| - | - |
| `<rack_id>` | ラックの数値 ID (例: `001`) |
| `--partnumber` | 設置済みの SambaRack の部品番号 — **必須** |

```bash theme={}
snctl rack add 001 --partnumber 1001934

#Expected output
✓ Rack 001 (1001934) added
```

これにより、部品番号に基づいてラックの完全なコンポーネントレイアウト (ノード、PDU、ノードごとの XRDU、アクセススイッチ、データスイッチ、シリアルターミナル) が自動生成されます。

**自動生成されたデバイスには、プレースホルダの接続情報が設定されています**。ステップ 2 で実際の値を登録してください。

#### ステップ 2: 各デバイスの接続情報の登録

```bash theme={}
snctl rack add-device <device_path> \
  --ip <ip_address> \
  --user <username> \
  --hostname <hostname> \
  [--port <port>]
```

| パラメータ | 説明 |
| - | - |
| `<device_path>` | デバイスへのパス — [デバイスパスとインデックス](#デバイスパスとインデックス) をご参照ください |
| `--ip` | デバイスの IP アドレス (任意) |
| `--user` | デバイスのユーザー名 (任意) |
| `--hostname` | デバイスのホスト名 (任意) |
| `--port` | 接続ポート (任意)。新規デバイスの追加時に省略すると未設定のままになり、更新時に省略すると現在の値が維持されます。 |

<Note>
  すべてのフィールドが任意のため、複数回の呼び出しに分けて段階的にデバイスを設定できます。フィールドを省略すると、現在の値が維持されます。ただし、最終的にデバイスにはアドレスが必要です。`--ip` または `--hostname` の少なくとも一方を指定してください。
</Note>

<Info>
  各デバイスタイプのデバイス IP 情報と認証情報は、SambaNova からお客様に共有されます。以下のパラメータ値については、その資料をご参照ください。
</Info>

```bash theme={}
# Node-level, non-slotted (host, bmc)
snctl rack add-device Rack/001/Node/0/host --ip <host-ip> --user root  --hostname SFT-SN40L-16-H-1
snctl rack add-device Rack/001/Node/0/bmc  --ip <bmc-ip>  --user admin --hostname SN40L-16-H-1-SP

# Node-level, slotted (xrdu, index 0–7)
snctl rack add-device Rack/001/Node/0/xrdu/0 --ip <xrdu0-ip> --user root --hostname SN40L-16-H-1-XRDU0

# Rack-level, slotted (pdu, index 1–4)
snctl rack add-device Rack/001/pdu/1 --ip <pdu1-ip> --user admin --hostname SN40L-16-PDU1 --port 3003
```

デバイスごとの期待される出力:

```text theme={}
✓ Device host added/updated in rack 001
Password set to placeholder. Use 'snctl secret set --device-type host' to store credentials.
```

### 次のステップ

[デバイス認証情報](/docs/ja/sambastack/hardware-admin/sambarack-manager/srm-device-credentials) を設定します。

デバイスを追加するとプレースホルダのパスワードが保存されるため、そのデバイスに対して操作を実行する前に、`snctl secret set` で各デバイスタイプの実際の認証情報を設定してください。

`rack import` を使用し、ソースファイルに実際のパスワードが含まれていた場合、それらは暗号化された認証情報ストアにインポートされるため、改めて設定する必要はありません。[インベントリファイルスキーマ](/docs/ja/sambastack/hardware-admin/sambarack-manager/srm-inventory-file-schema) にはパスワードフィールドがないため、ほとんどのインポートファイルには代わりにプレースホルダが記載されています。いずれの場合も、`snctl secret get --device-type bmc` で確認してください。

***

## インベントリの表示

### ラックの一覧表示

```bash theme={}
snctl rack list
```

```powershell theme={}
Rack ID  Part Number  Nodes  PDUs  XRDUs  Acc Switch  Data Switch  SCS
-------  -----------  -----  ----  -----  ----------  -----------  ---
001      1001934      1      4     8      1           1            1
002      1002331      1      2     8      1           1            1
```

**`snctl rack list -o wide`** を使用すると、人間が読みやすい形式のラックモデル名を示す **Type** 列が追加されます。

```powershell theme={}
Rack ID  Part Number  Nodes  PDUs  XRDUs  Acc Switch  Data Switch  SCS  Type
-------  -----------  -----  ----  -----  ----------  -----------  ---  --------
001      1001934      1      4     8      1           1            1    SN40L-16
```

機械可読な出力には **`snctl rack list -o json`** を使用します。

```json theme={}
[
  {
    "rack_id": "001",
    "part_number": "1001934",
    "type": "SN40L-16",
    "nodes": 1,
    "pdus": 4,
    "xrdus": 8,
    "access_switches": 1,
    "data_switches": 1,
    "scs": 1
  }
]
```

### ラック詳細の表示

```bash theme={}
snctl rack show <rack_id>
```

```powershell theme={}
Rack 001 (Part Number: 1001934, Type: SN40L-16)
Component                   Hostname            IP            Port  Username
--------------------------  ------------------  ------------  ----  --------
Rack/001/serial_terminal/0  SN40L-16-SCS        172.19.11.61        sysadmin
Rack/001/access_switch/0    SN40L-16-ASW0       172.19.11.60        admin
Rack/001/data_switch/0      SN40L-16-DSW0       172.19.11.59        admin
Rack/001/pdu/1              SN40L-16-PDU1       172.19.11.55        admin
Rack/001/pdu/2              SN40L-16-PDU2       172.19.11.56        admin
Rack/001/pdu/3              SN40L-16-PDU3       172.19.11.57        admin
Rack/001/pdu/4              SN40L-16-PDU4       172.19.11.58        admin
Rack/001/Node/0/host        SFT-SN40L-16-H-1    172.19.11.45        root
Rack/001/Node/0/bmc         SN40L-16-H-1-SP     172.19.11.46        admin
Rack/001/Node/0/xrdu/0      SN40L-16-H-1-XRDU0  172.19.11.47        root
...
Rack/001/Node/0/xrdu/7      SN40L-16-H-1-XRDU7  172.19.11.54        root
```

インポートや一連の `add-device` 呼び出しの結果が想定どおりの値になっているかを確認するために使用してください。

| バリアント | 追加される内容 |
| - | - |
| `-o wide` | 各ノードレベルデバイスがどのノードに属するかを示す **Node** 列 |
| `-o json` | `rack_id`、`part_number`、`type`、および `devices` 配列を含む構造化出力 — 各エントリには `component`、`hostname`、`ip`、`username` が含まれ、ノードレベルデバイスには `node_name` も含まれます |

**例 – 各デバイスが属するノードの表示:**

```bash theme={}
snctl rack show 001 -o wide
```

```powershell theme={}
Rack 001 (Part Number: 1001934, Type: SN40L-16)
Component                   Node             Hostname            IP            Port  Username
--------------------------  ---------------  ------------------  ------------  ----  --------
Rack/001/serial_terminal/0                   SN40L-16-SCS        172.19.11.61        sysadmin
Rack/001/access_switch/0                     SN40L-16-ASW0       172.19.11.60        admin
Rack/001/pdu/1                               SN40L-16-PDU1       172.19.11.55        admin
Rack/001/Node/0/host        sn40l-16-001-n1  SFT-SN40L-16-H-1    172.19.11.45        root
Rack/001/Node/0/bmc         sn40l-16-001-n1  SN40L-16-H-1-SP     172.19.11.46        admin
Rack/001/Node/0/xrdu/0      sn40l-16-001-n1  SN40L-16-H-1-XRDU0  172.19.11.47        root
```

**Node** 列には、`snctl node` および `snctl power` コマンドに渡すノード名が表示されます。ラックレベルのデバイス (PDU、スイッチ、シリアルターミナル) では空欄になります。

***

## インベントリの維持管理

### ラックのエクスポート

バックアップ、共有、レビューのために、ラックをファイルまたは標準出力にエクスポートします。

```bash theme={}
snctl rack export [rack_id...] [flags]
```

ラック ID を指定しない場合、すべてのラックがエクスポートされます。

<Note>
  **パスワードは常にプレースホルダ** (`${BMC_SECRET}`、`${PDU_SECRET}` など) **に置き換えられる**ため、エクスポートファイルは安全に共有できます。
</Note>

| フラグ | 説明 |
| - | - |
| `--file <path>` | 出力ファイルのパス (デフォルト: 標準出力) |
| `-o, --output <format>` | `json` または `yaml`。`--file` の拡張子から推測されます。標準出力への書き込み時のデフォルトは `json` です。 |

```bash theme={}
# All racks to stdout as JSON
snctl rack export

# Specific racks to a YAML file
snctl rack export 001 002 --file racks.yaml

# As YAML to stdout
snctl rack export --output yaml

# A single rack to a JSON file
snctl rack export 001 --file rack-001.json
```

```text theme={}
✓ 1 rack(s) exported to rack-001.json
```

エクスポートされたファイルには、ラックの完全な構造 (シリアルターミナル、スイッチ、PDU、およびホスト・BMC・XRDU コンポーネントを含むノード) と、パスワードを除くすべての接続情報が含まれます。

### デバイスの削除

```bash theme={}
snctl rack delete-device <target_id> \
  --device-type <device_type> \
  [--index <index>]
```

| パラメータ | 説明 |
| - | - |
| `<target_id>` | ラック ID またはノード名 |
| `--device-type` | 削除するデバイスのタイプ — [デバイスタイプ](#デバイスタイプ) をご参照ください |
| `--index` | デバイスのインデックス — スロット型のタイプでは必須、`host` と `bmc` では省略します。[デバイスパスとインデックス](#デバイスパスとインデックス) をご参照ください。 |

```bash theme={}
# Remove a PDU (1-indexed)
snctl rack delete-device 001 --device-type pdu --index 1

# Remove an XRDU (0-indexed)
snctl rack delete-device 001 --device-type xrdu --index 0

# Remove a non-slotted device
snctl rack delete-device 001 --device-type bmc
```

### ラックの削除

SambaRack と、それに関連付けられたすべての SN40L ノードをインベントリから削除します。

```bash theme={}
snctl rack delete <rack_id>
```

<Warning>
  この操作はローカルのインベントリにのみ影響します。物理ハードウェアの電源を切ったり変更を加えたりすることはなく、SambaStack クラスターからラックが削除されることもありません。誤って削除した場合は、`snctl rack add <rack_id> --partnumber <part>` で再登録してください。
</Warning>

```bash theme={}
snctl rack delete 002

#Expected output
✓ Rack 002 deleted
```

`snctl rack list` で確認してください。

***

## 次のステップ

[デバイス認証情報](srm-device-credentials) を設定してください。
