Salim Aouar - ensinando para transformar!

Backups de discos LVM via rede com NFS

Veja um exemplo de script de backup para trabalhar com discos LVM em ambiente virtualizado KVM, salvando via rede com NFS

Por Salim Aouar dia em Virtualização

Backups de discos LVM via rede com NFS
  • Compartilhe esse post
  • Compartilhar no Facebook00
  • Compartilhar no Google Plus00
  • Compartilhar no Twitter

Faaaala pessoal... o post de hoje será para falar um pouco sobre backups via rede!

Trabalho com o ambiente virtualizado KVM (Kernel-based Virtual Machine) há 6 anos. O projeto possui 10 anos!

Para aqueles que querem trabalhar com Virtualização Profissional, eu indico fortemente o KVM, pois está vinculado ao Kernel do Linux, possuindo estabilidade, robustez e não consome muitos recursos.

Em conjunto com o KVM, configuro os discos do(s) servidor(es) com o LVM (Logical Volume Manager), que possibilita a criação de 'discos' separados para cada partição de uma máquina virtual.

Por exemplo, se quero criar um máquina virtual GNU/Linux com Debian, particionando o disco com 4 partições (/ raiz, /var, /tmp e swap), eu crio antecipadamente no LVM 4 discos (um para cada partição).

Mas, qual a vantagem disso? Uma delas é que consigo redimensionar discos com o LVM... ou seja, eu consigo redimensionar as partições da minha máquina virtual sem maiores dores de cabeça. Por exemplo, posso criar um disco para a partição /var com apenas 4GB... Se precisar de mais espaço, é só redimensionar com o 'lvresize' do LVM para o tamanho desejado.

"Depois veja aqui no blog minha Live sobre Particionamentos. Tem uma live inteira também sobre o LVM!"

Então, ao trabalhar com LVM em conjunto com o KVM, meu storage ficará com os discos (partições) das máquinas virtuais. E uma das preocupações é fazer o backup desses discos!

Lembre-se: Além do backup de configurações, banco de dados, e por aí vai... eu também faço um backup full dos discos das máquinas virtuais. Okay, Okay... eu sei que demora dependendo dos tamanhos... mas, o seguro morreu de velho! rs rs...

Como não devemos fazer um backup no mesmo host/local (não é mesmo?!)... Utilizo o NFS (Network File System) para montagem de diretório remoto e cópia dos arquivos via rede.

Então, vamos ao script que pode ser usado para fazer a cópia dos discos LVM (partições das máquinas virtuais) para o Servidor NFS (IP fictício 192.168.1.1):

#!/bin/sh
###Backups dos discos LVM

#Variável para a data atual
DATA=`date +%d-%m-%Y`

#Montagem do diretório via NFS
mount 192.168.1.1:/backups /dirbackups

#Backup das 4 partições da MV1 (Cópia com 'dd', compactação com gzip e transferência para o NFS)
dd if=/dev/vms/mv1-root bs=512K | gzip -9 > /dirbackups/mv1-root_$DATA.gz
dd if=/dev/vms/mv1-swap bs=512K | gzip -9 > /dirbackups/mv1-swap_$DATA.gz
dd if=/dev/vms/mv1-tmp bs=512K | gzip -9 > /dirbackups/mv1-tmp_$DATA.gz
dd if=/dev/vms/mv1-var bs=512K | gzip -9 > /dirbackups/mv1-var_$DATA.gz

#Backup das 4 partições da MV2 (Cópia com 'dd', compactação com gzip e transferência para o NFS)
dd if=/dev/vms/mv2-root bs=512K | gzip -9 > /dirbackups/mv2-root_$DATA.gz
dd if=/dev/vms/mv2-swap bs=512K | gzip -9 > /dirbackups/mv2-swap_$DATA.gz
dd if=/dev/vms/mv2-tmp bs=512K | gzip -9 > /dirbackups/mv2-tmp_$DATA.gz
dd if=/dev/vms/mv2-var bs=512K | gzip -9 > /dirbackups/mv2-var_$DATA.gz

#Desmontando o diretório
umount /dirbackups

Primeiramente, pegamos a data atual e armazenamos em uma variável chamada $DATA, através da linha DATA=`date +%d-%m-%Y`. Ela ajudará a formar o nome do arquivo de backup que vou salvar no servidor NFS.

Em seguida, realizamos a montagem do diretório remoto (servidor NFS) na máquina local (/dirbackups) com o comando 'mount 192.168.1.1:/backups /dirbackups'. Assim, tudo que copiarmos para /dirbackups, estará sendo copiado para o diretório no servidor NFS!

O próximo passo é só realizar as cópias dos discos LVM para o ponto de montagem NFS. No meu caso, eles ficam armazenados no diretório /dev/vms/

Como exemplo, podemos ver a linha a seguir:

dd if=/dev/vms/mv1-var bs=512K | gzip -9 > /dirbackups/mv1-var_$DATA.gz

Nela utilizamos o comando dd para fazer a cópia bit a bit do arquivo mv1-var (que é o disco da partição /var da máquina virtual mv1). Só que ao invés de copiar o arquivo, fazemos com que ele passe pelo processo de compactação com o gzip (gzip -9) e, somente depois, enviamos para o diretório NFS salvando com o nome_data.gz (> /dirbackups/mv1-var_$DATA.gz).

Depois de fazer as cópias necessárias, podemos desmontar o diretório NFS (umount /dirbackups)... e está finalizado o procedimento de backup dos discos!

Já conhece meu Guia de Bolso GRATUITO sobre Comandos GNU/Linux?! Aproveite!

Perceba a importância de se ter backups consistentes e que realmente funcionem. Faça testes periodicamente e acompanhe os backups.

Você pode agendar o script para executar via cron (crontab -e), automatizando esta importante tarefa. A periodicidade das cópias vai depender da necessidade em que está envolvido (diária, semanal, mensal, etc...).

É isso... deixe aí nos comentários se você faz backups. De que forma faz seus backups?! Utiliza alguma ferramenta?! Teve alguma idéia interessante para usar com o NFS e script de backup apresentado?

Ajude-me a chegar em mais pessoas. Compartilhe este post e meu blog!!!

Abraços,
Salim Aouar.

  • Compartilhe esse post
  • Compartilhar no Facebook00
  • Compartilhar no Google Plus00
  • Compartilhar no Twitter

Deixe seu comentário aqui: