206.2 Operações de Backup
Introdução
Exitem algumas ferramentar para fazer Backup das informações contidas em servidores. Vamos fazer um overview sobre alguns dos métodos mais usados.
Mídias para Backup
As mídias mais usadas para fazer Backup em ambientes corporativos são:
Prioridade de uso | Mídia |
---|---|
1 | Disco |
2 | Fita |
3 | CD/DVD/Blue-Ray |
4 | PenDrive/Cartões |
Vejamos as Vantagens e Desvantagens no uso de cada uma.
Disco | Vantagem | Desvantagem |
---|---|---|
Velocidade de acesso | Menor vida útil | |
Disponibilidade (online) | Mail frágil para transporte | |
Facilidade de gerenciamento |
Fita | Vantagem | Desvantagem |
---|---|---|
Durabilidade | Gravação e Acesso sequencial | |
Compacta/Fácil Transporte | Disponibilidade de Acesso | |
Custo baixo por GB | ||
Capacidade maior de armazenamento |
Tipos de Backup
Vamos ver os Tipos de Backup que são usados.
Backup Full (Backup completo dos dados)
Aqui temos o Backup completo dos dados. O problema é que o armazenamento cresce muito rápido dependendo do tamanho dos arquivo, vejamos um exemplo:
Backup 1 = 10GB
Backup 2 = 10GB
Backup 3 = 10GB
Backup 4 = 10GB
Total de uso = 40GBPorém, é muito mais simples de fazer Backup dessa maneira.
Backup Incremental ou Diferencial (Backup parcial dos dados)
Aqui temos o Backup parcial dos dados, ou seja, só é feito Backup dos dados que foram modificados em comparação com o Backup anterior. Dessa maneira o armazenamento não cresce demais, porém, é um pouco mais complexo de ser feito, vejamos um exemplo:
Backup Full 1 = 10GB
Backup Incremental 1 do Full 1 = 1GB
Backup Incremental 2 do Full 1 = 2GB
Backup Incremental 3 do Full 1 = 1GB
Total de uso = 14GBDemora um pouco mais para recuperar os dados já que tem que recuperar o Full mais os incrementais necessários para chegar na versão do Dado que deseja.
Diretórios para Backup
Ao fazer Backup sempre temos que considerar fazer backup de alguns diretórios, são eles:
/home
Arquivos dos usuários.
/etc
Configurações do S.O e Aplicações/Serviços
var
Logs e bibliotecas, spool/mail, www entre outros.
/usr e /opt
Software instalados.
Comandos Básicos
Vamos ver os comandos que podemos usar para fazer Backup:
TAR
Um método muito bom para agrupar os arquivos para então serem comprimidos. Vejamos algumas opções interessantes ao trabahar com Backup:
--exclude=file
- Muito bom para excluir alguns arquivos/diretórios do Backup;--incremental
ou-G
- Faz agrupamento apenas dos dados que foram modificados.--listed-incremental=file
- Grava o que foi incrementado e outras informações.Para fazer o agrupamento com
tar
para um diretório comum:
tar -cvf etc.tar /etc
Para fazer o agrupamento com
tar
para uma Fita:
tar -cvf /dev/st0 /etc
Para extrair da Fita com o
tar
:
tar -xvf /dev/st0
Ou podemos específicar todos os arquivos que tenham '.conf' no nome:
tar -xvf /dev/st0 '*.conf'
Vamos fazer um teste com as opções do
tar
citado acima:# Faça um backup full:
$ sudo tar -cvf etc.tar -g controle.txt /etc
# Crie um novo arquivo no '/etc':
$ sudo touch /etc/novoarquivo
# Adicione 'line 0' na primeira linha do arquivo recém criado:
$ sudo bash -c 'echo "line 0" > /etc/novoarquivo'
# Agora faça backup incremental':
$ sudo tar -cvf etc-inc-1.tar -g controle.txt /etc
# Vejam o tamanho dos arquivos:
$ du -hs etc*
252K etc-inc-1.tar
3.1M etc.tar
## Para recuperar deve-se descompactar o Full e depois os incrementais.Além do
st0
pode ser encontrado tambémnst0
Ost0
quando grava a informação na Fita automaticamente rebobina ela; Onst0
quando grava a informação na Fita não rebobina, precisa fazer manualmente.
Outra coisa, a fita não precisa ser montada nem colocar um file system nela.cpio
Outro comando que podemos usar para fazer backup é o
cpio
.# Vejamos um exemplo de uso:
$ sudo find /etc/*.conf | cpio -vo backup.cpio
# Para extrair:
$ sudo cpio -ivdm < backup.cpiodd
Outro comando que podemos usar para fazer backup é o
dd
. É usado para copiar uma partição inteira e por isso demora muito mais:# Para fazer Backup:
$ sudo dd if=/dev/sda1 of=backup_sda1.img
# Para recuperar o Backup:
$ sudo dd if=backup_sda1.img of=/dev/sda1
Dispositivos de Fita
O comando que usamos para gerenciar um dispositivo de Fita é o mt
. Algumas opções importantes:
# Vamos rebobinar a fita (rewind = rebobina) para quando quiser recuperar os dados:
mt -f /dev/st0 rewind
# Descarregar a fita do Driver (offline):
mt -f /dev/st0 offline
# Mostra o status do dispositivo:
mt -f /dev/st0 status
# Ir para o final da Fita, onde foi realizada a última gravação (bom para continuar gravando na fita):
mt -f /dev/st0 eod
Compactação
As fitas de Backup já possuem compactação via hardware, pode isso elas mostram dois valores de armazenamento, um sem compactação (normalmente o menor valor) e outro com compactação (normalmente o maior valor).
Não é recomendado usar compactação via software quando vamos copiar para fita!
Comandos para Transferência
Vamos ver como enviar o backup de uma máquina para outra.
scp
É o comando mais comum para transferência de arquivos em sistemas Unix/Linux, ele roda em cima do SSH, usando a mesma porta.
# Enviar o backup da máquina local para uma remota:
$ scp backup.tar fulano@192.168.1.10:~/
# Pegar o backup da máquina remota para a máquina local:
$ scp fulano@192.168.1.2:~/backup.tar .tar
Ainda é possível fazer isso diretamente com o tar:
tar -cf - /etc | ssh fulano@192.168.1.10 'cat > ~/backup.tar'
rsync
O
rsync
é bastante usado para fazer backup, principalmente por ele já fazer o incremental, primeiro ele faz um Backup Full e depois o Backup Full vai sendo incrementado, sem a necessidade de ter vários backups incrementais (esse é o comportamento padrão).# Transferir de uma máquina para a outra:
rsync -aruz /etc fulano@192.168.1.10:~/Para que isso funcione a máquina remota precisa ter o rsync, para então conectar na porta 873 e fazer a transferência, mas pode ser que essa porta esteja bloqueada, é possível então usar a porta do SSH:
# Usando ssh com porta padrão:
rsync -e ssh -aruz /etc fulano@192.168.1.10:~/
# Usando ssh com porta personalizada:
rsync -e ssh -p <PORTA> -aruz /etc fulano@192.168.1.10:~/