GDFS를 백업 저장소로 쓰기

출처: https://unsplash.com/photos/1p99o5sVm3s

Google Drive File Stream은 원격 저장소를 로컬 스토리지처럼 제공하니 백업 저장소로 사용하기가 쉽다. 단, 파일 숫자가 적다면.

4기가짜리 동영상 파일을 GDFS에 복사하기는 쉽지만 4바이트짜리 텍스트 파일 10만개를 복사하기는 어렵다. 그래서 여러 번 시행착오를 거쳐 나만의 최적화된 백업 스크립트를 작성했다. 백업은 크게 세 가지 방식을 동원하는데 자신에게 맞춰 수정해 사용하면 된다.

  1. rsync -av -delete --backup: rsync를 이용하여 로컬 폴더를 GDFS에 그대로 동기화한다. 삭제된 파일 등이 발견되면 별도의 백업 폴더에 해당 파일을 백업한다. 이 방법은 파일이 많지 않고 데이터를 복원할 때 사람이 개입해도 무방할 때 이용한다.
  2. rsync_tmbackup.sh: rsync를 이용하되 Timemachine 스타일로 백업한다. laurent22/rsync-time-backup는 hardlink를 활용하는데 Google File Stream에선 하드링크된 파일을 복사본으로 취급하기 때문에 사실상 매번 모든 파일을 복사하는 단점이 있다. 다만 백업 스냅샷이 완벽하게 구성되므로 원하는 날짜의 내용물로 복원하기는 매우 쉽다.
  3. pigz: 용량이 작은 텍스트 파일이 많은 경우에는 작업 폴더 전체를 압축해서 백업하는 편이 시간이 덜 걸린다. 병렬 압축을 지원하는 pigz 같은 도구를 이용하면 파일 숫자가 많아도 걱정할 필요가 없다.

마지막으로 Dropbox 같은 클라우드 스토리지는 굳이 따로 백업하지 않아도 되므로 예외처리한다 rsync-exclude-patterns.txt.

- *.pvm
- *.torrent
- Dropbox/

최 재훈

블로그, 페이스북, 트위터 고성능 서버 엔진, 데이터베이스, 지속적인 통합 등 다양한 주제에 관심이 많다.
Close Menu
%d bloggers like this: