본문 바로가기
IT/Proxmox

XCP-ng → Proxmox 마이그레이션 3편: 성능을 200% 끌어올리는 필수 최적화 가이드

by 수누다 2026. 1. 21.


안녕하세요, 13년차 엔지니어입니다.
지난 1, 2편을 통해 개별 VM과 대량의 VM을 Proxmox로 무사히 옮기셨나요?

정상 부팅 화면을 보셨다면 일단 한숨 돌리셔도 됩니다. 하지만 엔지니어의 관점에서 냉정하게 말하면 **"부팅 성공 = 마이그레이션 완료"는 아닙니다.**

막 이사를 마친 VM은 **'최소한의 호환성 모드'**로 돌아가고 있기 때문입니다.
* **전원 제어:** 정상 종료(Shutdown)가 안 되고 강제로 꺼짐
* **디스크/네트워크:** 구형 IDE, E1000 장치로 동작하여 성능 저하
* **CPU:** 호스트의 고성능 명령어(AES-NI 등)를 사용하지 못함

이번 글에서는 단순히 "켜지는 VM"을 넘어, **실무 운영 환경에서 제 성능을 내고 안정적으로 돌아가는 VM**으로 만드는 필수 최적화 과정을 다룹니다.

---

## 1. 필수 작업 ①: QEMU Guest Agent 설치

QEMU Guest Agent는 단순한 부가 옵션이 아니라, **Proxmox 운영의 필수 요소**입니다.
이것이 설치되지 않은 VM은 Proxmox 입장에서 **'블랙박스'**와 같습니다. 내부 IP가 무엇인지, OS가 살았는지 죽었는지 알 방법이 없죠.

**[설치하지 않았을 때의 문제점]**
1.  **Shutdown 불가:** Proxmox 웹에서 'Shutdown'을 눌러도 반응이 없고, 결국 'Stop(전원 뽑기)'을 해야 합니다.
2.  **백업 정합성 깨짐:** 백업 시 파일시스템을 일시 정지(Freeze)하지 못해 데이터가 깨질 수 있습니다.
3.  **정보 부족:** VM의 IP 주소나 리소스 사용량을 하이퍼바이저가 알 수 없습니다.

### (1) Proxmox 설정 활성화
먼저 하이퍼바이저에게 "이 VM은 에이전트를 쓸 거야"라고 알려줘야 합니다.

* **웹 UI:** VM 선택 → **Options** → **QEMU Guest Agent** → `Enabled` 체크
* **CLI:**
    ```bash
    qm set <VMID> --agent enabled=1
    ```

### (2) Linux VM 설치 방법
설정을 켰다면 VM 내부에서도 데몬을 설치해야 합니다.

**Debian / Ubuntu 계열**
```bash
apt update && apt install -y qemu-guest-agent
systemctl enable --now qemu-guest-agent

RHEL / CentOS / Rocky 계열
dnf install -y qemu-guest-agent
systemctl enable --now qemu-guest-agent

(3) Windows VM 설치 방법
Windows는 별도의 드라이버 ISO가 필요합니다.
* Fedora VirtIO Driver ISO 다운로드 후 Proxmox ISO 스토리지에 업로드.
* VM의 CD-ROM에 해당 ISO 마운트.
* Windows 내 탐색기에서 CD 드라이브 진입 → guest-agent 폴더 → qemu-ga-x86_64.msi 설치.
* 재부팅.
> Check: 설치 후 Proxmox VM 요약(Summary) 화면의 'IPs' 항목에 내부 IP가 뜨면 성공입니다.
>
2. 필수 작업 ②: VirtIO 드라이버 전환 (성능 핵심)
XCP-ng에서 넘어온 VM은 호환성을 위해 **IDE(디스크)**나 **E1000(네트워크)**으로 설정된 경우가 많습니다. 이를 가상화 전용 고성능 드라이버인 VirtIO로 바꿔야 합니다.
"체감 성능 차이가 2배 이상 날 수도 있습니다."
(1) 디스크 컨트롤러 최적화
* 경로: VM → Hardware → SCSI Controller
* 추천 설정: VirtIO SCSI single
   * Tip: single 모드를 써야 디스크별 IO Thread 설정이 가능합니다.
* 디스크 세부 설정:
   * Cache: Write back (성능 최상, 단 전원 장애 시 데이터 손실 위험 있음) 또는 Default (No cache) (ZFS 사용 시 추천)
   * Discard: On (SSD 공간 회수를 위한 TRIM 활성화)
   * IO Thread: On (멀티코어 활용)
(2) 네트워크 인터페이스 전환
* 경로: VM → Hardware → Network Device
* 설정: Model을 VirtIO (paravirtualized)로 변경
⚠️ [중요] Windows VM 작업 시 주의사항
리눅스는 대부분 커널에 드라이버가 내장되어 있어 바로 바꿔도 되지만, Windows는 순서가 틀리면 부팅이 안 됩니다 (블루스크린).
* [선행] VirtIO ISO를 넣고, 장치 관리자에서 드라이버를 먼저 수동으로 잡아주거나 virtio-win-gt-x64.exe 등을 통해 드라이버를 미리 설치해야 합니다.
* 가장 안전한 방법은 **"임시로 VirtIO 디스크를 1GB 추가"**해서 드라이버를 잡은 뒤, 메인 디스크를 VirtIO로 바꾸는 것입니다.
* 드라이버 없이 IDE → VirtIO SCSI로 바꾸면 INACCESSIBLE_BOOT_DEVICE 오류가 발생합니다.
3. 필수 작업 ③: CPU Type 설정 (Host Passthrough)
Proxmox VM을 생성하면 기본 CPU Type이 kvm64로 잡힙니다.
이는 "어떤 하드웨어로 이사가도 돌아가게 해줄게"라는 호환성 모드인데, 치명적인 단점이 있습니다. 물리 CPU의 고성능 명령어셋(AES-NI, AVX 등)을 VM이 쓰지 못하게 막아버립니다.
권장 설정: 'Host'
* 경로: VM → Hardware → Processors → Type
* 설정: kvm64 → host 로 변경
[변경 효과]
* SSL/VPN 속도 향상: AES-NI 명령어를 사용하여 암호화 성능이 비약적으로 상승합니다.
* 연산 성능: 호스트 CPU의 모든 기능을 그대로 가져다 씁니다.
> 주의: 클러스터 내에 서로 다른 세대의 CPU(예: 인텔 10세대와 13세대 혼용)가 섞여 있다면, 라이브 마이그레이션을 위해 host 대신 공통 지원 모델(예: Skylake)을 선택해야 할 수도 있습니다.
>
4. 마무리: 구축보다 중요한 것은 '운영'
마이그레이션은 "이삿짐을 옮기는 것"까지가 아니라, **"가구 배치를 끝내고 편안하게 사는 것"**까지입니다.
* Guest Agent로 제어권을 확보하고,
* VirtIO로 입출력 병목을 뚫어주고,
* CPU Host 설정으로 두뇌를 100% 활용하게 해주세요.
이 3가지만 챙겨도 여러분의 Proxmox 환경은 상용 솔루션 부럽지 않은 퍼포먼스를 보여줄 겁니다.
다음 편에서는 "마이그레이션 후 발생할 수 있는 실제 장애 유형과 트러블슈팅(Troubleshooting)" 사례를 다뤄보겠습니다.