web-dev-qa-db-ja.com

ESXiポートグループを別のvswitchに移動します

ESXiでは、既存のポートグループを別のvSwitchに移動するにはどうすればよいですか?

これはしばしば望まれる行動のようですが、すぐにアクセスできる解決策はありません。

enter image description here

したがって、約8つの異なるポートグループ(それぞれに4〜6個のVMが割り当てられている)を持つ1つの大きなvSwitchがあります。ネットワークの変更により、このvSwitchを複数のvSwitchに分割する必要があります(それぞれに独自の物理アダプターがあります)。既存のポートグループ(VLAN IDを含む)を正しい(新しい)vSwitchに移動するだけです。

全体を再構成せずにこれを行う簡単な方法はありますか?これが保存されているXMLファイルがある場合、5秒間のカットアンドペースト操作になります。

4

免責事項:これは確かにこれを行うためのサポート/推奨される方法ではありません。プロダクションボックスでは行わないでください。安全のために、すべてのVMの電源をオフにし、vSphereを切断して実行しました。

まず、 ESXiコンソールにアクセス する必要があります。次に、これは/etc/vmware/esx.confを編集することで簡単に実行できます。

vSwitchごとに、次のようなエントリがあります。

/net/vswitch/child[0000]/name = "vSwitch0"
/net/vswitch/child[0000]/...
/net/vswitch/child[0001]/name = "vSwitch1"
/net/vswitch/child[0001]/...
...

ちなみに、そこでvSwitchの名前を変更できます。

ポートグループは、vSwitchesの下のノードです。

/net/vswitch/child[0000]/portgroup/child[0000]/name = "Management Network"
/net/vswitch/child[0000]/portgroup/child[0000]/...
...
/net/vswitch/child[0000]/portgroup/child[0001]/name = "VM Network"
/net/vswitch/child[0000]/portgroup/child[0001]/...
...

ポートグループをあるvSwitchから別の(---)に移動するには、その下にある/net/vswitch/child[XXXX]/ノードを変更するだけです(portgroupの子がすでに存在することを確認してください。つまり、ポートグループをに移動すると別のvSwitchでは、子番号を変更する必要がある場合があります。

注:関連する行(そのポートグループに対応するすべての行)のallの番号を付け直す必要があります。

注2:ポートグループにteamPolicyエントリが存在する場合、関連するuplinks[nnnn]/pnic =設定が実際のvmnicNと一致することを確認する必要がある場合があります。移動先のvswitch。

ファイルを編集した後、ESXiサーバーを再起動しました:$ reboot。代わりに再起動できるサービスやプロセスがあるかもしれませんが、再起動が最も簡単で安全な方法だと思いました。


それぞれが単一のvmnicアップリンクを持つ2つのvSwitchと、2つのポートグループがあるとします。

vSwitch0        --> vmnic0
|--portGroupA
|--portGroupB

vSwitch1        --> vmnic1
|--portGroupC
|--portGroupD

esx.confの関連エントリは次のようになります。1

# vSwitch0
/net/vswitch/child[0000]/...
/net/vswitch/child[0000]/name = "vSwitch0"
/net/vswitch/child[0000]/numPorts = "128"
# vSwitch0->portGroupA
/net/vswitch/child[0000]/portgroup/child[0000]/name = "portGroupA"
/net/vswitch/child[0000]/portgroup/child[0000]/teamPolicy/uplinks[0000]/pnic = "vmnic0"
# vSwitch0->portGroupB
/net/vswitch/child[0000]/portgroup/child[0001]/name = "portGroupB"
/net/vswitch/child[0000]/portgroup/child[0001]/teamPolicy/uplinks[0000]/pnic = "vmnic0"
/net/vswitch/child[0000]/uplinks/child[0000]/pnic = "vmnic0"

# vSwitch1
/net/vswitch/child[0001]/...
/net/vswitch/child[0001]/name = "vSwitch1"
/net/vswitch/child[0001]/numPorts = "128"
# vSwitch1->portGroupC
/net/vswitch/child[0001]/portgroup/child[0000]/name = "portGroupC"
/net/vswitch/child[0001]/portgroup/child[0000]/teamPolicy/uplinks[0000]/pnic = "vmnic1"
# vSwitch1->portGroupD
/net/vswitch/child[0001]/portgroup/child[0001]/name = "portGroupD"
/net/vswitch/child[0001]/portgroup/child[0001]/teamPolicy/uplinks[0000]/pnic = "vmnic1"
/net/vswitch/child[0001]/uplinks/child[0000]/pnic = "vmnic1"

ここで、portGroupCvSwitch1からvSwitch0に移動したいので、構成は次のようになります。

vSwitch0        --> vmnic0
|--portGroupA
|--portGroupB
|--portGroupC

vSwitch1        --> vmnic1
|--portGroupD

これを行うために、私たちは:

  1. /net/vswitch/child[0001]/portgroup/child[0000]で始まるすべてのportGroupC行を識別します。これらのエントリをvSwitch0 configで上に移動します(必須ではありませんが、編集時にわかりやすくなります)。
  2. 各行で/net/vswitch/child[0001]/net/vswitch/child[0000]に変更します(そのスイッチに移動するため)。
  3. すでに/net/vswitch/child[0000]/portgroup/child[0000]portGroupA)があることを認識し、portGroupC/portgroup/child[0002]に変更します。
  4. そのポートグループのアップリンクが正しくないことを認識し(指定されている場合)、uplinks[0000]/pnic =vmnic1からvmnic0に変更します(これは、そのvSwitchにサービスを提供するvmnicであるため)。

最終的な構成は次のようになります。

# vSwitch0
/net/vswitch/child[0000]/...
/net/vswitch/child[0000]/name = "vSwitch0"
/net/vswitch/child[0000]/numPorts = "128"
# vSwitch0->portGroupA
/net/vswitch/child[0000]/portgroup/child[0000]/name = "portGroupA"
/net/vswitch/child[0000]/portgroup/child[0000]/teamPolicy/uplinks[0000]/pnic = "vmnic0"
# vSwitch0->portGroupB
/net/vswitch/child[0000]/portgroup/child[0001]/name = "portGroupB"
/net/vswitch/child[0000]/portgroup/child[0001]/teamPolicy/uplinks[0000]/pnic = "vmnic0"
# vSwitch1->portGroupC
/net/vswitch/child[0000]/portgroup/child[0002]/name = "portGroupC"
/net/vswitch/child[0000]/portgroup/child[0002]/teamPolicy/uplinks[0000]/pnic = "vmnic0"
/net/vswitch/child[0000]/uplinks/child[0000]/pnic = "vmnic0"

# vSwitch1
/net/vswitch/child[0001]/...
/net/vswitch/child[0001]/name = "vSwitch1"
/net/vswitch/child[0001]/numPorts = "128"
# vSwitch1->portGroupD
/net/vswitch/child[0001]/portgroup/child[0000]/name = "portGroupD"
/net/vswitch/child[0001]/portgroup/child[0000]/teamPolicy/uplinks[0000]/pnic = "vmnic1"
/net/vswitch/child[0001]/uplinks/child[0000]/pnic = "vmnic1"

また、portGroupDportgroup/child[0001]から[0000]に変更したことに注意してください(0エントリがなくなったため)。

1-#コメントはここでの説明のためだけのものです。それらが実際のファイルで機能するかどうかはわかりませんが、とにかく次の構成で驚かされます。

3