30/06/2009

ESXi - Cópias de segurança

O ESXi é um sistema operativo gratuito da VMWare baseado em Linux para máquinas virtuais (MV). A grande diferença para o VMWare server, é que este roda directamente sobre a camada de hardware, ou seja, não é preciso um sistema operativo (SO) pelo meio a "comer" recursos fisicos do servidor. O ESXi é bastante leve e ocupa apenas alguns Mega Bytes.
Neste artigo, não vou focar a instalação do ESX nem da sua consola de gestão remota, vou apenas focar, a utilização de um script de cópias de seguranças das máquinas virtuais (MV), presentes num ESX server.

Existem também o ESX, que é a versão comercial deste SO, e como é óbvio tem mas funcionalidades.

Os requisitos necessários para o tutorial que se segue são: ESX instalado e o putty (ou outra ferramenta de ligação remota por SSH);

Tutorial:
1 - Activar o acesso SSH:
Na consola do ESXi pressionar ALT+F1 e escrever a palavra "unsupported".
De seguida introduza a senha de root. Depois disto obtem-se acesso à bash do SO ESXi.

2 - Editar /etc/inetd.conf e descomentar a linha do #ssh (eliminar o #);

3 - Reiniciar o servidor ESXi;

4 - Ligar ao servidor por ssh:
ssh root@IP_ServidorESXi
(no caso de o vosso SO ser Linux)
Se forem utilizadores de Windows :( podem utilizar o putty para se ligarem ao ESX.

5 - Com o comando wget descarrega-se o script da VMware para o ESXi.
Versão ESXi3x:
wget http://communities.vmware.com/servlet/JiveServlet/download/8760-34-23594/ghettoVCB.sh
Versão ESXi4x:
wget http://communities.vmware.com/servlet/JiveServlet/download/8760-34-23594/ghettoVCB.sh

6 - Editar o script e alterar alguns parâmetros importantes:
  • VM_BACKUP_VOLUME=/vmfs/volumes/backup --> Caminho (local ou NFS) onde vão ficar as cópias das MV (Máquinas Virtuais). Recomenda-se que guardem numa máquina/storage remota (por NFS).
  • ENABLE_2GB_SPARSE=0 --> Se for =1 a cópias é dividida em ficheiros de 2GB.
  • VM_BACKUP_ROTATION_COUNT=3 --> Numero de cópias a guardar até começar a sobrepor.
  • VM_BACKUP_DIR_NAMING_CONVENTION --> Formato do nome da cópia. Recomenda-se deixar como está.
  • POWER_VM_DOWN_BEFORE_BACKUP=0 --> Se for =0 as cópias são efectuadas com a MV em produção.
  • ENABLE_HARD_POWER_OFF=0 --> Se for =0 está desactivo. Permite forçar o encerramento da MV caso ela não tenha encerrado durante o tempo especificado em ITER_TO_WAIT_SHUTDOWN.
  • ITER_TO_WAIT_SHUTDOWN=4 --> Não é aplicado, caso a opção anterior for=0; Recomenda-se deixar como está.
7 - Criar o ficheiro vmbackups com o nome das máquinas virtuais que o ESXi contém. Exemplo:

ServidorA
ServidorB
ServidorC

8 - Executar o script: ./ghettoVCB.sh vmbackups
Durante a execução do script será apresentada uma barra de progresso.

Recomendações:
- Pode criar um pequeno script que chame o comendo apresentado no ponto 8 e colocá-lo no cron (.weekly; .daily; (..)) de forma a automatizar a execução das cópias de segurança.
- As cópias directamente para NFS podem ser demoradas, então pode efectua-las para um directório local e depois copiá-las para a partilha NFS remota, poupando assim tempo nas cópias de segurança de cada MV.

Referências:
http://communities.vmware.com/docs/DOC-8760
http://www.vmware.in.th/forum/index.php?topic=6.0
http://blog.theworldrunsontechnology.com/2009/04/creating-virtual-machine-backups-in.html


A pesquisa feita para este artigo,
teve o auxílio de Ric Silva

4 comentários:

Paulo Gomes disse...

Se o vosso script tiver a terminações das linhas o caracter ^M têm de correr o seguinte comando:
sed 's/.$//g' ghettoVCB.sh > ghettoVCB_reparado.sh

aventux disse...

Viva.

No dia 28 de Janeiro de 2010 13:09, João Paulo Alves Florencio escreveu:
Caro colega

Estava lendo na internet, e vi seu comentario sobre wmware-cmd.

Tenho um server com esx e duas maquinas virtuais ligadas lá, para fins de teste e conhecimento. Acontece que eu precisei resetar as configurações do esx . fiz um reboot no server e quando subiu não havia mais maquinas virtuais, porem quando conecto via ssh as maquinas estão lá.

Sei que tem uma forma para recuperá-las. é necessario registrá-las novamente. aí que entra o vmware-cmd, porem esta funçao, não está habilitada para mim ...

preciso instalar a parte ???

Grato desde já???

Paulo Gomes disse...

João, não tenho a certeza, mas penso que o comando vmware-cmd é apenas do Vmware Server e não do ESX.
No ESX podes registar novamente as máquinas directamente no cliente do ESX. Podes ir ao separador "Configuration" -->"Storage"-->"Browse Datastore", depois surge uma especie de explorador; selecionas a pasta de cada máquina virtual e na parte direita do explorador, com o botão direito do rato em cima ficeiro com extensão .vmx, fazes "Add to Inventory".

Penso que é isto, se não for diz mais qualquer coisa.
Cumps,
Paulo Gomes

aventux disse...

de João Paulo Alves Florencio
para aventux
data 29 de Janeiro de 2010 20:36
assunto Re: vmware-cmd

Caro Paulo Gomes!!!!

Muitíssimo obrigado pela contribuição e pela agilidade em responder meu e-mail.

Ontem mesmo depois que te enviei o e-mail, continuei fuçando aqui e ali, com a finalidade de descobrir uma forma de resolver o problema. Felizmente descobri o que era preciso ser feito. E se não tivesse resolvido ainda, você teria sido minha salvação, pois é exatamente o que você me descreveu, exceto que ao invés de acessar pelo separador Configuration, acesse pelo Summary.

O mais legal com tudo isso é que eu enxerguei a possibilidade de mover maquinas virtuais de um server ESX para outro sem a necessidade de um Vmotion. Ainda está em fase de testes, mas aparentemente funciona bem.