É possível inserir o disco atual que você está inicializando?

20

Eu tenho uma cópia do FreeNAS rodando em um disco USB ao vivo. E eu gostaria de fazer um backup disso.

Ao tentar evitar quebrar um sistema perfeitamente funcional, eu seria capaz de dd o disco enquanto o sistema operacional estava rodando?

Ou eu teria que desligar a máquina e executar dd de outra máquina?

    
por stuartc 04.03.2012 / 17:10

5 respostas

15

Você pode executar dd no disco em execução. Fazer isso quando houver mudanças pesadas na estrutura do disco deve ser evitado. Além disso, você deve fschk do destino quando terminar. Quanto mais silencioso o sistema estiver durante o backup, melhor.

Executar um backup frio (sistema de arquivos desmontado) é a melhor opção se você quiser usar o 'dd'.

Existem melhores opções para fazer o backup de um sistema em execução.

  • tar ou cpio lerá os arquivos e lidará razoavelmente bem com arquivos abertos. Você provavelmente perderá algumas das alterações que ocorrem durante o backup.
  • rsync se comporta como tar em relação a arquivos abertos e falta de alterações durante o backup. Ele pode ser usado para fazer o backup inicial e faz backups incrementais muito bem. Ao executar um backup incremental, ele pode ignorar a cópia de partes inalteradas do arquivo.

Se você estiver fazendo backup de um sistema de arquivos com arquivos de dados do banco de dados, investigue o suporte para backups ativos.

    
por 04.03.2012 / 17:23
15

É tecnicamente possível (como em "shooting-yourself-in-the-foot"), mas altamente desaconselhável, especialmente se qualquer uma das partições do disco for gravável.

Imagine este cenário:

  • dd começa a ler o disco no início e, felizmente, faz o seu caminho até o final.
  • Quando está no meio do caminho, o sistema operacional grava um arquivo no disco. O arquivo é um tanto fragmentado - uma parte dele está fisicamente localizada no começo do disco, e outra no final.
  • Não há problema para o sistema operacional - ele grava o arquivo muito bem e o expulsa de seus caches de gravação; agora está escrito corretamente no disco.
  • O problema é com o seu backup: dd já passou e copiou a primeira parte do arquivo, então ele irá capturar um estado inconsistente quando chegar à segunda parte - cada parte será de uma versão diferente!

Se você é capaz de remontar todas as partições no disco USB como somente leitura, este problema não deve ocorrer (ênfase em " não deve "); isso requer preparação inicial / offline significativa e configuração de tempo de inicialização para a partição / - não acho que você normalmente possa remontar / r / o on-the-fly, haverá várias coisas pendentes fora isso exigindo acesso r / w.

Portanto, a execução da cópia provavelmente não quebrará o sistema em execução, mas não fornecerá um backup viável , tornando a tarefa discutível. Eu recomendo altamente fazer a cópia off-line - o que exigiria desligar a máquina.

    
por 04.03.2012 / 17:24
4

Você nunca deve criar uma imagem de uma partição montada. Não importa se você inicializou a partir dela ou não.

Mas você terá dificuldade em desmontar a partição da qual você foi inicializado.

    
por 04.03.2012 / 17:23
3

Para isso, eu uso dump(8) no FreeBSD. Por exemplo. dump -auLf /mnt/some-other-disk/root.dmp /

A opção -L permite a cópia de um sistema de arquivos ao vivo, tirando um instantâneo.

Os dumps podem ser restaurados usando restore(8) .

Pode funcionar apenas com o UFS; Eu não tenho certeza disso.

    
por 06.03.2012 / 15:13
0

É incrível quantas dicas de backup não mencionam o seguinte:

O sistema Linux (e a maioria dos sistemas operacionais multi-thread) geralmente precisam estar inativos enquanto você faz o backup e a restauração.

Isso é mais fácil de ser alcançado quando você não está executando um SO enquanto está tentando fazer a imagem.

Para backup e restauração, ele pode ser montado e, na verdade, provavelmente deve ser, mas não pelo sistema operacional em execução como sua raiz (/).

Razão: Em todo sistema operacional multitarefa, incluindo o linux, há encadeamentos de código simultâneos que executam arquivos afetados, o que impossibilita a realização de backups ou restaurações precisas de conjuntos de arquivos em todo o sistema.

Em particular, enquanto você está pegando arquivos, pode haver alguma outra tarefa para criar ou excluir arquivos, de modo que o seu backup não represente uma imagem verdadeira e precisa do sistema de arquivos a qualquer momento. Se você tentar restaurar esse backup, haverá corrupção de dados, o que causará falhas e outras anomalias.

Opções: Os backups precisam ser feitos por software especial e / ou sistemas de disco (como o Acronis no Windows, por exemplo, que pode fazer backup de um sistema operacional em execução) ou por um SO externo acessando o sistema operacional -executando arquivos do sistema operacional que você está tentando fazer backup ou restaurar.

!!! Assim, quando você vê páginas da web dizendo para usar o Deja-dup , por exemplo, para fazer seus backups, isso só funciona para /home e SOMENTE se você não estiver executando programas que afetem /home enquanto estiver executando o deja-dup. (E mesmo assim você pode querer cruzar os dedos, a menos que você realmente saiba o que pode possivelmente tocar seus arquivos através de um daemon.)

    
por 27.07.2016 / 03:46