Cópia completa do HD - cluster por cluster

Neste artigo vou relatar uma experiência que tive na empresa onde trabalho e como encontrei a saída para o problema. Vou explicar detalhadamente como fazer um backup completo do disco em outro HD, de uma forma tão fácil que dispensa até mesmo montar o outro hd. A cópia é completa, feita cluster por cluster e isso faz com que em caso de problemas, apenas uma troca de HD resolva a situação.

[ Hits: 40.491 ]

Por: Djair Dutra C. Jr. em 08/04/2008


Metendo a mão na massa!



Vamos partir do princípio de que você já conectou os dois HDs. Neste exemplo, o HD sata que já está instalado e funcionando é o /dev/sda. Portanto, o segundo HD sata deve ser o /dev/sdb.

Esta alternativa de backup é tão fácil que não é necessário nem montar o segundo HD.

Criando o script

Vamos criar então o script que fará toda a tarefa de backup. Ele deverá ter as linhas abaixo, exatamente como estão:

#!/bin/sh
date >> historico.log && dd if=/dev/sda of=/dev/sdb && date >> historico.log && echo "###########" >> historico.log

"Destroçando" o script

Além de fazer o backup, este script de apenas duas linhas cria um log que guarda um histórico de todos os backups efetuados, com tempo de início e término, sendo ideal para consultas futuras e para o acompanhamento diário.

A primeira linha #!/bin/sh define o interpretador que será chamado. É praticamente padrão para a maior parte dos scripts executáveis.

A segunda linha tem vários comandos juntos.

O comando date >> historico.log grava a data de início do backup no arquivo histórico.log.

Os caracteres && servem para executar o próximo comando somente após terminar o anterior, ou seja, só começar o backup após gravar a data no arquivo.

O comando dd cria uma cópia do HD de origem if=/dev/sda para o HD de destino of=/dev/sdb.

O comando date >> historico.log repetido após a cópia dos HDs, serve para gravar a data de término da cópia.

O comando echo "###########" >> historico.log serve apenas para colocar caracteres delimitadores para separar as datas de um dia para outro. Pode não parecer tão útil, mas quando tivermos um arquivo com mais de um mês de históricos, estes caracteres farão diferença no visual da análise.

Transformando o script em executável

Para que este script possa ser executado é necessária a linha de comando abaixo. Ela não só transforma em executável, como dá permissão para qualquer usuário executar o arquivo.

$ chmod a=rwx nome_do_script

Agendando a execução diária do script

No meu caso, usei um agendamento diário, de madrugada, onde não havia nenhuma atividade na empresa. Agendei para as 23:00 todos os dias.

Para abrir o crontab para edição use:

$ crontab -e

Para agendar a execução digite a seguinte linha no crontab:

0 23 * * * /pasta/nome_do_script

Para sair do crontab pressione a tecla ESC e depois digite :x e pressione ENTER. Após isso o agendamento já está pronto.

Página anterior     Próxima página

Páginas do artigo
   1. Entendendo a situação e a necessidade
   2. Metendo a mão na massa!
   3. Considerações finais sobre este backup
Outros artigos deste autor

Por que eu pago por 10 megas, mas só faço download a 1 mega?

Desenvolvimento Web - Simples dicas de segurança

Software Livre - Muito mais que somente tecnologia

O poder do SSH

Personalizando o Ubuntu 9.04 com Screenlets

Leitura recomendada

Guia de preparação para LPI

Computação Distribuída com TORQUE Resource Manager

Instalação do Cacti baseado em uma distribuição própria - CactiEZ

Instalando o VMWare no Slackware

Relato: Instalação mista dos sistemas Linux, MacOS e Windows na mesma rede

  
Comentários
[1] Comentário enviado por DarkSign em 08/04/2008 - 16:58h

Bem, só pra supor, e se ocorresse uma queda de energia na hora que se está fazendo a img do primeiro pro segundo HD? Os 2 HDs dariam problema, ou apenas o primeiro, ou ele continua copiando os dados após a queda e reinicio do sistema?

[2] Comentário enviado por exercitobr em 08/04/2008 - 18:02h

Exatamente o que eu preciso... uma dúvida de minha parte antes de experimentar:
Posso usar de um hd sata para um ide ou vice-versa::?


[3] Comentário enviado por fprasera em 08/04/2008 - 18:43h

Mais uma duvida, não seria vantagem fazer um mirror do hd?
Desta forma o hd estaria sempre espelhado não precisando tanto tempo para a copia e quedas de energia não seriam problemas.
O problema de sistemas de espelhamento é caso o usuario apague arquivos, mas no caso de clonar o hd tambem pode acontecer isso

[4] Comentário enviado por diegoccn em 08/04/2008 - 18:55h

Eu faria o mesmo do nosso amigo fprasera, um sistema RAID, onde tudo que é gravado em um HD é gravado no outro também. Em caso de pane, basta trocar hd no servidor e tudo continuará funcionando normalmente. É incomparável o tempo que se ganha com o sistema RAID.
Mas esta não deixa de ser uma ótima idéia. Se alguem deletar algum arquivo acidentalmente, você pode recuperar este arquivo do HD de backup. PARABÉNS !!

[5] Comentário enviado por arsousa em 08/04/2008 - 20:29h

Creio que efetuar um esta cópia utilizando o comando dd com o sistema em produção poderá ocasionar erros na cópia pois os dados estarão sendo alterados e pelo sistema e pelos usuários, a restauração deste backup já foi testada?
Você poderia utilizar um programa chamado "mondo", ele cria um disco ou DVD de restauração do seu sistema e se preciso ele divide em vários CDs ou DVDs sem contar que o DVD criado é inicializável.

Mas a sua idéia é muito boa mas prefiro usá-la apartir de um live-cd para garantir que o sistema não estará sendo alterado.

[6] Comentário enviado por removido em 08/04/2008 - 21:10h

Eu analisaria essa idéia em 3 estágios:
Do ponto de vista mais técnico, seria um desastre esta alternativa, especialmente pq dá pra se fazer um raid q seria muito mais eficiente.
Do ponto de vista não tão técnico assim, diria q é razoavel, mas nao te livra de problema como um curto q sai queimando tudo. Nesse caso vc poderia montar um compartilhamento nfs e deixar o backup rolando solto pela madrugada.
Do ponto de vista prático, a idéia é muito boa: não precisou configurar raid, se preocupar com outro pc ligado pra fazer nfs e nem de ter q contar com os malditos usuários pra tarefa de backup.
Gostei da idéia, principalmente pela objetividade, mas acho que dá pra melhorar e tornar mais eficiente quanto elegante

[7] Comentário enviado por berdam em 08/04/2008 - 21:16h

?comentario=Eu já usei esse comandos ai, o único problema está na hora de vc definir qual é o hd de entrada(if) e o hd de saída(of), não inverta, pq senão, pode passar no rh. ahahaha

[8] Comentário enviado por abissoni em 09/04/2008 - 00:29h

Uma outra ótima alternativa, seria utilizar o DRBD (www.drbd.org). É um RAID 1 pela rede. Podemos dizer q é bem parecido com o conceito do "dd". Acredito que uma ótima solução para este caso. Eu utilizo este programa para fazer o espelhamento completo das minhas máquinas virtuais pela rede... que estão em um VMware Server. Assim, eu tenho elas 100% copiadas em tempo real para outro servidor. Muito legal esse DRBD....
Abração a todos... !!!!!

[9] Comentário enviado por engos em 09/04/2008 - 08:35h

Fiquei muito contente pelo seu artigo, estava fazendo alguns artigos, sendo um sobre o dd, mas por falta de tempo parei de escrever no momento e agora com esse seu artigo posso dar foco nos outros e esquecer desse, ao menos por algum tempo.

Há muito tempo venho falando sobre backup, segurança e coisas do tipo usando o dd como ferramenta, já que como CSI (profissão e não seriado) esse tipo de clonagem é o primeiro passo da investigação.

Agora no seu caso parece ser algo mais simples, chegou a levar em consideração o rsync? Ou RAID?

Abraço e parabéns pelo artigo.

[10] Comentário enviado por malacker em 09/04/2008 - 10:59h

Agradeço a todos que contribuiram com outras soluções e alternativas possíveis. Gostaria de enfatizar que, conforme foi citado no próprio artigo, esta solução de backup não é aconselhável para todos os casos. Uso esta opção por causa de características peculiares do servidor que relatei no artigo e sei que opções como RAID, por exemplo, são bem melhores.
Este artigo, tem por objetivo mostrar apenas mais uma maneira de fazer a mesma coisa. Em nenhum momento afirmei que esta alternativa era melhor do que qualquer outra.
Algumas vezes, quebramos a cabeça tentando resolver um problema e testamos várias possibilidades. Por diversas vezes, a mais crua e simples é a que nos traz os resultados que queremos. No meu caso foi assim e esta alternativa de backup vem resolvendo a parada.

[11] Comentário enviado por andersonjackson em 09/04/2008 - 13:40h

Cara mais uma dica:

Seguinte já que você já uma cópia feita pelo dd no outro hd. Experimente, usar o rsync para copia apenas as mudanças de um para outro, assim você não precisa copiar tudo de um para outro, que no meu ver deve diminuir a vida útil de ambos os dicos.

É uma dica apenas. E você não precisa "desfazer" a estrutura fisíca que tens.

Fica a sugestão.

[12] Comentário enviado por cincinatofurtado em 09/04/2008 - 16:01h

Como o amigo acima falou, rsync irá poupar a vida útil do seu hd e, para uma proteção extra, você poderia gravar um backup externo em um hd portátil, por exemplo, com o mondo.

Aqui na empresa uso um pc comum para backup. O servidor liga ele pela lan, faz o backup, grava uma imagem com o mondo e desliga o pc.
Assim tenho dupla redundância e proteção dos dados.

Fica a dica. Abraços !

[13] Comentário enviado por Teixeira em 09/04/2008 - 22:34h

O mais importante no trabalho de manutenção e proteção de dados é a capacidade de inventar, de não ficar pasmo diante das dificuldades.

Você descobriu uma solução, foi em frente, e deu certo. É isso aí.

HDs em uma configuração raid também funcionam muito bem, pois a cópia é simultânea.
No entanto gostaria de lembrar que - de uma forma ideal - backups ficariam melhor preservados se fossem armazenados em outro prédio, o mais afastados possível do HD original (antevendo assim a possibilidade de algum sinistro).

[14] Comentário enviado por esdra$ em 10/04/2008 - 09:35h

Show!

Eu faria o mesmo nessa situação. O único problema é a demora, e se for usar isso todas as noites é provavel que esse HD não dure muito.

nobreak certo no servidor neh...flw


[15] Comentário enviado por marcosmiras em 10/04/2008 - 14:06h

Muito bacana o artigo, principalmente ao fato de ser simples! E pode ser muito útil só que para utilizar como uma forma de backup é um pouco estranho se comparado a um RAID 1...
Como o Rodrigo (engos) mencionou acima numa perícia é uma ferramenta muito útil, como o md5sum, ferramentas de criptografia, e assim vai...
Mas muito legal...
Abraço!

[16] Comentário enviado por lucas.suporte em 11/04/2008 - 11:46h

Djair Dutra - Ter backup para o uma admin é essencial e principalmente atualizado, não importa como ele é feito e sim "que éfeito" agora eu sempre sou a favor de ter mais de uma forma de backup. porque se uma falhar, o que pode acontecer vc terá a segunda. Se a sua forma atende sua necessidade continue fazendo, mas eu teria outra forma de backup para uma segurança maior. Outra coisa que li nos comentarios e achei importante, na hora da copia se cair a energia ...
vc dispoem de nobreak né? porque isso no seu processo de backup pode ser um risco muito grande para seu backup.

No de mais parabens !!!

Lucas Rocha
Analista de Redes em Linux

[17] Comentário enviado por fmpfmp em 18/04/2008 - 14:05h

Esse solução é "meia-boca". Seria muito mais inteligente usar um sistema de RAID1 no seu servidor do que clonar um HD inteiro toda noite...

Mas não deixa de ser interessante pra quem quer aprender como é simples se clonar um HD com Linux.

[18] Comentário enviado por joseslei em 07/04/2010 - 21:57h

Estava procurando uma solução igual a essa, vou testá-la para verificar se adapta a minha necessidade. Obrigado!

[19] Comentário enviado por parrera em 16/04/2010 - 15:26h

Uma dúvida, como vc clona um HD toda noite, ele cria uma imagem, uma por cima da outra?Por isso que a vida últil do disco está sendo afetada?Muito bom tutorial, parabéns!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts