13년차의 서버실

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

[태그:] iSCSI

  • [Proxmox] Proxmox TrueNAS SCALE ZFS 비교: 홈랩 선택 가이드

    [Proxmox] Proxmox TrueNAS SCALE ZFS 비교: 홈랩 선택 가이드

    Proxmox TrueNAS SCALE ZFS 비교: 홈랩 스토리지 선택 가이드

    Proxmox TrueNAS SCALE ZFS 비교를 찾다 보면 결국 부딪히는 건 기능표보다 장애를 어떻게 감당할지입니다. 저도 홈랩 NAS를 몇 번 갈아엎고 나서야 이걸 제대로 봤습니다. 둘 다 ZFS를 쓴다는 사실보다, 문제가 났을 때 어느 계층을 먼저 의심해야 하는 구조인가가 훨씬 중요하더라고요.

    같은 디스크, 같은 HBA, 같은 ZFS라도 Proxmox VE는 VM과 LXC가 주인공인 설계에 가깝고, TrueNAS SCALE은 데이터셋과 공유 정책이 중심입니다. 참고로 TrueNAS SCALE은 2025년 25.04 계열부터 커뮤니티 에디션 명칭이 함께 쓰이지만, 검색과 실사용 맥락에선 여전히 TrueNAS SCALE이라는 표현이 널리 남아 있습니다. 그래서 둘 중 무엇이 더 낫냐고 묻기보다, 내 홈랩에서 가장 먼저 살아 있어야 하는 것이 VM인지 데이터인지부터 정하는 쪽이 훨씬 정확합니다.

    운영 피로도도 빼놓기 어렵습니다. 한 대 서버에 VM, LXC, SMB, NFS, iSCSI, 백업 저장소까지 전부 몰아넣으면 평소엔 편해 보여도 디스크 이슈가 한 번 터졌을 때 복구 동선이 길어집니다. 저도 초기에 부팅 풀과 VM 스토리지, 백업 파일을 너무 가깝게 붙여놨다가 유지보수 창에서 손이 괜히 빨라지는 경험을 했거든요. 홈랩은 성능 숫자보다도 구조를 단순하게 유지하는 능력이 오래 갑니다.

    Proxmox TrueNAS SCALE ZFS 비교를 보여주는 홈랩 아키텍처 다이어그램

    Proxmox VE와 TrueNAS SCALE이 각각 어떤 위치에서 가장 빛나는지 한눈에 보여주는 홈랩 구성 예시입니다.

    왜 Proxmox TrueNAS SCALE ZFS 비교가 자주 나올까요?

    겉으로 보면 둘 다 웹 UI가 있고, 둘 다 ZFS를 쓰고, 둘 다 스냅샷을 말합니다. 그런데 실제 운영 동선은 꽤 다릅니다. Proxmox VE는 저장소를 게스트 워크로드를 올려두는 기반으로 보고, TrueNAS SCALE은 저장소를 권한, 공유, 스냅샷, 복제 정책을 설계하는 대상으로 다룹니다.

    이 차이는 같은 작업을 할 때도 바로 드러납니다. Proxmox VE에선 "이 VM 디스크를 어디 둘까"가 먼저고, TrueNAS SCALE에선 "이 데이터셋을 누구에게 어떤 프로토콜로 공개할까"가 먼저입니다. 둘 다 ZFS 위에서 돌아가지만, 관리 UI가 사용자를 유도하는 방향이 달라서 실제 사용감도 꽤 다릅니다.

    제가 보기엔 이 비교에서 가장 많이 놓치는 포인트가 하나 있습니다. ZFS를 잘 쓰는 것과 ZFS를 얹은 제품을 잘 운영하는 것은 다른 문제라는 점입니다. 전자는 풀 상태와 데이터셋 구조, 스냅샷 정책의 문제이고, 후자는 장애 범위와 복구 순서, 권한 모델, 서비스 의존성의 문제입니다.

    핵심 개념: ZFS 기반 홈랩 스토리지를 어떻게 봐야 하나

    1. Proxmox VE는 "VM이 주인공"인 구조

    Proxmox VE에서 ZFS는 보통 VM 디스크, 컨테이너 루트 파일시스템, 스냅샷, 복제, 백업 작업의 기반으로 쓰입니다. 즉 스토리지 관리의 중심이 파일 공유가 아니라 게스트 워크로드의 수명주기에 붙어 있습니다. Kubernetes 테스트 노드, 방화벽 VM, DB 실험 환경, Git 러너, 내부 서비스처럼 VM과 LXC가 자주 생겼다 지워지는 환경이라면 이 흐름이 정말 자연스럽습니다.

    • 장점: VM/LXC 생성과 삭제, 스냅샷, 스토리지 매핑 동선이 짧습니다.
    • 장점: 하이퍼바이저와 스토리지가 같은 컨텍스트에 있어 초기 구축 속도가 빠릅니다.
    • 주의: 파일 서버 역할까지 한 박스에 합치면 장애 분석에서 컴퓨트와 스토리지가 한 번에 얽힙니다.
    • 주의: 백업 파일까지 같은 풀에 두면 "백업은 있는데 공간이 부족해 복구가 불편한" 상황이 생기기 쉽습니다.

    2. TrueNAS SCALE은 "데이터가 주인공"인 구조

    TrueNAS SCALE은 데이터셋 경계, 공유 정책, 스냅샷, 복제, SMB/NFS/iSCSI 제공이 우선입니다. VM 기능도 있지만 운영 감각으로 보면 "가상화가 가능한 NAS"에 더 가깝습니다. 가족 사진, 미디어 라이브러리, 백업 저장소, 다른 하이퍼바이저에 제공할 공유 스토리지, 장기 보관 데이터처럼 데이터 수명주기가 먼저인 환경에서 확실히 손에 맞습니다.

    • 장점: 데이터셋 기준으로 권한, 스냅샷, 공유 대상을 나누기 쉽습니다.
    • 장점: SMB, NFS, iSCSI처럼 외부 소비자가 많은 환경에서 관리 포인트가 명확합니다.
    • 주의: VM 운영을 주력으로 삼으면 Proxmox보다 동선이 길고, 하이퍼바이저 관점의 자동화도 덜 자연스럽습니다.
    • 주의: NAS 안에서 애플리케이션과 스토리지를 함께 굴릴 때도 결국 I/O 혼합 문제는 피하기 어렵습니다.

    Proxmox VE vs TrueNAS SCALE 비교 표

    비교 항목 Proxmox VE TrueNAS SCALE 실무 판단 포인트
    핵심 역할 가상화 호스트 NAS 및 공유 스토리지 게스트가 우선이면 Proxmox, 데이터 보존이 우선이면 TrueNAS
    ZFS를 바라보는 관점 VM 디스크와 컨테이너 저장소 데이터셋, 공유, 스냅샷, 복제 같은 ZFS라도 운영 질문이 다릅니다
    장애 시 영향 범위 올인원일수록 VM과 파일 서비스가 함께 영향 분리형이면 NAS 장애를 별도 격리 가능 장애 절연이 중요하면 분리형이 유리합니다
    가상화 경험 KVM, LXC 중심으로 매우 자연스러움 가능하지만 주력 워크플로는 아님 실험용 서비스가 많을수록 Proxmox 쪽 손이 덜 갑니다
    공유 프로토콜 운영 외부 스토리지 소비자 역할에 적합 SMB, NFS, iSCSI 제공자 역할에 적합 다른 장비에 스토리지를 배포할수록 TrueNAS가 편합니다
    설정 실수의 흔한 형태 부팅 풀, VM 풀, 백업 위치를 과하게 합침 데이터셋 경계 없이 공유부터 만듦 문제는 기능 부족보다 초기 구조 설계에서 시작됩니다
    확장 방향 클러스터, 노드 증설, 게스트 확장 스토리지 증설, 복제, 보관 체계 확장 확장 축이 컴퓨트인지 스토리지인지 먼저 정해야 합니다
    추천하지 않는 경우 메인 가족 데이터와 백업을 한 호스트에 몰아둘 때 VM 자동화와 잦은 게스트 실험이 주업무일 때 주요 목표와 제품 성격이 어긋나면 운영 피로도가 커집니다

    제가 직접 굴려보며 정리한 현실적인 배치 패턴

    홈랩에선 대체로 세 가지 구조로 정리됩니다.

    1. 올인원 Proxmox VE: 한 대 서버에 Proxmox VE와 ZFS를 올리고, VM과 LXC를 로컬 스토리지에서 직접 운영
    2. 분리형: Proxmox VE는 컴퓨트, TrueNAS SCALE은 스토리지 전용으로 역할 분리
    3. TrueNAS 중심: 파일 서버와 백업이 주력이고, VM은 소수만 운영

    초기 구축 난이도만 보면 1번이 가장 쉽습니다. 장비도 덜 들고, 네트워크 설계도 단순합니다. 다만 올인원은 문제가 나기 전까지는 단순하고, 문제가 난 뒤에는 복잡해지는 구조입니다. 반대로 2번은 처음부터 케이블, 스위치, 전력, 장비 공간을 더 생각해야 하지만 장애가 났을 때 원인 분리가 빠릅니다. 3번은 홈 미디어, 문서 보관, 백업 허브처럼 데이터 중심 가정 환경에 잘 맞습니다.

    제 기준으로는 이렇게 나뉩니다. 하루에 VM을 여러 번 만들고 지우거나, LXC 템플릿과 테스트 클러스터를 자주 만지면 Proxmox VE 쪽이 맞습니다. 반면 파일 공유, 스냅샷, 복제, ACL, 사용자 권한, 백업 보존 기간이 더 중요하면 TrueNAS SCALE이 더 손에 맞습니다. 양쪽이 모두 중요하다고 느껴지는 시점부터는 사실상 분리형으로 가는 편이 덜 후회하더라고요.

    가상화 노드와 NAS를 역할별로 분리했을 때 관리 포인트가 어떻게 달라지는지 보여주는 예시입니다.

    실전 구현 1: Proxmox VE에서 ZFS 상태 확인과 스토리지 구조 점검

    운영 전에 가장 먼저 볼 건 성능 수치가 아니라 풀의 건강 상태와 저장소 역할 분리입니다. ZFS가 불안정한데 그 위에 VM을 계속 얹는 건, 바닥이 젖은 창고에 선반부터 세우는 느낌과 비슷합니다.

    zpool status -v
    zpool list -o name,size,alloc,free,frag,health
    zfs list -o name,used,avail,refer,mountpoint
    pvesm status
    journalctl -u pvestatd --since -1h

    위 명령은 Proxmox VE에서 ZFS 상태와 스토리지 인식 상태를 빠르게 같이 볼 때 유용합니다. 특히 pvesm status와 journalctl -u pvestatd는 ZFS 자체 문제인지, 아니면 Proxmox가 저장소를 인식하는 상위 계층 문제인지 가르는 데 도움이 됩니다.

    • zpool status -v: ONLINE이 아니면 성능 튜닝보다 원인 확인이 먼저입니다.
    • zpool list: 공간뿐 아니라 frag와 health를 같이 봅니다. 용량 여유가 부족한 풀은 성능보다 운영 여유가 먼저 줄어듭니다.
    • pvesm status: Proxmox가 인식하는 저장소가 비정상인지, 단지 ZFS CLI 상의 문제인지 구분합니다.
    • journalctl -u pvestatd: 스토리지 인식 지연, 타임아웃, 마운트 문제 같은 상위 계층 신호를 볼 때 유용합니다.

    Proxmox VE 쪽에선 저장소를 기능별로 나누는 게 중요합니다. 특히 VM 디스크와 ISO, 템플릿, 백업 파일을 같은 경로에 몰아두면 관리가 금방 흐려집니다.

    zfspool: local-zfs
        pool rpool/data
        content images,rootdir
        sparse 0
    
    dir: local
        path /var/lib/vz
        content iso,vztmpl
    
    dir: backup-store
        path /mnt/backup
        content backup

    이 예시는 Proxmox VE의 /etc/pve/storage.cfg에 들어가는 형태를 기준으로 한 겁니다. 포인트는 단순합니다. local-zfs는 게스트용, local은 설치 자산용, backup-store는 복구 자산용입니다. 이 셋이 섞이기 시작하면 장애가 났을 때 판단이 흐려집니다.

    또 하나, Proxmox에서 ZFS를 쓸 때는 데이터셋 속성만 보지 말고 게스트 유형별 I/O 패턴을 먼저 떠올리는 게 좋습니다. 예를 들어 로그가 많은 리눅스 VM과 대용량 미디어 파일은 같은 디스크라도 이상적인 속성이 다릅니다. VM 디스크는 무작정 큰 블록이 유리하다고 보기 어렵고, 미디어 저장소는 너무 작은 블록이 오히려 메타데이터 부담만 늘릴 수 있습니다.

    실전 구현 2: TrueNAS SCALE 쪽에서 ZFS 데이터셋과 공유 전에 꼭 보는 것

    TrueNAS SCALE에서는 공유를 열기 전에 데이터셋 경계를 먼저 설계하는 게 핵심입니다. 제 경험상 여기서 서두르면 나중에 ACL, 스냅샷 정책, 복제 범위를 다시 뜯게 됩니다. 홈랩에서 자주 쓰는 패턴은 vmstore, backup, media, homes처럼 용도별로 쪼개는 방식입니다.

    zpool status -v
    zfs list -r tank
    zfs create -o compression=lz4 -o atime=off tank/backup
    zfs create -o compression=lz4 -o atime=off -o recordsize=1M tank/media
    zfs create -o compression=lz4 -o atime=off tank/homes
    zfs snapshot tank/backup@pre-share-change
    zfs get compression,atime,recordsize,mountpoint tank/media

    이 명령 자체보다 더 중요한 건 왜 데이터셋을 나눴는가입니다. TrueNAS 공식 문서도 공유를 만들기 전에 데이터셋과 zvol을 먼저 구조화하는 흐름을 권장합니다. 이 순서를 지키면 나중에 권한과 스냅샷 정책이 덜 꼬입니다.

    • backup: 변경 빈도와 보존 정책이 중요합니다.
    • media: 큰 파일 위주면 작은 블록 이득이 거의 없고, 오히려 메타데이터 부담이 커질 수 있습니다.
    • homes: 사용자 권한과 스냅샷 복구 포인트가 더 중요합니다.

    여기서 자주 생기는 실수가 있습니다. SMB 공유부터 먼저 만들고 나중에 데이터셋을 분리하는 방식입니다. 가능은 하지만 운영이 길어질수록 권한 모델과 스냅샷 범위가 꼬이기 쉽습니다. TrueNAS SCALE은 UI가 잘 되어 있어 보여도, 기반은 결국 ZFS입니다. 경계는 UI가 아니라 데이터셋에서 잡아야 나중이 편합니다.

    VM용 블록 스토리지를 제공할 계획이라면 zvol 설계도 초기에 생각해두는 편이 좋습니다. 특히 volblocksize는 만든 뒤 변경이 까다롭기 때문에, 나중에 성능이 마음에 안 들어 구조를 다시 만지는 경우가 적지 않습니다.

    zfs create -V 500G -o compression=lz4 -o volblocksize=16K tank/vmstore/proxmox-iscsi-01
    zfs get volblocksize,compression,used,referenced tank/vmstore/proxmox-iscsi-01

    여기서 16K는 예시일 뿐 정답은 아닙니다. 워크로드에 따라 더 작거나 큰 값이 맞을 수 있습니다. 핵심은 블록 스토리지는 파일 공유 데이터셋과 다르게 생각해야 한다는 점입니다. 미디어 보관용 데이터셋과 VM용 zvol을 같은 감각으로 만들면 나중에 체감이 어색해집니다.

    TrueNAS SCALE ZFS 데이터셋과 홈랩 NAS 설정을 표현한 이미지

    데이터셋을 먼저 나누고 공유를 나중에 여는 흐름이 왜 중요한지 보여주는 구성 예시입니다.

    재현 가능한 시나리오: VM 저장소와 NAS 저장소를 한 풀에 같이 둔 경우

    이건 홈랩에서 정말 흔합니다. 한 대 서버에 Proxmox VE를 올리고, 같은 ZFS 풀에 VM 디스크, 미디어 파일, 백업 아카이브, 다운로드 작업 디렉터리까지 다 넣는 구조죠. 평소엔 잘 굴러가도 서로 다른 I/O 패턴이 겹치는 순간 반응이 확 달라집니다. 예를 들어 백업 압축, 미디어 라이브러리 스캔, VM 패키지 업데이트가 겹치면 게스트 내부에서 체감이 둔해집니다.

    이때 CPU와 RAM을 먼저 의심하기 쉽지만 실제 병목은 스토리지 큐와 지연일 때가 많습니다. 그래서 필요한 건 감이 아니라 관찰입니다.

    iostat -x 1
    zpool iostat -v 1
    qm list
    pct list

    이 조합은 디스크 지연과 풀별 I/O, 그리고 실제로 어떤 게스트가 떠 있는지를 같이 보는 데 좋습니다. 짧은 스파이크보다 지속적으로 길어지는 대기 시간이 더 위험 신호인 경우가 많습니다.

    • iostat -x 1: 특정 디스크의 대기 시간이 길게 유지되는지 봅니다.
    • zpool iostat -v 1: 풀 전체가 아니라 특정 vdev만 바쁜지 구분합니다.
    • qm list, pct list: 어떤 게스트가 실제로 그 시간대에 스토리지를 적극 사용 중인지 대조합니다.

    여기서 핵심 판단은 "더 튜닝할까"보다 "이 워크로드를 같은 풀에 계속 둘 가치가 있나"입니다. 홈랩에선 성능 최적화보다 역할 분리가 더 큰 효과를 내는 경우가 많습니다. 메인 가족 사진과 테스트 VM을 한 운명으로 묶어두는 건, 실험의 자유를 데이터 안전과 교환하는 선택이 되기 쉽습니다.

    실패 모드별로 보는 근본 원인: 겉증상보다 구조를 봐야 합니다

    겉으로 보이는 문제 실제 근본 원인 Proxmox VE에서의 대응 TrueNAS SCALE에서의 대응
    VM이 갑자기 느려짐 백업, 스캔, 대용량 복사로 인한 I/O 혼합 게스트용 풀과 백업 경로 분리, 작업 시간대 분리 공유용 데이터셋과 블록 스토리지 경계 재설계
    공유는 열리는데 접근 권한이 이상함 SMB 설정보다 데이터셋 권한과 ACL 모델 불일치 외부 NAS 권한 모델 확인, 마운트 옵션 재점검 공유 재생성보다 데이터셋 권한과 ACL부터 점검
    백업은 있는데 복구가 불안함 백업 파일이 원본과 같은 풀 또는 같은 장애 도메인에 존재 백업 저장소를 별도 장치나 원격 대상으로 분리 복제 대상 풀 또는 별도 장비 준비
    재부팅 후 저장소 인식이 흔들림 의존 서비스 순서, 패스스루 장치 인식 지연, 마운트 타이밍 문제 스토리지 유형별 활성화 상태와 로그 확인 풀 import 상태와 장치 안정성, 컨트롤러 인식 확인
    스냅샷은 많은데 실제 복원이 번거로움 데이터셋 경계가 커서 롤백 범위가 과도함 VM 단위와 스토리지 단위 스냅샷 전략 분리 용도별 데이터셋 재구성 후 정책 분리

    ⚠️ 주의사항과 트러블슈팅: 제가 많이 부딪힌 부분

    디스크 패스스루(pass-through)로 TrueNAS를 VM 안에 넣는 경우

    Proxmox 위에 TrueNAS SCALE VM을 올리고 디스크나 HBA를 패스스루하는 구성은 학습용으로 좋습니다. 다만 메인 NAS로 오래 가져갈 때는 질문이 달라집니다. 문제가 났을 때 하이퍼바이저 문제와 스토리지 문제를 분리해서 볼 수 있는가? 이게 핵심입니다.

    • 디스크 식별이 꼬이거나 컨트롤러 인식이 흔들리면 장애 분석이 길어집니다.
    • 부팅 순서와 장치 초기화 타이밍이 꼬이면 NAS VM 기동이 늦어질 수 있습니다.
    • 스토리지 문제와 하이퍼바이저 문제를 별개로 다뤄야 하는데, 이 구조에선 둘이 자주 함께 움직입니다.

    제 판단은 분명합니다. 학습, 실험, 임시 구축에는 괜찮습니다. 하지만 가족 데이터, 장기 보관 백업, 다른 노드가 의존하는 공유 스토리지를 실으면 구조 난도가 올라갑니다. 홈랩이더라도 메인 데이터는 가상화 실험의 부속품이 아니어야 마음이 편합니다.

    스냅샷은 백업이 아닙니다

    ZFS 스냅샷은 되돌리기에는 훌륭하지만, 같은 풀 안에 남아 있는 한 장애 도메인이 동일합니다. 사용자 실수 복구에는 강하지만 장치 고장, 잘못된 운영 변경, 랜섬웨어 성격의 암호화 사고, 풀 자체 문제까지 모두 덮어주진 못합니다. 홈랩에서도 최소한 다른 장비나 원격 대상으로 복제하거나 백업을 보내는 구조가 필요합니다.

    SMB 권한과 Linux 퍼미션이 어긋나는 경우

    TrueNAS SCALE에서 흔한 착시는 "공유가 열렸으니 서비스 문제는 아니다"라고 생각하는 겁니다. 실제로는 공유 서비스보다 데이터셋 권한, ACL, 소유권 설계에서 막히는 경우가 더 많습니다. 특히 한 데이터셋을 여러 용도에 같이 쓰면 나중에 한쪽 요구사항을 맞추다가 다른 쪽이 깨지기 쉽습니다. 제 경험상 이 문제는 튜닝으로 해결되지 않고, 데이터셋 경계 재설계로 끝나는 경우가 많았습니다.

    저장소 속성을 한 번에 통일하는 경우

    모든 데이터셋에 동일한 속성을 주는 것도 자주 보이는 실수입니다. 미디어 보관, VM 블록 스토리지, 사용자 홈 디렉터리, 백업 아카이브는 액세스 패턴이 다릅니다. 속성값 하나로 모두 해결하려 하면 결국 어느 쪽에서도 만족스럽지 않은 결과가 나옵니다. 홈랩에서도 최소한 대용량 순차 파일과 작은 랜덤 I/O 정도는 분리해서 생각하는 편이 낫습니다.

    검증과 결과 확인: 무엇을 보면 구성이 잘 됐다고 판단할까

    다 만들어놓고 "일단 잘 되네"에서 멈추면, 실제 검증은 아직 덜 된 셈입니다. 저는 적어도 아래 항목은 확인해야 구축이 끝났다고 봅니다.

    1. 재부팅 후 풀 상태가 자동으로 정상 인식되는지 확인
    2. 스냅샷이 의도한 데이터셋 또는 게스트 범위에서만 생성되는지 확인
    3. VM 또는 컨테이너가 해당 저장소를 안정적으로 읽고 쓰는지 확인
    4. SMB, NFS, iSCSI 접근 권한이 예상한 사용자와 장치에만 적용되는지 확인
    5. 백업 또는 복제 대상에서 실제 복구 테스트가 가능한지 확인

    예를 들어 Proxmox VE에서는 게스트가 붙어 있는 저장소가 부팅 후 정상 활성화되는지와, 백업 경로가 일시적으로 마운트 실패했을 때 어떤 경고가 나는지를 보는 게 중요합니다. TrueNAS SCALE에서는 공유 서비스가 떠 있는지만 볼 게 아니라, 데이터셋 마운트 상태와 권한이 함께 정상인지를 확인해야 합니다.

    zfs list -o name,mounted,readonly
    zpool status -x
    showmount -e nas-host
    smbclient -L //nas-host -U username

    이 명령은 검증 관점에서 꽤 실용적입니다. 단, showmount는 NFS 서버가 실제로 export를 제공할 때 의미가 있고, smbclient는 Samba 클라이언트 패키지가 설치돼 있어야 합니다. 화려하진 않지만 이런 확인이 벤치마크보다 더 값질 때가 많습니다. 홈랩에서 오래 버티는 구성은 평균 성능이 약간 더 좋은 구성이 아니라, 이상 징후를 빨리 드러내는 구성이더라고요.

    Proxmox TrueNAS SCALE ZFS 비교 결과와 검증 상태를 보여주는 대시보드 이미지

    ZFS 상태, 스냅샷, 공유, VM 연결 상태를 한 번에 점검하는 검증 관점의 결과 화면 예시입니다.

    상황별 추천: 이런 경우엔 Proxmox VE, 이런 경우엔 TrueNAS SCALE

    여기서는 애매하게 말하지 않겠습니다.

    • VM, LXC, 실험용 서비스가 중심이라면 Proxmox VE가 맞습니다. 로컬 ZFS로 단순하게 가져가고, 백업 저장소만 별도 경로 또는 별도 장비로 떼는 구성이 운영이 편합니다.
    • 파일 공유, 미디어, 장기 보관, 백업 허브가 중심이라면 TrueNAS SCALE이 더 맞습니다. 데이터셋과 권한 모델을 먼저 설계하는 편이 결과가 좋습니다.
    • 둘 다 중요하고, 둘 다 메인 서비스라면 분리형이 맞습니다. Proxmox VE는 컴퓨트, TrueNAS SCALE은 스토리지. 홈랩에서 비용은 조금 늘어도 판단 비용과 복구 비용이 줄어듭니다.
    • 한 대 장비로 반드시 끝내야 하는 상황이라면 Proxmox VE 단독 또는 TrueNAS 중심 중 하나를 고르고, 반대 역할은 최소화하는 편이 낫습니다. 둘을 동등한 주인공으로 세우는 순간 구조가 무거워집니다.
    내 우선순위 추천 선택 이유
    VM 실험, LXC, 자동화, 클러스터 연습 Proxmox VE 게스트 수명주기 관리가 자연스럽고 운영 동선이 짧습니다
    집안 파일 서버, 사진, 미디어, 백업 TrueNAS SCALE 데이터셋, 권한, 공유, 스냅샷 관리가 중심에 맞습니다
    가상화와 NAS 둘 다 중요함 역할 분리 장애 범위를 줄이고 원인 분석이 쉬워집니다
    예산이 매우 제한적이고 실험이 우선 올인원 Proxmox VE 초기 진입 비용이 낮지만 메인 데이터는 별도 백업이 필수입니다
    데이터 안전이 최우선이고 VM은 부수적 TrueNAS SCALE 중심 스토리지 정책을 주도적으로 설계하기 쉽습니다

    이 판단에서 중요한 건 제품 팬심이 아니라 장애 우선순위입니다. 서버가 멈췄을 때 가장 먼저 살리고 싶은 것이 VM이라면 Proxmox VE, 가장 먼저 지키고 싶은 것이 데이터라면 TrueNAS SCALE입니다. 이 기준이 서지 않으면 계속 기능 비교만 하게 됩니다.

    관련 글이 있다면 Proxmox 백업 전략, ZFS 스냅샷 정책, 홈랩 NAS 네트워크 분리 구성도 함께 읽어보세요. 이 세 가지를 같이 보면 장비 선택보다 구조 선택이 먼저라는 점이 더 또렷해집니다.

    FAQ 성격으로 짧게 짚고 가는 포인트

    Q. 홈랩 입문자는 뭘 먼저 시작하는 게 좋을까요?

    서비스 여러 개를 띄워보며 익히는 게 목표면 Proxmox VE부터, 집안 파일 서버와 백업 체계를 안정적으로 만들고 싶으면 TrueNAS SCALE부터 시작하는 편이 시행착오가 적습니다.

    Q. 한 대 서버로 둘 다 하고 싶으면요?

    가능은 합니다. 다만 메인 데이터까지 얹는다면 복구 순서를 종이에 적어보는 걸 권합니다. 하이퍼바이저가 안 뜰 때 NAS 접근을 어떻게 할지, NAS가 안 뜰 때 VM 백업을 어디서 꺼낼지 막히면 아직은 역할을 더 줄이는 편이 낫습니다.

    Q. ZFS를 쓰니까 둘 다 체감 차이가 거의 없지 않나요?

    그렇지 않습니다. 파일시스템은 같아도 관리 흐름, 장애 대응, 공유 제공 방식, 권한 모델, 복구 순서가 다릅니다. 체감 차이는 대개 평상시보다 문제 상황에서 크게 드러납니다.

    Q. 언제 굳이 쓰지 말아야 하나요?

    Proxmox VE는 메인 데이터 보관과 테스트 워크로드를 한 박스에 무리하게 합칠 때 조심해야 하고, TrueNAS SCALE은 잦은 VM 실험과 하이퍼바이저 자동화가 핵심일 때 굳이 주력으로 잡지 않는 편이 낫습니다.

    마무리: 제가 지금 다시 홈랩을 짠다면 이렇게 갑니다

    제가 지금 처음부터 다시 짠다면, VM 실험과 서비스 배포가 메인이면 Proxmox VE에 로컬 ZFS를 쓰고 백업 저장소는 반드시 다른 경로나 다른 장비로 분리하겠습니다. 반대로 가족 사진, 미디어, 백업 아카이브가 더 중요하면 TrueNAS SCALE을 별도 장비로 두고, Proxmox는 그 저장소를 소비하는 쪽으로 붙일 겁니다.

    가상화가 중심이면 Proxmox VE, 데이터가 중심이면 TrueNAS SCALE. 둘 다 중요하면 역할 분리입니다. 홈랩에선 이 판단이 장비 스펙보다 오래 갑니다. ZFS는 둘 다 훌륭하지만, 차이를 만드는 건 파일시스템 이름보다도 무엇을 먼저 지키도록 구조를 짰느냐였습니다.

    Proxmox VE와 TrueNAS SCALE 선택 기준을 요약한 ZFS 비교 인포그래픽

    어떤 환경에서 무엇을 고르면 되는지 빠르게 판단할 수 있도록 핵심 선택 기준을 요약한 이미지입니다.

  • [NAS] iSCSI와 S3 호환 스토리지, 홈랩 환경에서의 비용 효율성 분석

    [NAS] iSCSI와 S3 호환 스토리지, 홈랩 환경에서의 비용 효율성 분석

    [NAS] iSCSI와 S3 호환 스토리지, 홈랩 환경에서의 비용 효율성 분석

    안녕하세요, 13년차의 서버실 주인장입니다. 홈랩을 운영하다 보면 가장 큰 고민 중 하나가 바로 스토리지(Storage) 아닐까 싶어요. 데이터는 점점 불어나는데, 어디에 어떻게 저장하고 관리할지 늘 새로운 숙제가 생기거든요. 저도 처음엔 단순히 하드디스크만 늘리면 되는 줄 알았는데, 이게 또 생각보다 복잡하더라고요. 특히 비용 효율성까지 따지기 시작하면 머리가 지끈거려요. 오늘은 제가 홈랩에서 직접 겪었던 경험을 바탕으로 iSCSI와 S3 호환 스토리지 두 가지 방식의 비용 효율성을 깊이 있게 분석해보려고 합니다. 여러분의 NAS 스토리지 선택과 홈랩 비용 분석에 도움이 되길 바랍니다.

    홈랩 네트워크 아키텍처 다이어그램: iSCSI NAS와 S3 호환 스토리지 서버 구성

    홈랩 환경에서 iSCSI와 S3 호환 스토리지가 어떻게 연동되는지 보여주는 네트워크 다이어그램: 서버, NAS, S3 호환 스토리지 서버, 그리고 클라이언트들이 유선 네트워크로 연결되어 데이터가 오가는 모습을 시각화합니다.

    1. iSCSI: 블록 스토리지의 강력함과 익숙함

    먼저 iSCSI(Internet Small Computer System Interface)부터 이야기해볼까요? 쉽게 말해, 네트워크를 통해 마치 로컬 디스크처럼 스토리지를 사용하는 기술입니다. 보통 기업 환경의 SAN(Storage Area Network)에서 사용하는 블록 스토리지(Block Storage) 방식을 IP 네트워크 위에서 구현한 것이라고 보시면 돼요. 제가 처음 iSCSI를 접했을 때는 ‘아니, 네트워크로 연결된 게 내 컴퓨터 디스크처럼 보인다고?’ 싶어서 좀 신기했었죠.

    1.1. iSCSI의 장점

    • 고성능: 블록 레벨 액세스(Block-level Access)를 제공하기 때문에 파일 시스템 오버헤드가 적어, 마치 로컬 디스크를 쓰는 것처럼 빠른 성능이 나오거든요. 가상 머신(Virtual Machine)의 디스크나 데이터베이스(Database) 스토리지로 활용하기에 아주 적합합니다.
    • 유연성: 서버 입장에서는 물리적인 디스크와 동일하게 인식하므로, 운영체제(Operating System)에서 원하는 파일 시스템(File System)을 자유롭게 구성할 수 있어요. Windows 서버든 Linux 서버든 가리지 않고 쓸 수 있다는 게 큰 장점입니다.
    • 익숙함: 기존 파일 시스템 관리 방식과 크게 다르지 않아서, 엔지니어 입장에서는 익숙하게 다룰 수 있거든요.

    1.2. iSCSI의 단점

    • 관리 복잡성: LUN(Logical Unit Number) 관리, 인증(Authentication), 네트워크 설정 등 초기 설정이 좀 복잡할 수 있어요. 저도 처음엔 LUN 개념 잡는 데 좀 헤맸거든요.
    • 확장성 제한: 대규모의 분산 환경보다는 특정 서버에 고성능 스토리지를 제공하는 데 더 적합합니다. 용량을 늘리려면 LUN을 확장하거나 새로 할당해야 하는데, 이게 또 은근히 번거롭거든요.
    • 단일 연결: 기본적으로 단일 서버가 LUN을 독점적으로 사용하는 방식이라, 여러 서버에서 동시에 하나의 LUN에 접근하려면 클러스터 파일 시스템(Cluster File System) 같은 추가적인 솔루션이 필요합니다.
    # iSCSI 타겟 검색 예시 (Linux)
    sudo iscsiadm -m discovery -t st -p [iSCSI_TARGET_IP]
    
    # 검색된 타겟에 로그인
    sudo iscsiadm -m node -T [TARGET_IQN] -p [iSCSI_TARGET_IP] --login
    
    # 로그인 후 디스크 확인
    lsblk
    

    위에 보시는 것처럼 명령어를 통해 연결하고 나면, /dev/sdX와 같은 장치로 인식되어 바로 사용할 수 있어요. 처음 연결 성공했을 때의 그 쾌감이란! 🎉

    2. S3 호환 스토리지: 오브젝트 스토리지의 유연성과 확장성

    다음은 S3 호환 스토리지(S3 Compatible Storage)입니다. Amazon S3(Simple Storage Service)는 클라우드 스토리지의 대명사인데, 이를 따라 온프레미스(On-premise)나 홈랩에서 구축할 수 있는 솔루션들이 많이 나왔죠. 대표적으로 MinIO 같은 오픈소스 솔루션이 있습니다. S3 호환 스토리지는 오브젝트 스토리지(Object Storage) 방식을 사용하는데, 파일을 마치 객체처럼 다루고 HTTP API를 통해 접근하거든요. 처음엔 이런 방식이 낯설었는데, 써보니 정말 편리하더라고요.

    2.1. S3 호환 스토리지의 장점

    • 무한한 확장성: 오브젝트 스토리지의 가장 큰 장점이죠. 수십 테라바이트(TB)에서 페타바이트(PB)까지, 용량을 거의 무한하게 늘릴 수 있어요. 데이터를 추가할 때마다 버킷(Bucket)에 오브젝트를 넣으면 끝입니다!
    • API 기반 접근: RESTful API를 통해 접근하기 때문에 다양한 애플리케이션과 쉽게 연동할 수 있습니다. 백업(Backup), 아카이빙(Archiving), 웹 서비스의 정적 파일 호스팅 등 활용 범위가 정말 넓거든요.
    • 관리 용이성: 파일 시스템의 복잡한 관리가 필요 없습니다. 버킷 단위로 관리하고, 메타데이터(Metadata)를 통해 오브젝트를 찾으면 되니까요.
    • 비용 효율성 (대용량): 스토리지 노드(Node)를 추가하는 방식으로 확장하기 때문에, 대용량 데이터를 저렴하게 저장할 수 있어요.

    2.2. S3 호환 스토리지의 단점

    • 블록 스토리지 대비 성능: 블록 스토리지처럼 로컬 디스크에 직접 접근하는 방식이 아니기 때문에, 일반적으로 낮은 레이턴시(Latency)와 높은 IOPS(Input/Output Operations Per Second)가 필요한 워크로드에는 적합하지 않습니다.
    • 특정 애플리케이션 한계: 기존 파일 시스템 기반의 애플리케이션과는 직접 연동하기 어렵습니다. 예를 들어, 데이터베이스 파일을 S3 버킷에 직접 저장하는 건 불가능하죠. FUSE(Filesystem in Userspace) 기반의 툴을 사용하면 가능하긴 하지만, 성능 저하가 있을 수 있어요.
    MinIO S3 호환 스토리지 버킷 관리 콘솔 화면

    MinIO 콘솔 화면 또는 S3 버킷 생성/관리 인터페이스의 개념도: 사용자가 웹 인터페이스를 통해 버킷을 생성하고, 오브젝트를 업로드하며, 접근 권한을 설정하는 과정을 보여줍니다.

    3. 홈랩 환경에서의 실제 구현 및 선택 기준

    자, 그럼 홈랩에서는 어떤 스토리지를 선택해야 할까요? 이건 어떤 워크로드(Workload)를 돌릴지에 따라 완전히 달라집니다. 제가 경험한 바로는 이렇더라고요.

    3.1. iSCSI가 적합한 경우

    • 가상 머신(VM) 디스크: Proxmox, ESXi 같은 하이퍼바이저(Hypervisor)에서 가상 머신의 디스크 이미지(Disk Image)를 저장할 때 iSCSI가 아주 유용합니다. 빠른 응답 속도가 중요하거든요.
    • 데이터베이스(DB) 서버: 높은 IOPS와 낮은 레이턴시가 필요한 데이터베이스 서버에 iSCSI 스토리지를 연결하면 성능 병목 현상을 줄일 수 있어요.
    • 특정 애플리케이션의 고성능 스토리지: 동영상 편집용 워크스테이션이나 게임 서버처럼 빠른 디스크 I/O가 필수적인 경우에 고려해볼 만합니다.

    보통 NAS(Network Attached Storage) 장비들이 iSCSI 타겟 기능을 제공합니다. 제 홈랩에서도 Synology NAS를 이용해 iSCSI LUN을 구성해서 가상 머신 스토리지로 잘 쓰고 있거든요.

    3.2. S3 호환 스토리지가 적합한 경우

    • 백업 및 아카이빙: 중요한 데이터를 장기간 보관하거나, 주기적인 백업을 수행할 때 S3 호환 스토리지는 아주 효율적입니다. 버전 관리(Versioning) 기능도 제공해서 실수로 파일을 덮어쓰거나 삭제해도 복구가 가능하죠.
    • 미디어 파일 저장: 사진, 동영상 같은 대용량 미디어 파일을 저장하고 관리할 때 좋습니다. 웹 갤러리나 미디어 서버의 백엔드(Backend)로 활용하기에도 적합해요.
    • 개발 환경의 오브젝트 스토리지: 애플리케이션 개발 시 S3 API를 사용하는 경우가 많은데, 로컬에서 S3 호환 스토리지를 구축하면 개발 및 테스트 환경을 클라우드와 유사하게 가져갈 수 있거든요.

    저는 오래된 PC에 리눅스(Linux)를 설치하고 MinIO를 띄워서 개인용 S3 호환 스토리지를 운영 중입니다. Docker Compose로 쉽게 올릴 수 있어서 삽질 좀 했습니다만(ㅎㅎ), 한번 구축하고 나니 클라우드 비용 걱정 없이 대용량 데이터를 저장할 수 있어서 정말 편하더라고요.

    # MinIO Docker Compose 예시
    version: '3.8'
    
    services:
      minio:
        image: minio/minio
        container_name: minio
        ports:
          - "9000:9000"
          - "9001:9001"
        volumes:
          - /path/to/minio/data:/data
        environment:
          MINIO_ROOT_USER: admin
          MINIO_ROOT_PASSWORD: password
        command: server /data --console-address ":9001"
        restart: always
    

    이런 식으로 간단하게 MinIO를 구성해서 S3 호환 스토리지를 만들 수 있습니다. /path/to/minio/data 부분만 여러분의 저장 경로로 바꿔주면 돼요. 💡

    4. 비용 효율성 분석: 하드웨어, 전력, 네트워크

    이제 가장 중요한 비용 효율성 분석입니다. 홈랩에서 스토리지 비용은 크게 초기 투자 비용과 운영 비용으로 나눌 수 있어요.

    4.1. 초기 투자 비용

    • 하드웨어: iSCSI든 S3 호환 스토리지든, 결국 데이터를 저장할 물리적인 디스크(HDD/SSD)가 필요합니다. 고용량 HDD는 여전히 가격이 비싸죠. 여기에 스토리지를 호스팅할 서버(NAS, 미니 PC, 조립 PC 등)와 네트워크 카드(NIC), 케이블 등도 포함됩니다.
    • 소프트웨어: 오픈소스 솔루션(MinIO, TrueNAS 등)을 사용하면 소프트웨어 비용은 무료에 가깝지만, 상용 솔루션을 선택한다면 라이선스 비용도 고려해야 해요.

    4.2. 운영 비용

    • 전력 소모: 서버와 디스크는 24시간 돌아가야 하므로 전기 요금은 무시할 수 없습니다. 특히 디스크 개수가 많아질수록 전력 소모가 커지죠. 저도 처음엔 몰랐다가 전기 요금 고지서 보고 깜짝 놀랐던 경험이 있거든요. 😱
    • 유지보수: 디스크 고장 시 교체, 데이터 백업 전략 수립 및 실행, 소프트웨어 업데이트 등 시간과 노력이 들어갑니다.
    • 네트워크 비용 (클라우드 스토리지의 경우): 만약 클라우드 스토리지(Cloud Storage)를 이용한다면, 데이터 Ingress(인그레스, 외부 트래픽 진입점)는 대부분 무료지만, Egress(이그레스, 외부 트래픽 송출점) 비용은 발생할 수 있어요. 홈랩에서 클라우드 스토리지로 백업을 보낼 때 이그레스 비용을 간과하면 안 됩니다.

    비교 표: iSCSI vs S3 호환 스토리지 비용 효율성 (홈랩 기준)

    항목 iSCSI (온프레미스) S3 호환 (온프레미스) S3 (클라우드 서비스)
    초기 하드웨어 비용 높음 (NAS/서버, HDD/SSD) 높음 (서버, HDD/SSD) 없음
    운영 전력 비용 있음 (24/7 구동) 있음 (24/7 구동) 없음
    소프트웨어 비용 낮음 (오픈소스 NAS OS) 낮음 (MinIO 등) 서비스 비용에 포함
    확장성 비용 디스크/LUN 추가 비용 디스크/노드 추가 비용 용량 단위 과금
    네트워크 트래픽 비용 없음 (내부 네트워크) 없음 (내부 네트워크) Egress 비용 발생 가능
    관리 복잡성 중 (LUN 관리) 하 (버킷/오브젝트 관리) 하 (콘솔/API)
    최대 성능 매우 높음 중간 (API 오버헤드) 중간 (네트워크 지연)

    5. 삽질 경험담: 예상치 못한 함정들 ⚠️

    13년차 엔지니어도 삽질은 피할 수 없죠. 저도 홈랩에서 스토리지 구성하면서 여러 번 시행착오를 겪었어요.

    • iSCSI 성능 튜닝의 어려움: 처음엔 단순히 기가비트 이더넷(Gigabit Ethernet)으로 연결하면 다 되는 줄 알았습니다. 그런데 가상 머신 여러 개를 돌리니 IOPS가 제대로 안 나오더라고요. 멀티패스(Multipath) 구성이나 점보 프레임(Jumbo Frame) 설정, 10기가비트 이더넷(10 Gigabit Ethernet)으로 업그레이드하면서 성능을 끌어올렸습니다. 네트워크 장비 비용이 꽤 들더군요.
    • S3 호환 솔루션의 호환성 문제: MinIO 같은 솔루션이 S3 API를 구현하지만, 100% 모든 기능을 지원하는 건 아닙니다. 특정 클라우드 서비스에서만 제공하는 기능은 동작하지 않을 수 있어서, 사용하는 애플리케이션이 요구하는 S3 API 버전과 호환성을 미리 확인해야 했거든요.
    • 전력 소모와 소음: 여러 대의 서버와 디스크를 24시간 돌리니 전력 소모가 생각보다 컸습니다. 특히 오래된 디스크는 소음도 무시할 수 없었죠. 조용한 환경을 원한다면 저전력 부품이나 팬리스(Fanless) 솔루션에 투자하는 것도 고려해야 해요.

    이런 삽질 덕분에 많은 것을 배웠습니다. 홈랩은 결국 현실 세계의 축소판이라는 걸 깨달았죠. 😂

    6. 결론: 그래서 어떤 스토리지를 선택해야 할까?

    어떤 스토리지를 선택할지는 결국 여러분의 워크로드, 예산, 그리고 관리 역량에 달려 있어요.

    • 고성능 블록 스토리지가 필요하다면 iSCSI: 가상 머신, 데이터베이스, 고성능 애플리케이션용 스토리지가 필요하다면 iSCSI가 좋은 선택입니다. 초기 설정이 좀 복잡해도, 한번 구성해두면 안정적으로 고성능을 제공하거든요.
    • 대용량 백업, 아카이빙, 웹 서비스에 S3 호환 스토리지: 수많은 파일들을 저장하고, 백업하며, 웹 서비스에서 활용할 계획이라면 S3 호환 스토리지가 훨씬 유연하고 확장성이 뛰어납니다. MinIO 같은 오픈소스를 활용하면 클라우드 비용 없이 대용량 스토리지를 구축할 수 있어요.

    가장 이상적인 방법은 두 가지 방식을 하이브리드(Hybrid)로 사용하는 것입니다. 즉, 고성능이 필요한 워크로드에는 iSCSI를 사용하고, 대용량 백업이나 오브젝트 저장에는 S3 호환 스토리지를 활용하는 거죠. 제 홈랩도 현재 이런 방식으로 운영되고 있습니다. ✅

    홈랩 스토리지는 한번 구축하면 끝이 아니라, 계속해서 진화하고 확장시켜 나가는 과정이라고 생각합니다. 여러분도 자신만의 최적의 스토리지 솔루션을 찾아가는 재미를 느껴보시길 바랍니다! 다음번에는 홈랩 전력 효율성 분석에 대해 더 자세히 다뤄볼게요. 궁금한 점이 있다면 언제든지 댓글로 남겨주세요!

    iSCSI와 S3 호환 스토리지의 핵심 장단점을 요약하고, 홈랩 사용자가 어떤 선택을 해야 할지 워크로드와 예산에 따라 가이드하는 인포그래픽: 빠른 속도 vs 대용량, 복잡한 설정 vs 쉬운 확장성 등의 비교점을 시각적으로 보여줍니다.

  • [Nas] TrueNAS iSCSI로 가상머신 마이그레이션: ESXi 스토리지 이전 완벽가이드

    [Nas] TrueNAS iSCSI로 가상머신 마이그레이션: ESXi 스토리지 이전 완벽가이드

    TrueNAS iSCSI로 가상머신 마이그레이션: ESXi 스토리지 이전 완벽가이드

    안녕하세요, 13년차 서버실 지킴이입니다. 오늘은 많은 인프라 엔지니어들이 한 번쯤 고민해봤을 주제, VMware ESXi 가상머신(Virtual Machine, VM)을 TrueNAS iSCSI 스토리지로 마이그레이션(Migration, 이전)하는 성공 사례를 들려드리려고 합니다. 저도 홈랩을 운영하면서 스토리지 확장의 필요성을 절감했고, 이 과정에서 꽤나 삽질을 했거든요. 하지만 결국 성공했고, 그 경험을 여러분과 나누고 싶습니다. 💡

    기존에 사용하던 로컬 스토리지의 용량이 부족해지거나, 더 나은 성능과 유연성을 위해 중앙 집중식 스토리지로 옮겨야 할 때가 있죠. 특히 ESXi 스토리지 이전은 단순히 데이터 복사 이상의 복잡한 과정이 필요합니다. 이때 TrueNAS iSCSI는 비용 효율적이면서도 강력한 대안이 될 수 있습니다. iSCSI VM 마이그레이션을 고민 중이라면, 오늘 이야기가 큰 도움이 될 겁니다.

    ESXi와 TrueNAS iSCSI 스토리지를 활용한 가상머신 마이그레이션 전체 구성도입니다.

    1. 핵심 개념 이해: ESXi, TrueNAS, 그리고 iSCSI

    본격적인 마이그레이션에 앞서, 핵심 기술들이 무엇인지 간단히 짚고 넘어갈게요. “아, 이건 또 뭐야?” 싶으실 수도 있지만, 기본을 알아야 삽질을 줄일 수 있거든요. 😉

    • VMware ESXi (이엑스아이): VMware에서 개발한 베어메탈(Bare-metal) 하이퍼바이저(Hypervisor)입니다. 쉽게 말해, 물리 서버 위에 직접 설치되어 여러 가상머신을 효율적으로 운영할 수 있게 해주는 소프트웨어죠. 저희 서버실의 모든 가상머신은 ESXi 위에서 돌아가고 있습니다.
    • TrueNAS (트루나스): 오픈소스 네트워크 스토리지(Network Attached Storage, NAS) 운영체제입니다. 강력한 ZFS 파일 시스템을 기반으로 데이터 무결성과 유연성을 제공하며, 파일 공유는 물론 iSCSI와 같은 블록 스토리지 서비스도 지원합니다. 저의 홈랩에서는 TrueNAS Core 버전을 사용하고 있습니다.
    • iSCSI (아이 스카시, Internet Small Computer System Interface): IP 네트워크를 통해 SCSI(Small Computer System Interface) 명령을 전송하는 기술 표준입니다. 원격 서버에 마치 로컬 디스크처럼 블록 스토리지(Block Storage)를 연결할 수 있게 해줍니다. NAS iSCSI 설정은 ESXi가 TrueNAS의 스토리지를 마치 물리 디스크처럼 인식하게 만드는 핵심 단계라고 할 수 있죠.

    2. TrueNAS iSCSI 타겟 설정: 스토리지 준비하기

    이제 TrueNAS에서 ESXi가 사용할 iSCSI 스토리지를 만들어볼 차례입니다. “어렵지 않을까?” 걱정 마세요. 제가 직접 해보니 몇 가지 단계만 잘 따라가면 됩니다.

    단계별 TrueNAS iSCSI 설정

    1. ZFS 데이터셋(Dataset) 생성: 먼저 iSCSI 타겟으로 사용할 ZFS 데이터셋을 만듭니다. 저는 pool01/iscsi-vm이라는 데이터셋을 만들었어요.
    2. iSCSI 서비스 활성화: TrueNAS 웹 GUI에서 Services -> iSCSI로 이동하여 서비스를 활성화하고, Start Automatically를 체크해줍니다.
    3. 포털(Portal) 생성: iSCSI 통신에 사용할 IP 주소와 포트를 지정합니다. Sharing -> Block Shares (iSCSI) -> Portals 탭에서 Add를 클릭하고 TrueNAS의 IP 주소를 입력합니다.
    4. 이니시에이터(Initiator) 및 인증 설정 (선택 사항): 보안을 위해 특정 ESXi 호스트만 접근하도록 제한하거나, CHAP(Challenge-Handshake Authentication Protocol) 인증을 설정할 수 있습니다. 저는 홈랩이라 간단히 모든 이니시에이터(ALL Initiators)를 허용했지만, 프로덕션 환경에서는 반드시 제한해야 합니다.
    5. 익스텐트(Extent, LUN) 생성: 실제 스토리지 공간을 정의합니다. Extents 탭에서 Add를 클릭하고, 이전에 생성한 ZFS 데이터셋을 경로로 지정합니다. 이 익스텐트가 ESXi에 LUN(Logical Unit Number)으로 보이게 됩니다.
    6. 타겟(Target) 생성 및 연결: 마지막으로 익스텐트와 포털을 연결하여 타겟을 만듭니다. Targets 탭에서 Add를 클릭하고, 이름을 지정한 후 생성한 포털과 익스텐트를 연결합니다.

    이렇게 하면 TrueNAS에서 iSCSI 타겟 설정이 완료됩니다. 생각보다 간단하죠? ✅

    TrueNAS 웹 인터페이스에서 iSCSI 타겟을 설정하는 화면

    TrueNAS 웹 인터페이스에서 iSCSI 타겟을 설정하는 모습입니다.

    3. ESXi iSCSI 이니시에이터 설정: 서버 연결하기

    이제 ESXi 호스트가 TrueNAS의 iSCSI 스토리지를 인식하도록 설정해야 합니다. vSphere Client를 이용하면 GUI 환경에서 쉽게 설정할 수 있습니다.

    단계별 ESXi 설정

    1. iSCSI 소프트웨어 어댑터 활성화: vSphere Client에서 ESXi 호스트를 선택하고 Configure -> Storage Adapters로 이동합니다. Add Software Adapter를 클릭하여 Software iSCSI 어댑터를 추가합니다.
    2. 동적 검색(Dynamic Discovery) 설정: 새로 추가된 iSCSI 어댑터를 선택하고 Adapters 탭에서 Dynamic Discovery를 클릭, Add를 눌러 TrueNAS의 iSCSI 포털 IP 주소를 입력합니다.
    3. 네트워크 리스캔(Rescan): Storage Adapters 뷰로 돌아와 Rescan Adapters를 클릭합니다. 잠시 후 TrueNAS의 iSCSI LUN이 새로운 디바이스로 나타나는 걸 확인할 수 있어요.
    4. 새로운 데이터스토어(Datastore) 생성: Storage -> Datastores 탭으로 이동하여 New Datastore를 클릭합니다. VMFS 타입을 선택하고, 방금 검색된 TrueNAS iSCSI LUN을 선택하여 데이터스토어를 생성합니다. 원하는 이름을 지정하고 VMFS 버전을 선택하면 됩니다.

    자, 이제 ESXi 호스트가 TrueNAS의 iSCSI 스토리지를 사용할 준비가 끝났습니다. “진짜 되는 거야?” 싶으시겠지만, 여기까지 잘 오셨다면 거의 다 된 겁니다! 🎉

    4. 가상머신 마이그레이션: iSCSI 스토리지 이전의 핵심

    가장 중요한 단계, 가상머신 마이그레이션입니다. ESXi 환경에서는 Storage vMotion(스토리지 v모션)이라는 멋진 기능 덕분에 가상머신을 끄지 않고도 스토리지를 이전할 수 있습니다. 하지만 vCenter Server가 없는 홈랩 환경에서는 콜드 마이그레이션(Cold Migration, VM 종료 후 이전)을 해야 할 수도 있어요.

    Storage vMotion을 이용한 마이그레이션 (vCenter Server 환경)

    1. vSphere Client에서 마이그레이션할 가상머신을 선택합니다.
    2. 가상머신을 오른쪽 클릭하고 Migrate를 선택합니다.
    3. Change storage only 옵션을 선택한 후 Next를 클릭합니다.
    4. 대상 데이터스토어로 TrueNAS iSCSI를 통해 생성한 새 데이터스토어를 선택합니다.
    5. 설정을 확인하고 Finish를 클릭하면 마이그레이션이 시작됩니다.

    콜드 마이그레이션을 이용한 마이그레이션 (vCenter Server 없는 환경)

    1. 마이그레이션할 가상머신을 종료(Power Off)합니다.
    2. vSphere Client에서 가상머신을 선택하고 Migrate를 선택합니다.
    3. Change storage only 또는 Change compute resource and storage 옵션을 선택합니다. (호스트도 변경할 경우)
    4. 대상 데이터스토어로 TrueNAS iSCSI 데이터스토어를 선택하고 마이그레이션을 진행합니다.

    마이그레이션 진행 상황은 vSphere Client의 Recent Tasks에서 확인할 수 있습니다. 저도 처음엔 “이게 진짜 되는 건가?” 반신반의했는데, 진행률이 올라가는 걸 보니 너무 뿌듯하더라고요. 😊

    VMware vSphere Client에서 가상머신 스토리지 마이그레이션이 진행되는 화면입니다.

    5. iSCSI 마이그레이션 중 겪었던 문제들과 해결법 ⚠️

    “13년차 엔지니어도 삽질을 하나요?” 네, 물론이죠! 저도 이 과정에서 몇 번의 난관에 부딪혔고, 덕분에 많은 것을 배웠습니다. 😅

    • 네트워크 설정 문제: 처음에는 마이그레이션 속도가 너무 느려서 답답했어요. 알고 보니 ESXi의 iSCSI 전용 VMkernel 어댑터에 점보 프레임(Jumbo Frames)을 설정하지 않았더라고요. MTU(Maximum Transmission Unit) 값을 9000으로 올리니 속도가 훨씬 빨라졌습니다. TrueNAS와 ESXi 양쪽 모두 설정해야 한다는 점을 잊지 마세요! 💡

      \n# ESXi CLI에서 MTU 설정 예시 (vmnic0이 iSCSI용 NIC일 경우)\nesxcli network ip interface set -i vmkX -m 9000\n    
    • iSCSI 타겟/이니시에이터 불일치: TrueNAS에서 설정한 iSCSI ACL(Access Control List)이나 CHAP 인증 정보가 ESXi와 일치하지 않아 연결이 안 되는 경우가 있었습니다. “왜 안 되는 거야!” 하며 몇 시간을 헤맸는데, 결국 사소한 오타 때문이었죠. 설정값을 꼼꼼히 확인하는 것이 정말 중요합니다.
    • TrueNAS 방화벽: 간혹 TrueNAS의 내장 방화벽이 iSCSI 트래픽을 막는 경우가 있어요. iSCSI 기본 포트(3260)가 열려 있는지 확인하거나, ESXi 호스트의 IP를 허용 목록에 추가해야 합니다.

    이런 문제들을 해결하면서 “아, 이래서 경험이 중요하구나” 싶더라고요. 멘토처럼 알려드리는 제 글이 여러분의 삽질을 조금이나마 줄여주기를 바랍니다.

    6. iSCSI 마이그레이션 검증: 드디어 성공했습니다! 🎉

    모든 설정과 마이그레이션이 끝나고, 이제 결과를 확인할 차례입니다. “잘 작동하는지”를 보는 건 엔지니어의 가장 큰 기쁨이죠.

    1. vSphere Client에서 확인: 마이그레이션된 가상머신의 Summary 탭을 확인하면 스토리지가 새로운 TrueNAS iSCSI 데이터스토어로 변경된 것을 볼 수 있어요. 가상머신을 구동해보세요!
    2. TrueNAS 대시보드 확인: TrueNAS 웹 GUI의 Reporting 또는 Dashboard에서 iSCSI 서비스의 활성화 여부, 연결된 이니시에이터 수, 그리고 스토리지 I/O(Input/Output) 성능 그래프를 통해 실제 데이터 통신이 이루어지고 있는지 확인할 수 있습니다.
    3. 성능 모니터링: 가상머신 내부에서 디스크 I/O 벤치마크 툴(예: CrystalDiskMark, fio)을 사용하여 성능이 예상대로 나오는지 확인해보는 것도 좋습니다.

    제가 직접 확인해보니, 기존 로컬 스토리지 대비 디스크 I/O 성능이 크게 개선된 것을 체감할 수 있었습니다. 특히 여러 가상머신이 동시에 디스크를 사용하는 환경에서 더욱 빛을 발하더라고요. iSCSI VM 마이그레이션은 정말 성공적인 선택이었습니다!

    TrueNAS 대시보드에서 iSCSI 스토리지의 실시간 성능을 모니터링하는 대시보드

    TrueNAS 대시보드에서 iSCSI 스토리지의 실시간 성능을 모니터링하는 모습입니다.

    7. 마무리: ESXi iSCSI 마이그레이션 과정에서 얻은 교훈

    VMware ESXi 가상머신을 TrueNAS iSCSI 스토리지로 마이그레이션하는 과정은 쉽지 않았지만, 그만큼 얻은 것도 많습니다. 유연한 스토리지 확장, 향상된 성능, 그리고 무엇보다 “내가 해냈다!”는 성취감이 가장 큰 소득이었죠.

    이 경험을 통해 저는 다음과 같은 교훈을 얻었습니다.

    • 사전 계획의 중요성: 네트워크 구성, IP 주소 할당, 인증 방식 등 모든 설정을 미리 계획하는 것이 삽질을 줄이는 지름길입니다.
    • 문서화의 생활화: 삽질 과정을 기록하고 해결책을 문서화하면 다음번에 비슷한 문제가 발생했을 때 시간을 크게 절약할 수 있습니다. (사실 저도 이 글을 쓰면서 다시 한번 정리하는 거거든요 ㅎㅎ)
    • 오픈소스의 힘: TrueNAS 같은 오픈소스 솔루션은 상용 제품 못지않은 강력한 기능을 제공하며, 홈랩 환경에서 다양한 실험을 가능하게 합니다.

    혹시 여러분도 가상머신 스토리지 마이그레이션을 고민하고 계셨다면, TrueNAS iSCSI를 한 번 고려해보세요. 물론 처음엔 헷갈릴 수 있지만, 제 경험담이 여러분의 길을 밝혀주는 작은 등불이 되기를 바랍니다. 다음번에는 ESXi와 TrueNAS를 활용한 고가용성(High Availability) 구성에 대해서도 다뤄볼 예정이니 기대해주세요! 👍