Sincronização de instantâneos de volume ao fazer backups completos do sistema

1

Existe uma maneira de garantir a consistência entre volumes ao fazer backups de instantâneos do LVM? Considere este cenário:

  • Algumas atualizações do sistema estão em andamento. Ele irá gravar alguns arquivos no volume /usr e, uma vez concluído, registrará o sucesso no volume /var .
  • Como a atualização está praticamente concluída, eu executo um script de backup que cria instantâneos dos volumes /usr e /var , juntamente com o restante dos volumes do sistema, e segue para criar backups desses snapshots .
  • Pouco antes de o último write / flush da atualização no volume /usr ser concluído, o script de backup obtém o instantâneo de /usr .
  • Essa gravação é concluída e o sucesso da operação de upgrade é gravado rapidamente nas profundezas nebulosas de /var .
  • O script de backup tira um instantâneo de /var .
  • O script de backup cria backups dos instantâneos que possui, er, instantâneos.

Portanto, o resultado de toda essa tolice é que o /usr backup resultante contém um arquivo que está faltando alguns bits, e o /var backup contém metadados indicando que esse arquivo está completo e aprovado para uso.

Sem investigar os detalhes de quais sistemas de atualização de sistema de sistemas operacionais não seriam afetados por tais ninharias, existe uma maneira de evitar tais problemas? Pelo menos isso parece que pode fazer com que algum aplicativo falhe inesperadamente após a restauração de tal backup.

    
por intuited 18.02.2011 / 04:31

1 resposta

1

O problema é um pouco mais geral do que isso. Mesmo com um volume obtendo um instantâneo, não há garantia de que os dados nesse volume façam sentido no nível do arquivo. Os instantâneos do LVM garantem apenas a consistência no nível do bloco.

A única maneira de ter 100% de certeza de que seus arquivos estão em um estado consistente é fazer com que seus aplicativos esvaziem tudo para o disco e suspendam gravações enquanto você cria o instantâneo. Se você realmente se preocupa com isso, e seus aplicativos o suportam, você deve fazer o script em seu procedimento de backup.

Para seu caso de uso específico, por que não apenas garantir que o backup não seja executado enquanto você estiver executando a atualização? Desabilite-o para esse período de tempo ou adie-o até que sua atualização seja concluída. No mínimo, a consistência dos arquivos que estão sendo atualizados será preservada.

    
por 18.02.2011 / 07:29