Corrigindo o MAC address na clonagem de VMs SLES no XenServer 6

Publicado por Ana Emilia Machado de Arruda em 18/09/2012

[ Hits: 8.473 ]

 


Corrigindo o MAC address na clonagem de VMs SLES no XenServer 6



Diante da necessidade de criar várias máquinas virtuais SUSE Linux Enterprise Server, os manuais do XenServer explicam como fazer "clones", evitando, assim, realizar uma mesma instalação e configuração do S.O. repetidas e cansativas vezes.

Também nos manuais da Citrix, explicam que o MAC address de uma VM GNU/Linux é armazenado nos arquivos de configuração do S.O. GNU/Linux, e que a VM "clonada", seja ela resultado de um full copy ou de um fast clone, possuirá outro(s) MAC address(es).

Usando o recurso de copiar VM do XenServer, seja através do XenCenter ou via CLI, você consegue obter uma nova virtual idêntica à original, com exceção do MAC address, porque, como já foi dito, a cópia recebe novo(s) número(s), e do label da cópia que deverá ser obrigatoriamente diferente.

Os comandos ip link set interface addr MAC não funcionam, porque quando a cópia da VM sobe, apenas a interface loopback é reconhecida, obviamente, porque o MAC address da interface virtual da nova VM é diferente daquele contido nos arquivos de configuração do S.O.

Dessa forma, para "clonar" máquinas virtuais SLES, após criar a primeira virtual, a virtual "modelo", as demais são criadas da seguinte forma:

1. Faça uma cópia da virtual usando o XenCenter ou via CLI, informando o nome para a nova virtual (cópia) gerada a partir da primeira:
  • Usando o XenCenter: clicar com o botão direito na VM parada e selecionar "Copy VM..."
  • Via CLI: vm-copy new-name-label=<name_for_copy> [new-name-description=<description_for_copy>] [sr-uuid=<uuid_of_sr>] [<vm-selector>=<vm-selector_value>]
  • XenServer/6.0.0/1.0/en_gb/reference « docs.vmd.citrix.com

2. Inicie a nova VM. Esta cópia será igual à original, porém com MAC diferente.

3. Mude o IP, caso a VM necessite ser configurada com IP estático, e o hostname, no caso do SLES, usando o YaST.

4. Pelo XenCenter (na aba networking da nova virtual), veja qual o MAC da nova VM e edite o arquivo /etc/udev/rules.d/30-net_persistent_names.rules, para constar esse novo MAC.

5. Altere o nome do arquivo /etc/sysconfig/network/ifcfg-eth-id-MAC para o MAC da nova VM encontrado pelo XenCenter.

6. Reinicie a VM e ela estará pronta para usar.

Os passos 4 e 5, referentes à alteração do MAC, podem ser realizados para mais de um MAC address, no caso de a VM original, usar mais de um MAC.

Neste caso, é importante verificar a ordem destes MAC address no XenCenter (na aba "networking", da nova virtual) e no arquivo /etc/udev/rules.d/30-net_persistent_names.rules.

O "Network 0" no XenCenter corresponde à eth0, o "Network 1" à eth1, e assim por diante.

No caso dos arquivos /etc/sysconfig/network/ifcfg-eth-id-MAC, também é importante renomeá-los considerando a ordem das interfaces.

Para isso, se você ainda tem a VM original, pode olhar na aba "networking" os MACs das interfaces "Network 0", "Network 1" e etc, e assim, saberá quais MACs são da eth0, eth1, etc.

Outra forma é editar estes arquivos. Neles vai ter uma diretiva com o nome da interface:
NAME='Xen Virtual Ethernet Card 0'

Por exemplo, é a interface "Network 0" que deve corresponder à eth0 do /etc/udev/rules.d/30-net_persistent_names.rules.

Com exemplos, tudo fica mais fácil:

Label da VM: SLES1
Aba networking de SLES1: Network 0 -> a6:ec:d0:06:2c:77

Arquivo /etc/udev/rules.d/30-net_persistent_names.rules de SLES1:

...
SUBSYSTEM=="net", ACTION=="add", SYSFS{address}=="a6:ec:d0:06:2c:77", IMPORT="/lib/udev/rename_netiface %k eth0"

Arquivos em /etc/sysconfig/network/:

- ifcfg-eth-id-a6:ec:d0:06:2c:77

Editando o arquivo:
  • NAME='Xen Virtual Ethernet Card 0'
  • Label da cópia de SLES1: SLES2
  • Aba networking de SLES2: Network 0 -> 22:8b:b8:f0:44:8c

Arquivo /etc/udev/rules.d/30-net_persistent_names.rules de SLES2 antes de alterar:

...
SUBSYSTEM=="net", ACTION=="add", SYSFS{address}=="a6:ec:d0:06:2c:77", IMPORT="/lib/udev/rename_netiface %k eth0"
SUBSYSTEM=="net", ACTION=="add", SYSFS{address}=="22:8b:b8:f0:44:8c", IMPORT="/lib/udev/rename_netiface %k eth1"

Altere este arquivo para ficar assim:

...
SUBSYSTEM=="net", ACTION=="add", SYSFS{address}=="22:8b:b8:f0:44:8c", IMPORT="/lib/udev/rename_netiface %k eth0"

Arquivo em /etc/sysconfig/network/:

ifcfg-eth-id-a6:ec:d0:06:2c:77

Mude o nome para:

ifcfg-eth-id-22:8b:b8:f0:44:8c

Outras dicas deste autor

Bacula - Vários volumes configurados no mesmo slot de um robô de fitas

Leitura recomendada

GPSIM - error while loading shared libraries (pop System76 - Ubuntu)

Repositórios de SlackBuilds no GitHub para o Slackware

Resolvendo problema E_FAIL (0x80004005) no VirtualBox

Emular arquivos ISO

Download do livro Grokking the Gimp

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts