미니 다목적 서버 꾸리기 - 들어가며

Featured image

개인사가 1년 넘게 몹시도 복잡했다. 이제 조금 정신이 들락말락 하는 상황이다. 솔직히 그동안 어찌 살아왔는지도 잘 기억이 안난다. 그냥 살아있었다는 것만으로도 기뻐해야하고 이렇게 정신을 차리고 있다는 것만으로도 감사해야할 일이다.

각설하고 집안에 둘 미니 서버를 생각 중이다. 2년여간 라스베리파이 2에 열심히 의존했다. 라스베리파이 1로도 할 수 있는 일이긴 한데, 이것은 여러 가지 단점이 있겠지만 우선적으로 USB 속도와 ethernet 속도가 낮다는 문제가 있었다. 속도만 그냥 낮으면 상관없는데, 좀 고속의 데이터를 주고 받다보면 본연의 일을 하는 것도 버거웠을 뿐더러 single core라 한 가지 일에 몰두하면 다른 일을 할 수 없었다는 문제도 있었다. Multi-tasking OS이니 당연히 지원되는 멀티테스킹도 core가 하나라 버거웠단 말이다.

Raspberry pi 3에 와서는 와이파이와 블투를 모두 지원하고 코어가 4개라 상당히 여유가 있었는데, 개인적인 사정으로 Kodi를 돌리는 일 이외에는 거의 사용하지 못하다가 개인적인 불상사로 1과 3 모두 잃게 되었다. 1, 2, 3를 모두 가지고 있었다면 광팬이 아니냐 할 수 있을텐데, chromecast까지 가지고 있었으니 미니 PC만 4개를 가지고 있었다고 봐도 맞겠다. 사실 이거 4개 가질 정도면 좀 그럴싸한 미니 PC 한대쯤 살 수 있는 정도 아니냐 하겠는데, 그게 또 실제로 그렇지 못하다. 윈도우즈만 멀쩡히 돌리는 미니 PC들은 150불 대가 넘어간다. 물론 디스플레이도 없고 하드도 달려있지 않다. 사용자가 추가로 구매해서 붙여주어야 한다.

그렇게 보면 서버라고 이름은 사실 좀 거창하지만, 온종일 켜두고 정해진 일을 반복하고 외부 요청에 응답하는 일을 시키는 미니PC 하나를 꾸리는 것은 나름 요긴하게 쓸 수 있다. 사실상 리눅스가 그 모든 일을 해줄 수 있을 뿐더러, SoC의 성능이 남아돌기 때문에 정말로 다양한 일을 시킬 수가 있다. 어차피 라스베리파이 3까지 잃은 마당에 더 이상 라스베리파이를 쓰고 싶은 생각은 없고, 그렇게 보자면 인텔 계열의 Up board라든가 Banana Pi 또는 AmLogics의 칩이 달린 Odroid라든가 Exynos가 달린 미니 PC등등을 생각할 수 있는데, 가격대 성능비를 중요시 하는 내 입장에서 역시 거품이 작지 않아보인다. 심지어 Raspberry Pi zero도 5불 짜리 컴퓨터라고 광고는 하지만, 실제 구입하려고 보면 20불 이상에다가 세금붙고 하면 거의 다른 Raspberry pi와 별 다를 바가 없다.

그래서 여기에 더 생각해 볼 수 있는 것은 사용하지 않는 스마트 폰에 Linux를 올리거나 다른 버전의 android를 올려서 맘대로 주무를 수 있게 하는 것과 TV 박스 혹은 안드로이드 스틱, 혹은 박스라 불리우는 물건들을 rooting하거나 펌웨어를 갈아엎는 방법이 있다. 이들 중에 가장 쓸만해 보이는 것은 다른 mini PC 계열 중 하나인 Odroid와 거의 같은 스펙을 하고 있는 안드로이드 박스, 그 중에서도 S905 또는 S905X를 장착한 안드로이드 박스들이다.

잘 들여다보면 Odroid보다 더 우수한 스펙과 하드웨어임에도 가격은 절반밖에 하지 않는다. 딜러가를 보면 아주 충격적인데, 웃긴 건 이들 제품을 생산하는 하청 업체가 다양하지 않다는 것이다. 그러나 OEM으로 생산하다보니 정말로 다양한 메이커 (우리가 보기엔 듣보잡)에서 만들어내는 것처럼 보인다. 이는 수요층이 넓은 Tv box와 극소수만이 사용하는 개발보드의 규모의 경제(?, 이런 말 싫어한다) 차이에서 온다. 그만큼 대량생산하고 대량으로 유통하고, 또 경쟁이 치열하기 때문에 20-40불대의 가격으로 완제품의 mini PC (실제로는 TV set-top box?)로 공급되는 것이다.

여기에 제조사에서 제공하는 Android 6.0 (혹은 5.0)까지 덤으로 올 뿐더러 리모트 컨트롤러도 같이 온다. 여기에 4k TV와 접속이 가능하게 되어있으니까, 괜시리 이름에 휘둘려 Raspberry Pi 3를 구입하는 실수가 없길 바란다. 아마도 올 2월이나 3월에는 Raspberry Pi 4가 발매될 것이라는 루머가 돌긴 하지만, 내 입장에서 보기에 mini PC가 Amlogic의 S905X 정도의 spec을 가진 SoC를 장착하고 나면 사실상 정점을 찍은 게 아닐까하는 생각을 해본다. 물론! 스마트폰에 들어가는 snapdragon 급의 processor를 쓰는 것들을 구입하면 더 좋겠지만 아마 구글링 해보면 알겠지만 가격대가 상상을 초월하는 것을 알 수 있다. Mini PC가 수행해야하는 일들을 생각하면 여기에 그렇게 많은 비용을 투자해야 할 이유는 느끼기 어렵다.

그렇다면 S905X라는 SoC가 어떤 스펙을 가지고 있는지 대충 살펴보자.

image

SoC는 대개 바둑판 모양으로 그 기능들을 설명하는데, 실제로 이것들이 실리콘 판 위에 앉힐 때도 4각형의 블록들로 들어가 앉게 된다. 들여다보면 기능들이 엄청나게 다양함을 알 수 있는데, 이것을 모두 Amlogic에서 개발한 것이 아니고 각각의 기능들을 수행하는 IP(Intellectual Property:왜 이것을 지적자산이라고 부르는지는 잘 모르겠다)를 사다가 넣은 것이라 볼 수 있다. 자세히 얘기하자면 RTL 수준으로 각각의 블록을 전문회사가 구현해놓고 그 RTL code를 판매한다고 볼 수 있다. 물론 code가 유출되면 안되니까 암호화되어서 함부로 도용할 수 없고 계약상에 명시된 조건으로만 사용하게 되어있다. 물론 어기게 되면 법적 분쟁이 일어나는 것은 당연한 일이다. 반대로 해당 모듈이 잘못 만들어져서 전체적인 개발일정에 차질을 가져왔다면 그에 대한 응분의 책임도 계약시에 요목조목 따지게 됨은 말할 필요가 없겠다.

본론으로 돌아와서 각각의 블록들을 보면, miniPC 또는 4k TV를 target으로 하는 Media server로서 있어야 할만한 거의 모든 기능들이 하나의 칩에 내장되어있음을 알 수 있다. AVE-10이라고 된 블록은 영상 코덱으로서, 제조사 스펙으로 보면 H.264만 4k@60Hz를 지원하고 나머지는 1080p@60Hz를 지원하지만, 가격대나 소비전력으로 볼 때 매우 훌륭하다고 볼 수 있다. 자체적인 encoder를 활용하면 고성능의 PVR로도 활용이 가능하다.

더구나 Cryto-engine이 얹혀있어서 암호화를 요구하는 서비스 (SSL, VPN, …)에도 요긴하게 쓸 수 있을 뿐더러 5개의 그래픽 코어를 이용해서 실시간으로 빠른 영상처리 (대개 filtering) 혹은 3D rendering도 할 수 있음을 알 수 있다. 부가적으로 HDR processing이라든가 최근의 4k TV에서 지원하는 기능도 포함하고 있고, PDM stereo 블록은 예전엔 볼 수 없었지만 지금은 사실 보편화된 블록인데, class D amplifier와 직접 연결할 수 있어서 주변 부품의 수를 줄이는 데 도움을 준다. 무슨 말이냐면 Class D amplifier가 PWM (=PDM) 신호를 만들어내는 일을 SoC가 대신해주기 때문에 출력단엔 이론적으로 TR 2개만 있으면 class D amplifier가 되는 것이다 (여기에 filtering을 위한 component L/C 들어간다).

결과적으로 이 칩 한개면 별도의 부가칩이 거의 없이 멀티미디어 시스템의 거의 대부분을 완성할 수 있게 된다. 무선 모뎀/와이파이/블루투스까지 모두 내장한 스마트폰에 들어가는 유명 칩들보다야 다소 미진할 수 있지만서도.

따라서, 단순히 이 칩을 안드로이드 TV 박스로만 사용하는 것도 크나큰 낭비가 아닐 수 없다. 가진 자원만 잘 활용해도 정말 다양한 일을 할 수 있기에 가격이 좋다는 것이다. 실제로 안드로이드 티비 박스는 2016년 초중반에 인기를 끌었던 거라 다소 뒷북이 아닐 수 없다.

그래서 지금 할 수 있는 일은 안드로이드 티비 박스를 어떻게 뒤 엎어서 개인용 서버로도 쓰면서 멀티미디어 센터로도 활용할 수 있겠느냐 생각해보자는 것이다.

좀 미안한 얘기지만, S905X의 실제 성능은 잘나가는 snapdraon에 한참 못 미친다. 그 정도 성능으로도 평소 사람들이 하는 일은 충분히 하고도 남는다.