Você não pode fazer backup diretamente * Abrir arquivos * no Linux da mesma maneira que pode fazer backup de arquivos fechados. O sistema operacional bloqueia os arquivos enquanto eles estão em uso para impedir que a corrupção de dados seja de acesso simultâneo. A tentativa de uma cópia direta falhará completamente ou resultará em um backup incompleto ou corrompido.
No entanto, existem várias maneiras de obter um backup * consistente * de arquivos que estão atualmente abertos, dependendo de suas necessidades e do tipo de backup que você está executando:
*
usando `rsync` com` --archive` e `-x`: `rsync` é uma ferramenta poderosa para backups. A opção `-x` preserva atributos estendidos, que podem ser cruciais para os metadados do arquivo, e` --archive` garante uma cópia de arquivo adequada. Embora não faça backup do estado * exato * na memória de um arquivo aberto, o `rsync` copiará o arquivo, pois está atualmente gravado no disco. Provavelmente, isso estará muito próximo do conteúdo real, especialmente se as alterações forem pouco frequentes. Quaisquer alterações feitas * após * o backup iniciar serão perdidas.
*
instantâneos do sistema de arquivos (LVM, BTRFS, ZFS): Esses recursos do sistema de arquivos criam uma cópia pontual de todo o sistema de arquivos. Este é o método mais confiável para fazer backup de arquivos abertos, porque o instantâneo captura o estado de todos os arquivos, incluindo os abertos, em um momento específico. A vantagem é que o instantâneo é completamente consistente. A disponibilidade depende do seu sistema de arquivos. Os instantâneos LVM exigem que o LVM seja usado, e os BTRFs e ZFs são completamente diferentes sistemas de arquivos.
*
usando `cp` com` --reflink` (se suportado): Nos sistemas de arquivos que suportam copy-on-write (vaca), `cp --reflink` pode criar uma" cópia "muito rápida, criando apenas um novo ponteiro para os blocos de dados. O arquivo original e copiado compartilhe os mesmos dados até que as alterações sejam feitas. As alterações feitas * após * a cópia afetarão apenas o novo arquivo, deixando o original (e o backup) intocado. Isso é extremamente eficiente, mas o suporte para `--Reflink` é dependente do sistema de arquivos (ext4 com certos parâmetros do kernel pode apoiá-lo, mas o BTRFS o faz nativamente).
*
backups no nível do aplicativo: Muitos aplicativos oferecem seus próprios mecanismos de backup, permitindo backups consistentes de seus dados, mesmo que os arquivos estejam abertos. Esses mecanismos geralmente interagem diretamente com as estruturas de dados internas do aplicativo.
*
Clustering e alta disponibilidade: Em situações críticas, os sistemas de alta disponibilidade criam mecanismos de redundância e failover. Se um servidor de arquivos diminuir, outro servidor assumirá automaticamente o controle, minimizando o impacto da perda de dados e garantindo acesso contínuo.
Qual método é o melhor? * Para um backup simples e rápido, onde pequenas inconsistências são aceitáveis:`rsync` com` -a` e `-x`.
* Para obter consistência de dados garantida e o backup mais confiável de arquivos abertos:instantâneos do sistema de arquivos (se disponível).
* Para backups extremamente eficientes de arquivos existentes com copiar-no-write:`cp --reflink` (se suportado e apropriado para o seu caso de uso).
Lembre -se de sempre testar sua estratégia de backup para garantir que ela atenda aos requisitos do objetivo do ponto de recuperação (RPO) e do objetivo do tempo de recuperação (RTO). Para dados críticos, recomenda-se uma combinação de métodos ou soluções de backup de nível profissional.