Назад | Перейти на главную страницу

Есть ли способ узнать, действительно ли два снимка ZFS с одинаковыми именами идентичны?

Как узнать, идентичны ли два снимка ZFS или просто названы одинаково?

Скажем, у меня есть два компьютера с именем host-a и host-b. Также предположим, что host-a имеет набор данных ZFS с именем /tank/mydataset.

На host-a я мог: zfs snapshot tank/mydataset@mysnapshot' and then I could 'zfs send tank/mydataset@mysnapshot | ssh host-b zfs receive tank/mydataset

Это означало бы @mysnapshot будет одинаково на обоих host-a и host-b.

С другой стороны, на host-a Я мог бы: zfs snapshot tank/mydataset@mysnapshot с последующим ssh host-b zfs snapshot tank/mydataset@mysnapshot.

Во втором случае оба снимка имеют одинаковые имена, но набор данных может сильно отличаться.

Глядя на свойства tank/mydataset@mysnapshot не перечисляет никаких очевидных способов определения идентичности снимков, т. е. GUID или хэш.

Помимо попытки сделать еще один снимок host-a tank/mydataset@mysnapshot2 и пытаюсь отправить host-b через zfs send -i @mysnapshot tank/mydataset@mysnapshot2 | ssh host-b zfs receive tank/mydataset есть ли способ определить, что снимки идентичны не только по названию, но и по блокам?

Есть собственность конкретно для этого варианта использования.

zfs get guid pool/fs@snap предоставит вам GUID (глобально уникальный идентификатор) для снимка. Если GUID не совпадает между двумя снимками, один не реплицируется из другого, и они не будут работать в качестве основы для дальнейшей инкрементной репликации.

Это также как синкоид определяет общие моментальные снимки для определения команд репликации.

(Отказ от ответственности: я являюсь первоначальным разработчиком и главным сопровождающим проекта Sanoid, которому принадлежит инструмент репликации Syncoid.)