Planejo fazer backup de meus HDDs grandes rsync
e antecipar que isso leve alguns dias. É seguro usar o HDD original (adicionando arquivos) enquanto rsync
estiver trabalhando? Ou é melhor deixar os HDDs intocados até o rsync
término?
Planejo fazer backup de meus HDDs grandes rsync
e antecipar que isso leve alguns dias. É seguro usar o HDD original (adicionando arquivos) enquanto rsync
estiver trabalhando? Ou é melhor deixar os HDDs intocados até o rsync
término?
Respostas:
Como outros já apontaram, é seguro ler do disco de origem ou usar o disco de destino fora do diretório de destino, enquanto o rsync estiver em execução. Também é seguro ler no diretório de destino, especialmente se o diretório de destino estiver sendo preenchido exclusivamente pela execução do rsync.
O que geralmente não é seguro é escrever no diretório de origem enquanto o rsync estiver em execução. "Gravações" é qualquer coisa que modifica o conteúdo do diretório de origem ou de qualquer subdiretório, incluindo atualizações, exclusões, criação de arquivos, etc.
Fazer isso não quebrará nada, mas a alteração pode ou não ser captada pelo rsync para copiar no local de destino. Isso depende do tipo de alteração, se o rsync examinou esse diretório específico ainda e se o rsync já copiou o arquivo ou o diretório em questão.
No entanto, existe uma maneira fácil de contornar isso: Quando terminar, execute o rsync novamente, com os mesmos parâmetros. (A menos que você tenha algum parâmetro de exclusão desagradável; se tiver, tenha um pouco mais de cuidado.) Isso fará com que ele verifique novamente a fonte e transfira as diferenças que não foram detectadas durante a execução original.
A segunda execução deve transferir apenas as diferenças que ocorreram durante a execução rsync anterior e, como tal, será concluída muito mais rapidamente. Portanto, você pode usar o computador normalmente durante a primeira execução, mas evite, tanto quanto possível, fazer alterações na fonte durante a segunda execução. Se você puder, considere fortemente remontar o sistema de arquivos de origem somente leitura antes de iniciar a segunda execução do rsync. (Algo como mount -o ro,remount /media/source
deve fazer.)
@reboot root find / -print &>/dev/null
no meu crontab do sistema, para preencher o cache. (A entrada real é mais complexa para explicar alguns casos especiais no meu sistema em particular.) Ele usa um pouco de RAM e tempo de relógio de parede logo após a inicialização para melhorar bastante a verificação da árvore de diretórios IME.
updatedb
(criar o banco de dados do localizador) ou slocate -u
(o mesmo, se você tiver slocate)? Dessa forma, você ainda armazena em cache a hierarquia, mas também constrói os bancos de dados de localização ou slocate, permitindo usar esses comandos para encontrar rapidamente muitos arquivos?
Isso depende do sistema de backup usado, mas, em geral, é uma má idéia modificar o conteúdo de um dispositivo durante o backup. No entanto, você pode ler seu conteúdo; essa é uma operação segura, mesmo que atrase o processo.
No seu caso, rsync
criará uma lista de arquivos e iniciará o backup. Portanto, qualquer arquivo que você adicionar ao disco rígido de origem após o início do backup não será copiado.
O que faço é não usar nenhum dispositivo durante um backup. Essa é a maneira mais segura de obter um backup rápido e consistente.
rsync
termina em alguns segundos, porque apenas os arquivos que eu alterei durante a execução serão copiados. Tudo estará nos caches, por isso é muito mais fácil evitar modificações durante esse período.
É seguro ler dados das áreas de origem enquanto rsync
estiver em operação, mas se você atualizar qualquer coisa, rsync
é provável que a cópia que cria / atualize seja inconsistente:
Se você atualizar um arquivo que o rsync já tenha verificado, ele não verá a atualização até uma execução futura. Se você atualizar um arquivo, ele ainda precisa ser verificado, a alteração será respeitada no destino. Se você atualizar arquivos que foram e não foram verificados, você terminará com uma mistura de versões antigas e novas no destino.
Se você adicionar um arquivo a um diretório que já foi verificado, será perdida a cópia de destino desta vez. Se você remover um arquivo de um diretório que já foi verificado, ele será deixado na cópia de destino dessa vez. Dependendo de como você invoca, rsync
a árvore inteira pode ser verificada no início ou pode ser verificada incrementalmente à medida que o processo de sincronização acontece.
Em algumas circunstâncias rsync
, verá a inconsistência e o alertará. Se você remover um arquivo ou subdiretório de um diretório que já foi verificado, mas ainda não teve seu conteúdo verificado, você receberá uma mensagem de erro sobre a falta do objeto. Em circunstâncias semelhantes, algumas vezes (se o tamanho e / ou o carimbo de data / hora foram alterados) também pode avisar sobre os arquivos que estão sendo alterados no meio da verificação.
Para alguns backups, essa inconsistência pode não ser um problema enorme, mas para a maioria será recomendável que você não tente sincronizar uma fonte que esteja mudando ativamente.
Se você usar o LVM para distribuir seu sistema de armazenamento, poderá usar um instantâneo temporário para fazer um backup point-in-time. Isso requer que você tenha espaço suficiente no grupo de volumes para criar um volume de captura instantânea grande o suficiente para conter todas as alterações que ocorrerão na duração em que a captura instantânea for necessária. Verifique a documentação do LVM (ou um dos muitos exemplos on-line: procure "LVM snapshot backup" ou similar) para obter mais detalhes.
Mesmo sem o LVM, alguns sistemas de arquivos oferecem suporte a snapshots - então você também pode procurar nessa opção.
Se você deseja fazer backup de grandes volumes ativos sem muito tempo de inatividade e não puder usar snapshots, pode ser suficiente executar a verificação "ao vivo" até a conclusão, pare o acesso ao volume e execute outro processo rsync que pode levar muito menos tempo (se muito pouco mudou, apenas examinará a árvore de diretórios e os poucos arquivos atualizados). Dessa forma, a duração em que você deve evitar alterações pode ser muito menor.
O HDD de origem pode ler qualquer coisa enquanto o rsync.
O HDD de origem pode gravar qualquer conteúdo não relacionado ao conteúdo do rsync.
O HDD de destino pode ler qualquer coisa enquanto o rsync.
O HDD de destino pode gravar qualquer coisa durante o rsync com a condição de ter espaço suficiente reservado para o conteúdo sincronizado.
Obviamente, em qualquer um dos casos, haverá redução de desempenho.
Todas as respostas atuais estão falando sobre segurança de dados em termos de consistência e assumindo um hardware perfeito.
Outra coisa a considerar é a própria segurança do hardware. Se você possui discos rígidos sem backup que podem estar prestes a falhar (talvez ainda nem saiba) e está fazendo um backup abrangente inicial , não o utilize. Nem o monte se os dados forem críticos. Você pode usar uma ferramenta como dd
clonar o disco como um dispositivo de bloco. O que você não deseja que a cabeça do disco busque e, possivelmente, grave enquanto estiver tentando fazer um backup. O Plus dd
deve ser mais rápido para o backup inicial, uma vez que apenas copia os bits em ordem (se a unidade não estiver cheia, suponho que o rsync também ganharia no caso inicial).
Para backups incrementais subsequentes, o rsync é uma ótima opção e eu concordo com as outras respostas 100%.
dd
não é a melhor escolha. Use em ddrescue
vez disso; ele lida com falhas parciais muito melhor. Mas isso não foi considerado na pergunta original.