Robocopy: Windows 용 백업 유틸리티

몇 개 팀이 공유하는 소스 저장소 서버 (Perforce / SVN이 둘 다 돌아감) 를 백업하고 새 서버로 이전하는 작업을 했다.

실제 작업에서 이전해야 했던 환경은 대략,

  • 180 GiB 정도의 총 데이터
  • 60만 개 정도의 파일들
  • 네트웍 위로의 복사

네트웍 드라이브로 새 머신에 기존 머신의 드라이브를 연결한 후, 이걸 파일 복사로 백업/이전하는 작업이 할 일이었다.

파일 수가 저렇게 많은건, Perforce가 리비젼/인덱스 관리 이외에, 각 파일을 CVS처럼 실제 형태로도 가지고 있기 때문. 덕분에 엄청난 수의 파일들을 복사해야한다. 덕분에 갖가지 문제가 터졌음. 아으

여튼, 복잡한 형태의 백업이 아니라고 처음엔 이렇게 접근했다.

(자잘한 옵션은 앞으로도 계속 생략한다; 보통은 –q (출력 줄이는 류의 옵션) 류의 옵션은 대부분 줬다)

# 각 서버를 내리는 스크립트가 들어간 자리

xcopy d:\svn_root e:\backup\2009mmdd\svn_backup
xcopy d:\perforce_repository e:\backup\2009mmdd\perforce_backup

# 각 서버를 올리는 스크립트가 들어간 자리

일단 이건 시간이 말도 안되게 걸렸고, 결국 실패했다.

그 결과 xcopy 대신에 TeraCopy란 툴을 시도해봤다. ((개인 사용자만 공짜인 툴이다)) 예전 버전(1.x)에는 실패한 파일을 스킵하는 기능이 있었던 것 같은데 2.x가 되면서 없어진듯하다? 여튼 이 녀석으로 시대해본 결과, 한 컴퓨터 내의 파일 시스템 내 복사는 잘 된다. 하지만 네트웍 위로 복사하는 작업은 강대히 실패 ㄳ.

파일 수가 너무 많아서인지 중간에 프로그램이 hang up. –_-

그래서 약 3일간 시도했지만[…], 도저희 이건 취할 수단이 아니라고 판단해서 포기하고, 전산팀에서 조언한 robocopy를 사용하기로 했다. ((이름은 robocopy지만 진짜(?)이름은 robust copy여서 robocpy란다 -_-;; ))

Vista / Server 2008 혹은 (…당연히도) Windows Server 2003 Resource kit 에 포함되어 있는데, 이거 나름대로 괜찮은 물건이었다. 일단 몇 가지 필요한 요소였던,

  • 커맨드 라인 사용이 가능할 것
  • 최종 요약을 포함한 로깅
  • 재시작 가능할 것
  • 아주 많은 수의 파일을 복사할 수 있을 것
  • 긴 이름(XCOPY가 긴 이름 복사가 안된다) 복사가 될 것.

를 모두 가지고 있더라. 여튼 이녀석으로 시험삼아 복사하는 작업은 성공했고, 최종적으로 금 밤~토를 거쳐서 복사 작업이 끝났고, 오늘 오후에 잠시 회사에 가서 소스 저장소 서버 복구 모드로 다시 띄우고, 권한 설정 업데이트하고 마무리.

PS. 근데 이거 *nix면 rsync로 매우 쉽게 될 것 같은 기분이 드는데 말이지 Orz

Jinuk Kim
Jinuk Kim

SW Engineer / gamer / bookworm / atheist / feminist

Articles: 935

4 Comments

    • 내가 아는 범위에선 백업 “장소”가 될 순 없던거 같은데. 그냥 윈도우에 있는 파일을 *nix에 백업하는 형식으로만 썼던 것 같음 (그리고 cygwin위에서만 돌걸?)

      • 윈도우용 있기는 합니다만…
        * 주의 사항
        파일경로가 매우 긴 경우 제대로 동작하지 않을 수 있으므로, 클라이언트의 메시지와 서버의 로그파일을 꼭 확인해야 한다. 출처 : http://blog.bagesoft.com/766
        라는 군요.. -_-

        저라면, colinux 깔고, colinux 내부에서 마운트해서 rsync로 복사 했을 겁니다. ㅎㅎㅎ
        (물론 colinux 깔러면 linux.sys였나 하는 드라이버를 하나 설치 해야 해서 관리자 권한이 필요하다는 단점이 … colinux 자체는 설치가 필요 없습니다. ㅎㅎ)

        • 파일 이름이 매우 긴 경우(255자 초과)가 매우 많아서 일단 기각이었고(…), colinux는 어느 정도로 추상화되어있는진 모르겠네요 -_-;

          옮겨갈 하드 / 원본 하드 모두 RAID 파티션이라 이래저래 문제가 많았죠(…); 여튼 결론은 Robocopy!

Leave a Reply