NAS로 쓸 요량으로 자취방에 hp 마이크로서버 N54L을 들였습니다. 슬슬 열 달은 족히 넘어간 것 같네요.

램도 증설해서 ECC 4GB, 하드디스크도 3TB 두 개 물렸습니다.


상용 NAS를 쓰면 Out-of-Box로 하드디스크만 물리면 구성이 끝납니다만, PC 하드웨어를 NAS로 굴리려면 OS가 필요합니다.

정석대로 하자면 OS 뿐만 아니라 서버 프로그램도 설정해야 합니다만, 일반 유저가 서버 구성하기는 버거운게 사실이죠.


다행히도, 이런 고달픈 경험을 한 외국의 geek들이 NAS 전용으로 튜닝한 OS를 이미지째로 배포하고 있습니다.

FreeNAS나 NAS4Free, OpenMediaVault 정도가 대표적인 NAS 전용 OS입니다.

(상용 NAS에서 사용하는 OS를 해킹-_-해서 올릴 수도 있습니다만 이건 넘어가기로 하구요.)


어느걸 쓸 지 좀 고민좀 하고 자료도 찾아보고, 가상머신에 세팅도 해 보면서 장단점을 체감해 봤습니다.

결론부터 말씀드리면 NAS4Free 로 정착하고 토렌트 + SSH key login 가지고 미디어 스트리밍 서버로 잘 써먹고 있습니다.

기능 확장이 아쉬운건 사실입니다만, 기본적으로 필요로 하는 기능은 다 제공되니까 아쉬운대로 쓸 수 있고,

하드디스크를 온전히 데이터 저장용으로 활용할 수 있다는게 마음에 들었거든요.



이 글에서는 3가지 OS에 대해 체감적으로 정리한 장단점을 요약해 보겠습니다.

버전은 일단 2015년 1월1일 현재 최신버전 기준이며 각 OS별로 써 두었습니다.



1. FreeNAS (RELEASE 9.3)

FreeNAS는 ix시스템즈에서 FreeNAS를 인수한 뒤, Django 기반으로 갈아엎으면서 최신 기술을 적극적으로 도입하고 있습니다.


- UI

최신 웹기술을 도입하는 덕에 UI는 세련되어 있습니다.

트리구조의 UI를 기반으로 하며, 각종 설정창도 Dialog window로 뜨고 그래픽 환경을 활용하고 있습니다.

다만 메뉴 자체가 직관적이지는 않습니다. 설정 찾아들어가는게 클릭을 여러번 요구하고 설정이 여기저기 흩어져 있습니다.


b_93systeminformation.png



- 파일시스템

FreeBSD 기반인 탓에 Z-파일시스템(ZFS)을 사용합니다. 유닉스 파일시스템(UFS) 지원은 9.3버전부터 제외되었다네요.

물론 타사 시스템(?)인 UFS, FAT, NTFS, EXT 파티션을 읽기전용으로 마운트 할 수는 있습니다.


ZFS 특성상 스냅샷 등 각종 기능이 매우 강력합니다.

파일시스템 수준에서 압축 지원, RAID 지원, 자체 오류복구 능력 등 데이터 보관에 있어서는 최적이라고 할 수 있겠습니다.

다만 그만큼 오버헤드가 크고 고성능 시스템을 요구합니다.


참고로 FreeNAS의 ZFS는 독자적인 플래그를 사용하여, 타 OS에서 호환성이 지극히 떨어진다고 합니다.

리눅스나 FreeBSD에서조차 마운트 불가능한 경우가 있다고 하니 타 시스템으로의 이전은 거의 불가능하다고 봐야겠습니다.



- NAS 기능

NAS로서의 기능은 딱 파일공유 기능과 SSH만 지원합니다.

기본 제공하는 서비스는 AFS, CIFS(SMB), NFS, Rsync, FTP, TFTP, WebDAV, SSH, iSCSI target 정도입니다.

그 외에 네트워크 관리 프로토콜 및 Dynamic DNS 정도를 지원하고, 흔한 토렌트 클라이언트조차 없습니다.


대신 Jail을 이용한 플러그인 기능을 제공합니다. 토렌트나 웹서버, owncloud 등 다양한 플러그인을 원클릭으로 설치할 수 있습니다.

심지어는 마인크래프트 서버나 BTSync(비트토렌트 기반 P2P동기화 프로그램)도 설치할 수 있습니다.

물론, Jail은 일종의 가상머신이므로 오버헤드가 크고, IP를 추가로 점유하는게 단점입니다.



- 하드웨어 요구사양

ZFS 때문에 상당히 높은 사양을 요구합니다. 공식적으로 RAM 8GB를 요구하며, 부트 파티션도 8GB 이상을 권장합니다.

당연하지만 x64버전만 제공합니다. x86에서는 RAM 지원이 4GB로 제한되니까요.




2. NAS4Free (9.3.0.2 build 1213)

사실 NAS4Free의 뿌리는 FreeNAS 와 같습니다.

ix시스템즈가 FreeNAS 상표권을 인수한 뒤, 이에 반발한 일부 개발자가 이를 Fork하여 개발을 계속한 것이 현재의 NAS4Free입니다.

안정적인 기능 구현에 무게를 두고, 구버전의 UI를 거의 그대로 가져오고 있습니다. 그만큼 투박합니다.


csm_main_index_1519_439ad5515a.png



- 파일시스템

역시 FreeBSD 기반인 만큼 ZFS를 제공합니다만, 빵빵한 기능을 FreeNAS만큼 적극적으로 활용하지는 못합니다.

스냅샷 찍는 시간간격 지정이 굉장히 지저분하고, 그나마도 파티션 단위로 촬영이라 개별 파일의 롤백이 어렵대요.

이쯤되면 FreeNAS 대비 굉장히 후진(...) 것 같지만, ZFS 장점이 모두 날아가는 것은 아니니까요.

NAS4Free의 ZFS 구현은 독자 플래가 없고, 따라서 타 OS에서 ZFS 마운트에 문제 없다고 합니다.


NAS4Free는 xNIX 전통의 UFS 파일시스템을 사용할 수도 있습니다. ZFS의 복잡한 설정이 싫다면 이 쪽이 더 나을 수도 있겠습니다.

물론 FAT, EXT2, NTFS 등을 읽기쓰기로 마운트할 수도 있습니다. 읽기전용으로만 사용하는 것을 권장하지만요.



- NAS 기능

파일 공유 기능으로 SMB, NFS, AFS, FTP, TFTP, Rsync, iSCSI target을 지원합니다.

부가 기능으로 Unison, iTunes server, DDNS, Lighttpd, 비트토렌트를 지원합니다.

대신 확장이 거의 불가합니다. 되는건 잘 되지만 거기까지가 한계. 시스템 파티션이 램디스크거든요.


그리고 ACL을 지원하지 않습니다. 즉슨 종래의 xNIX 파일권한 가지고 접근제어를 해야 합니다.

파일이나 폴더 단위의 세세한 접근제어는 불가능하다고 봐야 합니다. 단지 사용자 그룹만으로 제어해야 합니다.



- 하드웨어 요구사양

FreeNAS보다는 확연히 낮은 사양을 요구합니다.

USB 설치에 2GB면 충분하고, RAM 또한 램디스크 구동시 2GB면 됩니다. ZFS를 쓰려면 4GB는 필요하지만요.

SWAP 파티션을 구성하면 RAM 2GB 미만에서도 돌릴 수 있습니다. 진짜로 RAM을 쥐어짜면 512MB에서도 돌릴 수는 있대요.


USB 설치가 기본 권장사양이며, 램디스크를 이용하여 USB I/O를 극단적으로 억제한다고 합니다.

모든 하드디스크를 데이터 저장용으로 사용하면서 시스템 수명을 늘리려는 선택의 결과입니다.

그 결과 시스템 파티션 튜닝이 불가능합니다. 램디스크니까 재부팅하면 모든 변경사항이 손실됩니다.

물론 하드디스크나 USB에 시스템 파티션을 직접 설치할 수도 있습니다만, RAM이 극단적으로 부족하여 램디스크를 사용할 수 없는 경우

또는 개발목적으로 필요한 경우가 아닌 이상은 별로 추천하지 않는다고 합니다.


각종 설정들은 XML 형식으로 USB 내부의 별도 파티션에 저장되고, 부트때 매번 설정파일을 새롭게 만들어 냅니다.

당연하지만 이 XML 파일은 루트권한으로만 접근할 수 있습니다. 사용자 계정 암호도 plaintext로 저장되거든요.



3. OpenMediaVault (1.0.20)

위의 2개 OS가 FreeBSD 기반이었다면, OpenMediaVault (OMV)는 데비안 리눅스 기반입니다.

따라서 저장소도 EXT 기반의 파일시스템을 사용합니다. 하드디스크 이식성은 가장 좋겠네요.


스크린샷을 보더라도 FreeNAS와 굉장히 유사한 트리구조 UI를 갖습니다.


systemstatus.png



사실 전 OMV를 직접 사용해 보지는 않았습니다. ISO를 다운로드 받아서 VM에서 설치화면까지는 갔어요.

그리고 데비안 설치화면이 뜨는걸 보고 혹시나 하는 마음에 위키에서 설치페이지를 확인했습니다.


USB 설치를 권장하지 않는대요. 설치할 수는 있지만 지속적인 I/O가 발생하며 USB 수명에 치명적이라고 합니다.

결국 디스크 하나를 희생해서 OS용으로 굴려야 한다는 이야기입니다.

4포트 하드웨어에서 한 개 포트를 희생하여 OS를 돌리라는 것은 영 꺼림칙한게 사실이라, 이 시점에서 설치를 포기했습니다.