# Solução de backup: Bareos ### Introdução [](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-09-Sep/bareos-full-logo.png) Este documento destina-se a demonstração dos procedimentos de instalação e configuração básica da solução de backup Bareos. Tal solução permite a realização de trabalhos de backup e restauração de dados. São suportadas máquinas clientes Linux e Windows. As máquinas servidoras suportadas são do tipo Linux Debian, RedHat e Suse, porém, NESTE MANUAL será apresentada a instalação em sistemas CentOs na **versão >=7**. A versão contemplada do **Bareos** é a **17.2**. O Bareos é dividido em três componentes principais: o Director, o Console, o Storage Daemon e o File Daemon. O **Director** é o componente central, atuando como controlador que contata clientes e salva dados de backups nos armazenamentos. O **Console** é um componente utilizado para acessar configurações, verificar status e fazer alterações nos parâmetros do servidor via linha de comando. O **Storage Daemon** é o armazenamento dos dados de backup e é independente do Director pois nem sempre o mesmo servidor que controla é o mesmo que armazena os backups diretamente. E finalmente, o **File Daemon** é o componente cliente, aquele que recebe conexões do Director e provê a este os arquivos de backup referente aos conjuntos de arquivos configurados. Abaixo uma ilustração de como se dá a comunicação entre os componentes: [](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-09-Sep/0cbc9d2c54974088996df70580f2a26a.jpg) É possível notar que alguns nomes e senhas devem ser as mesmas em diferentes componentes do sistema de backup. Isto ocorre pois, **o mesmo atributo tem parâmetros diferentes à depender do contexto**. Por exemplo, o atributo *Director*, no contexto do **Director**, tem a função de definir as principais configurações neste componente. Já no cliente, o atributo *Director* informa qual é o **Director** que pode acessá-lo e a senha autorizada. IMPORTANTE notar estas diferenças. A primeira seção do documento é a de instalação do servidor da solução e o painel de gerenciamento web. A segunda seção é a de configuração do servidor e da solução de gerência web. A terceira sessão é a instalação e adição do cliente na lista do servidor. A quarta sessão demonstra como criar um trabalho de backup. Por fim, a última seção apresenta como realizar restauração de backupsa anteriores. ### Instalação Para instalar a solução será necessário primeiro instalar um tipo de banco de dados para uso próprio, em seguida instalar a solução em si, posteriormente instalar o **bareos-webui** e realizar algumas configurações básicas do servidor e de rede. #### Instalando o PostgreSQL Neste manual será demonstrada a instalação do PostgreSQL (recomendado) para a solução de backup Bareos. Será instalada a **versão 10** do banco de dados PostgreSQL. Primeiro, com um usuário com poderes de superusuário, adicione o repositório da versão 10 do banco a seu S.O da família Red Hat: `$ sudo yum -y install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm` Em seguida, instale os pacotes necessários ao PostgreSQL: `$ sudo yum -y install postgresql10 postgresql10-devel postgresql10-contrib postgresql10-libs postgresql10-test postgresql10-server postgresql10-docs` Ative o serviço do PostgreSQL: `$ sudo systemctl enable postgresql-10` Rode o comando para inicializar a base de dados: `$ sudo /usr/pgsql-10/bin/postgresql-10-setup initdb` Inicie o serviço e verifque o statatus: `$ sudo service postgresql-10 start` `$ sudo service postgresql-10 status` Altere o parâmetro de conexões máximas no arquivo de configuração do PostgreSQL: ```alterar $ sudo nano /var/lib/pgsql/10/data/postgresql.conf max_connections = 256 ``` Reinicie o postgresql: `$ sudo service postgresql-10 restart` #### Ativando o FirewallD O FirewallD é um firewall disponível no CentOs. Ele é utilizado na demonstração deste manual para filtrar portas na interface de produção do servidor de backup. Ative e inicie o FirewallD: ```ativar $ sudo systemctl enable firewalld $ sudo service firewalld start $ sudo service firewalld status firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) Active: active (running) since Qua 2018-09-12 15:19:34 EDT; 41min ago Docs: man:firewalld(1) Main PID: 731 (firewalld) CGroup: /system.slice/firewalld.service └─731 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid Set 12 15:19:31 t-bareos systemd[1]: Starting firewalld - dynamic firewall daemon... Set 12 15:19:34 t-bareos systemd[1]: Started firewalld - dynamic firewall daemon. ``` Ative as portas que futuramente serão necessárias para o Bareos: ```liberar $ firewall-cmd --list-all $ firewall-cmd --add-port=80/tcp --permanent $ firewall-cmd --add-port=9101/tcp --permanent $ firewall-cmd --add-port=9102/tcp --permanent $ firewall-cmd --add-port=9103/tcp --permanent $ firewall-cmd --reload $ firewall-cmd --list-all ```
Caso haja mais de uma interface de rede no servidor, uma boa prática é criar "zonas" no FirewallD contemplando as interfaces utilizadas para backup. Em seguida, realizar os filtros de portas nas zonas criadas ao invés de fazê-lo em todas as interfaces.
#### Instalando o Bareos Considerando o S.O centOs na versão >=7 e o Bareos na versão 17.2, defina algumas variáveis para facilitar o processo de instalação: ```variaveis $ DIST=CentOS_7 $ RELEASE=release/17.2/ $ URL=http://download.bareos.org/bareos/$RELEASE/$DIST ``` Faça o download do arquivo que adiciona o repositório do Bareos a seu S.O: `$ sudo wget -O /etc/yum.repos.d/bareos.repo $URL/bareos.repo ` Agora execute o comando para realizar a instalação dos pacotes do Bareos: `$ sudo yum install -y bareos bareos-database-postgresql` Adicione o usuário postgres ao grupo do bareos, isto será necessário nas próximas etapas. `$ sudo usermod -aG bareos postgres` Execute os seguintes comandos para realizar o login com o usuário postgres e criar as tabelas do banco de dados da solução de backup: ```criar $ sudo su - postgres $ /usr/lib/bareos/scripts/create_bareos_database $ /usr/lib/bareos/scripts/make_bareos_tables $ /usr/lib/bareos/scripts/grant_bareos_privileges $ exit ``` Após este ponto o servidor Bareos já estará instalado, mas a configuração da ferramenta será apresentada nas seções seguintes. #### Instalando o bareos-webui O bareos-webui é uma interface de gerenciamento web para o Bareos. Similiar ao webacula para o Bacula.O bareos-webui é muito útil para emitir comandos e ver configurações do servidor de backup. Entretanto, para modificar as configurações é necessário utilizar as ferramentas convencionais: **bconsole** e edição dos arquivos de configuração em texto.
A instalação é simples, basta apenas executar o seguinte comando: `$ sudo yum install -y bareos-webui` ### Configuração #### Bareos Configure o arquivo principal do **Director** (componente central do Bareos). Sugere-se alterar parâmetros para os descritos abaixos como segue: ```configurações $ sudo nano /etc/bareos/bareos-dir.d/director/bareos-dir.conf Name = #NOME DO SEU DIRECTOR: EX.: ifpe-cafg-bkp1 Maximum Concurrent Jobs = 256 Heartbeat Interval = 1 Minute FD Connect Timeout = 180s ```Neste ponto, com a alteração do nome do **Director** no arquivo principal, **É NECESSÁRIO** alterar o nome do *Director* nos arquivos de configuração do **File Daemon** (cliente de backup que o servidor possui) e do **Storage** (componente que armazena os backups).
```alterar $ sudo nano /etc/bareos/bareos-fd.d/director/bareos-dir.conf Name = #NOME DO SEU DIRECTOR $ sudo nano /etc/bareos/bareos-sd.d/director/bareos-dir.conf Name = #NOME DO SEU DIRECTOR ``` Para este manual, o diretório de backup considerado será o **/backup**. Serão criados subdiretórios para armazenamento dos backups dos tipos COMPLETO, INCREMENTAL e DIFERENCIAL. ```diretórios $ sudo mkdir -p /backup/COMPLETO $ sudo mkdir -p /backup/INCREMENTAL $ sudo mkdir -p /backup/DIFERENCIAL ``` Altere as permissões dos referidos diretórios: ```permissões $ sudo chown -R bareos:bareos /backup/ $ sudo chmod -R 700 /backup/ ``` Inicie e ative os daemons do Bareos: ``` $ sudo systemctl enable bareos-dir $ sudo service bareos-dir start $ sudo service bareos-sd start $ sudo service bareos-fd start ``` ##### Storage daemons e Devices Estes dois atributos são configurações globais que já possuem definições padrão no momento da instalação, entretanto, para uma boa prática no que se refere à configuração do servidor de backup Bareos, devem ser definidas logo no início antes de configurados qualquer trabalhos de backup. **Device** é o dispositivo no qual volumes serão armazenados. No Linux, aponta basicamente para um caminho dentro da estrutura de diretórios do S.O. Como deve ser de seu conhecimento, um caminho pode apontar para um diretório físico na partição do S.O, para um diretório NFS remoto, para uma partição separada, para um disco completo separado, para um storage, e etc. **Storage** refere-se a um grupo de armazenamento que dentre outras configurações, irá conter um ou mais *Devices* como atributos configurados. Vejamos à seguir uma configuração de exemplo para os **Devices** e os **Storage Daemons**. Abaixo, as configurações recomendadas do atributo *Device* no contexto do **Storage**. O arquivo configurado é o **/etc/bareos/bareos-sd.d/device/FileStorage.conf.** ```device $ sudo nano /etc/bareos/bareos-sd.d/device/FileStorage.conf ... Device { Name = Completo-Dev01 Media Type = File Archive Device = /backup/COMPLETO LabelMedia = yes Random Access = yes AutomaticMount = yes RemovableMedia = no AlwaysOpen = no Maximum Concurrent Jobs = 64 } Device { Name = Incremental-Dev01 Media Type = File Archive Device = /backup/INCREMENTAL LabelMedia = yes Random Access = yes AutomaticMount = yes RemovableMedia = no AlwaysOpen = no Maximum Concurrent Jobs = 64 } Device { Name = Diferencial-Dev01 Media Type = File Archive Device = /backup/DIFERENCIAL LabelMedia = yes Random Access = yes AutomaticMount = yes RemovableMedia = no AlwaysOpen = no Maximum Concurrent Jobs = 64 } ``` Note que há um atributo *Device* para cada tipo de backup: completo, incremental e diferencial. Este mapeamento é interessante em um cenário futuro onde o armazenamento dos backups *Full*, por exemplo, seja separado (até fisicamente) dos outros tipos de backup. Essa melhoria não acarretaria em alterações no Bareos, apenas no S.O - fstab. OBS: não há configuração de *Device* no contexto do **Director**. A configuração do atributo *Storage* é feita por meio do arquivo **/etc/bareos/bareos-sd.d/storage/bareos-sd.conf**. Ele contém configurações globais do armazenamento em seu próprio contexto. Abaixo, as configurações recomendadas do atributo *Storage* no contexto do **Director**. O arquivo configurado é o **/etc/bareos/bareos-dir.d/storage/File.conf.** ```storage $ sudo nano /etc/bareos/bareos-dir.d/storage/File.conf ... Storage { Name = Completo-Dev01 Address = # IP DO STORAGE, geralmente o mesmo IP desta máquina servidora SDPort = 9103 Password = # senha em /etc/bareos/bareos-sd.d/director/bareos-dir.conf Device = Completo-Dev01 Media Type = File Maximum Concurrent Jobs = 64 } Storage { Name = Diferencial-Dev01 Address = # IP DO STORAGE, geralmente o mesmo IP desta máquina servidora SDPort = 9103 Password = # senha em /etc/bareos/bareos-sd.d/director/bareos-dir.conf Device = Diferencial-Dev01 Media Type = File Maximum Concurrent Jobs = 64 } Storage { Name = Incremental-Dev01 Address = # IP DO STORAGE, geralmente o mesmo IP desta máquina servidora SDPort = 9103 Password = # senha em /etc/bareos/bareos-sd.d/director/bareos-dir.conf Device = Incremental-Dev01 Media Type = File Maximum Concurrent Jobs = 64 } ``` O atributo *Address* é o IP ou FQDN do servidor onde está configurado o SD do Bareos. O atributo SD*Port* informa a porta de acesso que está liberada no Storage (em seu próprio contexto). O atributo *Password* informa a senha de acesso ao Storage. O atributo *Device* informa qual dispositivo configurado no Storage será utilizado. Neste caso, um mesmo **Storage** pode ter vários **Devices**, porém, é optado neste manual pela atribução de um único **Device** a um único **Storage**. O *Media Type* é o tipo de mídia selecionada, por padrão é "File". *Maximum Concurrent Jobs* é o número máximo de trabalhos sendo executados simultaneamente que podem escrever em no referido **Storage*.*** Findo tais configurações, somente se faz necessário apontar os nomes dos **Storages** como parâmetro nos atributos que o solicitarem ou que este for obrigatório (pools, Jobs...). Reinicie o **Storage**: ```restart $ sudo service bareos-sd restart ``` #### Bareos-webui No arquivo **/etc/bareos-webui/configuration.ini** há configurações que podem ser modificadas à vontade do administrador. Por padrão não há esta necessidade. Ao final do arquivo **/etc/bareos/bareos-dir.d/profile/webui-admin.conf**, adicione as seguintes linhas antes da chave de fechamento do atributo *Profile*: ```web-ui $ sudo nano /etc/bareos/bareos-dir.d/profile/webui-admin.conf Profile { .... Plugin Options ACL = *all* } ``` Configure o arquivo **/etc/bareos-webui/directors.ini** alterando principalmente as linhas 10 e 16 como segue: ``` $ sudo nano /etc/bareos-webui/directors.ini .... [ifpe-cafg-bkp1] #linha 10 ... diraddress = # IP ou nome da máquina que contém o bareos (geralmente "localhost") #linha 16 ``` Crie um usuário que possa usar a interface web. Basta copiar o original e modificá-lo: ```criar $ sudo cp /etc/bareos/bareos-dir.d/console/admin.conf.example /etc/bareos/bareos-dir.d/console/cgti.conf $ sudo nano /etc/bareos/bareos-dir.d/console/cgti.conf Console { Name = cgti Password = "cgti" Profile = "webui-admin" } ``` Como root, execute o seguinte comando: `$ sudo setsebool -P httpd_can_network_connect on` Agora reinicie o apache (httpd) e o bareos: ```iniciar $ sudo service httpd stop $ sudo service httpd start $ sudo service bareos-director stop $ sudo service bareos-director start ``` Acesse a página de login do bareos-webui: `http://IP_SERVIDOR/bareos-webui/` [](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-09-Sep/imagem-bareos-webui-inicial.JPG) Utilizando as credenciais anteriormente configuradas é possível obter acesso a página inicial. [](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-09-Sep/imagem-bareos-webui-home.JPG) Inicialmente não haverão muitas informações pois ainda não há trabalhos de backup configurados, apenas trabalhos automáticos de backup de arquivos da própria ferramenta configurados inicialmente às 21h00 . ### Instalação do cliente de backup #### Etapa obrigatória no servidor Antes de qualquer operação, primeiro verifique se o servidor possui conectividade com o cliente na interface de rede desejada. `$ ping #ip_do_cliente` Cientes da conexão, NO SERVIDOR, digite o comando **bconsole** e em seguida, dentro do bconsole, rode o seguinte comando: ```adicionar * configure add client name=#nome_do_cliente address=#ip_do_cliente password=#senha Exported resource file "/etc/bareos/bareos-dir-export/client/ifpe-cafg-sambafs-fd/bareos-fd.d/director/t-bareos.conf": Director { Name = t-bareos Password = "[md5]9af9de4b43cfd0d9d4e196fcced09bfd" } Created resource config file "/etc/bareos/bareos-dir.d/client/ifpe-cafg-sambafs-fd.conf": Client { Name = ifpe-cafg-sambafs-fd Address = 10.20.253.199 Password = cgti } * ``` Este comando realiza duas operações: cria os arquivos de configuração necessários no servidor e cria um arquivo de configuração do servidor a ser enviado e utilizado no cliente. Este arquivo já contém o nome do **Director** e a senha informada no comando. Guarde este arquivo para momento posterior. **\#nome\_do\_cliente** geralmente é o hostname do host adicionado do sufixo "-fd". No caso de exemplo, o nome do cliente foi *ifpe-cafg-sambafs-fd*. **\#ip\_do\_cliente** é o IP do cliente na interface a qual se deseja realizar trabalhos de backup. *10.20.253.199* no caso em questão. **\#senha** é a senha a qual o **Director** precisará para ter acesso ao **Cliente** bareos-fd. É uma senha de autorização ao **Director**. Mas como dito, esta já é enviada pré-configurada para o cliente. A configuração no servidor está completa, agora é necessário realizar as configurações do cliente. Para o nosso exemplo, agora copie via SCP, FTP, rsync, para a máquina cliente, o arquivo de configuração que está no caminho **/etc/bareos/bareos-dir-export/client/ifpe-cafg-sambafs-fd/bareos-fd.d/director/t-bareos.conf**. As próximas etapas são no host cliente. #### Clientes Linux O cliente de backup Linux funciona para várias distribuições e versões, no entanto, a versão do cliente NUNCA deve ser superior a versão do servidor. Ou seja, se o servidor está na versão 17, instalar um cliente versão 18 será um problema, pois a comunicação não é compatível. No caso do **Debian**, instale o pacote bareos-filedaemon no cliente: `$ sudo apt install -y bareos-filedaemon` No caso do **centOs**, rode os seguinte comandos antes da instalação: ```centos $ DIST=CentOS_7 $ RELEASE=release/17.2/ $ URL=http://download.bareos.org/bareos/$RELEASE/$DIST $ wget -O /etc/yum.repos.d/bareos.repo $URL/bareos.repo ``` Agora, rode o comando de instalação do pacote: `$ sudo yum install -y bareos-filedaemon` Acesse o arquivo de configuração do próprio cliente em **/etc/bareos/bareos-fd.d/client/myself.conf** ```cliente $ sudo nano /etc/bareos/bareos-fd.d/client/myself.conf Client { Name = ifpe-cafg-sambafs-fd Maximum Concurrent Jobs = 20 } ``` A principal informação é o atributo **Name** que deve estar igual ao que foi configurado no servidor e vice-versa. Recomenda-se a manutenção do atributo. Agora copie o arquivo gerado no final do processo de adição do cliente no servidor. Suponha que ele esteja em **/home/cgti/t-bareos.conf**. Copie para **/etc/bareos/bareos-fd.d/director/**. Isto permitirá a conexão do **Director** a este cliente via a senha informada na adição do cliente no lado do servidor. Reinicie o bareos-fd, caso **Debian**. `$ sudo service bareos-fd restart` Ative e inicie o bareos-fd, caso **centOs**. ```ativar $ sudo systemctl enable bareos-fd $ sudo systemctl start bareos-fd ``` NO SERVIDOR, rode o comando **bconsole**. Ao abrir o terminal, digite o comando **status client** e selecione na lista o cliente por meio da opção numerada, digite-o seguido de ENTER: ```bconsole * status client The defined Client resources are: 1: ifpe-cafg-sambafs-fd 2: bareos-fd Select Client (File daemon) resource (1-2): 1 Connecting to Client ifpe-cafg-sambafs-fd at 10.20.253.199:9102 ifpe-cafg-sambafs-fd Version: 16.2.4 (01 July 2016) x86_64-pc-linux-gnu debian Debian GNU/Linux 9.3 (stretch) Daemon started 17-set-18 16:27. Jobs: run=0 running=0. Heap: heap=131,072 smbytes=28,182 max_bytes=28,571 bufs=70 max_bufs=73 Sizeof: boffset_t=8 size_t=8 debug=0 trace=0 bwlimit=0kB/s Running Jobs: t-bareos (director) connected at: 17-set-18 18:08 No Jobs running. ==== Terminated Jobs: JobId Level Files Bytes Status Finished Name ====================================================================== 6 Full 10 233.3 M OK 14-set-18 18:56 gab-comunicacoes-job 14 Incr 0 0 OK 17-set-18 11:14 gab-comunicacoes-job 15 Incr 0 0 OK 17-set-18 11:25 gab-comunicacoes-job ==== * ``` O servidor tentará obter conexão com o cliente. Caso haja algum problema, verifique se a porta **9102** - padrão na comunicação servidor-cliente - está aberta em prováveis firewalls de rede ou no firewall local do cliente. Para outros problemas, verificar se o IP está correto, se a máquina cliente está conectada, e verifique logs da ferramenta para soluções em casos mais complexos. #### Clientes Windows Para instalar clientes windows, primeiro realize o download do executável para a instalação de acordo com a versão do Director. Os binários de instalação podem ser encontrados em `http://download.bareos.org/bareos/release/latest/windows`. O instalador segue o padrão da maioria dos programas para Windows. Após abrir o instalador, clique em *Next* e em *I Agree*, em seguida selecione o diretório de instalação, sugere-se o padrão. Na próxima tela, marque somente a opção *File Daemon (client)* e *Tray Monitor* em *Interfaces*. Em seguida, prestar bastante atenção aos campos pois devem estar de acordo com o que foi criado no **Director** nos passos anteriores - lembre-se que o cliente é adicionado ao servidor antes de proceder à sua instalação propriamente dita. Então preencha os campos de acordo com as informações. A senha complexa em *Client Monitor Password* não precisa ser alterada. Clique *Next*. Será mostrado um arquivo em texto para ser adiciona ao servidor, mas lembre-se que este arquivo já está no servidor, então, ignore e clique em *Next*. Pronto, conclua a instalação e **REINICIE O WINDOWS**. NO SERVIDOR, rode o comando **bconsole**. Ao abrir o terminal, digite o comando **status client** e selecione na lista o cliente por meio da opção numerada, digite-o seguido de ENTER: ```status * status client The defined Client resources are: 1: ifpe-cafg-sambafs-fd 2: bareos-fd 3: ifpe-cafg-maq12-fd Select Client (File daemon) resource (1-3): 3 Connecting to Client ifpe-cafg-maq12-fd at 10.20.253.112:9102 ifpe-cafg-maq12-fd Version: 17.2.4 (21 Sep 2017) VSS Linux Cross-compile Win64 Daemon started 20-Sep-18 12:22. Jobs: run=0 running=0. Microsoft Windows 7 Professional Service Pack 1 (build 7601), 64-bit Heap: heap=0 smbytes=40,477 max_bytes=40,671 bufs=81 max_bufs=83 Sizeof: boffset_t=8 size_t=8 debug=0 trace=1 bwlimit=0kB/s Running Jobs: t-win7-aleciano-mon (director) connected at: 20-Sep-18 12:23 t-bareos (director) connected at: 20-Sep-18 14:34 No Jobs running. ==== Terminated Jobs: ==== * ``` O servidor tentará conexão com o cliente. Como podemos ver a conexão teve sucesso, na linha 11 inclusive é possível ver o tipo de S.O, confirmando que é o cliente Windows recém-instalado. Os binários ficam instalados em `C:\Program Files\Bareos`. E os arquivos de configuração em `C:\ProgramData\Bareos`. ### Criando o primeiro trabalho de backup #### Atributo Job A configuração dos trabalhos de backup envolvem a definição de parâmetros nos arquivos de configuração que informarão entre outras coisas, o agendamento do backup, em que local será salvo, informações sobre os volumes utilizados e qual o cliente de backup utilizado. Abaixo os principais atributos na configuração de um *Job* (trabalho). Serão apresentados cada um destes em detalhes à seguir. O arquivo utilizado é o **/etc/bareos/bareos-dir.d/gab-comunicacoes-fd.conf**: ``` $ sudo nano /etc/bareos/bareos-dir.d/gab-comunicacoes-fd.conf Job { Name = gab-comunicacoes-job Type = Backup Client = ifpe-cafg-sambafs-fd FileSet = gab-comunicacoes-fileset Schedule = gab-comunicacoes-schedule Pool = gab-comunicacoes-completo-pool Messages = Standard } ```Para uma melhor compreensão dos termos no que se refere a ferramenta de backup, consultar referências oficiais da ferramentas que estão linkadas no final deste manual.
*Name* é o nome do trabalho (job) de backup. Ele define de forma única um determinado trabalho, por este motivo, não devem haver diferentes trabalhos com o mesmo nome. *Type* é o tipo do trabalho. Podem haver trabalhos do tipo *backup*, *restore*, *verify*, *migrate*, dentre outros. Por padrão é utilizado o tipo *backup*, para realizar cópia dos arquivos. O segundo tipo, *restore*, é mais utilizado quando se deseja restaurar os arquivos, porém, é comum ter esse trabalho com o tipo *restore* configurado mas não agendado (sem *Schedule)*, ou seja, só será executado manualmente por intermédio de um administrador do sistema. *Client* define o nome do cliente que sofrerá a ação de backup. Este nome é definido no ato de configuração do cliente e na adição do cliente de backup às configurações do servidor Bareos. Não é obrigatório ser o mesmo nome do *host* cliente, mas uma boa prática é utilizar este parâmetro como nome para que seja possível rapidamente identificar a qual host um cliente de backup está realacionado. O *Fileset* ou conjunto de arquivos define quais os diretórios sofrerão ação de backup. Por exemplo, **/srv/arquivos/termos/** é um parâmetro utilizado na configuração de um dos atributos de *Fileset* - este e outros atributos serão detalhados nas seções à seguir.. *Schedule* é o atributo que determina qual tipo de agendamento configurado será utilizado para realização do trabalho de backup. Por exemplo, por meio do schedule é possível informar que o trabalho será realizado todos os dias às 20:15. Para compreender o *Pool* é preciso compreender os *volumes*. O volume equivale a um arquivo de tamanho ou duração máxima pré-configurado e que vai recebendo os dados salvos nos trabalhos de backup. Quando um volume fica cheio ou tem sua duração encerrada, o Bareos proverá um novo. Assim, essa configuração dos volumes é feita pelo atributo *Pool*. Cada um destes agrupa uma série de volumes. Portanto, o atibuto *Pool* define os parâmetros que os volumes criados naquele trabalho irão possuir por padrão - um volume pode ter seu atributo modificado após a criação. Por exemplo: inicialmente um volume pode ter herdado da configuração do *Pool* o tamanho máximo de 1 GB. Mas é possível alterar esse volume em específico posteriormente e aumentá-lo para 2 GB ou reduzir para 490 MB. *Messages* é um atributo que define para onde as mensagens ou "logs" do trabalho serão enviadas em tempo real. Por padrão, são enviadas para *Standard*, que é a saída padrão do Bareos. Posteriormente é possível acessar um console (**bconsole**) e ver as mensagens recebidas no "canal" *Standard.* Os atributos *fileset*, *pool* e *schedule* podem ser configurados para cada trabalho de backup em específico. Isto é necessário pois, por exemplo, nem todos os arquivos que sofrerão backup estarão no mesmo *fileset* e nem todos os trabalhos obedecerão ao mesmo *schedule*. Por isto recomenda-se a sua configuração para cada tipo de trabalho de backup inserido. #### Atributo Fileset O fileset é o conjunto de arquivos para backup. Para configurar filesets, no servidor, insira o arquivo no diretório **/etc/bareos/bareos-dir.d/fileset.** Abaixo, um exemplo de configuração básica: ```configurar $ sudo nano /etc/bareos/bareos-dir.d/fileset/gab-comunicacoes-fileset.conf FileSet { Name = gab-comunicacoes-fileset Description = "Fileset dos arquivos de portarias, resoluções e termos." Include { Options { Signature = MD5 Compression = GZIP6 } File = /srv/arquivos/portarias File = /srv/arquivos/resolucoes File = /srv/arquivos/termos } } ``` #### Atributo Pool O atributo pool, como dito mencionado, configura os volumes a serem utilizados no trabalho de backup. Abaixo um exemplo de configuração básica. O arquivo localiza-se em **/etc/bareos/bareos-dir.d/pool/gab-comunicacoes-pool.conf**. ```atributo $ sudo nano /etc/bareos/bareos-dir.d/pool/gab-comunicacoes-pool.conf Pool { Name = gab-comunicacoes-incremental-pool Pool Type = Backup Storage = Incremental-Dev01 Recycle Oldest Volume = yes Volume Retention = 6 days Recycle = yes AutoPrune = yes LabelFormat = gab-comunicacoes-incr Maximum Volume Bytes = 5G } Pool { Name = gab-comunicacoes-diferencial-pool Pool Type = Backup Storage = Diferencial-Dev01 Recycle Oldest Volume = yes Volume Retention = 21 days Recycle = yes AutoPrune = yes LabelFormat = gab-comunicacoes-dif Maximum Volume Bytes = 15G } Pool { Name = gab-comunicacoes-completo-pool Pool Type = Backup Storage = Completo-Dev01 Recycle Oldest Volume = yes Volume Retention = 45 days Recycle = yes AutoPrune = yes LabelFormat = gab-comunicacoes-full Maximum Volume Bytes = 25G } ``` Note que foram selecionados um pool diferente para cada tipo de backup. Isto se deve ao fato de que os requisitos para cada tipo de backup podem ser diferentes: tamanho, duração, nome... O atributo *Name* define o nome do pool e geralmente este nome é utilizado na configuração do agendamento. O atributo *Pool Type* define o tipo de pool utilizado. O atributo *Storage* define o **Storage** utilizado pelo pool em questão. O atributo *LabelFormat* define o rótulo do nome dos volumes quando estes forem implementados. Geralmente é adicionado um número respeitando uma sequência ao final do nome do volume. *Volume Retention* e *Maximum Volume Bytes* definem, respectivamente, o tempo desde a sua criação em que o volume continuará sendo escrito, e, o tamanho máximo do volume. Ao se atingir o tempo ou tamanho máximo do volume, na próxima situação em que for solicitada a sua escrita, o Bareos proverá um volume novo. Os atributos remanescentes podem ser alterados conforme a necessidade do administrador. Para mais informações se faz necessário a consulta na documentação oficial da ferramenta. #### Atributo Schedule Este é responsável pela programação ou agendamento de trabalhos, sejam de backups, restauração (*restore*) e etc. Ele não é necessário por padrão na configuração do **Job**, mas em um ambiente em produção este tipo de automatização se faz necessária. Abaixo a configuração de exemplo do **Schedule**. O arquivo configurado é o **/etc/bareos/bareos-dir.d/schedule/gab-comunicacoes-schedule.conf**: ```atributo $ sudo nano /etc/bareos/bareos-dir.d/schedule/gab-comunicacoes-schedule.conf Schedule { Name = gab-comunicacoes-schedule Run = Level=Full Pool=gab-comunicacoes-completo-pool 1st sun at 00:05 Run = Level=Differential Pool=gab-comunicacoes-diferencial-pool 2nd-5th sun at 00:05 Run = Level=Incremental Pool=gab-comunicacoes-incremental-pool at 20:05 } ``` Note que o atributo *Pool* configurado anteriormente é utilizado aqui neste ponto. O trabalho de backup que utilizar este agendamento irá executar um trabalho *Full* às 00:05 do primeiro domingo (do mês), um trabalho *Differential* do segundo ao quinto domingo do mês (se houver) e um trabalho *Incremental* todo os dias às 20:05. Para mais exemplos de agendamentos consulte a documentação oficial da ferramenta. #### Executando o trabalho Há várias formas de executar o trabalho. Se ele estiver agendado, será executado automaticamente, mas é possível executar o trabalho de forma manual para verificar se as configurações estão corretas. Será demonstrado via **bconsole** e via painel web. ##### **Bconsole**: Na linha de comando do servidor digite o comando bconsole, em seguida **ative as mensagens automáticas no painel:** ```run $ sudo bconsole Connecting to Director localhost:9101 1000 OK: t-bareos Version: 17.2.4 (21 Sep 2017) Enter a period to cancel a command. * autodisplay on ``` Digite *run* e ENTER, em seguida digite o número correspondente ao trabalho dentre as opções apresentadas e ENTER: ```run *run Automatically selected Catalog: MyCatalog Using Catalog "MyCatalog" A job name must be specified. The defined Job resources are: 1: RestoreFiles 2: gab-comunicacoes-job 3: BackupCatalog 4: backup-bareos-fd Select Job resource (1-4): 2 ``` Agora digite "yes" e ENTER. ```run Run Backup job JobName: gab-comunicacoes-job Level: Incremental Client: ifpe-cafg-sambafs-fd Format: Native FileSet: gab-comunicacoes-fileset Pool: gab-comunicacoes-completo-pool (From Job resource) Storage: Completo-Dev01 (From Pool resource) When: 2018-09-14 17:03:12 Priority: 10 OK to run? (yes/mod/no): yes Job queued. JobId=6 You have messages. ``` Pronto, o trabalho foi iniciado. As mensagens aparecerão na tela com várias informações, a mais importante é saber no final se o backup foi de sucesso (**OK**) ou apresentou erro (**Error**). ```mensagens 14-Set 17:56 bareos-sd JobId 6: Elapsed time=00:00:19, Transfer rate=12.28 M Bytes/second 14-Set 17:56 t-bareos JobId 6: sql_create.c:872 Insert of attributes batch table done 14-Set 17:56 t-bareos JobId 6: Bareos t-bareos 17.2.4 (21Sep17): Build OS: x86_64-redhat-linux-gnu redhat CentOS Linux release 7.4.1708 (Core) JobId: 6 Job: gab-comunicacoes-job.2018-09-14_17.56.07_33 Backup Level: Full (upgraded from Incremental) Client: "ifpe-cafg-sambafs-fd" 16.2.4 (01Jul16) x86_64-pc-linux-gnu,debian,Debian GNU/Linux 9.3 (stretch) FileSet: "gab-comunicacoes-fileset" 2018-09-14 17:04:00 Pool: "gab-comunicacoes-completo-pool" (From Job resource) Catalog: "MyCatalog" (From Client resource) Storage: "Completo-Dev01" (From Pool resource) Scheduled time: 14-Set-2018 17:56:06 Start time: 14-Set-2018 17:56:09 End time: 14-Set-2018 17:56:30 Elapsed time: 21 secs Priority: 10 FD Files Written: 10 SD Files Written: 10 FD Bytes Written: 233,394,285 (233.3 MB) SD Bytes Written: 233,395,389 (233.3 MB) Rate: 11114.0 KB/s Software Compression: 4.2 % (gzip) VSS: no Encryption: no Accurate: no Volume name(s): gab-comunicacoes-full0003 Volume Session Id: 2 Volume Session Time: 1536962107 Last Volume Bytes: 233,571,320 (233.5 MB) Non-fatal FD errors: 0 SD Errors: 0 FD termination status: OK SD termination status: OK Termination: Backup OK ``` Pronto, backup OK. Agora execute o trabalho manualmente via painel web na próxima sessão. ##### **Painel do bareos-webui**: Acesse a página do bareos-webui `http://IP_SERVIDOR/bareos-webui` e logue com seu usuário e senha. Após isso, na página inicial, clique em **Jobs** no painel superior lado esquerdo. [](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-09-Sep/jobs-home.JPG) Em seguida clique na segunda aba, de nome **Actions**. Na página que será exibida, clique no botão de "play" logo ao lado do nome que deseja executar o trabalho de backup. [](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-09-Sep/jobs-actions1.JPG) O sistema informará que o trabalho foi agendado e o seu o ID também será apresentado. [](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-09-Sep/jobs-queued.JPG)O **ID** de um job é uma informação importante para identificá-lo perante outros que foram executados ao longo da vida do sistema.
Um tempo depois, dependendo do volume dados, será possível notar qual o resultado do trabalho. Como é possível notar na imagem abaixo, o trabalho de ID=15 foi realizado com sucesso. Assim, este trabalho está configurado corretamente, seu cliente está com conexão disponível e será executado conforme o agendamento **(Schedule)** determinado. [](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-09-Sep/jobs-Success1.JPG) #### Realizando um trabalho de restauração de um backup O trabalho de restauração *(restore)* tem como objetivo recuperar o backup salvo no servidor e restaurar os arquivos no cliente. Também é possível que este trabalho recupere os arquivos PARA um outro host, por exemplo, quando a máquina cliente não está operacional e se deseja utilizar os arquivos em um host secundário ou reserva. Neste caso, o cliente de backup precisa estar instalado na segunda máquina e configurado no servidor como um dos clientes normais. Suponha que os arquivos representados pelo fileset **gab-comunicacoes-fileset** tenham sido apagados acidentalmente no cliente. Vamos utilizar o painel web para realizar a restauração. O fileset em questão aponta para os diretórios: /srv/arquivos/portarias; /srv/arquivos/resolucoes; /srv/arquivos/termos. Acesse a página do bareos-webui `http://IP_SERVIDOR/bareos-webui/` e logue com seu usuário e senha. Após isso, na página inicial, clique em **Restore** no painel superior lado esquerdo. [](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-09-Sep/restore--1.JPG) Na próxima tela existem diversas informações sobre como pode ser realizado o trabalho de restauração. No lado esquerdo primeira opção **(Client)** é possível selecionar o cliente a qual os dados a qual deseja recuperação estão relacionados. A segunda opção **(Backup jobs)** seleciona a qual trabalho de backup deseja-se a recuperação, geralmente é escolhido o último - qualquer que seja - ou o último *Full.* A terceira opção **(Merge all Client filesets)**, quando marcada 'Yes'. informa que todos os **filesets** do cliente serão recuperados, mesmo que no último backup incremental algum deles não tenha sido modificado. A quarta opção (**Merge all related...**), quando marcada 'Yes', informa que todos os trabalhos de backups até o último *Full* serão mesclados e recuperados. A quinta opção **(Restore to client)** pergunta a qual cliente se deseja restaurar os dados, geralmente é ao mesmo cliente de onde se originaram os dados no backup, porém, é possível selecionar um outro cliente. A sexta opção não se altera. A sétima opção **(Replace files on client)** pergunta se caso existirem os dados ou diretórios na máquina do cliente no caminho da oitava opção, se podem ser sobrescritos. A última opção **(Restore location on client),** como comentado, é o caminho para o qual os dados serão restaurados. Por padrão, o Bareos seleciona um local temporário ao invés do local original. Após escolher, clicar **Restore**. [](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-09-Sep/restore-2.JPG) Aparecerá na tela um diálogo informando que o trabalho foi inciado. [](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-09-Sep/restore-3.JPG) Após algum tempo será possível ver na lista de trabalhos do Bareos no painel web o resultado do trabalho. Então, é possível o administrador mover os dados do diretório temporário para onde necessitar. [](https://wiki.ifpe.edu.br/uploads/images/gallery/2018-09-Sep/restore-4.JPG) ### Referências Referência principal do Bareos, [http://doc.bareos.org/master/html/bareos-manual-main-reference.html](http://doc.bareos.org/master/html/bareos-manual-main-reference.html)