Proxmox VE Series
오픈소스 가상화 플랫폼 Proxmox VE — KVM/QEMU 아키텍처 이론부터 클러스터 운영, 자동화까지
🎯 시리즈 목적
왜 Proxmox인가?
2023년 Broadcom의 VMware 인수 이후, VMware 라이선스 정책이 크게 바뀌었음.
- 영구 라이선스 → 구독 전용 전환
- ESXi Free 라이선스 폐지, 소규모 번들(Essentials 등) 폐지
- 가격 상승으로 중소 규모 환경에서 대안 검토 증가
Proxmox VE는 이 흐름에서 가장 주목받는 오픈소스 대안임.
| 비교 | VMware vSphere | Proxmox VE |
|---|---|---|
| 라이선스 | 구독 (고가) | AGPL (무료), 유료 구독은 선택 |
| 하이퍼바이저 | ESXi (독자) | KVM (Linux 커널 내장) |
| 컨테이너 | 없음 (별도 제품) | LXC 기본 내장 |
| 관리 UI | vCenter (별도 라이선스) | 웹 UI 기본 포함 |
| API/자동화 | PowerCLI, REST API | REST API, Terraform, Ansible |
| 스토리지 | VMFS, vSAN | LVM, ZFS, Ceph, NFS, iSCSI |
| 클러스터/HA | vSphere HA/DRS | Corosync + HA Manager |
| 백업 | 별도 제품 (Veeam 등) | PBS(Proxmox Backup Server) 무료 |
이 시리즈의 목표
- KVM/QEMU 아키텍처와 Proxmox 내부 동작 원리 이해
- CPU, 메모리, 네트워크, 스토리지의 가상화 이론과 설계 기준 학습
- 클러스터, HA, 백업의 동작 원리와 설계 패턴 파악
- Terraform/Ansible 연동으로 IaC 기반 가상화 관리
- VMware vSphere와의 아키텍처 비교를 통한 기술 시야 확보
누구를 위한 시리즈인가
- 가상화 기술의 내부 동작 원리를 깊이 이해하려는 엔지니어
- VMware 환경에서 Proxmox로 전환을 검토하는 인프라 엔지니어
- KVM/QEMU 기반 가상화를 체계적으로 학습하려는 학습자
- 홈랩/개발 환경에서 Proxmox를 활용하려는 엔지니어
📐 시리즈 구성 철학
이 시리즈는 “아키텍처 이해 → 리소스 계층별 심화 → 운영/고급 주제” 순서를 따름.
flowchart TD subgraph Phase1["Phase 1: 기초"] P1["#1 Overview"] P2["#2 KVM & QEMU Architecture"] P3["#3 Management Architecture"] end subgraph Phase2["Phase 2: 리소스 계층 심화"] P4["#4 Compute (CPU, Memory, VM & LXC)"] P5["#5 Network"] P6["#6 Storage"] end subgraph Phase3["Phase 3: 가용성과 운영"] P7["#7 Cluster & HA"] P8["#8 Backup & DR"] P9["#9 Automation & API"] end Phase1 --> Phase2 --> Phase3
Phase 1 → 2 → 3 순서를 따르는 이유:
| Phase | 이유 |
|---|---|
| 1. 기초 | KVM/QEMU의 동작 원리를 이해해야 이후 리소스 관리의 맥락이 보임. 관리 아키텍처(API, pmxcfs)는 모든 작업의 기반. |
| 2. 리소스 심화 | CPU/메모리 → 네트워크 → 스토리지 순서로 가상화 계층을 깊이 학습. 각 리소스의 이론과 설계 기준을 다룸. |
| 3. 운영 | 리소스 이해를 바탕으로 클러스터/HA/백업/자동화를 다룸. 이론적 기반 위에 운영 설계를 세우는 구조. |
💡 이 순서는 VMware vSphere Series와 대칭 구조를 이루어, 양쪽을 교차 학습하며 비교할 수 있도록 설계됨.
📚 시리즈 목차
| # | 제목 | 설명 | Phase | 상태 |
|---|---|---|---|---|
| 1 | Proxmox VE Overview | 아키텍처, KVM/LXC, VMware 비교, 라이선스 | 기초 | ✅ |
| 2 | KVM & QEMU Architecture | KVM 내부 동작, QEMU 장치 모델, VirtIO, PCI Passthrough | 기초 | ✅ |
| 3 | Proxmox Management Architecture | API, CLI, 웹 UI, 인증, RBAC, pmxcfs, 태스크 시스템 | 기초 | ✅ |
| 4 | Compute — CPU, Memory, VM & LXC | CPU 스케줄링, NUMA, Ballooning, KSM, KVM vs LXC | 리소스 | ✅ |
| 5 | Network Configuration | Linux Bridge, VLAN, Bonding, OVS, SDN | 리소스 | ✅ |
| 6 | Storage Configuration | LVM, ZFS, NFS, iSCSI, Ceph, 스토리지 정책 | 리소스 | ✅ |
| 7 | Cluster & HA | Corosync, 쿼럼, HA Manager, 페일오버, 펜싱 | 운영 | ✅ |
| 8 | Backup & Restore | vzdump, PBS, 3-2-1 규칙, 재해 복구 | 운영 | ✅ |
| 9 | Automation & API | REST API, Terraform, Ansible, Cloud-Init | 운영 | ✅ |
📋 각 글의 상세 목차
#1 Overview ✅
1. Proxmox VE란 (Debian + KVM + LXC + 웹 UI + API)
2. 핵심 컴포넌트 (KVM/QEMU, LXC, 웹 UI, REST API, 클러스터/HA)
3. 시스템 요구사항, 노드 수별 구성
4. 하이퍼바이저 비교 (VMware, Hyper-V, oVirt)
5. 라이선스 모델 (AGPL, 유료 구독 티어)
6. 강점과 한계
7. 도입 판단 기준
8. VMware → Proxmox 용어 매핑
9. 버전 히스토리
→ VMware 대응: #1 Overview
#2 KVM & QEMU Architecture ✅
1. KVM 개요 — Linux 커널 모듈, Type 1 vs Type 2 논쟁
2. KVM 내부 동작
- CPU 가상화 (VT-x, VMX Root/Non-Root, VMCS, VM Entry/Exit)
- 메모리 가상화 (EPT/NPT, 2단계 주소 변환, VPID)
- 인터럽트 가상화 (APICv/AVIC, Posted Interrupts)
3. QEMU의 역할
- KVM과 QEMU의 분업 (CPU/메모리 vs 장치 에뮬레이션)
- VM 프로세스 구조 (QEMU = Linux 프로세스)
- QEMU 스레드 모델 (vCPU 스레드, 메인 스레드, I/O 스레드)
4. 머신 타입과 장치 모델 (i440fx vs q35, 디스크/네트워크 컨트롤러)
5. VirtIO 준가상화
- Virtqueue 구조 (공유 메모리 링 버퍼)
- vhost — 커널 레벨 I/O 가속
- VirtIO 장치 목록
6. 디스크 이미지 포맷 (QCOW2 vs RAW, QCOW2 내부 구조)
7. PCI Passthrough와 IOMMU
8. QEMU Guest Agent
9. ESXi VMkernel과의 아키텍처 비교
→ VMware 대응: #2 ESXi Architecture (미작성)
#3 Management Architecture ✅
1. 관리 레이어 개요 — API 중심 아키텍처
- pveproxy, pvedaemon, pvestatd, pve-ha-manager
- 요청 처리 흐름 (브라우저 → pveproxy → pvedaemon → qm/pct)
2. API 구조
- REST API 경로 체계 (/cluster, /nodes, /access, /storage)
- 인증 방식 (Ticket vs API Token)
- CLI 도구 (pvesh, qm, pct, pvecm, pvesm)
3. 인증과 권한
- 인증 Realm (PAM, PVE, LDAP, AD, OpenID)
- RBAC (경로 + 주체 + 역할, 권한 상속)
- 2FA (TOTP, WebAuthn)
4. 클러스터 파일시스템 (pmxcfs)
- /etc/pve/ 구조, SQLite + Corosync 동기화
- Corosync과의 관계 (멤버십, 메시징, 쿼럼)
5. 태스크 시스템 (UPID, 태스크 로그)
6. vCenter와의 아키텍처 비교 (중앙 집중 vs 분산)
→ VMware 대응: #3 vCenter & 관리 (미작성)
#4 Compute — CPU, Memory, VM & LXC ✅
1. CPU 가상화와 스케줄링
- vCPU와 물리 CPU 관계 (CFS 스케줄링)
- CPU 토폴로지 (Sockets × Cores), CPU 타입 (host, x86-64-v2 등)
- CPU Pinning(affinity), CPU 오버커밋
2. NUMA (Non-Uniform Memory Access)
- NUMA 토폴로지, 로컬/리모트 메모리 지연 차이
- Proxmox NUMA 설정, 모범 사례
3. 메모리 관리
- Memory Ballooning (동적 조절)
- KSM (Kernel Same-page Merging)
- Huge Pages (2MB, 1GB)
- 메모리 오버커밋 전략
4. 리소스 제어 — cgroups v2 (cpu.weight, memory.max, io.max)
5. KVM VM vs LXC 비교
- 아키텍처 차이 (하드웨어 vs OS 가상화)
- Namespace, cgroups 격리
- Privileged vs Unprivileged LXC
- 워크로드별 선택 기준
6. VMware Compute와의 비교 (CFS vs VMkernel Scheduler, KSM vs TPS)
→ VMware 대응: #4 Compute (미작성)
#5 Network
1. Proxmox 네트워크 기초
- /etc/network/interfaces 구조
- 물리 NIC → Linux Bridge → VM/CT 연결 흐름
- VMkernel 포트와의 개념 대응 (관리, 마이그레이션, 스토리지)
2. Linux Bridge
- 동작 원리 (MAC 학습, 프레임 포워딩)
- Bridge + VLAN 조합 패턴
- VLAN-aware Bridge vs 전통적 Bridge
3. VLAN
- 802.1Q 태깅
- 트렁크 포트, 액세스 포트
- Proxmox에서 VLAN 구성 방법 (Bridge 수준, VM 수준)
4. NIC Bonding (Link Aggregation)
- 모드별 특성 (balance-rr, active-backup, 802.3ad LACP, balance-alb)
- 이중화 vs 대역폭 확장
- Bonding + Bridge + VLAN 조합
5. Open vSwitch (OVS)
- Linux Bridge와의 차이 (프로그래밍 가능, OpenFlow)
- OVS를 선택해야 하는 경우
6. SDN (Software Defined Networking)
- Proxmox SDN 아키텍처 (Zone, VNet, Subnet)
- Simple Zone vs VXLAN/EVPN Zone
- NSX와의 기능 격차
7. 방화벽
- Proxmox 방화벽 구조 (Datacenter → Host → VM/CT 계층)
- iptables/nftables 기반
- Security Group
8. VMware 네트워크와의 비교
- Linux Bridge vs vSwitch
- VLAN-aware Bridge vs dvSwitch
- Proxmox SDN vs NSX
- 관리 트래픽 분리 방식 차이
→ VMware 대응: #5 Network (미작성)
#6 Storage
1. Proxmox 스토리지 아키텍처
- Storage Plugin 구조 — 동일 인터페이스로 다양한 백엔드 관리
- Content Type (images, rootdir, iso, vztmpl, backup, snippets)
- pvesm CLI
2. 로컬 스토리지
- Directory (dir) — 파일 기반, QCOW2 사용
- LVM — 블록 기반, RAW 전용, Thin Provisioning(LVM-thin)
- ZFS — CoW, 스냅샷, 압축, 중복 제거, 자가 복구
- ZFS 풀 구성 (mirror, raidz1/2/3)
- ARC 캐시와 메모리 요구사항
- ZFS Send/Receive — 원격 복제
3. 네트워크 스토리지
- NFS — 파일 기반, 간단, 성능 제한
- iSCSI — 블록 기반, LUN 매핑
- Ceph (RBD) — 분산 블록 스토리지
- Ceph 아키텍처 (MON, OSD, MDS, CRUSH Map)
- Proxmox 내장 Ceph vs 외부 Ceph
- CephFS — 분산 파일시스템
- GlusterFS — 분산 파일시스템 (비교용)
4. 스토리지 선택 기준
- 환경별 추천 (단일 노드, 클러스터, 대규모)
- 성능 특성 비교 (IOPS, 지연, 순차/랜덤)
- 스냅샷/씬 프로비저닝 지원 여부
5. 디스크 I/O 경로
- VM: QEMU → VirtIO → 스토리지 백엔드 → 물리 디스크
- LXC: 직접 파일시스템 접근
- iothread, io_uring 최적화
6. VMware 스토리지와의 비교
- VMFS vs LVM/ZFS
- vSAN vs Ceph — 아키텍처, 라이선스, 기능
- VMDK vs QCOW2/RAW
- SPBM(정책 기반) vs Proxmox Plugin 모델
- VAAI vs Linux I/O 스택
→ VMware 대응: #6 Storage (미작성)
#7 Cluster & HA
1. 클러스터 아키텍처
- Corosync — 멤버십, 메시징, 쿼럼 프로토콜
- Totem 프로토콜 (링 기반 통신)
- pmxcfs 연동 — 설정 동기화
2. 쿼럼(Quorum)
- 쿼럼 개념 — 과반수 투표, Split-brain 방지
- 노드 수별 장애 허용 (3노드=1대, 5노드=2대)
- QDevice — 2노드 클러스터에서 외부 투표 노드
- 쿼럼 상실 시 동작 (읽기 전용, 관리 불가)
3. HA Manager
- CRM(Cluster Resource Manager) + LRM(Local Resource Manager)
- HA 리소스 등록 및 상태 머신
- 페일오버 동작 순서 (장애 감지 → 펜싱 → VM 재시작)
- 마이그레이션 정책 (HA 그룹, 우선순위)
4. 펜싱(Fencing)
- 왜 펜싱이 필요한가 — Split-brain 시 데이터 보호
- 자체 펜싱 (Watchdog 기반)
- 외부 펜싱 (IPMI, iLO, DRAC)
5. 라이브 마이그레이션
- 온라인 마이그레이션 동작 (Pre-copy, 수렴 조건)
- 오프라인 마이그레이션
- 스토리지 마이그레이션 (로컬 → 로컬)
- 마이그레이션 네트워크 분리
6. VMware HA/DRS/FT와의 비교
- Corosync HA vs vSphere HA (Master/Slave vs Agent 기반)
- DRS 부재 — 수동 밸런싱 또는 외부 스크립트
- FT 부재 — 앱 레벨 이중화로 대체
- 마이그레이션 비교 (기능, 제약, 성능)
→ VMware 대응: #7 HA, DRS, FT (미작성)
#8 Backup & DR
1. 백업 아키텍처
- vzdump — Proxmox 내장 백업 도구
- 백업 모드 3가지: Stop(정지) / Suspend(일시중단) / Snapshot(스냅샷)
- 각 모드의 동작 원리, 데이터 일관성, 다운타임 차이
2. 백업 저장소와 포맷
- 백업 파일 포맷 (.vma, .tar, .zst)
- 압축 옵션 (none, lzo, gzip, zstd)
- 로컬/NFS/PBS 저장소
3. Proxmox Backup Server (PBS)
- PBS 아키텍처 — 전용 백업 서버
- 증분 백업 (Changed Block Tracking)
- 서버 사이드 중복 제거 (Deduplication)
- 암호화 (클라이언트 사이드)
- 무결성 검증 (Verify 작업)
- GC (Garbage Collection)
4. 백업 전략
- 3-2-1 규칙 (3카피, 2매체, 1오프사이트)
- 백업 스케줄링 (일별, 주별, 보존 정책)
- 백업 작업 모니터링
5. 복원
- VM/CT 전체 복원
- 파일 레벨 복원 (PBS)
- 다른 노드/클러스터로 복원
6. 재해 복구(DR)
- PBS 원격 동기화 (Datastore Sync)
- Ceph 미러링
- ZFS Send/Receive 기반 복제
- DR 시나리오 설계 패턴
7. VMware 백업과의 비교
- vzdump vs VMware 스냅샷 기반 백업
- PBS vs Veeam (아키텍처, 라이선스 차이)
- DR: PBS Sync vs VMware SRM
- Changed Block Tracking 비교
→ VMware 대응: 없음 (VMware 8은 보안 주제. 백업은 7이나 별도 주제)
#9 Automation & API
1. Proxmox REST API
- API 구조 (JSON 기반, /api2/json/)
- 인증 (Ticket, API Token)
- pvesh — CLI에서 API 직접 호출
- 주요 API 엔드포인트 예시
2. Terraform
- bpg/proxmox Provider 아키텍처
- VM 프로비저닝 예시 (리소스 정의, Cloud-Init 연동)
- LXC 프로비저닝
- 상태 관리와 Import
3. Ansible
- community.general.proxmox 모듈
- VM/CT 생성, 설정 변경, 상태 관리
- Proxmox 호스트 자체의 설정 자동화
4. Cloud-Init
- Cloud-Init이란 — VM 초기 설정 자동화 표준
- Proxmox에서 Cloud-Init 템플릿 생성
- 사용자, SSH 키, 네트워크, 패키지 설정
5. 통합 워크플로우
- Terraform(인프라) + Cloud-Init(OS 초기화) + Ansible(설정 관리)
- GitOps 패턴 적용
6. VMware 자동화와의 비교
- pvesh vs PowerCLI
- bpg/proxmox vs hashicorp/vsphere Terraform Provider
- community.general.proxmox vs vmware.vmware Ansible 컬렉션
- Cloud-Init vs VMware Customization Spec
- Content Library vs pveam
→ VMware 대응: #9 자동화 & 에코시스템 (미작성)
🔗 선행 학습
- Hypervisor Virtualization — Type 1/2 하이퍼바이저, VM 개념
- Container Virtualization — 컨테이너 vs VM
- Linux Kernel Overview — KVM이 커널 모듈인 이유
🔗 관련 문서
- VMware vSphere Series — 교차 비교용 VMware 시리즈
- Vagrant 3-Tier Practice — VirtualBox 기반 실습 → Proxmox 환경으로 확장 가능
- Ansible Overview — #9 Automation에서 활용
- Docker 시리즈 — LXC와 Docker 비교 시 참고
- SI Infra Lifecycle — 시리즈 구성 순서의 근거