0. 개요 

 

제가 라즈베리 파이 4를 NAS 용도로 구입해서 실제로 사용한지도 꽤 지났고 원래 가이드 글을 본격적으로 쓸 계획이었으나... 비교적 쉽게 공유기 메뉴만 눌러서 설정할 수 있는 iptime 공유기 NAS와는 달리 라즈베리파이 등 싱글보드 컴퓨터(SBC)를 이용한 자작 NAS 구현법은 어느정도 사용자가 리눅스에 익숙하지 않다면 너무 막히는 곳도 많고 자세히 공부해야 할 곳이 많습니다. 

저도 간단하게 다룰 줄은 알지만 리눅스 사용법을 체계적으로 남에게 가르칠 만큼 본격적으로 알지는 않기 때문에 타 사이트에 적힌 영어 튜토리얼들을 모아놓고 실제 사용하는 입장에서 간단한 팁 몇 개를 소개하는 정도 선에서 써 볼까 합니다. 

 

준비물은 라즈베리 파이 4B, iptime A3004NS-M등 DDNS와 VPN을 지원하는 공유기, 외장하드, 운영체제를 설치할 8GB 이상의 micro SD카드, 파이용 충전기(5V 3A) 등 기타 물품입니다.

 

 

1. 라즈베리 파이 4B (Raspberry Pi 4B)

 

라즈베리 파이 시리즈는 싱글보드 컴퓨터/초소형 PC 하면 가장 먼저 떠오르는, 어찌 보면 SBC라는 분야 자체를 개척했다고도 볼 수 있는 대표주자입니다. 

절대적인 성능이나 기능 등은 Rock64/Odroid 등 타사가 만든 SBC 경쟁자에 밀릴지라도 저렴한 가격과 방대한 커뮤니티 지원, low-level 까지 오픈된 documentation 등을 무기로 내세워 높은 경쟁력을 가졌었지만, 라즈베리 파이 3B+까지만 해도 LAN 연결은 대역폭이 제한되고 USB 버전도 2.0까지밖에 지원하지 않아 NAS용으로는 적합하지 않았습니다.

하지만 라즈베리 4B가 출시되면서 풀 대역폭 기가비트 랜, USB 3.0 포트 2개를 지원하고 고성능 CPU와 대용량 RAM(출시당시 최대 4GB, 현재 최대 8GB) 옵션을 장착하는 등 성능과 기능 경쟁력을 강화했습니다. (충전 역시 USB type-C 5V 3A 로 바뀌고 듀얼모니터 지원 등 기타 추가사항도 있음)

그리고 비교적 덜 유명한 타 제조사 SBC는 한국에서는 구하기가 어렵지만 라즈베리 파이 시리즈는 유저 풀이 넓은 만큼 한국에서도 구하기가 쉽고, 기가비트랜+USB 3.0을 모두 지원하는만큼 NAS 자작 용도로는 아주 훌륭합니다. 

현재 RAM 1GB 제품은 단종되고 2GB/4GB/8GB 제품이 있는데, NAS 용도라면 램용량은 아무거나 쓰셔도 무방합니다. 

 

라즈베이 파이를 비롯한 SBC들은 본질적으로 개발자용으로 만들어지기때문에 박스에 정말 제품 본체 말고는 아무것도 들어있지 않습니다.

USB-C로 연결되는 5V 3A 충전기, 최초 연결시 Micro HDMI로 연결할 변환잭과 모니터, USB/블루투스 키보드와 마우스가 필요합니다. 

그리고 기판이 외부로 노출되어 있어 불안하신 분들은 케이스를 구매하시면 됩니다. 제가 사용하는 케이스는 이 제품입니다.

https://ko.aliexpress.com/item/4000192227574.html

 

US $2.82 |라즈베리 파이 4 케이스, 냉각 팬이 장착 된 라즈베리 파이 케이스, 라즈베리 파이 4 모델

Smarter Shopping, Better Living! Aliexpress.com

ko.aliexpress.com

완전히 동일한 제품을 한국에선 약 2만원에 판매중인 것으로 압니다.

참고로 라즈베리 파이4가 고질적으로 발열이 매우 심한 편이라 케이스를 사용하실 분들은 팬과 방열판 패키지를 함께 구매하시는 것을 추천드립니다. 

 

2. 운영체제 설치 및 최초 세팅

 

https://www.raspberrypi.org/documentation/installation/installing-images/

 

Installing operating system images - Raspberry Pi Documentation

documentation > installation > installing-images Installing operating system images This resource explains how to install a Raspberry Pi operating system image on an SD card. You will need another computer with an SD card reader to install the image. Befor

www.raspberrypi.org

 

운영체제 설치는 공식 홈페이지 가이드를 참고하시기 바랍니다. MicroSD 카드에 운영체제 설치이미지를 복사하는 가이드입니다.

복사가 완료되면 라즈베리 파이에 SD 카드를 꽂고 USB-C 전원을 연결하시면 자동으로 부팅이 됩니다. 

 

최초 세팅은 대부분 자동으로 이루어지며, 세팅이 끝난 후 랜선을 이용해 공유기와 파이를 연결해주고, USB 3.0 단자에 외장하드를 꽂습니다. 

외장하드의 파일시스템은 이상적으로는 EXT4로 포맷되어 있어야 최대 속도가 나오지만, NTFS로도 약 80% 성능은 무리없이 내 주기 때문에 저는 NTFS를 사용했습니다. 

 

sudo fdisk -l 을 이용해 현재 시스템에 연결된 하드디스크 및 파티션을 확인하고 (/dev/sda1 등)

sudo mount -t ntfs-3g /dev/sdxx /mnt/hdd 등의 명령어를 이용해 해당 파티션을 특정 폴더에 마운트해서 테스트해본 후 fstab을 작성하면 됩니다. 

 

제가 사용하는 /etc/fstab의 자동마운트 설정은 다음과 같습니다.

UUID=XXXXXX /mnt/hdd ntfs-3g auto,nofail,late,rw 0 0 

 

/dev/sda1 과 같은 논리 주소는 그 때마다 바뀌기 때문에 UUID를 이용해서 작성하는 것이 좋습니다. 외장하드의 UUID는 /dev/disk/by-uuid 폴더의 링크를 "ls -al" 로 확인하면 알 수 있습니다.

마운팅 포인트는 어디로 잡아도 크게 상관은 없으나, 보통 해당 목적으로 /mnt/ 가 만들어져 있습니다. 여기에 원하는 이름으로 폴더를 만들면 됩니다.  "chmod 777" 로 읽기/쓰기/실행을 자유롭게 바꿔 두는 것이 좋습니다. 

 

일반 ntfs보다 ntfs-3g가 안정성이 높아 해당 마운팅 옵션을 사용했습니다. 

"nofail" 옵션은 해당 외장하드가 없을 때 부팅이 실패하는 일을 막기 위해서 넣었습니다. 

"late" 옵션은 해당 외장하드의 마운팅이 부팅과정에서 드라이버 로드 전에 이루어지면 실패하기 때문에 임의로 딜레이를 주기 위해 넣었습니다. 

 

 

 

3. Samba를 이용한 SMB 서버 구축

 

https://www.raspberrypi.org/documentation/remote-access/samba.md

 

Raspberry Pi Documentation

documentation > remote-access > samba Samba/CIFS Samba is a implementation of the SMB/CIFS networking protocol that is used by Windows devices to provide shared access to files, printers, and serial ports etc. There is a comprehensive Wikipedia page about

www.raspberrypi.org

https://pimylifeup.com/raspberry-pi-samba/

 

How to Setup a Raspberry Pi Samba Server

Setup network attached storage.

pimylifeup.com

 

공식 홈페이지, 또는 다음 블로그 글을 참고하시기 바랍니다. 

 

대략적으로 절차는 다음과 같습니다. 

 

1. Samba 설치

2. sudo adduser user1 명령어로 원하는 사용자 작성 

3. sudo smbpasswd -a user1 명령어로 samba를 사용할 유저 아이디/패스워드 작성

4. /etc/samba/smb.conf 파일을 수정해 "share" 이름과 설정을 마침

 

예시 share는 다음과 같습니다. 

 

[pishare] -> Share 이름

path = /mnt/hdd -> 해당 share에서 공유할 폴더 

read only = no

writeable=yes

browseable = yes

valid users = user1 -> smbpasswd -a 명령어로 추가한 유저 이름

create mask=0777

directory mask=0777

public=no

 

sudo systemctl restart smbd 명령어를 사용해 smb 설정을 업데이트해주면 됩니다. 

 

3. DDNS/VPN 서버 설정을 통한 외부접속 설정

제가 이전에 쓴 "iptime 공유기를 이용해 외부에서 SMB 드라이버 쓰기" 가이드의 "DDNS 설정", "VPN 연결" 부분을 참고하시기 바랍니다. 

https://signfang.tistory.com/258

 

Iptime 공유기의 VPN 서버 기능을 이용해 외부 네트워크에서 SMB 드라이브 쓰기

Dropbox나 Onedrive등 상용 클라우드 서비스의 가장 편리한 기능은 역시 "내 컴퓨터에 있는 하드디스크처럼 자유롭게 연결할 수 있는 네트워크 드라이브"입니다. 하지만 내가 원하는대로 용량을 증��

signfang.tistory.com

 

라즈베리 파이를 공유기에 유선으로 연결하고, VPN을 연결하면 기본설정상 "192.168.X.X" 를 공유하는 내부망으로 취급되므로 VPN 서버 접속후+라즈베리 파이에 할당된 내부 ip, 또는 Samba 서버 셋팅을 할때 만들었던 도메인 네임을 이용하면 파이에 접근할 수 있습니다. 

위에 링크한 가이드에서처럼 윈도우에 드라이브 문자를 할당해 마운트시키는 것도 가능합니다.  

예시) 링크된 글에서 기존에는 "\\192.168.1.1\ipsmb"로 마운트했음. 라즈베리 파이의 내부 ip가 "192.168.1.23"이고 내가 설정한 SMB 도메인 이름이 "pismb" 라면 "\\192.168.1.23\pismb" 로 마운트하면 동일하게 사용 가능

 

4. 라즈베리에서 사용하기 좋은 추가 프로그램들

 

SSH 서버: 원격 접속을 사용하기 위해 필수입니다. 기본적으로 설치되어 있습니다. 

Transmission 서버: 토렌트 등을 파이에서 구동하기 위한 인터페이스입니다. 

Pi-Hole: 파이에서 구동되는 네트워크 단위 광고차단 시스템/방화벽입니다. 

Squid: VPN 서버입니다. 하지만 이 구성에서는 라즈베리 파이가 내부망에 연결되어 있기 때문에 큰 효용은 없습니다. 

Mathematica/Minecraft: 상용 프로그램이지만 라즈베리파이 공식 배포판인 Raspbian에 포함되어서 제공됩니다. (재미삼아 해 볼만은 하지만 실질적으로 쓸만한 것은 아닙니다.)

 

5. 결론

 

기존 공유기 NAS를 사용할 때는 불안정하게 30MB/s를 겨우 달성할까 말까 하는 수준이었으나 라즈베리 파이로 NAS 구성을 바꾼 후에는 80MB/s 이상 아주 안정적으로 잘 사용하고 있습니다. HDD는 WD Elements 8TB 모델을 사용하고 있습니다. 

NAS를 본격적으로 구입하기는 부담이 되시지만 공유기에서 구동되는 자체 SMB 서버가 성능이 부족하다고 느끼고, 리눅스를 잘 다루는 분들에게 추천드립니다. 

 

 

----------------------------------------------------------

추가설명 (21.06.03)

 

해당 방법과 같이 외장하드를 NAS로 사용하는 경우 해당 HDD가 자동으로 슬립모드에 들어갑니다. 

이를 막기 위해서 

sudo sdparm --clear=STANDBY /dev/sdx -S

명령어를 통해 슬립모드에 들어가지 않도록 변경하거나 또는 crontab을 이용하여 주기적으로 (약 10분에 한번) 가짜 파일을 하드에 저장하도록 해 주어야 합니다. 

 

+ Recent posts