Xen4.0の導入-準仮想化ドメインのセットアップ

コンピュータ関連のことを、出来る時に、出来ることだけ。
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
【Xen4.0の導入】の記事一覧へ



完全仮想化ドメインは稼働させる事が出来たので、次に準仮想化ドメインをセットアップします。

そもそも準仮想化ドメインとは何か?をおさらいです。

Para-virtualized domain。PVドメインと略することもあります。エミュレーションのオーバヘッドを最小限におさえるために、新たに定義した仮想マシン環境を提供するドメインです。このドメイン上でOSを動作させるためには、Xen環境が再定義したハードウェア環境にあわせてOSを修正する必要があります。代わりに、このドメイン上のゲストOSは高効率で動作します。
(引用:VA Linux Systems Japan 「Xenのインストール」-「準仮想化ドメイン」)

また、準仮想化ドメインで使用するカーネルはXen用にビルドされたカーネル(Xenカーネル)です。
Xenハイパーバイザのインストールの際にビルドしたものは、Domain0とDomainU兼用のXenカーネルですので、それをそのまま使用します。


手順としては、Linuxディストリビューションを完全仮想化ドメインにインストールし、その後カーネルをXenカーネルに置き換えます。ディストリビューションには、ドメイン0と同じくCentOS 5.5を使用しました。

1.ディスク領域の確保
まずは完全仮想化の時と同様、論理ボリューム(LV)を確保します。
lvcreate -L 4G -n LogVol99 VolGroup00


2.完全仮想化ドメイン用設定ファイルの作成
完全仮想化ドメイン用のドメイン設定ファイルを作成します。
xmexample.hvmをベースに、以下の値を変更しました。詳しくは完全仮想化ドメインのセットアップを参照してください。

memory
name
uuid
disk
boot
vnclisten
vncdisplay
keymap


3.Linuxディストリビューションのインストールと設定
ネイティブLinuxのディストリビューションをインストールします。
追加パッケージは無しにしました。論理ボリューム管理(LVM)を使用すると、Domain0とDomainUで2重にLVMを使用することになるため、使用しません。

□ディスクの設定画面
CentOSInstall

ディストリビューションのインストールは、問題なく完了です。
その後VNCで接続し、ネットワークの設定を行っておきます。


4.Xenカーネルの配置
ドメイン0のカーネル関連ファイルとカーネルジュールを、ドメインUにコピーします。

[Domain0での操作]
・Xenカーネル関連ファイルとそのモジュールをアーカイブ
cd /root/
tar zPcvf boot_2.6.18.8-xen.tar.gz /boot/*2.6.18.8*
tar zPcvf modules_2.6.18.8-xen.tar.gz /lib/modules/2.6.18.8-xen/


・アーカイブしたファイルをDomainUにコピー
scp *2.6.18.8* <DomainU>:/root/

※<DomainU>にはDomainUのIPアドレスが入ります。

[DomainUでの操作]
・DomainUでアーカイブを展開
cd /root/
tar zPxvf boot_2.6.18.8-xen.tar.gz
tar zPxvf modules_2.6.18.8-xen.tar.gz


5.initrdファイルの作成
「4.Xenカーネルの配置」でDomain0からDomainUにコピーしたinitrdファイルはDomain0用に作成したものです。
Domain0はLVM環境、DomainUは非LVM環境であるため、同じinitrdではDomainUを起動できません。
理由は「ふかふかの部屋」の「3. 仮想マシン起動時に "Volume group "VolGroup00" not found"」で解説されていらっしゃいました。

そのため、DomainUでinitrdを作成します。
[DomainUでの操作]
cd /root/
depmod 2.6.18.8-xen
mkinitrd /boot/initrd-2.6.18.8-xenU.img 2.6.18.8-xen


さらにそれをDomain0にコピーします。
scp ./initrd-2.6.18.8-xenU.img <Domain0>:/root/

※<Domain0>にはDomain0のIPアドレスが入ります。

ここで一旦ドメインUをシャットダウンします。


6.準仮想化ドメイン用の設定ファイルを作成
ドメイン0で準仮想化ドメイン用のサンプル設定ファイルを作成します。
xmexample1を元に、設定値を変更しています。

□kernel = "/boot/vmlinuz-2.6.18.8-xen"
□ramdisk = "/boot/initrd-2.6.18.8-xenU.img"
Domain0上にあるカーネルイメージ及びinitrdイメージを指定します。

domUのカーネルイメージ及びinitrdイメージは、dom0からアクセスできる必要があります。それらがdomUのゲストOSのディスクイメージ上にある場合は、そのデータをdom0上へ持ってくる必要があります
(引用:VA Linux Systems Japan 「準仮想化ドメインの設定」)

「5.initrdファイルの作成」でDomainUのinitrdをDomain0にコピーしたのはこの為です。

□memory = 512
メモリの割り当て量を設定します。

□name = "sample"
仮想マシンの名前を設定します。

□uuid = "xxxxxxxxxxxxx"
uuidgenコマンドで生成したuuidを設定します。

□vif = [ '', 'bridge=xenbr0' ]
仮想ブリッジxenbr0に接続します。コメントアウトを外しただけです。

□disk = [ 'phy:/dev/VolGroup00/LogVol99,hda,w', 'phy:/dev/cdrom,ioemu:hdc:cdrom,r' ]
ディスクの設定は、完全仮想化ドメインの際と同じです。

□vfb = [ 'vnc=1,vnclisten=192.168.0.1,vncdisplay=13' ]
vnc関連の設定を1つにまとめた設定です。意味は完全仮想化ドメインの際と変わりありません。

□root = "/dev/hda2 ro"
DomainUのルートデバイス(「/」のパーティション)を設定します。

□keymap='ja'
サンプル設定ファイルには無い項目ですが、無いとVNCで接続した際不便なので設定しました。


再度ドメインUを起動します。
xm create -f sample


起動後、DomainUがXen用のカーネルで動いていることが確認出来れば、準仮想化ドメインのセットアップは完了です♪
DomainU

さらっと書きましたが、1日1時間で1週間ほどかかってますwww
特にinitrd辺りは大変でした・・・
スポンサーサイト
この記事へのコメント
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
この記事のトラックバックURL
http://fukushimaya2.blog103.fc2.com/tb.php/10-37f9f903
この記事にトラックバックする(FC2ブログユーザー)
この記事へのトラックバック

 | Copyright © ふたごパパのサーバ構築日記 All rights reserved. | 

 / Template by 無料ブログ テンプレート カスタマイズ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。