Proxmox ZFS 부팅 미러 구성, 망했다고? 해결해드립니다
요즘 홈랩을 구축하는 분들이 많아졌습니다
데이터센터급 안정성을 가정에서도 구현하고 싶은 욕구, 이해됩니다. 저도 Proxmox로 가상화 환경을 구축하면서 한 가지 고민이 있었는데요. "OS가 설치된 디스크가 망가지면 모든 VM이 날아가는 건 아닐까?" 이번 글에서는 제가 직접 Proxmox에 ZFS 미러 부팅 디스크를 구성한 경험을 공유해드립니다.
ZFS와 Proxmox 부팅 구성에 대한 이해
본격적인 과정을 설명하기 전에, ZFS의 특성에 대해 간단히 알아볼게요. ZFS(Zettabyte File System)는 고급 스토리지 관리 기능을 제공하는 파일 시스템으로, 데이터 무결성과 미러링을 지원합니다. Proxmox에서는 OS 설치 시 ZFS를 선택할 수 있는데, 이 경우 일반적으로 단일 디스크에 설치됩니다.
우리가 일상에서 사용하는 윈도우 PC와 달리, 서버 환경에서는 OS 디스크의 이중화가 중요한 요소가 됩니다.
직면한 문제: ZFS 미러를 부팅 가능하게 만들기
Proxmox에 ZFS로 OS를 설치한 후, 이를 미러링하려면 생각보다 많은 고민이 따릅니다. 예를 들면, "그냥 디스크를 ZFS 풀에 추가하면 되지 않을까?" 싶지만 그렇게 하면 부팅이 안 되는 문제가 발생합니다. 또는 "proxmox-boot-tool로 간단히 해결되겠지"라고 생각했다가 "has children" 에러를 만나게 되죠.
이런 문제들을 해결하기 위한 정확한 방법을 알아보겠습니다.
Proxmox ZFS 미러 + 부팅 가능 디스크 구성 방법
구성 방법은 명확하고 단계별로 진행해야 성공할 수 있습니다.
1) 현재 상황 확인하기
1# ZFS 풀 상태 확인
2zpool status
3# 디스크 및 파티션 확인
4lsblk
2) ZFS 미러에서 새 디스크 분리 (이미 연결된 경우)
1# 미러에서 디스크 분리
2zpool detach rpool sdd
3) 디스크 초기화 및 파티션 생성
1# 디스크 완전 초기화
2sgdisk --zap-all /dev/sdd
3
4# BIOS 부트 파티션 (1MB)
5sgdisk -n 1:1M:+1M -t 1:ef02 /dev/sdd
6
7# EFI 시스템 파티션 (512MB)
8sgdisk -n 2:2M:+512M -t 2:ef00 /dev/sdd
9
10# 나머지 공간을 ZFS용으로
11sgdisk -n 3:0:0 -t 3:bf01 /dev/sdd
4) EFI 파티션 포맷 및 부트 설정
1# EFI 파티션 FAT32로 포맷
2mkfs.vfat -F32 /dev/sdd2
3
4# 부트 설정 초기화 (EFI 파티션 지정)
5proxmox-boot-tool init /dev/sdd2
5) ZFS 미러 구성
1# 정확한 디바이스 이름 확인 후 미러 연결
2# 아래 명령의 nvme0n1p3 부분은 실제 디바이스 이름으로 대체
3zpool attach rpool nvme-eui.XXXX-part3 /dev/sdd3
🟢 장점
- 하드웨어 장애 시에도 서버 가동 유지 가능
- 데이터 무결성 보장과 동시에 부팅 이중화 실현
- 디스크 교체 없이 온라인 상태에서 설정 가능
🟡 취향
- 파티션 나누기가 필요해 초보자에겐 복잡할 수 있음
- BIOS vs UEFI 환경에 따라 설정 방법 차이 있음
🔴 단점
- 초기 설정 시부터 미러로 구성하는 것보다 복잡한 과정 필요
- 리실버링(데이터 동기화) 시간이 디스크 용량에 따라 오래 걸릴 수 있음
트러블슈팅 팁
제가 직접 겪었던 몇 가지 오류와 해결 방법을 공유해드립니다.
"block device has children" 오류
이 오류는 디스크에 이미 파티션이 있거나 ZFS 풀의 일부일 때 발생합니다.
해결책: zpool detach
로 먼저 ZFS 풀에서 제거한 후 작업해야 합니다.
"cannot attach to: no such device in pool" 오류
실제 ZFS 풀의 디바이스 이름과 명령에 사용한 이름이 다를 때 발생합니다.
해결책: zpool status
로 정확한 디바이스 이름(예: nvme-eui.XXXX-part3)을 확인해야 합니다.
proxmox-boot-tool 관련 문제
proxmox-boot-tool은 디스크 전체가 아닌 특정 파티션에 대해 실행해야 하는 경우가 있습니다.
해결책: proxmox-boot-tool init /dev/sdd2
처럼 EFI 파티션을 직접 지정합니다.
실제 경험 공유
이전에는 OS 디스크 이중화 없이 운영했는데, 실제로 SSD 장애를 경험한 후 이 설정의 중요성을 깨달았습니다. 특히 단일 디스크 구성과 비교해서 마음의 평화를 얻을 수 있다는 점이 가장 큰 장점이었습니다. NAS나 홈서버를 24/7 운영하시는 분들이라면 반드시 고려해보셨으면 합니다.
마치며
서버 관리는 때로는 어렵고 복잡하게 느껴질 수 있습니다. 하지만 복잡한 과정을 한 번 경험하고 나면, 시스템에 대한 이해도가 크게 향상됩니다. 이 글이 Proxmox에서 ZFS 미러 부팅 디스크를 구성하려는 분들에게 조금이나마 도움이 되었길 바랍니다. 🖥️
다음에는 Proxmox 클러스터 구성과 Ceph 스토리지 설정에 대해 다뤄보겠습니다. 궁금한 점은 댓글로 남겨주세요!