오래되어 보인다는 이유만으로 Btrfs send 부모 스냅샷을 삭제하지 마세요. 먼저 양쪽에 더 최신인 읽기 전용 스냅샷이 존재하며 다음 증분 주기를 수행할 수 있는지 확인해야 합니다.
홈 NAS에서는 소스와 대상 스냅샷의 이름이 비슷해도 복제 역할은 서로 다른 경우가 많습니다. 순환 작업이 스냅샷의 수명만 확인하고 다음 send를 위한 기준이 되는 쌍을 확인하지 않으면 정리가 위험해집니다. 먼저 읽기 전용 인벤토리를 작성하고, 마지막으로 성공한 소스-대상 쌍을 식별한 다음, 그 쌍을 기준으로 더 최신 자식 스냅샷을 테스트하세요. 또 다른 증분 receive가 완료될 때까지 이전 대상 스냅샷을 보존해야 합니다.
양쪽 시스템에서 현재 부모 쌍 인벤토리 작성
소스 서브볼륨, 모든 읽기 전용 send 스냅샷, 그리고 모든 수신된 대상 스냅샷을 나열하세요. 경로, 생성 시간, 읽기 전용 상태, 서브볼륨 ID, UUID, 부모 관계, 그리고 가능한 경우 수신된 식별 정보를 기록하세요. 마지막으로 성공한 소스 스냅샷과 실제로 수신된 복사본을 짝지으세요. 이름이 비슷한 디렉터리만으로 판단해서는 안 됩니다.
정상적으로 작동하는 Btrfs send 및 receive 순서에서는 이전 스냅샷을 다음 증분 스트림의 부모로 사용하기 전에 양쪽 시스템에서 해당 스냅샷을 사용할 수 있어야 합니다.
쌍이 분명히 존재하고 읽기 전용이라면 보호 대상으로 표시하세요. 이름만 일치한다면 계속 진행하기 전에 수신 관계와 복제 로그를 확인하세요. 대상 복사본이 없다면 정리를 중단하고 새 전체 send 또는 검증된 다른 기준을 계획해야 합니다. 소스 스냅샷을 삭제해도 수신 측의 누락된 이력을 복구할 수 없습니다.
더 최신 스냅샷을 다음 부모로 사용할 수 있는지 확인
인벤토리를 저장한 후 다음 읽기 전용 소스 스냅샷을 생성하세요. 보호된 소스 스냅샷을 명시적 부모로 사용하고 새 자식 스냅샷을 의도한 대상 또는 스테이징 경로로 send하세요. 종료 상태와 로그를 저장한 다음, 수신된 스냅샷에서 변경된 파일과 변경되지 않은 파일을 일부 추출하여 비교하세요.
증분 복제 스크립트는 이러한 종속성을 명확하게 보여줘야 합니다. 실용적인 스냅샷 순환 작업 흐름은 send 로직이 예상하는 스냅샷이 그대로 유지될 때만 작동합니다.
receive가 성공하고 대상 스냅샷을 읽을 수 있을 때만 새 쌍을 정리 후보로 승격하세요. 부모를 찾을 수 없다는 오류, 쓰기 가능한 소스 스냅샷, 잘못된 데이터셋, 또는 스트림이 예상과 달리 전체 복사본과 동일한 경우에는 테스트가 실패한 것입니다. 경로를 수정하거나 기준을 다시 구성하는 동안 이전 쌍은 그대로 유지하세요.
부모 역할이 다음 단계로 이동한 후에만 정리
무엇이든 삭제하기 전에 보존 기록을 업데이트하세요. 새로 검증된 소스 및 대상 스냅샷을 활성 쌍으로 표시하고, 바로 이전 쌍은 단기 대체용으로 유지하세요. 그런 다음 정리 작업이 삭제하려는 이전 스냅샷을 미리 확인하세요. 미리 보기에는 다음 send 또는 복원 계획에 더 이상 필요하지 않은 조상 스냅샷만 포함되어야 합니다.
파일 변경 사항은 더 최신 스냅샷으로 가져간 뒤 기존 기준에서 send할 수 있으므로, 향후 증분 이력은 오래된 읽기 전용 스냅샷을 편집하는 것이 아니라 보존된 스냅샷 관계에 좌우됩니다.
활성 부모, 대체 쌍, 가장 최근에 수신된 스냅샷 또는 검증되지 않은 고립 스냅샷이 삭제 목록에 나타나면 정리를 취소하세요. 스냅샷은 소규모 그룹으로 나누어 삭제하고 각 그룹을 처리한 후 양쪽 시스템을 다시 나열하세요. 보호된 쌍 기록을 공유하지 않은 채 소스와 대상의 순환 작업을 서로 독립적으로 진행하지 마세요.
대체 스냅샷을 폐기하기 전에 다음 증분 주기 실행
정리 후 파일 하나를 의도적으로 변경하고 새 읽기 전용 스냅샷을 생성하세요. 새로 승격된 부모에서 다음 증분 send를 실행하세요. 이 두 번째 주기는 정리 기록, 스크립트, 대상 상태가 모두 일치하는지 확인합니다. 첫 번째 send 성공만으로는 정리 후 환경을 테스트할 수 없습니다.
스냅샷을 사용 중이라 삭제할 수 없다면 부모 맵이 잘못되었다고 판단하기 전에 활성 Btrfs send 경로와 보존 로직을 분리하세요.
두 번째 자식 스냅샷이 성공적으로 수신되고, 예상한 파일이 존재하며, 활성 쌍이 읽기 전용 상태로 유지되고, 다음 예약 실행이 자동으로 해당 쌍을 선택하면 체크리스트를 통과한 것입니다. 그 결과를 확인한 후에만 대체 스냅샷을 폐기하세요. 다음 send에서 부모 누락을 보고하거나, 잘못된 서브볼륨을 대상으로 하거나, 예상하지 못한 전체 전송을 제안하면 중단하고 이전 쌍을 보호 상태로 복원하세요.
지원 및 팁
더 읽어보기

잠금 충돌 없이 Restic 백업, Forget 및 Prune 작업을 예약하는 방법
빈번한 백업, 범위가 지정된 보존, 실제 정리, 검사, 재시도 및 복원 검증을 분리한 완전한 다중 호스트 Restic 일정입니다.

Restic 정리 작업이 예약된 백업을 차단하지 않도록 하는 방법
공유 Restic 저장소를 위한 예방 계획으로, 백업 기간과 정리 작업을 분리하면서 잠금, 재시도 및 알림을 그대로 유지합니다.

활성 백업을 중단하지 않고 오래된 Restic 잠금 해제하는 방법
활성 백업을 보호하고 오래된 상태만 제거하며 정상 일정에 따라 복구를 확인하는 최소 개입형 Restic 잠금 해제 워크플로입니다.

