소개
솔라리스 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 를 사용하는 것이 훨씬 쉽습니다. -kd 를 extra 라인에 추가하고 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
에서 보실 수 있습니다.
"오픈솔라리스" 카테고리의 다른 글
- BrandZ 의 Linux2.6 지원 프로젝트 소개 (댓글 0개 / 트랙백 0개) 2007/12/13
- OpenSolaris 코드 브라우저를 이용하여 코드베이스 탐색하기 (댓글 1개 / 트랙백 1개) 2005/09/23
- Inside OpenSolaris: Introduction to Solaris Dri... (댓글 1개 / 트랙백 0개) 2005/10/23
- 리눅스 가이가 썬에서 무슨 일을 하고 있나요? (댓글 1개 / 트랙백 0개) 2008/05/19
- Xen: 다운로드, 설치 및 설정 정보 (댓글 0개 / 트랙백 0개) 2008/01/21
- 오픈 솔라리스를 위한 무선 네트워킹 (댓글 1개 / 트랙백 0개) 2006/01/23
- FAQ: OpenSolaris.org (댓글 3개 / 트랙백 0개) 2006/09/23
- ZFS 시작하기 (댓글 1개 / 트랙백 0개) 2005/11/23
- BrandZ/SCLA FAQ (댓글 1개 / 트랙백 0개) 2006/02/23
- ZFS Boot (댓글 2개 / 트랙백 0개) 2007/06/13
댓글을 달아 주세요