vDS なしのクラスター運用は大きな損失
vCenter でインフラ最適化に半年ほど携わって得た、貴重な教訓があります。3 ノード以上の ESXi ホスト で構成されるクラスターを管理しているのに、いまだに標準スイッチ (vSS) を使用しているなら、それは自ら苦労を買っているようなものです。
新しい VLAN の追加や MTU 設定の変更のたびに、各ホストにログインしてクリック作業を繰り返すのは苦行でしかありません。一瞬の不注意による設定ミスで、ネットワーク が切断されるリスクも常に付きまといます。vSphere Distributed Switch (vDS) は、まさにそうした混乱を解消するために作られました。
vDS は各ホストの仮想スイッチを一つの論理的な管理単位にまとめます。以前、検証環境の一部を Proxmox に移行して Open vSwitch (OVS) を試したことがありますが、OVS も強力な一方、vMotion やポートミラーリングの管理におけるスムーズさと直感的な操作性において、vDS は別次元の完成度を誇ります。
15 分で完了する vDS 導入(クイックスタート)
VMware のインターフェースに惑わされる必要はありません。基本的な vDS 運用を開始するには、以下の 3 ステップを迅速に実行するだけです:
- スイッチの初期化: vCenter で Networking タブを開きます。データセンターを右クリックし、Distributed Switch から New Distributed Switch を選択します。
vDS-Core-Productionのような分かりやすい名前を付けましょう。接続エラーを避けるため、クラスター内の最も低いバージョンの ESXi ホストと互換性のあるバージョンを選択してください。 - ポートグループの作成: 作成した vDS を右クリックし、New Distributed Port Group を選択します。ここでネットワーク層を分離します。例:Web 用に VLAN 10、データベース用に VLAN 20 など。
- ホストの接続: vDS を右クリックし、Add and Manage Hosts を選択します。対象のホストを選択し、物理ネットワークカード (vmnics) を対応するアップリンクにマッピングします。
ヒント: vSS から vDS へ移行する際は、少なくとも 1 つのネットワークカード (vmnic) を vSS に残しておきましょう。設定ミスで vCenter との通信が途絶えた際の安全な復旧経路(バックドア)になります。
vDS ライセンスに投資する価値がある 3 つの理由
1. 集中管理 (Centralized Management)
vSS では、スイッチは各ホストに個別に存在します。対照的に、vDS はクラスター全体で統一された実体です。vDS 上で “App-Internal” ポートグループを一つ作成するだけで、20 台の ESXi ホストすべてに即座にその設定が反映されます。私の経験上、これにより手動設定によるミスを 80% 削減できます。
2. ロールバック機能:設定ミス時の「救命浮輪」
この機能には、何度となく冷や汗をかく場面で救われました。管理ネットワークの VLAN ID を間違えるなど、通信断を招く設定ミスをした場合、vDS は自動的に直近の正常な状態に設定を戻します。vSS を使用していたら、間違いなくノート PC を抱えてデータセンターに駆け込むか、KVM を繋いで手動修正する羽目になっていたでしょう。
3. NIOC による帯域幅制御
本番環境では、vMotion、iSCSI、VM トラフィックが 10Gbps の帯域を奪い合うことがよくあります。Network I/O Control (NIOC) を使用すると、この「パイ」を公平に分配できます。
# NIOC の実際の設定例
vMotion Traffic: Share 50 (中優先度)
Virtual Machine Traffic: Share 100 (最高優先度)
Management Traffic: Share 20 (低優先度)
ネットワークが混雑した際、NIOC は重要度の低いサービスの帯域を自動的に制限し、仮想マシンの通信を優先させます。
応用:LACP とレイヤー 2 セキュリティ
LACP による帯域統合
Cisco や Juniper などの物理スイッチ側で準備ができているなら、LACP を使用して 2 枚の 10Gbps カードを一つの 20Gbps 論理グループ (LAG) にまとめましょう。vDS 側で LACP設定から Link Aggregation Group (LAG) を Active モードで作成するだけです。ネットワークパフォーマンスが飛躍的に向上し、通常のチーミングよりも優れた耐障害性 (Fault Tolerance) を得られます。
プライベート VLAN (PVLAN) – マルウェア感染拡大の防止
私はよく DMZ 領域に PVLAN を展開します。この機能により、同じサブネット内の VM 同士を完全に「見えない」状態 (Isolated モード) にできます。これは、データセンター内でのマルウェアの横展開(ラテラルムーブメント)を防ぐための非常に効果的な防壁となります。
運用の現場で学んだ重要なポイント
実際の運用において、特に注意すべき点がいくつかあります:
- Network Health Check の有効化: この機能を有効にするのを忘れないでください。物理スイッチ側の VLAN や MTU 設定が vDS と一致しているかを自動的にチェックしてくれます。
- ジャンボフレーム (Jumbo Frames) への慎重な対応: MTU 9000 は iSCSI や vMotion トラフィックのみに限定して有効にすべきです。VM トラフィックに対して無闇に有効にすると、非常に厄介なパケットドロップに悩まされることになります。
- バックアップは生命線: vCenter は vDS の「魂」を保持しています。vCenter がダウンしてもネットワーク自体は動作し続けますが、設定変更ができなくなります。万が一に備え、週に一度は vDS 設定を .zip ファイルにエクスポートしておきましょう。
PowerCLI による自動化
よりプロフェッショナルな運用を目指すなら、手動クリックではなくスクリプトでポートグループを一括作成しましょう。以下のコードを使用すれば、瞬時に vDS のセットアップが完了します:
# vCenter に接続
Connect-VIServer -Server vcenter.itfromzero.local
# リストに基づいてポートグループを作成
$vDSName = "vDS-Core-Production"
$VLANs = @{ "Web-Tier"=10; "App-Tier"=20; "DB-Tier"=30 }
foreach ($pg in $VLANs.Keys) {
Write-Host "ポートグループを作成中: $pg - VLAN: $($VLANs[$pg])"
Get-VDSwitch -Name $vDSName | New-VDPortgroup -Name $pg -VlanId $VLANs[$pg]
}
スクリプトの使用は作業を高速化するだけでなく、システム管理者の悩みである VLAN ID の入力ミスを防ぐことにも繋がります。
これらの経験が、皆さんのインフラ運用の効率化に役立つことを願っています。vDS を導入すれば、月曜の朝にネットワーク管理が悪夢に変わることもなくなるはずです!
スクリプトの使用 は作業を高速化するだけでなく、システム管理者の悩みである VLAN ID の入力ミスを防ぐことにも繋がります。

