ESXi Mover o grupo de portas para diferentes vswitch

4

No ESXi, como mover um grupo de portas existente para um vSwitch diferente?

Esta parece ser uma ação frequentemente desejada, mas sem uma solução prontamente acessível:

Portanto, tenho um grande vSwitch com cerca de 8 grupos de portas diferentes (cada um com 4-6 VMs atribuídos). Devido a mudanças de rede, eu preciso quebrar isso vSwitch up em vários vSwitches (cada um com seu próprio adaptador físico). Eu quero simplesmente mover os grupos de portas existentes (incluindo IDs de VLAN) para o vSwitch correto (novo).

Existe uma maneira fácil de fazer isso sem reconfigurar a coisa toda? Se houvesse algum arquivo XML em que isso fosse armazenado, seria um corte de 5 segundos & colar operação.

    
por Jonathon Reinhart 13.12.2013 / 21:18

1 resposta

3

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:

  1. Identifique todas as linhas portGroupC , que começam com /net/vswitch/child[0001]/portgroup/child[0000] . Mova essas entradas para cima com vSwitch0 config (não é necessário, mas deixa as coisas mais claras durante a edição).
  2. Altere /net/vswitch/child[0001] para /net/vswitch/child[0000] em cada linha (porque estamos movendo para esse switch).
  3. Perceba que já existe um /net/vswitch/child[0000]/portgroup/child[0000] ( portGroupA ) e altere portGroupC para /portgroup/child[0002] .
  4. Perceba que nosso uplink para esse grupo de portas está incorreto agora (se especificado) e altere uplinks[0000]/pnic = de vmnic1 para vmnic0 (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.

    
por 07.01.2014 / 11:23

Tags