Sei que as propriedades do ZFS, como cópias e compactação, afetam apenas os dados recém-gravados.
No entanto, eu me pergunto se um matagal atualizaria isso?
Digamos que criei um pool e defina a compactação = lz4 e as cópias = 2 antes de gravar 1 TB de arquivos.
Então decidi que não precisava manter os blocos idem, mas também gostaria de usar outro tipo de compactação.
Se agora eu definir cópias=1 e compressão=gzip-9, existe uma maneira de aplicar isso aos dados que já estão gravados no pool?
Um esfoliante faria isso por mim?
Não.
A alteração das propriedades do conjunto de dados
compression
afetacopies
apenas os arquivos gravados após a alteração. Para aplicar alterações como essa a arquivos existentes, você precisa copiá-los e movê-los sobre o original. Isso, é claro, interromperá qualquer conexão com quaisquer instantâneos anteriores do mesmo nome de arquivo (e também com quaisquer links físicos para o arquivo, pois o inode será diferente).Como alternativa, para aplicar essas alterações a um pool ou conjunto de dados inteiro, você pode
zfs send
criar um instantâneo para um pool diferente (por exemplo, um pool de backup), destruir o conjunto de dados do pool original (ou destruir o pool e recriá-lo) e, em seguidazfs send
, de volta. Nota: você não pode fazer isso comzfs send
a opção de-R
(--replicate
) porque isso também ativa a opção de enviar-p
(--props
). Vejaman zfs
e pesquisezfs send
mais detalhes.zfs scrub
verifica os dados existentes em um pool e reescreve todas as cópias corrompidas se houver redundância suficiente para ter uma boa cópia que corresponda à soma de verificação... caso contrário, apenas avisa sobre o erro incorrigível.