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