Backups em vmware ESXi
6 Julho 2018Penso 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