Está tudo bem para copiar um arquivo de imagem que ainda está montado através de um dispositivo de loop?

1

Eu tenho um arquivo de imagem de 100 GB que é criado usando dd . Este arquivo de imagem é montado por meio de um dispositivo de loop como leitura-gravação.

Eu quero armazenar um backup desse arquivo de imagem em um local remoto. Eu tenho um script que comprime o arquivo de imagem (usando zip ) e copia o arquivo zip para o armazenamento remoto (agendado usando cron ).

Agora, minha pergunta é: devo fazer meu script desmontar o arquivo de imagem antes de compactá-lo? (Se alguma operação de leitura e gravação estiver em andamento, eu não seria capaz de desmontá-la e o script falhará).

Ou não há problema em compactá-lo quando ele ainda estiver montado? O que acontece se houver alguma operação de gravação em andamento quando a compactação começar? O arquivo de imagem ainda seria consistente?

Gostaria de receber algumas ideias.

    
por Anjan 25.10.2012 / 15:14

1 resposta

2

Se você copiar uma imagem do sistema de arquivos enquanto estiver montada, leia & escreva, você obterá uma cópia inconsistente. Isso é verdadeiro, quer a imagem seja um arquivo subjacente a um dispositivo de loop ou, mais simplesmente, um dispositivo de bloco normal. Não é permitido zip enquanto ainda estiver montado.

A propósito, zip parece uma opção improvável para compactar um único arquivo grande. A natureza de streaming das ferramentas mais usadas gzip ou bzip2 parece mais apropriada.

Em vez de acessar uma imagem ao vivo, convém tirar uma foto dela. Uma opção seria usar um LVM LV em vez de um dispositivo de loopback suportado por arquivos. Então você poderia fazer um instantâneo LVM do LV antes de compactá-lo. O recurso de captura instantânea do LVM se comunica automaticamente com o sistema de arquivos para garantir um instantâneo consistente, se o sistema de arquivos suportar (o xfs e, eu acho, o ext4 suporta isso).

    
por 25.10.2012 / 16:42