R&D/Hypervisor

CentOS 6.3 에서 Xen Build

sunshout 2013. 4. 9. 10:49

o  CentOS 6.3에서 Xen Hypervisor 빌드

CentOS 6.3 x86_64 버전을 minimal 로 설치함

 

¡ Xen 소스 기반 빌드

빌드 툴 설치

#(CentOS5) yum groupinstall "Development Libraries"    -> CentOS6에서는 "Additional Development" 변경

yum groupinstall "Additional Development"

yum groupinstall "Development Tools"

yum install transfig wget tar less texi2html libaio-devel dev86 glibc-devel e2fsprogs-devel gitk mkinitrd iasl xz-devel bzip2-devel

yum install pciutils-libs pciutils-devel SDL-devel libX11-devel gtk2-devel bridge-utils PyXML qemu-common qemu-img mercurial texinfo

yum install libidn-devel yajl yajl-devel ocaml ocaml-findlib ocaml-findlib-devel python-devel uuid-devel libuuid-devel openssl-devel

yum install glibc-devel.i686

 

¡ Xen 소스 다운로드

git clone git://xenbits.xen.org/xen.git

<!--[if !supportTextWrap]-->
<!--[endif]-->

 

¡ 소스 컴파일

./configure --libdir=/usr/lib64

make dist

make install

 

설치 후 /boot 디렉토리 변화

/boot 디렉토리에 xen.gz 파일이 생성된 것을 확인 가능, xen.gz Hypervisor 커널이다.

 

[root@openxen xen]# ls /boot

config-2.6.32-279.el6.x86_64         symvers-2.6.32-279.el6.x86_64.gz  xen-4.gz

efi                                  System.map-2.6.32-279.el6.x86_64  xen.gz

grub                                 vmlinuz-2.6.32-279.el6.x86_64     xenpolicy.24

initramfs-2.6.32-279.el6.x86_64.img  xen-4.3.gz                        xen-syms-4.3-unstable

lost+found                           xen-4.3-unstable.gz

 

o  Dom0 설치

 

Hypervisor 설치가 완료되면 이제 Domain 0를 설치해야 한다.

쉬운 방법은 dom0 커널을 패키지로 설치 후, 향후 필요시 커널을 다시 컴파일 하는 것이다.

 

yum install http://au1.mirror.crc.id.au/repo/el6/x86_64/kernel-xen-release-6-4.noarch.rpm

yum install kernel-xen

 

 

다음과 같은 두개의 패키지 (kernel-xen, kernel-xen-fireware)가 설치된다.

===========================================================================================

 Package                           Arch                 Version                         Repository                Size

==========================================================================================

Installing:

 kernel-xen                        x86_64               3.8.6-1.el6xen                  kernel-xen                23 M

Installing for dependencies:

 kernel-xen-firmware               x86_64               3.8.6-1.el6xen                  kernel-xen               995 k

 

Transaction Summary

=========================================================================================

Install       2 Package(s)

설치가 완료 되면 /boot 디렉토리에 새로운 dom0 커널이 존재함을 확인한다.

 . vmlinuz-3.8.x 가 설치되어 있음을 확인할 수 있다. 원래 CentOS 6.3 커널은 vmlinuz-2.6.x

[root@openxen xen]# ls /boot

config-2.6.32-279.el6.x86_64         symvers-2.6.32-279.el6.x86_64.gz  xen-4.3-unstable.gz

config-3.8.6-1.el6xen.x86_64         symvers-3.8.6-1.el6xen.x86_64.gz  xen-4.gz

efi                                  System.map-2.6.32-279.el6.x86_64  xen.gz

grub                                 System.map-3.8.6-1.el6xen.x86_64  xenpolicy.24

initramfs-2.6.32-279.el6.x86_64.img  vmlinuz-2.6.32-279.el6.x86_64     xen-syms-4.3-unstable

initramfs-3.8.6-1.el6xen.x86_64.img  vmlinuz-3.8.6-1.el6xen.x86_64

lost+found                           xen-4.3.gz

 

o  grub 업데이트

xen-kernel을 설치하면, grub 설정파일이 업데이트 되어 있음을 알 수 있다. 추가적으로 hypervisor 커널을 kernel로 하고, 패치한 dom0 커널을 module로 하는 설정으로 변경하여야 한다.

 . kernel, initrdmodule로 변경

 . xen hypervisor 리눅스 커널이 최초에 부팅하고, dom0를 모듈로 로딩하는 방식이다.

 

[root@openxen xen]# diff /boot/grub/menu.lst /boot/grub/menu.lst.org

16,18c16,17

<       kernel /xen.gz dom0_mem=2048M logvl=all gest_logvl=all

<       module /vmlinuz-3.8.6-1.el6xen.x86_64 ro root=/dev/mapper/vg_openxen-lv_root rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=vg_openxen/lv_swap rd_LVM_LV=vg_openxen/lv_root rd_NO_DM rhgb quiet

<       module /initramfs-3.8.6-1.el6xen.x86_64.img

---

>       kernel /vmlinuz-3.8.6-1.el6xen.x86_64 ro root=/dev/mapper/vg_openxen-lv_root rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=vg_openxen/lv_swap rd_LVM_LV=vg_openxen/lv_root rd_NO_DM rhgb quiet

>       initrd /initramfs-3.8.6-1.el6xen.x86_64.img

 

¡ 주요 서비스 등록(xendomains, xencommons, xend)

 

ln -s /etc/init.d/xendomains /etc/rc0.d/S10xendomains

ln -s /etc/init.d/xendomains /etc/rc6.d/S10xendomains

ln -s /etc/init.d/xencommons /etc/rc3.d/S98xencommons

ln -s /etc/init.d/xendomains /etc/rc3.d/S98xendomains

ln -s /etc/init.d/xend /etc/rc3.d/S99xend

 

728x90