Seria possível fazer uma cópia quente de um sistema?

10

Eu gostaria de fazer backup do meu sistema sem desligá-lo. O clone do sistema também deve ser capaz de executar em outra máquina.

Eu tentei "dd" toda a partição do sistema em outro disco, depois garanti que não havia tarefas administrativas iniciadas. Eu acho que tive que dizer ao grub para inicializar nesse disco, então executei o comando:

grub-install  /dev/sdc1 

mas eu recebi este erro:

The file /boot/grub/stage1 not read correctly.

Eu sei que estou fazendo não é muito limpo, então você tem uma boa solução para alcançar meus objetivos ou uma idéia para resolver o problema do grub?

Gael
fonte
Se você precisar mantê-lo funcionando, isso significa que ele está realmente fazendo alguma coisa. Se for esse o caso, é quase certo que o conteúdo do seu sistema será alterado durante o backup. Isso torna os resultados um tanto imprevisíveis - teste muito antes de usar na produção.
21412 Joe

Respostas:

8

Existem várias opções que possuem trocas. Você não pode ddclonar um sistema de arquivos enquanto estiver montado de leitura / gravação ou o clone ficará corrompido, pois a fonte está sendo alterada durante a cópia, para que o destino fique parcialmente desatualizado e parcialmente não. Se você realmente deseja usar ddpara copiar uma partição a quente, pode fazê-lo com os instantâneos do LVM . Isso requer que você tenha instalado o sistema usando o LVM em primeiro lugar, mas é possível criar um instantâneo a qualquer momento e, como o instantâneo está congelado e não montado, você pode seguramente ddo instantâneo e, em seguida, removê-lo. A outra desvantagem de usarddé que perde tempo copiando todo o espaço não utilizado no volume e exige que o destino seja pelo menos tão grande, mesmo que a maior parte da fonte não seja usada.

Em vez de usar dd, você pode simplesmente usar ferramentas de backup tradicionais, como tarou dumppara fazer backup do instantâneo. Isso tem a vantagem de não perder tempo copiando espaço livre e pode ser restaurado em uma partição menor, desde que haja espaço para os arquivos. Você também pode extrair apenas alguns dos arquivos para fazer uma restauração parcial. Você também não precisa usar o LVM com este método: desde que tenha certeza razoável de que nenhum arquivo está sendo modificado ao fazer o backup, é seguro fazê-lo em um sistema de arquivos montado. A pior coisa que pode acontecer é que um arquivo individual modificado durante o backup esteja corrompido, em vez de todo o backup estar corrompido, como pode acontecer dd.

Como você parece ter percebido, depois de restaurar o sistema de arquivos, você ainda precisa reinstalar o grub para inicializar o sistema. Não sei por que você recebeu esse erro ao tentar, mas parece que você estava usando o grub-legacy, pois o grub2 não possui um estágio1.

psusi
fonte
Eu não usei o LVM, mas poderia, estou procurando uma solução durável. é suficiente copiar toda a árvore do sistema (excluindo proc) e modificar o grub?
Gael
@ Gael, é suficiente copiar todos os arquivos e reinstalar o grub, sim. Você também pode precisar atualizar os UUIDs em / etc / fstab. Observe que, se você estiver usando, tardeseja excluir não apenas / proc, mas também / dev, / sys e / run, ou use a --one-file-systemopção para impedir que ela desça para outros sistemas de arquivos.
Psusi
obrigado, vou tentar com alcatrão. Esta solução pode permitir um controle total do backup.
Gael
3

Usar algo como rsyncou tarcopiar a partição pode ser mais simples. Eu montaria a partição em um segundo ponto de montagem como /mntantes da cópia. Essas opções também permitem alterar o tamanho ou o tipo da partição. Você também pode ter estruturas em partições adicionais. Muitas vezes tenho partições separadas para /vare /usr. Eles precisarão ser considerados também.

Pode ser necessário pesquisar na grubdocumentação para determinar como direcionar o disco e a partição corretamente. install-grubpode fazer suposições incorretas que não fazem o que você deseja.

Existem ferramentas como essas mondoque permitem criar um CD de recuperação inicializável com o sistema operacional instalado.

BillThor
fonte
Eu estava usando o dd porque estava dizendo para mim que outras ferramentas de cópia de arquivos apenas copiarão arquivos, não o mbr e a tabela de partições. Lancei um olhar para o mondo e essa poderia ser a solução mais simples. Obrigado
Gael
@ Gael Se você estiver clonando apenas o SD1, não receberá o MBR. Existem várias ferramentas que atualizarão o MBR, se necessário. Normalmente, ele já possui código para procurar um registro de inicialização.
BillThor
1

Acho que não há uma opção real para fazer um backup confiável de um sistema em execução no nível do dispositivo: seu sistema de arquivos ficaria muito corrompido porque você não pode congelar o estado atual e a operação de backup leva um tempo significativo.

No entanto, você pode tentar as seguintes opções:

  1. Execute o sistema dentro de uma VM. Você pode criar uma captura instantânea do sistema e, em seguida, fazer um backup dessa captura instantânea. Quando o backup é feito, o instantâneo pode ser facilmente descartado. Isso resolve os problemas mencionados acima.
  2. Faça o backup no nível do sistema de arquivos, não no nível do dispositivo. Eu posso recomendar o rsnapshot para isso.
Vilmantas Baranauskas
fonte
Estou procurando uma solução que permita fazer backup de um sistema sem desativá-lo. Portanto, independentemente do método usado, o sistema deverá estar em execução. Se for suficiente copiar apenas o sistema de arquivos para copiar o sistema, o rsync fará o trabalho, o que traz o rsnapshot?
Gael
O rsnapshot fornece quantos backups múltiplos incrementais você precisa (por hora, diariamente, semanalmente, mensalmente) e os backups estão disponíveis na estrutura de diretórios completa, apesar de serem incrementais.
Vilmantas Baranauskas