データセンター向けネットワークと、GPUクラスタに興味を持ったので勉強開始。日記として残していきます。
Day 2: やったこと
- SN3700とSN2010、DGX Spark等を使ったクラスタ構築
- VLANの基礎勉強
- VLANの構築と疎通確認
作業内容
1. VLANの基礎勉強
VLAN(Virtual LAN)とは、1台の物理スイッチを論理的に分割して、まるで別々のネットワークのように扱う技術です。同じスイッチに接続していても、VLANが異なる端末同士は直接通信できません。
- VLANなし: 全端末が同じブロードキャストドメインに属し、不要な通信が全体に届く
- VLANあり: 同じ1台のスイッチでもVLANが違えば直接通信できない
2. アクセスポートとトランクポート
VLANを扱うポートには主に2種類あります。
| 種類 | 説明 |
|---|---|
| アクセスポート | 端末を接続するポート。1つのVLANのみに所属し、届いたフレームにタグは付かない。端末側はVLANを意識しない。 |
| トランクポート | スイッチ間を接続するポート。フレームにVLAN IDのタグを付けることで、1本のケーブルで複数VLANの通信をまとめて運ぶ。 |
- 端末側は「アクセスポート」= 1ポート1VLAN
- 別スイッチでも同じVLANなら通信できる
3. VLANの導入メリット
VLANを導入することで、以下のメリットがあります。
- セキュリティ: 通信できる範囲を部署単位で区切れる
- 通信効率: ブロードキャストの届く範囲が狭まる
- 構成変更の柔軟性: 席替えや組織変更も設定変更だけで対応
4. 実機でのVLAN構成
今回の環境では、SN3700Cを使って以下のようにVLANを分けました。
-
VLAN 10: Spark 01〜04(GPUクラスタ側)
- swp5, swp7, swp25, swp27
-
VLAN 20: CPU 01〜02(管理・ストレージ側)
- swp9, swp10
- トランクポート: swp31-32 でスイッチ間を相互接続
5. スイッチのVLAN設定
Cumulus Linux(NVIDIA User Experience - NVUE)でVLANを設定しました。
# SN3700C左側
nv set interface swp5,swp7,swp25,swp27,swp9,swp31,swp32 link state up
nv set interface swp5,swp7,swp25,swp27,swp9,swp31,swp32 bridge domain br_default
nv set interface swp5,swp7,swp25,swp27 bridge domain br_default access 10
nv set interface swp9,swp31-32 bridge domain br_default access 20
nv config apply
# SN3700C右側
nv set interface swp10,swp31-32 link state up
nv set interface swp10,swp31-32 bridge domain br_default
nv set interface swp10,swp31-32 bridge domain br_default access 20
nv config apply
6. 疎通確認
各サーバーにIPアドレスを設定し、pingでVLAN内通信とVLAN間通信を確認しました。
VLAN 10 内の通信確認
Spark 01 から同じVLAN 10 に属する Spark 02 へ ping を実施し、疎通を確認しました。
# Spark 01 (192.168.10.11/24) から Spark 02 (192.168.10.12/24) へ ping
ping 192.168.10.12
PING 192.168.10.12 (192.168.10.12) 56(84) bytes of data.
64 bytes from 192.168.10.12: icmp_seq=1 ttl=64 time=0.123 ms
64 bytes from 192.168.10.12: icmp_seq=2 ttl=64 time=0.098 ms
--- 192.168.10.12 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss
VLAN 20 内の通信確認
CPU 01 から同じVLAN 20 に属する CPU 02 へ ping を実施し、疎通を確認しました。
# CPU 01 (192.168.20.11/24) から CPU 02 (192.168.20.12/24) へ ping
ping 192.168.20.12
PING 192.168.20.12 (192.168.20.12) 56(84) bytes of data.
64 bytes from 192.168.20.12: icmp_seq=1 ttl=64 time=0.215 ms
64 bytes from 192.168.20.12: icmp_seq=2 ttl=64 time=0.187 ms
--- 192.168.20.12 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss
VLAN 間の通信遮断確認
VLAN 10 の Spark 01 から VLAN 20 の CPU 01 へ ping を実施し、異なるVLAN間では通信できないことを確認しました。
# Spark 01 (192.168.10.11/24) から CPU 01 (192.168.20.11/24) へ ping
ping 192.168.20.11
PING 192.168.20.11 (192.168.20.11) 56(84) bytes of data.
From 192.168.10.11 icmp_seq=1 Destination Host Unreachable
From 192.168.10.11 icmp_seq=2 Destination Host Unreachable
--- 192.168.20.11 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss
7. GPUクラスタにおけるVLANの活用メリット
高速ネットワークスイッチ(400 / 800GbE)を使った環境では、VLANを使って学習用トラフィックとストレージ用トラフィックを分離できます。
-
学習性能を守る: ストレージ側の通信がGPU間の集合通信を妨げない
- ※VLANだけでは性能保証はできない。QoSや帯域制御が必要
- テナントを分離する: 共用クラスタでもプロジェクト単位で通信範囲を区切れる
- 増設に耐える: ノード追加時も配線を変えずポート設定だけで組み込める
学んだこと
- VLANは物理配線を変えずに論理的なネットワーク分割ができる
- アクセスポートとトランクポートの使い分けが重要
- NVUEコマンドでVLAN、ポートモード、トランク許可VLANを設定できる
- 同じVLAN内ではpingが通り、異なるVLAN間では通信できないことを実機で確認できた
- GPUクラスタでは、学習トラフィックとストレージトラフィックの分離に役立つ
- VLANだけでは帯域保証はできないため、QoSなどの追加制御が必要な場合がある
次にやること
- LAG / MLAG の仕組みを学ぶ
- MLAG の実機テストを行う



