GhettoVCB
O ghettoVCB é um script feito para cuidar do backup e restauração das máquinas virtuais.
Comece fazendo o download do arquivo de instalação em https://github.com/lamw/ghettoVCB/releases/download/ com nome de vghetto-ghettoVCB.vib para o diretório raiz do servidor ou outro de sua escolha.
Desde o diretório onde baixou o arquivo, rode o comando:
esxcli software vib install -v /vghetto-ghettoVCB.vib -f cd /vmfs/volumes/SSDVMServer01/
Crie então o diretório ghettoVCB no disco local com
mkdir ghettoVCB
e então copie os arquivos instalados no passo anterior:
cp /opt/ghettovcb/bin/ghettoVCB* ghettoVCB/
Altere o arquivo ghettoVCB.sh com:
vi ghettoVCB.sh
e altere:
VM_BACKUP_VOLUME=/vmfs/volumes/DiscoVMServer03/backup VM_BACKUP_ROTATION_COUNT=5 ENABLE_NON_PERSISTENT_NFS=1 NFS_SERVER=10.225.1.84 NFS_MOUNT=/mnt/BackupVMServer Non-persistent NFS datastore display name of choice NFS_LOCAL_NAME=backup NFS_VM_BACKUP_DIR=vmbackups
e na linha 944 trocar o -E por -x, conforme exemplo:
grep '''-E''' "^${VM_NAME}\$" "${VM_EXCLUSION_FILE}" > /dev/null 2>&1 por grep '''-x''' "^${VM_NAME}\$" "${VM_EXCLUSION_FILE}" > /dev/null 2>&1
crie os arquivos:
vm_exclusion_list:
vCLS (1) vCLS (2) vCLS (3) vCLS (4) vCLS (5)
e vms_to_restore
"/vmfs/volumes/backup/vmbackups/TV-Apache/TV-Apache-2021-02-19_13-34-20;/vmfs/volumes/DiscoVMServer02;3;tv-recuperada"
Rode o comando para testar e montar o NFS no local apropriado:
./ghettoVCB.sh -a -e vm_exclusion_list
Então alterar o arquivo /etc/rc.local.d/local.sh acrescentando antes do exit 0:
/bin/kill $(cat /var/run/crond.pid) cp /vmfs/volumes/SSDVMServer03/ghettoVCB/root.crontab.alterar /vmfs/volumes/SSDVMServer03/ghettoVCB/root.crontab mv /vmfs/volumes/SSDVMServer03/ghettoVCB/root.crontab /var/spool/cron/crontabs/root -f /bin/crond
- NOTA: O arquivo é somente leitura, então grave com
:wq!
)
Crie o arquivo /vmfs/volumes/SSDVMServer03/ghettoVCB/root.crontab.alterar
contendo:
#min hour day mon dow command 1 1 * * * /sbin/tmpwatch.py 1 * * * * /sbin/auto-backup.sh 0 * * * * /usr/lib/vmware/vmksummary/log-heartbeat.py */5 * * * * /bin/hostd-probe.sh ++group=host/vim/vmvisor/hostd-probe/stats/sh 00 1 * * * localcli storage core device purge */10 * * * * /bin/crx-cli gc #5 3 * * * /vmfs/volumes/SSDVMServer01/ghettoVCB/ghettoVCB.sh -a -e /vmfs/volumes/SSDVMServer01/ghettoVCB/vm_exclusion_list > /vmfs/volumes/backup/log/backupvmserver01-$(date +\%F).log 2>&1 5 13 * * * /vmfs/volumes/SSDVMServer01/ghettoVCB/ghettoVCB.sh -a -e /vmfs/volumes/SSDVMServer01/ghettoVCB/vm_exclusion_list > /vmfs/volumes/backup/log/backupvmserver01-$(date +\%F).log 2>&1
Note que o formato é invertido, minutos depois horas, então acerte o horário do backup de teste de acordo com suas necessidades antes de reiniciar e testar se tudo vai funcionar.
Feito isso, rode os comandos abaixo e aguarde até o horário programado para o teste do backup.
/bin/kill $(cat /var/run/crond.pid) cp /vmfs/volumes/SSDVMServer03/ghettoVCB/root.crontab.alterar /vmfs/volumes/SSDVMServer03/ghettoVCB/root.crontab mv /vmfs/volumes/SSDVMServer03/ghettoVCB/root.crontab /var/spool/cron/crontabs/root -f /bin/crond
Para acompanhar pode-se observar o arquivo de log em /vmfs/volumes/backup/log
, que deverá ter o log recente do backup efetuado.
Depois de comprovado o funcionamento, altere o arquivo /vmfs/volumes/SSDVMServer03/ghettoVCB/root.crontab.alterar
, removendo a última linha (com o horário para teste) e descomentando a anterior (com o horário conveniente para rodar o backup). Depois torne a rodar os comandos:
/bin/kill $(cat /var/run/crond.pid) cp /vmfs/volumes/SSDVMServer03/ghettoVCB/root.crontab.alterar /vmfs/volumes/SSDVMServer03/ghettoVCB/root.crontab mv /vmfs/volumes/SSDVMServer03/ghettoVCB/root.crontab /var/spool/cron/crontabs/root -f /bin/crond
Isso vai atualizar as configurações de horário. Acompanhe seu backup por alguns dias para ter certeza de que está funcionando como desejado e se não vai faltar espaço.
Para atualizar o vmware, é necessario tirar a instalação do ghetoVCB:
esxcli software vib remove --vibname=ghettoVCB
Apos finalizar as atualizações, voltar a instalação do ghettoVCB, geralmente com o arquivo VIB na raiz:
esxcli software vib install -v /vghetto-ghettoVCB.vib -f
Apos realizar a reinstalação do ghetto, rodar os seguintes comandos na pasta de instalacao do vghetto para retirar a VM vCLS do backup:
/bin/esxcli vm process list |grep ^vCLS > vm_exclusion_list /bin/esxcli vm process list |grep ^vCenter >> vm_exclusion_list /bin/esxcli vm process list |grep ^BackupVM >> vm_exclusion_list