안전한 접근 방식은 워크로드에 따라 앱 백업, 조정된 정지(quiesce), 스냅샷 전 정상 중지 중 하나를 선택하는 일을 단일 명령이 아니라 관찰 가능한 게이트의 순서로 다루는 것입니다.
스냅샷을 지원하는 NAS에서 컨테이너화된 애플리케이션을 운영할 때 실질적인 위험은 라이브 NAS 스냅샷이 상태를 유지하는 컨테이너를 일관되게 복원할 수 있는지 불확실하다는 점입니다. 현재 식별 정보와 복구 지점을 기록하고, 영향이 가장 적은 판별 단계부터 시작한 다음, 다른 변수를 변경하기 전에 성공 및 실패 결과를 해석하고, 스토리지가 불안정해지거나 복구 가능한 유일한 사본이 노출될 상황이 되면 중지하세요. 아래 워크플로는 원래 워크로드가 성공하거나 증거가 에스컬레이션 경계에 도달한 후에만 종료됩니다.
스택을 건드리기 전에 일관성 결정을 내리세요
앱이나 데이터베이스에서 자체 백업 기능을 제공한다면 애플리케이션 네이티브 백업을 사용하세요. 데이터베이스가 해당 워크플로를 지원하는 경우에만 조정된 정지 및 스냅샷 훅을 사용하고, 짧은 중단 시간이 허용된다면 정상 중지를 사용하세요. 단순한 컨테이너 일시 중지는 최선의 경우에도 크래시 일관성만 보장할 뿐이며, 자동으로 애플리케이션 일관성을 보장하지는 않습니다.
이 구분이 중요한 이유는 Docker pause 동작이 정상적인 종료 및 플러시 경로를 실행하지 않고 프로세스를 동결하기 때문입니다. 매우 짧은 파일 시스템 스냅샷 동안 새 쓰기를 중지할 수는 있지만, 데이터베이스 버퍼, 저널, 첨부 파일 및 종속 서비스가 복원 가능한 애플리케이션 상태를 나타낸다고 입증할 수는 없습니다.
데이터베이스 엔진, 앱 백업 기능, 볼륨 경로, 업로드 경로, 시크릿, 이미지 버전 및 허용 가능한 중단 시간을 기록하세요. 상태를 유지하는 구성 요소 중 하나라도 알려지지 않았다면 결정은 미해결 상태이며, 테스트된 백업으로 스냅샷을 승격해서는 안 됩니다.
영향을 최소화하면서 유효한 경로를 선택하세요
PostgreSQL, MariaDB 및 기타 서비스 데이터베이스의 경우 지원되는 덤프 또는 물리적 백업 프로세스를 우선 사용하세요. SQLite의 경우 가능한 경우 앱 내보내기 또는 SQLite 온라인 백업을 사용하세요. 데이터베이스가 누락된 파일이나 이후에 생성된 파일을 가리키지 않도록 동일한 복구 기간에 업로드된 파일과 구성도 함께 캡처하세요.
지원되는 온라인 경로가 없다면 먼저 쓰기 작업을 중지한 다음 데이터베이스를 정상적으로 중지하고, 스냅샷을 생성하기 전에 프로세스가 종료되었는지 확인하세요. 일시 중지는 문서와 복원 테스트를 통해 정확히 해당 워크로드에서 크래시 복구만으로 충분하다는 사실이 입증된 경우에만 제한적인 임시 방편이 될 수 있으며, 애플리케이션 백업을 일반적으로 대체할 수는 없습니다.
소규모 홈 서버 스택은 데이터베이스 네이티브 덤프와 정상 중지된 사본을 위해 인접한 일관된 데이터베이스 컨테이너 백업을 따를 수 있습니다. 이 글의 범위는 더 좁게 유지하세요. 여기서는 스냅샷 전 작업을 결정하고, 링크된 가이드에서는 더 광범위한 백업 패키지의 내용을 다룹니다.
조정된 스냅샷 기간을 실행하세요
예약된 작업과 사용자 쓰기를 일시 중단하고, 선택한 앱 또는 데이터베이스 준비 작업을 실행한 다음, 파일 시스템 스냅샷을 생성하기 전에 성공 여부를 확인하세요. 스냅샷을 신속하게 생성한 후 정지를 해제하거나 스택을 다시 시작하세요. 그런 다음 스냅샷을 복사하거나 복제하여 중단 시간이 전송 시간과 같아지지 않도록 하세요.
모든 사용자 지정 훅에 실패 트랩을 추가하세요. 준비 작업이 실패하면 스냅샷을 생성하지 마세요. 스냅샷 생성이 실패하면 항상 애플리케이션을 재개하세요. 재개에 실패하면 사용자의 접근을 차단한 상태로 서비스를 신중하게 복원하세요. 각 전환을 기록하여 조용히 발생한 사전 훅 시간 초과가 백업 작업을 거짓으로 성공한 것으로 만들지 않도록 하세요.
앱이 정상 상태로 돌아오고, 스냅샷에 예상한 타임스탬프와 데이터셋이 있으며, 어떤 종속성도 해당 기간 밖에서 캡처되지 않았다면 통과입니다. 컨테이너가 일시 중지된 상태로 남아 있거나 데이터베이스가 모든 일반 스냅샷에서 복구를 보고한다면 자동화를 롤백하세요.
격리된 복원으로 선택을 입증하세요
스냅샷 또는 네이티브 백업을 포트와 스토리지 경로가 다른 임시 프로젝트로 복원하세요. 먼저 데이터베이스를 시작하고 무결성 검사를 실행한 다음, 앱을 연결하여 최근 레코드, 사용자, 첨부 파일, 예약된 작업 및 권한을 확인하세요. 운영 데이터베이스를 대상으로 테스트하지 마세요.
통과하려면 컨테이너가 정상적으로 시작되는 것만으로는 부족합니다. 앱이 복원된 상태를 읽고 업데이트할 수 있어야 하고, 관련 파일이 데이터베이스 참조와 일치해야 하며, 두 번째 재시작도 정상적으로 완료되어야 합니다. 크래시 일관성 스냅샷에 의존할 계획이라면 그 결과를 네이티브 백업 복원 결과와 비교하세요.
원래 워크로드가 이 테스트를 통과한 후에만 스냅샷 방식을 사용하세요. 일시 중지 기반 복구가 간헐적으로 실패하거나, 데이터베이스 복구가 필요하거나, 한 구성 요소를 동일한 복구 지점에 연결할 수 없다면 애플리케이션 네이티브 백업 또는 정상 중지 방식으로 전환하고, 실패한 스냅샷은 덮어쓰지 말고 증거로 보존하세요.
지원 및 팁
더 읽어보기

새 스토리지로 리포지토리를 이전하기 위한 Borg Backup 마이그레이션 가이드
Borg 저장소를 하나의 일관된 객체로 이동하세요. 쓰기를 중지하고, 키와 ID를 보존하며, 복원을 확인한 다음, 원본을 유지한 채 클라이언트를 업데이트하세요.

Restic 저장소 유지 관리 워크플로: 검사, 정리, 압축, 복원 테스트
Restic에는 별도의 압축 명령이 없습니다. prune이 재패킹을 수행합니다. 잠금과 여유 공간을 보호하고, 이후 다시 확인한 다음 격리된 복원으로 마무리하세요.

손상되었거나 중단된 백업 기록을 위한 Time Machine NAS 복구 가이드
이전 번들을 유지하세요. 복구 또는 새 체인을 선택하기 전에 NAS 액세스, 대상 ID, 이미지 손상, 방치된 기록을 분리하세요.

