13년차의 서버실

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

[태그:] Plex

  • [홈서버] Docker on NAS로 Plex 미디어 서버 구축 가이드

    [홈서버] Docker on NAS로 Plex 미디어 서버 구축 가이드

    [홈서버] Docker on NAS로 Plex 미디어 서버 구축 가이드

    집에 NAS(Network Attached Storage, 네트워크 저장소) 한 대 두고 영화나 드라마, 가족 사진까지 한 번에 정리하고 싶다는 생각, 한 번쯤 해보셨을 겁니다. 저도 홈랩(Home Lab, 집에서 운영하는 개인 실험실) 굴리면서 가장 먼저 손댄 게 바로 Docker on NAS 환경이었거든요. 처음엔 “그냥 NAS 앱스토어에서 설치하면 되는 거 아닌가?” 싶었는데, 실제로 써보니까 업데이트 관리나 볼륨(volume, 데이터 저장 경로) 분리, 백업, 마이그레이션까지 생각하면 컨테이너(container, 격리된 실행 환경)로 올리는 쪽이 훨씬 편하더라고요.

    특히 Plex는 미디어 서버 입문용으로 정말 많이 선택되는데, 처음 세팅할 때는 라이브러리 경로, 권한, 네트워크 설정에서 헷갈리기 쉽습니다. 저도 처음엔 스캔이 안 돼서 한참 헤맸고, 나중엔 파일명 규칙 때문에 메타데이터까지 꼬였었네요. 이번 글에서는 제가 직접 해보며 정리한 Docker on NAS 기반 Plex 미디어 서버 구축 흐름을, 너무 복잡하지 않게 실전 위주로 풀어보겠습니다.

    Docker on NAS 기반 Plex 미디어 서버 아키텍처 개요 이미지

    NAS, Docker, Plex, 클라이언트 기기 간 연결 구조를 한눈에 보여주는 개요 이미지입니다.

    1. 왜 Docker on NAS로 Plex를 올리냐는 질문부터

    쉽게 말해 Docker on NAS는 “NAS 위에 앱을 깔되, 운영체제와 적당히 분리해서 관리하는 방식”입니다. 이 방식의 장점은 생각보다 큽니다. NAS 제조사 전용 패키지보다 유연하고, 나중에 다른 장비로 옮길 때도 편하거든요. 제가 예전에 패키지 방식으로만 쓰다가 장비 교체할 때 설정 백업이 꼬여서 고생했었는데, 컨테이너로 분리하고 나서는 훨씬 수월했습니다.

    • 설정과 데이터를 분리하기 쉽습니다.
    • 업데이트 롤백이 상대적으로 단순합니다.
    • 다른 서비스와 격리되어 충돌 위험이 줄어듭니다.
    • 재배포가 쉬워 홈랩 운영이 깔끔해집니다.

    반대로 단점도 있습니다. 권한 매핑(user/group mapping), 네트워크 모드, 저장 경로를 이해하지 못하면 설치는 됐는데 실제로는 아무것도 안 돌아가는 상황이 생깁니다. 여기서 중요한 포인트! 컨테이너는 만능이 아니라, 구조를 이해하고 쓰면 편하고 모르고 쓰면 더 복잡해지는 도구입니다.

    2. Plex와 컨테이너 개념, 여기서 한 번 정리하고 가겠습니다

    Plex는 미디어 파일을 스캔해서 라이브러리를 만들고, TV나 모바일, 웹 브라우저에서 재생할 수 있게 해주는 플랫폼입니다. 쉽게 말해 “내가 가진 파일로 직접 넷플릭스 비슷한 개인 미디어 서버를 만드는 느낌”에 가깝습니다.

    여기서 자주 나오는 용어를 헷갈리지 않게 정리해보면 이렇습니다.

    용어 영문 쉽게 설명하면
    컨테이너 Container 앱을 격리해서 돌리는 작은 실행 단위
    이미지 Image 컨테이너를 만들기 위한 실행 템플릿
    볼륨 Volume / Bind Mount 설정 파일과 미디어를 연결하는 실제 저장 경로
    트랜스코딩 Transcoding 재생 기기에 맞게 영상 형식을 변환하는 작업
    호스트 네트워크 Host Network 컨테이너가 NAS 네트워크를 직접 사용하는 방식

    처음엔 이게 뭔가 싶었는데, 실제로 써보니까 핵심은 딱 두 가지더라고요. 설정 파일은 따로 보존하고, 미디어 폴더는 읽기 쉬운 경로로 명확히 연결하는 것. 이 두 가지만 잡아도 절반은 끝납니다.

    3. 구축 전에 준비할 것: 폴더 구조와 권한 설계

    실전 들어가기 전에 먼저 폴더 구조를 잡겠습니다. 저는 NAS에서 애플리케이션 설정과 실제 미디어 데이터를 분리하는 편입니다. 나중에 백업하거나 다른 장비로 옮길 때 진짜 편하거든요.

    1. 애플리케이션 설정용 폴더를 만듭니다.
    2. 영화, 드라마, 음악 등 미디어 폴더를 구분합니다.
    3. Plex가 읽을 수 있는 권한을 확인합니다.
    4. 트랜스코딩용 임시 폴더를 별도로 둡니다.

    예시 구조는 아래처럼 잡으면 무난합니다.

    /volume1/docker/plex/config
    /volume1/docker/plex/transcode
    /volume1/media/movies
    /volume1/media/tv
    /volume1/media/music

    만약 NAS 경로가 다르면 본인 환경에 맞게 바꾸시면 됩니다. 중요한 건 이름보다 역할 분리입니다. 제가 예전에 config랑 media를 한 폴더에 뒤섞어놨다가 백업 정책이 꼬여서 한 번 크게 정리한 적이 있었습니다. 그 뒤로는 무조건 분리합니다.

    권한은 왜 중요할까요?

    Plex 컨테이너가 미디어 폴더를 읽지 못하면 라이브러리 스캔 자체가 실패합니다. 웹 화면은 멀쩡하게 뜨는데 파일이 안 보이는 경우가 딱 이 케이스입니다. NAS 제조사 UI에서 공유 폴더 권한을 주거나, Linux 계열 셸이 가능하면 소유자와 그룹을 정리해두세요.

    4. Docker Compose로 Plex 컨테이너 배포하기

    이제 본격적으로 올려보겠습니다. 저는 단일 실행 명령보다 Docker Compose를 선호합니다. 이유는 간단한데요. 나중에 다시 봐도 구조가 남고, 수정도 쉽고, 백업 문서처럼 쓸 수 있거든요.

    services:
      plex:
        image: lscr.io/linuxserver/plex:latest
        container_name: plex
        network_mode: host
        environment:
          - PUID=1000
          - PGID=1000
          - TZ=Asia/Seoul
          - VERSION=docker
        volumes:
          - /volume1/docker/plex/config:/config
          - /volume1/docker/plex/transcode:/transcode
          - /volume1/media/movies:/movies
          - /volume1/media/tv:/tv
          - /volume1/media/music:/music
        restart: unless-stopped

    몇 가지 설명을 붙이면 좋겠습니다.

    • network_mode: host는 Plex에서 자주 쓰는 방식입니다. 기기 탐색(discovery)이나 스트리밍 연결에서 편한 경우가 많습니다.
    • PUID / PGID는 파일 권한 맞출 때 중요합니다.
    • /config는 Plex 설정과 라이브러리 정보가 저장되는 핵심 경로입니다.
    • /transcode는 변환 작업 중 임시 파일을 두는 공간입니다.

    실행은 아래처럼 하면 됩니다.

    docker compose up -d

    실행 후에는 로그를 확인해보세요.

    docker compose logs -f plex

    여기서 에러 없이 올라오고, NAS IP 기준으로 Plex 웹 초기 설정 화면이 열리면 일단 절반은 성공입니다. 드디어 됐다! 싶은 순간이 여기더라고요.

    Docker on NAS에서 Plex 컨테이너 볼륨과 네트워크 구성 이미지

    컨테이너 볼륨 연결과 호스트 네트워크 구성을 이해하기 쉽게 보여주는 설정 이미지입니다.

    5. Plex 초기 설정과 라이브러리 구성, 여기서 품질이 갈립니다

    Plex 웹 UI에 들어가면 서버 이름을 정하고 라이브러리를 추가하게 됩니다. 여기서 대충 해도 돌아가긴 하는데, 나중에 정리가 엉망이 되기 쉽습니다. 제가 직접 해보니 폴더 구조와 파일명 규칙이 정말 중요하더라고요.

    라이브러리 등록 팁

    1. 영화와 TV 시리즈는 라이브러리를 분리합니다.
    2. 각 라이브러리에 맞는 루트 폴더만 지정합니다.
    3. 폴더명과 파일명은 가능한 일관되게 유지합니다.
    4. 한글 파일명만으로 안 풀릴 때는 영문 원제 병기를 고려합니다.

    예를 들면 영화는 /movies, 시리즈는 /tv 식으로 나누는 편이 좋습니다. 한 폴더에 다 몰아넣으면 스캐너가 헷갈릴 수 있거든요. 처음엔 귀찮아 보여도 나중에 메타데이터가 깔끔하게 붙는 걸 보면 왜 이렇게 하는지 이해가 되실 겁니다.

    트랜스코딩 최적화는 어떻게 볼까요?

    모든 환경에서 무조건 트랜스코딩이 필요한 건 아닙니다. 클라이언트가 원본을 직접 재생(Direct Play, 원본 그대로 재생)할 수 있으면 서버 부담이 줄어듭니다. 그래서 저는 무조건 성능 튜닝부터 하기보다, 먼저 원본 파일 형식과 클라이언트 재생 능력을 확인하는 쪽을 권합니다.

    • 가능하면 자주 쓰는 기기에서 직접 재생되는 파일 형식을 늘립니다.
    • 트랜스코딩 임시 폴더는 여유 공간이 있는 저장소에 둡니다.
    • 동시 재생 사용자가 많으면 CPU 사용률을 함께 봅니다.
    • 하드웨어 가속(Hardware Acceleration, 하드웨어 기반 인코딩/디코딩)은 지원 환경에서만 검토합니다.

    여기서 중요한 포인트! 성능 최적화는 설정 몇 줄보다도 내가 어떤 파일을 어떤 기기에서 주로 재생하느냐가 더 크게 좌우합니다.

    6. ⚠️ 실제로 많이 겪는 문제와 해결법

    이 섹션은 이론보다 실전입니다. 저도 여기서 삽질 좀 했습니다. 특히 Plex와 컨테이너 조합은 설치보다 트러블슈팅이 더 중요합니다.

    문제 1. 웹은 열리는데 미디어가 안 보입니다

    대부분 권한 문제이거나, 라이브러리 경로를 컨테이너 내부 기준으로 잘못 넣은 경우입니다.

    • NAS 폴더 권한을 다시 확인합니다.
    • Compose의 마운트 경로와 Plex 라이브러리 경로가 일치하는지 봅니다.
    • 예: 호스트의 /volume1/media/movies를 컨테이너에서 /movies로 마운트했다면, Plex에는 /movies를 등록해야 합니다.

    문제 2. 메타데이터가 엉뚱하게 붙습니다

    파일명 규칙 문제일 가능성이 큽니다. 시리즈 시즌 표기나 연도 표기가 빠져 있으면 인식이 흔들립니다. 저도 예전에 파일명 뒤에 릴리즈 그룹명이 너무 길게 붙어서 매칭이 꼬였던 적이 있었습니다.

    • 영화는 제목과 연도를 분리합니다.
    • 시리즈는 시즌/에피소드 표기를 일관되게 맞춥니다.
    • 폴더를 장르별이 아니라 콘텐츠 타입별로 나눕니다.

    문제 3. 재생은 되는데 버벅입니다

    이건 저장소 속도, 네트워크, 클라이언트 코덱 지원, 트랜스코딩 부하가 복합적으로 엮입니다. 그래서 저는 한 번에 모든 걸 바꾸지 않고 아래 순서로 확인합니다.

    1. 같은 파일을 다른 기기에서 재생해봅니다.
    2. 서버 자원 사용률을 확인합니다.
    3. 직접 재생인지 트랜스코딩인지 Plex 대시보드에서 확인합니다.
    4. 트랜스코딩 폴더 위치와 여유 공간을 봅니다.

    문제 4. 업데이트 후 설정이 꼬일까 걱정됩니다

    그래서 /config 백업이 중요합니다. 이 경로만 잘 보존해도 복구 난도가 확 내려갑니다. 실제로 써보니까 컨테이너 자체보다 설정 데이터가 더 중요하더라고요.

    7. 결과 검증: 제대로 구성됐는지 확인하는 체크리스트

    세팅이 끝났다면 감으로 끝내지 말고 검증을 해보세요. 홈랩은 “되는 것처럼 보이는데 사실 안 되는 상태”가 은근 많습니다.

    1. Plex 웹 UI에 정상 로그인되는지 확인합니다.
    2. 영화/TV/음악 라이브러리가 각각 보이는지 확인합니다.
    3. 썸네일과 메타데이터가 정상적으로 붙는지 확인합니다.
    4. 같은 네트워크의 TV, 모바일, 브라우저에서 각각 재생 테스트를 해봅니다.
    5. 컨테이너 재시작 후에도 설정이 유지되는지 봅니다.

    추가로 저는 아래 명령으로 컨테이너 상태를 꼭 확인합니다.

    docker ps
    docker inspect plex
    docker compose logs --tail=100 plex

    이렇게 보면 실행 상태, 볼륨 마운트, 최근 오류를 빠르게 점검할 수 있습니다. 문제 생겼을 때 가장 먼저 봐야 하는 건 화려한 대시보드보다도 로그인데요. 이건 정말 경험상 그렇습니다.

    Plex 미디어 서버 결과 검증 대시보드 이미지

    라이브러리 인식, 재생 상태, 서버 동작 여부를 확인하는 결과 화면 예시입니다.

    8. 운영 최적화 팁: 오래 편하게 쓰려면

    여기부터는 구축 이후 이야기입니다. 한 번 올리고 끝이 아니라, 계속 편하게 쓰려면 운영 습관이 중요합니다.

    운영 항목 권장 방향 이유
    설정 백업 /config 정기 백업 복구 시간을 크게 줄입니다
    폴더 구조 영화/시리즈/음악 분리 메타데이터 인식 안정성
    업데이트 무작정 자동화보다 확인 후 적용 갑작스러운 변경 리스크 감소
    모니터링 로그와 저장공간 주기 확인 장애 조기 발견

    혹시 이런 경험 있으신가요? 평소엔 멀쩡했는데 어느 날 라이브러리 갱신이 멈추거나, 새 파일이 안 뜨는 경우요. 대체로 원인은 복잡하지 않더라고요. 저장 공간 부족, 권한 변경, 경로 오타, 또는 업데이트 후 재시작 누락 같은 기본적인 이슈가 많습니다. 그래서 저는 화려한 자동화보다 단순하고 추적 가능한 운영 방식을 더 선호합니다.

    9. 정리와 FAQ: Docker on NAS로 Plex를 시작하려는 분께

    Docker on NAS 환경에서 Plex를 운영하는 핵심은 대단한 튜닝이 아니라, 경로 분리, 권한 정리, 로그 확인입니다. 저도 처음엔 컨테이너만 올리면 끝일 줄 알았는데, 실제로는 운영 구조를 깔끔하게 만드는 쪽이 훨씬 중요하더라고요. 근데 한 번 구조를 잡아두면 정말 편합니다. 장비를 바꾸거나 다른 미디어 서버 도구를 시험해볼 때도 훨씬 유연해지거든요.

    다음 단계로는 리버스 프록시(Reverse Proxy, 역방향 프록시) 붙이기, HTTPS 적용, 자동 백업, 그리고 다른 컨테이너 서비스와의 연동까지 가보셔도 좋습니다. 이전 글에서 Docker 기초를 다뤘다면 그 흐름으로 이어 보셔도 좋고, 다음 글에서는 NAS 홈랩 운영 관점에서 백업 전략도 다뤄볼 예정입니다.

    자주 묻는 질문

    • Q. NAS 기본 앱으로 설치하면 안 되나요?
      A. 됩니다. 다만 이식성과 관리 편의성을 생각하면 컨테이너 방식이 장기적으로 유리한 경우가 많습니다.
    • Q. Docker Compose가 꼭 필요할까요?
      A. 필수는 아니지만, 재현성과 문서화 측면에서 추천합니다.
    • Q. Plex가 꼭 정답인가요?
      A. 아닙니다. 하지만 입문 난이도와 생태계 면에서 여전히 많이 선택되는 편입니다.
    Docker on NAS와 일반 설치 방식 비교 요약 이미지

    운영 방식의 차이와 선택 포인트를 한 장으로 정리한 요약 이미지입니다.

    정리하면 이렇습니다. Plex를 NAS에 올릴 때는 설치 자체보다 구조가 중요하고, 구조를 잡을 때는 Docker on NAS 방식이 꽤 강력합니다. 처음 세팅만 조금 공들여두면 이후 운영은 훨씬 편해집니다. 저도 여러 번 갈아엎고 나서야 이 결론에 도달했는데, 지금은 새 장비로 옮길 때도 부담이 많이 줄었네요. 이 글이 같은 삽질을 줄이는 데 도움이 되었으면 좋겠습니다.

  • [Nas] NAS 하드웨어 선택 가이드: CPU, RAM, 스토리지 최적화 전략

    [Nas] NAS 하드웨어 선택 가이드: CPU, RAM, 스토리지 최적화 전략

    NAS 하드웨어 선택 가이드: CPU, RAM, 스토리지 최적화 전략

    안녕하세요, 13년차 서버실 지킴이입니다. 오늘은 많은 분들이 홈랩(Home Lab)을 꾸리거나 개인 데이터 서버를 구축할 때 고민하는 주제, 바로 NAS 하드웨어 선택에 대해 이야기해볼게요.

    제가 처음 NAS를 구축할 때만 해도, 그저 남는 하드디스크 몇 개 끼워 넣으면 되는 줄 알았거든요. 근데 막상 써보니 생각보다 고려할 게 많더라고요. 특히 미디어 서버(Plex Media Server)나 Docker 컨테이너 같은 서비스를 올리려고 하면, 하드웨어 사양이 정말 중요해져요. 어떤 CPU를 고르고, 램은 얼마나 필요하며, 스토리지는 어떻게 구성해야 할지, 저도 삽질 꽤나 했습니다. 이 글에서는 제 경험을 바탕으로 NAS 하드웨어 최적화 전략을 함께 고민해보고자 해요.

    NAS의 주요 구성 요소를 한눈에 보여주는 다이어그램입니다. 중앙의 NAS 본체와 연결된 다양한 장치들을 상상해 보세요.

    NAS, 그게 뭔데요? (Network Attached Storage)

    NAS(Network Attached Storage, 네트워크 연결 스토리지)는 쉽게 말해 ‘네트워크에 연결된 저장 장치’예요. 가정이나 소규모 사무실에서 여러 기기가 파일을 공유하고, 백업하며, 스트리밍 서비스까지 이용할 수 있도록 해주는 전용 서버라고 생각하시면 돼요. 클라우드 서비스가 보편화되었지만, 개인 데이터를 내 손으로 관리하고 싶거나, 월 구독료 없이 대용량 미디어를 공유하고 싶을 때 NAS는 정말 매력적인 대안이 되거든요. 제 홈랩에서도 NAS는 거의 모든 데이터의 중심 역할을 하고 있어요.

    NAS 하드웨어, 무엇을 고려해야 할까요?

    NAS를 구성하는 핵심 하드웨어는 크게 CPU, RAM, 스토리지(Storage) 세 가지예요. 각각의 역할이 중요하지만, 서로 유기적으로 연결되어 전체 시스템의 성능을 좌우하죠. 어떤 목적으로 NAS를 사용할지에 따라 이 세 가지 요소의 우선순위와 사양 선택이 달라지게 된답니다.

    핵심 부품 심층 분석: NAS CPU

    NAS의 CPU(Central Processing Unit, 중앙 처리 장치)는 사람으로 치면 ‘뇌’와 같아요. 모든 연산과 명령 처리를 담당하죠. 단순히 파일 저장만 한다면 저사양 CPU로도 충분할 수 있어요. 하지만 다음과 같은 작업을 한다면 이야기가 달라집니다.

    • 미디어 트랜스코딩(Media Transcoding): Plex나 Emby 같은 미디어 서버에서 원본 영상 파일을 실시간으로 재생 기기에 맞게 변환하는 작업이에요. 고화질 영상일수록 CPU의 연산 능력이 정말 중요합니다.
    • 파일 인덱싱(File Indexing) 및 검색: 수많은 파일에서 특정 파일을 빠르게 찾기 위한 인덱싱 작업이죠.
    • 가상화(Virtualization) 및 컨테이너(Container): Docker나 가상 머신(VM)을 NAS에서 운영할 경우, CPU 코어 수와 클럭 속도가 중요해요.
    • 다중 사용자 동시 접속: 여러 사람이 동시에 NAS에 접속하여 파일을 읽고 쓸 때 영향을 받습니다.

    제가 처음 NAS를 구성했을 때는 인텔 아톰(Intel Atom) 계열의 저전력 CPU를 사용했었거든요. 전력 소모도 적고, 기본적인 파일 서버로는 괜찮았어요. 근데 4K 영상을 Plex로 스트리밍하려고 하니, 버퍼링이 심하고 CPU 사용률이 100%를 찍더라고요. 결국 인텔 셀러론(Intel Celeron) N5105 기반의 시스템으로 업그레이드하고 나서야 4K 트랜스코딩도 부드럽게 돌아가는 걸 보고 속으로 ‘드디어 됐다!’ 외쳤어요. 💡

    일반적으로 다음과 같은 CPU들을 고려해 볼 수 있습니다.

    • Intel Atom/Celeron: 저전력, 저렴해요. 파일 공유, 간단한 백업 등 가벼운 용도에 적합하죠. 트랜스코딩은 제한적이에요.
    • Intel Core i3/i5: 중간 성능이에요. 미디어 트랜스코딩, 가상화, 여러 서비스 동시 운영 등 범용적인 용도에 적합합니다. 홈랩에서 가장 많이 쓰이는 구간이죠.
    • Intel Core i7/i9 또는 Xeon: 고성능이죠. 다수의 가상 머신, 고해상도 다중 트랜스코딩, 대규모 데이터 처리 등 전문가/기업 수준의 워크로드에 적합해요.

    핵심 부품 심층 분석: NAS RAM

    RAM(Random Access Memory, 램)은 CPU가 빠르게 접근할 수 있는 임시 저장 공간이에요. NAS의 램 용량이 충분하지 않으면, 시스템은 하드디스크의 일부를 램처럼 사용하는데, 이는 성능 저하로 이어져요. 램은 다음 작업을 할 때 중요합니다.

    • 파일 캐싱(File Caching): 자주 접근하는 파일을 램에 올려두어 빠르게 응답해요.
    • 동시 작업 처리: 여러 사용자 또는 여러 서비스(Docker 컨테이너, VM 등)가 동시에 실행될 때 각 작업에 필요한 메모리를 제공합니다.
    • 파일 시스템 작업: ZFS와 같은 고급 파일 시스템은 램을 많이 써요.

    저도 초기에 4GB 램으로 시작했는데, Docker 컨테이너 몇 개랑 Plex, 그리고 파일 동기화 서비스까지 돌리니 금방 램 사용률이 80%를 넘어가더라고요. 결국 시스템이 버벅거려서 8GB로 업그레이드했더니 훨씬 쾌적해졌어요. 😅 넉넉한 램은 NAS의 전반적인 반응 속도와 안정성에 정말 큰 영향을 줍니다.

    일반적인 권장 사항은 다음과 같아요.

    • 4GB: 기본적인 파일 공유, 사진 백업 등 매우 가벼운 용도예요.
    • 8GB: 미디어 서버, 웹 서버, 간단한 Docker 컨테이너 몇 개 등 범용적인 홈랩 용도에 좋습니다.
    • 16GB 이상: 여러 가상 머신, 다수의 Docker 컨테이너, ZFS 파일 시스템 사용, 고성능 데이터베이스 등 고급 용도에 필요해요.

    또한, ECC RAM(Error-Correcting Code RAM)이라는 것도 있어요. 데이터 오류를 스스로 감지하고 수정하는 기능이 있어서 데이터 무결성(Data Integrity)이 매우 중요한 서버급 시스템에 사용되죠. 홈랩에서는 필수는 아니지만, 데이터를 정말 소중히 여기신다면 고려해 볼 만합니다.

    NAS 케이스 내부의 주요 부품들이 어떻게 배치되는지 보여주는 그림이에요. 효율적인 공간 활용이 중요하겠죠.

    핵심 부품 심층 분석: NAS 스토리지

    NAS의 스토리지(Storage)는 데이터를 실제로 저장하는 하드디스크(HDD)나 솔리드 스테이트 드라이브(SSD)를 의미합니다. NAS에서 가장 중요한 부분이라고 해도 과언이 아니에요. 스토리지 선택은 용량, 속도, 안정성, 비용 모두를 고려해야 하거든요.

    HDD vs SSD

    구분 HDD (Hard Disk Drive) SSD (Solid State Drive)
    속도 느려요 (물리적 플래터 회전) 빨라요 (반도체 기반)
    용량당 비용 저렴해요 비싼 편이에요
    내구성 움직이는 부품으로 충격에 취약해요 움직이는 부품 없어 충격에 강하죠
    발열/소음 있는 편이에요 거의 없어요
    주요 용도 대용량 데이터 저장 (미디어, 백업) OS, 애플리케이션, 캐싱 등 고속 I/O 요구 작업

    대부분의 NAS는 대용량 저장을 위해 HDD를 메인 스토리지로 써요. 이때 중요한 게 바로 HDD의 종류죠.

    • CMR (Conventional Magnetic Recording): 전통적인 방식이에요. 트랙이 겹치지 않아 안정적인 쓰기 성능을 보장합니다. NAS에 가장 적합하죠.
    • SMR (Shingled Magnetic Recording): 트랙을 겹쳐 써서 용량을 늘린 방식이에요. 저렴하지만, 데이터가 겹치기 때문에 덮어쓰기(Overwrite) 시 인접 트랙까지 다시 써야 해서 쓰기 성능이 정말 느려요. RAID 구성이나 지속적인 쓰기 작업이 많은 NAS에는 절대 비추천해요.

    제가 SMR HDD를 모르고 NAS에 몇 개 넣었다가, RAID 재구축할 때 쓰기 속도가 너무 느려서 하루 종일 걸린 경험이 있거든요. 그때부터 HDD 살 때는 무조건 CMR인지 확인하는 습관이 생겼어요. ⚠️

    RAID 구성

    RAID(Redundant Array of Independent Disks, 독립 디스크의 중복 배열)는 여러 개의 스토리지를 하나로 묶어 성능을 향상시키거나 데이터 안정성을 확보하는 기술이에요. NAS에서 데이터 보호는 필수니까요!

    • RAID 0: 성능 향상이 장점이에요. 하지만 데이터 손실 위험이 높아요.
    • RAID 1: 미러링(Mirroring)이에요. 동일 데이터를 두 개의 디스크에 동시 저장하죠. 한 디스크 고장 시에도 데이터를 보호할 수 있어요. 용량 효율은 50%예요.
    • RAID 5: 패리티(Parity) 정보를 분산 저장해요. 한 디스크 고장 시 복구가 가능하죠. 용량 효율은 (N-1)/N이에요. 3개 이상 디스크가 필요합니다.
    • RAID 6: 두 개의 디스크 고장 시에도 복구할 수 있어요. RAID 5보다 안정성이 높죠. 4개 이상 디스크가 필요해요.
    • RAID 10 (1+0): RAID 1과 RAID 0의 조합이에요. 성능과 안정성 모두 우수하지만, 용량 효율이 50%예요. 4개 이상 디스크가 필요합니다.

    홈랩에서는 보통 RAID 1이나 RAID 5를 많이 써요. 저는 RAID 5를 선호하는 편인데, 디스크 하나 정도는 안심하고 바꿀 수 있어서 편하더라고요. 물론 백업이 RAID의 전부는 아니에요! RAID는 ‘가동 중단 시간(Downtime)’을 줄여주는 역할이고, 외부 백업은 별도로 꼭 하셔야 합니다. 💡

    SSD 캐싱

    메인 스토리지를 HDD로 구성하더라도, NVMe SSD를 캐싱(Caching)용으로 활용하면 NAS의 전반적인 읽기/쓰기 성능을 크게 향상시킬 수 있어요. 자주 접근하는 데이터를 SSD에 임시로 저장해두는 방식이거든요. 특히 작은 파일들을 많이 다루는 환경에서 효과가 정말 좋습니다.

    나에게 맞는 NAS 하드웨어 조합 찾기

    이제 실제로 어떤 하드웨어를 선택해야 할지 단계별로 알아보겠습니다.

    1. 목적 정의: NAS를 왜 만드시나요?
      • 단순 파일 공유 및 백업?
      • Plex/Emby 같은 미디어 서버?
      • 가상 머신(VM)이나 Docker 컨테이너 운영?
      • CCTV 녹화 서버?
      • 사진, 영상 등 전문가 작업용 스토리지?

      이 목적에 따라 CPU, RAM, 스토리지 요구 사양이 정말 크게 달라져요.

    2. 예산 설정: 현실적인 예산을 정해야 합니다.

      NAS는 초기에 투자할수록 만족도가 높지만, 무한정 쓸 수는 없죠. 필요한 기능과 예산 사이의 균형점을 찾는 게 중요해요.

    3. CPU 선택: 목적에 맞는 최소 사양을 결정하세요.
      • 가벼운 용도: Intel Celeron 또는 AMD Athlon/Ryzen G 시리즈면 충분해요.
      • 미디어 서버/범용 홈랩: Intel Core i3/i5 또는 AMD Ryzen 3/5를 추천해요. (내장 그래픽(iGPU) 유무 확인!)
      • 고성능/가상화: Intel Core i7/i9 또는 AMD Ryzen 7/9, Xeon을 고려하세요.

      특히 미디어 트랜스코딩을 고려한다면, 인텔 퀵싱크 비디오(Intel Quick Sync Video) 같은 하드웨어 가속 기능을 지원하는 CPU를 선택하는 게 좋습니다.

    4. RAM 선택: 동시 작업량을 고려해야 해요.
      • 기본: 8GB (최소 권장)
      • 범용/다중 서비스: 16GB
      • 고급/ZFS/가상화: 32GB 이상

      나중에 업그레이드할 여지를 남겨두는 것도 좋은 전략이에요.

    5. 스토리지 선택: 용량, 속도, 안정성 (RAID)을 모두 고려하세요.
      • HDD: 용량은 현재 필요량 + 향후 2~3년 증가 예상치를 고려해요. 반드시 CMR 방식의 NAS용 HDD를 선택하세요. (예: Western Digital Red Plus, Seagate IronWolf)
      • SSD: OS 설치나 캐싱용으로 1~2개 추가하면 좋아요. NVMe SSD가 성능에 가장 좋습니다.
      • RAID: 최소 RAID 1 (2개 디스크) 또는 RAID 5 (3개 이상 디스크)로 구성하여 데이터 보호 기능을 활성화하세요.

    NAS의 주요 하드웨어 선택 기준과 예시를 사용 목적별로 비교한 표예요. 여러분의 선택에 도움이 되길 바랍니다.

    ⚠️ 삽질 방지! 이것만은 꼭 확인하세요

    제가 직접 겪었던 경험을 바탕으로 몇 가지 주의사항을 알려드릴게요.

    • 호환성(Compatibility): 메인보드, CPU, RAM, 스토리지 간의 호환성을 반드시 확인하세요. 특히 자작 NAS(DIY NAS)의 경우, 메인보드가 지원하는 CPU 소켓, 램 종류(DDR4/DDR5), 스토리지 인터페이스(SATA/NVMe) 등을 꼼꼼히 봐야 합니다.
    • 네트워크(Network): NAS는 네트워크 장치거든요. 1Gbps 이더넷(Ethernet)으로도 충분할 수 있지만, 대용량 파일 전송이 자주 있다면 2.5Gbps 또는 10Gbps NIC(Network Interface Card)를 고려해 보세요. 저는 2.5Gbps로 업그레이드하고 나서 파일 복사가 훨씬 빨라져서 만족도가 높았어요.
    • 전력 소모(Power Consumption): NAS는 24시간 켜져 있는 경우가 많거든요. 저전력 부품을 사용하면 전기 요금을 절약할 수 있어요.
    • 소음 및 발열(Noise & Heat): 홈랩에서 사용하는 NAS라면 소음과 발열도 무시할 수 없는 요소예요. 저소음 팬이나 효율적인 쿨링 솔루션을 고민해 보세요.
    • NAS OS 선택: 하드웨어만큼 중요한 게 NAS 운영체제(OS)에요. 대표적으로 TrueNAS CORE/SCALE, unRAID, OpenMediaVault(OMV) 등이 있죠. 각각 장단점이 있으니, 하드웨어 구성과 사용 목적에 맞춰 최적의 OS를 선택하는 게 중요합니다. 이 부분은 다음 글에서 더 자세히 다뤄볼 예정이에요.
    # 현재 시스템의 CPU 정보 확인 (리눅스 기준)
    lscpu
    
    # 현재 시스템의 메모리(RAM) 사용량 확인
    free -h
    

    위 명령어들은 리눅스 기반 NAS OS에서 현재 하드웨어 사양을 확인하는 데 유용하게 써요.

    마치며: 나만의 NAS, 즐거운 홈랩의 시작

    오늘은 NAS 하드웨어 선택 가이드, 특히 CPU, RAM, 스토리지 최적화 전략에 대해 제 경험을 섞어 이야기해 봤어요. 결국 NAS는 ‘어떤 목적’으로 ‘얼마나 오래’, ‘어떤 데이터’를 다룰지에 따라 최적의 하드웨어 조합이 달라진다는 걸 알 수 있죠.

    처음에는 복잡하게 느껴질 수 있지만, 하나하나 따져보면서 나만의 NAS를 구축하는 과정은 정말 즐거운 경험이 될 거예요. 마치 저만의 작은 데이터센터를 만드는 기분이랄까요? 이 글이 여러분의 NAS 구축 여정에 작은 등불이 되기를 바랍니다. 다음번에는 NAS OS 선택과 실제 설치 과정에 대해 더 자세히 다뤄볼 테니까요. 궁금한 점이 있다면 언제든지 댓글로 남겨주세요! 🎉

    성공적으로 구축된 홈랩 NAS가 다양한 기기들과 연결되어 데이터를 공유하는 만족스러운 모습을 상상해 보세요.