Backup LMV via rede (GOA)

By | June 24, 2009

Isso é um artigo GOA – Gambiarra Oriented Architecture – Siga sob seu próprio risco.

A situação é a seguinte: Você tem uma partição LVM que precisa ser backupeada ASAP em outro servidor na rede. Você tem pouco espaço disponível e precisa disso para ontem. Nào tema!

O pré-requisito é que seu volume group deve ter de espaço livre o mesmo ou mais do que o uso real da partição.

Ou seja:

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
 6.7G  701M  5.7G  11% /
/dev/sda1              99M   18M   76M  19% /boot
tmpfs                 252M     0  252M   0% /dev/shm

Eu preciso entào de pelo menos 701MB livre no VG:

# vgdisplay VolGroup00|grep Free
 Free  PE / Size       255 / 7.97 GB

Beleza. Atendo o requisito. Vamos tirar um snapshot então:

# lvcreate -L800M -s -n backup /dev/VolGroup00/LogVol00
 Logical volume "backup" created

OK. Então vamos no servidor onde vamos colocar o backup e fazemos isso:

# nc -l -p 10100 | dd of=backup.img.gz

Voltamos no servidor que estamos backupeand e  fazemos o seguinte truque:

# dd if=/dev/VolGroup00/backup conv=sync,noerror bs=64K \
| gzip -c| nc 192.168.1.1 10100

Pronto. Agora é só esperar. Pode demorar um bocado isso.

Para acessar o backup você pode, ao invés de restaurar a imagem também com o dd (processo inverso), simplesmente montá-la e acessar os arquivos:

# gunzip backup.img.gz
# mount -t ext3 -o loop backup.img /mnt/
# ls /mnt/
bin  boot  dev  etc  home  lib  lost+found  media  mnt  opt  proc  root  sbin  selinux  srv  sys  tmp  usr  var

Não esqueça de destruir o snaphot:

# lvremove /dev/VolGroup00/backup