본문 바로가기
IT/Proxmox

XCP-ng 8.3 → Proxmox VE 9.1: 실무 엔지니어를 위한 VM 마이그레이션 가이드

by 수누다 2026. 1. 18.

XCP-ng 8.3 → Proxmox VE 9.1: 실무 엔지니어를 위한 VM 마이그레이션 가이드

안녕하세요, 13년 차 서버/스토리지 엔지니어이자 4남매의 아빠입니다.
최근 회사 내부망 가상화 서버를 마이그레이션 하면서 겪었던 삽질(?)과 노하우를 공유합니다. XCP-ng도 훌륭하지만, 관리 효율 때문에 Proxmox로 넘어가려는 분들께 이 글이 실질적인 도움이 되길 바랍니다.


가상화 플랫폼은 한 번 구축하면 수년간 운영되는 경우가 많습니다. 그만큼 플랫폼 변경은 단순한 이전 작업이 아니라, 의도적으로 장애 시나리오를 만들어 검증하는 작업에 가깝습니다.

이 글에서는 XCP-ng 8.3 환경에서 Proxmox VE 9.1로 개별 VM을 이전하는 절차를 실무 엔지니어 관점에서 단계별로 정리합니다.

왜 XCP-ng에서 Proxmox로 넘어가는가?

XCP-ng는 안정적이고 성숙한 Xen 계열 오픈소스 하이퍼바이저로, 기존 Citrix XenServer 자산을 재활용하기에 좋은 선택지입니다. 다만 최근 현업에서는 운영 비용, 관리 편의성, 생태계를 이유로 Proxmox VE로 이전하는 사례가 점점 늘고 있습니다.

1. 비용과 구성 측면

  • XCP-ng: 자체는 무료이지만, Xen Orchestra(XO)를 안정적으로 활용하려면 유료 플랜 또는 별도의 셀프 호스팅 구성이 필요합니다.
  • Proxmox VE: 웹 UI, 백업(vzdump), 스냅샷, 클러스터링 기능이 기본 내장되어 추가 상용 관리툴 의존성이 낮습니다.

2. 관리 편의성과 생태계

  • 단일 웹 UI에서 VM, LXC, 스토리지, 백업, 클러스터를 통합 관리할 수 있습니다.
  • CLI와 GUI의 균형이 좋아 운영·자동화 양쪽 모두에 적합합니다.
  • 문서, 포럼, 블로그 등 레퍼런스가 풍부해 장애 상황에서도 대응이 수월합니다.

⚠️ 마이그레이션 전 사전 준비

마이그레이션은 환경을 의도적으로 흔드는 작업입니다. 사전 준비가 부족하면 바로 서비스 장애로 이어질 수 있습니다.

1. 백업 전략 (가장 중요)

  • VM 단위 전체 백업은 필수입니다.
  • 스냅샷만 믿지 말고, 반드시 별도의 풀 백업을 확보합니다.
  • 가능하다면 NAS나 다른 하이퍼바이저 등 외부 스토리지에 1회 이상 백업을 권장합니다.

2. 대상 VM 정보 정리

  • OS 종류 (Linux / Windows)
  • BIOS / UEFI 여부 (★중요)
  • 디스크 구조 (LVM, ext4, xfs 등)
  • NIC 개수 및 MAC 주소

3. Proxmox VE 9.1 환경 준비

  • ISO 설치 완료 (Proxmox VE 9.1 기준)
  • 기본 네트워크 및 스토리지(local-lvm, ZFS, Ceph 등) 구성 완료
  • Tip: Proxmox는 qemu-kvm, qemu-img, virtio 스택을 기본 포함하므로 qcow2/raw 디스크를 바로 다룰 수 있습니다.

🔄 전체 마이그레이션 흐름

작업을 시작하기 전에 전체 흐름을 한 번에 이해하는 것이 중요합니다.

  1. [XCP-ng] VM 종료
  2. [XCP-ng] VDI 디스크를 VHD 또는 RAW로 Export
  3. [Shell] qemu-img로 qcow2 또는 RAW로 변환
  4. [Proxmox] 디스크 없는 VM 생성
  5. [Proxmox] 변환된 디스크를 Import 후 VM에 연결
  6. [VM] 부팅 / 드라이버 / 네트워크 트러블슈팅

Step 1. XCP-ng에서 디스크 추출

XCP-ng 8.3에서는 VM이 사용하는 VDI를 VHD 또는 RAW 파일로 export할 수 있습니다.

1) VM 종료

xe vm-shutdown name-label=VM_NAME

2) VM 디스크(VDI) 확인

xe vm-disk-list vm=VM_NAME

3) VDI Export

  • VHD 포맷으로 export
    xe vdi-export uuid=<VDI_UUID> filename=/root/vm_disk.vhd format=vhd
    


* **RAW 포맷으로 export**
```bash
xe vdi-export uuid=<VDI_UUID> filename=/root/vm_disk.raw

Note: Export 결과 파일이 가상 디스크 크기보다 작은 것은 Thin-provisioning으로 실제 사용 블록만 포함되기 때문이며 정상 동작입니다.

Step 2. qemu-img로 Proxmox 호환 포맷 변환

Proxmox는 qcow2raw 포맷을 모두 안정적으로 지원합니다.

  • 파일 기반 스토리지 → qcow2
  • ZFS, Ceph 같은 블록 스토리지 → raw 선호

VHD → qcow2 변환

qemu-img convert -p -f vpc -O qcow2 vm_disk.vhd vm_disk.qcow2

변환 결과 확인

qemu-img info vm_disk.qcow2
  • virtual size: 게스트 OS에서 보이는 논리 디스크 크기
  • disk size: 실제 호스트에서 사용 중인 물리 공간 (두 값이 다른 것은 정상입니다.)

Step 3. Proxmox에서 VM 골격 생성

이 단계에서는 디스크 없이 VM 껍데기만 생성합니다.

  1. 웹 UI에서 Create VM 선택
  2. Guest OS는 실제 OS에 가깝게 선택
  3. BIOS / UEFI, Machine type(q35/i440fx)는 원본과 최대한 동일하게 설정
  4. 디스크(Disk) 탭에서는 디스크를 삭제하거나 생성하지 않음
  5. SCSI Controller는 VirtIO SCSI 권장

(선택) CLI에서 SCSI 컨트롤러 지정

qm set <VMID> --scsihw virtio-scsi-pci

Step 4. 디스크 업로드 및 Import

1) 디스크 업로드

scp vm_disk.qcow2 root@proxmox:/var/lib/vz/images/

2) 디스크 Import

qm importdisk <VMID> vm_disk.qcow2 local-lvm
  • 스토리지 이름(local-lvm)은 환경에 맞게 변경하세요.

3) VM에 디스크 연결 및 부팅 순서 설정

qm set <VMID> --scsi0 local-lvm:vm-<VMID>-disk-0
qm set <VMID> --boot order=scsi0

Step 5. 부팅 및 네트워크 트러블슈팅 (★핵심)

1) Linux: dracut emergency mode

부팅 시 dracut 에러가 난다면 대부분 initramfs 문제입니다.

  • 주요 원인: hostonly initramfs, LVM 모듈 누락, root 디바이스 불일치
  • 해결 방법:
    echo 'hostonly="no"' > /etc/dracut.conf.d/migrate.conf
    dracut -f
    grub2-mkconfig -o /boot/grub2/grub.cfg
    


*필요 시 `/etc/fstab`, UUID 확인도 필수입니다.*

### 2) Linux: 네트워크 인터페이스 변경

XCP-ng → Proxmox 이동 시 `eth0` → `ens18`처럼 인터페이스 이름이 바뀌는 경우가 많습니다.

```bash
ip a

NetworkManager 사용 시 수정 예시:

nmcli device set ens18 managed yes
nmcli con add type ethernet ifname ens18 con-name ens18 \
  ipv4.addresses 192.168.0.10/24 ipv4.gateway 192.168.0.1 ipv4.method manual

3) Windows VM: BSOD (INACCESSIBLE_BOOT_DEVICE)

VirtIO 드라이버 없이 디스크 버스를 변경하면 발생합니다.

  1. VirtIO ISO를 CD-ROM으로 마운트
  2. 기존 IDE/SATA 부팅 유지 상태로 부팅
  3. Windows에서 VirtIO 드라이버 먼저 설치
  4. 재부팅 후 디스크 버스를 VirtIO로 전환

마무리

XCP-ng → Proxmox 마이그레이션은 특정 툴이 아니라 디스크 포맷, 부트 구조, initramfs, 드라이버 이해도가 성패를 가릅니다.

특히 Linux의 dracut 기반 initramfsWindows의 VirtIO 드라이버 준비 여부, 이 두 가지가 부팅 성공의 핵심 포인트입니다.

다음 글에서는 대량 VM 마이그레이션 전략, 다운타임 최소화 방법을 다뤄보겠습니다. 궁금한 점은 댓글로 남겨주세요!