Contexto
Eu tenho alguns backups de armazenamento do Synology NAS criados pelo WBADMIN do Windows usando SMB, o que significa que os arquivos de imagem VHDX no final com a compactação desativada, caso contrário, o WBADMIN se recusa a trabalhar nesses arquivos. Esses arquivos ainda precisam estar disponíveis no NAS por algum tempo, mas é MUITO improvável que eles precisem ser montados novamente por alguém, portanto, gostaria de aplicar a compactação depois agora para simplesmente garantir algum espaço. Se for necessário montar novamente, as coisas podem ser facilmente descompactadas, então vamos ignorar isso por enquanto. O DSM também fornece todas as ferramentas necessárias para lidar com a compactação de dados existentes no shell:
chattr -R +c [...]
btrfs filesystem defragment -r -c [...]
O importante a observar é que os arquivos VHDX existentes já estão protegidos por instantâneos criados automaticamente e o NAS continua a criar instantâneos automaticamente após eu compactar os arquivos. Então, o que acontece com esses instantâneos?
Os blocos mantidos por instantâneos existentes também são compactados?
De acordo com esta explicação eu não penso assim. Além disso, isso anularia um pouco todo o propósito dos instantâneos, garantindo dados inalterados em algum momento. As coisas simplesmente não eram compactadas no passado quando os instantâneos foram criados, então, em teoria, os dados precisam estar disponíveis de alguma forma.
OTOH, a compactação é projetada para ser um pouco transparente de qualquer maneira e isso pode ser discutido até os blocos existentes, mesmo em instantâneos. Pode garantir muito espaço no final. A compressão mesmo é aquela transparente que du não é capaz de reconhecer .
As alterações de blocos recém-compactados são mantidas por novos instantâneos?
Eu tenho um instantâneo ANTES de compactar, compactar os arquivos VHDX e criar um novo instantâneo DEPOIS. Nada mais muda no VHDX pelo Windows ou WBADMIN ou quem quer que seja, portanto, do ponto de vista lógico, o arquivo ainda permanece inalterado. No entanto, os blocos/extensões individuais do arquivo gerenciado pelo BTRFS foram muito alterados, dependendo de como a boa compactação foi aplicada.
Isso resulta em armazenamento real recém-alocado entre os dois instantâneos, não é? Portanto, após a compactação, até que os instantâneos anteriores que contêm dados não compactados sejam excluídos, o armazenamento geral pode simplesmente ser menor do que antes.
Ou estou errado em algum lugar? Obrigado!
Há uma resposta na lista de discussão , obrigado por isso. Os resultados:
Os blocos mantidos por instantâneos existentes também são compactados?
Não, a desfragmentação sempre cria dados novos e independentes e não altera nenhum bloco existente. Sem instantâneos anteriores, os blocos só podem ser excluídos após a compactação, mas se os instantâneos contiverem blocos, eles serão preservados e seus dados compactados serão armazenados ADICIONALMENTE.
As alterações de blocos recém-compactados são mantidas por novos instantâneos?
Sim, após a compactação, o espaço LIVRE geral provavelmente será menor do que antes até que os instantâneos mais antigos contendo dados não compactados sejam excluídos. O que não é grande coisa no meu caso de uso, porque em algum momento os instantâneos antigos não terão mais nenhuma alteração de interesse de qualquer maneira, mas apenas protegerão sempre os mesmos dados contra alterações acidentais. Portanto, excluir instantâneos antigos para substituir dados descompactados por compactados é OK em algum momento.