ZFS 증분 전송 문제: IV 설정 GUID가 누락되었습니다.

ZFS 증분 전송 문제: IV 설정 GUID가 누락되었습니다.

지금까지 별 문제 없이 ZFS를 사용해왔는데, 오늘 아주 이상한 오류가 발생했습니다. 저는 기본적으로 다음과 같이 델타 전송(하드 드라이브 암호화)을 수행하고 있습니다.

$ sudo zfs send -w -v -i  "#myoldsnap" "mylocalzfspool/encrypted_home@mynewsnap" | sudo zfs recv myexternalpool/backup/Laptop -F
send from mylocalzfspool/encrypted_home#myoldsnap to mylocalzfspool/encrypted_home@mynewsnap estimated size is 13.8G
total estimated size is 13.8G
cannot receive incremental stream: IV set guid missing. See errata 4 at https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-ER.

하지만#myoldsnap, 로 바꾸면 @myoldsnap(예: 북마크 대신 스냅샷을 사용하는 경우) 작동합니다... 그러나 나중에 공간을 절약하기 위해 스냅샷을 삭제해야 할 수 있으므로 북마크를 사용하는 것을 선호합니다.

도움이 된다면 외부 디스크에 이전 스냅샷이 있고 로컬 디스크에 북마크가 있다는 증거는 다음과 같습니다.

$ sudo zfs list -t snapshot -o name
NAME
mylocalzfspool/encrypted_home@myoldsnap
mylocalzfspool/encrypted_home@mynewsnap
[...]
myexternalpool/backup/Laptop@myoldsnap


$ sudo zfs list -t bookmark 
NAME                                                                                 USED  AVAIL     REFER  MOUNTPOINT
mylocalzfspool/encrypted_home#myoldsnap                            -      -         -  -
mylocalzfspool/encrypted_home#mynewsnap                                     -      -         -  -

북마크에서 왜 실패하는지 아시나요? 일반적으로 문제가 많지 않습니다. 그동안 외부 풀에 다른 볼륨을 생성하고 암호화를 지원하지 않는 이전 버전을 사용하여 ZFS를 한 번 열어 보았지만 오류가 발생했습니다... 하지만 그게 전부입니다. 고려해 볼 수 있습니다.

답변1

이 게시물이 오래되었다는 것을 알고 있지만 오늘 이 문제가 발생하여 결과를 추가하고 싶었습니다.

제 경우에는 북마크를 보내면 잘못된 스트림이 생성된 것으로 나타났습니다. zstreamdump소스에서 이를 확인할 수 있습니다.

zfs send -w -i  "#oldsnap" "tank/home@newsnap" | zstreamdump | grep from_ivset_guid
        from_ivset_guid = 0x0

그러나 스냅샷은 올바른 "IV set guid" 값을 생성합니다.

zfs send -w -i  "@oldsnap" "tank/home@newsnap" | zstreamdump | grep from_ivset_guid
        from_ivset_guid = 0x968b62ce478cf1

소스 Ubuntu는 대상 버전보다 약간 오래되었으므로 시도해 보았지만 apt upgradezpool upgrade tank방법 모두 상황을 개선하지 못했습니다.

그러나 시스템 업그레이드 후 북마크를 삭제했다가 다시 생성하면 문제가 해결되었습니다.

관련 정보