
두 개의 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
I could: 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
답변1
재산이 있어요구체적으로이 사용 사례의 경우.
zfs get guid pool/fs@snap
스냅샷에 대한 GUID(Globally Unique ID)를 제공합니다. 두 스냅샷 간의 GUID가 일치하지 않으면 하나는 다른 스냅샷에서 복제되지 않으며 추가 증분 복제의 기반으로 작동하지 않습니다.
이것도 방법이다합창체복제 명령을 결정하기 위해 공통 스냅샷을 식별합니다.
(면책조항: 저는 Syncoid 복제 도구가 속한 Sanoid 프로젝트의 초기 개발자이자 최고 유지관리자입니다.)