가성비 홈랩 NAS 서버 만들기 (2022년판)
올해 처음으로 홈 스토리지 서버를 직접 만들어 보기로 했습니다. 오픈소스 소프트웨어로 개인 데이터와 업무 데이터를 저장하는 32TB 시스템입니다.
서버 본체는 531달러가 들었고, 디스크 4개를 732달러에 구입해 총비용은 1,263달러였습니다. 완제품 스토리지 서버와 가격은 비슷하지만 성능과 확장성에서는 훨씬 뛰어납니다.
이 글에서는 부품을 어떻게 골랐는지, 어떤 실수를 했는지, 그리고 직접 만들어 보고 싶은 분들을 위한 추천을 차례대로 정리해 보겠습니다.


2022년 홈랩 TrueNAS 서버 조립 전과 후
영상으로 보고 싶으신 분을 위해 유튜브에도 올려두었습니다.
배경
왜 NAS 서버를 만드는가?
NAS는 네트워크 결합 스토리지(network-attached storage)의 약자입니다. NAS 서버의 주된 역할은 데이터를 저장하고 네트워크에 연결된 다른 컴퓨터에서 접근할 수 있게 하는 것입니다.
그런데 굳이 데이터를 위해 서버 한 대를 따로 둘 필요가 있을까요? 어차피 모든 컴퓨터가 데이터를 저장하니까요.
저는 데이터 저장을 다른 시스템과 분리해 두는 것이 도움이 된다고 생각합니다. 메인 워크스테이션과 노트북을 2~3년마다 교체하는데, 그때마다 데이터를 옮기는 일이 항상 번거로웠습니다. 전용 스토리지 서버를 두면 대부분의 데이터 이전 작업이 사라지고 시스템 간 파일 공유도 훨씬 쉬워집니다.
데이터 양도 엄청나게 많습니다. 저는 데이터 호더라서 지금까지 찍은 모든 디지털 사진, 지난 20년간 주고받은 모든 이메일, 개인 프로젝트의 모든 소스 코드를 보관합니다. 현재 총용량은 8.5TB입니다.
가장 큰 비중을 차지하는 건 DVD와 블루레이 컬렉션입니다. 좋아하는 콘텐츠를 스트리밍 서비스에만 의존하고 싶지 않아 영화나 드라마는 지금도 실물 디스크를 구입합니다. 새 디스크가 생기면 원본 이미지를 추출해 스트리밍용 비디오 파일도 만듭니다. 원본 ISO와 스트리밍용 MP4를 합치면 디스크 한 장에 60GB가 들어가기도 합니다.

두 번 이상 볼 것 같은 작품은 지금도 DVD나 블루레이 실물로 구입합니다.
홈랩이란?
“홈랩(Homelab)”은 최근 몇 년 사이 널리 쓰이게 된 구어적 표현입니다.
홈랩은 보통 사무실이나 데이터센터에서나 볼 법한 IT 하드웨어나 소프트웨어를 집에서 실험해 볼 수 있는 공간을 말합니다. 새로운 직무 기술을 연습하는 환경이 될 수도 있고, 그냥 재미있는 기술을 가지고 노는 놀이터가 될 수도 있습니다.
직접 NAS를 만들어야 할까?
홈랩을 처음 접하거나 PC 조립 경험이 전혀 없다면 직접 NAS를 만들지 마시길 권합니다.
비슷한 기능을 훨씬 완만한 학습 곡선으로 제공하는 완제품이 있습니다.
직접 홈랩 NAS를 만들기 전에는 4베이 Synology DS412+를 7년간 사용했습니다. 솔직히 Synology는 정말 만족스러웠고, 제가 했던 최고의 구매 중 하나였습니다. NAS 세계에 부드럽게 입문하게 해준 제품이라, NAS가 맞을지 고민된다면 이 제품부터 시작해 보시길 추천합니다.

7년간 든든하게 일해 준 10TB Synology DS412+입니다.
몇 달 전 Synology가 부팅에 실패하고 클릭 소리를 내기 시작했습니다. 이 장비 하나에 얼마나 의존하고 있었는지 깨닫자 등골이 서늘해졌습니다. Synology 서버는 사용자가 직접 수리할 수 없어 보증 기간이 지난 뒤 부품이 고장 나면 서버 전체를 교체해야 합니다. 그리고 저처럼 Synology 전용 저장 포맷을 사용했다면 다른 Synology 장비 없이는 데이터에 접근조차 할 수 없습니다. (수정: Hacker News의 댓글 덕분에 Synology가 아닌 시스템에서도 Synology Hybrid RAID 볼륨을 복구할 수 있다는 사실을 알게 되었습니다.)
다행히 오래된 Synology는 내부를 청소하고 디스크를 다시 장착하자 복구되었지만, 중요한 경고음이었습니다. 개방형 저장 포맷을 오픈소스로 구현한 TrueNAS로 옮기기로 결심했습니다.
TrueNAS와 ZFS
TrueNAS(구 FreeNAS)는 스토리지 서버용 운영체제 중 가장 인기 있는 제품 중 하나입니다. 오픈소스이고 거의 20년 가까이 유지되어 와 신뢰할 만해 보였습니다.
TrueNAS는 스토리지 서버를 위해 특별히 설계된 파일시스템인 ZFS를 사용합니다. NTFS나 ext4 같은 전통적인 파일시스템은 저수준 디스크 I/O를 담당하는 데이터 볼륨 위에서 동작하지만, ZFS는 파일 단위 로직부터 디스크 I/O까지 스택 전체를 직접 관리합니다. 이렇게 전반을 아우르는 제어 덕분에 ZFS는 다른 파일시스템보다 더 강력한 기능과 성능을 제공합니다.
ZFS의 주요 기능은 다음과 같습니다.
- 여러 물리 디스크를 하나의 파일시스템으로 묶기
- 데이터 손상 자동 복구
- 디스크 데이터의 특정 시점 스냅샷 생성(OS X의 Time Machine 기능과 유사)
- 디스크 데이터의 선택적 암호화 및 압축
이 시스템을 만들기 전까지 ZFS를 전혀 다뤄본 적이 없어서 직접 써보는 것이 기대됐습니다.
스토리지 계획
필요한 저장 용량 가늠하기
Synology NAS를 처음 샀을 때는 4TB 드라이브 3개를 장착하고 한 슬롯은 비워두었습니다. Synology Hybrid Raid로 가용 용량은 총 7TB였습니다. 3년 뒤 공간이 부족해져 네 번째 드라이브를 추가했고, 가용 용량은 10TB가 되었습니다.
새 시스템에도 같은 전략을 적용하기로 했습니다. 현재 필요를 충족하면서도 확장 여지를 남기는 구성이 목표였습니다. 대략 가용 용량 20TB로 시작해 나중에 디스크를 추가하면 30TB까지 늘릴 수 있도록 잡았습니다.
ZFS는 기존 풀에 새 드라이브를 추가하는 것을 허용하지 않습니다만, 해당 기능은 현재 활발히 개발 중입니다. 용량을 확장해야 할 때쯤에는 TrueNAS에서도 사용할 수 있기를 바랍니다.
업데이트(2025-01-25): 이 기능은 이제 최신 ZFS 버전에서 사용할 수 있습니다. 다만 아직 TrueNAS에서 직접 테스트해 볼 기회는 없었습니다.
작은 디스크 여러 개 vs. 큰 디스크 몇 개?
ZFS는 디스크 장애를 견디도록 설계되어 데이터 블록마다 중복 저장합니다. 그래서 가용 용량이 단순히 각 디스크 용량의 합이 되지 않아 용량 계획이 복잡해집니다.
ZFS는 디스크 “풀”로 파일시스템을 만듭니다. 풀에 디스크가 많을수록 저장 공간을 더 효율적으로 사용할 수 있습니다. 예를 들어 ZFS에 10TB 드라이브 두 개를 주면 전체 용량의 절반만 사용할 수 있습니다. 대신 4TB 드라이브 다섯 개를 쓰면 가용 용량은 14TB가 됩니다. 전체 디스크 용량은 두 경우 모두 20TB로 같지만, 작은 드라이브 다섯 개가 가용 공간을 40% 더 많이 제공합니다.
NAS 서버를 만들 때는 큰 디스크를 적은 수로 쓸지, 작은 디스크를 많은 수로 쓸지 결정해야 합니다. 작은 드라이브가 TB당 가격은 보통 더 저렴하지만 운영 비용은 더 많이 듭니다. 4TB 드라이브 두 개는 8TB 드라이브 한 개보다 전기를 두 배로 먹습니다.
저는 서버의 물리적 크기를 최소화하고 싶어서 더 크고 적은 수의 드라이브를 선택했습니다.
raidz 1, 2, 3 중 무엇으로?
ZFS는 raidz1, raidz2, raidz3라는 여러 중복 옵션을 제공합니다. 핵심 차이는 안정성입니다. raidz1은 디스크 하나가 고장 나도 데이터를 잃지 않으며, raidz2는 두 개, raidz3은 세 개가 동시에 고장 나도 견딥니다.
안정성을 높이는 만큼 가용 용량을 희생해야 합니다. 4TB 하드 드라이브 다섯 개를 기준으로 각 ZFS 모드별 가용 용량은 다음과 같습니다.
| ZFS 유형 | 가용 용량 | 전체 용량 대비 비중 |
|---|---|---|
| raidz1 | 15.4 TB | 77.2% |
| raidz2 | 11.4 TB | 57.2% |
| raidz3 | 7.7 TB | 38.6% |
저는 raidz1을 선택했습니다. 디스크가 몇 개뿐일 때는 두 개가 동시에 고장 날 확률이 그리 높지 않습니다.
ZFS가 백업 전략이 될 수는 없다는 점을 기억해야 합니다. ZFS는 디스크 고장으로부터는 보호해 주지만, 실수로 인한 삭제, 악성코드, 물리적 도난 등 ZFS로 막을 수 없는 위협은 여전히 많습니다. 저는 중요한 데이터는 모두 restic으로 암호화된 클라우드 백업에 복제해 둡니다.
ZFS의 가치는 드라이브 하나가 죽어도 클라우드 백업까지 꺼낼 필요가 없다는 데 있습니다. 두 개가 고장 나면 백업에서 복구해야 합니다. 물론 번거롭겠지만, raidz2를 위해 서버 가용 용량의 20%를 포기할 정도는 아니라고 판단했습니다.
물리 드라이브가 많을수록 디스크 장애에 더 보수적으로 대비해야 합니다. 풀에 디스크가 20개라면 저는 아마 raidz2나 raidz3을 쓸 것입니다.
동시 디스크 장애 예방하기
단순하게 생각하면 두 디스크가 동시에 고장 날 확률은 극히 작아 보입니다. Backblaze 통계에 따르면 고품질 디스크의 연간 고장률은 0.5~4%입니다. 연간 4%라면 한 주 동안의 고장 확률은 0.08%입니다. 두 개가 동시에 고장 나는 일은 3만 년에 한 번꼴이니 괜찮지 않을까요?
문제는 디스크가 통계적으로 독립적이지 않다는 점입니다. 디스크 하나가 고장 나면 옆에 있는 디스크의 고장 위험이 크게 높아집니다. 특히 같은 모델에 같은 제조 배치에서 나왔고 같은 워크로드를 처리했다면 더욱 그렇습니다.
게다가 ZFS 풀을 재구축하는 과정은 살아남은 모든 디스크에 평소와는 다른 큰 부담을 줍니다. 정상 사용 환경에서는 몇 달 더 버틸 디스크가 풀 재구축의 추가 부하 때문에 고장 날 수도 있습니다.
이런 위험을 고려해 동시 고장 위험을 조금이라도 줄이기 위해 할 수 있는 일을 했습니다. 서로 다른 제조사의 두 가지 모델을 골랐고, 같은 제조 배치에 걸릴 가능성을 줄이기 위해 서로 다른 판매처에서 구매했습니다. 얼마나 효과가 있을지는 모르지만 비용이 크게 늘지도 않으니 해볼 만하다고 생각했습니다.

같은 모델의 디스크를 두 곳의 판매처에서 나누어 구입해 같은 제조 배치에 걸릴 가능성을 낮췄습니다.
부품을 고른 과정
메인보드
첫 번째 결정은 메인보드 크기였습니다. 저는 Synology DS412+의 컴팩트한 크기를 항상 마음에 들어 했습니다. mini-ITX 메인보드로 컴퓨터를 만들어 본 적이 없었는데, 이번이 좋은 기회라고 생각했습니다.
다음과 같은 이유로 ASUS Prime A320I-K를 선택했습니다.
- 4개의 SATA 포트가 있어 디스크 4개를 메인보드에 바로 연결할 수 있습니다.
- Radeon 그래픽을 지원해 별도의 그래픽 카드를 구입하지 않아도 됩니다.
- 가격이 98달러로 저렴합니다.

ASUS Prime A320I-K는 mini-ITX 폼팩터에 온보드 그래픽을 지원합니다.
경고: 이 메인보드 선택은 후회하고 있습니다. 자세한 내용은 아래를 참고하십시오.
비슷하면서도 가격이 거의 두 배인 B450도 고려했습니다. 주된 장점은 더 나은 오버클로킹 지원이었는데, 저에게는 필요하지 않았습니다.
CPU
제가 읽은 바로는 ZFS는 CPU를 많이 쓰지 않습니다. 저렴한 Dell OptiPlex 7040 미니 PC에 TrueNAS를 설치해 간단히 테스트해 보니 CPU 사용량이 거의 없었기 때문에 저전력 제품으로 가도 안전해 보였습니다.
CPU를 고를 때 가장 중요하게 본 기준은 A320 메인보드의 온보드 HDMI 출력을 사용할 수 있도록 Radeon 그래픽을 지원하는지 여부였습니다.

AMD Athlon 3000G는 저렴하면서 네이티브 그래픽을 지원합니다.
AMD Athlon 3000G로 정했습니다. 105달러라는 가격에 가성비가 좋고, Radeon 그래픽을 지원하며, CPU 벤치마크도 준수합니다.
케이스
지난번 VM 서버를 만들 때 Fractal Design 케이스를 사용했습니다. 제가 써본 것 중 가장 마음에 드는 케이스라 이번에도 Fractal Design을 선택했습니다.
Fractal Design Node 304 Black이라는 컴팩트한 mini-ITX 케이스로 정했습니다. 타워보다는 큐브에 가까운 디자인이 마음에 들었고, 드라이브 베이가 6개라 필요한 만큼의 드라이브로 시작하고도 나중에 확장할 여지가 있습니다.

Fractal Design Node 304 Black은 디스크 6개를 장착할 수 있는 mini-ITX 케이스입니다.
디스크(데이터용)
케이스에 드라이브 베이가 6개이므로 8TB 디스크 4개로 시작하기로 했습니다. raidz1 기준으로 가용 용량은 22.5TB가 됩니다. 나중에 확장할 때 디스크를 하나 추가하면 30.9TB, 두 개를 추가하면 37TB까지 늘릴 수 있습니다.
8TB 대역에서는 7200RPM 미만의 드라이브가 거의 없고, 최대 10,000RPM까지 있습니다. 제 NAS에서는 7200RPM 이상이어도 체감 차이가 없습니다. 병목은 네트워크이기 때문입니다. 10,000RPM 드라이브는 소음도 크고 전력도 더 먹지만 성능상 실질적인 이득은 없습니다.
처음에는 고장률이 높은 디스크를 피하려고 Backblaze의 하드 드라이브 통계를 확인했지만, 그쪽에서 쓰는 드라이브는 가격이 더 비쌌습니다. 한때 고장률 0.5%라는 인상적인 수치 때문에 400달러짜리 드라이브를 고려하기도 했지만, 고장률을 몇 퍼센트 낮추자고 두 배나 더 쓰는 건 비합리적이라는 생각이 들었습니다.
마지막으로 피해야 할 함정은 SMR(기와식 자기 기록) 기술입니다. ZFS는 SMR 드라이브에서 성능이 크게 떨어집니다. 따라서 NAS를 만든다면 알려진 SMR 드라이브는 피해야 합니다. CMR이라고 표기된 드라이브는 기존 자기 기록 방식이라 ZFS에 적합합니다.
저는 Toshiba N300과 Seagate IronWolf를 선택했습니다. TrueNAS 포럼과 reddit에서 모두 긍정적인 평가를 보았고, 두 모델 모두 180~190달러로 용량 대비 가격이 저렴했습니다.


Toshiba N300(왼쪽)과 Seagate IronWolf(오른쪽)
디스크(OS용)

Kingston A400은 120GB M.2 SSD가 단 32달러로 가성비가 훌륭합니다.
TrueNAS는 전용 OS 디스크가 필요하지만, 제가 읽은 바로는 OS 디스크에 큰 성능을 요구하지 않습니다. OS는 최소 2GB만 있으면 되고, TrueNAS가 OS 디스크를 자주 읽고 쓰는 일도 거의 없습니다.
120GB M.2 디스크가 32달러로 믿을 수 없을 만큼 저렴했던 Kingston A400을 선택했습니다. M.2 디스크는 정말 마음에 듭니다. 케이블이 필요 없고 메인보드에 쏙 들어가 공간도 거의 차지하지 않으며 한 번 장착하면 다시 손댈 일이 없습니다.
메모리
조사하면서 ZFS에는 “디스크 용량 1TB당 1GB의 RAM이 필요하다”는 “규칙”이 자주 언급되는 것을 보았습니다. ZFS 개발자 Richard Yao에 따르면 그 규칙은 미신이라고 합니다. 데이터 중복 제거 같은 RAM을 많이 먹는 ZFS 기능도 있지만, ZFS는 메모리가 제한적인 환경에서도 잘 동작합니다.
메모리는 쇼핑하는 것 자체가 지루하게 느껴집니다. 더 체계적인 선정 기준이 있었으면 좋겠지만, 신뢰할 만한 벤치마크나 사용기를 찾기 어려웠습니다. 제가 쓴 과정은 다음과 같습니다.
- ASUS A320I-K 메인보드와 호환되는 RAM 목록을 확인한다.
- 32GB 또는 64GB 중 2개 구성으로 된 제품을 추린다.
- 신뢰하는 브랜드(Corsair, Crucial, G.SKILL, Kingston, Samsung, Patriot, Mushkin, HyperX)로 추린다.
- 150달러 이하인 제품으로 추린다.
그 결과 CORSAIR Vengeance LPX 32GB CMK32GX4M2A2400C14 (2 x 16GB)를 128달러에 구입하게 되었습니다.

CORSAIR Vengeance LPX 32GB CMK32GX4M2A2400C14 (2 x 16GB)는 A320I-K 메인보드와 호환되며 32GB 치고 가격도 괜찮습니다.
파워 서플라이(PSU)
용량 면에서는 시중의 웬만한 소비자용 PSU면 충분했습니다. PCPartPicker에 따르면 제 시스템의 필요 전력은 218W에 불과합니다. 300~400W대 PSU를 고르고 싶었지만 해당 용량대에서 세미 모듈러 제품이 없었습니다. 결국 500W짜리 EVGA 110-BQ-0500-K1을 선택했습니다.

EVGA 110-BQ-0500-K1은 세미 모듈러 PSU로, 500W면 이 구성에 충분하고도 남습니다.
90도 SATA 케이블

케이스의 공간 제약 때문에 90도 SATA 케이블이 필요했습니다.
90도 SATA 케이블은 이번에 처음 구입해 본 부품입니다. 메인보드와 PSU 사이에 일반 SATA 케이블을 꽂을 공간이 부족하다는 걸 보고 나서야 필요하다는 걸 알았습니다. 이 얇은 90도 케이블이 문제를 해결해 주었습니다.

PSU와 메인보드 사이가 워낙 좁아 얇은 90도 SATA 케이블이 필요했습니다.
빠진 부품
가격, 복잡도, 물리적 공간 때문에 일부러 제외한 부품도 있습니다.
그래픽 카드(GPU)
물리적 공간과 메인보드 포트가 부족해 외장 그래픽 카드는 넣고 싶지 않았습니다. 외장 카드 없이도 그래픽을 처리할 수 있도록 그래픽을 지원하는 메인보드와 CPU 조합을 선택했습니다.
호스트 버스 어댑터(HBA)
많은 NAS 구성에는 호스트 버스 어댑터(HBA)가 포함됩니다. HBA는 메인보드의 PCI 슬롯에 장착해 메인보드가 지원하는 디스크 수를 늘려주는 칩입니다.
ZFS는 HBA 펌웨어를 다시 플래싱해야 한다는 이야기를 들었는데, 과정이 지루하고 복잡해 보였습니다 (수정: 다시 플래싱은 RAID HBA에만 필요하다고 합니다). 당장은 HBA 없이 가기로 했습니다. ASUS A320I-K에는 SATA 포트가 4개 있어 초기 구성에는 충분합니다. 나중에 HBA를 달 수 있도록 PCI 슬롯 하나는 비워두었습니다.
ECC RAM
다양한 TrueNAS 구성을 조사하다 보면 ECC RAM(오류 정정 코드 RAM)이 데이터 손상을 막기 위해 필수라는 글을 많이 보았습니다. 저는 결국 ECC RAM 대신 일반 소비자용 RAM을 사용하기로 했습니다.
물론 서버가 RAM에서 데이터를 손상시키는 일은 원치 않지만, 지난 30년간 ECC RAM 없이 컴퓨터를 써오면서 데이터가 손상된 것을 느껴본 적이 없습니다. 하루 종일 여러 사용자가 부하를 걸어 쓰는 서버라면 ECC RAM을 포함한 구성을 선택했겠지만, 가정용으로는 일반 소비자용 RAM으로 충분하다고 생각합니다.
SLOG 디스크
많은 ZFS 구성에는 SLOG(Separate Intent Log, 별도 인텐트 로그)라고 불리는 별도의 전용 SSD가 포함됩니다.
SSD에 쓰는 속도가 여러 개의 회전 디스크에 쓰는 속도보다 몇 배나 빠르다는 점에 착안한 것입니다. 애플리케이션이 데이터를 쓰면 ZFS가 SSD에 빠르게 쓰고 애플리케이션에 쓰기가 완료되었다고 알린 뒤, 비동기적으로 데이터를 SSD에서 스토리지 풀로 옮깁니다. SLOG는 쓰기 속도를 크게 개선합니다.
저는 포트와 드라이브 베이가 부족해 SLOG 디스크를 넣지 않기로 했습니다. SLOG 디스크를 추가하려면 유일한 PCI 슬롯 하나를 포기하거나 6개의 드라이브 베이 중 하나를 포기해야 했습니다. 나중에 용량을 확장할 여지를 남기는 편이 낫다고 판단했습니다.
부품 목록
| 분류 | 부품 | 구입가 |
|---|---|---|
| CPU | AMD Athlon 3000G | $105.13 |
| 메인보드 | ASUS Prime A320I-K* | $97.99 |
| 그래픽 | 별도 불필요 — 메인보드에 네이티브 그래픽 지원 | $0 |
| 디스크(OS) | Kingston A400 120GB | $31.90 |
| 메모리 | CORSAIR Vengeance LPX 32GB CMK32GX4M2A2400C14 (2 x 16GB) | $127.99 |
| 파워 | EVGA 110-BQ-0500-K1 500W 80+ Bronze Semi-Modular | $44.99 |
| 케이스 | Fractal Design Node 304 Black | $99.99 |
| SATA 케이블 | Silverstone Tek Ultra Thin Lateral 90 Degree SATA Cables (x2) | $22.30 |
| 합계(디스크 제외) | $530.29 | |
| 디스크(스토리지) | Toshiba N300 HDWG480XZSTA 8TB 7200 RPM (x2) | $372.79 |
| 디스크(스토리지) | Seagate IronWolf 8TB NAS Hard Drive 7200 RPM (x2) | $359.98 |
| 총계 | $1,263.06 |
* 주의: 이 메인보드는 AMD Athlon 3000G CPU와 바로 호환되지 않을 수 있습니다. 자세한 내용은 아래를 참고하십시오.
완제품과 비교
비슷한 가격대의 완제품과 비교해 보겠습니다.
| 제품 | 2022 가성비 NAS | Synology DS920+ | QNAP TS-473A-8G-US |
|---|---|---|---|
| 디스크 베이 | 6 | 4 | 4 |
| RAM | 32 GB | 4 GB | 4 GB |
| 최대 RAM | 32 GB | 8 GB | 8 GB |
| CPU 벤치마크 | 4479 | 3002 | 4588 |
| 가격 | $530.29 | $549.99 | $549 |
제작 비용 자체는 완제품과 비슷하지만, 가성비는 직접 만든 쪽이 더 좋습니다. RAM은 8배나 많고, 폐쇄적인 벤더 전용 OS 플랫폼에 종속될 필요도 없습니다.
조립 사진

포장 상자에 들어 있는 모든 부품

Fractal Design mini-ITX 케이스에 메인보드를 문제없이 장착했습니다.

M.2 SSD 장착은 정말 즐겁습니다. 케이블이나 레일 없이 나사 하나면 끝입니다.

PSU 뒷면이 케이스 밖으로 노출되지 않는 시스템은 이번이 처음입니다. 대신 케이스에 짧은 NEMA 연장 케이블이 있어 내부 PSU를 케이스 외부의 전원 입력 단자로 연결합니다.


메인보드의 SATA 포트와 PSU 사이가 워낙 좁아 특수한 90도 슬림 SATA 케이블을 구입해야 했습니다.

CPU 팬을 제외하고 메인보드에 모든 것을 연결한 뒤

조립을 마친 모습
TinyPilot으로 서버 구축하기
이 블로그를 오래 보신 분들은 제가 서버 구축과 관리를 위해 Raspberry Pi로 만든 도구를 기억하실지도 모릅니다. 바로 TinyPilot입니다. 이번이 TinyPilot으로 만든 세 번째 서버이자, 새로운 TinyPilot Voyager 2로 만든 첫 번째 서버였습니다.

TrueNAS 서버에 키보드, 마우스, 모니터를 연결하는 대신 TinyPilot Voyager 2로 설치를 진행했습니다.
편향된 얘기겠지만, Voyager 2로 서버를 만드는 과정은 정말 재미있었습니다! 서버에 키보드나 모니터를 한 번도 연결할 필요가 없었습니다. 웹 브라우저에서 바로 영상 출력을 보고, BIOS로 부팅하고, TrueNAS 설치 이미지를 마운트할 수 있었습니다.

TinyPilot 덕분에 플래시 드라이브나 키보드, 모니터를 꽂지 않고도 TrueNAS 설치 ISO를 마운트할 수 있었습니다.
한 가지 아쉬웠던 점은 BIOS 업그레이드였습니다. TinyPilot은 .img나 .iso 같은 디스크 이미지는 마운트할 수 있지만, 아직 원시 파일을 대상 컴퓨터와 공유하는 기능은 없습니다. ASUS BIOS 업그레이드용 .CAP 파일을 로드해야 했을 때는 결국 부끄럽지만 USB 메모리 스틱에 담아 사용했습니다. 순수하게 TinyPilot만으로 구축하려던 계획이 깨진 셈입니다. 다음 BIOS 업그레이드 때는 TinyPilot이 이 시나리오도 처리할 수 있도록 지원하려고 합니다.
BIOS 버전이 호환되지 않는 걸까, 아니면 내가 바보인 걸까?
모든 부품을 장착하고 전원을 켰지만 화면에 아무것도 나오지 않았습니다.
맙소사! 메인보드의 온보드 비디오 요구사항을 잘못 이해한 걸까요? 늘 하던 대로 진단을 시작했습니다. RAM을 다시 꽂고, CPU도 다시 장착하고, 케이블도 모두 확인했지만 결과는 같았습니다.
당황해서 검색을 해보니 ASUS Prime A320I-K는 Athlon 3000G와 호환되려면 BIOS 업그레이드가 필요하다는 언급이 있었습니다. 부품을 고를 때 그 경고를 본 기억이 났는데, 그냥 넘겨버렸습니다. “BIOS 업데이트쯤이야 해봤지, 별거 아니야!”라고 생각했습니다.
CPU 없이 어떻게 BIOS를 업그레이드할지는 생각하지 못했습니다.
운 좋게도 2017년 홈랩 VM 서버에 있던 Ryzen 7 CPU가 ASUS Prime A320과 호환되었습니다. 그 서버에서 CPU와 GPU를 빌려와 새 NAS 서버를 부팅하는 데 성공했습니다!

오래된 2017년 홈랩 VM 서버의 부품을 빌려 BIOS를 업그레이드할 수 있었습니다.
이상하게도 빌린 부품으로 부팅에 성공한 뒤 확인해 보니 메인보드의 BIOS 버전은 2203이었습니다. ASUS 설명에 따르면 이 버전은 AMD Athlon 3000G CPU와 호환된다고 되어 있었습니다. 그래도 최신 버전인 5862로 업데이트했습니다.

ASUS Prime A320I-K CPU 호환 페이지에 따르면 BIOS 버전 2203부터 Athlon 3000G를 지원한다고 되어 있습니다.
5862로 업그레이드한 뒤에도 여전히 부팅이 되지 않았습니다. 그러다 HDMI 케이블을 서버의 DisplayPort 단자에 꽂고 있었다는 사실을 깨달았습니다.

DisplayPort 디자이너는 왜 HDMI 케이블이 이렇게 쉽게 잘못 꽂히게 만들어 놓았을까요?
이 부품 빌리기 소동이 과연 필요했던 걸까요? 두 가지 가능성이 있습니다.
- 제가 바보라서 BIOS를 업그레이드한 뒤에야 HDMI 케이블이 메인보드의 DisplayPort 단자에 꽂혀 있었다는 걸 알아챈 것입니다.
- ASUS가 바보라서 Athlon 3000G가 BIOS 버전 2203과 호환된다고 잘못 표기한 것입니다.
보통은 제 탓이라고 인정하겠지만, ASUS BIOS가 워낙 불안정해서 ASUS 쪽 문제일 가능성도 있습니다. 어쨌든 빌린 부품 없이 NAS를 부팅하게 되어 안심했습니다.

Athlon 3000G를 장착하고 마침내 부팅 화면을 본 순간
성능 벤치마크
이 글을 쓰면서 놀라웠던 점 중 하나는 NAS 성능을 측정할 만한 괜찮은 벤치마크 도구를 찾을 수 없었다는 것입니다. NAS 자체에서 로컬 디스크 I/O를 측정하는 도구는 있지만, 실제 사용 환경을 반영하지 못합니다. 제 사용 패턴은 대부분 네트워크를 통해 이루어지므로 로컬 디스크 벤치마크만으로는 네트워킹 스택의 병목을 전혀 잡아낼 수 없습니다.
그래서 직접 간단한 벤치마크를 만들어 보았습니다. 랜덤 파일 데이터를 두 세트 생성한 뒤 robocopy로 메인 데스크톱과 NAS 사이의 읽기·쓰기 속도를 측정했습니다. 결코 엄밀한 테스트는 아니었습니다. 격리된 네트워크에서 한 것도 아니고, 테스트 중에 데스크톱의 다른 프로세스를 모두 끈 것도 아니었습니다. 비교를 위해 오래된 Synology DS412+에서도 같은 테스트를 수행했습니다.
첫 번째 파일 세트는 1GiB 파일 20GiB 분량이었고, 다른 하나는 1MiB 파일 3GiB 분량이었습니다. 암호화된 볼륨과 암호화되지 않은 볼륨 모두에서 세 번씩 시도해 평균을 냈습니다.
성능은 최대 111MiB/s(931Mbps)에서 정점을 찍었는데, 이는 1Gbps에 의심스러울 정도로 가깝습니다. 이는 네트워크 하드웨어가 병목이라는 것을 시사합니다. 제 스위치와 데스크톱, NAS 서버 모두 1Gbps 이더넷 포트를 사용하고 있기 때문입니다.
읽기 성능
암호화되지 않은 볼륨에서는 7년 된 낡은 Synology가 새로 만든 TrueNAS를 앞서는 것을 보고 놀랐습니다. Synology는 작은 파일 읽기에서 31%, 큰 파일에서는 10% 더 빨랐습니다.
Synology의 영광은 오래가지 못했습니다. 암호화가 걸리자 읽기 속도가 67~75%나 떨어졌기 때문입니다. 반면 TrueNAS는 암호화 여부와 관계없이 속도가 그대로 유지되었습니다. 덕분에 암호화된 볼륨에서는 TrueNAS가 작은 파일에서 2.3배, 큰 파일에서 3배 더 빨랐습니다. 저는 대부분의 데이터를 암호화된 볼륨에 보관하므로 이 테스트가 제 평소 사용 환경을 더 정확히 반영합니다.
쓰기 성능
오래된 Synology가 읽기에서는 TrueNAS를 앞섰지만, 쓰기에서는 그렇지 않았습니다. 암호화되지 않은 볼륨에서도 TrueNAS는 작은 파일에서 77% 더 빨랐고, 1GiB 파일에서는 두 시스템이 비슷한 성능을 보였습니다.
여기서도 암호화를 켜면 Synology의 쓰기 성능은 무너집니다. 암호화를 활성화한 상태에서는 TrueNAS가 작은 파일에서 5.2배, 큰 파일에서 3.2배 더 빨랐습니다.
전력 소비량
Kill A Watt P4460 측정기로 오래된 Synology와 새로운 TrueNAS 서버의 전력 소비량을 측정했습니다.
| Synology DS412+ | 2022 NAS | |
|---|---|---|
| 유휴 상태 | 38 W | 60 W |
| 부하 상태 | 43 W | 67 W |
새 서버가 오래된 Synology보다 60% 더 많은 전력을 사용해 조금 놀라웠습니다. kWh당 약 0.17달러를 내고 있으니 서버 운영비는 한 달에 약 7.20달러 정도 듭니다.
무엇이 전력 소비를 끌어올리는지는 잘 모르겠지만, 한 가지 가능성은 PSU입니다. Synology는 아마 다른 부품에 딱 맞는 용량의 PSU를 사용했을 테지만, 제 500W PSU는 필요 용량의 15%만 쓰는 시스템에서는 효율이 떨어질 가능성이 큽니다.
마무리 생각
메인보드
ASUS Prime A320I-K에 대해 가장 불만이었던 점은 호환성이 제한적이라는 것이었지만, 제가 착각했을 가능성도 있습니다.
그 외에도 BIOS가 마음에 들지 않았습니다. 업그레이드 유틸리티가 완전히 고장 나 있었습니다. 최신 BIOS 버전을 다운로드해 설치할 수 있어야 하는데, 업그레이드를 시도하면 최신 BIOS를 이미 사용 중이라는 메시지만 계속 나왔습니다. 결국 파일을 직접 다운로드해 USB 메모리에 담아 수동으로 업그레이드해야 했습니다.


ASUS EZ Flash 유틸리티는 2203 버전이 최신 BIOS라고 했지만, ASUS 웹사이트에는 BIOS 버전 5862가 올라와 있어 수동으로 업데이트해야 했습니다.
A320I-K가 최대 32GB RAM까지만 지원한다는 점도 놓쳤습니다. 메모리를 확장할 일이 있을지는 모르겠지만, 여유를 좀 더 두었으면 좋았을 것 같습니다.
Realtek 네트워크 드라이버 수정하기
시스템에 네트워크 부하가 많이 걸릴 때 메인보드의 이더넷 어댑터가 가끔 죽는 현상을 발견했는데, reddit의 /u/trevaar 님이 친절하게 원인을 설명해 주었습니다. A320I-K의 Realtek NIC용 FreeBSD 드라이버에 안정성 문제가 있지만, 다음과 같은 임시 조치로 공식 드라이버를 로드할 수 있다고 합니다.
- TrueNAS 웹 대시보드에서 System > Tunables로 이동합니다.
- 다음 두 가지 설정을 추가합니다.
변수 값 유형 if_re_loadYESloader if_re_name/boot/modules/if_re.koloader
케이스
Fractal Design Node 304에는 실망했습니다. Fractal Design Meshify C로 VM 서버를 만들었을 때는 계속 감탄하게 만드는 처음 보는 기능들이 많았는데, 이번에는 정반대였습니다. “왜 이 케이스에서는 이런 게 문제지? 다른 케이스에서는 한 번도 문제된 적 없는데?”라는 생각이 계속 들었습니다.
외관은 멋지지만 작업하기에는 불편했습니다. 설명서도 거의 없고, 케이스의 일부 구조는 어떻게 작동하는지 직관적이지 않았습니다.
이번이 첫 mini-ITX 조립이고, 케이스 설계자가 크기를 최소화하기 위해 희생한 부분이 있다는 것도 알기 때문에 너무 가혹하게 평가하는 것일 수도 있습니다.
CPU
Athlon 3000G에는 만족하지만, 제 용도에는 성능이 지나치게 넘친다는 것이 드러났습니다. TrueNAS 대시보드를 보면 지난 한 달 동안 CPU가 99% 유휴 상태였다고 나옵니다.

TrueNAS는 CPU를 거의 사용하지 않습니다.
CPU에서 가장 중요했던 점은 AMD Radeon 비디오 기술을 지원해 GPU가 필요 없었다는 것입니다. 105달러에 훌륭한 선택이었습니다.
디스크(데이터용)
디스크는 아직 평가하기에는 이릅니다. 5년 뒤에 다시 찾아와서 어떻게 쓰고 있는지 확인해 보십시오. 지금까지는 잘 동작하고 있습니다.
가장 걱정했던 것은 소음이었는데, 전혀 들리지 않습니다. 성능 벤치마크를 돌릴 때만 소리가 들렸습니다. 흥미롭게도 읽기나 쓰기 중이 아니라 테스트 사이에 파일을 삭제할 때 가장 시끄러웠습니다.
파워 서플라이(PSU)
시스템이 유휴 상태에서 60W를 먹는 것을 보고 나니 좀 더 낮은 용량의 파워 서플라이를 고민했어야 했나 하는 생각이 듭니다. 500W는 필요한 용량의 두 배가 넘으니, 300~400W대 PSU였다면 유휴 전력 소비를 줄일 수 있었을지도 모릅니다.
디스크(OS용)
Kingston A400은 잘 동작하고 있습니다. TrueNAS가 OS 디스크에 거는 부하가 워낙 적어 할 일이 거의 없습니다. 90GB나 남아 있어 더 작은 드라이브를 써도 충분했을 것 같습니다.
TrueNAS 리포팅을 보면 OS 디스크 활동이 거의 없습니다. 오류 검사를 위한 기본 예약 작업의 일환으로 매주 아주 적은 읽기 I/O가 발생하는 정도가 전부입니다.

TrueNAS는 부팅 후에는 OS 디스크를 거의 건드리지 않습니다.
TrueNAS
저는 더 성숙한 FreeBSD 기반인 TrueNAS Core 13을 사용하고 있습니다. 다른 선택지는 Debian 기반의 TrueNAS Scale로, 하드웨어 및 소프트웨어 호환성이 더 넓습니다.
TrueNAS를 시작하기 전부터 Synology의 웹 UI를 따라잡기는 어려울 거라고 예상했습니다. 네트워크 장비 중 제가 본 것 중 가장 우아하고 직관적인 인터페이스입니다. 깔끔한 UI로 파일시스템의 기술적인 세부 사항을 사용자가 신경 쓰지 않아도 되게 잘 만들어 놓았습니다.
TrueNAS는 나름의 해커 감성이 있지만, 사용성 면에서는 Synology에 비해 크게 떨어집니다. 인터페이스는 커맨드라인 외에는 경멸하는 사람이 만든 것처럼 느껴집니다.


Synology 웹 인터페이스(왼쪽)는 TrueNAS(오른쪽)보다 훨씬 뛰어납니다.
TrueNAS에서는 새로운 볼륨을 만들어 네트워크에 공유하는 데만 몇 번을 시도해야 했습니다. 서로 연결되지 않은 여러 메뉴를 오가야 하고, 다음에 무엇을 해야 하는지에 대한 힌트도 없습니다. Synology에서는 필요한 설정을 모두 안내하는 매끄러운 UI 흐름이 있습니다.
서드파티 앱 설치도 TrueNAS에서 훨씬 어려웠습니다. 저는 영화와 TV 컬렉션을 스트리밍하기 위해 Plex Media Server를 사용하는데, Plex는 TrueNAS에서 사전 구성된 플러그인입니다. 가장 쉽게 설치할 수 있는 앱 중 하나여야 하는데도 문서를 뒤져가며 한 시간이나 씨름해야 했습니다. 반면 Synology에서는 마법사를 몇 번 클릭하면 2분 만에 Plex 설치가 끝납니다.
그럼에도 TrueNAS를 고수하는 이유는 플랫폼 종속보다 더 중요하게 여기는 것이 거의 없고, 오픈소스 소프트웨어를 지지하고 싶기 때문입니다. 이념적인 동기가 덜한 친구에게 NAS를 추천해야 한다면 Synology를 권할 것입니다.
ZFS
ZFS는 멋지지만, RAID 외에는 대부분의 기능을 쓸 일이 없었습니다.
스냅샷 얘기를 많이 듣지만 아직 필요성을 느끼지 못했습니다. 이미 restic 백업 솔루션에 스냅샷이 있습니다. 그다지 편리하지는 않지만, 2년간 restic을 쓰면서 스냅샷에서 데이터를 복구해야 했던 적은 한 번뿐이었습니다.
한 가지 흥미로운 기능은 암호화된 스냅샷입니다. 데이터 볼륨을 복호화하지 않고도 스냅샷을 만들 수 있습니다. 암호화된 상태로 보관하고 싶은 데이터가 있는데 자주 접근할 필요는 없어서, 복호화 없이 정기적으로 백업할 수 있다면 편리할 것 같습니다.
총평
전체적으로 새 NAS에 만족하고 있으며, 이번 조립을 통해 많은 것을 배웠습니다. 만약 이것이 첫 NAS 경험이었다면 힘들고 혼란스러웠겠지만, Synology로 먼저 부드럽게 입문한 덕분에 관련 기술을 익힐 수 있었습니다. 보조 바퀴를 뗀 느낌이고, 이제 ZFS와 TrueNAS의 고급 기능을 만져볼 준비가 되었다고 느낍니다.
영상
2년 반 뒤 업데이트
2024년 11월 기준으로 이 스토리지 서버를 약 2년 반 동안 사용했습니다. 그간의 사용 소감을 정리해 보겠습니다.
여전히 NAS에 만족합니다
여전히 NAS가 마음에 듭니다. Synology의 사용 경험이 그립긴 하지만, TrueNAS에서 더 직접 통제하고 있다는 느낌이 듭니다.
Toshiba N300 디스크 하나에서 클릭 소리가 나기 시작했습니다
NAS를 만든 지 약 18개월이 지났을 때 Toshiba N300 디스크 중 하나에서 클릭 소리가 나기 시작했습니다. SMART 테스트에서는 아무 문제가 나오지 않았지만, 클릭 소리가 나는 디스크를 계속 쓰는のは 위험하다고 판단했습니다.
8TB Seagate IronWolf로 교체한 뒤로는 아무 문제가 없습니다.
랙 마운트 섀시로 교체했습니다
NAS를 만든 지 1년 뒤에 서버 랙을 구입했고, 모든 인프라를 랙으로 옮기기 시작했습니다.
NAS용으로는 Sliger CX3701 10베이 서버 섀시를 구입했습니다. 마음에 드는 섀시이고, 메인보드의 유일한 PCI 슬롯을 SATA 포트 확장에 사용할 것이 확실하다면 추천할 만합니다. 그래픽이나 10G 네트워킹을 위해 PCI 슬롯이 필요하다면, mini-ITX 메인보드는 SATA 포트가 보통 4개뿐이라 10베이 중 4개만 사용할 수 있습니다.
Sliger 서버 섀시로 옮기면서 PSU도 새로 필요했습니다. Sliger는 SFX와 SFX-L 폼팩터 PSU만 지원하기 때문입니다. SilverStone 300W 80 Plus Bronze ST30SF-V2를 선택했습니다. 시스템 피크 전력이 약 150W밖에 되지 않으니 500W PSU에서 낮춰서 다행이었습니다.
TrueNAS Scale로 전환했습니다
TrueNAS Scale에 더 많은 투자가 이루어지는 것처럼 보여 TrueNAS Scale로 전환했습니다. 가장 큰 차이는 Core는 FreeBSD 기반이고 Scale은 Linux Debian 기반이라는 점입니다.
전환한 뒤에는 큰 차이를 느끼지 못했습니다. Scale의 웹 UI가 조금 더 나아진 정도이고, 평소 Linux에서 작업하는 편이라 FreeBSD보다 터미널 사용이 더 편하다는 점이 다릅니다.
10Gbps 광 NIC를 추가했습니다
서버 랙을 구성하면서 10Gbps 포트가 있는 스위치를 선택했기 때문에 NAS용으로 10Gbps NIC도 구입했습니다.
안타깝게도 그 NIC는 동작하지 않았고, 두 개를 더 시도해 봤지만 세 개 모두 동작하지 않았습니다.
결국 메인보드 호환성 문제라는 결론을 내리고 Gigabyte B550I Aorus Pro로 업그레이드했고(아래 참고), 그제야 Mellanox ConnectX-3 EN CX311A NIC와 함께 정상 동작했습니다.
10Gbps NIC를 달고도 TrueNAS 설정에 애를 먹었습니다. 계속 메인보드의 온보드 LAN을 기본으로 잡았기 때문입니다. NAS의 고정 IP를 10Gbps NIC로 옮기려 하자 Kubernetes가 이미 그 IP를 사용 중이라며 계속 오류를 냈습니다. 고정 IP 할당을 원자적으로 옮길 방법을 찾지 못해 결국 BIOS에서 메인보드의 LAN을 비활성화해야 했습니다. 그 뒤에도 IP를 옮길 수 없어 결국 NAS에 새로운 고정 IP를 할당해야 했습니다.
Gigabyte B550I Aorus Pro 메인보드로 교체했습니다
위에서 언급했듯이 10Gbps NIC와의 호환성 문제를 해결하기 위해 Gigabyte B550I Aorus Pro AX 메인보드로 업그레이드했습니다.
메인보드는 괜찮습니다. ASUS Prime A320I-K보다는 조금 더 마음에 듭니다.
- 장점
- 자체 I/O 쉴드가 있다는 점이 마음에 듭니다.
- SATA 포트가 바로 위를 향하고 있어 특수한 직각 SATA 커넥터가 필요 없습니다.
- RAM 슬롯이 더 사용하기 쉽습니다.
- CPU 마운트가 더 다루기 쉽습니다.
- 팬 핀이 더 편리한 위치에 있습니다.
- 단점
- 지금까지 본 것 중 가장 헷갈리는 M.2 슬롯이며 설명서에도 전혀 설명이 없습니다. YouTube에서 영상을 찾아봐야 했습니다.
- BIOS 진입 시 부팅이 ASUS Prime A320I-K보다 눈에 띄게 느립니다.
후회되는 점: mini-ITX는 확장에 한계가 있습니다
가장 후회되는 점은 케이스와 메인보드를 mini-ITX 폼팩터로 선택한 것입니다.
mini-ITX 메인보드는 PCI 슬롯이 하나뿐입니다. 대부분 SATA 포트도 4개뿐이며, 온보드 그래픽을 지원하면서 SATA 포트가 더 많은 제품은 본 적이 없습니다. 즉, 디스크를 4개 이상 추가하려고 HBA를 달면 PCI 슬롯이 하나도 남지 않습니다.
제 경우에는 10Gbps 네트워크 카드를 달고 싶었지만, 그러면 전체 섀시와 메인보드를 새로 사지 않는 한 디스크 4개에 묶이게 됩니다.
다시 한다면 3.5인치 하드 드라이브를 6~8개 장착할 수 있는 랙 마운트 섀시와, PCI 슬롯이 여러 개 있거나 최소 8개의 SATA 포트를 갖춘 메인보드를 샀을 것입니다.
Blogging for Devs Community 회원 여러분께 이 글의 초안에 대한 피드백을 주셔서 감사드립니다.
글을 무작위로 읽기



