Como apresentado em um post anterior, o VMware ESXi é um sistema que possibilita particionar os recursos de hardware de um servidor, permitindo a execução de várias máquinas virtuais (guest VMs) ou simplesmente conhecidas como VMs (virtual machines).
Estando em um ambiente virtual é comum a necessidade de se clonar uma máquina virtual (mv), como para ambientes de testes de algum sistema em produção, configurações gerais, testes de soluções de software e etc. A versão free (gratuita) do VMware (ESXi) não tem uma opção nativa de clonagem (duplicação) de máquinas virtuais (e nem mesmo a função de renomear arquivos), porém, existem algumas maneiras de se fazer isso sem a necessidade de usar o vCenter, que é o software de gerenciamento de servidores da VMware de licença comercial. Vamos a elas!
Pré-requisitos para execução deste tutorial: conhecimento em Linux, conhecimento geral em redes de computadores e compreensão do conceito de virtualização.
Clonagem de VMs usando o copy padrão do VMware Datastore Browser
Talvez a maneira mais fácil e rápida de se clonar uma mv é a de usar o tradicional copy, do Browse Datastores, disponível na interface web do VMware ESXi. Neste caso, considerando que já você tenha uma mv configurada, no caso, qual você deseja clonar, faça:
- Desligue a mv que será usada na clonagem;
- No menu de navegação, vá em Storage / Datastores / Browse Datastores;
- Crie um novo diretório (sugestão: usar o nome da nova mv);
- Vá ao diretório da mv que será clonada (original) e então copie (um a um) todos os arquivos desta mv pré-existente para o novo diretório;
- Crie uma nova mv e use a opção register an existing virtual machine, conforme a imagem abaixo, e então aponte o novo diretório, para onde foram copiados os arquivos da mv original (no exemplo abaixo: ubuntu-copy).
Feito isso, basta localizar a nova VM na lista de máquinas virtuais e então ligá-la. O VMware detectará que os arquivos utilizados foram alterados, por isso, lhe questionará se eles foram copiados ou movidos. Responda a questão e então aguarde pelo carregamento da nova máquina virtual.
Após o carregamento da nova mv, fique atento as configurações de rede e, especialmente, ao hostname da máquina (sistema operacional), que deve ser alterado para um novo nome, diferente da mv original (que ainda permanece desligada). No Ubuntu, por exemplo, basta usar o comando $ sudo nano /etc/hostname
para alterar o hostname da máquina.
Clonagem de VMs usando usando SSH / SFTP
Bem semelhante ao método anterior, porém, com o adicional de que você poderá, via acesso SSH (Secure Shell) / SFTP (Secure File Transfer Protocol), renomear os arquivos e assim ter uma organização mais eficiente. Assim como no método anterior, considerando que já você tenha uma mv configurada, no caso, qual você deseja clonar, basta fazer:
- Desligue a mv que será usada na clonagem;
- No menu de navegação, vá em Host e, com o botão direito, selecione Services / Enable Secure Shell (SSH);
- Crie uma nova mv sem HD, com as configurações de hardware semelhante a que você deseja clonar, como na imagem abaixo:
- No menu de navegação, vá em Storage / Datastores / Browse Datastores. Nesta janela, localize o diretório com os arquivos da mv existente, que servirá como base para uma nova, clonada;
- Localize o arquivo .vmdk (Virtual Machine Disk) e então clique em Copy. Você deverá apontar o destino da cópia do arquivo, que deverá ser o diretório da nova máquina;
*Após o término desta cópia (que pode demorar, dependendo do tamanho do disco da mv original e da performance do seu servidor ESXi), você notará que, agora, no diretório da nova mv, também há um arquivo de disco rígido (vmdk), porém, com o mesmo nome da mv original. Como o VMware ESXi não permite renomear este arquivo, vamos conectar no servidor via SSH/SFTP e então renomeá-lo.
- Usando o aplicativo WinSCP (Windows) ou o Nautilus (gerenciador de arquivos padrão do Linux Ubuntu), acesse o servidor via SSH / SFTP (conforme imagem abaixo) e então vá ao diretório
/vmfs/volumes/datastoreX
- Localize o diretório da nova mv e, então, renomeie os 2 arquivos do tipo vmdk, sendo o *-flat.vmdk e o *.vmdk, com o nome da nova mv. Veja a imagem abaixo:
- Agora, edite o arquivo (vmdk) de texto (que tem apenas 1 kB de tamanho) alterando o nome do arquivo do disco rígido para o novo nome (usado no passo anterior) e salve a alteração;
- Volte ao VMware ESXi, edite as propriedades da nova mv e adicione um disco HD existente (Add hard disk / Existing hard disk) apontando para o arquivo que acabamos de renomear, que está no diretório desta mesma nova mv. Salve as alterações.
Feito isso, inicie a nova mv e, após o seu carregamento, fique atento as configurações de rede e, especialmente, ao hostname da máquina (sistema operacional), que deve ser alterado para um novo nome, diferente da mv original (que ainda permanece desligada). No Ubuntu, por exemplo, basta usar o comando $ sudo nano /etc/hostname
para alterar o hostname da máquina.
Terminado o processo, recomenda-se desativar o SSH do servidor ESXi, por questões de segurança.
Abaixo está o exemplo de duas máquinas Linux Ubuntu sendo que uma delas é uma cópia da outra:
*Com informações de: VMware – Sobre o vCenter, VMware Docs – Clone an existing virtual machine, Altaro – How to clone vms without vcenter, Ubackup – VMware ESXi – Cloning VM, Homelaber Brasil – Valdecir Carvalho – Como clonar uma vm no VMware ESXi sem vCenter.