참고/링크란의 설명글을 다시한번 정리/가공하여 안드로이드 기기에 적용하는 과정을 담았습니다.
그런데 대장님... 혹시 참고/링크 란을 2개 이상으로 추가할 수 있는 기능 신설하실 생각은 없으실지요...
여러개의 링크를 깔끔하게 참고링크란에 넣고싶은 욕망이 듭니다....
각설하고 서론입니다.
============================================================================
구글을 비롯하여 수많은 클라우드 시스템에는 RealTimeSync 라는 기능이 있습니다. 대체로 이런 이름이고 업종별로 조금씩 다릅니다. 구글은 Backup and Sync라고 하며, 시놀로지는 Synology Drive라는 패키지와는 별도로 Synology Drive Client가 존재합니다.
요는 이겁니다. 클라우드의 특정 폴더를 지정해서 내 컴퓨터에 실시간으로 복사하거나, 나아가 아예 내 컴퓨터의 특정 폴더를 실시간으로 관리하며 이 정보가 클라우드에 반영되는 겁니다.
그럼 기존의 WebDAV나 FTP 방식과 다를게 뭐냐구요?
1. 연결이 끊겨도 여전히 파일은 유효하다.
위에서 언급된 네트워크 드라이브 방식은 기본적으로 클라우드나 NAS상의 파일에 직접 접근하는것을 전제로 합니다. 따라서 네트워크 연결이 끊기는 순간 폴더에 접근 자체가 불가해지는 문제점이 있죠.
하지만 RealTimeSync 방식은 조금 다릅니다. 공간절약을 위해 파일을 껍데기만 복사해두고, 해당 파일이 로컬에서 필요로한다는 요청이 들어오면 그제서야 다운로드를 실행합니다.
한번 다운로드받은 파일은 별도의 명령을 통해 공간확보를 실행하여 다시 껍데기로 만들지 않는 한 로컬에 계속 남으며 저장공간도 차지합니다.
2. 이중 백업의 기능을 수행한다.
당장 저희 회사만 하더라도 백업 개념으로 대부분의 자료를 컴퓨터에 세팅해준 네트워크 드라이브를 통해 NAS에 백업합니다. 하지만 그건 달리말하면 NAS에"만" 저장됨을 의미합니다.
이 방식은 로컬의 파일을 복사해서 클라우드의 특정 폴더에 집어넣는 방식이기 때문에, 공간 확보 기능을 사용해 껍데기 파일로 만들지 않는 한, 파일은 클라우드와 로컬 두군데 모두 남게 됩니다. 한쪽에 문제가 생겨도 나머지 한쪽을 통해 복구가 가능하다는 말이죠. (파일 생성일자같은 정보는 좀 꼬이겠습니다만...)
예를들어, 제가 사진을 백업하는 폴더는 Synology NAS로 이것저것 실험하다가 여러번 터졌음에도 데이터가 유실된 적이 한번도 없습니다. NAS와 별도로 로컬 컴퓨터의 8TB 공간에 동기화를 해두었기 때문입니다.
이정도가 되겠네요.
실제로 저는 1/2의 기능을 복합적으로 활용해서, 집 컴퓨터의 로컬 드라이브를 NAS상에 실시간 동기화, 이걸 노트북같은 저장공간이 적은 PC 및 안드로이드 기기 등에서 일부만 동기화하는 식으로 사용하고 있습니다.
그런데 이 좋은 방법에도 약간 문제가 생겼습니다.
바로, 윈도우 환경에선 동기화가 원활하지만, 안드로이드 기기에서는 이러한 RealTimeSync 기능을 지원하지 않는다는 점이었죠. 그저 클라우드상의 폴더에 접근하고 업로드 다운로드정도만 수행하는 앱이 전부였습니다.
본론입니다.
이제부터는 초점이 클라우드 전체에서 Synology를 비롯한 NAS로 이동합니다.
아래는 안드로이드 앱의 Google Play 링크입니다.
https://play.google.com/store/apps/details?id=com.nutomic.syncthingandroid&hl=ko&gl=US
해당 앱을 설치한 뒤, 별도의 저장공간(Window PC가 될 수도 있고, 리눅스 PC가 될 수도 있으며, NAS가 될 수도 있습니다.)에 Syncthing 패키지를 설치해 연동한다면 해당 패키지를 설치한 기기가 중계서버가 되어 안드로이드 기기에 RealTimeSync를 구현할 수 있습니다!
이제부터 그 방법을 알아봅시다.
전제 : Synology NAS와 안드로이드 기기를 사용
먼저, 저는 중계를 담당할 PC를 NAS로 설정하였습니다. 24시간 돌아가면서 계속 백업이 되기도 하며, 무엇보다 안드로이드 - NAS - 다른 PC 라는 방향으로 안드로이드 기기에서 동기화시긴 파일을 다른 PC에서 손쉽게 접근할 수 있기 때문이지요.
그러면 우선 Synology NAS에 Docker를 설치해주어야 합니다.
Synology 패키지센터에서 Docker를 검색하여 설치하고 실행합니다.
그리고 해당 cmd 창에서 로그인한 뒤, (이때 sudo -i를 사용해도 좋고, 안해도 됩니다.) 위 사진과 같이 id (로그인아이디) 를 입력하여 uid와 gid로 표기되는 파라미터를 확보합니다.
예시에서는 PUID = 1026 / GUID = 100 이네요.
2. 컨테이너 구성 설정
이제 "컨테이너" 탭으로 들어가 다운로드한 레지스트리를 사용해 컨테이너를 구성합시다.
첫번째 단계입니다. 해당 컨테이너가 사용할 네트워크를 지정합니다. 이건 Docker의 호스트, 즉 시놀로지가 사용하는것과 동일하게 설정하면 됩니다.
일반설정입니다. 이름은 원하는 이름으로 구분하기 쉽도록 지어줍니다.
그리고 자동재시작을 활성화합니다. 컨테이너에 에러가 발생했을 때 자동으로 재시작하는 기능입니다.
Web Station을 사용하면 포털 활성화 기능도 생기나본데, 저는 사용하지 않았습니다.
그리고 가장 중요한 고급 설정 기능입니다.
상단의 추가버튼을 눌러 두개의 공란을 만든 다음, 앞서 조사했던 PUID와 GUID를 기재하고 저장합니다. 이 과정을 위해 맨 처음에 SSH 접속을 했던것입니다.
이제 해당 Docker가 사용할 볼륨을 지정합니다.
저는 우선 최상단 폴더에 docker 폴더를 만들고, 하위에 Syncthing 폴더를 만들었습니다.
그리고 이 폴더를 선택하면 위와 같은 창이 뜹니다.
본래 비어있는 "마운트 경로" 칸을 /config 라고 기재해줍니다.
이제, 해당 폴더는 Syncthing 컨테이너의 설정을 저장하는 공간이 되었습니다.
같은 방법으로, 적당한 폴더를 지정해서 "마운트 경로"에 /media 라고 써주면 해당 폴더는 "media"라는 이름의 저장공간이 됩니다.
이런식으로요.
다음을 누르면 컨테이너 설정이 완료됩니다.
3. 컨테이너 구동 및 웹 GUI세팅
쨘.
===========================================================================