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
완전히 동일한 제품을 한국에선 약 2만원에 판매중인 것으로 압니다.
참고로 라즈베리 파이4가 고질적으로 발열이 매우 심한 편이라 케이스를 사용하실 분들은 팬과 방열판 패키지를 함께 구매하시는 것을 추천드립니다.
2. 운영체제 설치 및 최초 세팅
https://www.raspberrypi.org/documentation/installation/installing-images/
운영체제 설치는 공식 홈페이지 가이드를 참고하시기 바랍니다. 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
https://pimylifeup.com/raspberry-pi-samba/
공식 홈페이지, 또는 다음 블로그 글을 참고하시기 바랍니다.
대략적으로 절차는 다음과 같습니다.
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
라즈베리 파이를 공유기에 유선으로 연결하고, 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분에 한번) 가짜 파일을 하드에 저장하도록 해 주어야 합니다.
'전자기기 리뷰, 가이드 > 일반 가이드' 카테고리의 다른 글
안드로이드폰에서 OTF/TTF 폰트 사용하기 (안드로이드 10, 11 및 삼성 기기 사용 가능) (21) | 2021.01.12 |
---|---|
삼성 안드로이드폰에서 트루타입(ttf) 폰트 사용하기 (17) | 2019.10.07 |
스마트폰, 태블릿 등 깨진 유리 임시 수리 - UV 글루 이용 (2) | 2019.09.18 |
Iptime 공유기의 VPN 서버 기능을 이용해 외부 네트워크에서 SMB 드라이브 쓰기 (5) | 2019.03.28 |