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.226 ]

 


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

Extraindo legendas de arquivos de vídeo no formato .mkv

Executando o novo formato do Guitar Pro no TuxGuitar

repacman - reempacote um programa no Arch Linux

Mixxx - Transmita sua web rádio pelo Linux

Apresentando o BlueGriffon (DreamWeaver para Linux)

  

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