É uma péssima ideia criar uma imagem de disco montada em disco?

2

Eu gostaria de fazer backup do meu servidor. Por exemplo, usando o dd:

dd if=/dev/md0 of=/some_network_share

Gostaria de saber se esta imagem será variada de forma inconsistente se o / dev / md0 estiver montado? Seria possível converter essa imagem dd para a unidade vdi e criar a máquina virtual working ? Usando este comando por exemplo:

VBoxManage convertfromraw ImageFile.dd OutputFile.vdi 

O tráfego da rede é desabilitado no firewall (há somente conexão de / para uma máquina remota onde a imagem é copiada).

    
por Maciek Sawicki 20.03.2011 / 14:53

5 respostas

2

Se você estiver usando volumes LVM (que você provavelmente deve estar usando em um ambiente de produção), há uma cópia no recurso de captura instantânea de gravação que pode produzir instantâneos exatos.

Existem vários produtos comerciais que podem fazer isso de alguma forma ou de outra - o vmware vCenter Converter pode fazer uma máquina virtual a partir de uma máquina viva, o Acronis TrueImage tem uma versão linux de um de seus produtos corporativos que suporta cópias ao vivo. / p>

Caso contrário, uma maneira rápida de fazer isso pode ser usar o rsync repetidamente até que as diferenças sejam pequenas o suficiente para que você possa remontar os sistemas de arquivos somente leitura, rsync uma última vez e depois remontar o rw. Eu nunca tentei isso em uma imagem bruta do sistema de arquivos, mas funciona bem em uma estrutura de diretórios.

    
por 11.07.2011 / 19:10
1

Eu realmente fiz isso e funciona. É bastante confiável, também, todas as coisas consideradas. É uma boa ideia? Não, provavelmente não. Você pode perder dados ou acabar com arquivos corrompidos. Com uma partição ext3, na inicialização, você receberá um aviso de que a partição "não foi desmontada corretamente, verifique forçada". Em seguida, executará o 'fsck'. Pode levar muito tempo para o fsck retornar o sistema de arquivos para um estado limpo, mas ele chegará lá. Um sistema de arquivos ext4 fará isso mais rápido.

Pense desta forma, um 'dd' de um sistema de arquivos ao vivo é equivalente a extrair o plugue de energia de um servidor enquanto ele está rodando. Se você extraiu o plugue de energia de um servidor, você esperaria que o sistema de arquivos fosse arruinado e que a máquina não inicializasse novamente? Claro que não. Bem, a menos que você estivesse atualizando seu kernel de inicialização ou initrd ou algo assim. Tenho certeza de que existem outros casos extremos. Mas esta ainda não é a maneira ideal de desligar um sistema. Não confie nisso.

Além disso, a execução de "sincronização" provavelmente é inútil nessa situação (digo "provavelmente inútil" porque não tenho 100% de certeza dos meus fatos aqui e não me sinto como verificação de fatos). Executar 'sync' antes da etapa 'dd' não tornará a imagem mais consistente porque 'dd' não simplesmente ignora o kernel e fala diretamente com o hardware. 'dd' ainda passa pelo kernel do Linux. Se o 'dd' solicitar dados de blocos sujos (dados atualizados que não tenham sido sincronizados para a unidade), ele não ignorará esse fato. Em outras palavras, o 'dd' irá copiar os blocos sujos mesmo que eles ainda não tenham sido sincronizados com o disco. Note que eu acredito que existem opções para pedir 'dd' para fazer isso (ignorar os buffers do kernel e conversar diretamente com o hardware), mas este não é o comportamento padrão.

    
por 03.05.2014 / 08:13
0

Sim.

Não faça isso.

O backup não será utilizável. Mesmo que sua conversão seja bem-sucedida, você terá dificuldade em verificar o conteúdo.

    
por 21.03.2011 / 02:43
0

Depende do método. O problema com a criação de imagens de um disco em execução é que não há como garantir a consistência - os arquivos são alterados enquanto você trabalha neles.

Existem várias abordagens para evitar isso - uma é usar uma maneira de fazer um instantâneo de como os arquivos estão em um período de tempo muito específico e fazer um backup - o windows tem VSS, mas o linux / ext não tem equivalente a isso.

O outro é tornar a imagem fora de um sistema não vivo

Portanto, não, a menos que seja um sistema operacional ou FS que possa ser instantâneo, não é uma boa maneira de fazer as coisas.

    
por 21.03.2011 / 02:58
0

Acho que a única maneira de fazer com que isso funcione seria criar um software (ou possivelmente hardware, se você for o suficiente para configurá-lo). Instalação do RAID 1 com outro disco rígido. A partir daí, verifique se ele está sincronizado e, em seguida, quando for a hora de tirar uma imagem de backup, retire o segundo disco da matriz (com um script, não fisicamente) e copie o segundo disco rígido. Isso provavelmente teria sérios problemas de desempenho, dependendo de quão inteligente é o RAID (se você precisar ressincronizar completamente a unidade sempre que o backup for concluído), mas essa é uma maneira de fazer isso sem colocar o servidor offline

    
por 11.07.2011 / 19:00