Guia Rápido Plugin KVM Bacula Enterprise

Visão Geral

Este Guia Rápido apresenta várias técnicas de backup de máquinas virtuais KVM com o plug-in exclusivo Enterprise Bacula (EBacula), que fornece os seguintes recursos, entre outros:

  • Backup de máquinas virtuais (VMs) clientless
  • Recuperação Granular no Nível de Arquivo
  • Descoberta automática de VMs
  • Suporte de Nível de Backup Completo, Diferencial e Incremental
  • Estados-Membros de backup em ‘em execução’, ‘em pausa’ ou até mesmo ‘desativado’
  • A capacidade de incluir ou excluir arquivos do backup da VM

O plug-in KVM foi projetado para ser usado quando o hipervisor usa armazenamento local para discos das máquinas virtuais e libvirtd para gerenciamento das mesmas. No entanto, o EBacula também possui outros plugins específicos para o Proxmox, Redhat RHEV/Ovirt e OpenStack.

Instalação

Instale o cliente de backup EBacula, Libs e o pacote KVM em seu hipervisor. Considere a distribuição, versão e arquitetura do Linux, como em:

rpm -ivh install bacula-enterprise-libs-10.0.5-1.el7.x86_64.rpm 
rpm -ivh install bacula-enterprise-client-10.0.5-1.el7.x86_64.rpm  
rpm -ivh install bacula-enterprise-kvm-plugin-10.0.5-1.el7.x86_64.rpm

Observação: o plug-in do KVM usa instantâneos (snapshots) ao fazer backup de VMs convidadas. Durante um instantâneo, os blocos modificados pela VM guest precisam ser copiados no espaço temporário, o espaço necessário depende da atividade do disco convidado. Por padrão, o espaço é alocado em /var/tmp, portanto, certifique-se de que haja algum espaço para isso.

Ferramentas de virtualização (qemu-ga) devem ser instaladas no convidado e talvez seja necessário configurar as VMs convidadas para desativar o sistema de arquivos corretamente durante a fase de instantâneo.

Configuração

Cliente de Backup

O daemon libvirtd deve ser iniciado e acessível. O File Daemon do servidor do hipervisor KVM deve ter acesso local, montado na rede ou SAN, para onde as imagens KVM são armazenadas. No servidor host KVM, o comando a seguir deve listar todas as VMs locais:

# virsh list --all
Id Name State
----------------------------------------------------
1 gentoo running
2 centos paused
- debian shut off

Se a especificação de um URI usando o parâmetro -c do comando virsh for necessária, o parâmetro uri= correspondente também será necessário no comando do plug-in mais adiante.

# virsh -c qemu:///system list --all
Id Name State
----------------------------------------------------
1 gentoo running
2 centos paused
- debian shut off

O script install-kvm.sh é projetado para testar a configuração do KVM do hypervisor. O script deve informar um “OK” no final, como no exemplo. Caso contrário, entre em contato com seu suporte.

# /opt/bacula/scripts/install-kvm.sh check
Enter the libvirt URI to connect libvirtd [qemu:///system]:
Trying to list VMs using virsh -r -c 'qemu:///system' list --all, it should not ask for a password.
Id Name State
----------------------------------------------------
1 gentoo running
2 centos paused
- debian shut off
Did you have to enter a password to get the VM list? [y/N]: N
Enter the name of a guest that will be used to test the KVM plugin requirements:
gentoo
Trying to mount gentoo filesystem as /tmp/bee-kvm-gentoo.2vsYz
Mount OK.
Attempting to list 10 files from gentoo root filesystem.
/tmp/bee-kvm-gentoo.2vsYz/
/tmp/bee-kvm-gentoo.2vsYz/bin
/tmp/bee-kvm-gentoo.2vsYz/bin/bb
/tmp/bee-kvm-gentoo.2vsYz/bin/dd
/tmp/bee-kvm-gentoo.2vsYz/bin/cp
/tmp/bee-kvm-gentoo.2vsYz/bin/df
/tmp/bee-kvm-gentoo.2vsYz/bin/du
/tmp/bee-kvm-gentoo.2vsYz/bin/ip
/tmp/bee-kvm-gentoo.2vsYz/bin/ln
/tmp/bee-kvm-gentoo.2vsYz/bin/ls
Unmounting gentoo filesystem.
OK: All tests are good.

Prepare sua conexão Cliente para Diretor (configure seu Nome do Diretor real no bacula-fd.conf, copie e cole a senha para o anexo do Diretor). Reinicie o Bacula Client para aplicar as alterações.

Director Bacula

Anexe o cliente ao diretor (crie um novo recurso de configuração do cliente usando a senha copiada da última etapa).

Crie um novo FileSet com as opções de plug-in do KVM desejadas. O exemplo da Figura 1 fará backup de todas as VMs do hipervisor. Você pode usar a GUI do BWeb, se desejar.

Guia Rápido Plugin KVM Bacula Enterprise 1

Figura 1. Uma Configuração de Plug-in do KVM para Fazer backup de Todas as VMs

Neste segundo exemplo, é possível incluir VMs específicas para este FileSet:

FileSet {
  Name = FS_KVM
    Include {
      Options {
        Signature = MD5
        Compression = LZO
      }
    Plugin = "kvm: host=centos,gentoo"
  }
}

Se um FileSet fizer backup de várias VMs, elas aparecerão na árvore de seleção de arquivos de restauração com o nome da VM como o primeiro diretório para restauração, como o seguinte:

* list files jobid=100
+---------------------------------+
| filename |
+---------------------------------+
| ...                             |
| /centos/boot                    |
| /centos/boot/grub               |
| /centos/boot/grub/menu.lst      |
| ...                             | 
| /gentoo/etc/passwd              |
| /gentoo/etc/group               |
| /gentoo/etc/hosts               |
| ...                             |
+ --------------------------------+

Se um FileSet KVM contiver apenas uma máquina virtual, o caminho de cada arquivo não será prefixado com o nome da máquina virtual, como mostrado abaixo. Esse comportamento padrão pode ser substituído usando o parâmetro de plug-in KVM host_prefix. O seguinte FileSet:

FileSet {
  Name = FS_KVM_centos
   Include {
     Plugin = "kvm: host=centos"
   }
}

Resultará na seguinte saída de comando list jobs do bconsole:

* list files jobid=101
+---------------------------------+
| filename |
+---------------------------------+
| ...                             |
| /boot                           |
| /boot/grub                      |
| /boot/grub/menu.lst             |
| ...                             |
+ --------------------------------+

A seleção de Inclusão ou Exclusão de arquivos ou diretórios do FileSet é ignorada ao usar o plug-in KVM. Para Incluir ou Excluir diretórios específicos, o próximo exemplo deve ser usado.

FileSet {
  Name = FS_KVM_etc_home
    Include {
      Plugin = "kvm: host=centos include=/etc include=/home exclude=/home/tmp"
    }
}

As opções atuais do Plugin são detalhadas da seguinte forma:

Option Default Description
uri O parâmetro URI especifica como se conectar ao hipervisor. A página de documentação em http://libvirt.org/uri.html lista os valores suportados.
host Máquina virtual para backup. É possível especificar uma lista de hosts separados por ‘,’ (sem espaços).
include Especifique arquivos ou diretórios para backup. É possível especificar múltiplos parâmetros include = na linha de comando do plugin.
exclude Especifique arquivos ou diretórios para excluir. É possível especificar múltiplos parâmetros exclude = na linha de comando do plugin.
host_prefix No Prefixar todos os arquivos com o nome da máquina virtual (obrigatório ao fazer backup de várias máquinas virtuais na mesma tarefa).
host_sep , Especifique um separador de host usado no parâmetro do host. host_sep =: host = h1: h2: h3
abort_on_error No Abortar o trabalho se ocorrer um erro durante o trabalho. Por padrão, se uma VM não estiver acessível, por exemplo, a tarefa será encerrada com JobStatus OK (T) e alguns JobErrors.

Crie um novo Job de backup usando o cliente KVM e o novo FileSet. Recarregue ou reinicie o daemon do Director para aplicar as alterações.

Restore

Para restaurar um arquivo, basta usar o comando bconsole restore, selecionar o trabalho de backup e executar um trabalho de restauração tradicional.

Considerações

  • Ao fazer um backup no nível do controlador de domínio (hypervisor) do KVM, alguns recursos do Bacula, como executar scripts (RunScripts) no cliente, não são suportados. O dump de um banco de dados MySQL em uma VM guest antes do backup exigirá o uso de scripts personalizados usando SSH, por exemplo, ou instalar um Cliente Bacula dentro do sistema operacional da VM.
  • Os CD-ROMs devem ser desconectados das VMs antes de tentar um backup com o plug-in do KVM. Além disso, o sistema pode relatar

Referências

  1. KVM Plugin Using Bacula Enterprise Edition Whitepaper, Bacula Systems. http://baculasystems.com

Disponível em: pt-brPortuguêsenEnglish (Inglês)esEspañol (Espanhol)

Deixe uma resposta