Backup Máquinas Virtuais VMware Com Bacula e GettoVCB

Habilitando o serviço SSH no ESXi

Vá na configuração do cliente vSphere

VMware ESXi vSphere Client Configuration

Clique em Security Profile

VMware ESXi vSphere Client Security Profile

Abra a aba Propriedades e vá para a opção de Serviços Remotos (Remote Access services).

VMware ESXi vSphere Client Security Profile Properies

Slecione o serviço SSH e clique para abrir automaticamente:

VMware ESXi vSphere Client Start SSH Service

Agora será possível acessar seu cliente SSHi via ssh. Se tiver qualquer problema verifique também o serviço de firewall:

VMware ESXi 5.5 Firewall

 

Download e configuração do Ghetto VCB:

Obtenha o pacote zip do GhettoVCB a partir de sua estação de trabalho (master.zip):

https://github.com/lamw/ghettoVCB

Copie o pacote para a raiz do servidor ESXi (exemplo):

scp master.zip root@192.168.1.10://

Acesse o servidor ESXi através de SSH. Descompacte o master.zip

cd /
unzip master.zip

Vá para o diretório criado:

cd ghettoVCB-master

Configure o serviço:

vi /backup/ghettoVCB-master/ghettoVCB.conf

Os principais valores a modificar são o diretório onde será gerado o backup intermediário das VM e a quantidade de versões dos backups locais que deverão ser armazenados. Como pretendo copiá-los com o Bacula não é necessário armazenar mais de uma versão.

VM_BACKUP_VOLUME=/vmfs/volumes/datastore1/backup
DISK_BACKUP_FORMAT=thin
VM_BACKUP_ROTATION_COUNT=1
POWER_VM_DOWN_BEFORE_BACKUP=0
ENABLE_HARD_POWER_OFF=0
ITER_TO_WAIT_SHUTDOWN=3
POWER_DOWN_TIMEOUT=5
ENABLE_COMPRESSION=0
VM_SNAPSHOT_MEMORY=0
VM_SNAPSHOT_QUIESCE=0
ALLOW_VMS_WITH_SNAPSHOTS_TO_BE_BACKEDUP=1
ENABLE_NON_PERSISTENT_NFS=0
UNMOUNT_NFS=0
NFS_SERVER=172.30.0.195
NFS_VERSION=nfs
NFS_MOUNT=/nfsshare
NFS_LOCAL_NAME=nfs_storage_backup
NFS_VM_BACKUP_DIR=mybackups
SNAPSHOT_TIMEOUT=15
EMAIL_ALERT=0
EMAIL_LOG=0
EMAIL_SERVER=auroa.primp-industries.com
EMAIL_SERVER_PORT=25
EMAIL_DELAY_INTERVAL=1
EMAIL_TO=auroa@primp-industries.com
EMAIL_ERRORS_TO=
EMAIL_FROM=root@ghettoVCB
WORKDIR_DEBUG=0
VM_SHUTDOWN_ORDER=
VM_STARTUP_ORDER=

Alternativamente seria possível salvar este backup do ghuetto em outro servidor através de NFS e também configurar o envio de email, o que não é contemplado neste guia na medida que pretendo deixar essas funções ao Bacula.

Forneça permissão de execução no script do ghetto que inicia os backups:

chmod o+rx ghettoVCB.sh

Execute o script para fins de testes. Você pode fazer backup de todas as máquinas com a opção -a ou pode especificar o nome das mesmas (o nome da máquina virtual configurado no cliente cSphere – case sensitive):

ghettoVCB.sh -g /ghettoVCB-master/ghettoVCB.conf -m VM-NAME

Configuração do Bacula

Você pode configurar o cron do ESXi para rodar o ghetto numa periodicidade desejada ou pode configurar um script antes do Job de backup do Bacula.

Como não é possível instalar cliente do Bacula no ESXi a alternativa é chamar o script a partir de outro servidor, bem como a cópia do backup gerado. Você pode também ter um pós backup script para deletar o backup inermediário go ghetto, depois que o Bacula tiver copiado para o storage.

Para chamar o script remotamente installe o sshpass. Exemplo:

apt-get install sshpass

Configure um job de backup para chamar o script (neste caso fiz um job para cada VM):

Job {
 Name = "Backup_Esxi_VM-NAME"
JobDefs = "DefaultJob"
Client = srv-backup-fd
 FileSet = VM-NAME
 ClientRunBeforeJob = "sshpass -p 'xxxx' ssh -o StrictHostKeyChecking=no root@192.168.1.10 /ghettoVCB-master/ghettoVCB.sh -g /ghettoVCB-master/ghettoVCB.conf -m VM-NAME"
 ClientRunAfterJob = "sshpass -p 'xxxx' ssh -o StrictHostKeyChecking=no root@192.168.1.10 rm -rf /vmfs/volumes/datastore1/backup/VM-NAME"
Schedule = vms-schedule
Priority = 10
}

Para copiar o backup intermediário do ghetto para outro servidor, poderia ser feito um script scp ou pode ser utilizado o plugin bpipe do Bacula para este fim, com a vantagem dos dados irem direto para o backup e não ocuparem espaço em outro servidor:

FileSet {
 Name = "VM-NAME"
Include {
Options {
signature = MD5
Compression = GZIP1
}
 Plugin = "bpipe:/mnt/bkp_VM-NAME.tar:sshpass -p 'xxxx' ssh -o StrictHostKeyChecking=no root@192.168.10.x /bin/tar -c /vmfs/volumes/datastore1/backup/VM-NAME:/bin/tar -C /backup/bacula-restores -xvf -"
}
Exclude {
}
}

Neste exemplo o Bacula irá restaurar o backup na máquina onde seu cliente está instalado (/backup/bacula-restores). Na restauração seria necessário copiar os arquivos para o servidor ESXi e utilizar o script do ghetto (ghettoVCB-restore.sh) para importar o backup para o vSphere.

Disponível em: pt-brPortuguês

Deixe uma resposta

Fechar Menu