Aviso: Certamente não é uma maneira recomendada / apoiada de fazer isso. Não faça isso em uma caixa de produção. Fiz isso com todas as VMs desligadas e o vSphere desconectado, só para garantir.
Primeiro, você precisa acesse o console do ESXi . Então, isso pode ser feito facilmente editando /etc/vmware/esx.conf .
Para cada vSwitch , há uma entrada como:
/net/vswitch/child[0000]/name = "vSwitch0"
/net/vswitch/child[0000]/...
/net/vswitch/child[0001]/name = "vSwitch1"
/net/vswitch/child[0001]/...
...
Você pode renomear vSwitches lá, a propósito.
Os grupos de portas são nós sob os 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]/...
...
Para mover um grupo de portas de um vSwitch para outro, basta alterar em qual /net/vswitch/child[XXXX]/ nó está, certificando-se de respeitar o que portgroup crianças já estão lá. Em outras palavras, uma vez que você mover um grupo de portas para outro vSwitch , talvez seja necessário alterar seu número de filhos.
Observação: você precisa renumerar all das linhas relevantes (todas as linhas que correspondem a esse grupo de portas).
Observação 2: Se houver teamPolicy entradas presentes para um grupo de portas, talvez seja necessário garantir que as configurações associadas de uplinks[nnnn]/pnic = correspondam ao% realvmnicN para a alteração que você ' está mudando para.
Depois de editar o arquivo, simplesmente reiniciei o servidor ESXi: $ reboot . Pode haver algum serviço ou processo que poderia ser reiniciado, mas eu percebi que a reinicialização era a maneira mais fácil e segura.
Exemplo
Digamos que temos dois vSwitches, cada um com um único vmnic uplink e dois grupos de portas:
vSwitch0 --> vmnic0
|--portGroupA
|--portGroupB
vSwitch1 --> vmnic1
|--portGroupC
|--portGroupD
As entradas relevantes em esx.conf podem ser parecidas com isto 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"
Agora, queremos mover portGroupC de vSwitch1 para vSwitch0 , então a configuração é assim:
vSwitch0 --> vmnic0
|--portGroupA
|--portGroupB
|--portGroupC
vSwitch1 --> vmnic1
|--portGroupD
Para fazer isso, nós:
- Identifique todas as linhas
portGroupC, que começam com/net/vswitch/child[0001]/portgroup/child[0000]. Mova essas entradas para cima comvSwitch0config (não é necessário, mas deixa as coisas mais claras durante a edição). - Altere
/net/vswitch/child[0001]para/net/vswitch/child[0000]em cada linha (porque estamos movendo para esse switch). - Perceba que já existe um
/net/vswitch/child[0000]/portgroup/child[0000](portGroupA) e altereportGroupCpara/portgroup/child[0002]. - Perceba que nosso uplink para esse grupo de portas está incorreto agora (se especificado) e altere
uplinks[0000]/pnic =devmnic1paravmnic0(porque esse é o vmnic servindo esse vSwitch.)
A configuração final deve ficar assim:
# 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"
Observe que também alterei portGroupD de portgroup/child[0001] para [0000] (já que não havia mais uma entrada 0).
1 - Os comentários de # são apenas para explicação aqui; Eu não sei se eles funcionam no arquivo real e se surpreendem na próxima configuração.