USED=0
является разумным показателем того, что снимок является дубликатом предыдущего снимка. Однако вы должны убедиться, что это на самом деле ноль, а не какая-то округленная версия нуля (например, 0,1 КБ, округленная до ближайшего КБ). Вы можете использовать -p
флаг («parseable»), чтобы получить точное число, измеренное в байтах. Также обратите внимание, что обновление учетных номеров может занять несколько секунд после создания снимка.
Как вы предлагаете, вы также можете использовать zfs diff
для достижения того же. Это имеет дополнительное преимущество, сообщая вам, что изменилось.
Пример, который вы привели (где блоки распределяются между файлами) может произойти, только если у вас включена дедупликация. В противном случае ZFS все равно будет хранить несколько копий блоков и соответствующим образом учитывать это пространство. Даже с дедупликацией оба вышеописанных метода будут показывать различия - снимок не займет нулевое USED
пространство, потому что вам потребуются новые метаданные для двух файлов (два inode плюс косвенные блоки, указывающие на дедуплицированные блоки; возможно, другие вещи) ), и zfs diff
покажет +<filename>
для двух новых файлов.
РЕДАКТИРОВАТЬ: последний видимый для пользователя способ проверить это путем zfs send -nv
постепенного запуска (пробный запуск, подробный) между снимками. Это не сгенерирует полный поток отправки, но может сказать вам, что будет отправлено, что должно быть ничем, если два снимка совпадают.