백업 & 복원
9.1 정책 기반 자동 백업
섹션 제목: “9.1 정책 기반 자동 백업”backup_scheduler.c가 ZFS 스냅샷 기반으로 자동 백업을 수행한다.
| 파라미터 | 설명 | 기본값 |
|---|---|---|
| interval_hours | 백업 주기 (시간) | 24 |
| retention_count | 보존할 스냅샷 수 | 7 |
| 대상 | VM 이름 또는 * (전체) | - |
# 정책 설정 — 전체 VM 일일 백업, 7일 보존pcvctl backup set '*' --interval 24 --retention 7
# 특정 VM 정책pcvctl backup set web-prod --interval 12 --retention 14
# 정책 목록pcvctl backup list
# 히스토리pcvctl backup history web-prod9.2 fsfreeze/thaw (v1.0)
섹션 제목: “9.2 fsfreeze/thaw (v1.0)”Guest Agent가 설치된 VM에서 fsfreeze --freeze / --thaw를 통해 파일시스템을 정지시킨 후 스냅샷을 생성한다.
애플리케이션 정합성(application-consistent) 스냅샷을 보장한다.
9.3 무결성 검증 (v1.0)
섹션 제목: “9.3 무결성 검증 (v1.0)”백업 완료 후 zfs list 명령으로 스냅샷 존재 여부와 크기를 검증한다.
9.4 GTask 비동기 (v1.0)
섹션 제목: “9.4 GTask 비동기 (v1.0)”백업 작업은 GTask 스레드에서 비동기 실행되어 메인 GMainLoop를 블로킹하지 않는다.
fire-and-forget 패턴:
클라이언트 요청 → 즉시 "accepted" 응답 → GTask 백그라운드 실행9.5 원격 ZFS 복제 (범위 밖)
섹션 제목: “9.5 원격 ZFS 복제 (범위 밖)”원격 노드 증분 복제는 Multi 제어면과 연결되는 범위이므로 Single Edge 공개판의 운영 절차로 제공하지 않는다.
Single Edge에서는 로컬 ZFS snapshot, 로컬 백업 정책, S3 업로드처럼 단일 노드에서 검증 가능한 백업 경로를 우선 사용한다.
9.6 원격 보존 정책 (v1.0)
섹션 제목: “9.6 원격 보존 정책 (v1.0)”원격 노드 보존 정책은 Multi 제어면 참고 범위다.
Single Edge 공개판에서는 로컬 snapshot 보존 정책을 기준으로 운영한다.
9.7 S3 업로드 (v1.0)
섹션 제목: “9.7 S3 업로드 (v1.0)”100MB 초과 시 멀티파트 업로드를 사용하여 AWS S3에 백업을 업로드한다.
# RPCecho '{"jsonrpc":"2.0","method":"backup.s3_upload","params":{ "name":"web-prod", "snapshot":"auto-20260401", "bucket":"purecvisor-backups", "region":"ap-northeast-2"},"id":"1"}' | nc -U /var/run/purecvisor/daemon.sock9.8 히스토리 페이지네이션 (v1.0)
섹션 제목: “9.8 히스토리 페이지네이션 (v1.0)”# REST — 페이지네이션curl -s -H "Authorization: Bearer $TOKEN" \ "http://127.0.0.1:8080/api/v1/backups/web-prod/history?offset=0&limit=20"9.9 스냅샷 일괄 삭제
섹션 제목: “9.9 스냅샷 일괄 삭제”prefix 필터와 keep_recent 보존 옵션을 지원하는 일괄 삭제:
# auto- 접두사 스냅샷 중 최근 3개 보존, 나머지 삭제echo '{"jsonrpc":"2.0","method":"vm.snapshot.delete_all","params":{ "name":"web-prod", "prefix":"auto-", "keep_recent":3},"id":"1"}' | nc -U /var/run/purecvisor/daemon.sock