NAS 개념잡기, NAS 활용법

디씨 사용자가 알려주는 NAS 개념잡기, NAS 활용법.txt

  시놀로지 무지성 구매하고 나스 관심 많이 보이는데, 나스는 도커 안쓰면 효용성이 극히 떨어지는 물건이라 생각함. WD 이지스토어 14테라? 그거 4개까서 집에 30테라 네트워크 스토리지를 만든다고 해도, 하다못해 야동이라도 원격으로 볼 수 있지 않으면 정말 무쓸모라고 생각함.
그래서 대충 나스에 대한 이해를 증진시키고 무지성구매를 하지 않게 하기 위해 짧은 지식이나마 풀어봄.

시작전 3줄 요약

1. 귀찮으면 무지성 시놀 구매
2. 근데 서버로 안 쓸거면 돈 아까움
3. 근데 돈 아까우면 자작해라

alex cheung gQdPafWDSyk unsplash

 

I. NAS란?

나스는 Network Attached Storage, 즉 네트워크에서 쓸 수 있는 스토리지임

유사한 개념으론 DAS(Direct Attached Storage), SAN(Storage Area Network) 등이 있음

근데 SAN은 개인이 써볼일 없다고 보면 되고, DAS는 가끔 보이는 USB/TB3등으로 직결하는 레이드5 박스 이런거

내가 어디 나가서 저장소에 접근할 필요가 없다 하면 DAS를 써도 된다(아니, 보통 1G쓰는 내부망 속도를 고려하면 DAS가 무조건 낫다)

집 밖에 나가서도 저장소에 접근해야 한다 하면 넌 NAS야

II. NAS는 어디에 쓰는가?

나스는 개인 클라우드 서비스로도 활용할 수 있지만, 그것만으론 활용도가 크지 않음

니가 평생 모은 10테라 야동을 나스에 모아두나, 외장하드에 모아두나 그렇게 차이가 없단 말임

왜냐하면 첫째로 나가서 야동 볼일이 별로 없을 것이고, 둘째는 이미 개인 클라우드가 발달해서 니가 급하게 써야하는 소규모 클라우드 정도는 갤럭시를 쓰나 아이폰을 쓰나 제공됨

그렇다면 나스를 어디에 써야 하는가? 하면 보통 24시간 켜놓는 특성상 서버에 많이 활용됨

저기 기업같은 곳이야 스토리지와 서버는 분리해 관리하는게 당연하지만, 개인 용도로 활용하기에는 많은 연산력이 필요 없어 나스 수준의 연산력으로도 충분함

그래서 보통 Docker를 설치할 수 있는 시놀로지의 +가 붙은 모델들이 많이 추천되는거임

그외 VM도 올려서 게임도 하고 은행업무도 보고 할 수 있는데, 시놀로지 수준에선… 하지마 제발

좀 사양 높은거면 안드로이드 올려서 매크로정돈 돌릴수도 있겠다(근데 안해봄)

III. Docker 활용법

도커는 간단하게 설치할 수 있는 서버야

실제 서버를 운용하려면 그 어플리케이션의 환경도 맞추어줘야 하고, 다른 어플리케이션이랑 충돌하지는 않는지 확인해줘야 하는 등 되게 귀찮고 어려워. 그래서 한번 설치한 서버는 업그레이드도 하지않고 몇년을 넘게 켜두는 경우가 많아

근데 도커는 그 어플 하나를 위한 VM환경을 컨테이너로 구성해준다고 생각하면 돼

이미 리눅스 자체에 깔려있는 환경을 이용하기 때문에 컨테이너 하나의 크기가 작게는 몇메가바이트밖에 되지 않는 경우도 있어

기술적으로 들어가면 복잡한데, 그건 알 필요 없고 그냥 자주 쓰이는 유용한 컨테이너(도커에 올라가는 이미지)에 대해 알아보자

 

아래 나오는 컨테이너들은 네이버에 검색해도 설치방법이 나오니까 설치는 알아서 해라

 

 

1. Plex

개인 미디어 파일 관리에선 거의 최고로 편한 옵션이라 보면 됨. 너의 파일들을 모아서, 개인 넷플릭스를 만들어준다.

심지어는 19금 일본 야동도 메타데이터를 통해 DMM 야동판매 페이지마냥 자켓과 소개글이 나오도록 만들 수도 있다.

아이폰/안드로이드/윈도우/맥/각종 스마트TV 등 상상하는 왠만한 모든 기기에 Plex 어플이 있음

요샌 Plex에 음악 넣으면 멜론처럼 쓸수도 있게 plex music 앱도 나왔더라

Plex가 워낙 유명하고 잘 되어있어서 Plex만을 관리하기 위한 tautulli, ombi같은 컨테이너도 있는데, 이건 심화니까 이런게 있다는 것만 알아둬

2. Portainer

니가 올린 컨테이너들을 관리하는데, 시놀로지의 GUI 화면은 은근 한계가 많을 거임. 아니면 아예 CLI로 설치한 유저도 있을거고.

이 컨테이너는 컨테이너를 설치하고, 관리하고, 지우기 편한 GUI 환경을 구성해줌

Rancher를 쓰는 사람도 있다는데 난 포테이너밖에 안써봐서

3. Nginx Proxy Manager

시놀로지는 DDNS라는걸 제공해줌. 간단하게 너의 시놀로지로 접속시켜주는 인터넷 주소라고 생각하면 됨.

그 주소를 활용해서, 서브도메인 (도메인인 dcinside.com에서 앞의 gall. 이게 서브도메인이다. 그 도메인 내부의 다른 방으로 이어지는 주소라 생각하면 됨)으로 보내주는게 Nginx임. 니 서버 내에 그 방을 어딘지, 방의 주소는 무엇인지 설정할 수 있음

Nginx Proxy Manager는 nginx를 쉽게 쓸수 있게 해줌. 만약 DDNS 대신 개인 도메인을 사용하기로 마음먹었다면(보통 3년에 3만원 정도 한다), 그 도메인의 서브도메인으로도 이어줄 수 있음.

위의 Plex로도, 혹은 네가 구성한 혼자만의 마나모아나 히토미로도 널 데려가 줄 수 있다는 것이다

traefik도 요새 많이 쓰는데, 초심자에겐 NPM을 훨씬 추천함

4. Transmission

걍 토렌트 클라이언트임. 더 말이 필요없음

나스의 장점은, 게임을 하기 위해 ㅈㄴ 좋은 그래픽 카드와 오버클럭한 라이젠이 전기를 빨아먹는 메인 컴퓨터를 켜지 않고도 24시간 토렌트를 쓸수 있다는 점임

VPN이랑 연계시키는 방법도 있는데 귀찮아서 생략

클모 사이트를 잘 찾아보면 Transmission + proxy + vpn 을 한방에 깔아주는 docker-compose(도커 설치 스크립트)를 구할 수 있음

5. Lychee

개인 구글포토. 근데 개인적으론 AI 기능이 들어가지 않아서 구글포토라고 하기엔 좀. 그냥 사진 관리.

구글포토가 사진 화질을 열화시킨다는 엿같은 단점이 있기 때문에 사진이 중요한 사람들은 나스를 많이 쓰곤 함.

물론 시놀로지를 쓴다면 시놀로지에서 이미 AI 학습시키고 폰 어플도 있는 시놀로지 포토를 써도 됨.

Photoprism이라고, tenserflow란 AI 학습 도구를 활용한 찐 개인 구글포토가 있는데, 아직 폰 어플이 제대로 나오지 않았음

6. radarr, sonarr, jackett

토렌트를 니가 직접 긁으면 귀찮겠지? 토렌트 사이트에 올라온걸 긁고(jackett), 거기서 니가 원한 영화(radarr)나 드라마(sonarr)를 자동으로 위에 언급한 transmission에 올려줌. 자세한 설정방법은 서술 안하니 알아서 찾아봐

7. Nextcloud

시놀을 쓴다면 필요없을수도 있는, 걍 클라우드임. 여러사람한테 나누어줄 수도 있고, 많은 self hosting docker container가 넥스트클라우드랑 연계되는 경우가 많아 그냥 소개해봄

8. watchtower

도커 컨테이너 많이 올리면 관리하기 귀찮아짐. 지가 알아서 컨테이너 업데이트시켜줌

9. Home Assistant

소개할까 말까 좀 고민했음. 애플의 홈킷/삼성의 스마트싱스같은 스마트홈 프론트엔드인데, 셀프호스팅에다 커스텀가능한 범위가 넓음. 근데 난 안씀. 좆같이 어려움. yaml파일 진짜 좆까 시발 ㅗㅗㅗㅗ

10. 마이코믹스

니가 히토미 다운로더로 받은 히토미 파일 / 만화파일 (zip이든 폴더이든)을 마나x아처럼 볼 수 있게 해줌. 에어코믹스나 양놈들 쓰는 것도 써봤는데, 따로 어플 필요없이 웹에서 바로 볼 수 있는, 코리안이 만든 마이코믹스가 제일 좋았던거같음. 꿈꿔라 넥스트 박사장

그 외에도 ㅈㄴ 다양한 컨테이너들이 있음. 니가 폰/컴으로 상상하는 거의 모든 서비스가 도커로 셀프호스팅이 가능하다고 보면 됨

IV. 저장공간의 안정성과 성능

나스 얘기 하면서 나스 고유의 기능인 저장 기능에 대한 얘기를 별로 안했네. 근데 별로 재미 없는 내용이니까 나는 무지성 시놀 쓸래 하면 1.만 읽어라

0. 레이드

레이드0= 하드 2개에 내용을 분산시켜 저장함. 속도는 하드 2개분 나오는데 1개 죽으면 데이터 다죽음

레이드1= 하드 2개의 내용이 똑같아서 1개 죽어도 파일 멀쩡. 읽기 속도는 2개를 분산해서 읽기 때문에 2배의 속도가 나오지만 쓰기속도는 같이 써야되서 1개 순차속도가 나옴

레이드5=하드 여러개가 있으면 파일의 복구 정보를 하드 1개분량 만들어서 섞어섞어함. 5개 하드 레이드5이면 1개 하드가 죽었을 때 다른 하드 고장나기 전까지 다른 하드를 넣으면 정보를 잃어버리지 않음. n-1의 순차속도가 나옴. 랜덤속도는 하드 1개 속도밖에 안나옴

레이드6=복구정보가 2개분량. n-2의 순차속도가 나옴. 랜덤속도는 하드 1개 속도밖에 안나옴. 복구 정보 2개분량 만드느라 연산력이 많이 필요함

레이드10=레이드1로 구성된 하드를 레이드0구성함. 순차, 랜덤 속도 모두 뛰어나지만 하드 4테라 4개가 있으면 니가 쓸 수 있는 용량은 온리 8테라

1. 시놀로지

시놀로지는 리눅스 고유의 ext4 혹은 btrfs를 씀. ext4는 역사가 오래된 리눅스 전통의 파일 시스템이라 속도 잘나오고 안정성 뛰어나다고 보면 됨.

근데 btrfs를 더 추천함.

그 이유는 첫째 btrfs에는 저널링 기능이 있음. 주기적으로 스냅샷을 찍으면 랜섬웨어 걸렸을 때 그 전으로 스냅샷 복귀! 하면 완전히 싹 복귀됨. 맥북 쓰는 게이들은 타임머신 기능이 뭔지 알텐데, 대충 비슷하다고 보면 됨. 랜섬웨어가 아니어도 개인 작업 중 실수로 날려먹거나 잘못 저장했다면 옛날 스냅샷 ㄱ 하면 되는 개꿀기능

둘째는 SHR. 시놀로지 하이브리드 레이드의 약자인데, 원래 리눅스의 소프트웨어 레이드 기능은 크기가 다른 디스크는 용량으로 인식을 못하는데, SHR은 다른 용량인 경우에도 니가 설정한 안전성 수준(SHR=복구정보 1개분, SHR2=복구정보 2개분)을 제외하면 전부 용량으로 만들어줌. 개꿀기능이라고 생각

위에서 설명했다시피, 보통 시놀로지로 구성하는 raid5(shr), raid6(shr2)는 랜덤 수치를 늘려주지 못함. 즉, 5개를 모으면 순차 속도는 500MB/s급으로 빨라지는데 랜덤 속도는 여전히 하드 1개 급일 수 있다는 거임.

게다가 나스의 루트 저장소를 사용자 하드에 까는 애미없는 시놀로지 특성상 지속적으로 랜덤io가 발생하기 때문에 너의 하드들의 속도와 성능을 잡아먹음.

 이걸 극복하기 위해선 1. 캐쉬달던가 2. 하드 대신 스스디 달던가 3. raid10구성하던가.

시놀로지에는 NVME를 캐쉬(btrfs의 bcache 기능으로 알고 있음. bcache는 잘 모르는데 아마 tiered storage일거임)로 사용할 수 있음

1개 넣으면 읽기 캐쉬, 2개 넣으면 raid1을 구성해서 쓰기 캐쉬

루트 파일들이 스스디에 있으면 레이드 어레이의 부하를 줄이는데 큰 도움이 되며 도커 등의 어플리케이션과 작은 파일의 탐색 기능 등을 특히 빠르게 해준다고 알고있음(리눅스의 ls기능, 혹은 윈도우 파일탐색기 들가서 더블클릭할때 덜 멈춘다고 생각하면 됨)

NVME는 베스트 옵션은 optane이지만, 32기가는 너무 작고 큰 용량 옵테인은 22110이라 안들어감. 캐쉬는 크면 클수록 좋기 때문에, 그냥 내구도 나쁘지 않은 거중에 싼거 써

스스디로만 넣으면 비싸긴 한데 성능은 훨씬 좋긴 할거임. 그렇다고 스스디를 넣기 위한 620slim은 비추. 여기 들어간 프로세서는 듀얼코어이며, 많이 구매하는 920+의 절반의 성능밖에 나오지 않음.

raid10은 돈 엄청 많지 않으면 저장공간 아깝고 하드 여러개 수준의 랜덤 수치여봐야 느브메에 익숙해진 슾붕이들을 만족시켜주지 못할 것임

참고로 시놀에 램을 많이 넣어도 파일 서버로서 큰 효용은 없음. 왜냐하면 btrfs의 램 캐시 정책은 단순히 전에 사용한 파일을 저장하는 것으로 알고 있음. 그리고 램을 무작정 늘린다고 그 공간을 파일 캐시로 사용하지도 않고. 램을 늘리는 건 나스로서의 성능보다는 서버로서의 성능에 더 도움이 될거임

2. 시놀로지의 단점

시놀로지 나도 오래 써봤고 이쁘고 좋은데, 하드웨어값 존나 창렬함. 5년전 CPU를 21년에 최신버전이라고 넣어주고, 섀시는 근 10년째 우려먹는중. 서버 루트 저장소가 따로 존재하지 않아서 나스를 구동하기 위한 끊임없는 I/O 부하가 너의 하드에 부과됨. bcache 기능 넣어준건 좋은데 안정성에 여전히 의문이 있고, 일반 소비자용 ssd 싸구려 넣으면 캐쉬 특성상 수명 녹아내리며, 2280까지밖에 넣지 못하기 때문에 PLP기능이 있는 느브메를 넣을 수 없어 정전에 취약함(대체 이럴거면 왜 쓰기캐쉬를 raid1에만 활성화시켰는지 의문임)

이런 단점을 극복하기 위한 방법으론 자작이 있음.

큐냅? 버팔로? iptime? 걔네 사느니 시놀 사라

3. 자작 OS

심화니까 간단하게 소개함

3-1. 헤놀로지

해킹된 시놀로지. 시놀로지의 소프트웨어는 그대로 쓰면서도 하드웨어는 원하는대로 구성 가능. 근데 머 어떻게 하면 밴먹는다고 알고있으니 알아서 찾아봐

3-2. OMV (openmediavault)

최신버전이 5였던가로 알고 있음. docker 쓸수 있음. ARM 지원하기 때문에 라즈베리파이 쓰는 존나 가벼운 나스를 원한다 하면 이거밖에 없고. 근데 내가 안써봐서 파일시스템을 뭐쓰는지 잘 모르겠음

3-3. TrueNAS

ZFS라는 ㅈㄴ 강력한 파일시스템을 쓰는 나스. 사실 ZFS는 파일시스템보다는 더 넒은 개념인데, 뭐 어쨌든. 문제는 FreeBSD란 슾붕이들도 못들어봤을 마이너한 운영체제를 사용하는데, 어쨌든 GUI로만 사용가능.(한글화는 안되어있다) 추가로 리눅스 데비안 기반의 TrueNAS Scale이 곧 등장 예정임(근데 얘 도커가 아니라 kubernetes 쓰더라 시발 ㅋㅋ 어려워서 도망침)

zfs궁금하면 물어보셈 아는만큼 답해줌.

V. 파일 공유 프로토콜

시발 진짜 마지막

1. SMB

보통 윈도우에서 쓰는 파일 전송 프로토콜. 보안상 취약하기로 악명 높음. SMB1을 쓴다? 넌 이미 랜섬웨어에 걸려있다. SMB3 등 최신버전을 무조건 사용할 것. 보통 내부망 공유에서 많이 씀

2. AFP

애플 파일 프로토콜. 미개해서 애플도 버리고 SMB로 갈아탐. 그래도 맥북 쓰는 게이들 타임머신 설정엔 유용한데, 이마저도 조금 신경쓰면 SMB에서 타임머신 설정 가능

3. Webdav

시놀로지 포트 5005. 외부망 공유에 자주 사용하는데, 나도 외우고 있다 시피 ㅈㄴ 취약함. 해커들이 니 집 건드려본다? 포트 22(ssh) 다음 건드려보는게 5000(시놀로지 관리 페이지)랑 5005임. 5000이랑 5005는 꼭 바꿔서 쓰자. 바꾸는 방법은 초록창 검색하면 잘 나옴

4. ftp

쓰지마 제발

5. sftp

보안이 좀 강화된 ftp. ssh포트 쓰는데, 걍 모르면 쓰지마 제발. 시놀로지 뭐 설치하는데 ssh포트 필요하다고 하면 쓴다음에 닫는거 제발 까먹지마

6. iscsi

피시방 점주 아저씨들이 나스를 쓴다? 보통 이거. SAN컴퓨터는 iscsi를 내장 저장매체로 인식하기 때문에 안에 스스디 없는 컴퓨터도 iscsi 저장소에 윈도우 깔고 쓸 수 있음. 여러 PC에 공유도 가능하니까 슾은 많은데 스스디는 부족한 슾붕이는 iscsi를 활용해보도록.

iscsi는 머 위에서 소개한 SAN개념이라 생각하면 됨. 내가 내부망 광모듈 10기가다 하면 써보던가

7. nfs

네트워크 파일 공유. 특정 용도로 쓰이긴 하는데 그냥 smb 써

결론: 내부망엔 SMB / 외부연결엔 Webdav

 
alex cheung gQdPafWDSyk unsplash

jainath ponnala 9wWX jwDHeM unsplash

Similar Posts