콘텐츠로 이동

백업 및 복구

LabPod는 워크스페이스, 사용자, 템플릿, 정책, 감사 로그, 설정이 담긴 SQLite 데이터베이스를 백업합니다. /home/<user>/work에 있는 사용자 파일은 데이터베이스 백업에 포함되지 않습니다. 이 파일은 호스트 수준 백업 도구로 따로 백업하세요.

설치 스크립트는 labpod-backup.timer를 등록합니다. 이 타이머는 하루 한 번 임의의 지연을 둔 뒤 다음 명령을 실행합니다:

Terminal window
labpod admin backup --dir /var/lib/labpod/backups --retention 14

이 명령은 타임스탬프가 붙은 스냅샷(labpod-YYYYMMDDTHHMMSSZ.db)을 만들고 최근 14개만 남긴 뒤 오래된 것을 지웁니다.

Terminal window
# 타이머 검사
sudo systemctl list-timers labpod-backup.timer
# 최근 백업 로그 확인
sudo journalctl -u labpod-backup.service --since today
# 기존 백업 목록 조회
ls -lah /var/lib/labpod/backups/
Terminal window
# Run these as root
# 타이머 검사
systemctl list-timers labpod-backup.timer
# 최근 백업 로그 확인
journalctl -u labpod-backup.service --since today
# 기존 백업 목록 조회
ls -lah /var/lib/labpod/backups/

지금 즉시 스냅샷 강제 실행:

Terminal window
sudo systemctl start labpod-backup.service
Terminal window
# Run these as root
systemctl start labpod-backup.service

기본값을 재정의하려면 systemd 드롭인을 사용하세요:

Terminal window
sudo systemctl edit labpod-backup.service
Terminal window
# Run these as root
systemctl edit labpod-backup.service

편집기에 다음을 붙여넣으세요:

[Service]
ExecStart=
ExecStart=/usr/local/bin/labpod admin backup --dir /var/lib/labpod/backups --retention 30
Terminal window
sudo systemctl daemon-reload
Terminal window
# Run these as root
systemctl daemon-reload

지정한 경로에 독립된 스냅샷을 만듭니다:

Terminal window
sudo labpod admin --db /var/lib/labpod/labpod.db backup --out /tmp/labpod-adhoc.db
Terminal window
# Run these as root
labpod admin --db /var/lib/labpod/labpod.db backup --out /tmp/labpod-adhoc.db

데이터베이스 파일이 없으면 즉시 실패합니다 (빈 DB를 자동으로 생성하지 않음).

SQLite는 WAL 사이드카(.db-wal, .db-shm)가 사용 중이면 핫 복사를 거부하므로, 복구할 때는 서비스를 중지해야 합니다.

Terminal window
sudo systemctl stop labpod
sudo labpod admin --db /var/lib/labpod/labpod.db restore \
/var/lib/labpod/backups/labpod-20260517T030000Z.db
sudo systemctl start labpod
Terminal window
# Run these as root
systemctl stop labpod
labpod admin --db /var/lib/labpod/labpod.db restore \
/var/lib/labpod/backups/labpod-20260517T030000Z.db
systemctl start labpod

restore--yes를 전달하지 않으면 확인을 요청합니다.

백업은 LabPod 데이터베이스의 전체 스냅샷입니다:

  • 사용자, 역할, 해시된 비밀번호
  • 워크스페이스 정의 및 GPU 할당
  • 템플릿과 해당 포트/환경 구성
  • 리소스 정책 및 시스템 설정
  • 세션 레코드 및 감사 로그
  • 사용량 샘플 및 롤업

포함되지 않음: 워크스페이스 컨테이너 레이어, 사용자 홈 디렉토리, 업로드된 파일. 워크스페이스 컨테이너 상태(실행 중인 커널, 훈련 체크포인트)도 캡처되지 않고 워크스페이스 메타데이터만 포함됩니다.