rsync로 VPS 데이터를 안전하게 이전하기
rsync를 사용해 일반 파일시스템 데이터를 원본 VPS에서 SSH를 통해 대상으로 먼저 복사한 뒤 쓰기를 잠시 멈추고 최종 동기화하고 애플리케이션을 검증해 롤백 경로와 함께 트래픽을 전환하십시오. rsync는 범용 실시간 이전 도구가 아닙니다. 데이터베이스, 컨테이너, 부팅 파일, 장치, 비밀정보, 활성 큐는 애플리케이션에 맞게 다뤄야 합니다.
핵심 정보
- 전송
- 인증된 SSH 기반 Rsync
- 첫 작업
- 데이터 목록화와 사전 실행
- 일관성
- 최종 단계에서 쓰기 중지 또는 정지
- 안전 기본값
- 첫 이전에는 `--delete`를 쓰지 않음
복사 전 목록 만들기
애플리케이션 파일, 소유권, ACL, 확장 속성, 데이터베이스, 비밀정보, 예약 작업, 서비스, 방화벽, DNS, 인증서, 외부 스토리지를 나열하십시오. 대상 용량, 사용자, 파일시스템, OS 패키지, 애플리케이션 버전의 호환성을 확인합니다. DNS 계획에 맞을 때만 전환 전 TTL을 낮추십시오. 캐시 기록은 예상보다 오래 남을 수 있습니다.
원본의 독립 백업을 만들고 검증하십시오. 초기 전송 동안 원본을 바꾸지 않고 사용 가능하게 유지합니다. 유지보수 창 공지 전 성공 검사와 롤백 판단을 정하십시오.
/proc,/sys,/dev,/run같은 가상 파일시스템을 일반 데이터로 복사하지 않습니다.- 적절하면 데이터베이스 고유 백업, 복제, 덤프 도구를 씁니다.
- 개인 키를 명령 기록이나 공유 메모에 남기지 않습니다.
사전 실행으로 애플리케이션 데이터 준비하기
/srv/app/ 같은 디렉터리는 원본에서 sudo rsync -aHAX --numeric-ids --info=progress2 --dry-run -e "ssh -i /root/.ssh/migration_key" /srv/app/ admin@DESTINATION:/srv/app/을 시험하십시오. 사용자, 키 경로, 대상, 데이터 경로를 바꿉니다. 끝의 슬래시는 디렉터리 층을 하나 더 만들지 않고 원본 내용만 복사한다는 뜻입니다.
모든 경로와 오류를 확인하고 원격 계정이 대상에 안전히 쓸 수 있게 합니다. root 로그인은 불필요하며 흔히 꺼져 있습니다. 사전 결과가 맞으면 --dry-run 없이 반복하십시오. 디렉터리를 같게 하려고 --delete를 추가하지 마십시오. 경로 오류로 중요한 데이터가 지워질 수 있습니다.
- 대용량 전송은 지속 터미널 세션에서 실행합니다.
- 운영 트래픽에 영향이 있으면 대역을 제한합니다.
- 명령 옵션과 도구 버전을 이전 기록에 남깁니다.
쓰기를 멈추고 최종 동기화하기
애플리케이션을 문서화된 유지보수 또는 읽기 전용 상태로 두고 지원 절차로 정확한 쓰기 서비스를 멈춘 뒤 최종 데이터베이스 백업이나 복제를 완료하십시오. 같은 rsync 명령을 다시 실행해 변경 파일만 전송하고 검증까지 유지보수 상태를 유지합니다.
의도한 구성으로 대상 서비스를 시작하고 가능하면 처음에는 공개 접근을 제한하십시오. 상태, 로그인, 쓰기, 큐, 인증서, 로그, 의존을 검사하고 통과한 뒤 DNS나 라우팅을 바꿉니다. 결합 위험을 명시적으로 받지 않았다면 같은 창에서 애플리케이션 버전과 위치를 모두 바꾸지 마십시오.
- 최종 쓰기 중지 시각과 동기화 결과를 기록합니다.
- 파일 소유권과 강제 접근 제어를 검증합니다.
- DNS 전환 중 구·신 종단점을 감시합니다.
검증하고 관찰하며 롤백 유지하기
깊은 파일 비교는 적절한 창에 원래 명령을 --checksum --dry-run과 함께 실행하십시오. 체크섬은 양쪽 데이터를 읽어 비쌀 수 있습니다. 데이터베이스와 객체 저장소는 애플리케이션 무결성 검사를 우선합니다. 전환 뒤 오류, 지연, 자원, 백그라운드 작업, 외부 콜백을 감시하십시오.
롤백 창이 끝날 때까지 원본을 그대로 두되 분할 쓰기를 막습니다. 이후 보존·안전 삭제 계획을 따르십시오. 백업, 모니터링, 문서, 복구 절차가 대상을 가리킬 때 이전이 완료됩니다.
출처
자주 묻는 질문
실행 중 데이터베이스를 rsync로 안전하게 복사할 수 있나요?
실시간 데이터베이스 파일 복사는 불일치할 수 있습니다. 지원되는 덤프, 백업, 스냅샷 조정, 복제 절차를 쓰십시오.
`--delete`를 써야 하나요?
첫 이전에는 쓰지 마십시오. 나중에 필요하면 먼저 --delete --dry-run으로 양쪽 경로를 검증하고 복구 가능한 백업을 유지합니다.
권한이 왜 바뀌었나요?
대상 사용자 권한 부족, 숫자 ID 차이, 대상 파일시스템의 ACL·속성 미지원 때문일 수 있습니다. 전환 전 호환성을 확인하십시오.