Получается, что http://docs.oracle.com/cd/E36784_01/html/E36835/gkknx.html прав.
Когда файл записывается, данные сжимаются, шифруются, и контрольная сумма проверяется. Затем данные дедуплицируются, если это возможно.
Мое предположение о случайном файле было неверным. Похоже, что ZFS прерывает сжатие, если не может достичь определенной минимальной степени сжатия.
цитата из https://wiki.illumos.org/display/illumos/LZ4+Compression
Следует особо отметить, что производительность LZ4 на несжимаемых данных очень высока. Это достигается за счет включения механизма «раннего прерывания», который срабатывает, если LZ4 не может соответствовать ожидаемой минимальной степени сжатия (12,5% для ZFS).
Для тестирования я создал текстовый файл из моей файловой системы с find / >> tree.txt
.
После копирования файла в оба набора данных и затем zpool get dedupratio
вернул:
NAME PROPERTY VALUE SOURCE tank dedupratio 1.00x -
Dedup действительно последняя часть в этой цепочке записи. Выбор разных алгоритмов сжатия приведет к плохой дедупрации!
К сожалению, моя ZoL-версия не поддерживает шифрование. Но кажется, что шифрование разных наборов данных также может испортить дедупликацию. Информация о шифровании: https://docs.oracle.com/cd/E53394_01/html/E54801/gkkih.html