[VMware] ESXiのCLIで標準スイッチを再構築

DL160 Gen8のNICを入れ替えたときのこと

先の記事でDL160 Gen8のNICを入れ替えた訳なんですけど、そこでも記載したように当初入れ替えたNICが認識しませんでした。実はその時の既存構成で、サーバのマネジメントI/FはDistributed Switchへ移行させていて、例のNICが認識しないことには何も出来ないという状況になりました。

このとき、DCUI(コンソールUI)を使用することで標準vSwitchの構成を吹っ飛ばすことが可能になります。そして新たに管理インタフェースを再構成し、取り敢えずは通信を可能とすることが出来ます。

しかし、当方の標準スイッチ、実はオンボード主体のvSwitchを10gbEインタフェースとは別に構成していて、そこにDistributed Switchに何らかの問題が生じた場合にVMが最低限通信できるようにと結構なVLANを登録しているのです。

さすがにGUIではきついので

今回はCLIで組み立てることにしました。基本的にこんだけのVLANをvSwitch0に登録しています。

Name                  Virtual Switch  Active Clients  VLAN ID
--------------------  --------------  --------------  -------
BGP-WORK-ZONE         vSwitch0                     0      901
Bridge-Homenoc        vSwitch0                     0      788
CLIENT-ZONE           vSwitch0                     0       20
CLIENT-ZONE-02        vSwitch0                     0      902
DMZ-ZONE              vSwitch0                     0      789
Homenoc_ZONE          vSwitch0                     0      786
Interlink-dmz-zone    vSwitch0                     0      785
LABO-ZONE             vSwitch0                     0      100
MGT-ZONE              vSwitch0                     0       30
NGN-Network           vSwitch0                     0      784
SERVER-ZONE           vSwitch0                     0       10
TaggedVLAN-ZONE       vSwitch0                     0     4095

CLIで組み立てる場合、このポートグループの設定は2段階で行う必要があります。
まずはPortGroupそれ自体の割り当て、続いてVLANIDの割り当てです。

vSwitchに対するポートグループの割り当て

初期状態は以下のような状態です。なお、前提としてあらかじめvSwitch0が構成され、必要なアップリンクポートの紐付けまで完了している状態である必要があります。

[root@nasubi:~] esxcli network vswitch standard portgroup list
Name                  Virtual Switch  Active Clients  VLAN ID
--------------------  --------------  --------------  -------
VMkernel-Storage      vSwitch1                     1        0
XGbE-Storage-Network  vSwitch1                     0        0

ストレージを接続するための別vSwitch用のポートグループのみ構成してる状態です。

以下のようにコマンド実行しました。

esxcli network vswitch standard portgroup add -p BGP-WORK-ZONE      -v vSwitch0
esxcli network vswitch standard portgroup add -p Bridge-Homenoc     -v vSwitch0
esxcli network vswitch standard portgroup add -p CLIENT-ZONE        -v vSwitch0
esxcli network vswitch standard portgroup add -p CLIENT-ZONE-02     -v vSwitch0
esxcli network vswitch standard portgroup add -p DMZ-ZONE           -v vSwitch0
esxcli network vswitch standard portgroup add -p Homenoc_ZONE       -v vSwitch0
esxcli network vswitch standard portgroup add -p Interlink-dmz-zone -v vSwitch0
esxcli network vswitch standard portgroup add -p LABO-ZONE          -v vSwitch0
esxcli network vswitch standard portgroup add -p MGT-ZONE           -v vSwitch0
esxcli network vswitch standard portgroup add -p NGN-Network        -v vSwitch0
esxcli network vswitch standard portgroup add -p SERVER-ZONE        -v vSwitch0
esxcli network vswitch standard portgroup add -p TaggedVLAN-ZONE    -v vSwitch0

これによりまずはポートグループが作られた状態になります。

[root@nasubi:~] esxcli network vswitch standard portgroup list
Name                  Virtual Switch  Active Clients  VLAN ID
--------------------  --------------  --------------  -------
BGP-WORK-ZONE         vSwitch0                     0        0
Bridge-Homenoc        vSwitch0                     0        0
CLIENT-ZONE           vSwitch0                     0        0
CLIENT-ZONE-02        vSwitch0                     0        0
DMZ-ZONE              vSwitch0                     0        0
Homenoc_ZONE          vSwitch0                     0        0
Interlink-dmz-zone    vSwitch0                     0        0
LABO-ZONE             vSwitch0                     0        0
MGT-ZONE              vSwitch0                     0        0
NGN-Network           vSwitch0                     0        0
SERVER-ZONE           vSwitch0                     0        0
TaggedVLAN-ZONE       vSwitch0                     0        0
VMkernel-Storage      vSwitch1                     1        0
XGbE-Storage-Network  vSwitch1                     0        0

見たとおり、最初のポートグループが出来た時点ではまだVLAN IDは全部「タグなし(0)」の状態です。そこで、今度はこれらポートグループの名称をキーにしてVLAN IDを割り当てていきます。

VLAN IDの割り当て

以下のコマンドを実行して、作成したPortGroupに対してVLAN IDを割り当てます。

esxcli network vswitch standard portgroup set -p BGP-WORK-ZONE --vlan-id 901 
esxcli network vswitch standard portgroup set -p Bridge-Homenoc --vlan-id 788 
esxcli network vswitch standard portgroup set -p CLIENT-ZONE --vlan-id 20 
esxcli network vswitch standard portgroup set -p CLIENT-ZONE-02 --vlan-id 902 
esxcli network vswitch standard portgroup set -p DMZ-ZONE --vlan-id 789 
esxcli network vswitch standard portgroup set -p Homenoc_ZONE --vlan-id 786 
esxcli network vswitch standard portgroup set -p Interlink-dmz-zone --vlan-id 785 
esxcli network vswitch standard portgroup set -p LABO-ZONE --vlan-id 100 
esxcli network vswitch standard portgroup set -p MGT-ZONE --vlan-id 30 
esxcli network vswitch standard portgroup set -p BNGN-Network --vlan-id 784 
esxcli network vswitch standard portgroup set -p SERVER-ZONE --vlan-id 10 
esxcli network vswitch standard portgroup set -p TaggedVLAN-ZONE --vlan-id 4095 

これで以下の通りVLAN IDが割り当てられます。

[root@nasubi:~] esxcli network vswitch standard portgroup list
Name                  Virtual Switch  Active Clients  VLAN ID
--------------------  --------------  --------------  -------
BGP-WORK-ZONE         vSwitch0                     0      901
Bridge-Homenoc        vSwitch0                     0      788
CLIENT-ZONE           vSwitch0                     0       20
CLIENT-ZONE-02        vSwitch0                     0      902
DMZ-ZONE              vSwitch0                     0      789
Homenoc_ZONE          vSwitch0                     0      786
Interlink-dmz-zone    vSwitch0                     0      785
LABO-ZONE             vSwitch0                     0      100
MGT-ZONE              vSwitch0                     0       30
NGN-Network           vSwitch0                     0      784
SERVER-ZONE           vSwitch0                     0       10
TaggedVLAN-ZONE       vSwitch0                     0     4095
VMkernel-Storage      vSwitch1                     1        0
XGbE-Storage-Network  vSwitch1                     0        0

なかなか覚えられない私がよくやること

CLIはずらーっとコマンドを並べて一気に実行する事でかなりGUIと比べて省力化が可能です。ただ、やっかいなことになかなか記憶に残らず、いざやろうとするときにその都度調査コストがかかるのが難題です。特に私の場合は記憶力が本当に弱く、超長期の記憶力は残るんですが、短期記憶は恐らく常人以下です。

そんな私が継続してる記憶・記録法がこのブログだったりします。不思議と「書けば覚える」「引けば思い出す」という特性があるもんで、手っ取り早く辞書引きできるレシピ集としてこのブログを活用しています。

同じ所でハマったりミスを繰り返したりする際は、こうした備忘録をコツコツ作ってみてはいかがでしょうか。