지난번 포스트까지 실시간 동기화 폴더 구성을 위한 첫 번째 단계를 마쳤습니다.
공유 폴더 구현을 윈도 네트워크 방식으로 할지, 네트워크 드라이브로 할 지 여부는 자신의 네트워크 환경에 따라서 적절하게 선택하면 됩니다.
네트워크 방식은 원격 접속은 불가능하지만 속도가 빠른 반면, 네트워크 드라이브 방식은 원격 접속도 가능한 데 반해 반응속도가 다소 느립니다. (네트워크 드라이브는 원격지의 파일 변경 감지가 잘 되지 않을 수도 있습니다.)
이제 원격지에 있는 동기화 대상 파일을 마운트해서 로컬 PC에서 접근 가능하도록 설정했으므로, 로컬 디스크에 동기화 폴더를 지정하여 상호 업데이트가 가능하도록 해 주면 실시간 동기화 폴더가 되는 것입니다.
실시간 감시 및 업데이트 프로그램은 여러 가지가 있지만, 여기서는 대표적인 공개 소프트웨어인 FreeFileSync를 활용하여 구현해 보도록 하겠습니다.
FreeFileSync는 Windows, Ubuntu, Mac 등 다양한 OS를 지원하며, 특히 윈도 버전의 경우 포터블 버전도 함께 제공하고 있습니다. 여기서는 Windows에서 설치 및 설정하는 방법만을 다루지만, 다른 OS에서도 이와 유사한 방식으로 사용이 가능합니다.
FreeFileSync 설치
http://freefilesync.sourceforge.net 에 접속하여 FreeFileSync Windows 버전을 다운받아 설치합니다. 설치 과정에서 Portable이 아닌 Local 방식으로 설치하도록 합니다.
동기화 폴더 지정 및 옵션 설정
화면이 다소 복잡해 보이지만, 크게 세 부분으로 나누어 왼쪽은 비교 결과 표시창, 가운데는 로컬 폴더 지정창, 오른쪽은 원격 폴더 지정창입니다.
① 가운데의 로컬 폴더 지정창에서 동기화할 로컬 폴더 경로를 지정합니다.
* 양방향(Two-Way) 업데이트 방식인 경우 로컬/원격 폴더 지정창이 서로 바뀌어도 무관합니다.
② 오른쪽의 원격 폴더 지정창에서 동기화할 원격 폴더 경로를 지정합니다.
- 공유 폴더 방식 (SAMBA) : \\{서버 IP/도메인}\{디렉토리 경로}
- 네트워크 드라이브 (NetDrive) : {드라이브 문자}:\{디렉토리 경로}
③ 오른쪽 상단의 녹색 기어 모양 버튼을 누르고 다음 그림과 같이 동기화 설정을 합니다.
④ [OK] 버튼을 눌러 설정을 완료합니다.
이 상태에서 좌측 상단의 [비교] 버튼을 클릭하고, 이어서 오른쪽 상단의 [동기화] 버튼을 클릭하게 되면 이 과정이 바로 수동 동기화 입니다. 오류가 발생하여 실시간 동기화가 수행되지 않은 경우 오류 원인을 해결하고 이 방식으로 수동 업데이트를 하면 됩니다.
일괄 작업으로 저장
[프로그램] - [일괄 작업으로 저장] 메뉴를 클릭하고 다음과 같이 설정합니다.
- 프로그레스 다이얼로그 체크박스 해제 (체크시 동기화 시작때마다 팝업창이 뜨게 됨)
- 로그저장 체크박스 해제 (로깅이 필요할 경우 체크하고 로그파일 경로를 지정)
[다른이름으로 저장] 버튼을 클릭하여 적당한 위치에 AutoSyncBatchRun.ffs_batch 파일명으로 저장합니다.
실시간 동기화 설정파일 작성
[시작] - [모든 프로그램] - [FreeFileSync] - [RealtimeSync] 를 실행합니다.
다음과 같이 작성합니다.
- 열어 볼 폴더 : 2 - ①, 2 - ② 에서 지정한 로컬/원격 동기화 폴더 지정
- 유휴시간 : 변경이 감지된 직후부터 업데이트 수행까지 대기할 시간
- 명령줄 : "{FreeFileSync 설치경로}\FreeFileSync.exe" "{3. 에서 작성한 *.ffs_batch 파일의 경로}"
[프로그램] - [다른 이름으로 저장] 메뉴를 클릭하고 적당한 위치에 AutoSyncReadTime.ffs_real 파일명으로 저장합니다.
[시작] 버튼을 클릭하여 우선 동기화를 시작합니다.
시작 프로그램으로 등록
단축 아이콘을 만들어 윈도가 시작될 때 실시간 동기화 데몬이 자동 실행되도록 합니다.
[시작] - [모든 프로그램] - [FreeFileSync] - [RealtimeSync] 단축 아이콘을 [시작] - [모든 프로그램] - [시작 프로그램] 으로 복사하고, 속성을 다음과 같이 수정합니다.
- 대상 : "{FreeFileSync 설치경로}\RealtimeSync.exe" "{4. 에서 작성한 *.ffs_real 파일의 경로}"
이제 PC가 부팅되면 RealTimeSync가 자동으로 실행됩니다. 이후 원격/로컬 동기화 폴더를 수정하면 FreeFileSync가 자동으로 실행되면서 실시간 동기화를 수행하게 됩니다.
▲ 로컬 동기화 폴더에 파일을 복사해 넣으면 자동으로 동기화가 이루어집니다.
(원격 동기화 폴더가 바뀐 경우도 역시 자동 동기화가 이루어지게 된다.)
수동 동기화 단축 아이콘 만들기
FreeFileSync를 이용하여 실시간 동기화 폴더를 구축해 보았습니다. 앞서 언급했듯이, 네트워크 드라이브 방식의 경우 가끔 RealTimeSync에서 원격 동기화 폴더의 변화를 감지하지 못하는 경우도 있으므로 이에 유의해야 합니다.
사소한 버그로 보이는데, 앞으로 버전업하면서 해결되길 기대해 봅니다. 원격 동기화 폴더를 직접 변경한 경우 수동 동기화를 수행해 주는 방식으로 이 문제에 대처할 수 있습니다. (최초 부팅시에는 변화가 올바르게 감지되며, 업데이트를 수행 하므로 수동 동기화를 해 줄 필요가 없습니다.)
자동 동기화가 올바르게 동작하지 않을 경우나, 혹은 오류 발생 등의 원인으로 인해 수동 동기화를 해야 할 경우가 있습니다. 이럴 경우에 대비하여 다음과 같이 수동 동기화 아이콘을 만들어서 빠른실행 아이콘으로 등록해 두면 편리합니다.
RealtimeSync 단축 아이콘을 복사했던 것과 유사하게 FreeFileSync 단축 아이콘을 복사한 뒤 바로가기 속성에서 '대상'을 다음과 같이 수정합니다.
"{FreeFileSync 설치경로}\FreeFileSync.exe" "{3. 에서 작성한 *.ffs_batch 파일의 경로}"
수동 동기화 빠른실행 아이콘을 클릭하면 시스템 트레이에서 즉시 동기화 작업을 시작합니다. 별도의 창은 뜨지 않습니다.
▲ 수동동기화 아이콘을 생성한 모습
모바일(안드로이드)에서 자동 동기화 폴더 사용하기
PC에서와 유사하게 (안드로이드) 스마트폰에서도 FolderSync라는 앱을 활용하여 동기화 폴더를 구현할 수 있습니다. 단, 모바일 시스템 특성상 실시간 업데이트는 지원하지 않고 일정 주기 자동 동기화만 지원합니다.
▲ FolderSync
FolderSync 앱의 경우도 NetDrive 및 FreeFileSync를 활용한 동기화 폴더 구축 방법과 크게 다르지 않으므로 별도의 포스팅은 하지 않겠습니다.
Epilogue
이렇게 해서 실시간 동기화 폴더 a.k.a 사설 클라우드 시스템 구축을 완료하였습니다. 서버에 하나의 동기화 폴더를 지정하여 서버, 데스크탑, 노트북, 스마트폰 이렇게 네 가지 단말기에 실시간 동기화 폴더를 위치시켰습니다.
이제 음악 다운받아서 여기저기 분배하고 동기화하느라 USB 꼽고 FTP 접속하고 하는 등 노가다성 삽질을 하지 않아도 될 것 같습니다. 2학기 복학하고 나서는 같은 강의자료를 4번씩 다운받느라 수고할 필요도 없을 듯 합니다.ㅎㅎ
용량도 거의 무제한(=1TB)이고, 100Mbps 대역폭도 거의 혼자 다 쓰기 때문에 속도도 상당히 빠를 것으로 생각됩니다. (실제로 서울에서 얼마나 빠른지는 직접 속도 측정을 해 봐야 할 것입니다.)
마지막으로 노트북에 동기화 폴더를 설치하고, 끝까지 남아있던 상용 클라우드 서비스 클라이언트들을 모두 삭제하였습니다. 이걸로 데이터 백업 및 동기화 문제는 모두 해결된 듯 합니다.
이제 내일부터(오늘이군요.. 으아니 새벽 4시라니ㅡㅡ^)는 여기저기 분산되어 저장되어 있는 자료들을 정리하도록 해야겠습니다. 동아리 세미나 준비도 해야되는데 PPT랑 자료는 언제만들죠..?ㅋ
공부가 너무나 많이 되었고 네트워크 폴더 거미줄처럼 엮인것들 제대로 동기화 구축했습니다.