안녕하세요?

저는 6월에 글루시스의 기술팀에 입사한 김진서입니다.

IT 업계에 뛰어들며 다양한 분야와 장비를 접해보았지만, NAS는 알고 있으면서 익숙하지 않았던 기술이기도 했습니다.

Synology NAS를 사용하던 중 다른 NAS도 사용해 보고자 NAS 및 운영체제를 공부하며 정리한 내용을 구독자 여러분에게 전달하고자 합니다.

먼저 Synology는 저에게 가장 익숙했습니다. 초기 구축 비용이 높지만 하드웨어와 소프트웨어가 완성된 기성품 NAS이며 GUI 기반의 전용 OS가 설치되어 개인 사용자 또는 작은 규모의 사무실에서 사용하기에 편리한 이점이 있습니다.

두 번째로는 Linux 기반으로 공개된 기술을 활용하여 NAS를 구축하는 방법이 있습니다.

예를 들어 CentOS 또는 Ubuntu OS를 설치하여 필요한 환경에 맞게 FTP, SMB(CIFS), NFS 패키지를 설치하고 설정할 수 있습니다.

마지막으로 포스트의 목적인 오픈소스 기반으로 개발되어 공개된 완전한 NAS 전용 운영체제를 사용해서 구축할 수 있습니다.

이러한 운영체제는 Synology처럼 NAS에 필수적인 요소들이 기본으로 제공되고, 편리하고 손쉬운 인터페이스로 구축할 수 있다는 장점이 있습니다.

오픈소스 기반의 OS는 OpenMediaVault, TrueNAS 등 다양하게 존재하지만, 이 포스트에서는 좀 더 다양한 기능과 활용성 그리고 안정성을 갖춘 TrueNAS를 설치해 보고 사용하면서 느꼈던 장단점들과 활용 방법을 소개하도록 하겠습니다.

 

TrueNAS 설명

TrueNAS의 역사는 2005년부터 시작되었습니다. 당시에는 FreeNAS 라는 프로젝트로 시작되었으며, 2020년에 iXsystems에 의해 TrueNAS라는 이름으로 명맥을 이어오고 있습니다.

TrueNAS는 일반 CORE 버전, 엔터프라이즈 SCALE 버전이 있으며, 이 포스트에서는 SCALE 버전을 사용하였습니다.

TrueNAS CORE는 FreeBSD를 기반으로 만들어졌으며 TrueNAS SCALE은 Linux 기반으로 만들어졌습니다.

기본 파일시스템으로 ZFS 파일시스템을 지원하고 웹 관리 인터페이스가 편리하고 직관적이라 시중에 판매되고 있는 대형 벤더들의 NAS 제품들과 견주어도 손색이 없습니다.

오히려 Unix/Linux 운영체제에 익숙하다면 가장 강력한 NAS 운영체제라고 볼 수 있습니다.

또한 TrueNAS는 하드웨어 RAID 컨트롤러를 사용하지 않고도 높은 성능과 안정성을 보장하는 특징이 있지만, 시스템 요구 사항이 매우 높다는 단점도 존재합니다.

 

테스트 시스템 소개

테스트에 사용된 시스템은 Inspur 사의 장비입니다. 전체적인 사양은 아래와 같습니다.

  사양
CPU Intel(R) Xeon(R) Silver 4310 CPU @ 2.10GHz * 2
Memory Total 32GB
Power Supply 800W * 2 Unit
Disk Seagate Exos 12TB HDD * 12

Inspur 장비는 BMC(Baseboard Management Controller)를 통해 시스템의 전반적인 상태 확인 및 제어를 할 수 있습니다.

시스템에 장착된 주요 파트는 물론, 스토리지 디스크의 상태까지 확인 가능하며, 일부 장비의 경우 시스템이 부팅된 상태에서도 BIOS 옵션의 변경이 가능합니다.

BMC의 Remote Control 기능은 물리적인 KVM을 사용하지 않고 웹에서 서버의 제어가 가능합니다.

또한 물리적인 KVM이 설치되어 있더라도 관리해야 하는 서버가 많으면 KVM 케이블을 옮겨가며 작업하는 불편함이 있지만, Remote Control KVM을 활용하면 이런 불편함이 많이 해소되고, 다중 서버를 관리하기에 매우 편리한 이점이 있습니다.

TrueNAS 설치

이제 본격적으로 TrueNAS의 설치를 진행해 보겠습니다.

TrueNAS 설치 이미지를 Rufus와 같이 USB 저장 장치를 부팅 미디어로 만들어주는 도구를 사용해서 부팅하게 되면

이런 화면이 보일 것입니다. 부팅을 위한 디스크를 선택하는 화면입니다.

다음 화면은 루트 계정의 패스워드를 설정하는 화면입니다. 보안에 신경 써서 패스워드를 설정합니다.

조금 기다려보면 위와 같이 설치가 완료된 화면이 보입니다.

서버가 시작되면 위와 같은 화면이 보입니다.

네트워크부터 차례대로 진행하고, 서버를 재시작하면 설치가 완료됩니다.

대시보드

설치가 완료되면 시스템의 상태를 한눈에 볼 수 있는 TrueNAS의 메인 화면이 나타납니다.

시스템 관리자에게 필요한 정보를 직관적으로 제공해주고 있습니다.

스토리지 풀/데이터셋 구성

이제 실제 사용할 스토리지 풀(Storage Pool)과 데이터셋(Dataset)을 만들어 보겠습니다.

먼저 스토리지 풀을 생성합니다.

생성된 스토리지 풀(vg)의 우측의 메뉴를 열어 Add Dataset을 실행합니다.

목적에 맞게 비어있는 필드를 채워줍니다.

이제 Share로 이동, Windows (SMB) Shares에서 Add를 눌러 CIFS/SMB 공유를 만들어 줘야 합니다.

접근 제어(ACL, Access Control List)

그룹별/사용자별 권한을 제어해보겠습니다.

시나리오는 아래와 같습니다.

  • 개발팀(DEV)
  • 영업팀(SALES)
  • 기술팀(TECH)

세 부서가 있으며, 각각 전용 디렉터리를 생성할 것입니다.

그리고 타 부서의 전용 디렉터리는 서로 접속을 못 하도록 접근 제한을 설정해 놓습니다.

저는 DEV / SALES / TECH 라는 이름의 그룹들을 추가했습니다.

이후 SALES1 / SALES2 / DEV1 / DEV2 / TECH1 / TECH2 라는 이름의 사용자들을 추가했습니다.

사용자를 추가할 때 원하는 그룹에 종속되게 할 수 있습니다.

물론 모든 사용자를 다 추가한 후, 그룹 속성에서 원하는 사용자를 종속시키는 것도 가능합니다.

SMB/CIFS 마운트

이제 Windows 클라이언트에서 SMB 프로토콜을 통해 공유 디렉터리를 마운트해보겠습니다.

생성한 데이터셋에서 View Permissions 으로 들어갑니다.

연필 모양으로 된 Edit 버튼을 눌러줍니다.

Add Item을 선택하여 추가해두었던 사용자 혹은 그룹을 추가합니다.

권한을 제대로 설정했다면 부서별 전용 디렉터리를 만들 수 있습니다.

NFS 마운트

이제 Linux 클라이언트에서 NFS 프로토콜로 마운트를 해보겠습니다.

df -h

현재 시스템의 파일시스템을 확인합니다.

mkdir /mnt/nfs_test

NFS로 마운트 할 /mnt/nfs_test 디렉터리를 생성합니다.

showmount -e 192.168.53.253

TrueNAS 서버에서 마운트가 가능한 디렉터리를 확인합니다.

mount -t nfs 192.168.53.253:/mnt/vg/test_dev /mnt/nfs_test

192.166.53.253 서버의 /mnt/vg/test_dev 디렉터리를 클라이언트 서버의 /mnt/nfs_test 디렉터리에 마운트합니다.

df -h

제대로 마운트가 되었는지 확인합니다.

마운트 후, 디렉터리가 생성되는지 시도해봅니다.

SMB로 마운트한 Windows 클라이언트에서도 방금 생성한 new_folder 디렉터리가 잘 보이는군요.

가상머신

TrueNAS는 VMware와 같은 가상머신 기능을 지원하고 있습니다.

가상머신을 생성해 보겠습니다.

순서는 VMware 가상화 프로그램과 크게 다르지 않습니다.

미리 서버에 업로드해두었던 ISO를 사용하여 바로 OS 설치가 가능합니다.

생성이 완료된 VM의 모습입니다.

미디어 서버

개인용 NAS 활용의 가장 많은 비중을 차지하고 있는 방법이 바로 미디어 서버라고 생각합니다.

크고 광활한 TB 규모의 스토리지에 영상, 영화, 음악, 사진 등을 업로드하여 용량의 제한에서 벗어나거나 트랜스코딩을 활용하여 4K 해상도의 고용량 영상을 모바일 디바이스에 맞게 해상도를 낮춰 재생하거나

WebOS를 탑재한 스마트 TV, 프로젝터 등에서 지원하지 않는 코덱의 영상을 트랜스코딩하여 재생합니다.

TrueNAS의 Apps에는 Plex Media Server가 있습니다.

이를 설치하면 Plex가 자동으로 컨텐츠를 분류하고, 컨텐츠의 내용을 스크랩해서 포스터와 줄거리를 소개해주는 미려한 미디어 서버를 구성합니다.

스마트 홈 서버

최근에는 보안과 방범을 위해 IoT 카메라 등을 설치하는 곳이 늘어나고 있습니다.

저 역시 IoT 장비를 작업실, 오피스텔 등 곳곳에 설치하였습니다.

이러한 장비들은 전용 어플리케이션을 사용해야 하고, 제조업체의 클라우드 서버를 거쳐야 모니터링하거나 제어를 할 수가 있는 단점이 있습니다.

클라우드 서버를 거침에 따라서 지연 시간과 보안의 문제점이 발생합니다.

이러한 문제를 해결하기 위해 로컬 서버에 장비를 등록하여, 모니터링과 제어를 할 수가 있는 플랫폼을 설치할 수도 있습니다.

가상머신에 스마트홈 서버를 설치하여 구동하는 모습입니다.

수백여곳에 달하는 IoT 장비 제조업체들이 있는데, 대부분 API를 제공하고 있기 때문에 계정 연동을 하거나, 스마트홈 서버에 바로 등록도 가능합니다.

마치며

이 포스트에서 다루지 못한 Docker와 수십 가지의 써드파티 플러그인들이 많이 있습니다.

고성능 장비에 TrueNAS를 설치한다면 다재다능한 다목적 서버로 사용하기에 손색이 없다고 할 수 있습니다.

이 포스트는 글루시스에 입사하여 처음 작성한 포스트입니다.

처음 글을 시작했을 때는 막막했지만 선배들의 도움으로 많이 다듬어졌습니다.

그럼에도 많이 부족하고, 아쉬움이 많이 남는 글입니다.

다음에 기회가 된다면 Docker의 활용과 TrueNAS의 숨은 활용 방법들을 소개해보겠습니다.