내 경험과 내 지식 기반임
퀘이사존 채널에서 항상 하는 말을 먼저 쓰고 시작한다.
"반박시! 여러분 말이 맞습니다."
----------------------------------------------------------------------------------------------
개인적인 피로함과 귀찮음으로 인해 포스팅이 엄청 미루어졌다!
머리속에서 많이쓰고, 길게 쓰고, 상세하게 쓰려니
쓰기 전부터 피로해져서 포스팅의 힘이 나지 않아, PART1에서는 개념을 잡고,
PART2에서 실제 나스 구축과 버추얼 나스 구축에 대해 기술하겠다.
NAS 란? Network Attached Storage
네트워크에 부착된 스토리지 서버
(걍 쉽게말해 개인용/중소 회사용 클라우드 데이터 서버)
나스를 주제로 포스팅을 하려고 생각했던 이유는
나의 첫 직장에서 첫 업무가 벤더 회사들에게 배포될 나스 구축이었다.
이게 단순히 진짜 저장소의 용도로만 사용하면 구축이랄 것도 없긴하다.
그리고 사실 저장소의 용도로만 사용하면 뭐 굳이 이런거 안쓰고 구글 드라이브나, 네이버박스, 드롭박스 같은 스토리지 서비스를 일정 돈 내고 사용하는게(또는 리미트된 값이내에서 무료사용) 더 관리면에서 편리할 수 있다.
하지만 필자가 다녔던 회사에서는 회사내의 프로그램과 시놀로지 나스에서 NodeJS 패키지를 설치하여 회사의 프로그램과 연동하여 데이터는 각 벤더회사에서 저장 및 관리하고 프로그램에 대한 접속 자체는 회사 서버로 오게하는 식으로 하였다. (딱 까놓고 그게 병원데이터라)
일단 DS218+의 주요 기능부터 말하겠다.
우선 쿠팡이나 구글에서 그냥 무작정 검색해서 링크 타면
자꾸 DS 218 Play로 링크를 연계한다. 정말 세상은 사악한 것 같다.
DS218 Play는 정말 하급의 모델이다.
이 스펙표에서 가장 중요시 여겨야할 부분은 바로 CPU가 셀러론 칩이란 것이다.
그럼 혹자는 그럴 것이다.
- "셀러론? 그거 인텔에서도 최하위 라인업아님?"
맞다. 근데 원래 데이터를 읽고 쓰는데는 이정도면 차고 넘친다.
다만 문제는 DS218 Play는 리얼텍 회사의 CPU를 쓰고있다.
여기서 파운드리와 펩리스회사의 차이를 설명하고 가면 또 포스트 주제가 어긋나버리니 그냥 생략하고 (또..?)
CPU란 RISC또는 CISC 형태의 명령어 구조를 가지고 있고, 그 명령어에 따라 실행할 수 있는 프로그램이 다르다.
즉 대부분의 사람들은 거~의다 x86머신을 사용한다. (요새 사람들은 이런말 들어봤나 모르겠다. 니네집 컴 386임?ㅋㅋㅋ486임?ㅋㅋ 왤케느림, 이런 말에서 386 486이 다 x86 아키텍쳐이기 때문에 나온말이다) 이제는 m1, m2가 많이 퍼져서 arm 아키텍쳐도 많이 쓰지만
지금까지 우리가 무언가를 실행할 때 큰 불편함없이 살아왔던 것은 모든 프로그래머들이 x86기반의 아키텍쳐로 그 프로그램을 만들어 줬기 떄문이다.
집에 m1 맥북이 있는 사람은 이걸 실행해보라.
<간단한 c 파일 업로드>
파일명이 bomb 이라고 폭탄아니다. 이것은 MIT 대학에서 C언어 시간에 Bomblab이라는 주제로 만드는 x86기반의 소스코드이다. 이 파일의 제작자와 그에 대한 사용 방법은 README에 다 쓰여 있다. 해보라는 것은 자신의 x86 데톱에서는 bomb이 실행될 것이고, m1 같은 arm 아키텍쳐(x86이 아닌)에서는 실행이 안된다. 그걸 보라는거다. 이 bomb 프로그램의 목적은 까먹었는데 아무튼 숫자 하나씩 넣어보면서 폭탄 숫자들을 피해서 최종 스테이지까지 가는건데 그 최종 스테이지도 그냥가는게 아니라 어셈블리로 해석해서 다음 스테이지에 대한 힌트 얻고ㅡㅡ, 아무튼 m1에서 실행이 되는지만 보라는 거다. 이거 실행법은 설명안한다. 알아서 하길바란다)
실행이 안될 것이다.
이유는 없는 명령어를 실행하려고 하기 때문이다.
물론 m1에서 로제타 라는 애플만의 독자적 명령어 변환 툴로 상당히 많은 부분에서 전환이 가능하지만,
그걸 얘기하고 싶은게 아니고
이 DS218 Play의 리얼텍 CPU는 얘기가 다르다. (그냥 쓰레기다)
우선 이 DS218 , 아니 이 시놀로지 전체 모델에 대해서 시놀로지 회사가 깔아놓은 Firmware가 있다. 그냥 나스에 맞는 OS(윈도우, 매킨토시, 우분투 등등으로 생각하자)를 설치해두었다. 그러고 그 OS(펌웨어) 내에서 마치 우리가 윈도우에서 프로그램을 카카오톡을 설치해서 실행하듯, 거기서는 패키지라는 개념으로 무언가를 설치하고 실행할 수 있다.
서두에도 설명했지만, 무언가를 실행하기위해선 그 무언가에 대한 명령어 셋이 CPU안에 존재해야한다.
- 명령어가 뭐냐고 ㅡㅡ
라고 말할까봐 캡쳐화면을 준비했다. 솔직히 몰라도됨. 저런거 외우는놈 절대로 없고. 다만 CISC 구조와 RISC 구조는 지원하는 명령어 셋이 차원이 다르다는 것만 알아두면 된다.
결론적으로 리얼텍 CPU는 지원하는 명령어 셋이 현저히 적어 웬만한 프로그램을 실행할 능력이 없으며
정확하게 데이터 읽기/쓰기 용도의 정도로 탄생한 놈이다.
- ? 근데 그게 뭐가 잘못 됐단거냐? 어차피 NAS라는게 데이터 읽기쓰기 하는용도아님?
야스. 맞다. 하지만 그렇게만 생각하고 진짜 그런용도로만 판매할거였다면 DS218Play의 가격은 시중에 검색되어서 나오는 가격보다 1/3 이하로 떨어져야한다는게 필자의 생각이다. DS218 Play 는 DS218 Plus를 사려는 사람들을 속이기 위한 페이크 제품이라고밖에 생각이 들지 않는다.
그래서 DS218+ 를 사면, 그것은 x86기반의 아키텍쳐이다. 또 x86아키텍쳐의 가장 큰 장점은 인텔이 자랑하는
Intel-VT 기술이다. 한마디로 가상머신 돌려주는 기능이다. AMD도 다른 네이밍으로 가상화 기술을 가지고 있다.
결론적으로 DS218+를 사면, 웬만한 NodeJS, Python, C++ 등의 코드를 CPU가 실행할 능력이 되는 제품이며, 간단한 도커(가상머신의 일종, 정확히는 가상머신과는 다름 하지만 버추얼 기술은 맞음)도 실행이 가능하다.
- 어이 서버맨씨, 그래서 나스에서 파이썬 노드JS 그딴거 실행해서 뭐할려고, 그런거 걍 내 데톱에서 하면 되는거아님?
... 맞다. 맞는데, 당신의 컴퓨터를 24시간 켜둘 것은 아니며, 서버라는(24시간 켜있는 디바이스) 곳에서 무언가를 실행할 능력이 되는 CPU와 아닌 CPU는 용도면에서 차이가 너무나도 크다. 본인이 진짜 데이터 읽/쓰만 한다면 상관없다.
예시가 딱히 생각나지 않으니 걍 내 예시를 들겠다. 본인의 경우 500줄 내외의 Python 코드를 24시간 구동할 수 있는 서버가 있다면 나는 거기에 업비트 자동매매 프로그램을 돌려둔다.
고작 500줄 정도밖에 안되는 Python 업비트 자동트레이딩 코드를 돌리기위해 본인의 컴터를 24시간 켜두면 지금 같은 하락장에서 전기비만 더 나올 것이다.
다음으로는 클라우드 서비스를 사용하는 것과 나스를 직접구매해서 사용하는 비용을 비교해 보겠다
원드라이브 기준, 패밀리용 퍼스널용을 평균 냈을떄, 1년에 10마넌 정도 내야한다.
그렇다면,
합쳐서 45만 5천원.. 5년 이상 써야 원드라이브 보다 가격적인 효율성을 낼 수 있다.
왜 2T 하드디스크로 비교했냐면 보통은 RAID 라는 기술을 써서 파티션을 분할 및 보안관리해서 쓰기 때문이다.
가격적인 면에선 아무래도 원드라이브가 낙승이다. icloud는 귀찮으니까 비교안하겠다
물론 DS218보다 더 저렴하게 가면 되긴 되는데 저 모델보다 이하의 제품은 비추천이다.
그럼 이제 실 사용성 적인 편리함에 빗대에서 (매우 서버맨의 주관적 관점)으로 비교해 보겟다.
첫째) : icloud나 원드라이브 키고 로그인하고 (물론 자동로그인 했을수도 있지만), 폴더누르고 업로드하고..
좀 걸릴 것이다. 가장 속도가 차이나는 부분은 업로드하는 속도일 것이다.
이것은 본인의 인터넷 회선이 설령 1Gbps 짜리 회선을 쓴다 한들 기본적으로 '외부망'에 접속하여서 업로드 하는 것이기 떄문에 '내부망'에서 주로 사용되는 나스하고는 속도 차이가 난다. 물론 나스를 외부포트 개방해서 외부에서도 자유롭게 쓰는것이 가능하지만, 보통은 회사나 가정 내의 내부망용도로 쓰이는 목적이 더 크다.
내부망과 외부망의 차이라고 봤을떄 내부망에 접속하는 속도와 거기서 파일을 업/다운 하는 속도는
95% 확률로 내부망 내에서 다루는 것이 훨씬 빠르다. 아마 좋은 라우터가 있는 환경에서 내부망 사용을 한다면 파일 업다운로드가 초속 80MB/s도 나온다. (인터넷 가입 회선 종류에 관계없이, 카테고리 식스나 세븐이상의 LAN 선을 사용한다면)
속도 뿐아니라, 클라우드 저장소에 비해 파일을 업/다운/공유 하는 것이 훨씬더 간단한 인터페이스로 구축되어있다. 당연히 원드라이브나 아이클라우드 같은 서비스들은 간편하게 못만들어서 못하는게 아니라 그만큼 웹서버에서 돌리는거라 보안적인 것을 신경쓰다보니 아마 필자가 느끼기엔 빠르게 사용하기엔 내부망 나스만한게 없다.
단점 첫째).
또한 인터넷에서 파일에 대한 다운스트리밍과( 일명 다운로드 ), 업스트리밍( 일명 업로드 )는 기본적으로 비대칭 회선이다. 뭔말이냐면 다운로드 업로드 속도가 다르다는 것이다. 여러분들이 흔히 쓰는 500mbps 회선 인터넷은 기본적으로 다운로드 측정속도를 나타낸것이고 업로드 속도는 500mpbs가 안 나올 '수도' 있다.(즉 상품명이 정확히는 이렇게 써야한다. '500mbps 다운로드 회선', 게다가 mbps니까 흔히 우리가 쓰는 메가바이트로 쓴다면 여기에 8을 나눠야한다 할튼 사기꾼들..) 필자의 집은 거지라서 9900원짜리 100mbps 헬로비전 인터넷 회선을 쓴다.
이것은 8로 나누면 대략 12.5 MB/s가 나오니까 실제로 스팀에서 어떤 게임을 다운로드할떄, 11메가/s가 나온다면 정상 규격으로 나오는 것이다. 하지만 이 초 저가(9900원에 TV,인터넷,전화면 솔직히 속도가지고 내가 뭐라할순없음. 가격으로 다 봐주는거임) 인터넷 회선(이 상품만 해당)의 아주 큰 단점은 업로드 속도가 3mbps 회선이다. 즉... 거의 업로드 속도는 30~50KB/s가 나온다. 솔직히 사람이 쓸 수있는 인터넷 속도가 아닌데, 뭐 필자의 여러 스킬을 통해 속도는 알아서 보완해서 쓰고있다.
이말을 왜하냐면 만약에 필자가 집에 나스를 설치하고 그것을 외부 포트를 뚫어놨다고 치자.
그런데 친구Bowl이가 자기네 집의 10Gbps 최신 인터넷을 사용해서 우리집의 나스에 접속해서 4Gb 동영상 파일을 가져가려한다. 친구B는 황당한 속도를 목격하게 될 것이다. !! 다운로드 속도가 30KB/s 밖에 나오질 않는다.
왜냐면 서버의 역할을 하는 우리집에서는 최대 업로드속도가 30KB/s 이고, 친구Bowl의 다운로드속도는 10Gbps이지만
아무리 다운로드쪽이 빨라도 데이터를 제공하는 서버측의 인터넷 속도에서 병목현상이 생기는 것이다.
뭔가 매번 글을 쓸떄마다 본인 입장에서는 당연하지만, 남들에게는 모르르 단어들 최대한 설명하고 싶지만, 설명 안하는 건, 그거까지 쓰면 글이 논문 수준이 될 거같다. CAT6,7(카테고리 6,7) 랜선 같은 것은 구글링을 해보자
장점 둘째) 이것은 나의 서버다. 즉 구글이나 애플 같은 거대회사가 뒤에서 지켜보고 있지 않다.
이게 뭔말이냐면 혹시나 나처럼 데이터에 민감한 사람들은 일명 대학교에서 지원해주는 대학교용 MS 아이디나, 대학교용 구글 Workspace를 잘 사용하지 않는다.
그 워크스페이스에 대한 총괄 책임자는 내가 아니며 총괄 책임자는 내 파일을 지켜볼 수 있고, (그런말은 안써있지만 상식선에서 생각했을때 당연한거다 ㅋㅋㅋ), 또한 그 총괄책임자 위에있는 구글이나 애플은 다 지켜보고있다.
필자는 이 첫 직업을 가지면서 보안에 대해 굉장히 예민한 사람이 되었다. 보안은 해킹만 막는다고 보안이 아니다. 21세기 대부분의 사람들은 평소 행실 자체가 데이터 유출에 노출되어있다. 이것은 어쩔 수 없는 현상이고 최대한 개인정보가 내가 아닌 다른사람에게 원치 않게 알려지는 것은 스스로가 공부해서 막아야한다.
즉, 이 개인 NAS서버에는 무엇을 올리든 내가 주인이고 내가 관리자이기 때문에 누군가가 도청 도난 한다는 걱정은 딱히 없다.(물론 NAS 자체를 해킹해버리면 얘기가 다르지만, 시놀로지 회사가 나스계열에서 압도적인 1위의 회사인데는 소프트웨어를 써보면 알게 될 것이다)
단점 둘째) 하지만 , 이 장점과는 마치 작용 반작용의 법칙마냥, 모든 관리는 내가 해야한다.
서버의 전원관리도 내가해야하고, 혹시모르는 집에 불이나서 나스의 하드디스크가 타버리면 그것도 사실 내책임이다. 또한 도둑이 와서 나스를 통쨰로 들고 훔쳐가도 그것도 내가 짊어지어야할 서버관리자(?)의 몫이다.
이 두번째 단점에 대해 추가적인 비용얘기를 하자면, DS218+ 의 경우 대충 18W를 먹는다.
전기요금에 대한 계산은 (하 이런거 쓰면 진짜 포스팅 산으로 간다고 ㅡㅡ) 정확하게 할 수 없다. 이유는 가정용 집에 들어오는 전기는 교류가 들어오고 그것을 직류로 변환해서 쓴다. 필자의 친구가 전자공학과 석사인데(올ㅋ) 한때 전기 요금을 신중하게 계산해야할 일이 있어서 물어보았으나 결과적으로 정확하게 산출하기는 어렵고 역으로 산출하는 것이 가장 빠르다. 즉 역으로 산출한다는 것은 비슷한 W 소모량의 기기로 측정해 보는것이다.
- 님 바보임? 전력측정계산기 같은 어댑터가 있는데요?ㅋㅋ
.. 알고있다. 수도없이 써봤고 아무튼간에 18W를 24시간 30일정도 돌리면
집의 누전 상태에 따라 다르지만 2600원~3000원 정도 나올 것이다.
요즘 고속 핸드폰 충전기의 기준이 18W이고 초고속 충전기는 25W~60W 사이이다.
앞으로 시대가 갈수록 고용량 고소비의 제품만 나올 것이다.
필자는 전기를 21세기의 주요 전략 핵심 자원이라고 생각하고있다.(야이 미친놈아 문명좀 그만해ㅡㅡ)
뭔가 더 쓰고 싶다. 하지만 한 포스팅에 이이상 쓰면 분명히 읽다가 포기한다.
고로 아무래도 이 나스 주제는 PART3까지 이어질거 같다.
PART2에서는 인터넷과 IP에 대해 설명하겠다. (짧게 하는게 목표다)
PART3에서는 물리 나스와 가상 나스의 구축법에 대해 설명하겠다
결론 :
NAS라는게 뭔지만 알자.
그리고 맨처음 포스팅에서도 설명했듯이 무엇이든 서버가 될 수 있으며
그 무엇을 그냥 데이터 저장소로 쓰면 솔직히 시놀로지 따위 필요없이
그냥 그게 나스다.
어쨋든 나스의 용어를 읽어보면, '네트워크에 부착된 저장소' 라는 거니까
무엇이든 그걸 저장소로만 쓰면 나스인거다.
'내가 아는 것들.. > Server' 카테고리의 다른 글
006. NAS(Network Attached Storage) 나스 개념잡고 구축하기 [PART3] (1) | 2022.11.26 |
---|---|
005. NAS(Network Attached Storage) 나스 개념잡고 구축하기 [PART2] (1) | 2022.11.22 |
003. What program does a self-proclaimed server-man(?) use? [PART 2] (1) | 2022.11.16 |
002. What program does a self-proclaimed server-man(?) use? [PART 1] (1) | 2022.11.15 |
001. What is 'Server' ? (1) | 2022.11.14 |