본문 바로가기

Technical/Cloud, Virtualization, Containers

[Xen 가상화 2] ubuntu pv guest on Ubuntu 14.4 LTS, Xen 4.4.1 - 설치 및 설정 가이드


지난 포스팅에서 windows(hvm) guest 를 Ubuntu 14.4 dom0 에 설치하고 설정하는 과정을 다루어 보았다. 이번에는 동일한 host 환경에 pv(반가상화) guest 를 설치하는 과정을 정리해 보고, 주의할 사항이나 문제 해결 방법 등에 대해 기록하고자 한다.


Host 의 xen 환경에 대해서는 지닌 시간에 충분히 다루었으므로, 이번에는 pv guest 를 설치하고 다루는 중요한 체크포인트들에 대해 집중적으로 기록한다.


지난 포스팅의 HVM guest 설치 과정과 이번 포스팅에서 다룰 pv guest 설치의 차이점들을 짚어 보도록 하자(참고/지난 포스팅: [Xen 가상화 1] Windows 7 hvm guest on Ubuntu 14.4 LTS, Xen 4.4.1 - 설치 및 설정 가이드)


* HVM guest는 Host 의 각종 장치를 에뮬레이션하는 기능(가상화된 장치)를 직접 사용하기 때문에 설치 CD/DVD-rom 이나, 네트워크 설치 등 다양한 방법을 자연스럽게 써서, 설치 과정이 직관적이고 쉬울 뿐 아니라 VNC 를 통해서 그래피컬한 방식으로 진행 가능하다

* PV(paravirt) guest OS는 주로 linux 계열의 OS 들을 사용하며, HVM guesu OS로 사용되는 Windows / Open Solaris / FreeBSD  등은 pv guest 로는 사용이 곤란하다

* PV guest 설치 방법은 크게 두 가지로 나뉜다

 1. config 파일 설정 방식으로, image 파일을 loop device 로 마운트하여 완전 수작업으로 시스템 파일 복사/설치(guest install 과정이 없음)하고 vm을 구동

 2. virt-install 로 text 방식 또는 virt-manager 로 GUI 방식으로 설치(guest install 과정이 있음)

* PV guest 설치시에는 Host 의 ISO 파일이나 CD/DVD-rom 을 사용할 수 없다

virt-manager 에서 새로운 vm 추가시에 "로컬 CDROM/ISO" 를 통한 설치 진행 시 paravirt 는 선택이 불가



위의 마지막 줄의 제약사항은 config 파일 설정 방식이나 virt-install 을 통한 명령어 방식에서도 동일하므로, 지난 포스팅에서와 같이 iso 파일을 마운트해서 PV guest 를 설치해 보려는 시도는 의미가 없음에 주의하자.


1. 어떤 방법을 쓸 것인가? ... GUI로 쉽게 가자


위에서 언급한 config 파일 설정을 통한 완전 수작업 방식은, Host OS 나 guest OS의 종류에 따라 방법이 달라질 뿐 아니라, image 파일 내의 파티션 설정, vmlinuz/initrd 등의 부트로더/OS파일 복사, 패키지의 수작업/선별적 설치(SUSE는 zypper, Ubuntu 는 apt-get...이런 식. 각각의 옵션도 상이함) 등의 복잡한 과정을 밟아야 하므로 다소 난이도가 있는 까다로운 작업이 될 수 있다. 따라서 이번 포스팅에서는 virt-manager 를 통한 쉬운 GUI 방식을 선택해서 진행해 보려 한다.


* 지난 포스팅에서 virt-manager 설치는 이미 해 두었으므로 별도 준비 과정은 없다

* 우선 xen의 config 파일을 수정하고 restart 한다

$ su -

# vi /etc/xen/xend-config.sxp -> 아래 2개 항목을 찾아서 uncomment 하고 내용을 수정한다

(xend-http-server yes)

(xend-port            8000)

service xen restart


* (옵션 사항) visrh 명령으로 storage poo 을 미리 설정해 두면 설치 iso, guest image 저장 위치를 따로 지정할 수 있다

(/home/vmimage는 guest OS의 설치 이미지 파일이 생성될 위치, /home/vmos_images 는 iso 파일이 저장된 위치)

# virsh

virsh # pool-destroy default

virsh # pool-undefine default

virsh # pool-define-as --name default --type dir --target /home/vmimage

virsh # pool-autostart default

virsh # pool-build default

virsh # pool-start default

virsh # pool-destroy local

virsh # pool-undefine local

virsh # pool-define-as --name local-iso --type dir --target /home/vmos_images 

virsh # pool-autostart local-iso

virsh # pool-build local-iso

virsh # pool-start local-iso

virsh # quit


* virt-manager 를 실행하고 VM 생성을 위한 과정을 진행한다

# virt-manager


127.0.0.1(xen) 항목을 더블클릭하여 root 암호를 입력하여 로그인


툴바의 '새 가상머신 생성' 버튼을 클릭하고 머신 이름 지정 후 '네트워크 설치'를 선택하고 '앞으로' 클릭


URL 입력 부분에 네트워크 설치 URL을 입력하고 OS종류, 버전을 선택하고 '앞으로'


* Ubuntu 14.4(trusty) 를 위한 네트워크설치 URL은 다음 3개 중 하나를 선택하여 입력

http://kr.archive.ubuntu.com/ubuntu/dists/trusty/main/installer-amd64/

http://us.archive.ubuntu.com/ubuntu/dists/trusty/main/installer-amd64/

http://mirrors.kernel.org/ubuntu/dists/trusty/main/installer-amd64/


디스크 이미지의 크기를 기가바이트 단위로 지정하고 '앞으로'


'추가옵션' 클릭, Virt 종류는 xen(paravirt) 로 선택


항목별 변경 사항이 있으면 각각 수정한 후 '적용', 상단의 '설치시작' 을 선택하면 다음 단계로 진행


프로그레스 바가 있는 작은 팝업창이 뜬 후, 약간의 시간이 지나면 가상머신관리자 창에 새로운 vm 이 나타난다. 이 때 접속이 되지 않는 시커먼 그래픽 콘솔 창이 같이 뜨는데, 당황하지 않고 창을 닫아 버리자(paravirt guest이므로 지금은 그래픽 화면을 볼 수 없고, base system 설치가 완료된 이후에는 가상콘솔 화면으로 접속할 수 있다).


다다

virt-manager 구동 후 시간이 지났을 경우 root 로그인 창이 뜨기도 한다



* xl list 를 해 보면 방금 생성한 vm 이 기동되고 정상 작동중인 것을 확인 수 있다

* 이제부터는 터미널을 열어서 텍스트 방식으로 진행한다. console 로 접속하면 셋업 단계의 화면을 접하게 된다

# xl li

Name                                        ID   Mem VCPUs State Time(s)

Domain-0                                     0 10714     4     r-----    4124.2

ubuntu14-pv3                                 3  1024     1     -b----       2.2

# xl console 3


엔터를 입력하여 다음 단계로...


other>Asia> ... 국가를 선택하고 엔터


default locale 선택하고 엔터


hostname 입력하고 엔터



* 이후부터는 일반적인 ubuntu OS 설치 과정과 거의 유사하므로 중간 과정 생략


모든 설치 과정이 완료되면 vm은 자동으로 reboot 된다


virt-manager 의 툴바에서 '가상머신 콘솔' 버튼을 클릭하면 새로운 vm에 접속할 수 있다. xl console 을 통해 text 방식으로도 접속 가능(새로이 만들어진 vm의 ip는 192.168.25.29 로 자동 할당 되어 있다)


Host 의 터미널에서 vm 쪽으로 ping test 를 수행해 본다. 네트워크가 정상 작동 됨을 볼 수 있다.


2. vm 복제(vm cloning)


* 새로운 vm이 설치되고 정상 작동하는 데에 수 십분 또는 그 이상의 시간이 소요되는데, 기존의 관리 대상인 vm을 복제해서 사용하면 몇 초만에 새로운 vm을 생성하여 사용할 수 있다.


복제할 대상이 되는 vm을 종료한 후, virt-manager에서 우클릭, 복제를 수행하면 된다


복제 될 vm의 이름을 지정하면 저장소도 해당 이름으로 자동 복제된다


스토리지의 크기에 따라 수 초~수 분 내로 새로운 vm이 만들어 진다


새롭게 복제된 vm이 나타났다. 이후의 테스트 과정은 생략한다.


* 참고: (설정 파일 위치 관련)

 - virt-manager, virt-install 같은 tool이 관리하는 기본 설정 파일은 /etc/libvirt 내에 위치한다

 - 사용자 고유의 virt-manager에 대한 각종 vm 관련 설정 사항은 $USER/.gconf/apps/virt-manager 내에 위치한다(본 예시에서는 /root/.gconf/apps/virt-manager 가 될 것이다)



- Barracuda -