Para alterar as propriedades (seja compactação, deduplicação ou soma de verificação) de dados já gravados, a abordagem do zfs é executar os dados por meio de uma sequência zfs send | zfs receive
. Obviamente, você não precisa desconectar o sistema para isso, mas precisará
- recursos suficientes no seu zpool / no sistema para manter duas cópias deduzidas do conjunto de dados em questão
- tempo de inatividade para o conjunto de dados, caso você precise destruí-lo ou renomeá-lo no procedimento
- tempo e paciência suficientes para que a operação seja concluída
Como você já está usando a deduplicação para o zpool, a execução de um zfs send | zfs receive
com o destino no mesmo pool que a fonte usaria apenas o espaço necessário para os blocos de metadados recém-gravados. Mas esteja preparado para que a cópia demore um pouco - a dedup pode ser terrivelmente lenta, especialmente se você não tiver RAM suficiente para armazenar toda a tabela de deduplicação na RAM.
Obviamente, você precisaria interromper todas as operações de gravação para criar a cópia final e autoritativa do conjunto de dados, mas poderia minimizar o tempo de inatividade copiando primeiro um instantâneo, interrompendo todas as gravações e fazendo incremental zfs send -i | zfs receive
como a etapa final.