지금까지 별 문제 없이 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 upgrade
두 zpool upgrade tank
방법 모두 상황을 개선하지 못했습니다.
그러나 시스템 업그레이드 후 북마크를 삭제했다가 다시 생성하면 문제가 해결되었습니다.