O vetor de comunicação de um software de backup tradicional é sempre iniciado pelo servidor de backup. No entanto, firewalls e NATs são os dispositivos intermediários mais freqüentes que podem afetar o tráfego na Internet [1], e terminam por impedir essa conexão. De igual sorte, é muito difícil e trabalhoso abrir portas de rede locais para cada máquina que precisa de backup remoto.
Os clientes de backup por trás de firewalls ou com endereços NAT devem poder atravessar esses dispositivos, iniciando a conexão e Jobs de backup pela Internet a partir dos clientes remotos. Este é um dos recursos do serviço Tray Monitor do Bacula Community e Enterprise, como mostrado na Figura 1.
Figure 1: Client Initiated Backup flow[2]
Instalação Tray Monitor Bacula Enterprise
No Linux, o Bacula Tray Monitor é fornecido pelo mesmo pacote de instalação da interface gráfica BAT (por exemplo, bacula-enterprise-bat-8.8.6-1.el7.x86_64.rpm).
No Windows, o pacote de instalação tudo-em-um permite a seleção do componente do Tray Monitor.
Instalação Tray Monitor Bacula Community
O Tray Monitor do Bacula Community também pode ser instalado com o pacote de instalação executável do Windows, ou com o pacote Linux autônomo ou em conjunto com o pacote de instalação da interface BAT (por exemplo, rpm, deb), dependendo de como foi empacotado.
No entanto, também é possível compilar e instalar o Tray Monitor a partir do código-fonte Bacula com o Cliente Bacula, da seguinte maneira:
wget -qO- http://www.bacula.com.br/atual | tar -xzvf - -C /usr/src cd /usr/src/bacula-*/ ./configure --enable-client-only --enable-build-dird=no --enable-build-stored=no --enable-smartalloc --enable-bat yum install -y qt-devel qt ln /usr/bin/qmake-qt4 /usr/bin/qmake cd src/bacula-*/src/qt-console/tray-monitor/ qmake make make install cd ../../../ make && make install && make install-autostart-fd service bacula-fd restart
Configuração do Tray Monitor
Lado do Director
Adicione as seguintes linhas no arquivo de configuração do Director – /opt/bacula/etc/bacula-dir.conf. Ela pode servir à conexão de múltiplos clientes remotos.
Console { Name = fd-cons Password = yyy # These commands are used by the tray-monitor, it is possible to restrict CommandACL = run, restore, wait, .status, .jobs, .clients CommandACL = .storages, .pools, .filesets, .defaults, .estimate # Adapt for your needs jobacl = *all* poolacl = *all* clientacl = *all* storageacl = *all* catalogacl = *all* filesetacl = *all* }
Lado dos Clientes Remotos
Adicione o seguinte recurso no arquivo de configuração do cliente –/opt/bacula/etc/bacula-fd.conf (no Windows: Menu Iniciar, Bacula, Configuration, Edit Client Configuration):
Console { # Abre conexão para o Director Name = fd-cons DIRPort = 9101 address = localhost # Endereço IP Público/Internet do Director Password = "yyy" } Director { Name = remote-cons Password = "xxx" Remote = yes }
Reinicie o daemon/serviço do cliente Bacula para aplicar as alterações.
Adicione os seguintes recursos na configuração da Console na mesma máquina –/opt/bacula/etc/bconsole.conf (no Windows: Menu Iniciar, Bacula, Configuration, Edit Console Configuration):
Director { Name = localhost-fd address = localhost # Endereço de rede local do Cliente DIRport = 9102 Password = "notused" } Console { Name = remote-cons Password = "xxx" }
Finalmente, substitua ou crie um arquivo de configuração do usuário Bacula Tray Monitor, por exemplo: ~/.bacula-tray-monitor.conf (no windows, C:\Users\<user>\AppData\Roaming\bacula-tray-monitor.conf).
Observação: é possível fazer esta configuração graficamente usando a interface do Tray Monitor.
Monitor { Name = remote-cons Command Directory = /tmp # Directory to create "*.bcmd" files that runs backups automatically } Client { Name = localhost-fd address = localhost # Endereço de rede local do Cliente Port = 9102 Password = "xxx" Remote = yes Monitor = yes }
Iniciando os Jobs de Backup
É possível usar o GUI do Tray Monitor para iniciar novos trabalhos de backup. Além disso, o serviço também irá verificar periodicamente o diretório definido na diretiva “Command Directory” e processar eventuais arquivos “* .bcmd” criados pelo usuário para encontrar Jobs serem executados.
O formato do arquivo de comando “arquivo.bcmd” é o seguinte [2]:
<component name>:<run command> <component name>:<run command> ... <component name> = string <run command> = string (bconsole command line)
Por exemplo:
localhost-fd: run job=backup-localhost-fd level=full localhost-dir: run job=BackupCatalog
O arquivo de comando deve conter pelo menos um comando. O componente especificado na primeira parte da linha de comando deve ser definido no Tray Monitor. Uma vez que o arquivo de comando é detectado pelo Tray Monitor, um pop-up é exibido para o usuário, e ele pode cancelar o Job se necessário.
O arquivo pode ser criado com ferramentas como “cron” ou o “agendador de tarefas” no Windows.
Telas
Referências
[1] Stiemerling, Martin. “NAT and Firewall Traversal Issues of Host Identity Protocol (HIP) Communication,” 2008. https://tools.ietf.org/html/rfc5207.txt.
[2] Bacula. “Release 9.0.0 | Bacula,” 2017. http://blog.bacula.org/release-9-0-0/.
Disponível em: PortuguêsEnglish (Inglês)