Backups em vmware ESXi

6 Julho 2018 Por Adriano Afonso

Penso que não seja o único que esteja a procurar uma solução simples rápida e eficaz para fazer backup à versão Free da vmware, o vmware ESXi. Testei pelo menos duas soluções, o VM Explorer Virtual Machine Backup e o Veeam Backup Free Edition 9.5 com a versão ESXi 6.5, mas  depois de efectuar a actualização para a ESXi 6.7 (que já não tem uma série de bugs na interface gráfica web) todas elas deixaram de funcionar, e os suportes dizem que brevemente irão disponibilizar uma actualização que resolve o problema.

De qualquer das formas, não estava completamente satisfeito, porque estas soluções obrigavam-me sempre à instalação do software numa maquina M$ Windows, ocupavam alguma memória e os procedimentos não eram automatizados sem a compra de uma licença.

Curiosamente a que me chamou menos a atenção é exactamente aquilo que eu procurava. A solução xsibackup 11.0.1 da 33hops.com é gratuita (embora haja também uma versão paga com mais opções), funciona já em ESXi 6.7, apenas requer algum conhecimento GNU/Linux e corre directamente na instância ESXi 6.7. Para além disso, depois de instalado o CronJob, é totalmente automatizado.

Opções de Backup

ESXi para Discos

É muito importante destacar que a melhor maneira de fazer backups em ESXi para discos é ter esses mesmos discos configurados como datastores, quer eles estejam ligados por USB, quer tenham um NAS com iSCSI disponível como é o meu caso. A configuração do iSCSI no ESXi também não é difícil.

ESXi para ESXi

A segunda opção é ter outra instância de ESXi e enviar directamente da instância principal para a instância secundária. Desta forma poderão rapidamente arrancar as máquinas virtuais caso haja algum problema com a instância primária.

Instalação do xsibackup

Ter acesso à solução é tão simples como clicar em “Download xsibackup 11.0.1“, preencher os campos com um e-mail válido e poucos minutos depois recebemos um e-mail com as respectivas instruções e a chave de instalação.

A partir daqui há que aceder por SSH ao servidor, para isso basta iniciar o serviço em Host > Manage > Servives > TSM SSH. Abrir o Puty, colocar o IP do servidor e aceder com as mesmas credenciais de administrador.

cd /tmp
esxcli network firewall unload
wget http://a.33hops.com/downloads/?key=[a vossa key] -O XSIBACKUP-FREE-download.zip
unzip XSIBACKUP-FREE-download.zip && chmod 0700 install && ./install || cat xsibackup.zip && echo ""
rm -rf XSIBACKUP-FREE-download.zip
esxcli network firewall load

A seguir se o seguinte comando não correr:

./xsibackup

terão de aceder directamente à pasta onde este foi instalado, normalmente no primeiro volume onde está o sistema operativo, que no meu caso se chama RAID1-1:

cd /vmfs/volumes/RAID1-1/
./xsibackup

Este comando servirá essencialmente para aceitar a licença. É extremamente importante que tenham sempre em atenção os nomes dos volumes, pois vai ser necessário em muitos dos passos seguintes.

Testes

A 33hops.com no seu quickstart deixa um comando que permite fazer um teste para verificar se todas as configurações estão devidamente efectuadas. Aconselho vivamente a correr o comando de teste primeiro, e depois a correr mesmo o backup uma vez sem a opção –test-mode=true .

./xsibackup --backup-point=/vmfs/volumes/backup --backup-type=running --mail-from=email.sender@yourdomain.com --mail-to=email.recipient@anotherdomain.com --smtp-srv=smtp.yourserver.com --smtp-port=587--smtp-usr=username --smtp-pwd=password --smtp-sec=TLS --test-mode=true

Nota para que estou a usar um servidor com TLS, logo com a porta SMTP=587!

Toda a configuração restante tem como base a configuração por defeito, disponibilizada aqui. Nota para quem usou versões anteriores do xsibackup, pois existem bastantes alterações no ficheiro de configuração, o que me deixou um pouco confuso ao inicio.

Crontab

Instalar

Depois dos testes realizados, instalar então o Crontab

./xsibackup --install-cron

Se necessitarem de desinstalar o Cronjob, basta correr:

./xsibackup --remove-cron --cron-user=root

Configurar os Jobs

Na nova versão podemos ter vários Jobs, um para cada VM por exemplo.  A localização destes estão em:
PS: Se precisarem de ajuda no vi, tal como eu, aqui estão os comandos!

vi /vmfs/volumes/RAID1-1/xsi-dir/jobs/001

Uma das opções mais importantes é a opção –backup-prog, que na prática irá definir o tipo de cópia de segurança a ser feita. A lista de backup programs está disponível aqui e aconselho seriamente a consulta para a correcta escolha do tipo de backup.

O ficheiro deverá estar configurado da seguinte forma (exemplo):

"/vmfs/volumes/datastore1/xsi-dir/xsibackup" \
--host=192.168.0.180:22 \
--backup-prog=XSITools:z \
--certify-backup=yes \
--backup-point=/vmfs/volumes/backup3/$( date +%Y%m'00000000' ) \
--backup-type=Custom \
--backup-vms="LINUX1_XSIBAK,LINUX2_XSIBAK,WIN1_XSIBAK,WIN2_XSIBAK,MAIL_XSIBAK" \
--backup-how=Hot \
--remote-xsipath=/vmfs/volumes/datastore1/xsi-dir \
--use-smtp=2 \
--mail-to=daniel@33hops.com \
--backup-id=003 \
--description="XSITools backup of production VMs" \
--override=xsibakfilter \
--on-success="backupId->005" \
--on-error="backupId->005" \
--exec=yes >> "/vmfs/volumes/datastore1/xsi-dir/var/logs/xsibackup.log"

Como estou a usar a versão Free, e não preciso da maior parte das opções, deixo aqui o meu exemplo. A minha opção para o –backup-prog recaiu sobre o vmkfstools porque quero ter as VM’s completas e prontas a instalar noutro sistema. Para quem precisa de cópias de segurança incrementais, diferenciais ou de-duplicação, existem outras opções.

"/vmfs/volumes/RAIDx/xsi-dir/xsibackup" \
--backup-prog=vmkfstools \
--backup-point="/vmfs/volumes/RAID-lenovo" \
--backup-type=running \
--use-smtp=1 \
--mail-to=myemail@mydomain.com \
--backup-id=001 \
--description="Backup Enterprise VMs" \
--exec=yes >> "/vmfs/volumes/RAIDx/xsi-dir/var/logs/xsibackup.log"

Servidores SMTP

Nesta nova versão, a configuração dos servidores SMTP deixaram de estar dentro do ficheiro do Job e passaram a ter o seu próprio ficheiro. Desta forma é possível configurar mais do que um servidor de SMTP, podendo enviar o log para mais do que um e-mail. Para o utilizar, utilizar a linha acima –use-smtp=2 \ que indica igualmente a linha no ficheiro seguinte a editar:

vi /vmfs/volumes/RAID1-1/xsi-dir/conf/smtpsrvs

1;smtp.gmail.com:465;youremail@gmail.com;youremail@gmail.com;Y0urpassw0rd;yes;TLS;0

Configurar Cron

Os Crons propriamente ditos devem de ser configurados no ficheiro, o qual segue o formato normal dos cronsjobs:

vi /vmfs/volumes/RAID1-1/xsi-dir/conf/root-crontab

Caso tenham alguns problemas com o arranque/configuração do Job, ou do próprio Cron, a 33hops tem esta lista de troubleshooting que vos poderá ser bastante útil. A mim serviu-me bastante quando detectei que, por alguma razão, um backup que ficou pendurado e “empancou” o cron.

Actualizar o Crontab

Depois de ajustar o cron, basta correr o seguinte comando para actualizar o cron:

./xsibackup --update-cron

Se quiserem ter a certeza que o Cron do sistema foi devidamente actualizado, confirmar o cron do root:

vi /var/spool/cron/crontabs/root

Testes finais

Se quiserem testar o vosso Job antes de o correr o Crontab automaticamente, basta usar o comando:

./xsibackup --run-backup=001