소개

 솔라리스 dom0 에서 솔라리스 domU 의 설치는 virt-install 을 통해 손쉽게 가능합니다. 그러나 리눅스 dom0 은 현재 우리가 진행해 왔던 수정사항들의 많은 부분들이 결핍되어 있습니다. 그러므로 약간의 과정들이 더 필요 합니다. 첫째로 오픈솔라리스 DVD 를 다운로드 받아야 합니다. 우리의 예제에서는 ISO 를 /export/isos/snv_76.iso 에 위치하였습니다.


Xen 3.1 설치

 만약 Xen 3.1 (참고: Centos/RHEL 5.1 는 Xen 3.1 이 아닙니다. - 오직 hypervisor 만 변경 되었음)을 사용하고 있다면 설치 단계는 상대적으로 간단합니다. 아래의 내용과 같은 solaris.py 파일을 생성 합니다:

name = 'solaris'
memory = '1024'
disk = [ 'file:/export/isos/snv_76.iso,6:cdrom,r', 'file:/export/img/solaris.img,0,w' ]
vif = [ '' ]
bootloader = 'pygrub'
kernel = '/boot/platform/i86xpv/kernel/amd64/unix'
ramdisk = '/boot/amd64/x86.miniroot'
extra = '/platform/i86xpv/kernel/amd64/unix - nowin -B install_media=cdrom'

만약 32-비트 리눅스라면 amd64/ 비트를 지웁니다. 루트 디스크 이미지를 만듭니다:

dd if=/dev/zero of=/export/img/solaris.img bs=4096 count=2500000

이제 도메인을 시작시킵니다:

xm create -c solaris.py

이것은 텍스트-모드의 솔라리스 인스톨러를 띄울 것이고 평상시처럼 잘 동작할 것입니다 (DHCP, 등등). 재부팅이 되면 도메인을 셧다운 시킵니다: '정상' 부트를 위해 설정 파일을 변경 합니다:

name = 'solaris'
memory = '1024'
disk = [ 'file:/export/img/solaris.img,0,w' ]
vif = [ '' ]


Xen 3.0.4 혹은 그 이전 버전

Xen 의 이전 버전에서는 pygrub 을 사용할 수 없습니다 그러므로 커널과 램디스크를 손으로 직접 복사해야 합니다:

cd /export/solaris/
mkdir /mnt/iso
mount -o loop,ro /export/isos/snv_76.iso /mnt/iso/
cp /mnt/iso/boot/amd64/x86.miniroot /mnt/iso/boot/platform/i86xpv/kernel/amd64/unix .
umount /mnt/iso/

이전처럼 32-비트 리눅스를 사용하고 있따면 amd64/ 비트를 삭제 합니다. 아래의 내용과 같은 solaris.py 파일을 생성 합니다:

name = 'solaris'
memory = '1024'
disk = [ 'file:/export/isos/snv_76.iso,6:cdrom,r', 'file:/export/img/solaris.img,0,w' ]
vif = [ '' ]
kernel = '/export/solaris/unix'
ramdisk = '/export/solaris/x86.miniroot'
extra = '/platform/i86xpv/kernel/amd64/unix - nowin -B install_media=cdrom'

루트 디스크 이미지를 생성합니다:

dd if=/dev/zero of=/export/img/solaris.img bs=4096 count=2500000

도메인을 시작시킵니다:

xm create -c solaris.py

이것은 텍스트-모드의 솔라리스 인스톨러를 띄울 것이고 평상시처럼 잘 동작할 것입니다 (DHCP, 등등). 재부팅이 되면 도메인을 셧다운 시킵니다: '정상' 부트를 위해 설정 파일을 변경 합니다:

name = 'solaris'
memory = '1024'
disk = [ 'file:/export/img/solaris.img,0,w' ]
vif = [ '' ]
kernel = '/export/solaris/unix'
ramdisk = '/export/solaris/x86.miniroot'
extra = '/platform/i86xpv/kernel/amd64/unix'


네트워크 오류

여러분은 네트워킹이 잘 동작하지 않는 다는 것을 발견할 것입니다 (특히 dom0 과 domU 사이는 잘 동작하지만 다른 것은 동작하지 않음). 이것은 체크섬 오프로딩의 이상한 동작으로 밝혀 졌습니다 (6633784 checksum offload with Linux dom0 produces invalid checksum 을 확인). 만약 문제가 발생한다면 domU 를 부팅해서 다음과 같이 입력합니다:

echo "set xnf:xnf_cksum_offload = 0" >>/etc/system
reboot

주의할 점은 pygrub (Xen 3.1 혹은 그이상) 을 사용하지 않는다면 새로운 boot_archive 파일을 dom0 으로 복사해야 합니다:이러한 경우 단순히 kmdb 를 사용하는 것이 훨씬 쉽습니다. -kdextra 라인에 추가하고 domU 를 부팅하고 아래와 같이 입력합니다:

::bp xnf`_init
:c
xnf_cksum_offload/W 0
:c

이 단계가 효과가 있었는지 저희들에게 알려 주시기 바라고 여러분의 자세한 설정 (특히 NIC 에 대한 ethtool -k 의 결과) 을 같이 보내주시기 바랍니다.


RHEL5 / CentOS5
에서의 솔라리스 domU

이러한 버전의 리눅스는 매우 구버전의 Xen 을 기반으로 하고 있고 수정 을 해야 합니다. 가장 간단한 수정은 다음과 같이 가능합니다:

cd /usr/lib/python2.4/site-packages/xen/xend/server
vi blkif.py

(주의: 64비트 설치본에서는 /usr/lib64/… 임) 아래와 같이 변경합니다:

devid = blkif.blkdev_name_to_number(dev)
-if not devid:
+if devid is None:
    raise VmError('Unable to find number for device (%s)' % (dev))

finally:

# /etc/init.d/xend restart


감사의 인사

초기 HOWTO 를 만들어 준 Rupert Hair 에게 감사의 인사를 전합니다.


이 글의 영문 원본은
http://www.opensolaris.org/os/community ··· nux-dom0
에서 보실 수 있습니다.

"오픈솔라리스" 카테고리의 다른 글

2008/03/11 14:10 2008/03/11 14:10

TRACKBACK :: http://blog.sdnkorea.com/blog/trackback/525

댓글을 달아 주세요

[로그인][오픈아이디란?]

◀ Prev 1  ... 126 127 128 129 130 131 132 133 134  ... 624  Next ▶