iptime 공유기를 통한 NAS 한계 경험

파일공유를 간단하게 사용하려면 iptime 공유기에 내장된 NAS 기능도 쓸만합니다. 다만 너무 느리다는 것!

공유기의 한계로 겨우 20MB 정도 전송을 할 수 있고, TV연결용 Media 서버로서는 최근의 고해상도 동영상의 bandwidth를 감당하지 못합니다.

 

전용 NAS(최소 20만원 부터)를 구매할 것인가?

시놀로지(Synology)를 비롯한 iptime 등등의 업체에서는 전용 NAS 서버를 다양한 가격에 판매 중입니다. 하지만 최소 20만원은 투자해야 하고, 이 경우 상시소모전력의 문제도 고민을 해야 한다는 것

14TB USB 3.0 외장 HDD를 활용 해야 한다는 것!

 

싱글보드 컴퓨터(SBC)를 활용한 NAS

싱글보드 컴퓨터(SBC) - 예로서 라즈베리 파이(Raspberry pi)와 같은 매우 작고 전력 소모도 작고 가격도 저렴한 linux 머신으로 NAS를 구축하는 방법도 있습니다.

Raspberry pi 4

그런데 Raspberry pi 로 NAS를 제대로 구축하려면 네트워크 연결 속도, USB 연결 속도를 고민해야 하는데, 만족하는 기기는 Raspberry pi 4를 사용해야 함. 그런데 가격이 안드로메다의 거리로 멀어져서 현실성이 없음. 그 가격이면 전용 NAS를 구입할 지경으로 말도 안 되는 가격이 되어 버렸고, 구할 수도 없음!

 

ODROID-M1

Aliexpress 에서 볼 수 있는 Orange Pi를 고민을 했는데, 성능은 빵빵했으나 Linux 지원 문제와 바로 사용하기에 무언가 기능이 하나씩 사용하기 힘들게 되어 있더라는...

그래서 최종 선택한 SBC 는 국내업체 HARDKERNEL에서 판매 중인 ODROID-M1을 선택했습니다.

아래의 장점이 있습니다. (제 기준)

  • 1 Gbps 표준 RJ45 이더넷 포트
  • M.2 NVMe PCIe 3.0 2 lane (80 사이즈 바로 장착)
  • 표준 SATA3 연결단자 존재
  • USB 3.0 * 2
  • 큰 방열판의 무팬
  • 적은 소비전력
  • 4GB 모델, 배송비 포함 최종가 103,400 원 (본체 91,000 + 배송비 3,000 + 세금 9,400)

 

ODROID-M1 으로 USB 3.0 외장 HDD 활용 NAS 구축

우선 Linux 설치를 해야 합니다.

ODROID-M1 에서 쉽게 할 수 있는 접근이 아래의 4가지가 존재합니다.

  • Micro SD 카드에 설치
  • eMMC 모듈에 설치
  • SATA 장치에 설치(HDD, SSD)
  • NVMe 장치에 설치(SSD)

저는 이미 가지고 있던 NVMe SSD를 활용하여 설치합니다. 저렴하게 하려면 Micro SD 설치가 있겠지만 이미 있는 NVMe SSD를 활용하고자 ODROID-M1 을 선택한 것이죠 ㅎ

저렴한 NVMe SSD는 Micro SD 카드 가격보다 약간만 더 주셔도 됩니다. (저는 예전 매우 비싼 값(3x만원)에 구매했던 512G를 재활용)

 

더 싸고 더 빠른 970 Evo를 컴퓨터에 새롭게 넣고, 950 PRO는 ODROID로~

950 PRO M.2 의 반에반값에 구매한 970 Evo plus를 컴퓨터에 넣고, ODROID로 재투입!

 

아래처럼 표준 2280 MVMe SSD가 그대로 장착!!! - 막강 linx 머신의 출발이네요

 

Linux 설치과정

상세 guide는 공식 Wiki ->  https://wiki.odroid.com/odroid-m1/getting_started/os_installation_guide#tab__odroid-m1 

위 사진과 같이 NVMe 설치, HDMI 연결, 키보드 연결 후 전원(12V 2A)을 연결하여 부팅합니다.

ODROID M1은 기본 firmware - Petitboot가 있어 Raspberry pi 처럼 SD 카드를 미리 준비, 부팅 없이 시작 가능!

Petitboot - Exit to shell로 진행, PC에서 mount 한 드라이브로 linux image 기록

추천 guide: https://forum.odroid.com/viewtopic.php?p=350519&sid=f1983cc495992c186b8b7ccbd2fb68c7#p350519 

(guide 상 두 번째 방법으로 하면 아래 과정 없이 즉시 설치도 가능하다고 함)

 

PC → USB cable로 연결할 수 있고, NVME 첫 번째 파티션이라면

 

0. Petitboot(최초 booting) 후에 shell 로 진입 (Exit to shell 선택)

1. 아래 명령 입력

ums /dev/nvme0n1

2. Micro USB 5 pin 케이블로 PC에 연결하면 NVMe를 PC에서 바로 마운트 되어 사용가능
3. 설치하고자 하는 Ubuntu image 다운로드 (https://wiki.odroid.com/odroid-m1/os_images/ubuntu/20220926)

4. https://www.balena.io/etcher#download-etcher 에서 Etcher 다운로드 후 앞서 준비한 image를 mount 한 드라이브를 선택하여 진행~

5. OS 설치 후 재부팅하면(잠시 기다리면 Petitboot 상태에서 NVMe로 설치한 Linux로 자동 부팅)

 

Ubuntu 부팅 후 기본 설정(IP, 시간 등) 이후 설치는 SSH를 통한 원격 설치가 가능!

여기서 이상한 점이 있는데, Local에서 GUI desktop을 추가 계정으로는 로그인이 불가한 상황이 됨, ssh, x11로는 되는 것을 확인 즉 기본 계정으로는 local GUI 동작 OK, 추가 id에 대해서는 local GUI 로그인이 안 됨.

 

Host 이름 변경

hostname이 기본으로 ubuntu-desktop인데 아래처럼 확인 후 변경(변경이 필요하신 분만)

host 이름으로 NAS 접근을 하기 때문에 나름 고민 후 이름을 정하세요. (ip 직접 접근도 가능 하지만...)

hostnamectl set-hostname new-hostname

그리고 아래 에러가 필수로 발생!
unable to resolve host

아래 수정 동일하게 해야 함 (ubuntu-desktop --> 위에서 변경한 동일 이름으로)

sudo nano /etc/hosts

 

HDD 마운트는 아래처럼

준비: HDD 3.1 포트에 외장 HDD 연결(저는 가지고 있던 외장 USB HDD 14T 연결)

나중에 추가 HDD라면 다른 이름으로 추가 /media/hdd2 등등

❗해당 외장 HDD는 사전에 linux표준인 ext4 로 포맷된 상태 입니다. 필요시에 사전 포맷 혹은 아래 설정의 ext4 등을 해당 HDD에 맞도록 수정 필요 합니다. 단 NTFS 등의 format이 linux에 사전 설치 되었는지 확인 필요 합니다.

 

마운트 할 경로 준비

sudo mkdir /media/hdd

 

임시 마운트 - 부팅 때마다 해 줘야 함

sudo mount -t vfat /dev/sda1 /media/hdd

 

HDD의 UUID 확인

sudo blkid
[sudo] password for odroid:
/dev/nvme0n1p2: LABEL="rootfs" UUID="1b9b5c83-7800-42bb-8333-68091167b25a" TYPE="ext4" PARTUUID="c132d36e-02"
/dev/mtdblock3: LABEL="Compressed" TYPE="cramfs"
/dev/sda1: LABEL="Elements 14T EXT" UUID="3b87ff9e-2c95-7446-850e-eda53c59320b" TYPE="ext4" PARTLABEL="Element ext4" PARTUUID="c55ca990-873d-44fa-9f93-e737bfb9ae4a"
/dev/nvme0n1p1: LABEL="BOOT" UUID="ad14272e-d985-4c35-b844-95e05a7b80dc" TYPE="ext2" PARTUUID="c132d36e-01"
/dev/loop0: TYPE="squashfs"
. . .

 

아래 편집하여 영구 마우트 처리 필요

sudo nano /etc/fstab

 

아래 한 줄 형태로 fstab 파일 맨 아래에 추가 (UUID 확인: sudo blkid )

즉 UUID는 외장 HDD의 UUID 이고 이 HDD는 앞서 준비한 마운트 위치인 /media/hdd 로 붙이게 된다.

UUID="3b87ff9e-2c95-7446-850e-eda53c59320b" /media/hdd ext4 defaults 0 0

 

저장 후 디스크 마운트 (혹은 reboot)

sudo mount -a


소유자 변경! (필요에 따라 사용)

sudo chown -R 사용자명.사용자명 /media/hdd

 

Samba 설치 (NAS 기능의 출발 - 파일공유)

samba 서비스는 추가로 설치해야 함

sudo apt-get install samba -y

 

사용자 추가 (아무나 access와 달리 사용자 지정이 필요한 경우)

sudo smbpasswd -a "사용자명"

 

아무나 access 하기 위한 설정 파일 수정 (집에서만 사용하세요!!!)

sudo nano /etc/samba/smb.conf

 

아래항목을 smb.conf 아래 추가 하면 아무나 access 가능하게 된다. ( https://codedoneright.eu/?page_id=596)

[NAS]
comment = "Home NAS"
path = /media/hdd/NAS
Browseable = yes
Writeable = Yes
only guest = no
create mask = 0777
directory mask = 0777
Public = yes
Guest ok = yes

 

다시 서비스 반영

sudo service smbd restart

위 과정까지 마쳤다면 앞서 host 이름으로 다른 컴퓨터에서 공유 디스크를 사용할 수 있게 됩니다. 

 

 

DLNA 활성화 TV에서 원격으로 브라우징 플레이 가능하게 (MiniDLNA 가 유명한 듯)

이 과정을 진행하면 TV 등에서 NAS로 공유된 미디어 파일을 바로 재생할 수 있게 됩니다.

 

 

1. MiniDLNA 설치

sudo apt-get install minidlna

 

2. 설정 파일 편집

sudo nano /etc/minidlna.conf

 

3. 아래 형태로 수정 진행 - 본의 환경과 취향에 맞추어 더 넣거나 빼거나 수정 필요

inotify=yes
media_dir=V,/media/hdd/NAS/Video
media_dir=A,/media/hdd/NAS/Music
friendly_name=OdroidDLNA

#media_dir=P,/home/user/Pictures
#media_dir=/home/user/Videos

 

4. 서비스 재시작하여 변경사항 적용

sudo service minidlna restart

 

5. 파일 목록 갱신 처리

sudo service minidlna force-reload

 

그 밖의 linux 명령 몇 가지

smb 사용자 등록 확인

sudo pdbedit -L

 

smb 사용자 추가

smbpasswd -a [user-id]

 

jdk 설치

sudo apt install default-jdk

 

 

최종 설치 사진

iptime 8004공유기 옆, 뒤에는 WD Elements 14TB 외장 HDD가 보입니다.

네트웍은 공유기 LAN 1000Mbps 연결, 외장 HDD는 USB 3.0 단자와 연결하여 100MB 조금 넘는 속도를 확보 합니다.

iptime연결의 20MB보다 매우 매우 빠른 속도 확보!

개인 id 로 접속하면 앞서 장착된 NVMe SSD로 되어 있는 영역을 직접 사용할 수도 있습니다. 그래봐야 네트웍 1000Mbps가 제한이 되어 더 빠를 수는 없는 아쉬움^^

 

+ Recent posts