본문 바로가기

PRODUCT/Virturalization

Xen, VM웨어, 하이퍼-V 가상머신을 KVM으로 옮기는 초간단 예제 ... virt-v2v 활용 예

virt-v2v라는 가볍게 쓸 수 있는 도구가 있습니다. 이를 어디에 쓰냐 하면 Xen, VM웨어, Hyper-V의 가상머신을 KVM으로 옮길 때 활용합니다. 흔한 말로 마이그레이션 툴입니다. 오늘은 간단히 OVA(Open Virtualization Format) 파일을 가져오는 초간단 마이그레이션 예제를 소개합니다. 몇 단계 안 되는 예이지만 이 방법을 사용하면 현재 사용 중인 가상화 인프라를 레드햇 가상화 환경이나 오픈 스택 환경으로 옮길 때 유용합니다. 물론 실제 운영 환경을 옮기려면 옵션을 좀 화려하게(?) 써야겠죠. 


예제 시나리오는 기존 하이퍼바이저에 있는 오리지널 가상머신을 OVA 표준 형식으로 전환하고, 이를 사용자가 자신의 환경에 맞게 가져오는 것입니다. 하이퍼바이저는 가상머신 이미지 파일을 풀(pool)에 저장합니다. 전용 풀은 가상머신을 논리적/물리적으로 분리하는 데 도움이 됩니다. 먼저 하이퍼바이저에 있는 풀을 확인해봅니다. 

# virsh pool-list Name State Autostart ------------------------------------------- 

default active yes


'Appliances'라는 이름으로 분리된 풀을 만들겠습니다. 다음과 같이 대상 디렉토리를 만들고, 풀의 이름을 지정하고, 풀을 시작한 다음에 자동으로 실행되게 합니다. 


# mkdir /var/lib/libvirt/Appliances
# virsh pool-define-as Appliances --type dir \ --target /var/lib/libvirt/Appliances # virsh pool-start Appliances # virsh pool-autostart Appliances

새로 만든 풀의 상태를 확인합니다. 

# virsh pool-list

Name State Autostart ------------------------------------------- Appliances active yes default active yes


이제 하이퍼바이저가 OVA 파일에 접근할 수 있도록 해보죠. 본 예제에서는 OVA 파일이 /root/third_party_appliance.ova에 있다고 가정합니다. 


# virt-v2v \
-i ova /root/third_party_appliance.ova \ -o libvirt -of qcow2 \ -os Appliances -n default

옵션 설명을 잠깐 해보죠. -i로 시작하는 첫 번째 옵션은 /root/third_party_appliance.ova에 있는 OVA 파일이 입력으로 쓰인다는 것입니다. -o로 시작하는 두 번째 옵션은 libvirt 가상머신을 qcow2 파일 형식으로 출력하란 것입니다. -os로 시작하는 세 번째 옵션은 Appliances 풀에 가상머신을 배치하라는 것입니다. -n으로 시작하는 네 번째 옵션은 기본 네트워크를 사용하도록 가상머신을 구성하라는 것입니다. 

위 작업은 가상머신의 크기와 하이퍼바이저의 속도 등에 따라 처리 시간이 차이 납니다. 처리 과정은 다음과 같이 보입니다. 

[ 0.0] Opening the source -i ova third_party_appliance.ova

[ 0.1] Creating an overlay to protect the source from being modified [ 0.1] Initializing the target -o libvirt -os Appliances [ 0.1] Opening the overlay [ 13.7] Inspecting the overlay [ 14.6] Checking for sufficient free disk space in the guest [ 14.6] Estimating space required on target for each disk [ 14.6] Converting Windows 7 Enterprise to run on KVM [ 15.0] Mapping filesystem data to avoid copying unused and blank areas [ 15.4] Closing the overlay [ 15.6] Checking if the guest needs BIOS or UEFI to boot [ 15.6] Assigning disks to buses [ 15.6] Copying disk 1/1 to /var/lib/libvirt/Appliances/third_party_appliance-sda (qcow2) (100.00/100%) [ 132.3] Creating output metadata Pool Appliances refreshed [ 132.5] Finishing off


임포트 작업이 끝나면 가상머신을 시작해 상태를 확인해 봅니다. 


# virsh start third_party_appliance Domain third_party_appliance started # virsh list --all Id Name State ---------------------------------------------------- 12 third_party_appliance running - cfme_demo shut off 
- Fedora27-test shut off

가상화 인프라 환경을 잘 꾸리는 것에 대한 실전 팁이 더 필요하다면 
락플레이스로 문의 바랍니다.