Skip to content
cccskills
FreePublished on GitHub

ib-switch

Mellanox SX6036 InfiniBand スイッチのシリアルコンソール操作。ステータス確認、show コマンド、IB 設定、FW 管理を行う。

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md12.7 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

IB Switch スキル

Mellanox SX6036 InfiniBand スイッチを USB シリアルコンソールまたは SSH 経由で操作する。

概要

項目値
モデルMSX6036F-1SFS (36ポート FDR InfiniBand)
ホスト名switch-d2b2e2
MLNX-OS3.6.8012 (最終版, 2019-02-22)
シリアル接続先4号機 (10.10.10.204) /dev/ttyUSB0
シリアル設定9600/8N1, フロー制御なし
認証admin / admin
管理 IP10.10.10.100/24 (mgmt0, ラボから到達可)
SSHport 22, 要レガシー鍵交換 (下記参照)
内蔵 SMactive (OpenSM4.8.1)

接続構成: Claude Code → SSH → server 4 → USB serial → SX6036

設定値の読み取り

YQ="${PROJECT_DIR}/bin/yq"
CONFIG="config/switch-sx6036.yml"
SERIAL_HOST=$("$YQ" '.serial_host' "$CONFIG")
SERIAL_HOST_USER=$("$YQ" '.serial_host_user' "$CONFIG")
MGMT_IP=$("$YQ" '.mgmt_ip' "$CONFIG")

スクリプトの転送

セッション開始時に 1 回、スクリプトを server 4 に転送する:

scp ./scripts/sx6036-console.py root@$SERIAL_HOST:/tmp/

pyserial が未インストールの場合:

ssh root@$SERIAL_HOST 'pip3 install pyserial'

サブコマンド

status — 基本ステータス表示

version, fan, temperature, power, protocols をまとめて表示。

ssh root@$SERIAL_HOST 'python3 /tmp/sx6036-console.py status'

show — 任意の show コマンド

show サブコマンドは内部で "show " + arg を組み立てるため、引数に show を含めないこと:

# OK: 引数に show を含めない
ssh root@$SERIAL_HOST 'python3 /tmp/sx6036-console.py show version'
ssh root@$SERIAL_HOST 'python3 /tmp/sx6036-console.py show interfaces brief'
ssh root@$SERIAL_HOST 'python3 /tmp/sx6036-console.py show inventory'

# NG: 引数に show を含めると二重になる
# python3 /tmp/sx6036-console.py show "show interfaces ib status 1" → "show show interfaces ..."

ports — IB ポート状態サマリ

36 ポート (IB1/1 〜 IB1/36) の状態を表示。

ssh root@$SERIAL_HOST 'python3 /tmp/sx6036-console.py ports'

enable-cmd — enable モードでコマンド実行

operator mode では使えない show running-config, show ib 等を実行。

ssh root@$SERIAL_HOST 'python3 /tmp/sx6036-console.py enable-cmd show running-config'
ssh root@$SERIAL_HOST 'python3 /tmp/sx6036-console.py enable-cmd show ib sm'

configure — 設定変更

ファイルからコマンドを読み込み、enable → configure terminal で実行。

ssh root@$SERIAL_HOST 'python3 /tmp/sx6036-console.py configure /tmp/ib-config.txt'

設定変更時は oplog で記録する:

./oplog.sh ssh root@$SERIAL_HOST 'python3 /tmp/sx6036-console.py configure /tmp/ib-config.txt'

SSH アクセス

mgmt0 (10.10.10.100) 経由で SSH 接続可能。レガシー鍵交換アルゴリズムが必要。

sshpass -p admin ssh -o StrictHostKeyChecking=no -o KexAlgorithms=diffie-hellman-group14-sha1 -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedAlgorithms=+ssh-rsa admin@10.10.10.100 'show version'
  • SSH サーバ: mpSSH_0.2.1
  • リブート直後は認証が一時的に失敗することがある(システム初期化中)
  • sx6036-console.py で扱えない長時間操作(FW fetch/install 等)はシリアルコンソール手動操作を推奨

SM 管理

現在の状態: 内蔵 SM active (server 4 の opensm は disabled)

SM 診断コマンド (enable モード)

show ib smnode switch-d2b2e2 sm-running    # SM プロセス実行状態 (active/not active)
show ib smnode switch-d2b2e2 sm-state      # SM 設定状態 (enable/disable)
show ib smnode switch-d2b2e2 sm-licensed   # ライセンス状態
show ib sm version                         # SM バージョン (OpenSM4.8.1)
show ib sm routing-info                    # ルーティングエンジン (minhop)

SM 有効化

configure terminal
  ib sm
  ib smnode switch-d2b2e2 enable
  exit
write memory

SM 設定には2層構造がある:

  • ib sm — グローバルな SM 有効/無効スイッチ
  • ib smnode <hostname> enable/disable — ノード単位の SM 有効/無効

SM 無効化 (opensm に切替)

configure terminal
  no ib sm
  ib smnode switch-d2b2e2 disable
  exit
write memory

切替後に server 4 で opensm を起動: systemctl enable --now opensm

FW 管理

イメージ確認

show images

2パーティション構成。現在両方とも 3.6.8012。

FW イメージの取得

server 4 で HTTP サーバを起動し、スイッチからフェッチする:

# server 4 側
ssh root@$SERIAL_HOST 'cd /tmp && python3 -m http.server 8080'
# スイッチ側 (シリアルコンソール)
image fetch http://10.10.10.204:8080/image-PPC_M460EX-3.6.8012.img
  • 所要時間: ~5分 (358MB)
  • FW イメージ URL: https://content.mellanox.com/Software/image-PPC_M460EX-3.6.8012.img
  • MD5: e2114b923351bf4d499c7200392afecb

FW インストール

image install <file>                    # 次のブートパーティションに自動インストール
image install <file> location <N>       # 指定パーティション (1 or 2) にインストール
  • partition キーワードは不可。必ず location を使う
  • 4ステージ: Verify → Uncompress → Create Filesystems → Extract
  • 所要時間: ~15分

ブートパーティション切替・リブート

image boot next
write memory
reload
  • リブート所要時間: ~8分
  • 設定保存は write memory (configuration write は MLNX-OS 3.6 では不可)

MLNX-OS CLI モード階層

operator (>)  →  enable (#)  →  configure terminal ((config) #)
               enable           configure terminal
               ←  disable      ←  exit
  • operator mode (>): show コマンドの一部のみ (version, fan, interfaces brief 等)
  • enable mode (#): show running-config, show ib, show interfaces mgmt0, SM 設定の表示
  • configure mode ((config) #): 設定変更 (SM 有効化, IP 変更等)

oplog

  • show コマンド: oplog 不要(読み取りのみ)
  • 設定変更 (enable-cmd, configure): oplog で記録する
./oplog.sh ssh root@$SERIAL_HOST 'python3 /tmp/sx6036-console.py enable-cmd <cmd>'
./oplog.sh ssh root@$SERIAL_HOST 'python3 /tmp/sx6036-console.py configure /tmp/config.txt'

注意事項

  • シリアルポート排他: 同時に 1 セッションのみ接続可能。別のプロセスがシリアルポートを使用中だとエラーになる
  • pyserial 必須: server 4 に pyserial パッケージが必要。OS 再インストールで消失するため、接続失敗時は pip3 install pyserial を再実行
  • OS 再インストール後の再セットアップ: pyserial の再インストールに加え、sx6036-console.py の再転送 (scp ./scripts/sx6036-console.py root@$SERIAL_HOST:/tmp/) が必要。初回実行時のエラーを 2>/dev/null で抑制しないこと(ファイル不在の検出が遅れる)
  • 低速通信: 9600 baud (~960 bytes/sec)。36 ポート表示で 5-10 秒かかる。タイムアウトはデフォルト 30 秒
  • enable パスワード: 不要(パスワードプロンプトなしで enable モードに入れる)
  • pve-lock: 不要(IB スイッチは PVE クラスタとは独立)
  • DTR トグルでコンソール復帰: リブート後や長時間放置後にシリアルコンソールが無応答になった場合、pyserial で ser.dtr = False → ser.dtr = True でリセットする。手動の場合は screen を一度切断 (Ctrl+A, K) して再接続
  • 限定シェル CLI > : リブート直後に CLI > プロンプトになることがある。enable も使えない。exit → 再ログインで正常なフルプロンプトに復帰
  • ? ヘルプキーの副作用: シリアル自動化で ? を送ると改行も送信され、コマンドが実行されてしまう。手動操作では問題ない
  • 進捗バーの # 記号: image fetch / image install の進捗バーにプロンプト (#) と同じ文字が含まれる。自動化でプロンプト検出する場合はフルプロンプトパターン (switch-d2b2e2 [standalone: master] #) を使う
  • show interfaces mgmt0 は enable モードが必要: operator mode だとエラー
  • MLNX-OS の ping 構文: -c N を使う (count N は不可)
  • 設定保存: write memory を使う (configuration write は MLNX-OS 3.6 では不可)
  • 長時間操作と sx6036-console.py: FW fetch (~5分), install (~15分), reload (~8分) はタイムアウトを超えるため、シリアルコンソール手動操作 (screen /dev/ttyUSB0 9600) を推奨
  • QSFP+ トランシーバ電力制限: SX6036 (SwitchX-2) はポートあたり最大 2W。CWDM4/LR4 等の高消費電力光モジュール (2.5-3.5W) は非対応。DAC ケーブルまたは Mellanox FDR AOC (<2W) を使用すること。スイッチ側で Warning: High power transceiver is not supported が表示されリンクが確立できない
  • IB トランシーバ情報取得の制約: MLNX-OS 3.6 の IB インターフェースでは transceiver, module-info, pluggable, cables, running-config interface サブコマンドが非対応。サーバ側の ethtool -m も IB インターフェースでは Operation not supported。トランシーバの詳細診断手段は限定的

IB パーティション / トラフィック分離

パーティションコマンドの対応状況

MLNX-OS 3.6.8012 は ib partition コマンドを 部分的にサポート:

  • show ib partition (enable mode) — 動作する。Default パーティション (PKey 0x7FFF, ALL members) が表示される
  • ib partition <name> pkey 0x<id> (configure mode) — 動作する。パーティション作成可能
  • ib partition <name> ipoib (configure mode) — 動作する
  • ib partition <name> member ALL type full (configure mode) — 動作する
  • ib partition <name> member <GUID> type full (configure mode) — 動作しない。% Invalid port GUID エラー。e41d:2d03:00b4:db21 / e41d2d0300b4db21 / 0xe41d2d0300b4db21 いずれのフォーマットも不可

結論: パーティション作成自体は可能だが、個別 GUID によるメンバー制限は MLNX-OS 3.6 では非サポート。ALL のみ指定可能なため、リージョン間のハードウェアレベル Pkey 分離は不可。

採用手段: サブネット分離

リージョンごとに異なる IPoIB サブネットを割り当てて IP レベルで分離:

リージョンサブネットノード
Region A192.168.100.0/244号機 (.1), 5号機 (.2), 6号機 (.3)
Region B192.168.101.0/247号機 (.7), 8号機 (.8), 9号機 (.9)
  • DRBD はリージョン内で IPoIB、リージョン間で Ethernet (10.x) を使用
  • 異なるサブネット間はルーティングなしのため IP レベルで到達不可
  • LINSTOR PrefNic は変更不要 (同じ物理インターフェース、IP のみ変更)
  • 検証済み: Region A↔B 間は ping 100% packet loss (2026-03-19)

ポートマップ

ポートサーバ状態
IB1/77号機Active 40 Gbps QDR
IB1/99号機Active 40 Gbps QDR
IB1/118号機Active 40 Gbps QDR
IB1/196号機Active 40 Gbps QDR
IB1/215号機Active 40 Gbps QDR
IB1/234号機Active 40 Gbps QDR

HCA GUID

サーバIB デバイスNode GUIDPort GUID (port 1)
4号機ibp134s0e41d:2d03:00b4:db20e41d:2d03:00b4:db21
5号機ibp134s0e41d:2d03:007a:5c60e41d:2d03:007a:5c61
6号機ibp134s0 (mlx4_0)e41d:2d03:00b4:ded0e41d:2d03:00b4:ded1
7号機ibp10s0 (mlx4_0)ec0d:9a03:00e6:cc10ec0d:9a03:00e6:cc11
8号機ibp10s0 (mlx4_0)ec0d:9a03:00de:bb40ec0d:9a03:00de:bb41
9号機ibp10s0 (mlx4_0)f452:1403:006b:7530f452:1403:006b:7531

参照

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Supermicro X11DPU/X10DRT-P BIOS Setup 操作。KVM スクリーンショット + キーストロークで BIOS メニューを操作する。BIOS 設定変更、確認、保存を行う。4-6号機 + 10号機対応。

The English summary is being prepared. Showing the original description.

miminashi/pvese19Updated Jul 6, 2026

Dell ファームウェアダウンロード。Playwright で dl.dell.com から BIN を取得し firmimg.d7 を抽出する。

The English summary is being prepared. Showing the original description.

miminashi/pvese19Updated Jul 6, 2026

idrac7

Free

iDRAC7 基本操作。SSH 経由で racadm コマンドを実行し、サーバ管理を行う。

The English summary is being prepared. Showing the original description.

miminashi/pvese19Updated Jul 6, 2026

iDRAC7 ファームウェアアップデート。段階的アップグレードパスに従い TFTP 経由で適用する。

The English summary is being prepared. Showing the original description.

miminashi/pvese19Updated Jul 6, 2026

Fujitsu iRMC S4 (TX1320 M3 等) の電源・BIOS・RAID 操作 + BIOS 設定リファレンス。Redfish (HTTPS + SECLEVEL=0) 経由の電源/ブート操作 + iRMC Web UI/KVM 経由の手動 BIOS/RAID 操作手順 + 全 BIOS 設定項目の網羅リファレンス (bios/)。training-tx1320 対応。

The English summary is being prepared. Showing the original description.

miminashi/pvese19Updated Jul 6, 2026

LINSTOR/DRBD ストレージベンチマーク。VM上でfioを実行し、thin/thick-stripe構成の性能を計測する。

The English summary is being prepared. Showing the original description.

miminashi/pvese19Updated Jul 6, 2026

See all skills by miminashi

Report a problem with this skill