Add: ネットワーク構成の詳細解説(クラスター通信とAPI公開の分離)

This commit is contained in:
koide 2026-02-19 01:26:22 +00:00
parent e0e2ef2e69
commit 30761d2e4f

View File

@ -50,12 +50,95 @@ MiniMax-M2.5は、中国MiniMax社が開発したコーディング・エージ
詳細な手順は公式ドキュメントを参照してください:
👉 [Connect two Sparks](https://build.nvidia.com/spark/connect-two-sparks)
### 確認事項
### ネットワーク構成の理解(重要)
- QSFPケーブルによる物理接続
- ネットワークインターフェース設定自動または手動IP割当
- パスワードなしSSHの設定
- ネットワーク疎通確認
DGX Sparkデュアル構成では、**2種類のネットワーク**を使い分けます。公式ドキュメントではこの点が分かりにくいため、詳しく解説します。
```
┌─────────────────────┐ QSFP (200GbE) ┌─────────────────────┐
│ DGX Spark 1 │◄────────────────────────────►│ DGX Spark 2 │
│ │ 192.168.100.10/11 │ │
│ enp1s0f1np1 │ (クラスター通信) │ enp1s0f1np1 │
│ ┌───────────────┐ │ │ ┌───────────────┐ │
│ │ NCCL/Ray通信 │ │ │ │ NCCL/Ray通信 │ │
│ └───────────────┘ │ │ └───────────────┘ │
├─────────────────────┤ ├─────────────────────┤
│ eth0 (10.0.0.10) │◄──── 通常LAN ──────────────►│ eth0 (10.0.0.11) │
│ ┌───────────────┐ │ │ ┌───────────────┐ │
│ │ 管理/API公開 │ │ │ │ 管理のみ │ │
│ └───────────────┘ │ │ └───────────────┘ │
└─────────────────────┘ └─────────────────────┘
クライアントからの
APIリクエスト
http://10.0.0.10:8000
```
| ネットワーク | 用途 | インターフェース例 | IP例 |
|-------------|------|-------------------|------|
| **クラスター通信** | NCCL、Ray、テンソル並列 | enp1s0f1np1 (QSFP) | 192.168.100.x |
| **管理/API公開** | SSH、APIエンドポイント | eth0 (通常LAN) | 10.0.0.x |
### なぜ分離が必要?
1. **セキュリティ**: クラスター通信は暗号化されていないため、プライベートネットワーク推奨
2. **パフォーマンス**: NCCL通信は200GbE QSFPを使用し、APIトラフィックと分離
3. **柔軟性**: APIエンドポイントを外部公開しつつ、クラスター通信は内部に閉じる
### QSFPインターフェースへのIP割り当て手動
**重要**: QSFPインターフェースにはIPアドレスが自動で割り当てられません。手動設定が必要です。
```bash
# 両ノードで実行
# 1. インターフェース確認
ibdev2netdev
# 出力例: mlx5_0 port 1 ==> enp1s0f1np1 (Up)
# mlx5_1 port 1 ==> enp1s0f0np0 (Down)
# "(Up)" と表示されるインターフェースを使用
# 2. IPアドレス設定
# Node 1
sudo ip addr add 192.168.100.10/24 dev enp1s0f1np1
sudo ip link set enp1s0f1np1 up
# Node 2
sudo ip addr add 192.168.100.11/24 dev enp1s0f1np1
sudo ip link set enp1s0f1np1 up
# 3. 疎通確認Node 1から
ping 192.168.100.11
```
### 永続化netplan使用
再起動後もIPを維持するには、netplanで設定します。
```bash
# /etc/netplan/99-qsfp.yaml を作成
sudo tee /etc/netplan/99-qsfp.yaml << 'EOF'
network:
version: 2
ethernets:
enp1s0f1np1:
addresses:
- 192.168.100.10/24 # Node 2は192.168.100.11/24
EOF
sudo netplan apply
```
### パスワードなしSSHの設定
```bash
# Node 1で
ssh-keygen -t ed25519 -N ""
ssh-copy-id user@192.168.100.11
# Node 2でも同様に設定逆方向
```
---
@ -219,6 +302,27 @@ docker exec -it $VLLM_CONTAINER /bin/bash -c '
--gpu-memory-utilization 0.85'
```
### APIエンドポイントを別IPで公開する
クラスター通信QSFPとAPIエンドポイント通常LANを分離したい場合
```bash
docker exec -it $VLLM_CONTAINER /bin/bash -c '
vllm serve cerebras/MiniMax-M2.5-REAP-172B-A10B \
--tensor-parallel-size 2 \
--host 0.0.0.0 \
--port 8000 \
...'
```
| オプション | 説明 |
|-----------|------|
| `--host 0.0.0.0` | 全インターフェースでリッスン(推奨) |
| `--host 10.0.0.10` | 特定IPのみでリッスン |
| `--port 8000` | APIポート番号 |
**ポイント**: `VLLM_HOST_IP`環境変数はクラスター内部通信用であり、`--host`オプションはAPIエンドポイント用です。これらは独立して設定できます。
---
## 動作確認