'Nas'에 해당되는 글 6건

  1. 2020.12.19 Synology NAS에서 Torrent 사용하는 방법 총정리 (+Docker 활용) 11
  2. 2020.09.20 Synology NAS에 EBS 라디오 어학방송 녹음하기 2022년판 19
  3. 2016.12.05 Synology NAS에 EBS 라디오 어학방송 녹음하기 2016년판 49
  4. 2013.01.22 홈 미디어 네트워크 보완 계획 #4 - NAS 세팅 17
  5. 2013.01.14 홈 미디어 네트워크 보완 계획 #3 - NAS 선택과 구입 22
  6. 2012.10.24 홈 미디어 네트워크 보완 계획 21
2020. 12. 19. 23:26

Synology NAS에서 Torrent 사용하는 방법 총정리 (+Docker 활용)

NAS 사용자분들이 가장 흔하게 쓰시는 어플리케이션 중 하나가 BitTorrent, 보통은 토렌트라고 하는 파일 다운로드/공유 서비스일 텐데요.
Synology NAS에서 torrent client를 돌리는 방법은 대략 세 가지가 있는 것으로 보이는데, 제가 최근 들어 이 세 가지를 모두 경험해봤기에 정리 차원에서 한 번 글을 남겨봅니다.


그런데 요즘 같은 스마트 시대에는 BitTorrent client뿐 아니라 스마트폰에서 직접 torrent client를 원격 제어하고 모니터링할 수 있는 앱의 존재도 중요하죠. 스마트폰으로 웹서핑 하다가 토렌트 시드 파일이나 마그넷 주소를 클릭하면 자동으로 뿅하고 떠서 NAS에 다운로드 명령을 내려주고, 파일 전송 상황도 보기 편하게 정리해서 보여주는 앱이 참 편리합니다.

그런 이유로 torrent client와 그 컨트롤/모니터링 UI용 스마트폰 앱을 쌍으로 묶어 소개드리도록 하겠습니다.


그런데 애플 앱스토어에는 이런 UI 앱들이 없거나, 있었다가 내려간 것으로 알고 있습니다. 이렇게 원격 UI 앱이 없을 경우 스마트폰에서 NAS의 torrent client를 컨트롤하려면 NAS의 torrent 감시 폴더에 seed 파일을 올려서 다운로드를 시작하게 하고, 진행상황은 웹 브라우저로 NAS에 접속해서 모니터링하는 방법이 있기는 합니다. 좀 불편하지만요.

이런 감시 폴더 혹은 torrent 자동 추가 폴더 기능은 제가 소개 드릴 모든 torrent client에서 지원하고요. Seed 파일을 손수 올리시는 수고를 더는 방법으로는 Synology Drive를 이용해서 폰의 브라우저 다운로드 폴더를 NAS와 동기화시키고, NAS에서는 이 동기화된 폴더를 torrent 감시 폴더로 설정하는 방법도 있습니다.

1. Download Station / DS Get

Synology NAS에서 torrent를 쓰는 90%의 사용자가 사용하시는 프로그램이 바로 Download Station 아닐까 합니다. Synology 공식 다운로드 앱이고요. Synology NAS 패키지 프로그램들을 받을 수 있는 '패키지 센터'에 들어가시면 뭔가 다운로드하고 싶어지게 만드는 아래쪽 화살표 두 개짜리 아이콘이 있는데, 이걸 클릭하시면 설치되는데요.
Torrent 관련 기본적인 기능들은 다 되고, 성능도 꽤 잘 나오고 안정적입니다. 그래서 웬만한 분들은 얘 말고 딴 애들에 대한 필요성을 느끼지 못하실 겁니다.

 

스마트폰 원격 UI 앱으로는 역시 Synology 공식 앱인 DS Get이 있습니다. 토렌트 시드 파일이나 브라우저의 마그넷 링크로 다운로드를 시작하게 할 수 있고, 다운로드하는 파일들의 정보도 한 눈에 볼 수 있는 기본기에 충실합니다.
DS Get은 구글 플레이마켓에는 있습니다만, 앱스토어에서는 내려갔기 때문에 아이폰 사용자는 더이상 새로 설치하실 수 없습니다. 앱 없이 제가 위에서 설명한 감시 폴더와 웹브라우저를 이용한 원격 인터페이스를 쓸 수도 있고, DS Get의 대안으로 SynoDS라는 유료 앱이나 Download Station Mobile이라는 무료 앱도 있던데 쓸만한지 모르겠네요.


Download Station과 DS Get의 설치 및 사용법은 간단한 데다가 검색하시면 얼마든지 나오니 제가 굳이 자세히 설명하진 않겠습니다.

 

다른 torrent client 대비 Download Station의 특출난 장점이라면 torrent 검색 기능이 있습니다. 인터넷 검색으로는 백방으로 찾아봐도 도저히 구할 수 없어서 거의 포기했던 자료를 지푸라기라도 잡는 심정으로 Download Station에서 검색했더니 나왔던 경험이 한두 번 있었습니다. DLM 형식의 플러그인을 추가해주면 더 많은 서버의 자료를 검색할 수 있습니다. 인터넷에서 "Download Station DLM"으로 검색해서 DLM 파일 좀 추가 등록하면 torrent를 정말 잘 찾아줍니다.

그리고 크롬 웹 스토어에 보면 Synology Download Station이라는 확장 프로그램이 있어서 이걸 깔면 크롬에서 마그넷 주소 클릭했을 때 바로 다운로드 스테이션에서 다운로드시킬 수 있고, 크롬 주소창 우측에서 Download Station의 진행상황도 간략히 볼 수 있습니다. PC에서 크롬 브라우저 사용하시는 분들은 편리하게 이용하실 수 있습니다.

 
반면에 이 둘의 조합에 대해 개인적으로 답답한 불만 사항이 하나 있습니다.
DS Get의 모니터링 정보가 너무 빈약합니다. 남은 다운로드 시간처럼 꽤 중요하다고 생각되는 정보가 메인 화면에 표시되지 않습니다. 다른 건 그럭저럭 참을만 한데 다운로드 파일 네임 중간 부분이 안 보입니다. 보통 파일들 보면 파일이름 앞뒤에 뭔가 쓰잘데기 없는 정보들이 많이 붙어서 정작 중요한 내용은 한가운데 있을 경우가 많은데 DS Get은 아래 그림과 같은 식으로 파일명 중간부분을 '...'으로 생략하고 맙니다.

 

저 생략된 부분을 보려면 폰을 가로로 돌리고 생쑈를 하거나 그래도 원하는 부분이 안 보이면 파일을 지워버리겠다고 위협을 해야 오른쪽 그림처럼 풀 네임을 보여줍니다. 그러다가 손가락이라도 미끄러지면 며칠 걸려 90% 받던 도중의 파일을 그냥 날릴 수도 있는 거고요.

DS Get뿐만 아니라 Download Station 자체도 프로그레스 바, 시더/피어 수 같은 중요 정보가 메인 다운로드 모니터 화면에 일목요연하게 표시되지 않는 등, 보기 어렵게 디자인돼있는 편입니다.

 

어찌 보면 아주 사소한 단점이기는 한데, 아무튼 저는 이런 점이 답답하고 마음에 안 들어서 다른 BitTorrent Client를 깔아서 사용해왔습니다.

2. Transmission, Deluge, ruTorrent / Transmission Remote, Transdrone, nzb360

아마도 Download Station을 안 쓰시는 10%의 torrent 사용자 분들은 십중팔구 Transmission이나 Deluge를 쓰실 것 같습니다. 얘들은 Synology 공식 패키지 센터가 아닌 SynoCommunity 같은 서드파티 커뮤니티에서 받으실 수 있습니다. 

 

 

 

일단 다운로드를 받으시려면 패키지 센터 설정에서 패키지 소스로 http://package.synocommunity.com을 지정해주셔야 합니다. 그러면 패키지 센터에 커뮤니티 탭이 생기고, 아래처럼 Transmission이 보이죠.

 

 

 

SynoCommunity에는 Deluge와 ruTorrent도 있는데 제가 걔네들은 안 써봐서 Transmission 기준으로 설명드리겠습니다.
깔면 바로 쓸 수 있는 Download Station과는 달리 몇 가지 만져줘야 할 부분들이 있습니다. 일단 기억을 더듬어보자면 설치할 때 임시 다운로드 파일을 저장할 공유폴더를 물어봅니다. 저는 downloads라는 이름의 공유폴더를 새로 만들어서 거기로 지정해줬습니다. 그리고 NAS 계정의 ID/password와는 별도로 Transmission 용의 ID/password를 설정해줘야 합니다.


설치 후에는 폴더 권한 설정을 해줘야 하는데요. 위에서 만든 downloads 공유 폴더, 그리고 다운로드 파일을 최종적으로 저장하게 될 video 같은 기존 공유 폴더 몇 개에 대해 sc-download 그룹의 읽기/쓰기 권한을 활성화시켜 주셔야 합니다.

 

 

 

 

그리고 Transmission은 bit torrent의 기본 송수신 포트인 6881-6890을 쓰지 않고 51413을 씁니다. 유무선 인터넷 공유기에서 51413 포트를 TCP와 UDP 모두에 대해 NAS로 포트 포워딩 설정해주셔야 합니다. 그리고 외부에서 스마트폰 앱으로 컨트롤하기 위해서는 UI용 포트인 9091도 (TCP만) 추가로 포트 포워딩 설정해주셔야 합니다. 이렇게 하시고 나면 웹 브라우저에서 http://(NAS 주소):9091을 치면 Transmission에 접속할 수 있습니다.
Transmission은 Download Station과 비슷한 부분이 많습니다. Download Station이 Transmission을 기반으로 만들어졌다고 들었는데, 그래서 그런 것 같기도 합니다.

함께 쓸 수 있는 스마트폰 원격 UI 앱은 여러가지가 있는데요. Transmission 전용으로 Transmission Remote라는 앱도 있고요, 다양한 torrent client를 지원하는 앱들 중 구글 플레이스토어 다운로드 순위 및 리뷰 점수 상위권인 앱으로 Transdrone과 nzb360이라는 앱이 있습니다.
세팅 방식은 DS Get과 유사하긴 한데 몇 가지 다른 점도 있습니다. 일단 nzb360의 경우 torrent보다는 NZB쪽이 전문이다 보니 torrent 서비스를 사용한다는 것을 명시적으로 세팅해줘야 했습니다.

 

 

 

원격 control을 위해서 NAS 로그인 정보를 입력하는 설정 화면에서는 torrent client 프로그램 이름을 명시해줘야 되고, port 넘버도 넣어줘야 하는 점이 DS Get과는 다른 점입니다. Transdrone의 경우 Synology라는 옵션이 있던데 다운로드 스테이션도 지원해주나 시도해봤지만 안 되더군요. DS Get은 NAS 하나에만 접속할 수 있게 돼있는데, 이들 앱은 여러 대의 NAS도 설정할 수 있는 점도 다르고요.

 

그 외 특이한 옵션으로 집 Wi-Fi에 연결됐을 때는 자동으로 192.168.0.XX 같은 사설 IP로 접속해주는 것도 있습니다.

이들 앱의 메인 화면을 보시면 일단 각 다운로드의 예상 완료 시간, 피어 수 상황 같은 적절하게 중요한 정보들도 한 화면에 보여준다는 점이 너무나도 단출한 DS Get 화면과는 다릅니다. 아래 스크린샷 왼쪽이 Transdrone, 오른쪽이 nzb360입니다.
파일 이름 면에서는 Transdrone은 두 줄이 되든 세 줄이 되든 파일 이름을 생략하지 않고 보여주는 점이 좋고, nzb360은 파일 이름이 생략되기는 하지만 보여주는 글자 수가 많은 데다가 생략되는 부분이 파일 이름 중간이 아닌 끝부분이기 때문에 DS Get보다는 파일 구분하기가 훨씬 더 편합니다.

 

그런데 Transdrone은 왠지 UI가 좀 예쁘지 않고 어딘가 맹하고 허전한 감이 없지 않아 있고요.

nzb360은 UI 컬러가 제 맘에 쏙 들기는 하는데 마그넷 링크 다운로드 기능을 쓰려면 Pro 버전으로 업그레이드를 해야 합니다. 유료 Pro 버전이 한 2000원 하면 쾌척하려고 했는데 무려 9900원이나 합니다. 앱 이름에서도 알 수 있듯이 torrent보다는 NZB에 특화된 앱인데, 제가 쓰지도 않을 NZB 기능 때문에 만원이나 쓰기는 아깝더라고요.
그래서 저는 둘 다 깔아놓고 마그넷 링크 다운로드는 Transdrone에 묶어놓고, 모니터링은 nzb360 무료 버전으로 하고 있습니다.

하지만 아이폰 용으로는 Transmission Remote도, Transdrone도, nzb360도 없습니다. 앱스토어에서 NZB로 검색해보시면 앱이 많이 나오는데요. 그 중에서 bit torrent도 지원하는 앱을 아마도 찾으실 수 있을 겁니다. iOS 앱은 안 써봐서 어느 것이 좋은지 모르겠네요.

 

3. qBittorrent / Transdrone, nzb360

우선 말씀 드리자면 이 방법은 모델명 뒤에 +가 붙은 인텔 CPU 내장 Synology NAS에서만 적용할 수 있는 방법입니다. Plus 모델이 아니신 분은 굳이 읽으실 필요 없을 듯하네요.

그냥 Transmission에 만족하고 쓰고있던 중 2020년 12월 셋째주에 Synology DSM 7.0 베타 테스트 메일이 왔고, 저는 DSM 7.0에 추가된다는 Synology Photos라는 사진 관리 패키지에 혹해서 그만 베타 버전을 깔고 말았습니다. 그런데... Transmission을 포함해서 SynoCommunity에서 깔았던 많은 패키지들이 이딴 에러 메시지를 내면서 실행불가 상태가 돼버렸습니다.

 

그냥 몇 주 기다리면 SynoCommunity의 Transmission 패키지도 DSM 7.0을 지원하도록 업데이트되긴 하겠지요(생각해 보니 그렇게 되면 제가 위에 정리한 Transmission 설치법도 달라질 것 같습니다-_-). 그동안은 Download Station을 쓰면 되는 거고요. 그래도 뭔가 또다른 대안이 있을 것 같아서 검색을 해보니 Docker에다가 Transmission을 깔면 된다더라고요. 흠... 하지만 이왕 Docker를 써야 한다면 Transmission보다는 Docker에서만 쓸 수 있다는 qBittorrent에 한 번 도전해보자는 생각이 들었고요.

Docker라는 이름은 계속 들어왔지만 설명을 들어봐도 도통 어디에 어떻게 쓰는 놈인지 모르겠더라고요. 그래서 안 쓰고 있었는데, 이번 기회에 제대로 도전할 동기가 생긴 거죠.
DSM 도움말에 따르면, Docker란 격리된 소프트웨어 컨테이너 내에서 응용 프로그램을 빌드 및 실행하도록 하는 경량형 가상화 환경입니다. 흠... 전문용어를 더 많은 전문용어로 설명해봤자 아무런 이해가 안 되네요.

그래서 좀더 인터넷을 뒤져보고 공부해봤습니다. 그런데 파고들면 들수록 아무리 봐도 Docker란 것은 NAS에서 쓰라고 만든 게 아니라 대규모 데이터베이스 서버들을 계속 유지보수해가면서 쓰려는 용도로 만들어진 것 같더군요.


그런데 이걸 왜 NAS에서 써야 하느냐? 어디까지나 제 생각입니다만 원래 용도와는 관계 없이 단순히 NAS에서 Linux 프로그램을 돌리기 위해 Docker가 필요한 것이라는 결론을 내렸습니다.
Synology의 DSM OS는 Linux가 베이스이긴 하지만 NAS 관리에 특화되어 오랜 시간동안 별개로 진화해왔기 때문에 다른 메인스트림 Linux 배포판들과는 많이 달라졌습니다. 그래서 Linux 프로그램을 손쉽게 바로 빌드해서 사용할 수 없고, SynoCommunity 같은 곳에서 DSM 용으로 포팅한 패키지를 만들어주길 손가락 빨며 기다리고 있어야 했던 거죠.
그러다가 Synology에서 x86 CPU 탑재 모델에 한해 Docker를 쓸 수 있게 해준 것을 계기로, 이제 수많은 Linux 프로그램의 최신 버전을 NAS에서도 Docker 위에 올려서 돌릴 수 있게 된 겁니다.

그러니까 우리 같은 일반 NAS 사용자는 굳이 Docker의 심오한 원리와 전문적인 운용법까지 알 필요가 없습니다. 그냥 Docker에 프로그램을 깔아서 동작시킬 수 있는 수준 정도의 지식만 있으면 되는 거죠.

적어도 용어는 이해하고 넘어가야 할 것 같은데요. Docker에 보면 레지스트리니 이미지니 컨테이너니 볼륨이니 하는 생소한 용어들이 무지 많이 등장하는데요, 나름 저의 언어로 한 번 정리를 해봤습니다.
그 중 가장 중요한 건 '이미지' 같은데요. 이미지란 qBittorrent 실행 파일뿐만 아니라 그걸 실행하는 데 필요한 다른 프로그램들과 각종 환경들을 스냅샷 같은 걸 찍어서 저장해놓은 거라고 보면 될 듯합니다.
레지스트리란 다른 사람들이 이미 만들어놓은 수많은 이미지들을 모아놓은 저장소 같은 것이고요.
컨테이너란 Docker 상에 이미지를 실체화시켜 놓은 것이고, 얘가 바로 NAS 상에서 돌아가는 Linux 가상 머신입니다. 이미지가 붕어빵틀이라면 컨테이너는 붕어빵인 거죠. qBittorrent 이미지 붕어빵틀 하나로 qBittorrent 컨테이너 붕어빵을 여러 개 찍어내서 한 NAS 안에서 돌리는 것도 가능합니다. 그럴 필요성은 별로 없지만요.
볼륨은 NAS의 디스크 볼륨과 같은 단어를 사용해서 좀 헷갈리는 부분인데요. Docker는 일종의 가상 머신이기 때문에 실제 머신과의 접점이 필요합니다. Torrent를 열심히 다운로드 받았는데 그 파일이 가상머신 상에만 존재하다가 그 가상머신을 끌 때 사라져버린다면 아무 의미 없잖아요. 그래서 실제 머신의 특정 폴더를 가상머신에 마운트해서 거기다가 파일을 저장해야 하는데, 이런 폴더를 Docker에서는 볼륨이라고 부릅니다.
참 쉽죠? ㅎㅎ

 

 

잡설이 길었는데요. 이제부터 Docker에 qBittorrent 설치하는 방법을 차근차근 설명드리겠습니다.
가장 먼저 Docker부터 설치해야겠죠. 패키지 센터에 보면 네모난 컨테이너 여러 개를 지고 가는 고래 모양 아이콘의 Docker가 있는데 이걸 설치하세요.
Docker를 열어보면 일반적인 패키지와는 달리 이런 안내문인지 경고문이 뜹니다. 뭔가 범접할 수 없고 어려운 분위기를 내뿜죠.

 

 

 

Docker를 열면 지금은 아무 것도 없기 때문에 일단 qBittorrent의 이미지를 받아야 합니다. 다른 사람들이 만들어놓은 이미지는 어디에서 공유한다고 했죠? 바로 레지스트리입니다.

Docker 왼쪽 메뉴에서 레지스트리를 선택하고 검색 창에 qBittorrent를 입력해서 검색합니다. 그러면 qBittorrent 이미지만 해도 222 개나 있다는 것을 알 수 있습니다. 저는 그 중에서 가장 인기가 많은 linuxserver의 qBittorrent 이미지를 받았습니다. 다운로드 받을 때 태그를 물어보는데, 그냥 latest로 놔두시면 됩니다.

 

 

 

붕어빵틀 이미지 다운로드가 끝나고 나면 이번에는 붕어빵 컨테이너를 구울 차례입니다. Docker 왼쪽 메뉴에서 이미지를 선택하고, 오른쪽에서 linuxserver/qbittorrent를 선택한 후 '실행' 버튼을 누릅니다.
그러면 아래 그림과 같은 컨테이너 생성 마법사 창이 뜹니다. 컨테이너 이름은 그냥 qBittorrent로 하시면 됩니다. 붕어빵 여러 개 찍어내실 거 아니라면요.

 

 

 

Torrent는 특성 상 높은 권한이 필요한 어플리케이션은 아니고요. 리소스 제한도 일단은 하지 않고 진행하도록 해보시죠. 쓰시다가 나중에 torrent가 CPU와 RAM을 너무 많이 사용해서 다른 일을 못할 정도가 된다면 리소스 제한을 활성화하는 게 좋겠습니다. 여기서 '다음' 버튼을 누르고 싶으시겠지만 '고급 설정'에 설정해야 할 내용들이 한가득 있으니 먼저 고급 설정 버튼을 누르셔야 합니다.

 

 

 

'DSM 메인 메뉴 바로 가기 생성'을 해두면 DSM에서 qBittorrent Web UI 창을 바로 띄울 수 있으니 설정해주시면 좋습니다. http://(NAS 주소):8080이라고 해두시면 바로가기 클릭 시 qBittorrent 로그인 창이 뜨고요. Transmission Web UI가 9091 포트를 쓰듯이 qBittorrent Web UI는 8080 포트를 쓰기 때문에 맨 뒤에 붙여줍니다.

 

 

 

볼륨은 Docker container라는 가상 머신이 실제 NAS와 데이터를 주고 받기 위해 설정하는 건데요. qBittorrent 설정을 저장하기 위한 /config 폴더와 다운로드 결과를 저장하기 위한 /downloads의 두 폴더가 필요합니다.

폴더 추가 버튼을 누르셔서 위 그림의 예와 비슷한 폴더를 만들고 설정하시면 됩니다. 왼쪽의 실제 폴더 이름과 경로는 꼭 저처럼 하실 필요 없고 원하시는 아무 폴더나 지정하셔도 됩니다.

 

그 다음은 포트 설정인데요. NAS를 인터넷에 연결시켜주기 위해 유무선 공유기가 포트 포워딩을 해주듯, Docker 컨테이너가 네트워크에 연결되도록 하기 위해 NAS가 포트 포워딩을 해주는 거라고 생각하시면 됩니다.

 

 

 

로컬 포트(NAS의 포트 넘버)는 절대로 기본 세팅 대로 '자동'으로 놔두시면 안 되고요. 가급적 같은 포트로 연결해주시는 게 좋습니다. 컨테이너 포트 6881은 처음에는 로컬 포트 6881로 연결했었는데 이 포트는 다운로드 스테이션과 충돌 난다고 해서 저는 6890으로 바꿨습니다.

 

 

 

그리고 마지막으로 중요한 설정이 바로 환경 변수 설정입니다. 그 중 가장 중요한 것이 이 컨테이너를 돌리는 사용자가 누구인지 설정하는 겁니다. 변수 '추가' 버튼을 누른 후에 /config와 /downloads에 연결된 폴더들을 읽고쓸 권한이 있는 사용자의 PUID와 PGID를 기입해줘야 합니다. 이걸 세팅 안 하시면 qBittorrent 설정도 저장이 안 되고, 다운로드 파일도 세이브가 안 됩니다.
그런데 이게 NAS 계정의 username이 아니고 숫자를 넣어줘야 하더라고요. 만약 admin ID를 막지 않고 살려두셨다면 admin에 해당하는 PUID와 PGID인 1024, 101를 각각 넣어주시면 됩니다. 만약 해킹 방지를 위해 NAS에서 admin 계정을 비활성화해두셨다면 NAS에 SSH로 접속해서 administrators 그룹 권한을 가진 유저(이 글을 읽고 계신 분이겠죠)의 UID와 GID 숫자를 알아내셔야 합니다.

 

 

 

산 너머 산이라고 SSH는 또 뭐냐고요? 이건 ☞제 다른 글☜을 참고하시면 되겠습니다. 아무튼 NAS에 SSH로 접속하시고 나면 해야 할 일은 간단합니다. SSH 커맨드 프롬프트에


id (내 username)

 

라고 치시면 됩니다. 여기서 첫번째 나온 uid 숫자(제 경우 1026)를 PUID에 넣어주시고, PGID에는 101(administrators)을 넣어주시면 됩니다. 그리고 그 아래에 보면 LANGUAGE, LANG 설정이 있는데, 이걸 ko_KR.UTF-8로 바꿔주시면 Web UI 언어가 한글로 바뀝니다.
그리고 이제 적용 버튼 누르시고, 다음 버튼을 누르시면 다음과 같은 최종 요약 확인 창이 뜹니다.

 

 

 

세팅 입력을 제대로 했는지 다시 한 번 훑어보시고 완료 버튼을 누르시면 qBittorrent 컨테이너가 만들어지고 바로 실행됩니다.
Docker에서 '컨테이너' 메뉴에 들어가 보시면 이렇게 qBittorrent가 돌아가는 걸 보실 수 있습니다. 마치 패키지 센터에서 패키지 실행을 켜고 끄듯이 맨 오른쪽 버튼을 누르시면 컨테이너 실행을 켜고 끌 수 있습니다. 한동안 torrent 쓸 일 없을 때는 qBittorrent도 끄고 Docker 자체를 꺼둬도 됩니다.

 

 

 

이제 브라우저에서 새 창을 여시고 주소창에 (NAS의 내부 IP 주소):8080을 치시면 이렇게 qBittorrent의 한글 Web UI가 뜹니다.

 

 

 

초기 ID는 admin, password는 adminadmin입니다. 이런 알려진 값이기 때문에 외부로부터의 침입을 막기 위해 내부 IP주소로 접속하라고 말씀 드렸던 것이고, ID/패스워드를 바꾸시기 전까지는 공유기에서 8080 포트를 외부로 포워딩하지 않는 편이 안전합니다.
ID 패스워드 변경은 Web UI의 옵션 설정 메뉴에서 가능합니다. 메인 메뉴의 도구 > 옵션으로 들어가셔도 되고 그보다 오른쪽에 있는 톱니바퀴 모양 아이콘을 클릭하셔도 됩니다. 여러 개의 탭이 있는데 그 중 '웹 UI' 탭에서 암호 변경이 가능합니다. 이 탭의 아래쪽에 보시면 '교차-사이트 요청 위조 (CSRF) 보호 사용'이라는 옵션이 있는데 이걸 꺼야 DSM에서 qBittorrent Web UI를 띄울 수 있더라고요.

 

 

 

이 정도만 세팅해주면 이제부터 qBittorrent를 사용하실 수 있습니다.

그런데 최적화된 사용을 위해 좀더 조정을 해주는 것도 좋은데요. 다운로드 스테이션이나 Transmission과 비교해봤을 때 qBittorrent는 너무 후하게 퍼주는 경향이 있습니다. 다운로드 스테이션처럼 짜게 업로드하는 것이 보편적인 건지 qBittorrent처럼 후하게 올려주는 것이 정상적인 건지 잘 모르겠습니다만, qBittorrent는 정말 이렇게 열심히 업로드하면 다운로드가 방해받지 않을까 싶을 정도로 심하게, 다운로드보다 더 빨리 10 MB/s 이상의 속도로 업로드를 하더라고요.

아무튼 저희가 torrent 쓰는 목적이 업로드보다는 다운로드잖아요? 그런 의미에서 업로드 제한을 걸어두는 것이 좋겠습니다. 먼저 옵션 창에서 '속도' 탭을 엽니다.

 

 

 

전역 속도 제한의 '올리기'를 대략 1000 KB/s 전후로 제한하면 됩니다. 좀더 인색하게 100 KB/s 이하로 줘도 괜찮을 것 같기도 하고요, 기가빗 인터넷 사용 중이시면 좀더 후하게 5000 정도로 줘도 괜찮을 것 같긴 합니다. 그리고 (특히 올리기 속도 제한을 100 KB/s 이하로 하셨을 경우에는) 맨 아래 '속도 제한 설정' 칸의 선택을 모두 해제해놓는 것이 다운로드 속도에 좋다고 하더군요.

 

 

 

그리고 마지막으로 '비트 토런트' 탭인데요. 여기서 토런트 대기열과 배포 제한을 설정합니다.

가용성이 매우 낮은 오래된 토렌트를 한꺼번에 몇십 개 걸어놓아야 할 경우가 가끔 있는데요, 이럴 때 토런트 대기열이 문제가 될 수 있습니다. 다운로드 스테이션 같은 경우 동시에 받는 파일 수가 10개로 제한되어 있는데요 (옵션에서 바꿀 수는 있습니다), 10번째를 넘어가는 파일들은 다운로드를 아예 시작조차 하지 않는 대기상태에 남아 있습니다. 재수 없이 처음 다운로드 받기 시작한 파일 10개의 torrent 상태가 거의 죽어있는 경우라면 아무리 그 이후 파일들이 쌩쌩해도 그냥 그 상태로 꼼짝 없이 멈춰 버립니다. 가망 없는 애들을 일일이 수동으로 일시중지시키면 그제서야 다음 파일이 시작되긴 하는데요, 아무튼 불편합니다.

qBittorrent에는 그런 상태가 원천적으로 발생하지 않도록 하는 '이 제한에 느린 토런트는 계산하지 않음'이라는 옵션이 있습니다. 속도가 안 나오는 느린 torrent는 10개가 됐든 100개가 됐든 열외로 놓고 대기열 갯수로 안 쳐주기 때문에 그 다음 차례 쌩쌩한 파일에게 기회가 올 수 있는 겁니다. 저는 그래서 이 옵션을 켰고요. '최대 받기'와 '최대 활성 토런트' 갯수도 기본 설정 대비 키워줬습니다.

 

그리고 다운로드 스테이션 써보신 분은 아시겠지만 되게 얌체 같이 내 다운로드 끝나고 나면 업로드를 바로 딱 끊어버립니다. 내 볼 일 끝나면 끊어주는 게 합리적이긴 한 것 같아서 '배포 제한'을 걸어두긴 하려고 합니다만... 내가 받았다고 바로 입 싹 닦는 건 좀 심한 것 같아서 1시간 후에 끊는 걸로 해줬습니다.


이제 진짜 최종단계로 유무선 공유기에서 6890 (TCP + UDP)과 8080 (TCP) port를 NAS로 포워딩해주셔야 합니다. 그래야 qBittorrent 컨테이너의 포트가 인터넷으로 연결될 테니까요. 이제부터는 (DDNS 주소):8080로도 qBittorrent Web UI에 접속이 될 겁니다. 또, DSM의 시작 버튼을 눌러보시면 Docker와 동일한 고래 모양으로 qBittorrent 아이콘이 만들어진 것도 보이실 겁니다. 이걸 누르셔도 새 브라우저 창으로 qBittorrent Web UI가 뜹니다.

 

 

 

qBittorrent를 써보니, 다 좋은데 한 가지 Download Station과는 달리 다운로드 받을 폴더를 지정해줄 수 없다는 점이 아쉽네요. 다운로드 완료 후 파일을 직접 옮겨줘야 하는 귀찮음이 존재합니다. 사실 이건 qBittorrent의 문제가 아니고 Docker 상에 설치하는 모든 torrent client들의 공통된 단점일 듯합니다.

한 가지 팁을 드리자면 다운로드 폴더 downloads/를 파일이 최종적으로 옮겨져야 할 공유 폴더와 동일한 volume 안에 두시면 좋습니다. 그러면 파일을 옮길 때 실제 데이터를 옮기는 것이 아니라 파일의 위치 정보만 바꿔써주기 때문에 파일 이동에 걸리는 시간을 대폭 절약할 수 있거든요.

 

스마트폰 원격 UI 앱은 구글 플레이스토어에 qBittorrent Controller라는 전용 앱이 있습니다.

메인화면에 뭔가 깨알같이 많은 정보들이 보이고, 파일명을 생략하지 않고 다 보여주는 것은 좋습니다. 그런데 너무 많은 정보를 보여주려다 보니 오히려 원하는 정보가 눈에 잘 안 들어오는 단점도 있습니다. 그리고 다운로드 진행률을 시각적으로 표시해주는 프로그레스 바가 없어서 직관적으로 알아보기 불편하기도 하고요. 게다가 무료버전은 화면 아래쪽에 광고도 나오네요.

 

다운로드를 시작할 때 저장 폴더를 물어보는데요. 어차피 Docker에서는 폴더를 자유자재로 지정할 수 없어서 이 화면을 좀 안 보고 싶은데, 아무리 '이 대화상자 다시 표시하지 않기'를 선택해도 가볍게 씹고 이 화면을 끈질기게 보여줍니다. 앱이 약간 기본이 엉성하다는 느낌을 줍니다.

 

그냥 전용 앱 말고 위의 2번 항목에서 소개 드린 Transdrone이나 nzb360을 쓰시면 편합니다. 얘들도 qBittorrent를 지원하거든요.

 

 

 

그런데 Transdrone은 qBittorrent 접속 시에 간간히 이딴 메시지가 나오는 현상이 있습니다. 아무래도 이름처럼 Transmission에 최적화된 앱이라 그런지 qBittorrent와는 잘 안 맞는 부분이 있는 것 같네요. 이 현상은 qBittorrent 옵션의 웹 UI 탭에서 '클릭 가로채기 방지 사용', '호스트 헤더 유효성 검사 사용' 체크박스를 해제하면 빈도가 크게 줄어듭니다(아주 사라지지는 않는 것 같네요-_-).


애플 앱스토어의 경우 qBittorrent Controller, Transdrone, nzb360은 없고요. NZB로 검색해보시면 나오는 앱들 중에 qBittorrent의 원격 UI를 지원하는 앱도 있을 것 같습니다. 제가 해보지는 않았습니다.

 


 

이상, Synology NAS에서 BitTorrent client를 사용하는 방법 세 가지를 정리해봤습니다.


제 생각에는, plus 모델 NAS를 사용 중이시고 Linux에 대한 이해도가 어느 정도 되신다면 qBittorrent든 Transmission이든 Docker 상에 설치하는 세번째 방법이 가장 효율적이면서 안정적일 것 같습니다. DSM이 베타가 되든 뭐가 되든 Docker 이미지는 그 환경 그대로 꿋꿋이 안정적으로 유지될 테니까요. 다운로드 현황을 일목요연하게 잘 표시해주는 모바일 앱 지원은 덤이고요.
세팅 같은 거 신경 쓸 필요 없이 torrent client가 알아서 잘 동작하기만 하면 된다고 생각하시면 첫번째 다운로드 스테이션 추천 드립니다. Torrent 검색이 필요할 때 쏠쏠하게 도움이 되기도 합니다.
다운로드 스테이션에는 뭔가 부족함을 느끼지만 Docker를 지원하지 않는 NAS를 소유하신 분들께는 두번째 옵션의 Transmission이나 Deluge가 좋겠지요.

 

그런데 솔직히 세 방법 모두 기능과 성능은 대동소이합니다. 이미 잘 동작하는 torrent client가 셋업되어 있는 상황에서 굳이 추가로 에너지를 들여서 다른 것으로 바꿔야 할 만큼의 이득은 없는 것 같습니다. 그래서 다들 설치하기 편한 Download Station을 쓰시는 거겠죠. 호기심 많은 분들이나 Docker 같은 걸 건드려보는 거고요.

2020. 9. 20. 21:02

Synology NAS에 EBS 라디오 어학방송 녹음하기 2022년판

저는 DSM 6.0에서 Debian chroot를 사용해서 ☞이런 방법☜으로 EBS 라디오 어학방속 녹음을 잘 하고 있었는데요. 최신 DSM 7.0에서는 Debian chroot도 사용할 수 없고 그 외 여러가지로 세세하게 달라진 부분들이 많더라고요.

 

요즘은 무제한 통신요금도 보편화돼서 굳이 녹음하지 않고 EBS 반디 앱으로 실시간으로 들어도 되고, 애초에 EBS 방송보다 더 좋은 YouTube 채널이나 스마트폰 앱 등의 영어 공부 컨텐츠도 많이 생겨서 굳이 녹음 안 해도 될 것 같기는 한데요. 사실 저도 EBS 녹음한 걸 마지막으로 들은 게 언제였나 싶기도 합니다. 하지만 이렇게 포기하는 건 왠지 패배자의 변명처럼 들려서 결국 머리를 굴리고 굴려 DSM 7.0에서도 EBS FM 라디오 어학방송을 녹음하는 방법을 찾아냈습니다. 게다가 기존 방법 대비 몇 단계 더 간단해졌습니다.

 

애초에 Debian chroot를 사용했던 이유는 스트림을 파일로 저장해줄 수 있는 Libav 라이브러리를 DSM 상에 설치할 수 없어서 가상의 Debian 상에 깔고 돌렸던 거였거든요. 그런데 보니까 지금은 Libav과 동일한 기능을 가지는 FFmpeg을 DSM에 바로 설치할 수 있더라고요. 그래서 굳이 Debian chroot를 설치하고, 거기 들어가서 녹음하고, 그걸 또 꺼내오고 할 필요 없이 바로 DSM 상에서 녹음할 수 있게 됐습니다. 아무튼 이제부터 2022년 현재 Synology NAS에서 EBS 라디오 어학방송을 녹음할 수 있는 방법을 차근차근 단계별로 설명 드리겠습니다. 
 

1단계. SSH 환경 셋업

사실 Debian chroot를 사용할 게 아니면 SSH도 필요 없을지 모릅니다. 그렇지만 파일 권한 설정이라든지, 녹음이 잘 되는지 테스트해보는 건 SSH 상에서 하는 것이 훨씬 편하니까 SSH 환경을 셋업해두시는 편이 좋습니다. NAS의 파워유저시라면 SSH 환경 정도는 다 정비돼 있으실 테니 다음 단계로 바로 넘어가셔도 되고요.

 

 

일단 NAS DSM의 제어판 맨 아래의 '터미널 및 SNMP' 메뉴, '터미널' 탭에서 SSH 서비스를 활성화하셔야 합니다. 포트는 일반적으로 22번을 쓰게 되어 있는데요. SSH는 해킹과 공격의 주된 타겟이라서, 저는 집에서만 접속하고 외부에서는 접속이 안 되도록 공유기에서 포트 포워딩을 하지 않았습니다. 피치 못하게 외부에서 접속해야만 한다면 외부에서는 22번이 아닌 10022라든가 22222번 같은 다른 포트로 보이도록 포워딩하는 것이 좋습니다.
SSH는 최초 녹음 세팅 단계에서만 사용합니다. 굳이 SSH를 계속 사용해야 할 다른 용도가 없다면(지금까지 안 쓰셨다면 앞으로도 안 쓰실 듯) 녹음 설정 후 다시 꺼놓으시는 게 보안 상 좋습니다.

이제 SSH 접속을 위해 PC에 SSH 클라이언트 프로그램을 설치해야 되는데, PuTTY가 가장 널리 쓰입니다. 크롬이나 파이어폭스 웹 브라우저 이용자이시면 FireSSH 플러그인을 깔아서 쓰셔도 됩니다.

자 이제 SSH로 NAS에 한 번 접속해 보시죠.
PC에서 SSH 클라이언트를 띄워서 NAS 주소 넣으시고, SSH 포트 넘버 넣으시고, 사용자 ID와 패스워드를 넣으면 되는데요. SSH 설정화면의 설명에도 나오지만 SSH 접속 ID는 Administrators 그룹에 속한 사용자의 ID만 가능합니다. 맨 처음 접속하시면 무슨 키를 신뢰하겠냐느니, 저장하겠냐느니 물어볼 텐데, 그냥 그렇다고 대답하심 됩니다.

 

DSM 7.0으로 바뀌면서 SSH 접속을 하면 이렇게 root 권한으로 뭘 하지 말라는 경고가 뜨게 되었습니다. 이 아래 단계에서 어차피 root 권한은 필요 없으니 굳이 ☞예전 방법☜처럼 sudo -i를 입력하시지 않아도 됩니다.

 

 

2단계. FFmpeg package 설치

FFmpeg은 Libav와 같은 뿌리에서 나온 미디어 인코딩/디코딩 라이브러리인데요. 2016년에는 Libav가 좀더 잘 될 것처럼 보였는데(저만의 착각일지도요), 지금은 FFmpeg이 완연히 잘 나가는 것 같습니다. DSM에도 이미 FFmpeg이 깔려져 있기는 한데 정말 옛날 버전이라서 RTSP 스트림 저장을 지원하지 않으니, 최신 버전의 package를 설치하시는 게 좋습니다.
그런데 패키지 센터를 아무리 뒤져봐도 FFmpeg이나 Libav 같은 게 없죠? 패키지 소스를 추가해야 됩니다. 패키지 센터의 설정 메뉴 > 패키지 소스 탭의 추가 버튼을 누르시고, 이름은 대충 넣으시고 위치에 http://packages.synocommunity.com을 입력하고 확인 버튼을 누르시면 패키지 소스에 추가됩니다.

 

 

패키지 센터의 설정 옵션 '일반' 탭 맨 아래의 '신뢰 수준'이 'Synology Inc. 및 신뢰할 수 있는 게시자'로 돼있는지도 확인하시고요.

이제 패키지 센터에 '커뮤니티'라는 tab이 추가되고, 그 안에 ffmpeg이 보입니다. 저는 이미 설치했기 때문에 '설치됨'이라고 나오는데, 아직 설치 안 하신 분은 '설치'라고 쓰여있을 테니 그 버튼을 클릭해주세요. 향후 단계를 고려할 때, 설치 볼륨은 볼륨 1으로 하시는 것이 좋습니다.

 

 

 

 

3단계. 녹음 shell script 파일 업로드

 

이전에는 rtsp://ebsonairandaod.ebs.co.kr:554/fmradiobandiaod/bandiappaac 라는 URL에서 RTSP protocol로 streaming을 받으면 128 kbps로 음질도 좋고 군더더기도 없이 깔끔하게 EBS FM 라디오를 녹음할 수 있었는데, 2020년 11월 12일 부로 EBS 측에서 스트림을 폐쇄했고요. 그래서 상황이 조금 지저분해졌습니다.

 

이제 EBS FM 라디오 방송을 스트리밍할 수 있는 URL은 rtmp://ebsandroid.ebs.co.kr:1935/fmradiofamilypc/familypc1m 정도 뿐인데요. 대중성이 좀 떨어지는 Adobe Flash Player를 위한 RTMP protocol을 쓰는 것까지는 그렇다 쳐도, audio bit rate는 64 kbps밖에 안 되고, 의미 없는(그냥 EBS FM 로고만 떠있는 정지영상입니다) 동영상이 512 kbps나 붙어있습니다. 그래서 일단은 전체 576 kbps 스트림을 받아서 그 중 필요 없는 영상 데이터를 솎아버리는 작업이 필요하죠(직접 하실 필요는 없고 FFmpeg이 해줍니다).

 

저는 저런 것들이 맘에 안 들어서 EBS FM 라디오 대신 rtsp://new_iradio.ebs.co.kr:554/iradio/iradiolive_m4a URL의 '반디 외국어 전문' 채널의 스트림을 녹음하기로 했습니다. 이쪽은 128 kbps의 RTSP 스트리밍이라는 점은 이전과 같아서 좋지만, 문제는 방송 시간이 FM 라디오와 다르다는 점입니다. 예를 들면 '입이 트이는 영어'라는 프로그램은 매일 아침 6:40에 라디오에서 방송하는데, 반디 외국어 전문 채널에서는 9:40, 13:40, 19:40, 그리고 다음날 0:40, 8:40까지 총 5번 재방송을 합니다. 정확한 반디 외국어 채널 편성표는 ☞이곳☜을 참고하시기 바랍니다.

ebs_record.sh
0.00MB

음질에 별로 연연하지 않으시고, 그보다는 EBS FM 방송 시간에 맞춰 실시간으로 녹음하시고 싶으신 분은 EBS FM 라디오를 저음질로 녹음하는 위 첨부 파일을 받으시고요. 음질을 위해서라면 복잡한 방송 시간표를 들여다보고 NAS 타이밍을 세팅하는 것 정도는 얼마든지 가능하신 분은 좀더 고음질로 반디 외국어 채널을 녹음하는 아래 첨부파일을 받으세요.

bandi_record.sh
0.00MB

둘 중 한 파일을 골라서 다운로드 받으셨다면 NAS의 아무 폴더에나 업로드하세요. 저는 /volume1/music 밑에 갖다두었습니다. Audio Station 등 음악관련 패키지를 깔면 music 공유 폴더가 자동으로 생기는 건 아시죠? 제 경우 music 공유 폴더를 디스크 볼륨 1에 만들었기 때문에 shell 상에서 경로가 /volume1/music입니다. 볼륨 2에 만드신 분은 /volume2/music이겠지요.

이 파일이 녹음을 하고, 녹음된 file을 NAS의 media indexing library에 등록하는 역할을 하는 shell script입니다. ☞기존 방법☜에도 똑같은 이름의 파일이 있었는데, 예전 것은 Debian chroot를 이용하는 방법이니 혼동하지 마시기 바랍니다. 굳이 헷갈리게 동일한 이름을 쓴 이유는 제가 이 아래 5단계에 나올 작업 스케줄러를 수정하기가 귀찮아서였습니다. 한 번 ebs_record.sh 파일 내용을 좀더 설명 드리겠습니다.

#!/bin/sh

PROGRAM_NAME=$1
RECORD_SECS=$2 
DEST_DIR=$3/$1`date +_%y%m`

FFMPEG=/volume1/@appstore/ffmpeg/bin/ffmpeg
RADIO_ADDR="rtmp://ebsandroid.ebs.co.kr:1935/fmradiofamilypc/familypc1m"
TITLE=$PROGRAM_NAME`date "+ %Y.%_m.%_d."`
DEST_FILE=$PROGRAM_NAME`date +_%y%m%d`.m4a

if [ ! -d "$DEST_DIR" ] ; then
  mkdir -p "$DEST_DIR"
  synoindex -A "$3"
fi

$FFMPEG -i $RADIO_ADDR -t $RECORD_SECS -codec:a copy -vn -metadata title="$TITLE" -metadata date=`date +%F` "$DEST_DIR/$DEST_FILE"

synoindex -a "$DEST_DIR/$DEST_FILE"


스크립트 파일의 위쪽 대부분은 단지 아래쪽에서 사용할 변수들과 파일이름 등을 지정하는 부분입니다. 주의를 하셔야 하는 부분이 FFmpeg의 path인데요. 제가 upload한 파일들은 기본적으로 DSM 7.0에서 FFmpeg을 volume 1에 설치한 상황을 가정해서 설정돼 있습니다. 만약 DSM의 버전을 7.0보다 예전 것을 사용 중이시라면 다운로드 받은 파일을 문서 편집기에서 여셔서 7번째 줄을 아래와 같이 수정하셔야 합니다.

  FFMPEG=/usr/local/ffmpeg/bin/ffmpeg

DSM 7.0을 사용하기는 하지만 만약 FFmpeg을 volume 1이 아닌 다른 볼륨에 설치하셨다면 아래와 같이 수정하셔야 할 것이고요.

  FFMPEG=/volume2/@appstore/ffmpeg/bin/ffmpeg

아무튼 실질적으로 가장 중요한 것은 맨 아래에서 두 번째 줄, FFmpeg으로 스트림을 지정된 시간동안 녹음하라는 단 한 줄입니다. EBS 스트림의 오디오 트랙은 AAC (Advanced Audio Coding)라는 방식으로 압축되어 있기 때문에 그에 걸맞는 .m4a라는 확장자로 저장합니다.

bandi_record.sh 파일 내용도 위와 거의 같습니다. RADIO_ADDR 값이 다르고, FFmpeg에 RTSP transport를 지정하는 옵션이 추가됐을 뿐입니다.

그 줄 위아래에 있는 몇 줄의 스크립트는 녹음하는 날짜의 월별로 폴더를 만들고, 녹음된 M4A 파일을 DS Audio 등에서 보이도록 미디어 라이브러리에 등록해줍니다(synoindex).
 
 

4단계. 녹음 테스트

지금까지의 모든 설정이 잘 됐는지 한 번 테스트해봅시다.
우선 SSH 터미널 상에서 ebs_record.sh 파일이 있는 경로로 이동합니다.

  cd /volume1/music

이 폴더는 사람마다 다르겠죠? 위 3단계에서 ebs_record.sh 또는 bandi_record.sh 파일을 넣어준 경로를 잘 써주시고요.
Linux 계열 OS에서 파일을 실행하기 위해서는 파일에 먼저 실행권한을 줘야 합니다. 이렇게요(반디 외국어 전문 채널을 녹음하시는 분들은 이 아래부터 나오는 모든 ebs_record.sh 대신에 bandi_record.sh를 써주시면 됩니다).

  chmod 777 ebs_record.sh

여기서 777이라는 숫자는 '모든 사람이 읽고 변경하고 실행할 수 있다'는 의미입니다.

ebs_record.sh를 실행할 때는 3개의 매개변수를 써줘야만 하는데요. 첫번째는 방송 프로그램 제목(파일 이름), 두번째는 녹음할 시간(초 단위), 마지막은 저장할 폴더 이름입니다.

  ./ebs_record.sh xxx 30 yyy

라고 한 번 실행해 보시죠.
그러면 녹음을 하고 있다는 뭔가 복잡한 메시지가 30초간 화면에 표시됩니다. 끝난 후 현재 폴더 밑에 yyy/xxx_(4자리 년월)이라는 폴더가 생겼고, 그 속에 xxx_(6자리 날짜).m4a라는 이름의 오디오 파일이 생성됐고, Audio Station이나 DS Audio의 재생목록 중 '최근 추가됨'에서 이들이 확인되고, 플레이했을 때 녹음된 방송이 잘 들리면 성공한 겁니다.

이러면 모든 준비가 완료됐고, 이제 DSM의 작업 스케줄러에서 시간 예약만 걸어주면 끝입니다. 테스트를 하고 나면 NAS의 미디어 라이브러리에 yyy/xxx_(년월)이라는 폴더와 'xxx (날짜)'라는 필요 없는 트랙이 추가돼 있을 텐데요. 모든 테스트가 끝난 후

  synoindex -D yyy
  rm -rf yyy

해주시면 말끔히 정리됩니다.

만약 뭔가가 잘 안 됐다면 ebs_record.sh 실행 시의 오류 메시지를 찬찬히 살펴보시고, 위의 1 ~ 4단계 중 혹시 뭔가 잘못되지는 않았는지 다시 한 번 꼼꼼히 돌아보시기 바랍니다.
 
 
5단계. 녹음 시간 예약

이제 마지막으로 방송 시간에 알아서 NAS가 깨서 녹음을 하도록 하는 자동화 작업입니다.

NAS에 웹으로 접속하셔서 제어판을 보시면 아래쪽에 작업 스케줄러라는 것이 있습니다. 작업 스케줄러에서 생성 > 예약된 작업 > 사용자 지정 스크립트 메뉴를 선택하면 새 녹음 작업을 생성할 수 있습니다. 작업 이름은 아무렇게나 쓰시면 됩니다. 그런데 한글은 안 되니 영문으로 해주시고요. 사용자 설정 시 주의하실 것은 절대로 사용자를 'root'로 설정하지 마시라는 겁니다. DSM 7.0에서는 사용자가 root 권한을 휘두르는 것을 극도로 싫어하기 때문에 녹음이 안 될 수도 있습니다.

 

 

두번째 탭에서 시간을 예약하게 돼있습니다.
제가 녹음하는 4개의 방송은 모두 월요일부터 토요일까지 방송하니까 요일은 그렇게 설정하면 되고, 시간은 하루에 한 번, 방송 시작하는 시간을 써줍니다.

 

 

이제 마지막 탭에서 ebs_record.sh 또는 bandi_record.sh 명령을 써주면 됩니다.
위의 녹음 테스트 때와는 달리 절대경로를 다 써줘야 한다는 것, 주의하세요. 예를 들어 제가 입이 트이는 영어를 녹음할 때는

  /volume1/music/ebs_record.sh "입이 트이는 영어" 1110 "/volume1/music/Language/EBS 입이 트이는 영어"

이렇게 써줬습니다.

 

 

제 경우의 폴더 경로는 저렇지만, 여러분은 여러분만의 경로를 써주셔야 되겠죠. 따옴표를 쳐준 이유는 폴더나 파일 이름 중간에 빈 칸이 있기 때문이고, 빈 칸이 없다면 따옴표를 안 쓰셔도 됩니다.
주의하실 점 중 하나는 ebs_record.sh 또는 bandi_record.sh가 'EBS 입이 트이는 영어'라는 폴더는 만들어주지만, 그 위 경로는 만들어주지 않는다는 점입니다. 즉, /volume1/music/Language라는 폴더는 원래부터 제 NAS에 있던 폴더입니다.

예전에는 EBS 라디오 프로그램이 거의 20분을 꽉 채워서 방송했다면, 요즘은 한 1분 30초는 광고를 하더라고요. 그래서 18분 30초 녹음하라고 1110이라고 써줬습니다.
이와 같은 방식으로 녹음할 방송 프로그램 하나마다 작업 하나씩 작업 스케줄러에 등록하시면 됩니다. 저는 예전에는 6개의 방송을 녹음했었는데, 비인기 프로들이 폐지되어 지금은 4개만 녹음하고 있습니다.

 

그리고 마지막으로 하드 디스크 절전 모드 대책이 필요합니다.
HDD 를 20분 이상(시간은 제어판 > 하드웨어 및 전원 > HDD 대기 기능에서 변경 가능) 안 쓰면 절전모드에 들어가는데, 제 NAS는 개인용이라 방송 시간에는 사용하는 사람이 없어 절전 모드일 가능성이 높습니다. 그대로 놔두면 NAS와 HDD가 깨어나는 데 10초가 넘게 걸리기 때문에 앞부분 녹음이 날아가게 됩니다.

 

저는 이 문제를 각각 9시 19분, 15시 19분에 '깨어나는 작업'을 스케줄러에 등록해서 해결했습니다(이건 반디 외국어 채널을 녹음하기 때문에 그렇고, EBS FM 라디오를 녹음할 때는 6시 19분, 7시 19분에 깨웠었습니다).
깨어나는 작업이라고 해서 별건 아니고 위와 같은 사용자 정의 스크립트 작업에 실행 명령으로 ls /volume1 이라고 써줬습니다. 디스크 볼륨 1의 폴더 리스트를 보여달라는 명령인데, 봐줄 사람은 없겠지만 적어도 HDD는 깨어나겠지요.



자 이제 다 됐습니다.
기다리시기만 하면 NAS가 방송을 자동으로 녹음해주고, Audio Station과 DS Audio의 최근 추가됨 리스트에 새로 녹음된 파일이 뜰 겁니다. 혹시 Audio Station에서 파일은 보이지만 폴더가 안 보인다면 File Station 등에서 폴더 이름을 다른 걸로 바꾸셨다가 다시 되돌리시면 될 거고요.

글 서두에도 말씀 드렸듯이 요즘은 다른 좋은 영어 공부 자료들이 많아서 EBS 라디오를 굳이 녹음까지 해서 들으실 분은 별로 안 계실 것 같지만, 그래도 혹시 필요하신 분 계실까 해서 정리해봤습니다.

2016. 12. 5. 10:31

Synology NAS에 EBS 라디오 어학방송 녹음하기 2016년판

이 방법은 현재 DSM 6.1 이상의 OS를 사용하는 Synology NAS에는 적용할 수 없습니다. 현재 가능한 방법이 궁금하시면 ☞Synology NAS에 EBS 라디오 어학방송 녹음하기 2022년판 글☜을 참고하시기 바랍니다.

강대국들 틈바구니에 끼어있는 한국 사람들에게 외국어란 평생 따라다니는 숙제 같은 것이죠.
독해, 문법은 한국의 주입식 교육으로도 그나마 좀 커버되는 편이지만...
말하기 듣기는 교습방법의 문제와 인도유럽어와는 전혀 다른 한국어의 특성이 맞물려서, 몇십년을 배워도 여전히 갈 길이 머네요.
말하기와 듣기 공부 삽질을 그나마 조금이라도 효율적으로 하려면 잘 만들어진 시청각 교재와 강의가 필수적인데,
몇몇 Podcast들도 다운 받아 들어보고, 몇몇 인강도 둘러본 결과, 역시 EBS 교육방송만큼 좋은 강의를 찾기 힘들더군요.

EBS 라디오 어학강좌 프로그램들은 대부분 20분 단위로 편성되어 있고, 월요일부터 토요일까지 매일 방송하는데요.
그 중에서도 특히 오전 7시에 방송되는 '입이 트이는 영어' 강추합니다.
전국의 지하철 안내방송 성우를 담당하시는 Jennifer Clyde 씨가 진행하시는데,
지하철 자주 타고 다니시는 분이라면 친숙할 낭랑한 목소리가 귀에 쏙쏙 들어오고 내용도 참 알차답니다.

그런데 본방송은 무료지만 다시듣기는 유료(한 프로그램 당 매달 5천원 또는 모든 어학강좌 매달 2만원)라서,
본방을 놓쳤거나 복습을 위해 다시 들으려면 꽤나 부담됩니다.
어학은 반복학습(과 피드백이지만 피드백은 애초에 불가능하니...)이 생명인데 말이죠.

본방을 듣는 것도 스마트폰에서 스트리밍으로 들으면 20분짜리 방송 하나 당 20MB 정도의 모바일 데이터를 쓰게 되는데요.
무제한요금제 쓰시는 분께는 아무것도 아니겠지만 그렇지 않은 분들께는 매일 듣기 부담스러울 수 있는 양입니다.
한국에서 파는 스마트폰은 FM 라디오 수신기가 들어있음에도 불구하고(WiFi, 블루투스, FM이 한 칩에 들어있습니다)
FM 라디오 기능을 막아놔서 라디오 방송을 라디오로 못 듣고 인터넷 스트리밍으로 들어야만 하는 뭔가 이상한 상황입니다.

그래서 해결책을 찾아 헤매던 중에 방송 스트리밍 데이터를 녹음할 수 있는 방법들을 찾았고,
그 중에서도 제가 쓰는 Synology NAS를 이용해서 자동 녹음이 가능하다고 하는 방법들까지 발견했습니다.

제가 참고한 방법들은 다음 4가지 링크였는데요.


어디까지나 참고만 했을 뿐, 링크 글들을 그대로 따라하려니 여러 군데서 막히더군요.
일단 2016년말 현재 제 NAS의 OS(DSM 6.0)와 Debian chroot 버전에서는 잘 안 동작하는 명령들이 몇 가지 있고요.
링크들을 살펴보면 최초에 포고플러그용 녹음방식을 만든 분이 있었고, 그걸 Synology NAS에 끌어다 맞췄다는 내력을 알 수 있습니다.
그래서 그런지 덕지덕지 끼워맞추느라 필요 이상으로 복잡해진 부분도 있고, Synology NAS에는 잘 안 맞는 부분도 있습니다.
예를 들면 제가 한동안 매달렸던 mount 문제가 알고보니 그냥 빼먹어도 되는 단계라는 걸 깨달은 순간의 허탈감이란-_-

이것저것 정말 힘들었음에도 불구하고, 좌절하지 않고 불굴의 의지와 끈기로다가 며칠 동안 연구하고 도전하고 시행착오를 겪은 끝에 드디어
'2016년말 현재 Synology NAS에 가장 최적화된 EBS 라디오 녹음 방법'을 알아냈습니다.
이제는 방송 시간만 되면 제 NAS에 자동으로 EBS 어학강좌가 녹음된 오디오 파일이 차곡차곡 쌓입니다.
굳이 정신 없는 출근 시간에 모바일 데이터 펑펑 써가며 들을 필요 없이, WiFi 되는 곳에서 다운로드 받아서 들으면 되고,
몇 달 지난 방송이라도 언제든지 반복해서 복습할 수 있습니다.

자동녹음이 되기 전에는 아침 6시 40분부터 8시까지 4개의 EBS 라디오 프로그램만 들었었는데,
지금은 새벽 5시 50분 강좌와 밤 11시 방송 2가지까지 추가해서 도합 7개의 프로그램을 녹음하고 있습니다.
그런데 과연 제가 하루에 2시간 넘게 영어공부를 할 수 있을지는...
뭐 어차피 자동이니까 일단 그냥 녹음만 해둘 뿐이죠^^;;

Synology NAS 사용자분들 중에 저처럼 EBS 라디오 자동 녹음을 원하시는 분들께 도움을 드리고자 제 방식을 공유합니다.
필요한 스크립트 파일도 첨부했습니다.
어떻게 하는지 방법만 단순히 나열한다면 그대로 따라하기는 쉽겠지만, 몇 년 지나 환경이 변하면 또 어디선가 막히는 부분이 생길 텐데요.
그래서 직접적인 실행방법 설명에 앞서 왜 이런 작업들을 하는 건지, 어떤 단계들이 필요한지 배경 설명부터 좀 드리려고 합니다.
이걸 이해하고 숙지하셔야 혹시라도 잘 안 되고 막혔을 때 멘붕되지 않고 잘 해결하실 수 있을 거라 생각합니다.

배경 설명
 

  1. 제가 아는 EBS 라디오 방송 stream은 세 가지가 있습니다.
    다른 분들의 참고 링크에서 많이 사용하시는 RTMP(Real Time Messaging Protocol)라는 형식의 stream은 URL이
    rtmp://ebsandroid.ebs.co.kr:1935/fmradiofamilypc/familypc1m 입니다.
    RTMP라는 프로토콜은 널리 사용되는 형식이 아니라 Adobe Flash Player를 위해 만들어진 형식이며,
    EBS 라디오의 RTMP 스트림에는 음성 용량의 네 배나 되는 쓸데없는 영상(강의 장면도 아니고 EBS 로고만 나옵니다)이 함께 들어있어
    오디오 트랙만 추출해서 일반적인 음악 파일 형식으로 저장해 주는 추가 작업이 필수입니다.

    RTMP 이외에 RTSP (Real Time Streaming Protocol) 방식으로도 스트리밍을 하는데,
    URL은 rtsp://ebsonairandaod.ebs.co.kr:554/fmradiobandiaod/bandiappaac 입니다.
    이 스트림에는 원래는 영상이 없었는데, 2017년 7월 24일 이후로 작은 용량의 영상이 추가됐습니다.

    위의 두 스트림은 EBS 공중파 FM 라디오와 동일한 내용의 스트림이고요, 그 외에 다른 RTSP 스트림이 하나 더 있습니다.
    rtsp://new_iradio.ebs.co.kr:554/iradio/iradiolive_m4a 인데요, 공중파 어학강좌의 재방송 위주인 인터넷 방송입니다.
    EBS 홈페이지나 EBS 반디 앱에선 공중파 FM 방송을 '책 읽어주는 라디오', 인터넷 방송을 '외국어 라디오'라고 부르더군요.
    외국어 라디오 스트림에는 영상따위 없이 음성 데이터만 들어있어서 부가적인 오디오 추출 작업 없이 저장만 하면 됩니다.
     
    영상을 받았다가 버리는 것도 귀찮고, 본방 스트림의 경우 2017년 7월 24일부터 음량이 급격히 작아진 관계로,
    저는 인터넷 외국어 라디오 재방 RTSP 스트림을 받습니다.
     
  2. RTSP 스트림을 파일로 저장하는 방법은 프리웨어인 Libav 프로젝트라는 것이 있습니다.
    Libav 프로젝트 도구 중 하나인 avconv가 영상과 음향 관련해서 변환하고 저장하고 이런 쪽 작업에 대해서는 거의 만능인 것 같더군요.
    NAS에 Libav 도구를 설치하시면 avconv 명령으로 RTSP 스트림 데이터를 받아 파일로 저장할 수 있습니다.
    참고로 말씀 드리면 다른 참조 링크들에서는 ffmpeg을 많이들 쓰시는데, 이 ffmpeg이 2011년 이후로는 avconv로 넘어갔습니다.
     
  3. 그런데 이 Libav 도구들은 Synology NAS용 프로그램들을 받을 수 있는 패키지 센터에는 없고,
    DSM은 Linux를 기반으로 Synology에서 여러가지로 고쳤기 때문에 호환성 문제로 그냥 무작정 설치하는 것도 쉽지 않다고 합니다.
    그래서 필요한 것이 Debian chroot라는 패키지입니다.
    이것은 NAS에서 샌드박스를 지정해 놓고, 그 위에서 가상의 Debian Linux OS를 따로 돌리는 것 같은 환경을 만들어 줍니다.
    NAS에 Debian chroot를 깔아서, 그 위에 또다시 Libav 도구들을 설치해서 돌리면 되는 겁니다.
     
  4. Debian chroot와 Libav의 설치, 그리고 그 외 몇가지 작업은 우리에게 친숙한 DSM의 Web GUI 환경만으로는 안 되고,
    NAS에 터미널 접속해서 커맨드 라인 인터페이스로 작업해야 합니다.
    그래서 NAS에서는 SSH(Secure Shell) 서비스를 활성화해놔야 하고, PC에는 SSH 클라이언트 프로그램을 깔아야 됩니다.
     
  5. 위와 같은 프로그램들을 잘 사용해서 방송을 녹음하면 오디오 파일이 생길 텐데요.
    그런데 이렇게만 하면 Synology의 대표적인 음악 플레이어 앱인 Audio Station이나 DS Audio에서는 이 파일이 보이지 않습니다.
    이런 식으로 내부적으로 생성된 파일은 NAS의 미디어 색인 라이브러리에 자동으로 인식되지 않기 때문이거든요.
    이왕 NAS에 녹음을 하는 거라면 NAS의 미디어 색인 라이브러리까지 추가인식 시켜줘야 완벽한 해법이 되겠죠.
     
  6. 방송을 녹음해서 오디오 파일로 변환 저장까지 하고 라이브러리에 등록하는 방법까지 알았다 치죠.
    그런데 뭔가 빠진 게 있죠? 우리가 매일 시간 맞춰 NAS에 접속해서 녹음 시작하라고 명령하는 건 너무 귀찮잖아요.
    시간이 되면 알아서 예약 녹음이 되도록 자동화를 해줘야 합니다.
    여기서 첨부의 셸 스크립트 파일과 DSM의 '작업 스케줄러'가 필요하게 됩니다.
     

그럼 이제부터 위의 1~6의 목표에 도달하기 위해 해야 할 일들을 단계 별로 차근차근 자세하게 설명해 가겠습니다.
 
 

1단계. SSH 환경 셋업

이 단계의 목표는 위의 4번 항목입니다.
NAS의 파워유저시라면 SSH 환경 정도는 다 정비돼 있으실 테니 다음 단계로 바로 넘어가셔도 되고요.

일단 NAS DSM의 제어판 맨 아래의 '터미널 및 SNMP' 메뉴, '터미널' 탭에서 SSH 서비스를 활성화하셔야 합니다.
포트는 일반적으로 22번을 쓰게 되어 있는데요.
SSH는 해킹과 공격의 주된 타겟이라서, 저는 집에서만 접속하고 외부에서는 접속이 안 되도록 공유기에서 포트 포워딩을 하지 않았습니다.
피치 못하게 외부에서 접속해야만 한다면 외부에서는 22번이 아닌 10022라든가 22222번 같은 다른 포트로 보이도록 포워딩하는 것이 좋습니다.
SSH는 최초 녹음 세팅 단계에서만 사용합니다.
굳이 SSH를 계속 사용해야 할 다른 용도가 없다면(지금까지 안 쓰셨다면 앞으로도 안 쓰실 듯) 녹음 설정 후 다시 꺼놓으시는 게 보안 상 좋습니다.

이제 SSH 접속을 위해 PC에 SSH 클라이언트 프로그램을 설치해야 되는데, PuTTY가 가장 널리 쓰입니다.
크롬이나 파이어폭스 웹 브라우저 이용자이시고, 한 번 쓰려고 SSH 프로그램을 설치하시는 게 꺼려진다면 FireSSH 플러그인을 쓰셔도 됩니다.
저는 크롬 앱스토어에서 FireSSH를 깔아서 사용했습니다.

자 이제 SSH로 NAS에 한 번 접속해 보시죠.
PC에서 SSH 클라이언트를 띄워서 NAS 주소 넣으시고, SSH 포트 넘버 넣으시고, 사용자 ID와 패스워드를 넣으면 되는데요.
SSH 설정화면의 설명에도 나오지만 SSH 접속 ID는 Administrators 그룹에 속한 사용자의 ID만 가능합니다.
맨 처음 접속하시면 무슨 키를 신뢰하겠냐느니, 저장하겠냐느니 물어볼 텐데, 그냥 그렇다고 대답하심 됩니다.

참조 글에서는 처음부터 root 계정으로 SSH에 접속하라고 했지만, DSM 버전 6.0에서는 그렇게 안 되더군요.
일단은 다른 사용자로 NAS에 SSH 접속 후, 터미널 상에서

  sudo -i

를 입력해서 root 권한과 환경을 얻어야 합니다(패스워드 재입력 필요).
보시면 명령 프롬프트가 root@ 로 시작하는 것으로 바뀌었음을 알 수 있습니다.
일단은 요기까지. 다음은 Debian chroot package를 설치한 후에 진행하시죠.

 

2단계. Debian chroot 및 libav-tools의 설치

이 단계의 목표는 위의 2, 3번 항목입니다.
Debian chroot 패키지를 설치하려고 하는데, 패키지 센터를 아무리 뒤져봐도 그런 게 없죠? 패키지 소스를 추가해야 됩니다.
패키지 센터의 설정 메뉴 > 패키지 소스 탭의 추가 버튼을 누르시고, 이름은 대충 넣으시고
위치에 http://packages.synocommunity.com 을 입력하고 확인 버튼을 누르시면 패키지 소스에 추가됩니다.

Debian chroot를 설치할 디스크 볼륨은 녹음 파일을 저장할 공유 폴더가 있는 볼륨과 동일한 곳으로 정하는 게 약간 더 효율적입니다.
설치 볼륨의 선택은 패키지 센터의 설정 옵션 '일반' 탭 맨 위의 '기본 볼륨'에서 설정할 수 있습니다.
일반 탭 맨 아래의 '신뢰 수준'이 'Synology Inc. 및 신뢰할 수 있는 게시자'로 돼있는지도 확인하시고요.

이제 패키지 센터에 '커뮤니티'라는 tab이 추가되고, 그 안에 Debian Chroot가 보입니다.
Debian Chroot의 설치 버튼을 클릭하면 Python 프로그래밍 언어도 설치해야 한다고 나오는데, 그러라고 허락하세요.
다른 Python Module이 이미 설치돼 있더라도 SynoComminity 것을 무조건 설치하더군요.
설치가 끝난 후 혹시라도 Debian Chroot가 '중지됨'으로 표시되어 있으면 작업 메뉴에서 '실행'을 꾹 눌러주세요.
여기까지 하면 패키지 센터에는 더 이상 볼 일이 없고, 이제부터는 SSH 터미널 상에서 작업을 하게 됩니다.

chroot는 관리자 권한으로만 실행 되니 터미널에서 sudo -i 해서 root 권한을 얻는 것 잊지 마시고요.
chroot 모드로 들어가는 command는 다음 둘 중에 아무 거나 입력하시면 됩니다.

  chroot /usr/local/debian-chroot/var/chroottarget /bin/bash
  /var/packages/debian-chroot/scripts/start-stop-status chroot

둘다 복잡하긴 마찬가지지만 shell의 경로 이름 자동 완성 기능을 사용하면 두번째 것을 약간 더 쉽게 입력할 수 있습니다.
Directory path를 다 칠 필요 없이 두어 글자만 치고 키보드의 tab 키를 누르면 자동 완성이 되니 편한 이용에 참고하시기 바랍니다.

이렇게 chroot에 들어오셨다면, ☞Debian chroot 홈페이지☜에서는 다음과 같이 초기 setup을 하라고 조언합니다.
뭐, 따라해 주는 게 좋겠죠.

  apt-get update

라고 입력해서 업데이트하고,

  apt-get upgrade

업그레이드하고,

  apt-get install locales   dpkg-reconfigure locales

이렇게 언어/지역설정도 다운로드 받아서 설정합니다.
아래 그림과 같은 창이 뜨는데, en_US.UTF-8 UTF-8 항목에 커서가 있는 상태에서 space 바를 눌러 선택하고 Enter 치면 됩니다.
저는 혹시 몰라서 Enter 치기 전에 ko_KR.EUC-KR EUC-KR과 ko_KR.UTF-8 UTF-8 항목에서도 space를 눌러두었습니다.
그 다음 나타나는 창에서 default locale로 en_US.UTF-8 선택하시고 엔터 치시면 되고요.

 

  dpkg-reconfigure tzdata

이렇게 해서 시간대 설정도 Asia > Seoul로 맞춰두면 나쁠 것 없겠죠.

그리고 가장 중요한 것, Libav 도구들을 설치해야죠.

  apt-get install libav-tools

이렇게요. 설치할 때 계속하겠냐고 물어보면 'Y(소문자 y도 됩니다)' 라고 입력하고 엔터 치시면 됩니다.

이러고 나면 Debian chroot setup과 libav-tools 설치는 끝났고, chroot 상에서 볼 일도 다 봤으니

  exit

명령을 입력해서 DSM 환경으로 나옵니다.
exit 명령을 여러 번 입력하면 root 계정에서도 나가버리고, SSH 터미널까지 끝내버리니 exit은 한 번만 하시는 것 주의하시고요.
 

 

3단계. ebs_record.sh 업로드

일단 

ebs_record.sh
다운로드

 첨부파일을 받으셔서 NAS에 업로드하세요. 아무 폴더에나 올려놔도 됩니다.

저는 /volume1/music 밑에 갖다두었습니다.
Audio Station 등 음악관련 패키지를 깔면 music 공유 폴더가 자동으로 생기는 건 아시죠?
제 경우 music 공유 폴더를 디스크 볼륨 1에 만들었기 때문에 shell 상에서 경로가 /volume1/music입니다.
볼륨 2에 만드신 분은 /volume2/music이겠지요.

ebs_record.sh가 저 위쪽에서 얘기한 2번과 5번 항목의 일을 연속으로 실행해주는 바로 그 파일입니다.
Shell script라고 해서 shell 상에서 순차적으로 실행할 명령어들을 주루룩 적어놓은 텍스트 파일이고, 텍스트 편집기로 편집할 수도 있습니다.
다른 분들의 참고 링크에도 보면 같은 이름의 파일이 있는데, 얼핏 비슷해보여도 중요한 알맹이가 다르니 혼용하지 마시기 바랍니다.
특히 뭐가 다르냐면, 참고 링크의 ebs_record.sh 스크립트는 Debian chroot 상에서 돌아가고, 제 스크립트는 DSM에서 돌아갑니다.

참조 링크 내용들을 보면 DSM 상의 공유 폴더를 chroot 상의 작업 directory에 mount하는 데 상당한 노력을 기울이고 있습니다.
그분들이 directory 마운트 작업을 왜 그렇게 중시했는지 알려면 chroot 명령어의 원래 의미부터 이해해야 하는데요.
Debian chroot 상태에서는 /usr/local/debian-chroot/var/chroottarget이라는 복잡한 디렉토리가 루트 디렉토리 / 처럼 보이고,
그 아래의 directory에만 읽고 쓸 수 있지, NAS의 공유 폴더들에는 접근을 할 수가 없습니다.
또 반대로 Debian chroot의 경로도 File Station, Audio Station이나 여타 NAS 서비스에서는 안 보입니다.
그래서 chroot 작업결과를 공유폴더에 올려놓기 위해서는 공유 폴더가 마치 chroot 밑의 폴더인 것처럼 mount해줄 필요가 있었던 것인데요.

일단 mount 명령을 참조 링크에 나온 형식대로 써서는 DSM 6.0에서 안 먹힌다는 문제가 있습니다.
이건 제가 나름 고생해서 mount 명령을 그냥 쓰지 말고 mount -o bind 라는 option으로 쓰면 된다는 사실은 알아냈고요.
NAS를 리부팅하면 마운트가 풀리기 때문에 NAS 리부팅 시 자동으로 마운트해주는 방법까지도 배웠습니다.
그런데 저는 chroot 상에서 스크립트를 돌릴 것이 아니라 DSM 상에서 돌릴 거라고 했죠?
생각해 보니 DSM shell에서는 chroot 작업 폴더도, 공유 폴더도 둘다 보이니 애초에 DSM script에는 mount 자체가 필요 없던 겁니다-_-

쓸데없는 잡설이 너무 길었는데요.
누군가 제 방식을 따라하다가 막혔을 때, 혹시라도 해결해보려다가 디렉토리 마운트에 시간을 허비하실까봐 노파심에 말씀 드렸습니다.
잡설을 시작한 김에 ebs_record.sh 파일 내용을 좀더 설명 드리겠습니다.

#!/bin/sh

 

PROGRAM_NAME=$1

RECORD_SECS=$2 

DEST_DIR=$3/$1`date +_%y%m`

 

RADIO_ADDR="rtsp://new_iradio.ebs.co.kr:554/iradio/iradiolive_m4a"

CHROOTTARGET=/usr/local/debian-chroot/var/chroottarget

TITLE=$PROGRAM_NAME`date "+ %Y.%_m.%_d."`

TEMP_AAC=/tmp/`date +%H%M%S%N`.m4a

FINAL_AAC=$PROGRAM_NAME`date +_%y%m%d`.m4a

 

chroot $CHROOTTARGET avconv -rtsp_transport tcp -i $RADIO_ADDR -t $RECORD_SECS -codec:a copy -vn -metadata title="$TITLE" -metadata date=`date +%F` $TEMP_AAC

 

if [ ! -d "$DEST_DIR" ] ; then

  mkdir -p "$DEST_DIR"

  synoindex -A "$3"

fi

mv $CHROOTTARGET$TEMP_AAC "$DEST_DIR/$FINAL_AAC"

synoindex -a "$DEST_DIR/$FINAL_AAC"


스크립트 파일의 위쪽 대부분은 단지 아래쪽에서 사용할 변수들과 파일이름 등을 지정하는 부분입니다.
실질적으로 가장 중요한 것은 중간쯤, chroot로 들어가서 avconv로 RTSP 스트림을 지정된 시간동안 녹음하라는 단 한 줄입니다.
EBS 스트림의 오디오 트랙은 AAC(Advanced Audio Coding)라는 방식으로 압축되어 있기 때문에 그에 걸맞는 .m4a라는 확장자로 저장합니다.

마지막 여섯 줄은 생성된 M4A 파일을 지정된 폴더에 지정된 이름으로 옮겨놓고, DS Audio 등에서 보이도록 등록해줍니다.
DS Audio에서 플레이하려면 저 위의 5번 항목에서 언급한 미디어 색인 등록이 필수적인데, synoindex 명령이 바로 그것입니다.
이건 다른 분들 링크의 스크립트에는 아예 없었지만, 제가 정말 열심히 NAS를 공부한 끝에 알아낸 거랍니다.
 
 

4단계. 녹음 테스트

지금까지의 모든 설정이 잘 됐는지 한 번 테스트해봅시다.
ebs_record.sh 안에서 chroot를 부르기 때문에 테스트에도 관리자 권한이 필요합니다.
명령 프롬프트가 root@ 로 시작하는지(sudo -i를 실행한 상태인지) 확인하시고요.
우선 SSH 터미널 상에서 ebs_record.sh 파일이 있는 경로로 이동합니다.

  cd /volume1/music

이 폴더는 사람마다 다르겠죠? 위 3단계에서 ebs_record.sh 파일을 넣어준 경로를 잘 써주시고요.

Linux 계열 OS에서 파일을 실행하기 위해서는 파일에 먼저 실행권한을 줘야 합니다.

  chmod 777 ebs_record.sh

이렇게요. 여기서 777이라는 숫자는

잭팟

'모든 사람이 읽고 변경하고 실행할 수 있다'는 의미입니다.

ebs_record.sh를 실행할 때는 3개의 매개변수를 써줘야만 하는데요.
첫번째는 방송 프로그램 제목(파일 이름), 두번째는 녹음할 시간(초 단위), 마지막은 저장할 폴더 이름입니다.

  ./ebs_record.sh xxx 30 yyy

라고 한 번 실행해 보시죠.
그러면 녹음을 하고 있다는 뭔가 복잡한 메시지가 30초간 화면에 표시됩니다.
끝난 후 현재 폴더 밑에 yyy/xxx_(4자리 년월)이라는 폴더가 생겼고, 그 속에 xxx_(6자리 날짜).m4a라는 이름의 오디오 파일이 생성됐고,
Audio Station이나 DS Audio의 재생목록 중 '최근 추가됨'에서 이들이 확인되고, 플레이했을 때 녹음된 방송이 잘 들리면 성공한 겁니다.

이러면 모든 준비가 완료됐고, 이제 DSM의 작업 스케줄러에서 시간 예약만 걸어주면 끝입니다.
테스트를 하고 나면 NAS의 미디어 라이브러리에 yyy/xxx_(년월)이라는 폴더와 'xxx (날짜)'라는 필요 없는 트랙이 추가돼 있을 텐데요.
모든 테스트가 끝난 후

  synoindex -D yyy   rm -rf yyy

해주시면 말끔히 정리됩니다.

만약 뭔가가 잘 안 됐다면 ebs_record.sh 실행 시의 오류 메시지를 찬찬히 살펴보시고,
위의 1 ~ 4단계 중 혹시 뭔가 잘못되지는 않았는지 다시 한 번 꼼꼼히 돌아보시기 바랍니다.
 
 
5단계. 녹음 시간 예약

이제 마지막으로 저 위 배경 설명 6번의 자동화 작업입니다.
참조 링크들을 보시면 Linux cron(crontab)을 이용하는 예약 녹음 방법이 나오는데요.
cron은 시간 예약 방식이 덜 직관적인 건 둘째 치고, NAS를 리부팅할 때마다 cron daemon을 다시 시작해줘야 한다는 애로사항이 있습니다.
불편하고 복잡한 cron은 그냥 잊어버리시고, DSM의 작업 스케줄러를 이용하시는 방법을 추천 드립니다.

NAS에 웹으로 접속하셔서 제어판을 보시면 아래쪽에 작업 스케줄러라는 것이 있습니다.
작업 스케줄러에서 생성 > 예약된 작업 > 사용자 지정 스크립트 메뉴를 선택하면 새 녹음 작업을 생성할 수 있습니다.
작업 이름은 아무렇게나 쓰시면 됩니다. 그런데 한글은 안 되니 영어로 해주시고요.
사용자는 반드시 root여야 합니다. 바꾸지 마세요.

두번째 탭에서 시간을 예약하게 돼있습니다.
제가 녹음하는 7개의 방송은 모두 월요일부터 토요일까지 방송하니까 요일은 그렇게 설정하면 되고,
시간은 하루에 한 번, 방송 시작하는 시간을 써줍니다.

이제 마지막 탭에서 ebs_record.sh 명령을 써주면 됩니다.
위의 녹음 테스트 때와는 달리 절대경로를 다 써줘야 한다는 것, 주의하세요.
예를 들어 제가 입이 트이는 영어를 녹음할 때는

  /volume1/music/ebs_record.sh "입이 트이는 영어" 1200 "/volume1/music/Language/EBS 입이 트이는 영어"

이렇게 써줬습니다.

제 경우의 폴더 경로는 저렇지만, 여러분은 여러분만의 경로를 써주셔야 되겠죠.
따옴표를 쳐준 이유는 폴더나 파일 이름 중간에 빈 칸이 있기 때문이고, 빈 칸이 없다면 따옴표를 안 쓰셔도 됩니다.
주의하실 점 중 하나는 ebs_record.sh가 'EBS 입이 트이는 영어'라는 폴더는 만들어주지만, 그 위 경로는 만들어주지 않는다는 점입니다.
즉, /volume1/music/Language라는 폴더는 원래부터 제 NAS에 있던 폴더입니다.

입이 트이는 영어의 방송 시간은 20분이라서 20 x 60 = 1200초를 써준 것이고요.
귀가 트이는 영어, POWER ENGLISH 같은 프로그램의 경우엔 길이가 19분 30초라서 1170이라고 써줬고,
포켓 잉글리쉬는 9분 30초짜리 방송이기 때문에 570을 써줬습니다.
이와 같은 방식으로 녹음할 방송 프로그램 하나마다 작업 하나씩 작업 스케줄러에 등록하시면 됩니다.
저는 6개의 방송을 녹음할 거라서 녹음 작업이 6개 등록되어 있지요.

 

그리고 마지막으로 하드 디스크 절전 모드 대책이 필요합니다.
위와 같이 설정하고 며칠 녹음했더니 가장 일찍 시작하는 프로그램 앞부분이 25초 가량 잘려나갔더라고요.
원인을 살펴보니 바로 하드디스크 절전(대기) 세팅 때문이었습니다.
HDD 를 20분간(시간은 제어판 > 하드웨어 및 전원 > HDD 대기 기능에서 변경 가능) 안 쓰면 절전모드에 들어가는데,
제 NAS는 개인용이라 새벽 6시에는 쓰는 사람이 없어 십중팔구 절전 모드인 겁니다.
제 NAS(DS213)와 HDD(WD Green 3TB)가 깨어나는 데 20초가 넘게 걸리기 때문에 앞부분 녹음이 날아갔던 것이죠.

 

저는 이 문제를 각각 5시 49분, 6시 39분, 22시 59분에 '깨어나는 작업'을 스케줄러에 등록해서 해결했습니다.
깨어나는 작업이라고 해서 별건 아니고 위와 같은 사용자 정의 스크립트 작업에 실행 명령으로 ls /volume1 이라고 써줬습니다.
디스크 볼륨 1의 폴더 리스트를 보이라는 명령인데, 봐줄 사람은 없겠지만 적어도 HDD는 깨어나겠지요.
저는 Debian chroot도 녹음 폴더도 볼륨 1에 있지만, 서로 다른 볼륨에 있다면 ls /volume1 /volume2 처럼 써주면 되지 않을까 싶습니다.

 



자 이제 다 됐습니다.
기다리시기만 하면 NAS가 방송을 자동으로 녹음해주고, Audio Station과 DS Audio의 최근 추가됨 리스트에 새로 녹음된 파일이 뜰 겁니다.
혹시 Audio Station에서 파일은 보이지만 폴더가 안 보인다면 File Station 등에서 폴더 이름을 딴 걸로 바꾸셨다가 다시 되돌리시면 될 거고요.

그럼 잘 들으시고 열공하세요~

2013. 1. 22. 22:20

홈 미디어 네트워크 보완 계획 #4 - NAS 세팅

드디어 우리 집에 '항상 준비된 미디어 서버'인 NAS가 갖춰져서

'언제 어디서나 간편하게 미디어 감상을 할 수 있는 홈 미디어 네트워크'가 완성되었습니다.
아주 좋더군요. 아직 많이 써보지는 못했지만...

지난 번에 ☞NAS 구입기☜를 올려봤는데요.

이번에는 저처럼 개인용, 미디어 서버 용으로 사용하실 분들께 참고가 될까 해서 세팅 과정을 올려봅니다.

제가 사용하는 NAS 기종은 DS213인데요, 대부분의 Synology사 2 베이 NAS 제품들의 세팅에 동일하게 적용 가능합니다. 


WD Green 하드의 헤드 파킹 문제 예방 (실패)

제가 NAS 용으로 구입한 웨스턴 디지털(WD) Green 하드 디스크는 '헤드 파킹' 관련한 문제가 있다고 알려져 있습니다.
이 문제의 원인은 WD Green 하드가 8초간 access되지 않으면 헤드가 파킹 위치로 이동하는 기능(전력 절감 목적) 때문인데요.
Windows나 MacOS의 경우 지속적으로 8초보다 빠른 주기로 HDD에 access를 하기 때문에 헤드 파킹이 안 일어나고, 문제도 없습니다.
문제는 OS가 HDD에 access하는 주기가 30초쯤 되는 Linux 기반 기기들에서 생기는데요,
하필이면 Synology NAS도 Linux 기반입니다.


WD Green 하드가 달린 Linux 기반 기기를 켜놓고 아무 짓도 안 하면 어떤 일이 일어나냐면...
Linux가 하드에 access하면 헤드가 로딩되고, 8초가 지나면 헤드가 파킹 되고, 22초 후에 다시 로딩되고... 하는 짓을 반복합니다.
하드 디스크의 S.M.A.R.T. 정보를 보면 ID 193번(0xC1) Load Cycle Count(LCC)라고 있는데, 이것이 헤드 파킹 회수를 나타냅니다.
하루 24시간 지속적으로 켜둘 경우 이 LCC가 한 달에 8만회씩 증가한다는 계산이 나오는데요.
일반적으로 제조사에서 보장하는 LCC는 30만회니까... 4개월 만에 하드가 고장날 수도 있다는 얘깁니다.

해결책은 wdidle3라는 유틸리티로 헤드 파킹 타이머를 조절하면 됩니다.
wdidle3는 DOS에서만 돌아가는 프로그램이라서 NAS에서는 안 되고 일단 하드를 먼저 PC에 장착해야 합니다.
Windows의 DOS 커맨드 창에서는 안 되고, DOS 부팅용 CD/USB 드라이브를 만들든지 VirtualFDD를 이용해서 DOS로 부팅을 해야 합니다.
DOS로 부팅 후 'wdidle3 /s300'이라는 커맨드를 입력하면 된다는군요.
그러면 그 PC에 장착된 모든 WD Green 하드 디스크의 헤드 파킹 타이머가 300초 = 5분으로 세팅되어 헤드 파킹 문제가 방지됩니다.

...고 열심히 해봤습니다만 저는 안 되더군요ㅜㅜ

DOS 부팅 CD도 여러가지 이미지로 구워보고 VirtualFDD도 해보고 다른 하드 다 뽑고 WD Green 하드만 연결하고 별 짓을 다 해봐도...
WD Green 하드를 발견할 수 없다는 메시지만 나옵니다ㅜㅜ

그래서 자포자기하는 마음으로 wdidle3 적용 안 된 상태로 그냥 NAS에 장착해서 쓰고는 있는데...
지금까지 관찰한 바로는 LCC가 막 급격히 늘고 그러는 현상은 없었습니다.
WD에서 최신형 Green 하드를 내면서 문제를 해결한 건지, 아니면 Synology에서 WD Green에 대응되도록 펌웨어에 모종의 조치를 취한 건지...
아무튼지간에 지금까지 별 문제는 없네요.


하드 디스크 장착 및 OS 설치

DS213은 따로 SATA 케이블이 필요 없이 HDD 트레이를 쏙 밀어넣으면 NAS의 SATA 커넥터에 연결되게 만들어져 있습니다.

그리고 hot-swappable bay라고 해서 전원이 켜진 채로 하드 디스크를 뺐다꼈다 할 수도 있습니다.

하드 디스크 장착 후 NAS에 전원 어댑터를 연결하고 네트워크 케이블로 공유기에 연결하면 사용 준비 완료!



NAS도 일종의 서버 컴퓨터이기 때문에 세팅 과정은 PC와도 비슷한데,

다른 점이라면 모니터와 키보드를 달 수 없기 때문에 원격으로 다른 PC에서 세팅해야 한다는 점이죠.

먼저 NAS에 OS(Operating System)를 설치해야 하는데, Synology NAS용 OS의 이름은 DSM(DiskStation Manager)이라고 합니다.

NAS와 같은 공유기에 물린 PC로 ☞Synology 다운로드 센터☜에 가서 NAS관리 프로그램 Synology Assistant와 DSM을 다운로드 받습니다.

PC에 Synology Assistant를 설치하고 실행하면 네트워크에 접속된 NAS가 보입니다.

아직 HDD 포맷도 안 되고 OS도 안 깔려있다 보니 상태가 '설치되지 않음'으로 나오고, NAS 본체에도 'STATUS' LED가 주황색으로 깜빡입니다.

Synology Assistant에서 마우스 오른쪽 버튼으로 클릭해서 '설치'를 선택하면 DSM 설치 마법사가 시작됩니다.


설치 마법사의 지시에 따라 다운로드 받은 DSM의 .pat 파일 경로를 입력합니다.

그 다음에 아래와 같은 서버 정보 입력화면에서 '설치 후 SHR 볼륨 생성' 옵션은 해제하는 게 좋습니다.

하드 디스크 2개를 설치한 2 베이 NAS에서 SHR이나 RAID 1 볼륨을 생성하면 하드 디스크 용량을 반밖에 못 쓰게 되기 때문이죠.
앞으로도 서너 번 더 자동으로 볼륨 생성을 하겠냐는 옵션이 나오는데, 매번 거절하는 게 좋습니다.

그 다음엔 NAS의 IP주소를 세팅하는 창이 나오는데, 보통 DHCP 자동 설정으로 하시면 되고...

'종료' 버튼을 누르면 DSM이 알아서 설치됩니다.


DSM 설치 후 Synology Assistant에서 NAS를 보면 상태가 '준비'로 바뀌어있고,

더블클릭하면 웹 브라우저를 통해 DSM에 로그인할 수 있습니다.

아래 사진이 DSM 웹 매니저 화면인데요, 윈도우즈나 맥OS의 데스크탑 화면과 비슷한 구성입니다.


볼륨 구성과 RAID

이제 하드의 데이터 영역을 포맷해야죠. 즉, 디스크 볼륨을 구성할 차례입니다.

DSM 웹 매니저에서 자동으로 뜨는 '빠른 시작' 창에서 볼륨 생성을 하지 말고, 화면 왼쪽 위의 시작 버튼을 눌러 '저장소 관리자'를 선택합니다.

그러면 볼륨 생성 마법사가 시작되는데, 2 베이 NAS 사용자라면 첫번째 모드 선택 창에서 일단 사용자 지정을 선택합니다.

'빠름' 옵션은 앞서 말한 것처럼 HDD 두 개를 장착했을 경우 하드 용량을 반밖에 못 쓰게 만들어줍니다.

그 후 볼륨 생성 마법사의 선택창이 몇 개 뜨는데, 'RAID에 단일볼륨'을 선택하고, 하드 디스크를 하나만 선택한 후,

데이터 삭제 경고창에서 '예'를 누르고, RAID 유형 선택 화면에서 '기본(basic)'을 설정합니다.

마지막으로 저는 디스크 검사 수행은 '없음'을 선택했습니다. 3TB 하드 디스크를 검사할라 치면... 정말로 하루종일 걸리거든요.

저는 도저히 그만큼 기다릴 인내심도 없고... 설마 신품 하드디스크에서 배드 섹터가 나올라구요^^

이렇게 모든 설정을 하고 '적용' 버튼을 누르면 볼륨이 생성됩니다.

하드 디스크를 두 개 장착했을 경우 이런 볼륨 생성 과정을 동일하게 두 번 수행하면 됩니다.


그런데 왜 하필이면 수많은 볼륨 유형 중에 '기본'인가? RAID(Redundant Array of Independent Disks) 좋다던데 왜 안 쓰나?


일단 RAID에서는 서로 다른 용량의 하드 디스크 사용 시, 모든 하드의 용량을 가장 작은 하드 용량에 맞춰 그만큼밖에 못 사용합니다.

그리고 RAID에서는 하드 디스크를 떼었다 붙였다 하는 것도 자유롭지 않습니다.

저처럼 하드 디스크 하나씩 사서 달고 떼고 하는 사람에게는 역시 기본 볼륨이 편합니다.

RAID 0는 데이터를 읽고쓰는 속도가 HDD 개수에 정비례해서 증가하는 반면, 데이터 손실 위험성은 HDD 개수의 제곱에 비례해서 증가합니다.

n 개의 디스크를 RAID 0로 묶을 경우 HDD 하나일 경우에 비해 문제 발생 확률도 n 배, 문제 발생 시 피해 용량도 n 배가 되니까요.

또한 RAID 0로 묶어봤자 NAS의 전송속도가 느려서 HDD 속도의 발목을 잡기 때문에 속도 향상이 거의 없습니다.

즉, NAS에서 RAID 0는 이득은 없고 손실 위험만 크니 안 쓰는 게 좋습니다.


RAID 1은 두 디스크에 동일한 data를 저장(미러링)해서 한 쪽 디스크에 문제가 생기더라도 복구 가능한 데이터 보호 기능을 제공합니다.

하지만 같은 데이터가 두 배 용량을 잡아먹기 때문에 예산이 빠듯한 개인 사용자가 쓰기에는 너무도 사치스러운 짓입니다.

RAID 10은 4, 6, 8... 개의 HDD를 이용해서 RAID 1의 미러링과 RAID 0의 속도 향상을 동시에 꾀하는 건데... 역시 사치스러운 짓이고요.

속도 상승과 데이터 보호의 두 마리 토끼를 잡으면서도 경제적으로 합리적인 RAID 타입은 RAID 5 정도지만...

이건 HDD가 3개 이상 필요합니다. 2 베이 NAS에서는 그림의 떡이죠.


JBOD(Just a Bunch Of Disks)라고 여러 개의 HDD를 단지 논리적으로만 하나의 볼륨으로 묶는 옵션도 있습니다만...

볼륨이 하나로 통일된 느낌이 좋기는 한데... 하드를 바꿔 달거나 하기에는 역시 골치 아픕니다.

그리고 어차피 DSM에서 관리의 기본 단위는 볼륨이 아니고 '공유 폴더'이기 때문에 굳이 하드들을 한 볼륨으로 묶어놓을 필요가 없습니다.


결론적으로 2 베이 NAS의 개인 사용자에게 RAID나 JBOD는 장점이 거의 없으니-_- 그냥 '기본'만 하세요.

데이터 보호 기능이 없는 것이 불안하면 백업이나 동기화를 이용해서 데이터를 보호하면 되고요.

RAID 1은 하드 디스크를 통째로 복제하는 반면에 백업이나 동기화는 중요한 데이터에만 선택적으로 적용할 수 있으니 용량도 절약되지요.



한글 설정


제 경우 NAS를 한글 설정 안 하고 그냥 쓰다가 ZIP 압축 파일에 들어있던 한글 이름 파일 몇 개 날려먹고,

한글로 된 음악 태그도 온통 깨져서 못 알아보는 까막눈 생활을 일주일 정도 했는데요.

여러분들은 저처럼 삽질하지 마시고 처음부터 한글 설정해서 쓰시기 바랍니다.

DSM의 제어판 → 지역 옵션 → 언어 탭에서 마지막 '코드 페이지' 부분을 '한국어'로 설정하면 한글 관련한 문제는 거의 해결됩니다.

저는 그 위의 '표시 언어'나 '알림 언어'도 혹시 몰라서 다 한국어로 설정했습니다.

음악 태그가 이미 깨진 상태에서 위의 한글 설정을 했다면 제어판 → 미디어 색인 서비스 → 색인 재설정까지 해야 태그가 제대로 보일 겁니다.


그리고 서비스 중에 고질적으로 한글 문제가 있는 놈이 뭐냐면 FTP입니다.

FTP 클라이언트에 따라 케이스 바이 케이스로 한글 파일 이름이 깨질 수도 있고 안 깨질 수도 있는데...

제어판 → FTP → FTP/FTPS 탭에서 'UTF-8 파일 이름 지원 활성화'에 체크해주면 문제가 해결되는 경우가 있습니다.

UTF-8 설정도 하고 클라이언트 쪽 언어 세팅도 아무리 만져봐도 한글이 전혀 먹통인 클라이언트가 더러 있는데요.

세상은 넓고 FTP 클라이언트 프로그램은 많으니 괜히 스트레스 받지 마시고 그런 건 쓰지 마세요^^

참고로 FTP와는 반대로 WebDAV는 웬만해서는 한글이 안 깨집니다.

FTP와 WebDAV 둘 다 지원하는 클라이언트 프로그램이 FTP에서 한글이 깨진다면 맘 편히 WebDAV로 접속하시기 바랍니다.



프로그램 설치


DSM에서는 프로그램, 앱이라는 명칭 대신 '패키지'라고 부르는데, DSM 바탕화면의 '패키지 센터'에서 설치할 수 있습니다.

'사용가능' 탭의 많은 패키지들 중 내게 필요할 듯한 패키지를 골라 '설치'버튼을 누르면 마치 스마트폰 앱처럼 다운로드를 받아 설치가 됩니다.

제 NAS의 주된 용도는 미디어 서버라서 비디오 스테이션, 오디오 스테이션, 포토 스테이션, 그리고 미디어 서버를 설치했습니다.

그리고 토런트와 각종 파일 다운로드를 위해 다운로드 스테이션, 파일 동기화와 백업을 위해 클라우드 스테이션,

바이러스 예방책으로 안티 바이러스 에센셜... 정도의 패키지들만 우선 설치해봤습니다.

PC는 Windows만 설치해도 '내 문서'니 '비디오'니 '음악'이니 하는 폴더들이 자동으로 만들어지지만

Synology NAS에서는 패키지를 설치해야 'music', 'photo', 'video' 같은 폴더들이 자동으로 만들어집니다.

대부분의 패키지들은 알기 쉬운 그래픽 유저 인터페이스로 되어 있지만, 세세한 세팅에 들어가면 꽤 어렵습니다.

설명이 필요할 때는 DSM 바탕화면의 'DSM 도움말'이나 패키지 창 오른쪽 위의 ? 버튼을 클릭해서 도움말을 읽어보시기 바랍니다.


스마트폰 시대에 발맞추어 Synology에서는 훌륭한 스마트폰 용 NAS 클라이언트 앱들을 다양하게 준비해놨습니다.

구글 플레이 마켓이나 애플 앱스토어에서 Synology로 검색하면

DS audio, DS cloud, DS download, DS file, DS photo+, DS video 등 여러가지 클라이언트 앱들을 받아서 사용할 수 있습니다.

가장 주력 앱인 DS file이 WebDAV 프로토콜로 NAS에 접속하기 때문에 DSM 제어판의 WebDAV에 들어가서 활성화시켜놔야 합니다. 


기존 PC Data 옮기기


저처럼 2베이 NAS를 처음 구입하는 사용자들은 대부분 저와 비슷하지 않을까 생각되는데요.

새 HDD는 하나만 구입하고 나머지 한 베이에는 기존 PC에 있던 하드 디스크 중 가장 용량이 큰 HDD를 옮겨 다는 겁니다.

사실 대용량 하드 디스크는 PC에 달아놓는 것보다는 네트워크 공유도 잘 되고 항상 켜져 있는 NAS에 다는 편이 활용도가 좋잖아요.

내부 네트워크 속도만 받쳐준다면 PC 사용 시에도 NAS의 HDD를 거의 로컬 하드와 같은 감각으로 사용할 수 있고 말이죠.


그런데 여기 한 가지 장애물이 있습니다.

PC 하드 디스크의 파일 시스템 포맷은 NTFS고, Synology NAS에서는 Linux 파일 시스템 포맷인 EXT4나 EXT3만 알아먹다는 것이 문제죠.

PC에 있던 HDD를 NAS에 달려고 하면 데이터를 다 날리고 EXT4로 포맷을 새로 해야 합니다.

데이터 보존을 위해서는 먼저 PC에 HDD가 장착되어 있는 상태에서 HDD의 데이터를 네트워크를 통해 모두 NAS(의 새 HDD)로 복사하고,

그 다음에 HDD를 PC에서 NAS로 옮겨달고 포맷하는 순서로 진행해야만 합니다.


흐... 제 경우 NAS 세팅 중 이 부분에서 가장 시간이 오래 걸렸네요.

동영상이나 음악처럼 단위 파일들의 크기가 큰 경우 PC에서 NAS로 비교적 수월하게 빨리 옮겨지는 반면,

자잘한 파일들의 개수가 많고 폴더 계층이 복잡한 데이터는 옮기거나 삭제하는 데 정말 오래 걸리더군요.

파일을 만 개쯤 옮기려고 하면 전체 용량이 아무리 작더라도 1시간은 기본으로 걸렸습니다.

윈도우 PC에서는 파일이 만 개 들어있는 폴더를 삭제하는 데 10초도 안 걸리지만, NAS에서는 1시간 가까이 걸리데요.


한 달이 지나서야 이 자잘한 파일들의 복사/삭제 느려짐 문제의 진짜 원인을 찾아냈는데...

'music', 'photo', 'video' 같은 멀티미디어 공유 폴더에 파일을 복사/삭제하면 인덱싱(색인) 하는 데 시간이 많이 걸리기 때문입니다.

제 NAS나 하드 디스크에는 별 문제가 없더랬습니다^^;;

여러분들도 가급적 'music', 'photo', 'video'에 자잘한 파일들은 많이 올려놓지 마세요.

다른 폴더도 공유 폴더 옵션에서 '파일 색인 지정'을 활성화하시면 유사한 현상이 발생하니 주의하시기 바랍니다.


아무튼 PC에 달려있던 1TB짜리 HDD의 데이터를 NAS로 모조리 옮긴 뒤, 1TB HDD도 NAS에 옮겨끼우고 새로 볼륨을 생성했습니다.

디스크 검사는 역시 안 했습니다^^ 시간이 오래 걸릴 테니까요.



공유폴더, 사용자, 그룹, 권한 설정


이 부분이 사실상 NAS 설정에서 가장 중요한 세팅인데요.

NAS에 올려놓을 데이터를 종류 별로 폴더 분류하고,

어떤 사용자가 어떤 데이터를 읽을 수 있고, 어떤 폴더에 쓸 수 있을지 결정하는 단계입니다.


PC만 사용하던 분들에게는 개념이 조금 생소하고 적응이 다소 어려울 수도 있습니다.

NAS의 존재 목적 자체가 '네트워크를 통한 공유'이기 때문에
Synology NAS에서 data를 저장하고 관리하는 최상위 단위는 볼륨이 아닌 '공유 폴더'입니다.

OS 상의 공유 폴더 path는 '/volume1/(공유 폴더)' 이런 식으로 볼륨 안에 속하기는 하지만

일반적인 접속에서는 그런 path로는 접근이 안 되고, NAS 이름 바로 밑에 공유 폴더들이 보이게 됩니다.


앞 단계에서 미디어 관련 패키지들을 설치했다면 'video', 'music', 'photo' 등의 최상위 공유 폴더들이 이미 만들어져 있을 겁니다.

서브 폴더들은 윈도우 PC처럼 마음대로 만들 수 있지만 이런 최상위 공유 폴더는 DSM 제어판의 '공유 폴더' 메뉴에서만 만들 수 있습니다.


공유 폴더는 만드는 시점부터 어떤 사용자에게 읽기를 허락하고, 어떤 사용자에게 쓰기를 허락할지 결정해놓는 게 좋습니다.
예를 들면 저는 'video'나 'music'등 개인적인 내용이 없는 자료들은 모든 NAS 사용자들이 읽고 쓸 수 있게 하고,
개인적 자료가 담긴 'photo'와 'home video'는 가족들만 읽고 쓸 수 있게 할 겁니다.
그리고 제가 찍은 사진 중 가족과 관련 없는 사진들은 따로 'velvio photo'라는 공유 폴더를 만들어 저만 읽고 쓸 수 있게 할 예정입니다.

공유 폴더 생성 시 '권한 없는 사용자에게 폴더와 파일 숨기기' 옵션을 켜놓으면 다른 사용자들에게는 그 폴더 자체가 안 보이게 됩니다.
더 확실히 숨기려면 '이 공유 폴더 암호화'라는 옵션도 있긴 한데, 사람들이 별로 추천하지 않더군요.

하드 디스크 볼륨이 두 개 있을 경우, 어느 공유 폴더를 어느 볼륨에 넣을지 용량을 고려해서 잘 결정하시기 바랍니다.
저는 용량을 많이 차지하는 'video'와 각종 동영상 및 사진 관련 폴더들을 3TB짜리 볼륨 1에,
그 외 잡다한 데이터는 모두 1TB짜리 볼륨 2에 저장하려고 합니다.

공유 폴더 설정이 끝났다면 이제 사용자와 그룹 설정을 해보도록 하죠.

NAS는 다른 Linux 서버와 같이 ID와 패스워드가 등록된 사용자만 사용할 수 있습니다.
불특정 다수의 사람들과 데이터를 공유하는 수단은 제한적이며,
정상적으로 NAS의 데이터를 사용할 사람들은 ID와 패스워드를 등록해서 사용자 계정을 만들 필요가 있습니다.

말 나온 김에 등록된 사용자 이외의 불특정 다수의 사람들과 파일을 공유할 수 있는 손쉬운 방법을 얘기하자면,

윈도우 탐색기와 비슷한 File Station에서 파일을 마우스 오른쪽 버튼으로 클릭 후 '파일 링크 공유'를 선택하면 HTTP 공유 링크가 생깁니다.
다른 사람들에게 이 링크를 보내면 그 사람들은 웹 브라우저를 통해 해당 파일을 다운로드받을 수 있습니다.
공유 링크의 유효기간이나 패스워드도 설정해줄 수 있고, 네이버나 다음 메일의 '대용량 첨부 파일' 기능과 여러 모로 비슷합니다.

다시 사용자 설정 얘기로 돌아오면, DSM 웹 매니저의 제어판 → '사용자' 메뉴에서 새 사용자를 등록할 수 있습니다.
저는 일단 'admin'이라는 아이디는 너무 개성적이지 않아서
제 사용자 아이디를 따로 하나 등록하고 admin은 '사용 안함' 처리했습니다.

사용자 설정에서 '사용자 홈 서비스'를 활성화하면 각 사용자 별로 'home' 공유폴더가 생깁니다.

기본적으로 home 폴더는 각 사용자 개개인을 위한 자기 저장 공간입니다.
클라우드 스테이션에서 개인 데이터를 동기화하기 위한 목적으로 사용하기 알맞습니다.
그런데 관리자는 'homes/(사용자 이름)' path를 통해 다른 사용자의 home 폴더도 마음대로 읽고 쓸 수 있습니다^^

실제 폴더는 homes/(사용자 이름)으로 만들어져 있고, 그게 'home'이라는 이름으로 바로가기 링크가 걸린 것이기 때문입니다.


NAS의 사용자 관리에서 가장 중요한 것이 공유 폴더의 접근 권한 설정입니다.

그렇지만 시시콜콜하게 각각의 사용자에 대해 권한을 지정해주는 것은 귀찮으니
사용자들을 그룹으로 묶고, 그룹에 권한을 설정하는 게 편합니다.

그룹은 제어판 → '그룹' 메뉴에서 새로 만들 수 있고, 그룹을 만들 때 기존 공유 폴더들에 대한 권한 설정을 해줄 수 있습니다.

제 경우 원래 있던 'administrators'와 'users' 그룹 외에 'family'와 'friends'의 두 그룹을 만들었습니다.

위에 말한 대로 video나 music 공유 폴더는 누구나 읽고 쓸 수 있게 하고, photo와 'home video'는 administrators(= 나)와 family만,

'velvio photo'나 homes는 administrators만 읽고 쓸 수 있게 설정했습니다.
다른 사람들이 폴더에 쓰고 지울 수 있다는 사실이 불안할 경우, 공유 폴더의 고급 권한 설정에 가서 '기존 파일 수정 비활성화'를 체크해놓으면
사용자가 새 데이터를 올릴 수는 있지만 실수로라도 기존 데이터를 변경하지는 못하기 때문에 좀더 안전합니다.

권한 설정 중에 공유 폴더 권한 설정 말고 '응용 프로그램 권한'도 있는데, 이건 그룹 단위로 못하고 사용자 별로 세팅해줘야 합니다.

그런데 뭐... 응용 프로그램 권한은 전부 허용해줘도 별 상관 없을 것 같습니다.



백업 설정


하드 디스크의 용량 당 가격은 시간이 지남에 따라 점차 싸지고 있지만,

사용자 데이터의 가치는 저렴해지거나 하지 않는 관계로

하드 디스크의 용량이 늘어날수록 한 하드에 담을 수 있는 데이터의 가치는 점점 커지게 되죠.

그래서 하드 디스크가 고장날 경우 겪는 정신적, 금전적 충격도 커집니다.


이를 막기 위해서는 중요 데이터의 백업(backup)을 생활화해야죠.

데이터 백업의 근본 원칙은 데이터를 물리적으로 분리된 다른 저장장치에 복사해서 저장해 놓는 것입니다.


뭐 사실 일반 사용자가 하드 디스크에 저장해놓은 데이터 중에 백업이 필요한 데이터는 그다지 많지 않습니다.

백업해야 할 정도로 중요한 데이터의 요건은

  1. 내가 만든 데이터
  2. 잃어버리면 다시 구하기 힘든 데이터
  3. 돈 주고 구입한 데이터

정도겠지요.

저는 제가 작성한 문서들과, 제가 찍고 편집한 사진과 동영상, 그리고 오래전부터 모은 음악파일 정도만 백업하려고 합니다.


Synology NAS에는 백업을 위한 추가 패키지도 있지만 DSM 시작 메뉴의 '백업 및 복원' 기본 메뉴만 사용해도 웬만한 백업 기능은 충분합니다.

공유 폴더 단위로 주기적으로 자동 백업하도록 설정할 수 있습니다.

주기적으로 백업을 해놓으면 하드 디스크의 고장뿐 아니라 사용자의 잘못으로 생긴 손실도 복구할 수 있고, 삭제된 파일도 살릴 수 있습니다.

타임머신처럼 원하는 과거의 특정 시점으로 데이터의 상태를 되돌리는 것도 가능하죠.

두번째 이후의 백업은 그 이전 백업에 비해 달라진 것만 저장하는 차분 백업(differential backup) 방식이라서 용량도 절약되고요.

용어가 좀 헷갈리긴 하는데, DSM 백업 및 복원에서 '대상'이란 것은 백업해야 할 데이터가 아니고 백업 데이터가 저장될 위치를 말합니다. 

'backup2'는 볼륨 2에 제가 만든 백업 용 폴더입니다.

2 베이 NAS니까 볼륨 1의 데이터는 볼륨 2에 백업하고, 볼륨 2의 데이터는 볼륨 1에 백업하는 게 좋죠.

같은 HDD 상에 백업을 해놓으면 HDD가 고장났을 때 둘 다 날아가니까요.

그리고 '대상에서 백업된 파일 보존(incremental backup)' 옵션을 켜면 한 번 삭제된 파일도 백업 대상 안에는 지속적으로 남아있게 됩니다.


전통적인 의미의 백업은 아니지만 동기화(synchronization) 기능을 백업 목적으로 사용할 수도 있습니다.

클라우드 스테이션으로 PC의 특정 폴더와 NAS의 폴더를 동기화해놓으면 동일한 데이터가 물리적으로 PC와 NAS에 항상 함께 존재하기 때문에

만약 PC나 NAS 둘 중 하나의 HDD가 고장나더라도 한쪽 데이터는 온전하게 남아있습니다.


동기화는 전통적인 주기적 백업처럼 사용자 실수로 삭제된 파일을 되살리거나 과거 상태로 되돌아가는 것은 불가능하지만,

동기화만의 '실시간 업데이트'라는 장점이 있습니다.

동기화된 아무 PC에서나 편집하던 데이터의 최신 버전을 작업할 수 있고, 여러 사람이 데이터를 공유하기도 좋습니다.


저는 음악 파일 컬렉션과 제가 만든 문서, 사진, 동영상 모두를 제 데스크탑 PC와 동기화해놓으려고 하는데,

이렇게 NAS 안의 임의의 폴더를 동기화할 수 있는 기능은 클라우드 스테이션 2.0 패키지부터 제대로 지원될 거라고 합니다.

현재 클라우드 스테이션 2.0이 베타 테스트 중인데, 정식 버전 릴리즈를 기다려보도록 하지요.

일단 지금은 NAS의 기본 백업 및 복원 메뉴를 이용해서

제가 만든 문서, 사진, 동영상만 매주 일요일 새벽 2시에 주기적으로 NAS의 반대쪽 HDD에 백업하도록 설정해놨습니다.


데이터 보호를 위해서는 백업도 중요하지만 하드 디스크에 문제의 징후는 없는지 잘 감시하는 것도 중요합니다.

저장소 관리자 → HDD 관리 탭에 가면 S.M.A.R.T.라는 하드 디스크의 상태 진단 기능이 있습니다.

가끔 S.M.A.R.T. 정보도 확인해보시고, 확장 테스트도 돌려보시기 바랍니다.

S.M.A.R.T. 확장 테스트는 시간이 꽤 걸리니까 NAS를 안 쓸만한 시간에 테스트 스케줄을 예약해두는 것도 괜찮습니다.


인터넷 설정


대략 이정도까지 설정하고 나면 집 안에서 NAS를 사용할 준비는 다 됐다고 보입니다.
그런데 이렇게 훌륭한 파일 서버를 구축해놓고 집 안에서만 쓴다면 너무 아깝지 않을까요^^?

집 밖에서 스마트폰으로, 그리고 가까운 친지들도 우리집의 미디어 서버 컨텐츠를 이용하게 하고 싶은데 말이죠.


이런 인터넷 사용 설정을 자동으로 한방에 해결할 수 있는 도구가 DSM 바탕화면의 'EZ-Internet'인 듯한데...

안타깝게도 이 도구는 저희집 ipTIME 공유기를 지원하지 않기 때문에 못 씁니다-_-

그리고 QuickConnect라고 복잡한 세팅 없이 인터넷 연결을 할 수 있는 방법도 있기는 한데...

이건 DS file이나 클라우드 스테이션 같은 일부 서비스밖에 지원이 안 됩니다.


결국 NAS를 인터넷에서 제대로 쓰려면 다음과 같은 꽤나 복잡한 방법으로 직접 수동 설정해주는 것이 정석입니다.


1) DMZ / 포트 포워딩


IP 공유기의 역할은 집안의 수많은 기기들이 외부에서는 하나의 IP로 보이도록 묶는 것이라서...

인터넷에서 NAS에 접속하려면 IP 공유기에 연결된 여러 기기들 중 바로 NAS에 해당 외부 접속이 연결되도록 세팅해줘야 합니다.

그 수단이 DMZ나 포트 포워딩인데요, NAS에서 설정하는 것이 아니고 IP 공유기에서 하는 세팅입니다.


우선은 로컬 네트워크 내에서 NAS의 IP 주소를 수동으로 고정시키도록 하죠.

고정시키지 않을 경우 만에 하나 공유기가 NAS의 내부 IP를 바꿔버리는 일이 발생할 수도 있거든요.

저희 집에는 ipTIME T3008 유선 공유기에 NAS가 물려있는데요.

ipTIME의 고급 설정 → 네트워크 관리 → 내부 네트워크 설정에서 NAS의 내부 IP 주소를 192.168.0.200으로 수동 할당했습니다.

이렇게 안 하고 NAS의 제어판 → 네트워크 → 네트워크 인터페이스 탭에서 수동 할당하는 것도 가능합니다.

DMZ는 NAS의 모든 포트가 인터넷에 그대로 노출되게 해주는 방식이고, 포트 포워딩은 특정 포트만을 전달해 주고 다른 포트는 막아놓습니다.

포트 포워딩은 아래처럼 포트 번호를 일일이 다 적어줘야 하는 불편은 있지만, DMZ보다 외부 해킹으로부터 좀더 안전합니다.

아래가 기본적인 포트 포워딩 리스트고요. 메일 서버를 사용하든지 '응용 프로그램 포털'을 사용하면 그 포트들도 추가해주셔야 합니다.

저는 하필 ipTIME 공유기를 사용하기 때문에 직접 입력해야 했지만...

외국 유명 메이커의 공유기라면 DSM의 'EZ-Internet'이나 제어판 → 라우터 구성 메뉴에서 자동으로 포트 포워딩을 세팅해줍니다.

요기까지 설정이 성공했을 경우 웹 브라우저에서 공유기의 외부 IP주소를 치면 NAS가 연결되어 DSM 웹매니저의 로그인 화면이 뜹니다.

외부 IP주소라는 건 192.168.0.1 이것 말고, 아래 사진에서 제가 모자이크 쳐놓은 게이트웨이 정보의 '외부 주소' 부분에 보이는 숫자를 말합니다.


2) DDNS 설정


DMZ나 포트 포워딩을 설정하면 이제 집 외부에서도 (공유기의) 외부 IP 주소를 사용해서 NAS에 접속할 수 있습니다.

문제는 이 IP주소가 외우기도 힘들고, 영원하지도 않다는 것이죠.

보통은 DHCP가 적용되기 때문에 공유기가 일정 시간 꺼졌다가 켜지든지 하면 IP 주소가 바뀝니다.


이 문제를 해결하는 것이 DDNS(Dynamic Domain Name System)입니다.

외우기도 어려운 IP 주소 대신 '(원하는 이름).synology.me' 같은 알기 쉬운 도메인 네임을 쓸 수 있게 해주고,

IP주소가 바뀌거나 해도 알아서 잘 연결해 줍니다.

Synology NAS에서 DDNS를 등록하는 것은 어렵지 않습니다.

DSM의 제어판 → DDNS에서 서비스 제공 업체를 Synology로 놓고 '지금 등록'을 눌러☞Synology의 MyDS 센터☜에 가입하고,

'(원하는 이름).synology.me'를 정해서 입력하면 끝입니다.

위 사진처럼 상태 '정상'이라고 뜨면 성공이고,

그러면 이제 웹 브라우저나 DS File 같은 앱에서 '(내가 정한 이름).synology.me' 주소로 내 NAS에 접속할 수 있습니다.


3) 점보 프레임 설정


이건 외부 인터넷이 아니고 내부 네트워크의 속도를 빠르게 하기 위한 세팅인데요,

기가비트 네트워크에서는 NAS의 이더넷 프레임 오버헤드를 줄여 전송속도를 향상시킬 수 있도록 '점보 프레임'이라는 것을 사용할 수 있습니다.

1Gbps 기가비트 네트워크여야 하고, 공유기 또는 허브도 점보 프레임을 지원해야 하고, NAS와 PC 모두 점보 프레임을 활성화시켜야 하며,

NAS와 PC의 MTU(maximum transmission unit) 값을 동일하게 세팅해야 합니다.

NAS의 점보 프레임 설정은 DSM 제어판 → 네트워크 → 네트워크 인터페이스 탭에서 하면 되고,

PC의 설정은 윈도우의 제어판 → 장치 관리자 → 네트워크 어댑터에서 실제 장치 이름 더블 클릭 → 고급 탭에서 할 수 있습니다.

제 경우 IP 공유기는 12KB MTU까지 지원한다고 하지만, PC의 랜 카드가 MTU를 7KB까지만 지원하기 때문에 7KB로 맞췄습니다.




대충 이정도까지 세팅해놓으면 NAS의 기본적인 셋업은 일단락되는 것 같습니다.

그런데 제가 설명하지 않고 넘어간 옵션들도 많고, 각 패키지와 스마트폰 앱 별 세팅까지 들어가면 더더욱 복잡합니다.

Synology에서 쉽게 만들려고 노력한 모습은 보이지만, 컴퓨터 구조와 네트워크를 잘 모르는 사람이 쓰기에는 여전히 어려운 부분들이 있네요.

쬐끄만 놈이 쉽지 않아요^^;;


처음으로 NAS라는 물건을 접해보니 상상 이상으로 편리한 기능에도 놀랐지만,

CPU 성능이 2,3년 전의 스마트폰 수준밖에 안 된다는 점에서 좀 안 좋은 방향으로도 또 놀랐습니다.

그래도 저는 아직까지 전반적으로는 DS213이라는 NAS에 대해 만족 중입니다.

요즘은 NAS 세팅도 이것저것 건드리고 데이터들도 체계적, 구조적으로 정리하려니 시간이 참 잘 가고 있네요^^;;


저희집은 이제 동영상 출력 장치만 업그레이드하면 거의 완벽한 홈 미디어 네트워크 환경이 완성될 텐데...
그게 언제가 될는지는 모르겠습니다^^


홈 미디어 네트워크 보완 계획 관련 글 바로 가기

 
여러분의 추천이 제겐 힘이 됩니다. 내용이 도움 되셨다면 아래 추천 버튼 한 방 꾹 눌러주세요^^


2013. 1. 14. 23:21

홈 미디어 네트워크 보완 계획 #3 - NAS 선택과 구입

저의 홈 미디어 네트워크 보완 계획의 화룡점정으로서 NAS(Network Attached Storage)를 드디어 구입했습니다.
이제 영화나 음악을 감상하기 위해 귀찮게 PC를 켤 필요가 없게 되었고,
언제 어디서나 친지들과 사진 등을 공유할 수 있게 됐습니다.

혹시 NAS 구입을 고려중이신 분들께 참고 되실까 해서 제 선택과 구입 과정을 정리해봤습니다.
원래는 이번 글에서 NAS 세팅까지 한꺼번에 다루려고 했으나 구입만으로도 참 구구절절 할 말이 많다 보니^^;; 세팅 과정은 따로 썼습니다.

혹시라도 NAS를 잘 모르시는 분을 위해 설명을 좀 드리자면요.
Network Attached Storage, 번역하면 '네트워크 접속 저장장치'라는 명칭만 들어서는 그냥 외장하드 케이스 같은 것을 상상하실지도 모르나,
네트워크를 통해 SAMBA, AFP, NFS, FTP, WebDAV 따위의 여러가지 프로토콜을 통한 파일 공유와
DLNA, 웹, 토런트, 블로그, 클라우드, 메일, 아이튠즈, 타임머신, CCTV, 프린터 서버 등 각종 서비스를 제공할 수 있는 다재다능한 서버입니다.
PC보다 전력도 적게 소모하고 OS도 안정적이고...
CPU 성능은 좀 뒤쳐지지만 서버로서의 기능 면에서는 PC보다 우월한 스토리지 서버랍니다.

제가 NAS를 사용하고자 하는 주된 용도는 어디까지나 홈 미디어 네트워크의 서버입니다.
미디어 서버 용도 외에 개인 데이터 백업과 친지들과의 미디어 공유, 클라우드 동기화 서버 정도의 용도만 생각하고 있고,
동시 접속자 수도 5명을 넘지 않을 것으로 예상합니다.
웹 서버 같은 걸 돌리고 싶은 마음은 추호도 없으며^^
공과 사를 철저히 구분하는 회사의 정책 상, 자의 반 타의 반으로 업무용으로는 쓰지 못하고 오로지 개인용으로만 사용할 예정입니다.


NAS 메이커 선택

저와 같은 용도로는 그냥저냥 저렴한 ipTIME NAS 같은 제품을 사용해도 무방할 것 같습니다만...
저장장치의 특성 상 그 안에 담길 정보의 가치를 고려한다면 가격보다 안정성과 메이커의 지속적인 지원을 우선해야 하지 않을까요?
제가 ipTIME 유선/무선 공유기 제품을 다년간 써보고 몇몇 제품을 반품해 본 경험에서 우러난 결론은
ipTIME 브랜드의 EFM 네트웍스라는 회사는 가격 대 성능 비는 훌륭하지만 안정성과 신뢰성은 영 믿음직스럽지 못하다는 겁니다^^;;

정보 수집 결과 Synology(시놀로지)와 QNAP(큐냅) 사의 제품들이 편의성과 신뢰성이 독보적이라더군요.
이들 메이커는 최저가형 제품만 해도 ipTIME보다 2배는 비싸지만...
안정성과 풍부한 전용 소프트웨어들이 돈값을 하며, 최저가형 제품만 해도 저의 용도로는 충분히 쓸만하다고들 합니다.
그리고 이런 정보기기들은 세팅하다 보면 막히는 경우나 궁금한 점이 분명히 생기는데...
이들 두 메이커는 그럴 때 정보를 얻고 질문할 만한 국내외 사용자 커뮤니티가 잘 갖춰져 있습니다.

그런데 둘 중에도 Synology 쪽이 중저가형 컨슈머 제품 라인업이 더 좋더군요.

Synology는 최저가형 제품이 매년 모델 체인지가 되는 반면, QNAP의 동급 제품은 2년 전에 발매된 게 마지막입니다.
그리고 중급 제품은 Synology 제품이 QNAP보다 국내 가격이 더 싸고요.
저는 아무래도 중저가형 제품에 관심이 많은 관계로 QNAP이 아닌 Synology를 선택했습니다.


하드 디스크 베이 수 결정

제 하드 디스크 사용 패턴은 동영상 조금 모으고, 음악 조금 모으고, 사진 조금 찍으며, 딱히 하드 용량을 많이 잡아먹는 작업은 안 하거든요.
그래도 제가 사용하는 데이터 용량은 지속적으로 꾸준히 늘고 있습니다.
현재 제 PC 저장 용량의 총합이 1.8TB쯤 되는데, 요즘 들어 용량이 간당간당해져서 자주 디스크 정리를 하는 중입니다.

지속적으로 늘어나는 이런 용량을 감당할 수 있는 건 그만큼 꾸준히 더 큰 용량의 하드 디스크가 발매되고 꾸준히 저렴해지고 있는 덕분입니다.
하드 디스크의 지난 20년의 역사를 돌아보면 HDD의 용량은 대략 4년에 10배 꼴로 계속 증가해왔네요.
요즘 들어 이 증가세가 좀 주춤한데... 기술적인 벽에 부딪친 건지, 메이커들 간의 담합 때문인지는 잘 모르겠습니다.
현재는 하드 디스크의 용량 당 가격 비로 봤을 때 2TB~3TB 제품이 가장 경제적입니다.

Synology NAS의 현행 기종에 장착할 수 있는 하드 디스크의 용량은 최대 4TB로 제한되는데...
Synology의 중저가형 NAS는 하드 디스크 베이의 개수에 따라 1베이, 2 베이, 4베이 제품이 있습니다.
1 베이 제품은 2 베이 제품보다 한 20%밖에 안 싼 반면, 4 베이 제품은 2 베이 제품의 1.8배쯤... 거의 두 배 비쌉니다.

이런 제반 상황을 바탕으로 판단할 때, 1 베이 제품은 가격 대 성능 비로 보나 용량 한계로 보나 불합격!
4 베이짜리는 비싼 돈 주고 들여놓는다고 해도 향후 몇 년간은 그걸 다 채우지 못할 것 같습니다.
제 사용 패턴과 NAS 가격, 그리고 하드 디스크 값을 고려하면 제게는 2 베이 제품이 딱 맞는 것 같습니다.

당장은 2베이짜리 NAS에 2~3TB 정도 되는 하드디스크 하나 달아서 쓰고,
몇 년 후에 4TB 하드 디스크가 현재의 2TB 제품 가격 정도인 10만원대로 떨어지면 4TB짜리 하나 추가 구매해서 2개의 베이를 채워 쓰다가...
그 후에 또 용량이 부족하게 되면 USB 외장하드를 추가하든지, 아니면 4TB 이상을 지원하고 성능도 더 우수한 미래의 NAS로 갈아타면 되겠죠.
저처럼 딱히 하드 용량을 많이 필요로 하지 않는 사용자의 첫번째 개인용 NAS로는 역시 2 베이짜리가 최선의 선택이 아닐까 추천해 봅니다.

한 가지 우려되는 점은 NAS 영입으로 데이터 저장과 사용이 수월해짐으로 인해 데이터 사용량이 늘어날 것은 불 보듯 뻔한데...
그로 인해 예상보다 훨씬 빨리 2 베이짜리 NAS가 꽉 차버리면 어쩔까 하는 것입니다.
뭐, 그런 사태가 일어나지 않도록 용량을 아껴 써야겠죠^^;;


NAS 등급 선택

Synology는 NAS 전문 메이커답게 다양한 등급의 제품 라인업을 갖추고 있는데, 모델명만 봐도 딱 한 눈에 알아보기 쉽습니다.

사진의 제품이 Synology의 2 베이짜리 기본형 모델 DS213입니다만...

DS는 DiskStation의 약자이고, 앞자리 숫자 '2'는 장착 가능한 하드 디스크 수를 나타냅니다.
그 뒤 숫자 '13'이 2013년형임을 나타내고요.
DS213하고 딱 끝나버리면 기본형인데, 그 뒤에 j(아마도 junior의 머릿글자)가 붙으면 저가 보급형, +가 붙으면 고급형입니다.
DS713+는 최고급형 2 베이 제품인데, 왜 '7'로 시작하냐면 익스팬션 유닛을 붙여 최대 7개의 하드로 RAID 볼륨을 구성할 수 있기 때문입니다.

Synology의 '11년 모델과 '12년 모델은 서로 거의 스펙 차이가 나지 않는 반면에,

'12년 모델과 '13년 모델의 스펙은 거의 한 등급만큼의 차이가 납니다.
아래 표에 나타낸 것처럼 '13년형 제품들의 반 정도가 한 등급 위의 '12년형 제품과 CPU와 RAM 스펙이 동일합니다.
아마도 기존 상위 모델의 메인보드와 부품을 재활용함으로써 하드웨어 연구개발비를 절약하려는 제품전략이 아닐까 생각되는데요.

'13년 모델

'12년 모델

CPU RAM

DS213air

DS212 Marvell 88F6282 1.6GHz

16-bit DDR3 256MB

DS213

DS212+

Marvell 88F6282 2.0GHz

16-bit DDR3 512MB

DS413j

DS412

Marvell 88F6282 1.6GHz

16-bit DDR3 512MB
DS713+ DS1512+, DS1812+

Intel Atom D2700 2.13GHz

64-bit DDR3 1GB


놀라운 건 기본형 DS213이 eSATA 포트가 없다는 단 한가지 외에는 10만원 더 비싼 '12년 고급형 DS212+와 완전히 동일하다는 것입니다.
(계정 개수나 프로세스 개수 제한 같은 소프트웨어적인 제약도 좀 다르긴 합니다만...)
DS213j는 DS212와 동일할 거라는 제 예상과는 달리 Marvell Armada370 1.2GHz CPU에 16-bit DDR3 512MB를 장착했습니다.
용어가 복잡하지만 한 마디로 정리하자면 DS213j는 DS212나 DS213air보다도 성능이 오히려 뛰어납니다! 
결론적으로 가급적 '12년 이전 모델보다는 '13년 모델을 구입하는 게 좋겠지요.

후회 없는 선택을 위해 한 번 Synology 2 베이 모델들의 가격 대비 효용성을 분석해봤습니다.
아래 그래프는 DS212j, DS213, DS213+, DS713+의 '13년 1월 중순 현재 에이블스토어 정품 기준 네이버 최저가를 나타냅니다.
DS213j는 아직 발매되지 않았으니 DS212j의 발매 초기 가격인 28만원 정도로 가정해봅니다.

'효용(Utility)'이라는 개념은 지극히 개인적인 것이고, 사실 정량적으로 표현하기가 쉽지 않습니다.
그래도 일단 대충 속도, 편의성, 확장성, 만듦새(build quality)의 네 항목에 대해 제 용도와 취향에 기반한 주관적인 점수를 매기고 합산해서
기본형 DS213을 100점이라고 쳤을 때 아래와 같이 각 기종의 효용성 점수 비교 그래프를 얻었습니다.
이건 어디까지나 제 주관적 평가이고, 제가 NAS 초보라서 중요한 뭔가를 빼먹었을지도 모른다는 걸 감안해 주시길^^;;

DS213j는 91점이나 나오더군요. 예상보다 너무 높은걸요^^;;

DS213j가 DS212j 대비 속도가 비약적으로 향상된 관계로 DS212j는 점수가 별로 안 좋네요. WOL (wake on LAN) 기능도 없고...

DS213의 가격을 '1'로 놓고 각 제품의 상대 가격으로 효용성을 나누면 아래 그래프처럼 가격 대비 효용성이 나옵니다.
DS213j가 1등이네요.
등급이 나뉘는 재화들의 일반적인 경향과 동일하게, 가격 대 효용 비는 저가형 제품일수록 좋고 고급 제품일수록 나쁘다는 걸 알 수 있습니다.
파란 추세선이 그 경향을 나타내고 있는데요.
추세선보다 아래쪽에 위치한 DS212j와 DS213은 그런 경향까지 감안하더라도 가격 대비 효용성이 별로 좋지 않다는 것을 알 수 있습니다.

저의 용도를 생각해도, 가격 대 성능 비를 봐도, 정말 DS213j가 딱이라는 건 알겠는데요.
DS213(작년 8월)이나 DS213+(8월), DS713+(10월), 그리고 4 베이 최저가형인 DS413j(8월)도 모두 작년 하반기에 발매되었는데...
DS213j만 2013년 5월에나 발매됩니다.

그래서 DS213j가 발매되기만을 학수고대하며 참고 기다리다가... 다나와 장터에서 30만원에 파는 DS213 중고를 발견한 겁니다.

DS213 가격이 30만원이라면 가격 대비 효용성에서 DS213j도 능가하는 거거들랑요.
냉큼 데려왔죠^^
가격 대 성능 비 분석까지 다 해서 DS213j로 결정해놓고 결국은 딴 걸 사버렸네요^^;;
한 가지 아쉬운 건 수입원이 에이블스토어가 아니라 데카아이앤에스라는 점인데...
고객지원이 안 좋다는 평판이지만, 그래도 공식 수입업체이긴 합니다.

DS213을 받아보니 오돌토돌 무광 검정 케이스는 싼티 나는 j모델의 번떡번떡 하얀 케이스에 비해 나름 고급스럽더군요.
집에 데스크탑 PC와 모니터도 검정색이라 서로 잘 어울리고... 하드 디스크 트레이도 원터치로 넣고 뺄 수 있어 좋습니다.
그리고 저가형 모델엔 없는 SD카드 슬롯도 있고, SD 카드에서 NAS로 자동 카피해주는 기능은 사진 자주 찍는 제겐 꽤 편리한 기능입니다.



하드 디스크 드라이브 선택

작년에 웨스턴 디지털(WD)에서 NAS 전용이라는 타이틀을 달고 신제품 하드 디스크 Red 시리즈가 발매됐습니다.
WD Red는 NAS 환경을 고려하여 저전력/저소음/저발열에 안정적인 RAID 동작, 하루종일 구동하는 환경에 적합한 내구성을 가진다고 합니다.
저는 뭐 어차피 2 베이 NAS니까 RAID 따위는 별 관심 없지만... '매일 24시간 구동 환경의 내구성' 이게 맘에 확 와닿더군요.

원래 데스크탑 PC라는 건 가정에서 하루종일 켜놓지 않잖아요. 전기를 많이 먹으니까...

아마도 데스크탑 PC용 하드 디스크도 계속 돌아가지 않고 상당기간 쉬는 이런 사용환경에 맞게 만들어졌겠죠.
그렇지만 NAS는 아무래도 PC보다는 더 오랜 시간 지속적으로 켜져 있게 되니 HDD 수명이 그만큼 짧아지고,
장시간 사용으로 인한 발열 등도 데이터 안전성에 더더욱 안 좋은 영향을 끼치겠죠.
그렇기 때문에 NAS에 들어갈 하드 디스크는 일반 데스크탑용 HDD보다는 더 내구성 있는 WD Red가 좋지 않을까 하고 마음이 기울어졌습니다.

그런데 이 기울어지는 마음을 다시 확 일으켜세우는 요소가 한 가지 있으니... WD Red는 비쌉니다.
2TB짜리 WD Green 하드 디스크(WD20EZRX)가 11만원인데, WD Red(WD20EFRX)는 17만원입니다. 16만원짜리 Green 3TB보다도 비싸요.
비싸도 너~~~~무 비싸!
한 번 해외 가격을 검색해봤더니 2TB짜리 WD Green이 $100, WD Red가 $110이더군요. 딱 10불 차이밖에 안 납니다.
WD Red 발매 초기에는 외국에서도 꽤 비쌌던 걸로 기억하는데... 외국에서 $110까지 내리는 동안 국내가는 그대로 유지된 듯합니다.

저장장치라는 특성 상 그 안에 담길 정보의 가치를 고려한다면 가격보다 안정성이 우선돼야 하는 건 맞습니다.
하지만 해외에서 12만원도 안 하는 WD Red를 17만원 넘게 주고 사는 돈지*은 도저히 못 하겠더군요.
그냥 싼 놈 사고, 중요한 데이터는 좀더 자주 백업을 해주죠 뭐.

결국 제가 구입한 것은 16만원짜리 3TB WD Green WD30EZRX입니다.
NAS 영입으로 데이터 저장이 수월해짐으로 인해 하드 사용량도 더 늘어날 것 같아 2TB는 좀 불안하더라고요.
그리고 또 4TB HDD x 2 베이 = 8TB까지 가능한 NAS에 일단 2TB 하드를 달아버리면 최대 용량이 6TB로 제한된다는 것이 꺼림찍하기도 하고요.

WD30EZRX에도 플래터 4장짜리 구형 WD30EZRX-00MMMB0가 있고, 3장짜리 신형 WD30EZRX-00DC0B0이 있는데, 신형이 왔네요.
같은 용량이면 플래터 적은 게 좋죠. 기록밀도가 높으니 속도도 더 빠르고, 발열도 더 적고^^

WD Red보다는 저렴하긴 하나 WD Green도 과히 싼 가격은 아닙니다.

하드 디스크 시세를 아시는 분이라면 2TB짜리 WD Green의 가격이 대략 2년전 시세와 거의 같다는 걸 아실 겁니다.
IT 제품으로서 2년 전 가격과 동일하다는 것은 상당히 이례적인 일이죠(만약 아이폰 4를 지금 아이폰 5 가격에 판다면?).
이런 현상의 원인은 하드 디스크 가격을 몇 배로 폭등시켰던 '11년 여름의 태국 홍수로 인한 하드 디스크 대란,
그리고 같은 해 WD의 히타치 인수와 시게이트의 삼성 인수로 인해 형성된 완전 독과점 시장 때문입니다.
폭등 후 지속적으로 하락하던 가격이 대란 전 가격에 가까워지자 몇 달째 딱 멈춰버린 현상은 독과점 담합 외에는 설명할 길이 없을 듯합니다.

그리고 웨스턴 디지털 하드 디스크 구입하실 때 주의하실 점이 있는데,
최저가로 검색을 하면 '명 정보기술'에서 수입한 Recertified 혹은 Refurbished, 즉 재생하드가 맨 위에 뜨게 됩니다.
누누이 말씀 드리지만 저장장치는 그 안에 담길 데이터의 가치를 고려해서 가격보다는 안정성을 우선해야 되죠.
신제품과 가격 차이도 만원 정도밖에 안 나는데, 만원 아끼겠다고 보증기간도 더 짧은 재생하드를 구입하는 건 좀 아닌 듯합니다.
그리고 WD Green은 헤드 파킹 문제와 RAID 오류에 대해 말이 많습니다만...
저는 뭐 RAID는 안 할 것이고 헤드 파킹 문제는 해결책이 잘 알려져 있으니 괜찮을 듯합니다.

왜 비슷한 가격의 시게이트 ST3000DM001 대신에 굳이 저런 문제점들이 도사리고 있는 WD Green을 선택했냐면...
WD Green은 5400RPM의 저속이라서 전력소모, 진동, 발열 등이 덜할 것으로 예상됐기 때문입니다.
시게이트 제품은 7200RPM이라 데이터 읽고쓰기 속도는 빠르지만, 어차피 NAS와 네트워크의 속도 때문에 제 속도를 다 못 낼 테니까요.
오래 켜두어야 할 NAS용 HDD는 속도보다는 역시 전력이나 발열 같은 특성들이 중요하지 않을까요?


NAS 한 달 전기요금은 얼마나?

초기 구입 비용은 그렇다 치고, NAS의 유지비가 궁금해졌습니다.
유지비라고 하면 딴 게 아니고 전기요금이죠 뭐.
인터넷이야 다들 정액제 쓰실 테니 NAS 추가된다고 인터넷 회선 비용을 더 내는 건 아니니까요.
NAS가 PC보다 전기를 덜 먹는다는 건 알겠는데, 그래도 하루 종일 켜놓을 거라서 무시할 정도는 아닐 것 같습니다.

DS213의 스펙을 보면 동작 시에 18.48W, HDD 절전 모드 시에 8.28W의 전력을 소모한다고 나옵니다.
하루 12시간 동작, 12시간 절전한다고 가정하면 18.48 x 12 + 8.28 x 12 = 321.12, 하루에 대략 321Wh의 전력량을 소비합니다.
여기에 30을 곱하면 321.12 x 30 =  9633.6 한 달 전력량은 대략 9.6kWh가 나옵니다.

요즘은 뭐 자고 일어나면 전기요금이 오르는데, '13년 1월 현재 kWh당 요금 단가는 아래 표의 두번째 열과 같습니다.
누진요금이 적용되기 때문에 전기를 많이 쓰는 집은 적게 쓰는 집보다 최대 10배 넘게 비싸다는 걸 알 수 있고요.
여기에 10%의 부가세와 3.7%의 전력산업기반기금이 붙은 세번째 열의 수치가 실질적인 kWh 당 단가입니다.

전력사용 구간

전력량 요금(원/kWh)

세금 포함 요금(원/kWh)

NAS 전기 요금(9.6kWh)

100kWh 이하 사용 59.10 67.20647원
101kWh ~ 200kWh 사용 122.60139.40

1343원

201kWh ~ 300kWh 사용183.00 208.07

2004원

301kWh ~ 400kWh 사용

273.20 310.63

2992원

401kWh ~ 500kWh 사용

406.70 462.42

4455원

500kWh 초과 사용

690.80 785.447567원


NAS의 9.6kWh를 요금으로 환산한 것이 맨 오른쪽 열입니다만
101~200kWh 쓰는 집은 1300원 정도, 201~300kWh인 집은 2000원 정도, 301~400kWh인 집은 3000원 정도 나온다는 계산이네요.
한 달 유지비가 이 정도면 별로 부담 되는 수준은 아니죠^^?



지난 번에 마음 흔들리지 않고 DS213j를 쭉 기다리겠노라고 글을 쓴 지 한 달이 채 안 되어

지름신이 훌쩍 강림하사 한 등급 위의 DS213을 질러버리게 됐습니다.
지름의 결과에 대해서는 후회 없고, 나름 만족하고 있답니다^^

그럼 다음편 NAS 세팅 과정 글로 이어집니다~


홈 미디어 네트워크 보완 계획 관련 글 바로 가기

 
여러분의 추천이 제겐 힘이 됩니다. 내용이 도움 되셨다면 아래 추천 버튼 한 방 꾹 눌러주세요^^

2012. 10. 24. 09:08

홈 미디어 네트워크 보완 계획

요즘은 거의 모든 가정에서 Wi-Fi 무선 IP 공유기를 사용하고 있고,
PC, 스마트폰, 태블릿, TV, 게임기, 셋탑박스, 카메라 등 유무선 네트워크에 연결하여 활용할 수 있는 가전제품들도 많아졌습니다.

저는 PC에 들어있는 미디어 컨텐츠를 Wi-Fi를 통해 스마트폰으로 감상한다든지 하는 간단한 형태로 홈 미디어 네트워크를 활용하고 있는데요.
아마도 많은 분들이 비슷하실 겁니다.

그런데 제가 이번 12월에 이사를 갈 예정인데...
새 집에서는 이보다 좀더 체계적이고, 더 편리하고, 더 빵빵한^^ 홈 미디어 네트워크를 구축하고 싶다는 생각이 들었습니다. 

  1. 음악, 동영상, TV, 사진 컨텐츠를 집안의 모든 기기들끼리, 또한 인터넷을 통해 어디서나 공유할 수 있고,
  2. 부팅이나 번거로운 세팅 과정 따위 필요 없이 바로바로 감상할 수 있고,
  3. 가급적이면 좀더 큰 화면에 빵빵한 사운드로 볼 수 있으면 좋겠지만...
  4. 위 조건을 만족하면서도 (기존 인프라를 최대로 활용해서) 추가 투자 금액은 좀 적었으면 합니다^^

그래서 이런 홈 미디어 네트워크를 구축하기 위해 나름 공부도 좀 해보고, 많은 정보를 수집했습니다.

DLNA 3-Box Model

홈 미디어 네트워크에 대해 전세계적인 표준이 이미 존재합니다.
DLNA(Digital Living Network Alliance)라고 들어보셨나 모르겠네요.

전세계 표준이라고는 하지만 DLNA 인증 받은 기기들도 호환성이 제멋대로라서 솔직히 아직은 제대로 쓰기가 좀 그렇습니다^^

호환성이 특히 안 맞는 부분이 뭐냐면...

  • 파일 이름이 한글로 되어 있을 경우 인식과 표시 문제
  • 각종 코덱과 컨테이너 포맷 호환성
  • 자막 지원이 안 되는 문제. 지원이 되더라도 SMI 형식은 안 되는 문제
  • 빨리 돌리기, 되감기가 안 되는 등 동영상 인덱싱 관련 문제

주로 동영상 관련된 부분, 특히 한국 환경에서 중요한 한글과 자막 지원이 말썽인데요.
그 이유는 DLNA 표준 문서에 외국어나 자막에 대한 규정이 아예 언급조차 되지 않기 때문이라고 합니다.
2012년 현재 한국에서 DLNA를 통해 동영상을 본다는 것은... 많은 기대는 하지 않으시는 게 좋습니다^^

이렇듯 DLNA 표준 자체는 아직 문제가 많지만,
그래도 개념은 잘 정립되어 있기 때문에 저희 집 홈 미디어 네트워크를 구상하면서 DLNA의 개념을 많이 참고 했습니다.

DLNA에서 정의된 기본적인 홈 네트워크 모델은 미디어 컨텐츠가 저장된 서버(Digital Media Server, DMS)가 유선 또는 무선 네트워크를 통해 미디어 데이터를 보내고, 미디어 플레이어(Digital Media Player, DMP)가 그 데이터를 받아서 플레이하는 구성입니다.

그림에 2개의 박스가 있다고 해서 투 박스 모델(2-box model)이라고 부릅니다.
플레이어는 미디어의 재생뿐만 아니라 서버 안의 미디어 파일들을 브라우징하고 선택하는 기능을 갖고 있고,
서버는 플레이어가 파일들을 브라우징할 수 있는 서비스를 제공하고, 저장된 미디어 컨텐츠를 플레이어에 스트리밍해주는 기능을 갖고 있죠.
PC(서버)에 저장된 미디어를 스트리밍하여 스마트폰 등(플레이어)에서 감상하는 것도 투 박스 모델입니다.

그런데 DLNA 1.5에서 추가된 아래 그림 같은 쓰리 박스 모델(3-box model)이 더 편리하고 강력한... 좀더 진화된 네트워크라고 생각됩니다.
서버는 컨텐츠 데이터를 제공하고, 컨트롤러(Mobile Digital Media Controller, M-DMC)가 서버의 컨텐츠를 브라우즈, 선택, 컨트롤하며,
렌더러(Digital Media Renderer, DMR)가 미디어를 재생합니다.

투 박스 모델에서는 출력 장치를 플레이어(DMP)라 하고, 쓰리 박스 모델에서는 렌더러(DMR)라고 하는데, 
이들 사이의 차이점은 자기가 재생 조작을 하느냐(플레이어), 컨트롤러의 조작을 받느냐(렌더러)입니다.

그러면 왜 투 박스 모델보다 쓰리 박스 모델이 더 나은 네트워크라는 걸까요?

이 질문에 대해 다음과 같이 반문해 보죠.
애시당초 홈 미디어 네트워크라는 건 왜 구축하려고 할까요?
그냥 스마트폰 메모리에 동영상 담아다가 스마트폰으로 컨트롤하면서 스마트폰 화면으로 봐도 되잖아요?

그야... 스마트폰은 메모리가 작아서 미디어를 많이 넣지도 못하고... 화면 크기나 음질도 별로잖아요.
스마트폰보다는 PC나 NAS처럼 용량이 큰 기기들이 더 많은 미디어 컨텐츠 데이터를 저장할 수 있기 때문에 좀더 유능한 서버가 될 수 있고,
스마트폰보다는 홈씨어터 같은 AV시스템이 더 큰 화면과 빵빵한 다채널 사운드를 재생할 수 있기 때문에 좀더 유능한 렌더러가 될 수 있습니다.
반면에 스마트폰은 손에 쥐기도 편하고 모니터와 터치 스크린, 키보드를 지원하니 다른 기기들에 비해 좀더 유능한 컨트롤러이긴 합니다.

원론적으로 말하자면 역할을 세분화하여 각 역할에 전문적으로 특화된 기기들이 네트워크에 더 많이 참여할수록,
그리고 이들이 더욱 유기적으로 연결되어 시너지를 발휘할수록 네트워크의 능력과 가치는 올라가는 것입니다.
미디어 네트워크는 아직은 4개 이상의 기기가 유기적으로 연결된 모델을 구상하기는 어렵고, 3개 정도면 충분할 듯합니다.

예를 들어 공부방 PC(서버)에 저장된 음악을 소파에 누워 스마트폰(컨트롤러)으로 조작하며 거실의 AV 시스템(렌더러)으로 듣는 식으로
수많은 컨텐츠를 편리하게 골라 빵빵하게 즐길 수 있는 네트워크, 얼마나 좋나요^^?
그래서 저의 홈 미디어 네트워크 구현 목표는 '쓰리 박스 모델'로 결정했습니다^^


오디오 쓰리 박스 모델 보완 계획

음향기기 쪽에는 이미 DLNA 쓰리 박스 모델이 실제로 구현된 제품이 몇 년 전부터 나오기 시작했습니다.
그런데 AV기기라는 것들은 워낙에 가격이 후덜덜해서... 네트워크 오디오 렌더러 전용기기들이 수십만원에서 수백만원 가량 합니다.
그나마 가장 저렴한 제품이 로지텍 Squeezebox Touch라는 제품인데, 국내에 발매도 안 되고 단종되었습니다.

그런 와중에 제 눈에 띈 제품이 바로 위 사진의 야마하 RX-V473입니다.
이것은 네트워크 오디오 렌더러 전용기기는 아니고 AV 리시버에 네트워크 기능이 추가된 놈입니다.
PC나 NAS, 스마트폰에 저장된 음악 파일을 네트워크를 통해 받아서 플레이할 수 있으며,
'AV Controller'라는 이름의 전용 컨트롤러 앱을 깔면 스마트 폰에서 네트워크를 통한 원격 조작이 가능합니다.
비록 DLNA 표준 쓰리 박스 모델은 아니지만 어쨌든 간에 쓰리 박스 모델이 가능하지요^^

가격은 40만원대로... "어디 네트워크 오디오 함 시작해볼까?"하는 마음으로 사기에는 좀 부담되는 가격이긴 하지만...
네트워크 오디오 렌더러뿐만 아니고 AV 리시버까지 일체형인데 40만원대면 엄청 싼 거거든요(사실 AV 리시버 중엔 최저가 보급형^^;;).

때마침 저희 집에 AV 리시버 교체가 필요한 시기라서요.
세월이 흐르며 HDMI를 지원하는 최신형 입출력 기기들은 하나둘씩 늘어가는데 기존 오래된 AV 리시버가 HDMI를 지원하지 못해서...
리시버 혼자 왕따 신세에... 소스 기기들은 연결 포트가 부족해서 매번 HDMI 선을 끼웠다 뺐다 하는 상태가 되어버렸습니다.
무선 데이터 네트워크뿐만 아니라 이런 HDMI 유선 연결 같은 부분도 정리돼야 진정한 홈 미디어 네트워크 아닐까요^^?

제 경우 40몇 만원 투자하면 소파에 누워 PC의 음악 파일을 마음대로 골라 듣는 네트워크 오디오뿐만 아니라
TV, PS3, 셋탑박스, 아이패드, 스마트폰, 카메라 등 현재는 제대로 연결되지 못하던 HDMI 기기들이 체계적으로 연결되면서
5.1 채널 서라운드 스피커 출력으로 빵빵하게 즐길 수 있는... 전반적인 AV 환경의 업그레이드 효과를 얻을 수 있다는 겁니다.

그리고 제가 RX-V473을 구입해야 하는 또 한 가지 이유!
저희 집에 RX 시리즈의 친구들이 많거든요^^ 아마도 새 친구를 따뜻하게 맞이해주지 않을까 하는...^^
RX-V473은 HDMI 1.4a의 3D 비디오와 4K 전송까지 지원하는 제품이라서 지금 사놓으면 한 10년은(과연?) 현역에서 활약할 것으로 기대합니다.
염려되는 부분이라면 HDMI 입력 단자가 4개라서 당장은 딱 맞지만 향후 입력 기기가 더 늘어나면 불편해질지도 모르겠다는 것과
어쩌면 조만간 네트워크 비디오 렌더러 기능까지 내장된 AV 리시버가 나오지 않을까 하는-_-;;

쓰리 박스 모델에서 렌더러는 뭐 이렇게 낙찰 봤고요^^
저희집에서 서버 역할을 할 만한 기기는 현재 PC밖에 없습니다. 1TB짜리 하드 디스크와 기타 더 작은 용량의 디스크 몇 개가 달린...
아래에도 쓰겠지만 여기에 추가로 NAS(Network Attached Storage)를 들여놔 볼까 생각중이고요.
컨트롤러 역할을 할 기기라면 제 갤럭시 S3와 아내의 아이폰 4, 그리고 구닥다리 아이패드 정도가 있습니다.


비디오 쓰리 박스 모델 보완 계획 (실패)

동영상 쪽의 쓰리 박스 모델은 정말 답이 잘 안 나오더군요-_-
DLNA 표준의 렌더러(DMR) 역할이 구현된 제품이 거의 없고, 그나마 있어도 다들 PC용 소프트웨어입니다.
저희집 데스크탑 PC는 메인 영상 출력기인 TV와는 다른 방에 놔둬야 하고, 노트북은 TV에 연결할 HDMI 포트도 없고 해서 그건 곤란하고요.
수소문 끝에 아이패드를 탈옥해서 XBMC란 걸 깔아보았으나 DLNA 렌더러 동작이 잘 안 되고, 무엇보다 HDMI 출력이 잘 안 되더라고요-_-

DLNA 표준 외의 쓰리 박스 모델 비스무리한 방법으로는 우선 스마트폰으로 컨트롤할 수 있는 LG U+의 스마트7이라는 IPTV가 있습니다.
그런데 아뿔싸! 저희 집 인터넷 서비스를 LG U+에서 SK브로드밴드로 바꾼지 몇 달 안 되기 때문에 LG U+로 돌아가려면 위약금을 물어야 합니다.
또 한가지 방법은 스마트 폰으로 컨트롤할 수 있는 TVIX 동영상 플레이어가 있는데요.

그런데 제가 몇 년 전 MediaJuke라는 요상한 중소기업제 동영상 플레이어를 샀다가 회사가 넘어간 이후로 사후 지원이 안 됐던 슬픈 기억도 있고,
PS3에 셋탑박스에 아이패드에 스마트폰에... 네트워크 동영상 플레이어가 집에 이렇게나 많은데 또 사는 것도 좀 그렇더라고요.

아니 애시당초 동영상의 경우 네트워크 컨트롤러가 따로 있는 쓰리 박스 모델이 왜 필요하죠?
어차피 동영상 플레이어에 연결된 디스플레이가 있고, 터치 패드나 키보드보다는 불편하지만 리모트 컨트롤러도 있습니다.
음악 플레이와는 달리 네트워크 컨트롤러가 없더라도 크게 불편하진 않을 것 같은 걸요.

그래서... 동영상은 그냥 현재 환경의 투 박스 모델만으로 만족해야 할 듯합니다.
지금 있는 플레이어들 중에 한글 처리와 자막 관련하여 가장 호환성이 좋은 기기는 IPTV 셋탑박스입니다. 전용 리모콘도 있어서 편하고요.
그래서 일단 TV에 연결할 메인 비디오 플레이어는 IPTV 셋탑이 맡고,
경우에 따라 방 침대 같은 곳에 누워서 아이패드나 스마트폰으로도 보려고 합니다.

투 박스 모델에서 요즘 소위 스마트 TV라고 하는 TV 보완 계획도 생각해봄직하나 그건 비용이 너무 많이 드는 관계로 기각되었습니다ㅜㅜ
결국 동영상 부문의 보완 계획은 '현상 유지' 내지 '보류' 되겠습니다-_-


서버 보완 계획

지금까지 PC를 미디어 서버로 고려했었으나 기분전환으로 가볍게 음악 한 곡 들어보자고 켜기엔 PC 부팅에 시간이 참 오래 걸립니다.
PC는 부팅에 시간도 많이 걸리고, 전기도 많이 먹고, 안정적이지도 않죠.

이런 단점들을 일거에 해결할 수 있는 솔루션이 있으니, 그것이 바로 NAS(Network Attached Storage)입니다.
일반적인 PC는 평균적으로 50W~100W 정도의 전력을 소모함에 비해
NAS는 최대소모전력이 20W 정도이고, 작업이 없을 때는 스스로 절전 모드로 들어가서 5W 정도만 소모합니다.
그래서 전원을 끌 필요 없이 그냥 계속 켜둬도 됩니다.

'NAS→네트워크 접속 저장장치'라는 명칭만 들어서는 그냥 외장하드 같은 것 정도로 예상하실지도 모르나,
SAMBA, AFP, NFS, FTP, WebDAV 등 여러가지 네트워크 프로토콜을 이용한 파일 공유와
DLNA, 웹, 토런트, 블로그, 클라우드, 메일, 아이튠즈, 타임머신, CCTV, 프린터 서버 등 각종 서비스를 제공할 수 있는 강력한 서버입니다.
PC보다 전력도 적게 소모하고 OS도 안정적이라서 서버로서는 거의 모든(CPU 성능 빼고^^) 면에서 PC보다 우월합니다.
그냥 홈 미디어 서버 용으로만 쓰기에는 과분할 정도죠^^

홈 미디어 서버 용으로는 그냥저냥 저렴한 ipTIME NAS 같은 제품을 사용해도 무방할 것 같습니다만...
저장장치의 특성 상 그 안에 담길 데이터의 가치를 고려한다면 가격보다 안정성과 메이커의 공신력을 우선해야 하지 않을까요?
정보 수집 결과 Synology 사의 제품들이 편의성과 신뢰성이 훨씬 우수하다는군요. 소프트웨어 업그레이드도 꾸준히 되고...
Synology 최저가형 제품만 해도 ipTIME보다 2배 비싸지만... 돈값을 하며, 개인용으론 충분히 쓸만하다고들 합니다.

사진의 제품이 Synology 제품 중 현재 가장 잘 팔리는 보급형 DS212j인데요.
DS는 Disk Station의 약자이고, 첫번째 숫자 '2'는 하드 디스크를 2개 장착할 수 있다는 의미이며,
그 뒤 숫자 '12'가 2012년형임을 나타내고, 마지막 j(아마도 junior의 머릿글자)는 저가 보급형을 뜻합니다.

저는 2013년에 발매될 DS213j를 기다려보려고 합니다.
213j는 212j에 비해 CPU와 메모리의 속도 향상과 더불어 WOL(Wake on LAN) 기능이 추가될 것으로 예상되거든요.
CPU 성능이 큰 영향을 미치는 토런트 다운로드에서 212j가 꽤 느리다는 얘기가 있던데 다소 향상이 있겠지요.
그리고 하드 디스크 값이 태국 홍수로 인한 급등 이후로 아직도 이전 가격까지 내려오지 않았습니다.
내년 이후 하드 디스크 가격이 안정화되기를 기다려 보는 것도 괜찮을 듯합니다.


네트워크 인프라 보완 계획

현재의 저희 집 네트워크는 홈 미디어 네트워크로서 보완되어야 할 2가지 문제점을 갖고 있습니다.
 
저희 집 네트워크 인프라부터 설명드리자면 2008년에 입주한 정보통신 특등급 아파트라서 광 케이블이 집 단자함까지 직접 들어오고,
세대 단자함에서 ONT(Optical Network Terminal)라는 기기가 광 신호와 전기 신호 간에 변환을 해주고,
패치 패널을 지나 벽 속에 매설된 Category 5e(CAT 5e) 네트워크 케이블을 통해 각 방 벽마다 유선 네트워크 포트들이 달려 있습니다.
그런데 PC가 있는 방과 TV가 있는 거실이 좀 떨어져 있다 보니,
유무선 IP 공유기는 PC가 있는 방 벽의 포트에 연결하고, IPTV 셋탑박스는 거실 벽에 있는 포트에 꼽아놓을 수밖에 없었습니다.
그 결과 네트워크 연결 상으로는 아래 그림처럼 IPTV 셋탑박스 혼자 왕따 당하고 있는 모양새가 되었는데요.
그림에서 실선 연결은 유선 접속을, 점선은 무선 접속을 나타냅니다.

메인 비디오 플레이어를 담당할 셋탑이 이렇게 덩그러니 따로 노는 네트워크 연결 구조는 절대 바람직하지 않습니다.
내부에 사설 네트워크를 만들고, 외부에는 이 네트워크 전체가 마치 한 IP를 가진 하나의 기기인 것처럼 보이게 하는 것이 IP공유기의 역할이라서
공유기가 만든 사설 네트워크와 그 외부의 네트워크 사이에는 많은 서비스들(DLNA, SAMBA 등)의 연결이 불가능합니다.
저희집 셋탑박스는 SAMBA를 통해 서버 동영상을 받기 때문에 현재 구조로는 셋탑박스에서 네트워크 플레이가 안 됩니다.
위 그림과 같이 기기들이 서로 다른 공유기에 연결되어 있다거나 공유기가 다단계로 연결되어 있을 경우,
A, B, C 기기끼리, D, E, F 기기끼리는 DLNA 등 네트워크 동작이 잘 되지만, 두 그룹 사이에서는 잘 안 됩니다.
 
이상적인 미디어 네트워크는 모든 기기들이 하나의 IP 공유기에 유선 또는 무선으로 연결되어 하나의 사설 네트워크를 이루는 것입니다만...
공유기 하나만으로는 도저히 커버할 수 없는 경우, 아래 오른쪽 그림처럼 공유기 밑에 스위칭 허브 또는 단순 AP를 두는 구조로 가져가야 합니다.
허브/AP는 공유기처럼 자신의 사설 네트워크를 따로 만들지 않고, 상위 네트워크를 공유하기 때문입니다.
보완이 필요한 또 한가지 문제점은 네트워크 속도입니다.
제가 현재 사용하는 공유기는 사진의 ipTIME N2(N604M)라는 모델인데, 내/외부 네트워크 공히 100Mbps의 유선연결 속도를 지원합니다.

100Mbps는 지금까지는 아무 문제가 없었습니다.
현재 쓰고 있는 SK 브로드밴드 광랜 속도도 100Mbps 이하 수준이고,
현존 최고 화질과 음질의 블루레이 소스라 해도 최대 전송속도가 48Mbps이기 때문에 100Mbps 공유기로 감당할 수 있을 것 같거든요.

그렇지만 앞으로 문제될 것이 뭐냐면 NAS를 들여올 경우 PC와 NAS 간의 전송 속도입니다.
저희집 PC나 구입 예정인 NAS나 모두 100Mbps보다 10배 빠른 1Gbps 기가비트 이더넷을 지원하고,
DS213j NAS의 내부 실효 속도는 읽기 80MB/s, 쓰기 40MB/s 정도가 나올 것으로 예상되며, PC는 그보다 빠릅니다.
Mbps에서 b는 bit, MB/s에서 B는 byte(8 bit)이기 때문에 100Mbps의 네트워크 속도는 12.5MB/s밖에 안 되는 것입니다.

NAS 최초 구입 시 PC의 1TB 하드 디스크에 담긴 데이터를 NAS로 옮길 경우의 소요 시간을 계산해 보니
100Mbps 이더넷으로 보내면 네트워크 속도가 병목이 되어 12.5MB/s로 꼬박 하루(22.2시간)가 걸리고-_-
기가비트 이더넷으로 보내면 NAS의 쓰기 속도 40MB/s가 병목이 되어 7시간이 걸린다는 계산이 나옵니다.
엄청나게 빨라지는 건 아니지만... 그래도 PC-NAS 간 연결은 기가비트 네트워크로 연결하고 싶네요^^

위에서 말한 두 가지 문제점, 즉 네트워크 연결 구조 문제와 PC-NAS 간 전송속도 문제를 모두 해결할 수 있는 방법은

  1. 기가비트 유선 공유기를 하나 사다가 세대 단자함의 패치 패널과 바꿔치기 하고,
  2. 기존 공유기 N2는 허브 모드로 동작하게 하는 것입니다.

패치 패널은 인터넷뿐만 아니라 전화 신호를 분배해주는 역할도 하나, 저희 집은 유선 전화를 안 쓰기 때문에 떼어버려도 상관 없거든요^^

...라고 말은 쉽지만 위 사진에서 아래쪽에 네트워크 선들이 무지 많이 꼽혀 있는 까만 박스가 패치 패널인데요.
과연 저 선들을 제대로 맞추어 유선 공유기에 옮겨 꼽아줄 수 있을까요-_-
그리고 위 사진은 현재의 저희 집 단자함이고, 이사갈 집은 전혀 다른 모습일 확률이 99%입니다.

아무튼 어려운 건 나중에 생각하고^^;; 이사갈 집의 최종 네트워크 연결도는 아래 그림과 같이 계획하였습니다.
단자함의 패치 패널 대신 기가비트 유선 IP 공유기로 바꿔치고, 벽에 매립된 네트워크 케이블을 통해 방에 있는 PC와 NAS에 연결합니다.
이러면 PC와 NAS는 기가비트 공유기와 CAT 5e 케이블을 통해 서로 연결되어 기가비트급 통신이 가능합니다.

여기에 사용할 기가비트 유선 공유기로는 ipTIME의 T3008을 생각하고 있습니다.
기존 N2가 ipTIME 제품이다 보니 같은 회사 제품으로 맞춰야 서로 잘 동작할 것 같고, 무엇보다 동급 최저가라서요^^(7만원 가량)

그리고 기존의 무선 공유기 N2는 스위칭 허브(단순 AP) 모드로 동작하도록 설정해서 거실 TV 근처 네트워크 포트로 T3008에 연결할 겁니다.
TV 근처에 놔둘 예정인 IPTV 셋탑박스와 AV 리시버, 그리고 PS3는 스위칭 허브 모드의 N2에 유선으로 연결되고,
스마트폰이나 아이패드는 단순 AP 모드의 N2에 무선 Wi-Fi로 연결되는 거죠.
N2는 공유기가 아닌 허브로서 동작하기 때문에 따로 사설 네트워크를 만들지 않으며, 모든 기기가 T3008의 사설 네트워크를 공유하게 됩니다.

N2뿐만 아니라 대부분의 시중 IP 공유기 제품들은 허브 모드로 동작하도록 설정할 수 있습니다.
설정법도 거의 같아서

  1. DHCP 서비스를 끄고,
  2. 192.168.XXX.1 이외의 내부 IP 주소를 할당하고,
  3. WAN 포트가 아닌 LAN 포트로 다른 IP 공유기에 연결하면 됩니다.

한 가지 주의하실 점은 IPTV 셋탑박스 관련 세팅인데요.
아무 생각 없이 위의 네트워크 그림처럼 공유기에 연결해놓기만 하면 IPTV 시청이 제대로 안 될 확률이 무지 높습니다.
일단 공유기 설정에서 멀티캐스트 포워드(IGMP) 설정을 켜야 합니다.

저희집은 IPTV 셋탑박스가 인터넷에 직접 연결된 형태라서 이렇게만 해도 실시간 IPTV 시청이 가능했는데...
IPTV 사업자가 인터넷과 셋탑 사이에 자신들의 유선 공유기를 설치한 경우, 이 세팅만으로는 시청이 안 될 수 있다고 합니다.
그럴 때는 MAC cloning 기능을 이용하여 내 공유기의 MAC 주소를 IPTV 사업자 공유기의 MAC 주소와 동일하게 덮어써주면 된답니다.



이렇게 저희 집 미디어 네트워크 보완 계획을 세워봤는데요.
이것저것 고려해야 될 점들이 많다 보니 한 번 깔끔하게 정리할 필요가 있었고,
혹시라도 저와 같은 고민을 하고 계신 분들께 참고가 될 수도 있을까 해서 블로그 글로 남겨봤습니다.
집집마다 환경이 각양각색이라서 별로 참고가 안 될 가능성이 높지만요^^;;

총 예산은 40만원대 AV리시버 + 20만원대 NAS + 10만원대 2TB 하드디스크 + 7만원짜리 기가비트 공유기 구입으로 80만원대 규모가 되겠네요.
아마도 AV리시버와 기가비트 유선 공유기는 이사 가자마자 구입하게 될 것 같고,
NAS와 하드디스크는 내년에 DS213j와 하드디스크 가격이 좀 안정화된 이후에 사게 되지 않을까 생각되는데요.
실제 구입할 때는 예산보다 좀더 저렴해질지도 모르겠군요.

AV 리시버 구입하고 나서 한 번, NAS 구입하고 나서 한 번씩 후속 글을 적어볼까 합니다.
과연 계획 대로 꿈 같은 사이버 홈 네트워크를 구축할 수 있을지...
혹시 총알 부족이나 의외의 난관에 부딪쳐 좌절하게 되지는 않을지 살짝 염려가 되는군요^^;;

홈 미디어 네트워크 보완 계획 관련 글 바로 가기

 
여러분의 추천이 제겐 힘이 됩니다. 내용이 도움 되셨다면 아래 추천 버튼 한 방 꾹 눌러주세요^^