가상화 환경에서 VM 마이그레이션·스냅샷·오버커밋 운영하기
VM Migration, Snapshot, Overcommitment의 동작 원리와 제약을 정리하고 가상화 환경에서 성능·복구·리소스 활용을 조정하는 방법을 다룬다.
2026-08-14 · 최초 발행 2026-01-16
하이퍼바이저가 만드는 가상 머신의 실행 조건
물리 서버 한 대에서 여러 가상 머신을 독립적으로 실행하면 하드웨어 활용률을 높일 수 있다. 다만 VM을 배치한 뒤에도 워크로드를 옮기고, 변경 전 상태를 남기고, 유휴 자원을 다시 배분하는 운영이 필요하다.
가상화 방식은 Guest OS와 하이퍼바이저가 만나는 지점에서 구분된다. 전가상화(Full Virtualization)는 Guest OS 수정 없이 동작하며 Intel VT-x, AMD-V 같은 하드웨어 가상화를 활용한다. VMware ESXi, KVM, Hyper-V가 여기에 속하고 성능 오버헤드는 5-10%다.
반가상화(Paravirtualization)는 Guest OS에 하이퍼바이저 인식 드라이버를 설치하고 Hypercall로 직접 통신한다. Xen PV와 virtio 드라이버가 대표적이며 성능 오버헤드는 2-5%다. 컨테이너(OS-level Virtualization)는 커널을 공유하면서 프로세스를 격리한다. Docker와 LXC가 이 방식에 속하며 오버헤드는 거의 없고 1% 미만이다.
하이퍼바이저는 설치 위치에 따라서도 성격이 달라진다. Type 1(Bare-Metal)은 하드웨어에 직접 설치되며 VMware ESXi, Xen, KVM처럼 높은 성능과 효율을 목표로 하는 환경에 쓰인다. Type 2(Hosted)는 기존 OS 위에서 실행되므로 VMware Workstation이나 VirtualBox처럼 개발·테스트 환경에 맞는다.
실행 중인 VM을 다른 호스트로 옮길 때
Live Migration은 실행 중인 VM을 다른 물리 서버로 이전하는 방식이다. 서비스 중단 없이 옮길 수 있으며 다운타임은 수백 ms 이내다. 하드웨어 유지보수, 부하 분산, 장애 회피가 주된 목적이다.
Pre-Copy 방식에서는 먼저 메모리 내용을 목적지 서버로 반복 복사한다. 그 사이 변경되는 Dirty Page를 추적해 다시 전송하고, 남은 변경량이 충분히 작아지면 VM을 잠시 중지한다. 이후 최종 메모리와 CPU 상태를 넘긴 뒤 목적지에서 VM을 재개한다.
Post-Copy는 VM을 먼저 목적지로 옮긴 뒤 필요한 메모리 페이지를 요청 시 전송한다. 다운타임은 짧지만 네트워크 의존성이 높다. Hybrid 방식은 Pre-Copy와 Post-Copy를 결합하며 VMware vMotion과 KVM Live Migration에서 사용된다.
마이그레이션 네트워크는 운영 트래픽과 분리하고 10GbE 이상을 권장한다. 대역폭 제한으로 운영 트래픽을 보호할 수 있으며, RDMA(Remote Direct Memory Access)도 활용할 수 있다. 전송 전에 LZ4 또는 Zstandard로 메모리를 압축하면 대역폭을 줄일 수 있지만 CPU 오버헤드와의 트레이드오프가 생긴다.
Storage Live Migration은 VM 디스크를 다른 스토리지로 옮기는 기능이다. Mirror Driver를 통해 실시간 동기화하며 SAN과 NAS 간 마이그레이션도 가능하다.
이전 가능 여부는 호스트 조건에 좌우된다. 소스와 목적지의 CPU 모델·기능은 호환되어야 하며, Storage Migration이 아닌 경우 NFS, iSCSI 등의 공유 스토리지가 필요하다. 네트워크는 동일 VLAN 또는 L2 연결성을 갖춰야 한다.
변경 전 상태를 남기는 스냅샷의 범위
VM Snapshot에는 VM 디스크 상태(VMDK, qcow2), 선택적인 메모리 상태, VM 설정 파일이 포함된다. 실행 중인 스냅샷에서는 메모리 상태도 함께 다룬다.
Copy-on-Write(COW)에서는 스냅샷 생성 시점의 디스크를 읽기 전용으로 두고, 이후 변경 내용은 Delta 디스크에 기록한다. 원본을 보존하면서 공간을 효율적으로 사용하는 구조다.
스냅샷은 Base Disk에서 Snapshot 1, Snapshot 2처럼 체인으로 이어질 수 있다. VMware에서는 최대 32개 체인을 권장하며, 체인이 길어질수록 I/O 성능은 저하된다.
OS 패치나 애플리케이션 업그레이드 전에 스냅샷을 만들면 문제가 생겼을 때 즉시 롤백할 수 있다. 테스트가 끝난 뒤에는 스냅샷을 삭제한다. 개발·테스트 환경에서는 초기 상태를 저장해 빠르게 초기화하고, Clone과 조합해 다수 환경을 구성할 수 있다. 침해 사고가 발생했을 때는 스냅샷을 포렌식 분석에 사용하고 깨끗한 상태로 복구할 수 있다.
스냅샷은 성능과 저장 공간을 계속 요구한다. 활성화 시 I/O 오버헤드는 10-30%이며, 오래 유지하면 Delta 파일이 비대해진다. 주기적인 Consolidate(병합), 스냅샷용 별도 공간, 모니터링과 자동 정리 정책이 필요하다.
스냅샷은 백업이 아니다. 같은 스토리지에 저장되므로 물리 장애가 발생하면 함께 손실될 수 있으며, 별도 백업 솔루션(Veeam, Commvault)이 필요하다.
물리 자원보다 많은 VM 자원을 배정하는 방법
Overcommitment는 물리 리소스보다 많은 가상 리소스를 할당하는 방식이다. 모든 VM이 동시에 최대 리소스를 쓰지 않는다는 가정 아래 하드웨어 활용률을 높인다.
CPU 오버커밋 비율은 워크로드에 따라 달라진다.
- 일반 워크로드: 4:1 ~ 8:1
- I/O 집약적 워크로드: 2:1 ~ 4:1
- CPU 집약적 워크로드: 1:1 ~ 2:1
CPU를 배분할 때 Fair Share는 같은 우선순위의 VM에 CPU를 균등 분배한다. Reservation은 최소 CPU를 보장하고, Limit은 최대 사용량을 제한한다. Shares는 자원 경합 시 상대적 우선순위를 정한다.
메모리가 부족해질 때는 Ballooning(vmmemctl), Memory Compression, Swapping 순으로 회수 기법을 사용한다. Ballooning은 Guest OS 안의 Balloon Driver가 메모리를 확보하고, Guest의 페이지 캐시와 버퍼 해제를 유도한다. Memory Compression은 사용 빈도가 낮은 페이지를 압축하며, 압축 해제가 디스크 I/O보다 빨라 Swap보다 빠르다. 다만 CPU 오버헤드는 존재한다.
Swapping은 메모리를 디스크로 페이징하는 방식이며 성능이 1000배 이상 느려질 수 있어 최후의 수단이다. Transparent Page Sharing(TPS)은 같은 내용의 메모리 페이지를 공유하며 여러 VM이 동일 OS를 사용할 때 효과적이다. Spectre/Meltdown 이후 보안 이슈로 기본 비활성화되어 있다.
권장 비율은 CPU 4:1, 물리 코어 16개에 vCPU 64개, 메모리 1.5:1, 물리 128GB에 vRAM 192GB다. 다만 실제 비율은 워크로드 특성에 맞춰 조정해야 한다.
운영 중에는 CPU Ready Time을 확인한다. 이는 VM이 CPU를 기다린 시간으로 5% 미만 유지를 목표로 한다. Memory Ballooning 활성화 빈도와 Swap 사용량도 함께 보고, Swap은 0 유지를 목표로 한다.
VM 사양과 I/O 경로를 조정하는 기준
필요 이상으로 vCPU를 할당하면 스케줄링 오버헤드가 생긴다. 다수 vCPU를 주는 Wide VM은 모든 vCPU를 동시에 스케줄링해야 하므로 NUMA 경계와 노드당 최대 vCPU를 고려해야 한다.
메모리는 과할당하면 낭비와 다른 VM의 리소스 부족으로 이어지고, 과소할당하면 스왑과 성능 저하를 부른다. 메모리 사용 추세를 모니터링한 뒤 할당량을 조정한다.
가상 디스크는 용도에 따라 고른다. Thick Provisioned Eager Zeroed는 공간을 즉시 할당해 최고 성능을 제공한다. Thick Provisioned Lazy Zeroed는 공간을 예약하면서 양호한 성능을 제공한다. Thin Provisioned는 공간 효율이 높지만 성능은 다소 낮다.
스토리지 I/O에는 Deadline 또는 CFQ 스케줄러를 선택하고, 멀티큐(Multi-Queue) 블록 레이어와 virtio-scsi 드라이버를 활용할 수 있다.
네트워크에서는 VMXNET3(VMware) 또는 virtio-net(KVM)을 사용한다. SR-IOV는 하드웨어 직접 접근을 제공하고, 다수 vNIC로 대역폭을 확장할 수 있다. MTU 9000의 점보 프레임(Jumbo Frame)은 대용량 데이터 전송 시 CPU 사용률을 낮춘다.
VM Migration은 동적 워크로드 관리에, Snapshot은 신속한 복구와 변경 관리에, Overcommitment는 리소스 활용 확대에 쓰인다. 이들은 각각 독립 기능이지만, CPU·메모리·스토리지·네트워크 상태와 모니터링 임계값을 함께 고려할 때 가상화 환경의 성능과 안정성에 맞게 운영할 수 있다.