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 comvSwitch0
config (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 altereportGroupC
para/portgroup/child[0002]
. - Perceba que nosso uplink para esse grupo de portas está incorreto agora (se especificado) e altere
uplinks[0000]/pnic =
devmnic1
paravmnic0
(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.