Xen 3.0.4(XenExpressのCentOS 5へのアップグレード)


XenExpress本体(XenServer)はCentOS 4.4をベースにしたOSですがGUI環境は付いていません。
CentOS 4.4とCentOS 5ではデスクトップ環境も異なっておりCentOS 5の方が操作性が向上しています。
ここでは既にCentOS 4.4のGUI環境を導入したXenExpress本体をCentOS 5にアップグレードする手順を紹介します。

CentOS 4.4のGUI環境を導入したXenExpressをCentOS 5にアップグレード(CentOS 5のインストールCDを使用したアップグレードインストール)では
XenExpress環境が一部破壊されたりXenExpressがバージョン固定で意識している共有ライブラリのバージョンが変わってしまうという事態が発生します。
※ここでの「破壊」とはCentOS 5へのアップグレード時にXenExpressが元々持っていたファイルが削除されたりすることを指します。
このためそれらの問題を回避する作業もアップグレード作業の一環として必要となります。

ここでは以下のステップが既に完了していることを前提にしています。
(1)XenExpress(XenServer)のインストール
(2)パーティション構成の変更(/usrに割当てるパーティション4として4GB以上を割当)
※GUI環境を導入した/dev/hda1の空き容量はyum clean allを実行しても460MB程度しかなくCentOS 5へのアップグレードインストールができません(2GB程度の空きは必要です)。
(3)XenServerへの日本語GNOME環境の導入
(4)XenServer管理コンソールのインストール
(5)ゲストOSのインストール
(6)vncクライアントのインストール

ここから先のCentOS 5へのアップグレードの流れは以下のようになります。
※CentOS 5付属の通常カーネルの利用は前提としていません。





1.事前に準備するもの

CentOS 5へのアップグレードにあたって必要となる以下のものを事前に準備しておきます。




2.XenExpressのディレクトリバックップ

XenExpressをブートして/boot, /dev, /lib/modulesディレクトリをバックアップします。
アップグレードインストールで/boot, /dev, /lib/modulesディレクトリは次のようになります。
(1)/boot
/boot/vmlinuz-2.6-xenのリンク先の/boot/vmlinuz-2.6.16.38-xs3.2.0.531.3960xenが/boot/vmlinuz-2.6.18-8.el5xenに置き換わってしまいます。

(2)/dev
/devからMAKEDEV, initctl, null以外のものがすべて削除されてしまいます。

(3)/lib/modules
/lib/modules/2.6.16.38-xs3.2.0.531.3960xenにはextraとkernelしか残らず、重要なmodules.dep等のファイルが削除されます。

/boot, /dev, /lib/modulesディレクトリは以下のようにしてバックアップしておきます(xeorgのxeはXenExpressの頭文字を示しています)。
# cp -Ra /boot /boot.xeorg
# cp -Ra /dev /dev.xeorg
# cp -Ra /lib/modules /lib/modules.xeorg



3.XenExpressのCentOS 5へのアップグレードインストール準備

CentOS 5のインストーラにXenExpressがCentOS 4.4であると認識させるために必要なcentos-release-4-4.2.i386.rpmをインストールします。
XenExpressにはXenExpress用になったcentos-release-4-4.2.i386.rpmパッケージがインストールされています。
そのためrpmコマンドで--forceオプションを指定します。
# cp -a /etc/redhat-release /etc/redhat-release.xeorg
この/etc/redhat-release.xeorgの内容は「XenServer release 3.2.0-2004d (xenenterprise)」となっています。
# rpm --force -ivh centos-release-4-4.2.i386.rpm
これによって/etc/redhat-releaseの内容が「CentOS release 4.4 (Final)」となります。

これでXenExpressのCentOS 5へのアップグレードインストール準備が完了したのでXenExpressをシャットダウンします。



4.CentOS 5のアップグレードインストール実行

CentOS 5のアップグレードインストールの実行手順は以下の通りです。




5.XenExpressのディレクトリ復旧

CentOS 5にアップグレードされたXenExpressはブートできないためCentOS 5へのアップグレードインストールで破壊されたディレクトリを復旧します。
XenServerをブートできるようにするディレクトリ復旧操作は以下の通りです。




6.パッケージの追加・変更と環境設定変更

CentOS 5にアップグレードしたXenExpress(XenServer)をブートすると以下のようなメッセージが表示されます。
(1)Starting udev: udevd[1136]: add _to rules: invalid KERNEL operation
これはudevパッケージが新しくなって/etc/udev/rules.d/にあるファイルの旧文法の記述をエラーとしていることを示しています。
(2)Loading crash kernel: Cannot open `ro': stream error
(3)Warning: Physical Volume /dev/hda3 is too large for underlying device
(4)Starting HAL daemon: hald: error while loading shared libraries: libdbus-glib-1.so.0: cannot open shared object file: No such file or direcory

ここではこれらのメッセージを抑止するためのパッケージの追加・変更と環境設定変更を行います。
またyumコマンドを使用してLVM管理ツールを導入します。
※yumコマンドはCentOS 5の最新リポジトリからパッケージをインストールしてくれます。




7.ゲストOSの追加

CentOS 5にアップグレードしてDebianのテンプレートからSargeを追加インストールしてみました。
特に問題なくインストール/実行できました(ネットワーク利用も問題ありません)。

しかしP2Vで別のVine Linux 4.0を追加したところ新しい論理ボリュームの他にその論理ボリューム(中身は空)に入るべきファイルを格納したワークディレクトリも作成されました。
ワークディレクトリの内容をその論理ボリュームにコピーした後でワークディレクトリを削除するという方法でも対応できます。
※このワークディレクトリは/dev/hda1内にできるため/dev/hda1の容量圧迫回避のため一時的に/SR-xxx/imagesを/dev/hda3に移動してP2Vを実行します。
※SRはStorage Repositoryの頭文字です。