REAR – Bare Metal Disaster Recovery for Linux Servers

Olá a todos,

Como certamente se recordam, num dos meus posts passados sobre backups Bareos, falei que iria apresentar em breve uma solução de baremetal disaster recovery para Linux.

É uma área necessária e fundamental em qualquer datacenter, e pode ser facilmente incorporada na existente estrutura de backups.

O software que torna isto possível chama-se REAR (Relax and Recover) que é um sistema de disaster recovery diretamente desde um chassis sem sistema operativo.

Um dos pontos fortes deste software é o seu enorme suporte transversal em tecnologias distintas, que vai desde a diversidade do hardware a restaurar, ao tipo e aos medias suportados.

Tipos de restores suportados: physical-to-virtual (P2V), virtual-to-physical (V2P), physical-to-physical (P2P) and virtual-to-virtual (V2V), systems of virtualization of KVM, Xen, VMware

Tipos de devices de restauro suportados: ISO, USB, eSATA, OBDR/bootable tape, PXE

Protocolos de transporte: HTTP, HTTPS, FTP, SFTP, NFS, CIFS (SAMBA)

Tipos de disco/volumes passiveis de serem restaurados: HWRAID (HP SmartArray), SWRAID, LVM, multipathing, DRBD, iSCSI, LUKS (encrypted partitions e filesystems)

Backends: CommVault Galaxy, EMC NetWorker (Legato), HP DataProtector, IBM Tivoli Storage Manager (TSM), SEP Sesam, Symantec NetBackup, Bacula, Bareos, duplicity/duply.

A instalação do produto REAR é extremamente simples e transparente e para o exemplo em mão iremos fazer o procedimento restaurando desde um Bareos.

Nota: É assumido que já têm uma infraestrutura de Bareos configurada e a funcionar corretamente.

No nosso exemplo iremos considerar a criação de uma imagem de boot ISO e um completo restore de um cliente – de nome fvlab01 – utilizando o nosso backend de Bareos.

No processo o Rear cria uma imagem ISO do sistema que é transferida em seguida para um servidor de NFS remoto que irá armazenar as imagens de boot.

Em primeiro lugar, será necessário configurar o cliente fvlab01, com os pacotes necessários existentes em EPEL e repos Bareos

# yum -y install epel-release

# curl http://download.bareos.org/bareos/release/16.2/CentOS_7/bareos.repo -o /etc/yum.repos.d/bareos.repo

# yum -y install bareos-bconsole nfs-utils genisoimage syslinux rear bareos-fd

Em seguida será necessário configurar o bareos, em particular a componente de bconsole:

# cat / etc/bareos/bconsole.conf

Director {
Name = testbackup-bareos-dir
DIRport = 9101
address = testbackup-bareos
Password = “gheMEjMijjzjY6GRZAGJptapbdgJ78M93DaGGwVhJuUajtoF9XZeEbvR”
}

Adicionamos os mappings de networking aos ficheiros de configuração do Rear. Esta informação é passível de ser obtida automaticamente, mas é conveniente definir se existir mais que uma interface de rede disponível e a prestar serviço

mkdir /etc/rear/mappings
echo “eth0 172.16.4.1/24” > /etc/rear/mappings/ip_addresses
echo “default 172.16.4.254 eth0” > /etc/rear/mappings/route

Em termos de best practices, é igualmente muito importante que para diminuir confusão em infraestruturas alargadas, que o nome do Client e o nome do Job tenham precisamente o mesmo nome do hostname da máquina.

Por exemplo servidor com o hostname fvlab01, fará que a secção na configuração do FileDaemon escrita no bareos-fd.conf tenha o nome:

Name = fvlab01

Em seguida, será necessário utilizar o template de configuração fornecido com os pacotes de instalação do Rear para obter um ficheiro configuração funcional:

cp /usr/share/rear/conf/default.conf /etc/rear/local.conf

Após as alterações ficamos com algo semelhante a isto:

#cat /etc/rear/local.conf

OS_VENDOR=CentOS
OS_VERSION=7.3
BACKUP=BAREOS
OUTPUT=ISO
BAREOS_CLIENT=$(grep $(hostname -s) /etc/bareos/bareos-fd.conf | awk ‘/-fd/ {print $3}’ )
OUTPUT_URL=nfs://172.16.50.203/backup
USE_STATIC_NETWORKING=y

Nota: Pelas razões descritivas acima apresentadas, optou-se por “templatizar” os valores para os nomes de Job, File Set, Client.

Em seguida, será necessário editar o ficheiro de recuperação do Rear  de forma a que ele encontre toda a informação necessária ao restore.

# vi /usr/share/rear/restore/BAREOS/default/40_restore_backup.sh

Procurar a linha:

BAREOS_CLIENT=$(grep $(hostname -s) /etc/bareos/bareos-fd.conf | awk ‘/-fd/ {print $3}’ )

E no mesmo lugar, adicionar uma nova variável:

BAREOS_CLIENT_1=$(grep “Name =.*-fd” /etc/bareos/bareos-fd.conf | awk ‘{print $3}’ | sed -e ‘s/-fd//g’ )

E invés de:

echo “restore client=$BAREOS_CLIENT where=/mnt/local select all done

Introduzimos:

echo “restore client=$BAREOS_CLIENT_1-fd restorejob=$BAREOS_CLIENT_1-restore fileset=$BAREOS_CLIENT_1-fileset where=/mnt/local select all done

Finalmente fazemos o iso de boot:

# rear -v -d mkrescue

E aguardamos o resultado do fim da criação do ISO e efetuamos um full backup via Bareos ao cliente fvlab01.
Pessoalmente, tenho o processo de rear a ser executado como um pré requisito de job:

Job {
Name = fvlab01-DRP
fileset = fvlab01-DRP
Type = Backup
Level = Incremental
Client = fvlab01
Schedule = fvlab01-DRP
Storage = fvlab01-DRP
Pool = fvlab01-DRP
Messages = Standard
Reschedule on Error = yes
Reschedule Interval = 1 hours
Reschedule Times = 3
Client Run Before Job = “/usr/bin/sudo /usr/sbin/rear -v mkrescue”
}

Isto irá causar que antes que o backup corra de filesystem do fvlab01, seja produzido um iso de boot REAR para garantir a exata configuração do sistema na altura que o backup é produzido – Partições, LVM, MDraid, networking, etc.

Para recuperar, apenas criar uma pen de arranque com o ISO, ou então arrancar do vosso sistema KVM favorito, selecionar automatic no grub e aguardar pelo processo de restore.

Quando terminar, o vosso sistema estará completamente recuperado.

Conclusão:

Este software preenche uma lacuna muito grande no panorama do business continuity para sistemas Linux.
Permite, com pouca intervenção humana após a configuração inicial, um automatismo em backups de disaster recovery para plataformas criticas a uma empresa ou negócio.
A somar a isto,  não pode ser desprezada a excelente capacidade de p2v ou v2p que este software permite.

Com ele, é possível fazer uma migração de físico para virtual ou no caminho inverso de um sistema ou plataforma, de uma forma simples, concisa e que certamente será bem mais rápida que um full reinstall de sistema operativo e de aplicação, com o restore dos dados aplicacionais no fim.

Se tiverem duvidas, reparos ou sugestões p.f. entrem em contacto comigo através do email nuno[at]nuneshiggs.com ou através dos canais do costume.
Terei como sempre todo o prazer em vos auxiliar.

Até ao próximo post, onde iremos abordar o DRLM que é a ferramenta de orquestração para instalações medias a grandes de Rear.
Nuno

Nota: Este post foi uma tradução e adaptação do post original que pode ser visto em https://habrahabr.ru/post/260955/