Search

이 포스트를 쓰기 앞서, 이 내용은 http://wiki.xen.org/xenwiki/Xen4.0 에서 소개 된
Set up Ubuntu 10.04 Server PV DomU at Xen 4.0 Dom0 (pvops 2.6.32.12 kernel) Dom0 on top of Ubuntu 10.04 Server
를 번역한 것이며, 여분의 우분투 서버가 없어서 제가 직접 설치해 보지 못했다는 것을 알려드립니다.

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 \
iasl texinfo bridge-utils bison flex
apt-get build-dep xen-3.3

먼저 의존성에 걸리는 패키지 와 Xen에 관련된 모든 패키지를 받은 뒤
그리고 Xen 커널 을 git 으로 체크아웃 한다.

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


체크아웃이 다 되었으면 데비안 방식(?)으로 커널을 컴파일 한다.

make menuconfig # Enabled the dom0 support and the Xen backend as usual on Ubuntu 9.10, F12
make -j(x)number_of_kernels
make modules_install install
chmod g-s /usr/src -R
make deb-pkg
dpkg -i ../linux-image*2.6.32.12*.deb
depmod 2.6.32.12
update-initramfs -c -k 2.6.32.12

또는

aptitude install kernel-package fakeroot
export CONCURRENCY_LEVEL=(코어갯수) +1
make-kpkg clean
fakeroot make-kpkg --initrd --append-to-version=-xen kernel-image kernel-headers
update-initramfs -c -k 2.6.32.16

만약 첫번째 방법으로 했을 때에는
(커널 옵션) <M> Xen /dev/xen/evtchn device
(명령어) echo “xen-evtchn” >> /etc/modules

두번째는
(커널 옵션) <*> Xen /dev/xen/evtchn device
 
Xen 4.0 설치

hg clone http://xenbits.xensource.com/xen-4.0-testing.hg
cd xen-4.0-testing.hg
make xen
make tools
make install-xen
make install-tools PYTHON_PREFIX_ARG=

hg 로 Xen4.0 소스르 받은 뒤, 컴파일 + 설치해 준다

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


그리고 (우분투 에서) 서비스 데몬으로 인식(?)시켜 준다.

grub 메뉴 파일에 다음과 같은 텍스트를 넣은 뒤, 리붓 한다. 리붓시에 커널을 밑 이름과 같은 커널을 로딩한다.

menuentry "Xen 4 / Ubuntu 10.04 kernel 2.6.32.12" {
insmod ext2
set root='(hd1,5)'
multiboot (hd1,5)/boot/xen.gz dummy=dummy
module (hd1,5)/boot/vmlinuz-2.6.32.12 dummy=dummy nopat root=/dev/sdb5 ro console=tty0
module (hd1,5)/boot/initrd.img-2.6.32.12
}


그리고 VM 을 생성한 뒤, 즐겁게 놀면(?) 된다.

* libvirtd 를 이용한(?) Xen 설치 방법은 다음이 시간에..
* 번역오류, 문제점, 오타 등이 있을 경우에는 댓글로 알려주시기 바랍니다.

댓글을 달아 주세요

  1. Ray Ban outlet 2013.07.27 10:34  댓글주소  수정/삭제  댓글쓰기

    태양이 바다에 미광을 비추면,나는 너를 생각한다.

블로그 이름을 바꿨다.

2010. 8. 8. 04:02

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

* 이 포스팅은 CentOS 패키지 설치를 기준으로 설명하는 글 입니다. 컴파일 설치는 약간 다를 수 도 있습니다.

나는 CentOS 패키지로 설치한 것이라, 컴파일 설치로 하면 좀 틀릴지도 모르곘지만,
CentOS 에서 패키지로 Xen 을 깔면 기본 아이피 대역이 192.168.122.* 이다. 이걸 너무 바꾸고 싶어서 안달이 났지만 결국 인터넷엔 문서가 하~나~도~ 없어서 이 포스팅을 쓰게 됬다.

뭐 솔직히 어떤 큰 프로젝트에서 하이퍼바이저를 바꾼다거나 뭐 그런게 아니라면 이걸로 큰일이 생긴다거나 그런건 없겠지만, 나 같은 경우에는 10.0.0.* 이 아니면 좀 꺼림칙 한 기분이 들어서 (이게 바로 안달이 난 이유다.-_-..) 여러가지 삽질을 해 보았다. 하지만 어느 파일을 바꿔야 되는지는 찾아 내었지만 어떻게 그걸 적용 하는지를 알아내지 못하고 포기했었는데, 알고보니 쉬운 곳에 숨어 있었다.

바로 virsh 를 사용하는 것이였다.

덧붙이자면, 내가 몰랐던 이유가 libvirtd 를 끄면 네트워크 변수로 올라가 있던 데이터가 기본 네트워크 설정 파일에 Overwrite 되서 리셋해도 적용이 안됬던 것이다 -_- libvirtd 를 끄고 수정하고 다시 올렸으면 되는걸 괜히 삽질;

일단 virsh 로 들어간다
# virsh

그리고 net-edit 로 기본 네트워크 파일을 수정한다.
# net-edit <Network Name>
이 때 net-list 명령어로 어떤 네트워크 이름인지 확인 한 후에 저기에 대입해 주면 된다.
CentOS 패키지로는 default 였던걸로 기억한다. (Xen 4.* 은 틀릴지도 모름)

그럼 대충

<network>
  <name>default</name>
  <uuid>12341234</uuid>
  <forward mode='nat'/>
  <bridge name='virbr0' stp='on' forwardDelay='0' />
  <ip address='192.168.122.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.122.2' end='192.168.122.254' />
    </dhcp>
  </ip>
</network>

이런게 보일것이다.

딱 봐도 이해갈거라 생각하지만.......................
ip 태그의 address 가 게이트웨이다. 그리고 netmask 는.. 알거라 믿고 (솔직히 설명하기 귀찮다고는 말 못한다.)
그 밑에 dhcp 의 range 가 각각의 VM 에 어느 아이피들을 할당 시킬거지 정하는 부분이다.

<network>
  <name>default</name>
  <uuid>12341234</uuid>
  <forward mode='nat'/>
  <bridge name=virbr0' stp='on' forwardDelay='0' />
  <ip address='10.0.0.1' netmask='255.255.255.0'>
  </ip>
</network>

난 이렇게 바꾸어 줬다. dhcp 부분을 날려버리고 게이트웨이와 netmask 부분만 바꾸어 주었다.

저기서 dhcp 를 활성화 시키고 싶으면
ip 태그 안에
    <dhcp>
      <range start=10.0.0.2' end='10.0.0.254' />
    </dhcp>

를 추가하면 될듯하다. 테스트를 안해봐서 잘은 모르겠..

다 수정 했으면 ^X 를 하든 :wq 를 하든지 해서 에디터를 빠져나온후,

# net-destroy default
# net-create /path/to/xml/default.xml

로 다시 시작해 주면 된다.
CentOS 패키지의 경우에는
# net-create /etc/libvirt/qemu/networks/default.xml
이다.

끝.

아, 그리고 VM 들 network 도 restart 도 해 주어야 한다. (당연한건가)
PS. libvirtd + qemu 를 쓰는 모든 하이퍼바이저 (몇 개 없겠지만) 에도 다 적용될지도 모르겠다. 안써봐서 잘..... 모르겠지만.

댓글을 달아 주세요

7/18 @ MBC Heros

2010. 7. 18. 00:59

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

CentOS 에 Xen 설치 및 설정

가상화/Xen 2010. 7. 18. 00:32 Posted by Relipmoc
※ 이 문서는 /hosting/xen 에 작업한다는 가정 하에 작성된 문서입니다. 유의하시기 바립니다.

.. 먼저 Xen 을 설치하기 전에 OpenVZ 를 설치할려고 했지만 꼭 Windows 를 올릴필요가 있어서 할 수 없이 Xen 을 선택했다.
Xen 은 가상화 하이퍼바이저로서 적어도 VMWare(-_-)보다는 높은 효율을 뽑아낸다. 우분투에서는 실패했지만 CentOS 에서는 강력한(?) 패키지가 있어서 컴파일 한번 없이 간단하게 설치할 수 있었다.

# yum install kernel-xen xen xen-libs xen-devel libvirt
# reboot

이 두 명령어 하나로 충분하다 -_-

리붓후 다행히 커널패닉이 안났다면 바로 VM 을 만들어 준다.
Vm 을 만들기 전에 network 부분도 설정을 해야 하지만 다른 블로그나, 웹 문서에 자세히 설명이 되어 있기 때문에, 굳이 여기서 길게 설명할 필요가 없을것 같아서 넘어가도록 하겠다.

덧. 서버 말고 노트북에 깔았을때 GRUB 의 root device 설정문제로 한번 패닉이 난적이 있었다.
일단은 제일 쉬운 CentOS 를 올려보도록 하겠다.

# wget http://centos.mirror.cdnetworks.com/5.5/os/x86_64/images/xen/initrd.img -O /hosting/xen/boot/initrd.img
# wget http://centos.mirror.cdnetworks.com/5.5/os/x86_64/images/xen/vmlinuz -O /hosting/xen/boot/vmlinuz
이 두 파일을 받은 후 에,
# dd if=/dev/zero of=xen-test.disk bs=100M count=10
dd 명령어로(↑) 디스크를 만들어준 뒤, /etc/xen/xen-test 에 아래와 같은 내용을 작성한다.

kernel = "/hosting/xen/boot/vmlinuz"
ramdisk = "/hosting/xen/boot/initrd.img"
#bootloader = "/usr/bin/pygrub"
name = "test"
memory = "256"
disk = [ 'tap:aio:/hosting/xen/xen-test.disk,xvda,w']
vif = [ 'bridge=virbr0', ]
vcpus=1
on_crash = 'destroy'

대충 읽어도 아실거라 믿지만, 혹시 모르니 설명을 하도록 하겠다.
kernel : 커널 바이너리다.
ramdisk : ... kernel 과 ramdisk 는 설치할 때만 필요하고, 설치가 끝나면 주석처리 해줘야 하는 부분이다.
bootloader : 이 부분은 설치가 끝나면 주석을 풀고 kernel, ramdisk 를 주석처리 해준다. 정확히 뭔지는 모르겠지만 아마 vm 에 설치된 커널을 올리기위한 도구 같다. 일종의 GRUB 삘.
name : 이름.
memory : RAM.
disk : dd 명령어로 만든 디스크 파일을 넣어주면 된다
vif : 네트워크.
vcpus : CPU 코어 할당 개수
on_crash : 크래쉬가 낫을때 어떻게 처리해야 하는지 명시해 주는 부분이다. 이외에 on_reboot on_shutdown 등이 있다.

다 됬으면

# xm create xen-test

로 vm 을 생성하고 바로 콘솔에 들어가서 설치를 진행한다.

# xm console xen-test

설치가 완료되면, 위에도 써놨듯이 kernel, ramdisk 부분을 주석처리하고, bootloader 를 주석해제 하면된다.
그리고 다시

# xm create xen-test
로 Vm 을 생성하여, 삽질하시면 된다.

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

수고 하셨습니다.



댓글을 달아 주세요

PostgreSQL 설치

리눅스/Database 2010. 6. 13. 19:02 Posted by Relipmoc
원래 bind (named) 랑 연동할려고 컴파일 해서 올린거지만 결국 실패했... 쓸데없이 시간 날린것 같네요 -_-;
실패라기 보다는 포기지만요 (성공하신분 계시면 트랙뷁이나 댓글좀요 (...))

아무튼 각 배포판에서 패키지로 설치할 수 있지만, (apt-get emerge yum ports etc..)
그냥 컴파일 및 설정하는 방법을 포스팅하도록 하겠습니다.

먼저 http://www.postgresql.org/ 에서 소스를 받고 다음 명령어들을 입력 하시면 됩니다.
(셜명은 안해도 왠만한건 다 명령어 이름보고 아실거라 믿습니다)

# tar xvf postgresql*
# cd postgresql-*
# ./configure --prefix=/usr/local/pgsql --with-ldap --with-libxml  --with-openssl
# make && make install
# cd /usr/local/pgsql
# useradd -s /bin/bash -d /usr/local/pgsql postgres # pgsql 은 root 로 뭘 할려그러면 오류를 뱉기 때문에 유저생성
# passwd postgres
# chown -R postgres.postgres .
# su postgres
$ bin/initdb -D data
$ bin/pg_ctl -D data -l data/postmaster.log start
$ bin/psql template1
psql (9.0beta2)
Type "help" for help.
template1=# alter user postgres with password 'password';
template1=# \q
$ data/pg_hba.conf  ## 여기서 제일 마지막에 있는 trust 를 password 로 바꾸고 저장한다.
$ bin/pg_ctl -D data restart
$ bin/createuser
Enter name of role to add: relip
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) n
Shall the new role be allowed to create more new roles? (y/n) n
Password:
$ ./createdb -U relip relip
Password:
$ ./psql
Password:
psql (9.0beta2)
Type "help" for help.
postgres=# ALTER USER relip with password 'password';
ALTER ROLE
postgres=# \q
$

명령어만 쭉 나열했지만 아무튼 이걸로 기본적인 설치 및 설정이 끝났습니다. (...)
(TCP 로 접속하는 설정은 다른문서 찾으면 나오니 그거 보시고 하시면 됩니다.)









참 쉽죠?

* MySQL 에는 phpmyadmin 이 있듯이 pgSQL 에는 phppgadmin 이 있습니다. 설치방법은 쉬우니 그냥 생략 (받아서 압축풀기)

'리눅스 > Database' 카테고리의 다른 글

PostgreSQL 설치  (3) 2010.06.13

댓글을 달아 주세요

  1. 🌸𝓝𝓸𝓮𝓵🍒  2010.06.14 17:39 신고  댓글주소  수정/삭제  댓글쓰기

    그리고 rm -rf /usr/local/pgsql 하시면 설치가 최종적으로 완료됩미다.

  2. 0x8606 2010.07.10 15:31  댓글주소  수정/삭제  댓글쓰기

    전설의 Post그래SQL!!
    마이SQL이랑 퍼포먼스 비교한 벤치좀요

  3. Relipmoc 2010.07.18 00:15 신고  댓글주소  수정/삭제  댓글쓰기

    원래는 직접 BMT해보고 싶었는데 그걸 할만할 마땅한 서버가 없네요 -_-
    구글링하면 많이 나올듯