부제: i5-8500 내장 그래픽 패스스루, 'card1'의 함정을 피하라
들어가며
안녕하세요, 시스템 엔지니어 수누다입니다.
"아빠, 내 옛날 사진들 다 어디 갔어?"
7살 아들의 이 한마디가 모든 것의 시작이었습니다. 아이가 커갈수록 기하급수적으로 늘어나는 사진과 동영상, 그리고 매달 통장에서 조용히 빠져나가는 구글 클라우드 구독료. 무엇보다 "내 소중한 추억을 남의 컴퓨터(클라우드)에만 맡겨도 될까?"라는 엔지니어 특유의 데이터 주권에 대한 고집이 발동했습니다.
남들은 시놀로지(Synology)를 사라고 하지만, 엔지니어의 자존심이 허락하지 않죠. 집에 있는 고성능 데스크탑을 활용해 가상화 서버(Proxmox)를 올리고, 그 위에 11TB 대용량 클라우드를 직접 구축하기로 했습니다.
오늘은 그 대장정의 첫걸음, 하드웨어 세팅부터 Proxmox 설치, 그리고 험난했던 GPU 연동 과정을 공유합니다. 특히 저와 같은 i5-8500 CPU를 쓰시는 분들에게 피가 되고 살이 될 'GPU 패스스루 삽질기'를 담았습니다.
1. 하드웨어: 타협하지 않은 '찐' 성능
보통 홈랩 입문용으로 저전력 N100 미니 PC를 많이 쓰지만, 저는 대용량 사진 분석(AI 얼굴 인식)과 다중 컨테이너 운영을 위해 데스크탑 사양을 그대로 가져갔습니다. (N100 샀다가 성능 답답해서 후회할 뻔했습니다.)
- CPU: 인텔 코어 i5-8500 (6코어 6스레드, 3.0GHz)
- 선택 이유: N100보다 2배 이상 강력한 깡성능. 4K 트랜스코딩도 거뜬한 UHD 630 내장 그래픽을 탑재했습니다.
- RAM: 16GB (DDR4)
- 선택 이유: 가상머신(VM)과 컨테이너(LXC)를 여러 개 돌리기에 넉넉한 용량입니다.
- Storage: 11TB HDD (ZFS Pool 구성)
- 선택 이유: 사진 원본과 4K 동영상을 평생 저장해도 남을 용량입니다.

2. OS 설치: 윈도우를 지우고 Proxmox를 깔다
서버 OS로는 Proxmox VE (Virtual Environment)를 선택했습니다. 리눅스(Debian) 기반의 하이퍼바이저로, 무료이면서도 엔터프라이즈급 기능을 제공합니다.
✅ 설치 핵심 체크포인트
- 부팅 USB: Rufus를 이용해 Proxmox ISO 이미지를 굽습니다.
- 고정 IP 할당: 서버는 주소가 바뀌면 안 됩니다.
- IP: 192.168.20.100 (우리 집 서버의 주민등록번호)
- Gateway: 192.168.20.1 (공유기 주소)
- DNS: KT(168.126.63.1)와 Google(8.8.8.8)을 혼용해 안정성 확보.

3. 스토리지 구성: ZFS와 ashift의 비밀
가장 중요한 11TB 하드디스크 설정입니다. 저는 ZFS 파일 시스템을 선택했습니다.
왜 ZFS인가? 데이터 무결성 보장(Bit rot 방지), 압축 효율, 스냅샷 기능 때문입니다.
⚠️ 엔지니어의 킥 (중요!)
Proxmox 웹 UI에서 디스크를 생성할 때 ashift 값을 물어봅니다. 요즘 나오는 대용량 하드디스크는 4K 섹터를 사용하므로 반드시 ashift=12로 설정해야 합니다.
(이거 기본값으로 했다가 쓰기 속도 반토막 나서 다시 밀었습니다... 여러분은 저처럼 실수하지 마세요.)
4. 오늘의 하이라이트: GPU 패스스루 대소동 (삽질기)
서버 구축의 꽃은 역시 트러블 슈팅(Troubleshooting)이죠. 오늘 저를 가장 힘들게 했던 건 'LXC 컨테이너에 GPU 권한 주기'였습니다.
구글 포토를 대체할 Immich를 돌리려면 CPU 빨만으로는 부족합니다. i5-8500의 내장 그래픽(iGPU)을 끌어다 써야 하는데, 도커 로그에 계속 이런 에러가 뜨더군요.
Error response from daemon: error gathering device information ... no such file or directory
범인 1: 세입자(LXC)와 건물주(Proxmox)의 소통 부재
Immich는 컨테이너(세입자) 안에 갇혀 있어서 호스트(건물주)의 그래픽 카드가 있는지도 모릅니다. 호스트 설정 파일에서 "너 GPU 써도 돼"라고 허락을 해줘야 합니다.
범인 2: 남들과 다른 내 GPU 번호 (card1)
인터넷에 널린 가이드는 전부 card0을 쓰라고 되어 있습니다. 저도 무지성으로 복사해서 넣었다가 한참을 헤맸습니다.
알고 보니 제 시스템은 GPU가 card0이 아니라 card1으로 잡혀있었습니다.
(Proxmox 쉘에서 ls -l /dev/dri 명령어로 반드시 확인하세요!)
✅ 해결한 설정 코드 (/etc/pve/lxc/102.conf)
# 핵심은 숫자 226:1과 card1 경로였습니다.
lxc.cgroup2.devices.allow: c 226:1 rwm
lxc.cgroup2.devices.allow: c 226:128 rwm
lxc.mount.entry: /dev/dri/card1 dev/dri/card1 none bind,optional,create=file
lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file
이 4줄을 수정해서 넣고 재부팅 하니, 드디어 intel_gpu_top 그래프가 춤을 추기 시작했습니다. (희열!)

🚀 1일 차 결산
이제 든든한 Proxmox 기반 위에 11TB 저장소가 마련되었습니다. 단순 조립이 아니라, 가상화 환경에서 하드웨어 가속(GPU)을 뚫어주는 고난이도 엔지니어링까지 마쳤습니다.
내일은 이 위에 "구글 포토의 완벽한 대체재, Immich"를 본격적으로 설치하고, 수만 장의 아이 사진을 대용량으로 업로드하는 과정(CLI 툴 활용법)을 다뤄보겠습니다.
[다음 편 예고]
- Docker Compose 한 방으로 Immich 설치하기
- 웹 브라우저 업로드 실패 해결: Immich CLI의 위력
- 외부 접속 설정 (Cloudflare Tunnel vs 내부망)