13년차의 서버실

서버, 인프라, 홈랩 기술 블로그

[태그:] NAS

  • [Nas] NAS 전력 소비 최적화: 전기세 절감 및 효율적인 운영 가이드

    [Nas] NAS 전력 소비 최적화: 전기세 절감 및 효율적인 운영 가이드

    NAS 전력 소비 최적화: 전기세 절감 및 효율적인 운영 가이드

    안녕하세요. 13년차 인프라 엔지니어, 여러분의 홈랩 멘토 ’13년차의 서버실’입니다. 오늘은 많은 분들이 궁금해하는 NAS(Network Attached Storage)의 전력 소비 최적화, 즉 NAS 전기세 절감 방법을 얘기해볼게요. 홈랩을 운영하다 보면 24시간 켜두는 장비들이 많아지는데, 이 녀석들이 생각보다 꽤 많은 전기를 잡아먹더라고요. 특히 NAS는 데이터를 항상 안전하게 보관해야 하니 켜두는 시간이 길어질 수밖에 없는데, 그렇다고 전기세 폭탄을 맞을 수는 없겠죠? 제가 13년간 쌓아온 경험과 홈랩에서의 직접적인 실험을 바탕으로, NAS 절전을 실현하는 현실적인 방법들을 공유해드릴게요. Synology, TrueNAS 등 어떤 NAS를 사용하시든 도움이 될 만한 내용들로 가득 채웠으니, 끝까지 함께 해주세요!

    NAS 전력 소비 최적화 개요

    NAS 전력 소비, 왜 신경 써야 할까?

    NAS는 개인 클라우드, 미디어 서버, 백업 스토리지 등 다양한 용도로 활용되면서 24시간 켜두는 경우가 많습니다. 장시간 운영되는 만큼, 전력 소비는 곧 전기세로 직결되죠. 단순히 몇 천 원 아끼는 수준을 넘어, 몇 년간 누적되면 상당한 금액이 될 수 있어요. 게다가 전력 소비를 줄이는 것은 곧 장비의 발열 감소로 이어져 부품 수명 연장에도 긍정적인 영향을 미칩니다. 환경적인 측면에서도 에너지 효율을 높이는 게 중요하고요. 특히 홈랩 환경에서는 전기 요금이 고정 지출로 꾸준히 발생하기 때문에, NAS 절전은 선택이 아닌 필수예요. 제가 처음 홈랩을 시작했을 때, 몇 대의 NAS와 서버를 24시간 돌리면서 전기 계량기가 쉴 새 없이 돌아가는 걸 보고 적잖이 당황했거든요. 그때부터 ‘어떻게 하면 이 녀석들의 전력 소비를 줄일 수 있을까?’ 고민하기 시작했습니다.

    NAS 전력 소비 최적화, 무엇부터 시작할까?

    NAS 전력 소비 최적화는 크게 두 가지 방향으로 접근할 수 있어요. 첫째는 NAS 하드웨어 자체의 전력 효율을 높이는 것이고, 둘째는 소프트웨어적인 설정을 통해 절전을 강화하는 것입니다. 물론, NAS를 어떤 용도로 사용하느냐에 따라 최적화 방법은 달라질 수 있어요. 예를 들어, 항상 데이터를 써야 하는 서비스(예: Plex 서버의 실시간 트랜스코딩)를 운영한다면 무작정 절전 모드로만 돌리기는 어렵겠죠. 하지만 대부분의 경우, 유휴 시간(Idle time)을 활용한 절전은 충분히 가능합니다.

    1. 하드웨어 레벨에서의 최적화

    가장 근본적인 방법은 전력 효율이 좋은 NAS 하드웨어를 선택하는 거예요. 이미 NAS를 가지고 계신 분들이라면, 기존 장비에서 할 수 있는 최적화에 집중해야겠죠.

    • HDD vs SSD: SSD는 HDD에 비해 전력 소비가 훨씬 적습니다. OS나 자주 접근하는 데이터를 SSD에 설치하고, 대용량 데이터 저장용으로는 HDD를 사용하는 하이브리드 구성도 고려해볼 만해요.
    • 저전력 CPU/칩셋: NAS 제조사들은 저전력 설계를 강조하는 모델들을 출시합니다. 인텔의 저전력 프로세서(예: Celeron, Atom)나 ARM 기반 칩셋을 사용한 모델들이 상대적으로 전력 소비가 낮아요.
    • RAM 용량: 과도한 RAM은 불필요한 전력 소비를 유발할 수 있습니다. NAS 운영체제와 사용할 서비스에 필요한 만큼의 RAM만 장착하는 게 좋아요.
    • 확장 장치 최소화: 불필요한 외장 하드나 USB 장치 연결은 전력 소비를 늘립니다. 꼭 필요한 장치만 연결하고, 사용하지 않을 때는 분리하는 습관을 들이세요.

    2. 소프트웨어 레벨에서의 절전 설정 (Synology & TrueNAS 중심)

    대부분의 NAS 운영체제(OS)는 다양한 절전 기능을 제공해요. 이를 잘 활용하면 NAS 전기세 절감의 핵심을 잡을 수 있습니다. 제가 주로 사용하는 Synology DSM과 TrueNAS CORE를 중심으로 설명드릴게요.

    Synology 절전 설정 가이드

    Synology NAS는 사용자 친화적인 인터페이스 덕분에 절전 설정을 비교적 쉽게 할 수 있어요. 제가 사용하는 DS218+ 모델을 기준으로 설명드리겠습니다. (모델별로 메뉴 위치나 옵션이 약간 다를 수 있습니다.)

    1. HDD 최대 절전 모드 (HDD Hibernation): 가장 효과적인 절전 기능 중 하나예요. 일정 시간 동안 NAS에 접근이 없으면 HDD를 회전시키지 않고 저전력 상태로 진입시킵니다.
      • 설정 경로: 제어판 > 하드웨어 및 전원 > HDD 최대 절전 모드
      • 설정 팁: 너무 짧은 시간으로 설정하면 잦은 HDD 회전으로 오히려 전력 소비가 늘거나 데이터 접근 시 딜레이가 발생할 수 있어요. 보통 15분~30분 정도를 권장합니다. 파일 서버처럼 자주 접근하는 환경이라면 이 옵션을 비활성화하거나 매우 길게 설정해야 할 수도 있어요.
    2. 예약된 작업 (Scheduled Task): NAS를 사용하지 않는 특정 시간에는 전원을 끄고, 필요할 때 자동으로 켜지도록 설정할 수 있습니다. Synology 절전의 핵심 기능이죠.
      • 설정 경로: 제어판 > 전원 > 전원 스케줄
      • 설정 팁: 예를 들어, 밤 12시부터 아침 7시까지는 NAS 전원을 끄고, 아침 7시에 자동으로 켜지도록 설정하면 밤새 낭비되는 전력을 크게 아낄 수 있어요. 물론, 밤중에 백업이나 외부 접속이 필요한 경우에는 이 설정을 조정해야 합니다.
    3. 저전력 모드/고성능 모드: 일부 모델에서는 CPU 성능과 전력 소비 간의 균형을 조절하는 옵션을 제공합니다. NAS 전력 소비 최적화를 위해 사용 빈도가 낮은 시간에는 저전력 모드로 설정하는 걸 고려해볼 만해요.
      • 설정 경로: 제어판 > 하드웨어 및 전원 > 일반 탭 (모델에 따라 다름)

    Synology DSM에서 HDD 최대 절전 모드 설정 화면 예시

    TrueNAS CORE 절전 설정 가이드

    TrueNAS 절전은 Synology에 비해 조금 더 수동 설정이 필요해요. TrueNAS CORE는 전문적인 사용자들을 위한 OS이기 때문에 직관적이지는 않지만, 강력한 커스터마이징을 통해 절전을 구현할 수 있습니다. TrueNAS는 ZFS 파일 시스템을 사용하기 때문에 HDD의 ‘Spin Down’ (회전 중지) 개념이 Synology와는 조금 다르게 접근될 수 있어요. ZFS는 데이터 무결성을 위해 HDD를 항상 활성 상태로 유지하려는 경향이 있기 때문입니다.

    1. Spin Down 설정: TrueNAS에서도 HDD의 Spin Down 기능을 설정할 수 있어요. 하지만 ZFS의 특성상 잦은 Spin Down/Spin Up은 오히려 HDD 수명에 좋지 않다는 의견도 있으므로 신중하게 접근해야 합니다.
      • 설정 경로: System Settings > Advanced (또는 Services > Shell 에서 직접 설정)
      • 설정 방법: sysctl 명령어나 loader.conf 파일을 통해 vfs.zfs.prefetch_disable 같은 ZFS 관련 커널 파라미터를 조정하여 Spin Down을 유도할 수 있어요. 하지만 이는 매우 고급 설정이며, 잘못 건드리면 데이터 손실 위험이 있으므로 매우 주의해야 합니다. 제 홈랩에서는 기본 설정을 유지하거나, 꼭 필요한 경우에만 아주 긴 시간(예: 24시간 이상)으로 설정해두는 편이에요.
    2. Cron Job을 이용한 예약 재부팅/종료: Synology의 예약된 작업처럼, TrueNAS에서도 Cron Job을 이용하여 특정 시간에 NAS를 재부팅하거나 종료하도록 스케줄링할 수 있어요.
      • 설정 방법: Shell (또는 SSH)에 접속하여 crontab -e 명령어를 사용하여 원하는 시간에 shutdown -p now (종료) 또는 reboot 명령어가 실행되도록 설정합니다.
      • 예시: 매일 새벽 3시에 NAS를 종료하고 싶다면, crontab -e 편집기에서 0 3 * * * /sbin/shutdown -p now 와 같이 추가하세요.
    3. 서비스 관리: 사용하지 않는 서비스(예: Plex, Docker 컨테이너 등)는 중지하거나 비활성화하여 불필요한 CPU 및 디스크 I/O를 줄이는 게 TrueNAS 절전에 도움이 돼요.

    TrueNAS CORE Shell에서 Cron Job 설정 예시 (명령어 기반)

    실제 경험 기반의 트러블슈팅 및 주의사항

    NAS 전력 소비 최적화를 진행하다 보면 예상치 못한 문제에 부딪히기도 합니다. 제가 겪었던 몇 가지 상황과 해결책을 공유해드릴게요.

    • ⚠️ HDD 최대 절전 모드 진입 실패: 분명히 설정 시간은 지났는데 HDD가 계속 돌고 있다면?
      • 원인: SMB/AFP/NFS 등의 네트워크 공유 폴더에 지속적인 접근이 있거나, Plex/Download Station 같은 패키지 서비스가 백그라운드에서 디스크 I/O를 발생시키고 있을 수 있어요. Plex의 경우 라이브러리 스캔이 백그라운드에서 실행되면 HDD가 깨어납니다.
      • 해결책: Synology DSM의 리소스 모니터 (Resource Monitor)나 iotop (SSH 접속 후) 명령어를 사용하여 어떤 프로세스가 디스크를 사용하고 있는지 확인하고 해당 서비스를 일시 중지하거나 설정을 조정해줘야 해요. Synology의 경우, 일부 패키지는 자체적인 절전 방해 설정을 가지고 있을 수 있습니다.
    • ⚠️ 잦은 HDD Spin Down/Up으로 인한 노이즈 및 수명 저하 우려: 너무 짧은 시간으로 절전 모드를 설정하면, 잦은 HDD의 기동/정지음으로 인한 스트레스와 실제 수명 저하가 걱정될 수 있어요.
      • 해결책: 앞서 언급했듯, HDD 절전 모드 시간은 넉넉하게 설정하는 게 좋아요. 개인적으로는 15분~30분 이상을 권장하며, 데이터 접근 빈도가 높다면 과감히 비활성화하는 것도 방법입니다. NAS 전기세 절감보다는 안정성과 편의성을 우선하는 게 현명할 때도 있거든요.
    • ⚠️ 예약 종료 후 부팅 실패: 예약 종료 후 다음 날 NAS가 켜지지 않는 경우가 간혹 발생합니다.
      • 원인: ACPI(Advanced Configuration and Power Interface) 관련 문제거나, 전원 공급 장치(PSU)의 Wake-on-LAN(WOL) 기능 문제일 수 있어요.
      • 해결책: BIOS/UEFI 설정에서 ACPI S3/S4 모드 관련 설정을 확인하고, NAS 자체의 WOL 설정을 확인해봐야 해요. Synology의 경우 ‘Power On After Power Loss’ 옵션을 활성화하는 게 도움이 될 수 있습니다.

    전력 소비량 측정 및 검증

    실제로 얼마나 전력을 절감했는지 확인하는 것은 매우 중요해요. 그래야 동기 부여도 되고, 어떤 설정이 효과적인지 알 수 있으니까요.

    1. 스마트 플러그 활용: 가장 간편하고 현실적인 방법이에요. NAS 전원 코드에 스마트 플러그를 연결하여 실시간 전력 소비량과 누적 사용량을 측정할 수 있습니다. 다양한 스마트 플러그 앱에서 그래프 형태로 제공해주기 때문에 추이를 파악하기 좋아요.
    2. NAS 자체 모니터링 기능: Synology DSM이나 TrueNAS CORE 자체적으로도 시스템 리소스 및 전력 소비량에 대한 모니터링 기능을 제공하는 경우가 있습니다. (모델 및 OS 버전에 따라 다름)
    3. 전기 계량기 확인: 홈랩 전체의 전력 소비량을 파악하고 싶다면, 집의 메인 전기 계량기나 분전함에 설치된 전력 측정 장치를 활용할 수 있어요.

    제가 스마트 플러그로 측정한 결과, Synology NAS의 HDD 최대 절전 모드와 예약된 작업 기능을 적극적으로 활용했을 때, 유휴 시간 기준 평균 10~20W 정도의 전력 소비를 줄일 수 있었습니다. 24시간 작동하는 NAS임을 감안하면, 하루에 240Wh~480Wh, 한 달이면 약 7.2kWh~14.4kWh를 절약하는 셈이죠. 현재 전기 요금 단가를 생각하면 무시할 수 없는 수준입니다! 🎉

    스마트 플러그로 측정한 NAS의 시간별 전력 소비량 그래프 (절전 설정 적용 후)

    마무리하며: 현명한 NAS 운영을 위한 제언

    오늘은 NAS 전력 소비 최적화를 통해 NAS 전기세를 절감하고 효율적인 운영을 하는 방법에 대해 알아봤어요. 핵심은 하드웨어 선택과 소프트웨어 설정, 그리고 꾸준한 모니터링입니다.

    가장 중요한 건 ‘나의 NAS 사용 패턴’을 이해하는 거예요. 항상 고성능을 요구하는 작업을 하지 않는다면, 적극적으로 절전 기능을 활용하는 게 좋습니다. Synology의 직관적인 설정과 TrueNAS의 강력한 커스터마이징 옵션을 잘 조합하면, 성능 저하를 최소화하면서도 상당한 NAS 절전 효과를 얻을 수 있어요.

    제가 오늘 공유해드린 정보들이 여러분의 홈랩 운영에 도움이 되기를 바랍니다. 혹시 더 궁금한 점이나 여러분만의 절전 팁이 있다면 언제든지 댓글로 공유해주세요! 다음 글에서는 NAS의 성능을 한층 더 끌어올릴 수 있는 네트워크 구성 팁에 대해 다룰 예정이니 많이 기대해주세요. 😉

    NAS 전력 소비 최적화 핵심 요약

  • [Nas] TrueNAS SMB 성능 최적화: 고속 파일 공유를 위한 설정 가이드

    [Nas] TrueNAS SMB 성능 최적화: 고속 파일 공유를 위한 설정 가이드

    안녕하세요! 13년차 서버실 지킴이, 13년차 인프라 엔지니어입니다. 오늘은 홈랩(Homelab)에서 많은 분들이 겪는 고질적인 문제, 바로 TrueNAS SMB 성능 최적화에 대해 이야기해보려고 해요. NAS 파일 공유 속도가 답답해서 속 터지는 경험, 혹시 저만 해본 건 아니겠죠? 저도 처음 TrueNAS를 구축하고 파일을 옮기는데, ‘이게 뭔가 싶을 정도로’ 느려서 한참을 삽질했던 기억이 납니다. 😅

    특히 고용량 파일이나 다수의 작은 파일을 자주 주고받아야 할 때, 느린 SMB(Server Message Block) 속도는 정말이지 작업 효율을 떨어뜨리는 주범이 됩니다. 그래서 오늘은 제가 직접 경험하고 설정하면서 얻은 TrueNAS 네트워크 최적화와 SMB 설정 노하우를 아낌없이 공유해 드릴게요. 여러분의 TrueNAS가 쾌적한 고속 파일 공유 서버로 거듭나도록 도와드리겠습니다!

    홈랩에서 TrueNAS SMB 성능을 최적화하기 위한 기본적인 네트워크 구성도입니다. 10GbE 스위치와 클라이언트, TrueNAS 간의 연결을 보여줍니다.

    TrueNAS SMB, 왜 느릴까요? 핵심 개념부터 알아보기

    우선, SMB(Server Message Block)가 뭔지 간단히 짚고 넘어갈까요? 쉽게 말해, 윈도우나 macOS 같은 운영체제에서 네트워크를 통해 파일이나 프린터를 공유하기 위해 사용하는 통신 프로토콜입니다. 우리가 흔히 ‘네트워크 드라이브’나 ‘공유 폴더’라고 부르는 것들이 바로 이 SMB를 통해 작동하더라고요.

    그럼 왜 TrueNAS의 SMB 성능이 기대만큼 나오지 않을까요? 원인은 다양한데, 크게 몇 가지로 나눠볼 수 있어요.

    • 네트워크 병목(Network Bottleneck): 가장 흔한 원인 중 하나예요. 1기가비트 이더넷(Gigabit Ethernet, GbE) 환경에서는 이론상 최대 125MB/s의 속도를 내지만, 실제로는 100~110MB/s 정도가 한계거든요. 10기가비트 이더넷(10GbE)으로 업그레이드하면 훨씬 빨라집니다.
    • 디스크 I/O 성능(Disk I/O Performance): 아무리 네트워크가 빨라도 디스크 자체가 느리면 소용없어요. 특히 HDD(Hard Disk Drive)는 SSD(Solid State Drive)에 비해 랜덤 I/O 성능이 현저히 떨어지더라고요.
    • CPU 및 RAM(CPU & RAM): SMB 서비스 자체도 어느 정도의 CPU 연산과 RAM을 사용합니다. 특히 동시 접속자 수가 많거나 암호화 기능을 사용하면 더 많은 자원이 필요해요.
    • TrueNAS 설정 문제: 오늘 다룰 핵심이죠. TrueNAS 내부의 SMB 설정이나 ZFS 데이터셋(Dataset) 설정에 따라 성능이 크게 달라질 수 있습니다.

    이런 요소들을 종합적으로 고려해서 최적의 TrueNAS SMB 성능을 끌어내는 것이 우리의 목표입니다.

    고속 파일 공유를 위한 준비물과 사전 점검 💡

    본격적인 설정에 들어가기 전에, 몇 가지 준비물과 사전 점검 사항을 확인해 봅시다. 제가 처음엔 이런 것들을 간과하고 무작정 설정만 바꾸려다가 꽤나 삽질 좀 했거든요. ㅎㅎ

    1. 하드웨어 점검

    • 10기가비트 이더넷(10GbE) 환경:
      • TrueNAS 서버 NIC(네트워크 인터페이스 카드): 서버에 10GbE NIC가 장착되어 있는지 확인하세요. 저는 인텔 X540-T2 같은 NIC를 주로 사용하는데, 안정적이고 성능도 괜찮더라고요.
      • 클라이언트 PC NIC: 파일을 주고받을 클라이언트 PC에도 10GbE NIC가 있어야 합니다.
      • 10GbE 스위치(Switch): 모든 10GbE 장비가 연결될 스위치 역시 10GbE를 지원해야 해요. 저렴한 언매니지드(Unmanaged) 스위치도 괜찮지만, 장기적으로는 관리형(Managed) 스위치가 유용할 때가 많습니다.
    • 스토리지(Storage):
      • 성능이 중요한 공유라면 SSD 풀(Pool)을 사용하는 게 좋습니다. 특히 NVMe SSD는 압도적인 성능을 보여주더라고요.
      • HDD 풀이라도 스트라이프(Stripe)나 미러(Mirror) 구성보다는 RAID-Z1, Z2 같은 방식이 쓰기 성능에 유리할 수 있습니다.

    2. 네트워크 케이블 확인

    10GbE 환경에서는 CAT6a 이상의 이더넷 케이블을 사용하는 게 중요합니다. CAT5e나 CAT6 케이블은 짧은 거리에서는 작동할 수 있지만, 장거리에서는 신뢰성과 성능 저하를 일으킬 수 있어요. 저는 처음에 집에 있던 오래된 CAT5e 케이블로 연결했다가 속도가 안 나와서 애를 먹었는데, 케이블을 바꾸니 바로 해결되더라고요! 😅

    TrueNAS SMB 성능 최적화를 위한 설정 가이드

    이제 본격적으로 TrueNAS 설정에 들어가 볼까요? 여기서는 TrueNAS SCALE SMB를 기준으로 설명하지만, CORE 버전에서도 유사한 설정들이 많으니 참고하시면 됩니다.

    1. SMB 서비스 설정

    TrueNAS 웹 UI에 접속하여 서비스(Services) 메뉴에서 SMB(CIFS) 서비스를 찾아 설정합니다.

    1. 고급 설정 활성화: SMB 서비스 설정 화면에서 ‘고급 옵션 표시(Show Advanced Options)’를 클릭하세요.
    2. 서버 최소/최대 프로토콜(Server Minimum/Maximum Protocol):
      • Server Minimum Protocol: SMB2 (SMB1은 보안에 취약하고 성능도 좋지 않습니다. 레거시 시스템이 아니라면 사용하지 마세요.)
      • Server Maximum Protocol: SMB3_11 또는 SMB3 (최신 프로토콜을 사용하는 게 성능과 보안에 모두 유리합니다.)
    3. 보조 매개변수(Auxiliary Parameters): 여기에 성능 향상을 위한 추가 옵션들을 넣어줄 거예요. 한 줄씩 추가합니다.
    4. 
      # 비동기 I/O (Asynchronous I/O)를 위한 설정
      aio_pthread_cases = 100
      aio_pthread_read_cases = 100
      aio_pthread_write_cases = 100
      
      # SMB Multi-channel (멀티채널) 활성화 (TrueNAS SCALE만 해당, CORE는 Link Aggregation 사용)
      # 여러 네트워크 인터페이스를 사용하여 대역폭을 늘리고 지연 시간을 줄입니다.
      # 클라이언트와 서버 모두 Multi-channel을 지원해야 합니다.
      server multi channel = yes
      
      # 메타데이터 캐싱 최적화 (Disk I/O 감소)
      cache_read_metadata = yes
      
      # 엄격한 할당 비활성화 (쓰기 성능 향상, 주의 필요)
      # 클라이언트가 요청한 크기만큼 블록을 미리 할당하지 않도록 합니다.
      # 파일 시스템 단편화가 증가할 수 있으나, 쓰기 성능 향상에 기여할 수 있습니다.
      strict allocate = no
              

      💡 팁: strict allocate = no는 파일 시스템 단편화를 유발할 수 있으니, 아주 민감한 환경이 아니라면 기본값(yes)을 유지하는 것도 좋은 선택입니다. 저는 홈랩 환경에서 쓰기 성능을 끌어올리기 위해 사용하곤 하는데, 환경에 따라 선택하시면 됩니다.

    5. 저장(Save) 버튼을 눌러 설정을 적용합니다.

    TrueNAS 웹 UI에서 SMB 서비스의 고급 설정을 변경하는 화면입니다. 보조 매개변수에 주요 최적화 옵션들이 입력되어 있습니다.

    2. 네트워크 인터페이스(NIC) 설정

    네트워크 인터페이스 설정도 TrueNAS 네트워크 최적화의 핵심입니다.

    1. 점보 프레임(Jumbo Frames) 활성화:
      • 네트워크(Network) → 인터페이스(Interfaces) 메뉴로 이동하여 사용할 10GbE NIC를 선택합니다.
      • MTU(Maximum Transmission Unit) 값을 9000으로 변경합니다. (기본값은 1500입니다.)
      • ⚠️ 중요: TrueNAS 서버, 스위치, 클라이언트 PC의 모든 장비가 동일하게 MTU 9000을 지원하고 설정되어야 합니다! 하나라도 다르면 오히려 통신 오류나 성능 저하가 발생할 수 있어요. 제가 이 부분에서 삽질 좀 했거든요. 스위치와 TrueNAS는 설정했는데 클라이언트 MTU를 잊어서 한참을 헤맸던 기억이 나네요.
    2. Link Aggregation(링크 어그리게이션) 또는 SMB Multi-channel(멀티채널):
      • TrueNAS CORE: 여러 개의 1GbE NIC를 묶어 대역폭을 확장하는 Link Aggregation(LACP)을 주로 사용합니다. 스위치에서 LACP 설정을 해주어야 해요.
      • TrueNAS SCALE: SMB Multi-channel을 적극 활용하는 게 좋습니다. 위에 SMB 보조 매개변수에서 server multi channel = yes를 설정했다면, TrueNAS 서버에 여러 개의 NIC가 연결되어 있고 클라이언트도 Multi-channel을 지원하면 자동으로 대역폭을 합쳐서 사용해요. 훨씬 간편하고 효과적입니다.

    3. ZFS 데이터셋(Dataset) 설정 (⚠️ 매우 중요!)

    SMB 공유에 사용할 ZFS 데이터셋의 설정도 성능에 큰 영향을 미칩니다. 특히 동기 쓰기(Synchronous Write)와 관련된 설정은 데이터 안전성과 성능 사이의 트레이드오프가 존재하므로 신중해야 합니다.

    1. 데이터셋(Datasets) 메뉴로 이동하여 공유할 데이터셋을 선택합니다.
    2. 고급 옵션(Advanced Options)에서 동기화(Sync) 설정을 확인합니다.
      • Sync: Standard (기본값)
        • 대부분의 경우 이 설정이 가장 안전하고 균형 잡힌 성능을 제공해요.
        • 데이터 무결성(Data Integrity)을 보장하며, 쓰기 작업이 완료되기 전에 데이터가 디스크에 기록되었는지 확인합니다.
      • Sync: Always (가장 안전하지만, 성능 저하)
        • 모든 쓰기 작업이 디스크에 기록될 때까지 기다리므로, 전력 손실 등의 상황에서도 데이터 손실 위험이 거의 없습니다. 하지만 쓰기 성능은 가장 낮아요.
      • Sync: Disabled (최대 성능, 데이터 손실 위험)
        • 쓰기 작업이 디스크에 기록되었는지 확인하지 않고, 운영체제 캐시에서 쓰기 완료를 보고합니다. 이로 인해 쓰기 성능은 가장 뛰어나지만, 전력 손실이나 시스템 크래시 시 데이터 손실 또는 손상 위험이 매우 높습니다.
        • ⚠️ 경고: 이 옵션은 극단적인 성능이 필요하고 데이터 손실 위험을 감수할 수 있는 경우에만 사용해야 합니다. 절대 중요한 데이터에 사용하지 마세요! 저는 특정 임시 파일 공유나 벤치마크 테스트 시에만 제한적으로 사용해봤습니다.

    주의사항 및 트러블슈팅: 제가 겪었던 삽질들 😱

    자, 이렇게 설정하면 웬만해선 TrueNAS SMB 성능이 확 올라갈 겁니다. 하지만 저처럼 예상치 못한 문제에 부딪힐 수도 있겠죠? 제가 겪었던 몇 가지 삽질 경험과 해결 팁을 공유해 드릴게요.

    1. 점보 프레임 설정 후 오히려 속도가 느려지거나 접속 불가

    앞서 강조했지만, MTU 9000은 TrueNAS, 스위치, 클라이언트 모두 동일하게 설정되어야 해요. 저는 스위치와 TrueNAS는 설정했지만, 윈도우 클라이언트 PC의 NIC 드라이버 설정에서 MTU를 바꾸는 걸 깜빡해서 한참을 헤맸어요. 윈도우에서는 PowerShell이나 NIC 속성에서 설정할 수 있습니다.

    
    # 현재 MTU 확인 (Windows)
    Get-NetAdapterAdvancedProperty -Name "이더넷 어댑터 이름" | Where-Object {$_.DisplayName -eq "Jumbo Packet"}
    
    # MTU 9000으로 설정 (Windows)
    Set-NetAdapterAdvancedProperty -Name "이더넷 어댑터 이름" -RegistryKeyword "JumboPacket" -RegistryValue 9000
    

    2. 클라이언트 PC의 SMB 캐싱 문제

    가끔 클라이언트 PC에서 이전에 연결했던 SMB 공유의 캐시가 남아있어 성능 측정이 정확하지 않은 경우가 있어요. 이럴 때는 클라이언트 PC를 재부팅하거나, 네트워크 드라이브 연결을 완전히 끊고 다시 연결해보세요.

    3. TrueNAS 리소스 부족

    SMB 성능은 네트워크뿐만 아니라 TrueNAS 서버 자체의 리소스(CPU, RAM)에도 영향을 받습니다. 특히 TrueNAS SCALE SMB는 컨테이너 기반으로 작동하므로, 시스템 리소스 할당이 중요할 수 있어요. TrueNAS 대시보드에서 CPU 사용률, RAM 사용률, 디스크 I/O 등을 모니터링하면서 병목 지점을 찾아보세요.

    TrueNAS 웹 UI에서 시스템 리소스 사용 현황을 모니터링하는 대시보드 화면입니다. CPU, RAM, 네트워크 트래픽 등의 지표를 확인할 수 있습니다.

    검증 및 결과 확인 🎉

    자, 이제 설정도 끝났으니 실제로 NAS 파일 공유 속도가 얼마나 빨라졌는지 확인해 볼 시간입니다! 저는 주로 두 가지 툴을 사용해서 성능을 측정합니다.

    1. iPerf3를 이용한 네트워크 대역폭 테스트

    SMB 성능은 결국 네트워크 대역폭에 크게 좌우됩니다. iPerf3는 네트워크 자체의 최대 처리량을 측정하는 데 정말 유용해요. TrueNAS SCALE에서는 앱(Apps)으로 iPerf3를 설치하거나, CLI에서 직접 실행할 수 있습니다.

    
    # TrueNAS 서버에서 iPerf3 서버 실행
    iperf3 -s
    
    # 클라이언트 PC에서 iPerf3 클라이언트 실행 (TrueNAS 서버 IP로)
    iperf3 -c [TrueNAS_IP] -P 8 -t 30
    

    이렇게 측정했을 때 10GbE 환경이라면 9~9.5Gbps 정도가 나와야 정상입니다. 만약 1Gbps에 머무르거나 그 이하로 나온다면, 네트워크 케이블, NIC 드라이버, 스위치 설정 등을 다시 점검해 봐야 합니다.

    2. CrystalDiskMark (Windows) 또는 Blackmagic Disk Speed Test (macOS)

    실제 SMB 공유 폴더에 파일을 읽고 쓰는 성능을 측정하는 데 정말 유용한 툴들이예요. 클라이언트 PC에서 공유 폴더를 네트워크 드라이브로 연결한 후 테스트를 진행합니다.

    • CrystalDiskMark: 윈도우 환경에서 가장 널리 사용되는 디스크 벤치마크 툴입니다. 순차 읽기/쓰기, 랜덤 읽기/쓰기 성능을 직관적으로 보여줍니다.
    • Blackmagic Disk Speed Test: macOS 사용자에게 정말 좋은 선택지예요. 비디오 편집 워크로드에 초점을 맞춰 성능을 측정합니다.

    설정 전후로 이 툴들을 돌려보면 확연히 빨라진 TrueNAS SMB 성능을 체감하실 수 있을 거예요. 저는 순차 읽기/쓰기 속도가 110MB/s에서 700~800MB/s (10GbE 환경, SSD 풀)까지 올라가는 걸 보고 쾌재를 불렀습니다! 🎉

    TrueNAS SMB 성능 최적화 전후의 CrystalDiskMark 벤치마크 결과 비교표입니다. 순차 읽기/쓰기 속도 변화를 보여줍니다.

    마무리하며: 쾌적한 홈랩을 위한 끊임없는 탐구

    오늘은 제가 13년차 인프라 엔지니어로 홈랩을 운영하면서 겪었던 TrueNAS SMB 성능 최적화 과정을 공유해 드렸습니다. NAS 파일 공유 속도를 높이기 위해 SMB 설정부터 네트워크 환경, 그리고 ZFS 데이터셋 설정까지 다양한 요소를 고려해야 한다는 걸 다시 한번 깨달으셨을 거예요. 때로는 복잡하고 삽질의 연속일 수 있지만, 드디어 원하는 성능이 나왔을 때의 그 쾌감은 정말 최고랍니다! 😄

    오늘 다룬 내용 외에도 ZFS 캐싱(L2ARC, SLOG)을 활용하거나, 더 고급스러운 네트워크 튜닝을 통해 TrueNAS 네트워크 최적화를 시도해 볼 수도 있어요. 하지만 오늘 제가 알려드린 기본 설정만으로도 대부분의 홈랩 환경에서는 충분히 만족할 만한 TrueNAS SMB 성능 향상을 경험하실 수 있을 겁니다. 여러분의 쾌적한 홈랩 생활에 제 경험이 조금이나마 도움이 되었기를 바랍니다!

    다음번에는 TrueNAS SCALE의 컨테이너 앱 활용법 같은 재미있는 주제로 찾아올게요. 그때까지 즐거운 홈랩 라이프 보내세요! 👋

  • [HomeLabs] 홈서버 OS 비교: Proxmox VE, TrueNAS SCALE, Unraid, OMV 완벽 분석

    [HomeLabs] 홈서버 OS 비교: Proxmox VE, TrueNAS SCALE, Unraid, OMV 완벽 분석

    홈서버 OS 비교: Proxmox VE, TrueNAS SCALE, Unraid, OMV 완벽 분석

    💡 홈서버 OS, 이젠 선택이 아니라 필수! 무슨 기준으로 고르면 될까요?

    안녕하세요! 13년차 인프라 엔지니어, ’13년차의 서버실’ 블로그 주인장입니다. 요즘 홈서버에 대한 관심이 정말 뜨겁더라고요. 저도 퇴근하고 집에 오면 홈랩에서 이런저런 실험하는 재미로 살고 있거든요. 그런데 막상 홈서버를 구축하려고 하면 가장 먼저 부딪히는 벽이 바로 홈서버 OS(Operating System) 선택이 아닐까 싶어요. 저도 처음엔 Proxmox VE, TrueNAS, Unraid, OMV… 이름만 들어도 머리가 지끈거리고, ‘대체 뭘 써야 나한테 맞을까?’ 고민이 정말 많았거든요.

    혹시 이런 경험 있으신가요? ⚠️ ‘이거 좋다고 해서 깔아봤는데, 내 목적이랑은 안 맞네…’ 하고 다시 밀어버리는 삽질 말이죠. 저도 셀 수 없이 많이 해봤습니다. ㅎㅎ 그래서 오늘은 저처럼 시행착오를 겪고 있는 분들을 위해, 제가 직접 써보고 느꼈던 경험을 바탕으로 대표적인 홈서버 OS 4가지, Proxmox VE, TrueNAS SCALE, Unraid, OpenMediaVault (OMV)를 완벽하게 비교 분석해 드리려고 합니다. 이 글을 보시면 여러분의 홈서버에 딱 맞는 OS를 찾는 데 큰 도움이 되실 거예요!

    홈서버 OS 선택의 복잡성을 보여주는 다양한 구성 요소 연결 다이어그램

    다양한 홈서버 OS 중에서 나에게 맞는 것을 고르는 과정은 마치 미로를 탐험하는 것과 같습니다.

    개념 정리: 홈서버 OS, 왜 이렇게 다양할까요?

    본격적인 비교에 앞서, 각 OS가 추구하는 핵심 개념을 잠깐 짚고 넘어갈게요. 이걸 알아야 나에게 맞는 OS를 고르는 기준이 명확해지거든요.

    • 하이퍼바이저(Hypervisor): 한 대의 물리 서버 위에 여러 개의 가상 머신(VM, Virtual Machine)을 올릴 수 있게 해주는 소프트웨어예요. 서버 하드웨어를 효율적으로 나눠 쓰는 데 특화되어 있죠. Proxmox VE가 대표적입니다.
    • NAS OS: 네트워크 결합 스토리지(NAS, Network Attached Storage) 기능을 제공하는 OS예요. 여러 저장 장치를 묶어 파일 공유, 미디어 서버 등을 구축하는 데 최적화되어 있죠. TrueNAS SCALE, Unraid, OpenMediaVault가 이 범주에 속합니다.
    • 컨테이너(Container): VM보다 훨씬 가볍게 애플리케이션을 격리해서 실행하는 기술입니다. Docker(도커)나 Kubernetes(쿠버네티스)가 여기에 해당하죠. 요즘 홈랩에서는 VM과 함께 컨테이너 활용이 대세가 되고 있어요.

    이런 개념들을 머리에 넣고 각 OS의 특징을 살펴보면 훨씬 이해하기 쉬울 거예요. 그럼 이제 하나씩 자세히 들여다볼까요?

    Proxmox VE (프로목스 VE): 홈랩 가상화의 제왕

    ✅ 특징 및 저의 경험

    Proxmox VE는 KVM(Kernel-based Virtual Machine) 기반의 오픈소스 하이퍼바이저예요. 쉽게 말해, 윈도우나 리눅스 같은 다양한 OS를 가상 머신으로 여러 개 띄워서 쓸 수 있게 해주는 OS라고 보시면 돼요. 여기에 LXC(Linux Containers)라는 컨테이너 기능까지 지원해서, VM과 컨테이너를 한 곳에서 통합 관리할 수 있다는 게 정말 큰 장점이거든요.

    제가 처음 Proxmox를 접했을 때 ‘와, 이걸로 내 홈서버 하나에 윈도우 서버도 돌리고, NAS도 VM으로 올리고, 우분투 서버도 만들 수 있겠네?’ 하고 감탄했던 기억이 나네요. 웹 기반의 관리 GUI(Graphical User Interface)가 정말 잘 되어 있어서, 복잡한 설정도 마우스 클릭 몇 번으로 해결할 수 있더라고요. 엔터프라이즈급 기능들을 홈랩에서 무료로 써볼 수 있다는 점이 매력적이었어요.

    👍 장점

    • 강력한 가상화 기능: KVM과 LXC를 이용해 다양한 OS를 효율적으로 운영할 수 있습니다.
    • 웹 기반 GUI: 직관적인 웹 인터페이스로 VM, 컨테이너, 네트워크, 스토리지를 쉽게 관리할 수 있어요.
    • 오픈소스 및 활발한 커뮤니티: 무료로 사용할 수 있고, 문제가 생겼을 때 정보를 찾기 쉽습니다.
    • 리소스 효율성: 하드웨어 리소스를 여러 VM/컨테이너에 유연하게 배분하여 활용도를 극대화할 수 있습니다.

    👎 단점 및 ⚠️ 주의사항

    • 스토리지 관리 기능: 자체적인 NAS 기능은 없어요. TrueNAS나 OMV를 VM으로 올려서 사용하는 경우가 많습니다.
    • ZFS 구성의 복잡성: Proxmox에서도 ZFS를 지원하지만, 초기 구성이나 관리가 초보자에게는 다소 어렵게 느껴질 수 있어요.
    • 초기 학습 곡선: 가상화 개념이 익숙하지 않다면 처음엔 좀 헤맬 수 있습니다.
    Proxmox VE 웹 인터페이스 대시보드 스크린샷

    Proxmox VE의 직관적인 웹 대시보드. 여러 가상 머신과 컨테이너의 상태를 한눈에 확인할 수 있습니다.

    TrueNAS SCALE (트루NAS 스케일): 스토리지와 컨테이너의 완벽한 조화

    ✅ 특징 및 저의 경험

    TrueNAS SCALE은 강력한 ZFS(Zettabyte File System) 기반의 NAS OS예요. 데이터의 무결성과 안정성을 최우선으로 생각하는 분들에게는 거의 표준처럼 여겨지죠. 기존의 FreeBSD 기반 TrueNAS CORE와 달리, Debian Linux를 기반으로 만들어져 KVM 가상화와 Docker/Kubernetes(Apps)를 기본으로 지원한다는 점이 핵심입니다.

    제가 TrueNAS SCALE을 써보면서 가장 놀랐던 건 ZFS의 강력함이었어요. 스냅샷(Snapshot), 데이터 중복 제거(Deduplication), 자가 복구(Self-healing) 같은 기능들은 정말 ‘내 데이터는 안전하겠구나!’ 하는 안도감을 주더라고요. 그리고 Docker 컨테이너를 ‘Apps’라는 이름으로 웹 GUI에서 쉽게 설치하고 관리할 수 있어서, Plex Media Server, Home Assistant 같은 다양한 서비스들을 정말 편하게 올릴 수 있었습니다. NAS 기능과 앱 활용을 동시에 잡고 싶은 분들에게 정말 좋은 선택지라고 생각했어요.

    👍 장점

    • 최강의 데이터 보호: ZFS를 통해 데이터 무결성과 안정성을 보장해요. 스냅샷 기능은 랜섬웨어 방어에도 효과적하죠.
    • 컨테이너 앱 통합: Docker/Kubernetes 기반의 ‘Apps’ 기능을 통해 다양한 서비스를 쉽게 배포하고 관리할 수 있습니다.
    • 쉬운 웹 GUI: 직관적인 웹 인터페이스로 스토리지, 네트워크, 앱 등을 편리하게 관리할 수 있어요.
    • KVM 가상화 지원: NAS 기능과 함께 가상 머신도 운영할 수 있어 활용도가 높습니다.

    👎 단점 및 ⚠️ 주의사항

    • 높은 메모리 요구량: ZFS는 RAM을 많이 사용해요. 최소 16GB, 안정적인 운영을 위해서는 32GB 이상을 권장합니다.
    • 하드웨어 제약: ZFS 특성상 드라이브 추가/교체가 Unraid처럼 유연하지 않습니다. 처음 구성 시 신중해야 해요.
    • 업데이트 시 주의: 아직 비교적 신생 OS라 업데이트 시 버그가 발생할 가능성이 있어요. 항상 백업 후 진행하는 것이 좋습니다.

    Unraid (언레이드): 유연한 스토리지와 도커의 천국

    ✅ 특징 및 저의 경험

    Unraid는 다른 NAS OS와는 조금 다른 독특한 스토리지 방식을 채택하고 있어요. 패리티 드라이브(Parity Drive)를 사용해서 데이터 보호를 하면서도, 드라이브 용량과 종류에 상관없이 유연하게 스토리지를 확장할 수 있다는 점이 가장 큰 매력이거든요. 여기에 Docker(도커)와 KVM 기반의 VM 기능을 아주 강력하게 지원해서, 홈랩 사용자들 사이에서 인기가 많죠.

    제가 Unraid를 써보면서 가장 감탄했던 부분은 바로 ‘유연성’이었어요. 굴러다니는 하드디스크가 있으면 그냥 끼워서 확장하면 끝이거든요. 굳이 같은 용량의 드라이브를 여러 개 맞춰 살 필요가 없다는 게 정말 편했어요. 게다가 Community Applications라는 플러그인을 통해 Docker 컨테이너를 설치하는 과정은 정말 ‘신세계’였습니다. 클릭 몇 번으로 원하는 앱을 바로 설치할 수 있으니, 삽질할 시간이 확 줄어들더라고요. 유료 OS이긴 하지만, 그만한 가치를 한다고 느꼈어요.

    👍 장점

    • 뛰어난 스토리지 유연성: 다양한 용량/종류의 드라이브를 섞어 쓸 수 있고, 확장이 매우 쉬워요.
    • 최강의 Docker 지원: Community Applications를 통해 수많은 Docker 컨테이너를 쉽고 빠르게 설치, 관리할 수 있습니다.
    • 쉬운 VM 관리: KVM 기반으로 가상 머신도 손쉽게 운영할 수 있어요.
    • 낮은 전력 소비: 사용하지 않는 드라이브는 스핀 다운(Spin Down) 시켜 전력 소모를 줄일 수 있습니다.

    👎 단점 및 ⚠️ 주의사항

    • 유료 라이선스: 무료가 아니에요. 하지만 한 번 구매하면 영구적으로 사용할 수 있습니다.
    • ZFS 같은 데이터 무결성 보장은 아님: 패리티 드라이브 기반이라 ZFS처럼 완벽한 데이터 무결성을 보장하지는 않아요.
    • 쓰기 성능: 단일 드라이브에 쓰기 때문에 쓰기 성능이 드라이브 하나 속도에 제약됩니다. 읽기 성능은 병렬로 이루어져 빨라요.
    • USB 부팅 필수: OS가 USB 메모리에 설치되어 부팅 시 필요합니다.

    OpenMediaVault (OMV, 오픈미디어볼트): 가볍고 확장성 좋은 무료 NAS

    ✅ 특징 및 저의 경험

    OpenMediaVault (OMV)는 Debian Linux를 기반으로 하는 오픈소스 NAS OS예요. 가볍고 안정적이며, 다양한 플러그인을 통해 기능을 확장할 수 있다는 점이 큰 장점이거든요. 저사양 시스템에서도 잘 작동하기 때문에, 남는 PC나 라즈베리 파이 같은 SBC(Single Board Computer)로 NAS를 구축하려는 분들에게 인기가 많아요.

    제가 OMV를 써봤을 때 가장 인상 깊었던 건 ‘가벼움’이었어요. 오래된 노트북에 설치해봤는데도 전혀 버벅거림 없이 NAS 기능을 잘 수행하더라고요. Docker 플러그인을 설치하면 컨테이너도 쉽게 운영할 수 있어서, 기본적인 NAS 기능에다 Plex 같은 미디어 서버나 파일 동기화 서비스 등을 추가하기에 정말 좋았습니다. 복잡한 가상화나 ZFS 같은 고급 기능보다는, 안정적인 파일 저장과 공유, 그리고 몇 가지 앱만 돌리고 싶은 분들에게 강력 추천해요!

    👍 장점

    • 무료 및 오픈소스: 비용 부담 없이 강력한 NAS 기능을 사용할 수 있어요.
    • 가볍고 안정적: 저사양 하드웨어에서도 쾌적하게 작동하며, Debian 기반이라 안정성이 뛰어나요.
    • 다양한 플러그인: Docker, Rsync, S.M.A.R.T. 등 다양한 플러그인을 통해 기능을 확장할 수 있습니다.
    • 쉬운 설치 및 관리: 웹 GUI를 통해 기본적인 설정과 관리가 용이해요.

    👎 단점 및 ⚠️ 주의사항

    • 제한적인 고급 기능: ZFS 같은 강력한 데이터 보호 기능이나, Proxmox/TrueNAS SCALE/Unraid처럼 통합된 가상화 기능은 없어요 (플러그인으로 Docker만 지원).
    • 상대적으로 부족한 GUI 기능: 다른 OS에 비해 GUI에서 제공하는 기능이 다소 제한적일 수 있습니다.
    • 커뮤니티 지원: TrueNAS나 Proxmox만큼 거대하지는 않지만, 충분히 활성화되어 있어요.

    4가지 홈서버 OS, 한눈에 비교하기!

    이제까지 살펴본 4가지 홈서버 OS의 주요 특징들을 표로 정리해봤어요. 어떤 OS가 여러분의 상황에 가장 적합한지 판단하는 데 도움이 되셨으면 좋겠네요.

    구분 Proxmox VE TrueNAS SCALE Unraid OpenMediaVault (OMV)
    주요 기능 가상화(VM), 컨테이너(LXC) NAS(ZFS), 컨테이너(Docker/K8s), 가상화(KVM) NAS(유연한 스토리지), 컨테이너(Docker), 가상화(KVM) NAS(Debian 기반), 컨테이너(Docker 플러그인)
    기반 OS Debian Linux Debian Linux Slackware Linux (커스텀) Debian Linux
    스토리지 특징 다양한 스토리지 지원 (ZFS, LVM, Ceph 등) ZFS (강력한 데이터 보호) 패리티 드라이브 (유연한 확장) EXT4, XFS 등 (기본 리눅스 파일시스템)
    가상화 지원 KVM (매우 강력) KVM (통합 지원) KVM (통합 지원) 제한적 (Docker만 공식 지원)
    컨테이너 지원 LXC (매우 강력) Docker/Kubernetes (Apps) Docker (Community Apps) Docker (플러그인)
    가격 무료 (유료 서브스크립션 옵션) 무료 유료 (영구 라이선스) 무료
    권장 사용자 복수의 VM/컨테이너 운영, 하드웨어 활용 극대화 데이터 안전성 최우선, NAS와 앱/VM 통합 스토리지 유연성, Docker 앱 위주, 다양한 하드웨어 가볍고 안정적인 NAS, 저사양 시스템, 리눅스 친화적
    난이도 중상 중 중하 하

    홈서버 OS 4가지의 주요 특징을 한눈에 비교해볼 수 있는 요약표입니다.

    Proxmox VE, TrueNAS SCALE, Unraid, OMV 4가지 홈서버 OS 주요 특징 비교 인포그래픽

    Proxmox VE, TrueNAS SCALE, Unraid, OMV의 핵심 기능을 시각적으로 비교한 인포그래픽. 각 OS의 강점과 약점을 한눈에 파악할 수 있어요.

    그래서, 어떤 OS를 고르면 될까요? (저의 삽질 경험 기반 추천)

    자, 이제 가장 중요한 질문이죠. ‘그래서 뭘 써야 하냐고?!’ 제 경험을 바탕으로 간단하게 정리해 드릴게요.

    • 나는 정말 다양한 OS를 VM으로 돌리고 싶고, 하드웨어 리소스를 끝까지 뽑아내고 싶다! ➡️ Proxmox VE가 정답입니다. 여기에 NAS는 TrueNAS SCALE이나 OMV를 VM으로 올려서 쓰는 구성이 일반적이에요. 저도 처음엔 Proxmox로 시작해서 리눅스, 윈도우 서버 다 돌려봤었죠.
    • 데이터 안전성이 최우선이고, NAS 기능과 함께 컨테이너 앱도 안정적으로 쓰고 싶다! ➡️ TrueNAS SCALE을 추천해요. ZFS의 강력함은 정말 경험해봐야 알 수 있거든요. 다만, 메모리 투자를 좀 하셔야 합니다.
    • 집에 굴러다니는 하드디스크가 많고, 유연하게 스토리지를 확장하면서 Docker 위주로 홈랩을 꾸미고 싶다! ➡️ Unraid가 최고의 선택일 수 있어요. 유료라는 점만 감수한다면 정말 ‘삶의 질’이 달라지는 경험을 하실 거예요. 저도 한동안 Unraid의 매력에 푹 빠져 있었거든요.
    • 저사양 PC나 라즈베리 파이로 가볍게 NAS를 구축하고 싶고, 파일 공유와 몇 가지 앱만 돌리면 충분하다! ➡️ OpenMediaVault (OMV)가 가장 합리적인 선택이에요. 무료이면서도 필요한 기능은 다 가지고 있거든요.

    결국 ‘자신의 주 목적’이 무엇인지 파악하는 것이 가장 중요해요. 저도 처음엔 이게 뭔가 싶어서 Proxmox로 시작했다가 NAS 기능 때문에 TrueNAS도 써보고, Unraid의 유연성에 혹하기도 했거든요. 여러 OS를 설치하고 지우는 삽질 끝에 깨달은 건, ‘완벽한 OS는 없고, 내게 가장 잘 맞는 OS가 최고다’라는 사실이었습니다. 여러분도 이 글을 참고하셔서 자신에게 딱 맞는 홈서버 OS를 찾으시길 바랄게요! 💡

    홈서버 OS 선택 가이드를 위한 결정 트리 플로우차트

    당신의 홈서버 목적에 따라 최적의 OS를 선택할 수 있도록 돕는 결정 트리 다이어그램입니다.

    🎉 마무리: 나만의 홈랩, 즐거운 삽질의 시작!

    오늘은 Proxmox VE, TrueNAS SCALE, Unraid, OpenMediaVault까지, 대표적인 홈서버 OS 4가지를 비교 분석해봤어요. 각 OS마다 장단점이 명확하죠? 어떤 OS를 고르시든, 홈랩 구축은 정말 즐거운 경험이 될 거라고 확신합니다. 때로는 예상치 못한 문제에 부딪혀 ‘삽질’을 할 수도 있지만, 그 과정에서 배우는 것이 정말 많거든요.

    홈랩은 말 그대로 ‘나만의 실험실’이잖아요? 여러분의 아이디어와 상상력을 마음껏 펼쳐보세요. 궁금한 점이 있다면 언제든지 댓글로 남겨주시고요! 다음번에는 제가 Proxmox VE에 TrueNAS SCALE을 VM으로 설치해서 쓰는 방법에 대해 자세히 다뤄볼까 합니다. 기대해주세요! 😄

  • [Nas] Docker Compose로 NAS에 앱 배포 및 관리하기: Synology, TrueNAS SCALE 가이드

    [Nas] Docker Compose로 NAS에 앱 배포 및 관리하기: Synology, TrueNAS SCALE 가이드

    13년차 서버실: Docker Compose로 NAS 앱 배포 및 관리 – Synology, TrueNAS SCALE 실전 가이드

    안녕하세요! 13년차 인프라 엔지니어입니다. 오늘은 많은 분들이 궁금해하실 주제를 다뤄볼게요. 바로 Docker Compose를 활용해서 NAS(Network Attached Storage)에 다양한 애플리케이션을 배포하고 관리하는 방법인데요. Synology와 TrueNAS SCALE 환경에서 직접 경험했던 내용을 바탕으로 실전 팁을 공유해드리겠습니다. 혹시 NAS를 파일 저장소로만 쓰고 계신가요? Docker Compose와 함께라면 여러분의 NAS가 훨씬 더 똑똑한 홈랩 서버로 변신합니다! 😉

    NAS 환경에서 Docker Compose를 활용한 애플리케이션 배포 및 관리 아키텍처 개요

    왜 NAS에 Docker Compose를 써야 할까요?

    NAS를 운영하다 보면 언젠가는 ‘파일 저장소 말고 다른 기능도 쓰고 싶은데…’ 하는 생각이 들게 돼요. 개인 블로그를 운영하고 싶거나, 영화·음악 스트리밍 서버를 구축하고 싶을 때 말이죠. 예전 같으면 복잡한 설치 과정과 설정 때문에 망설였겠지만, Docker와 Docker Compose를 알게 된 후로는 정말 달라졌어요.

    Docker는 애플리케이션을 컨테이너라는 격리된 환경에 담아 실행하는 기술입니다. 덕분에 운영체제나 다른 프로그램과의 충돌 걱정 없이 원하는 앱을 쉽게 설치하고 실행할 수 있죠. 다만 여러 개의 컨테이너를 묶어서 관리하려면 일일이 명령어를 입력해야 해서 번거로울 때가 많아요. 이때 등장하는 것이 바로 Docker Compose입니다!

    쉽게 말해, Docker Compose는 YAML이라는 설정 파일을 사용해서 여러 컨테이너로 구성된 애플리케이션을 한 번에 정의하고 실행할 수 있게 해주는 도구예요. 마치 오케스트라의 지휘자처럼 여러 악기(컨테이너)들이 조화롭게 연주(실행)되도록 지휘하는 역할을 하는 거죠.

    Docker Compose를 NAS에서 사용하면 좋은 점은 다음과 같아요:

    • ✅ 간편한 배포: 복잡한 설정 과정을 YAML 파일 하나로 정의하고, 단 한 번의 명령어로 여러 컨테이너를 한 번에 띄울 수 있어요.
    • ✅ 쉬운 관리: 컨테이너의 시작, 중지, 재시작, 삭제 등을 Compose 명령어로 간단하게 관리할 수 있습니다.
    • ✅ 재현성: 동일한 YAML 설정 파일만 있으면 언제 어디서든 똑같은 환경을 구축할 수 있어요. 개발, 테스트, 운영 환경 간의 차이로 인한 문제를 줄여주거든요.
    • ✅ 포트 충돌 방지: 각 컨테이너가 사용할 포트(Port)를 명확하게 지정하여 충돌을 피할 수 있습니다.
    • ✅ 확장성: 필요에 따라 컨테이너 수를 늘리거나 줄이기가 정말 쉬워요.

    Synology와 TrueNAS SCALE, Docker Compose 활용법

    Synology DSM과 TrueNAS SCALE은 각기 다른 방식으로 Docker 환경을 제공하지만, Docker Compose를 활용하는 기본 원리는 동일합니다. 핵심은 docker-compose.yml 파일을 작성하고 실행하는 거죠.

    1. Synology NAS에서 Docker Compose 사용하기

    Synology NAS에서는 ‘Docker’ 패키지를 설치하면 Docker Compose 기능을 사용할 수 있어요. DSM의 ‘패키지 센터’에서 Docker를 검색하여 설치해주세요. 저는 보통 SSH로 NAS에 접속해서 작업하는 것을 선호하지만, DSM의 ‘텍스트 편집기’나 ‘File Station’을 이용해 YAML 파일을 작성하고 관리할 수도 있습니다.

    실행 단계:

    1. SSH 접속: Putty(Windows) 또는 터미널(macOS/Linux)을 이용해 NAS에 SSH로 접속합니다.
    2. 작업 디렉토리 생성: 원하는 위치에 애플리케이션을 위한 디렉토리를 만들어요. 예: mkdir /volume1/docker/my-app && cd /volume1/docker/my-app
    3. docker-compose.yml 파일 작성: 텍스트 편집기(vi, nano 등)를 이용해 docker-compose.yml 파일을 생성하고 내용을 작성합니다.
    4. Docker Compose 실행: docker-compose up -d 명령어를 실행하면 설정된 컨테이너들이 백그라운드(-d)에서 실행돼요.

    예시: Nginx 웹 서버와 Portainer (컨테이너 관리 도구) 배포

    Portainer는 Docker 환경을 웹 UI로 쉽게 관리할 수 있게 해주는 정말 유용한 도구예요. NAS에 Portainer를 설치해두면 컨테이너 관리가 훨씬 편해진답니다.

    
    version: '3.8'
    
    services:
      portainer:
        image: portainer/portainer-ce:latest
        container_name: portainer
        restart: unless-stopped
        security_opt:
          - no-new-privileges:true
        ports:
          - "8000:8000"
          - "9443:9443"
        volumes:
          - /var/run/docker.sock:/var/run/docker.sock
          - portainer_data:/data
        networks:
          - portainer_net
    
      nginx:
        image: nginx:latest
        container_name: my-nginx
        restart: unless-stopped
        ports:
          - "80:80"
          - "443:443"
        volumes:
          - ./nginx.conf:/etc/nginx/nginx.conf:ro
          - ./html:/usr/share/nginx/html:ro
        depends_on:
          - portainer
        networks:
          - portainer_net
    
    volumes:
      portainer_data:
    
    networks:
      portainer_net:
        driver: bridge
    

    이 파일을 /volume1/docker/portainer-nginx/docker-compose.yml에 저장하고, 해당 디렉토리에서 docker-compose up -d를 실행하면 Portainer와 Nginx 웹 서버가 동시에 실행돼요. Portainer는 http://NAS_IP:9443 (SSL), Nginx는 http://NAS_IP로 접속할 수 있습니다.

    Synology DSM에서 Docker 패키지를 설치하는 과정

    2. TrueNAS SCALE에서 Docker Compose 사용하기 (TrueNAS SCALE Apps)

    TrueNAS SCALE은 Kubernetes 기반으로 앱을 관리하는 ‘Apps’ 기능을 제공해요. Docker Compose 파일을 직접 사용하는 방식과는 조금 다르지만, Apps 기능을 통해 원하는 애플리케이션을 쉽게 설치하고 관리할 수 있다는 점은 같습니다. TrueNAS SCALE의 Apps는 Helm chart라는 것을 사용하는데, 많은 경우 Docker Compose 파일과 유사한 구조를 가져요.

    실행 단계:

    1. Apps 메뉴 접근: TrueNAS SCALE 웹 UI에서 ‘Apps’ 메뉴로 이동합니다.
    2. Catalogs 설정: 원하는 애플리케이션을 설치하기 위해 Catalog(앱 스토어 같은 개념)를 추가해야 해요. 커뮤니티에서 제공하는 다양한 Catalog들이 있습니다.
    3. 애플리케이션 설치: Catalog에서 원하는 앱을 선택하고 설치를 진행하면 돼요. 커스텀 앱을 직접 등록하여 Docker Compose 파일처럼 관리할 수도 있습니다.

    주의사항: TrueNAS SCALE의 Apps는 Kubernetes 기반이므로, Docker Compose의 docker-compose.yml 파일을 직접 실행하는 방식과는 다릅니다. 하지만 많은 커뮤니티 앱들이 Docker Compose 구조를 따르고 있어서, YAML 파일의 내용을 이해하고 있다면 앱 설정 시 도움이 돼요. 직접 Docker Compose 파일을 적용하려면 TrueNAS CORE의 ‘iocage’ 플러그인이나 TrueNAS SCALE에서 별도의 VM을 구성해야 할 수도 있습니다. 다만 대부분의 일반 사용자는 Apps 기능으로 충분히 원하는 앱을 설치하고 관리할 수 있어요.

    TrueNAS SCALE의 Apps 메뉴에서 다양한 애플리케이션을 탐색하고 설치하는 과정

    실전 팁 & 트러블슈팅 ⚠️

    13년간 Docker를 다루면서 겪었던 문제와 팁을 공유해 드릴게요. 처음엔 이것 때문에 밤새 고생했던 기억이 있어요. ㅎㅎ

    • 포트 충돌 (Port Conflict): 가장 흔한 문제예요. docker-compose.yml 파일에서 ports 섹션에 이미 사용 중인 호스트 포트를 지정하면 컨테이너가 실행되지 않습니다. Synology NAS의 경우, DSM 자체적으로 사용하는 포트와 충돌하지 않도록 주의해야 해요. 예를 들어 80번 포트는 DSM의 웹 스테이션 등이 사용할 수 있으니, 다른 포트(예: 8080)로 변경하는 것이 훨씬 안전합니다.
    • 볼륨 마운트 경로: 컨테이너 내의 데이터가 호스트 NAS의 특정 경로에 저장되도록 volumes 설정을 잘 해야 합니다. Synology에서는 /volume1/docker/app-name 같은 경로를 주로 사용하고, TrueNAS SCALE에서는 /mnt/poolname/dataset/app-name 같은 경로를 써요. 경로가 잘못되면 데이터가 사라지거나 컨테이너가 제대로 동작하지 않을 수 있으니 주의하세요. 경로 지정 시에는 항상 절대 경로(Absolute Path)를 사용하는 게 정답이에요.
    • 권한 문제 (Permission Issues): 컨테이너가 호스트 파일 시스템에 접근할 때 권한 문제가 발생할 수 있습니다. Docker Compose 파일의 user 옵션을 설정하거나, 호스트 볼륨의 권한을 컨테이너 사용자의 권한에 맞게 조정해야 할 수 있어요.
    • Docker Compose 버전 호환성: version 필드에 명시된 Compose 파일 형식 버전과 실제 사용 중인 Docker Compose 엔진 버전 간의 호환성을 확인하세요. 최신 버전에서는 지원되지 않는 기능이 이전 버전에 있을 수 있습니다.
    • 네트워크 설정: 여러 컨테이너가 서로 통신해야 하는 경우, networks 설정을 올바르게 해야 합니다. 기본적으로는 bridge 네트워크가 사용되지만, 복잡한 구성에서는 custom network을 사용해야 할 때도 있어요.

    💡 팁: 문제가 발생했을 때, docker-compose logs 명령어로 해당 서비스의 로그를 확인하세요. 정말 많은 힌트를 얻을 수 있거든요! 저도 이 명령어로 대부분의 문제를 해결했어요.

    결과 확인 및 관리

    Docker Compose 명령어를 통해 컨테이너를 실행한 후에는 상태를 확인하는 것이 중요합니다.

    • docker-compose ps: 현재 실행 중인 컨테이너 목록과 상태를 보여줘요.
    • docker-compose logs -f : 특정 컨테이너의 실시간 로그를 확인할 수 있습니다. (Ctrl+C로 종료)
    • docker-compose down: 실행 중인 컨테이너들을 중지하고 관련된 네트워크, 볼륨 등을 삭제해요. (데이터 보존 여부는 볼륨 설정에 따라 다름)
    • docker-compose pull: Docker 이미지의 최신 버전을 다운로드합니다.
    • docker-compose up -d --build: 설정 파일을 새로 빌드하고 컨테이너를 실행해요.

    Portainer 대시보드를 통해 Synology 또는 TrueNAS SCALE에서 실행 중인 Docker 컨테이너들을 한눈에 관리하는 모습

    마무리하며

    지금까지 Docker Compose를 활용하여 Synology와 TrueNAS SCALE NAS 환경에서 애플리케이션을 배포하고 관리하는 방법에 대해 알아봤습니다. 처음에는 조금 복잡해 보일 수 있지만, 한 번 익혀두면 NAS의 활용도를 정말 무궁무진하게 높일 수 있는 강력한 도구예요.

    저도 처음엔 간단한 웹 서버 하나 띄우는 것도 버거웠는데, 지금은 여러 컨테이너를 엮어 복잡한 서비스를 구축할 수 있게 됐네요. 여러분도 오늘 알려드린 내용을 바탕으로 차근차근 시도해보신다면, 분명 여러분만의 멋진 홈랩 환경을 구축하실 수 있을 겁니다.

    다음 글에서는 Docker Compose를 활용한 Home Assistant 설치 및 연동에 대한 실전 가이드를 다룰 예정이니 많은 기대 부탁드립니다! 혹시 오늘 내용 중에 궁금한 점이 있다면 언제든지 댓글로 남겨주세요. 함께 해결해나가겠습니다. 😉