Xen 2.0(SUSE LINUX 9.3編[その2])


2005年4月にNovell SUSE LINUX Professional 9.3日本語版(以下SLP9.3)がリリースされました。
そのSLP9.3にはXen 2.0.5が付属しています。

今回はSLP9.3のゲストOS(ゲストドメイン:ドメインU)としてVine Linux 3.1を実行させる手順を紹介します。
尚、今回紹介するのは別マシンにインストールされていたVine Linux 3.1のHDDをSLP9.3マシンにスレーブ接続させて利用する方式です。


1.前提条件

前提条件は以下の通りです。



2.SLP9.3へのXenインストール

SLP9.3の初期インストール時または追加インストールで「XEN Virtualization」パッケージを選択します。




「XEN Virtualization」をインストールするとSLP9.3のGRUBメニューに「SUSE LINUX 9.3 (XEN)」エントリが追加されます。




SLP9.3側の/boot/grub/menu.lstのXEN用エントリ定義は以下のように自動生成されます(dom0_memの値は実メモリ量に応じて自動決定されます)。
###Don't change this comment - YaST2 identifier: Original name: xen###
title XEN
    kernel (hd0,0)/boot/xen.gz dom0_mem=720896
    module (hd0,0)/boot/vmlinuz-xen root=/dev/hda1 vga=0x334 selinux=0  splash=silent   showopts
    module (hd0,0)/boot/initrd-xen

3.ドメイン構成ファイルの作成

DomainU上でHDD2(/dev/hdb1)にあるVine Linux 3.1を動作させるためのドメイン構成ファイル(仮想マシン環境設定ファイル)を作成します。
そのファイルは/etc/xen/xmvine31uとします(SLP9.3側に用意します)。
※ドメイン構成ファイルは/etc/xenにインストールされるサンプルファイルをカスタマイズして作成します。
xmvine31uの内容は以下の通りです。

# Kernel image file.
kernel = "/boot/vmlinuz-2.6.11.4-20a-xen"

# Optional ramdisk.
#ramdisk = "/boot/initrd.gz"


# Initial memory allocation (in megabytes) for the new domain.
memory = 220

# A name for your domain. All domains must have different names.
name = "vine31u"

# Which CPU to start domain on? 
#cpu = -1   # leave to Xen to pick

#----------------------------------------------------------------------------
# Define network interfaces.

# Number of network interfaces. Default is 1.
nics=1

# Optionally define mac and/or bridge for the network interfaces.
# Random MACs are assigned if not given.
vif = [ 'mac=aa:00:00:00:00:11, bridge=xen-br0' ]

#----------------------------------------------------------------------------
# Define the disk devices you want the domain to have access to, and
# what you want them accessible as.
# Each disk entry is of the form phy:UNAME,DEV,MODE
# where UNAME is the device, DEV is the device name the domain will see,
# and MODE is r for read-only, w for read-write.

disk = [ 'phy:hdb1,hda1,w', 'phy:hdb2,hda2,w' ]

#----------------------------------------------------------------------------
# Set the kernel command line for the new domain.
# You only need to define the IP parameters and hostname if the domain's
# IP config doesn't, e.g. in ifcfg-eth0 or via DHCP.
# You can use 'extra' to set the runlevel and custom environment
# variables used by custom rc scripts (e.g. VMID=, usr= ).

# Set root device.
root = "/dev/hda1 ro"

# Root device for nfs.
#root = "/dev/nfs"
# The nfs server.
#nfs_server = '169.254.1.0'  
# Root directory on the nfs server.
#nfs_root   = '/full/path/to/root/directory'

# Sets runlevel 4.
#extra = "4"
extra = "5"

[補足]
(1)xen-br0はXen固有のブリッジです。
Domain0側もそのブリッジを使用してネットワークアクセスするので「ifconfig xen-br0 down」を実行してしまうとDomain0側のネットワーク自体も使用できなくなります。
(2)disk = [ 'phy:hdb1,hda1,w', 'phy:hdb2,hda2,w' ]は物理ディスクパーティションを使用する場合の指定方法です。
尚、disk = [ 'phy:hdb1,hda1,w', 'phy:hdb2,hda2,w' ]の部分を単にdisk = [ 'phy:hdb,hda,w' ]と記述するとDomainUを起動できません。


4.Vine Linux 3.1用DomainUへのGUIログイン環境の構築(VNCの導入と設定)

DomainUではVGAはエミュレートされません。
DomainUにVNC接続してGUIモードでログインできる環境をここでVineをネーティブ起動して構築します。
この構築作業は以下の項目です。
(1)-
(2)-
(3)-
(4)仮想フレームバッファデバイス、日本語入力パッケージ(Anthy,uim,uimアプレット)のインストール
(5)VNCサーバの導入と自動起動設定
(6)gdm設定ファイルの変更
(7)-
(8)フォントサーバ設定ファイルの変更
(9)日本語入力環境の変更

以下に順を追って各項目の詳細手順を示します(各作業は当然のことながらネーティブ環境のLinuxで行います)。


5.Vine Linux 3.1(DomainU)用カーネルモジュールの準備



6.Xenの実行