Git создает идентификатор фиксации путем хеширования различных компонентов таким образом, что мы, по сути, получаем идентификатор для всей истории проекта.
Насколько я понимаю, ZFS хеширует все (данные / метаданные / структуру файловой системы), что предположительно приводит к единственному "высший уровень"хэш в корне файловой системы.
Мне было интересно, есть ли способ получить такой хэш или идентификатор из файловой системы ZFS или снимка.
Это потенциально может быть использовано для быстрого и надежного подтверждения с достаточной уверенностью того, что "все данные в наборе данных-x соответствуют всем данным в наборе данных-y".
У меня нет полного представления о внутреннем устройстве zfs send
и zfs recv
, но я предполагаю, что они имеют дело с такими концепциями, гарантируя, что и отправляющая, и получающая файловые системы имеют общую отправную точку.
Изменить: у меня есть резервные копии за пределами сайта, которые автоматизированы с использованием синкоид... Если бы я посмотрел на соответствующий снимок каждой из соответствующих файловых систем в n-пулах, я бы ожидал увидеть тот же самый идентификатор.
Также может быть полезно увидеть, есть ли какие-либо изменения между снимками набора данных, хотя я подозреваю, что атрибуты снимка (имя, дата и т. Д.) Могут повлиять на этот идентификатор, поэтому было бы неплохо посмотреть "на один уровень ниже"для этого.
Насколько я понимаю, все ссылки на другие блоки в ZFS содержат контрольную сумму, которую должен иметь другой блок, а эти блоки, в свою очередь, содержат указатели с контрольными суммами (в конечном итоге указывающие на блоки данных и их контрольные суммы). В основе всего этого лежит контрольная сумма уберблока, которая затем неявно покрывает все данные в пуле.
Но эта контрольная сумма включает в себя фактические указатели блоков и вещи, которые связаны с компоновкой физической файловой системы, поэтому вы не можете использовать ее для проверки только данных - если вы, например, zfs отправляет / возвращает файловые системы, в результате вы получите совершенно другую контрольную сумму.
Вы можете посмотреть zfs diff
для этого случая.
Не могли бы вы подробнее рассказать о сценарии использования. Будут ли это файловые системы в одном пуле данных?