Este Guia Rápido apresenta os procedimentos operacionais do Plugin de Backup RHEV/oVirt para o Bacula Enterprise versão 10 e superior.
O plug-in fornece backup clientless automático em nível de imagem das máquinas virtuais, backups diferenciais e incrementais via CBT, restauração e extração granular em nível de arquivo. Ele também suporta backups LAN Free.
Instalação
O Red Hat Virtualization permite dois modos de conexão diferentes e ambos podem ser usados pelo Plugin Bacula: OAuth e HTTP Basic Authentication. Para mais informações, consulte https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.1/html/rest_api_guide/documents-002_authentication_and_security#authentication.
Para usufruir das tecnologias de backup Diferencial e Incremental CBT, é necessário que o Cliente e Plugin do Bacula (Proxy) estejam instalados entro de uma Máquina Virtual do ambiente RHV, com os seguintes requisitos mínimos:
- CentOS 7, 8 ou superior, Debian ou outro Linux cujo pacote do Plugin esteja disponível
- 4 GB RAM
- Rede: Acesso à rede lógica RHV
- Armazenamento: 8 GB
- Versão do Bacula Enterprise Edition: 12.0.2 ou superior
- Máquina Virtual Java: 8
Crie um repositório yum/apt de acordo com o caminho exclusivo do plugin RHEV do repositório Enterprise Bacula, ou baixe e instale o pacote em uma máquina com um Cliente Bacula em funcionamento. Por exemplo:
rpm -ivh bacula-enterprise-rhv-plugin-10.2.3.el7.x86_64.rpm
A Java Virtual Machine em uma versão 8 ou superior é necessária e usualmente instalada como uma dependência.
Reinicie o serviço bacula-fd para carregar a biblioteca do plugin.
Preparação dos Discos VM
Para permitir o download correto dos discos durante os processos de backup e devido a um bug existente do RHEV (https://bugzilla.redhat.com/show_bug.cgi?id=1538814), as seguintes configurações devem ser definidas:
Para RHEV 4.1 (Compatível com RHEV 4.2)
Acesse o console do banco de dados PostgreSQL através de ssh para p RHV Manager. Por exemplo:
su postgres psql -U postgres -d engine # Get the existing value for future reference SELECT * FROM vdc_options WHERE option_name='ImageTransferClientTicketValidityInSeconds'; UPDATE vdc_options SET option_value=999999 WHERE option_name='ImageTransferClientTicketValidityInSeconds';
Para o RHEV 4.2
Acesse o shell da máquina do RHV Manager, então:
# Get the existing value for future reference engine-config --get ImageTransferClientTicketValidityInSeconds # Set value (we recommend 999999 seconds, virtually unlimited) engine-config --set ImageTransferClientTicketValidityInSeconds=999999
Certificado e TrustStore
Existem três maneiras de criar o armazenamento confiável que permite que o plug-in Bacula se conecte ao RHV em modo seguro.
a) Automatica: Chamada Plugin
O plug-in tem a opção de criar o truststore automaticamente. Para criar o truststore, execute o seguinte comando:
java -jar /opt/bacula/lib/rhvPlugin.jar --server=myrhv.com --operation=system --create_truststore=true --truststore_file=/tmp/rhv_truststore --truststore_password=changeit
Comando de exemplo para criar o truststore
java -jar /opt/bacula/lib/rhvPlugin.jar --server={server} --operation=system --create_truststore=true --truststore_file={truststore_path} --truststore_password={truststore_password}
b) Automatic: Script Interativo
Há um script interativo em /opt/bacula/scripts/rhv_config.sh. Quando o script é executado, ele solicita parâmetros como: servidor, caminho do TrustStore, senha do TrustStore, alias no TrustStore e caminho do keytool Java. Apenas o parâmetro ‘servidor’ é necessário. Os outros parâmetros por padrão são:
- Caminho do TrustStore: /opt/bacula/etc/rhv.cacerts
- Senha do TrustStore: changeit
- Alias interno de armazenamento confiável: rhvPluginX <randomNumber (1-100000)>
- Caminho para a keytool do Java: /usr/bin/keytool
Exemplo de execução de script:
user@host:~/bacula-plugin-rhev/src$ ./promptTrustStore.sh Welcome wizard to create TrustStore File Enter FQDM Red Hat Virtualization Manager:myrhev.com Path truststore (/opt/bacula/etc/rhev.cacerts): /opt/bacula/etc/rhevProbes.certs Password truststore (changeit): Alias (rhevPluginX7687): rhevPluginRHEV Path keytool ('/usr/bin/keytool'): /usr/bin/java/bin/keytool Resume: Server: myrhev.com Path Truststore: /opt/bacula/etc/rhevProbes.certs Pass Truststore: custom Alias: rhevPluginRHEV Keytool: /usr/bin/java/bin/keytool Are you sure? [no] yes
c) Manual
Ainda no computador cliente, gere o armazenamento confiável (truststore) que permite que o plug-in se conecte ao RHVM, da seguinte maneira:
curl -o /root/rhvm.cer http://ovirtman/ovirt-engine/services/pki-resource?resource=ca-certificate&format=X509-PEM-CA
Gere uma senha para o certificado do truststore. Substitua o caminho inicial do Java, se necessário.
keytool -import -alias "rhev truststore" -file /root/rhvm.cer -keystore /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre/lib/security/cacerts
Ele pedirá uma senha, o valor padrão é: “changeit”.
Nota: por padrão, o caminho do armazenamento confiável Java é: $JAVA_HOME/jre/lib/security/cacerts
Usuário de Backup RHEV
É possível usar o usuário ‘admin’ para o plugin, ou um usuário com permissões restritas. Leia o whitepaper de referência para obter mais detalhes.
Teste de Instalação
É possível usar o Plugin Bacula diretamente para testar as configurações anteriores e até mesmo listar datacenters RHEV, templates, storage_domains, hosts, discos e outros, como no exemplo a seguir:
java -jar /opt/bacula/lib/rhvPlugin.jar --server=ovirtman --truststore_file=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64/jre/lib/security/cacerts --truststore_password=changeit --profile=internal --user=admin --password=xxx --operation=list --list_datacenters
Configuração
Criação do FileSet
Crie um novo FileSet, onde todas as opções de Plugin podem ser definidas na interface gráfica do bweb Bacula Include – Plugin Options.
O parâmetro do plugin config_file permite a criação de um arquivo que pode ser usado para fornecer todas as opções necessárias ao invés de colocá-las na linha do plugin. Esses arquivos de configuração são arquivos de texto simples contendo uma configuração por linha, onde o nome da configuração e seu valor são separados por um sinal de igual “=”. Um arquivo de configuração poderia ser assim:
# /opt/bacula/etc/rhv.conf server=rhv.example.com user=admin truststore_file=/opt/bacula/etc/rhvm.truststore target_datacenters=myDatacenter operation=backup
Então, um exemplo para fazer backup de todas as VMs:
rhv: config_file=/opt/bacula/etc/rhv.conf
Este exemplo fará backup de todas as VMs de um Datacenter RHV.
rhv: server=rhv.example.com password=rhvpass123
Também é possível selecionar uma ou mais VMs para backup usando seu nome. Várias linhas de configuração de plugins podem ser usadas para seleção de máquinas diferentes.
rhv: server=rhv.example.com password=rhvpass123 target_virtualmachine=vmExample
É possível excluir um disco da VM do backup adicionando a seguinte diretiva. Vários discos ID podem ser listados entre vírgulas (,):
target_exclude_disks=[list_disks]
Uma expressão regular pode ser usada para selecionar várias VMs pelo nome e as VMs específicas podem ser excluídas dos backups:
target_virtualmachine_regex=vm* target_exclude_vms=vmname
Busque o Whitepaper referenciado para obter uma lista completa e uma descrição das opções de backup disponíveis.
Salve o novo FileSet.
Criação de Job
Crie um trabalho comum de backup do Bacula, associando-o ao File Daemon da máquina RHV e ao recém-criado FileSet.
Atenção! A opção Accurate=yes não deve ser marcada para os backups de VMs do RHV.
Aplique as alterações e execute um Job de backup de teste.
Restore
Para restaurar uma máquina diretamente para o RHEV, use a opção de restore where=/ (origem) e marque todo o diretório de backup da VM para restauração (por exemplo, @rhev/nome_vm/).
Para restaurar a configuração e os discos XML da VM em um sistema de arquivos, altere o where= para o diretório de restauração desejado (por exemplo, where=/tmp).
Restauração no Nível de Arquivo
A restauração granular é realizada através do Plugin Single-Item restore, de Bacula Enterprise.
Referência
Red Hat Virtualization Plugin – http://baculasystems.com
Disponível em: PortuguêsEnglish (Inglês)Español (Espanhol)