Я недавно изменил checksum
свойство на одном из моих , не дублированных ZfS файловых систем sha256
из on
(fletcher4) , чтобы лучше поддерживать отправку дублированных паров репликации, так как в этой команде zfs send -DR -I _starting-snaphot_ _ending-snapshot_
.
Тем не менее, на странице руководства zfs есть что сказать о send -D
:
Этот флаг можно использовать независимо от свойства dedup набора данных, но производительность будет намного лучше, если файловая система использует контрольную сумму с поддержкой дедупликации (например, sha256).
На странице руководства zfs также говорится об этом checksum
свойстве:
Изменение этого свойства влияет только на вновь записанные данные.
У меня нет желания доверять fletcher4. Компромисс заключается в том, что в отличие от SHA256, fletcher4 не является псевдослучайной хэш-функцией, и поэтому нельзя доверять тому, что он не конфликтует. Поэтому он подходит для дедупликации только в сочетании с опцией 'verify', которая обнаруживает и разрешает коллизии хешей.
Как я могу обновить контрольные суммы файловой системы, желательно без отключения системы?
zfs receive
обновляет метаданные файловой системы. Мне кажется, что было бы намного быстрее, если бы он просто принял метаданные как есть. Однако это может оказаться невозможным из-за блочной, а не файловой природы уровня контрольной суммы. В таком случаеzfs send | zfs receive
сформируется приемлемая основа для решения.