백업 서버로 스냅샷을 보내려고 합니다. 하지만 증분 백업을 시도할 때마다 다음과 같은 오류 메시지가 나타납니다(-c에서도 같은 현상이 발생함).
btrfs send -p /backup/test/backup-2020-05-05_16-0 /backup/test/snapshots/backup-2020-05-05_16-1 | ssh myIP "btrfs receive /backup/test/snapshots/"
At subvol /backup/test/snapshots/backup-2020-05-05_16-1
ERROR: cannot find parent subvolume
At snapshot backup-2020-05-05_16-1
ID 325 gen 5492 top level 264 path test/snapshots/backup-2020-05-05_16-0
ID 329 gen 5496 top level 264 path test/snapshots/backup-2020-05-05_16-1
내가 뭐 잘못 했어요?
답변1
btrfs receive
를 출력하고 있기 때문에 ERROR: cannot find parent subvolume
이는 송신자에게는 UUID가 있지만 수신자의 파일 시스템에서는 UUID가 누락되었음을 의미합니다(참조:이것메일링 리스트 답변).
상위 항목에서 타임스탬프와 회전 수를 혼합하고 있습니다 backup-2020-05-05_16-0
. 받는 사람의 번호 접미사가 -0
발신자의 번호 접미사와 다른 경우 실패의 원인이 됩니다.
btrfs subvol show
수신자 디렉터리의 a가 출력되고 Received UUID
, 양쪽에서 동일한 이름을 가진 디렉터리의 UUID가 비교됩니다. 발신자의 UUID는 수신자의 수신 UUID와 일치해야 합니다.
스크립트는 스냅샷 디렉터리에서 임의의 숫자를 피하고 마이크로초 타임스탬프를 사용하거나 해시/uuid 자체를 추가하여 감사를 지원해야 합니다. 파이프를 사용하면 메시지가 어디에서 오는지 명확하지 않으므로 약간 더 자세한 오류 메시지를 사용하면 메시지의 소스를 파악하는 데 도움이 될 수 있습니다.