블로그 이미지
피안체
잠시, 쉬었다 가세요. 그리고, 내일 또 오세요. 환영합니다!

calendar

1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
2011. 5. 13. 15:15 CSE/xen
놀고있던(?) 애 한테 xen을 설치하려고 했다가 매우 많은 삽질을 하였다. 페도라같은 OS는 설치가 상대적으로 쉽다고 하는데(yum을 이용) ubuntu 10.04 server 에서는 따로 source 컴파일 과정이 필요하단다.

1. ubuntu 10.04 server LTS 설치

일단 ubuntu 10.04 server LTS를 설치한다. 크게 어려운 부분은 없으나 디스크 설정을 할 때 아무런 설정도 없는 가장 간단한 녀석으로 골랐다. 나중에 grub으로 xen dom0를 잡는데 잘 안되서 여러가지로 고생했다(이건 순전히 내가 grub을 잘 모르기 때문이다...orz).

설치가 끝나면(네트워크 설정 완료 가정)
apt-get update로 storage를 업데이트 한다. 이게 잘 안된다면 /etc/apt/sources.list 를 수정하면 된다.
여기에 openssh를 설치하고 나면(apt-get install openssh-server) 원격지에서 xen을 설치할 수 있는 환경이 만들어 진다.

2. package 설치 및 source 다운로드
xen에서 domU를 제어하기 위한 dom0가 필요하다. 일단은 기본적인 package들 부터 설치하기로 한다.

apt-get install libcurl4-openssl-dev xserver-xorg-dev mercurial gitk build-essential libncurses5-dev uuid-dev gawk gettext texinfo bcc libncurses5-dev dpkg-dev debhelper kernel-package fakeroot iasl texinfo bridge-utils bison flex

apt-get build-dep xen-3.3

설치가 끝나면 아래 명령어를 통해 dom0 kernel source를 받는다.

-------------------------------------------------------------------------------------
cd /usr/src
git clone
git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git linux-2.6-xen
cd linux-2.6-xen
git checkout -b xen/stable-2.6.32.x origin/xen/stable-2.6.32.x

-------------------------------------------------------------------------------------
cd /usr/src
git clone git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git linux-2.6-xen
cd linux-2.6-xen
git pull
git reset –hard
git checkout -b xen/stable origin/xen/stable
git pull
-------------------------------------------------------------------------------------

(git pull과 reset --hard option이 굳이 필요한지는 나도 잘 모르겟다. 둘 중에 하나의 방식으로 하면 된다.)

여기에서는 xen-4.0.1을 설치할 예정이므로  xen-4.0.1 source를 다운 받는다.

-------------------------------------------------------------------------------------
wget http://bits.xensource.com/oss-xen/release/4.0.1/xen-4.0.1.tar.gz
tar xvf xen-4.0.1.tar.gz
-------------------------------------------------------------------------------------

3. grub2 -> grub

ubuntu 10.04에서는 grub2를 기본으로 선택하고 있다. grub2 patch를 이용하여 xen을 띄우는 방법이 있긴한데 여기에서는 grub으로 작업하기로 한다.

apt-get purge grub2 grub-pc
apt-get install grub
update-grub
grub-install /dev/sda ( ubuntu가 설치된 device를 고르면 된다. sdb이면 /dev/sdb)
echo "grub hold" | sudo dpkg --set-selections


4. build kernel in Debian way
본격적으로 kernel 컴파일을 해보자.
여러가지로 설치하면서 느낀게 config 파일을 잘 설정해야 한다는 것이다. 설치하는 방법은 다양하지만 dom0에서 쓸 이미지가 제대로 되어있지 않아서 그런지 계속 실패했다. (기본적으로 사용했던 설정파일을 올려두었다.)

(1) make menuconfig

* 확인해야 할 사항들
Processor type and features -->

    Paravirtualized guest support 부분 check

Networking support -->
    802.1d Ethernet Bridging 부분 check

Device Drivers -->
    Xen /dev/xen/evtchn device 부분 check
    userspace grant access device driver 부분 check
    Backend driver support 하위 항목 포함 모두 check
    

기본적인 설정파일 없이 진행하려면 꼭 포함해야할 list들이 제대로 설정파일에 적용되어 있는지 확인해봐야 한다.
CONFIG_XEN_MAX_DOMAIN_MEMORY=32
    CONFIG_XEN_SAVE_RESTORE=y
    CONFIG_XEN_DOM0=y
    CONFIG_XEN_PRIVILEGED_GUEST=y
    CONFIG_XEN_DOM0_PCI=y
    CONFIG_XEN_BLKDEV_FRONTEND=y
    CONFIG_XEN_NETDEV_FRONTEND=y
    CONFIG_XEN_KBDDEV_FRONTEND=y
    CONFIG_XEN_FBDEV_FRONTEND=y
    CONFIG_XEN_BALLOON=y
    CONFIG_XEN_SCRUB_PAGES=y
    CONFIG_XEN_DEV_EVTCHN=y
    CONFIG_XEN_BACKEND=y
    CONFIG_XEN_BLKDEV_BACKEND=y
    CONFIG_XEN_NETDEV_BACKEND=y
    CONFIG_XENFS=y
    CONFIG_XEN_COMPAT_XENFS=y
    CONFIG_XEN_SYS_HYPERVISOR=y
    CONFIG_XEN_XENBUS_FRONTEND=y
    CONFIG_XEN_S3=y
    CONFIG_HVC_DRIVER=y
    CONFIG_HVC_IRQ=y
    CONFIG_HVC_XEN=y

(2) 나머지 과정
export CONCURRENCY_LEVEL=(number_of_cores) + 1
(자신의 컴퓨터가 여러 개의 core를 사용한다면 설정해 두는 것이 좋다. 시간을 아주 많이 단축할 수 있다.)
make-kpkg clean
fakeroot make-kpkg --initrd --append-to-version=-xen kernel-image kernel-headers
dpkg -i ../linux-image-2.6.32.39-xen-10.00.Custom_amd64.deb( tab하면 알아서 나옴)
update-initramfs -c -k 2.6.32.39-xen

5. xen install
이건 그냥 명령어 따라서 진행하면 된다.
-j(x) 는 make 수행을 빠르게 하기위한 설정이다. core 수를 적어주면 된다.

make xen -j12
make tools -j12
make install-xen -j12
make install-tools -j12 PYTHON_PREFIX_ARG=

(make stubdom && make install-stubdom 은 full virtualization을 support할 때 필요하다.)


update-rc.d xend defaults 20 21
update-rc.d xendomains defaults 21 20


(위에는 20 21이고 아래는 21 20이다. 이게 은근히 해깔린다...)

vim /etc/fstab
xenfs    /proc/xen    xenfs    defaults    0    0 를 추가해준다.
이러면 처음 부팅할 때 xen이 실행될 것이다.

6. grub 설정
vim /boot/grub/menu.lst

아래의 설정을 제일 위에 적어준다. defaults 0 이므로...
title           Xen 4.0.1 / Ubuntu 10.04.2 LTS, kernel 2.6.32.39-xen
uuid            f8a7909f-14e8-4236-a450-e010997aadbd
kernel          /boot/xen-4.0.1.gz
module          /boot/vmlinuz-2.6.32.39-xen root=UUID=(현재 uuid를 적어준다) ro console=tty0
module          /boot/initrd.img-2.6.32.39-xen

/boot 폴더 아래 자신의 xen과 dom0 이미지를 확인하고 적어주면 된다.

7. reboot
정상적으로 xen이 설치되었다면
ssh를 수행하였을 때 로그인 화면이 뜰 것이다.
(간혹 제대로 부팅이 되었어도 xen이 안될 때가 있다. 새로 설치해야 한다...orz)

sudo xen info 로 현재 설치된 xen 정보를 확인한다.


- 아래는 xen을 설치하면서 봤던 많은 웹 자료들. 핵심은 비슷한데 조금씩 다르다. 혹시나 몰라서 여기에 적는다.

http://bderzhavets.wordpress.com/2010/04/24/set-up-ubuntu-10-04-server-pv-domu-at-xen-4-0-dom0-pvops-2-6-32-10-kernel-dom0-on-top-of-ubuntu-10-04-server/

http://blog.naver.com/PostView.nhn?blogId=wja30&logNo=100122757469&categoryNo=0&parentCategoryNo=0&viewDate=&currentPage=1&postListTopCurrentPage=1&isAfterWrite=true&userTopListOpen=true&userTopListCount=30&userTopListManageOpen=false&userTopListCurrentPage=1

http://blog.xen.org/index.php/2010/03/26/steps-to-try-xen-4-0-0-release-candidate-8-on-ubuntu-lucid-10-04-64-bits/
 
http://bderzhavets.wordpress.com/2010/07/08/set-up-xen-4-1-unstable-2-6-32-16-pvops-dom0-on-top-of-ubuntu-10-04-server/ 


posted by 피안체