Xen 3.0.4(XenExpressカスタマイズ編)
XenExpress本体はCentOS 4.4をベースにしたOSとなっています(GUIはありません)。
このためXenExpressにCentOS 4.4のパッケージを追加導入することでデスクトップ付きCentOS 4.4上でXenExpressの機能が容易に利用できるようになります。
これはXenExpressにCentOS 5のパッケージを追加導入して利用するという発想に発展します。
XenExpressにCentOS 4.4のGUI関連パッケージを追加導入するのは簡単でした(CentOS 4.4のインストーラは不要)。
しかしXenExpressにCentOS 5のGUI関連パッケージを追加導入するには、
(1)まずXenExpress(CentOS 4.4)をCentOS 5にアップグレードしてから、
(2)XenExpress(CentOS 5ベース)にCentOS 5のGUI関連パッケージを追加する
というステップを踏むことになります。
XenExpress(CentOS 4.4)をCentOS 5にアップグレード(CentOS 5のインストールCDを使用したアップグレードインストール)では
XenExpress環境が一部破壊されたりXenExpressがバージョン固定で意識している共有ライブラリ(特にSSL関係)のバージョンが変わってしまうという事態が発生します。
※ここでの「破壊」とはCentOS 5へのアップグレード時にXenExpressが元々持っていたファイルが削除されることを指します。
このためそれらの問題を回避する作業も必要となります。
ここではXenExpress(XenServer)にCentOS 5環境を載せるというカスタマイズ方法を紹介しますがその流れは以下のようになります。
※CentOS 5付属の通常カーネルの利用は前提としていません(CentOS 5のGUIを持ったXenExpress環境構築を目的としています)。
- XenExpressのインストール
これはXenExpressの本来のインストールと同じです。
- XenExpressのディレクトリバックップ
CentOS 5へのアップグレードで破壊されるディレクトリ(/boot, /dev, /lib/modules)のバックアップをここで取得しておきます。
CentOS 5へのアップグレードではXenExpressが作成した論理ボリュームグループ用/dev/VG_XenStorage-xxx等も自動削除されてしまいます。
- XenExpressのCentOS 5への基本アップグレード
CentOS 5のインストールメディア(今回はDVD使用)によるCentOS 5へのアップグレードインストールを行います。
アップグレードインストールではパッケージの選択はできず、更にXenExpressの一部のディレクトリが破壊されます。
※XenExpressのデーモンの一部(xenagentd)の自動起動もできない状態になります。
- XenExpressのディレクトリ復旧
CentOS 5へのアップグレードインストールで破壊されたディレクトリを復旧します。
- XenExpressへのCentOS 5のGUI関連パッケージの追加と環境設定変更
日本語GNOME環境を構築するためにCentOS 5のGUI関連パッケージをyumで追加します。
またXenExpressのGUI環境を自動で起動したりする設定等も行います。
- XenServer管理コンソールのインストール
1.事前に準備するもの
CentOS 5のGUIを持ったXenExpress環境をゼロから構築するにあたって必要となる以下のものを事前に準備しておきます。
- XenExpressインストールCD
XenSource(http://www.xensource.com)からXenServer-3.2.0-install-cd.isoというファイルを取得してCD-ROMを作成します。
これはXenServer本体のブータブルCDのイメージですがWindows用のXenServer管理コンソールもここに含まれています。
- Linux PackインストールCD
XenSource(http://www.xensource.com)からXenServer-3.2.0-linux-cd.isoというファイルを取得してCD-ROMを作成します。
これはゲストOSインストール用テンプレートとLinux用のXenServer管理コンソールを含んでいます(Linux Packとも言います)。
XenServer本体インストール時に本CDをセカンドCDとして指定することでゲストOSインストール用テンプレートをインストールできます。
- centos-release-4-4.2.i386.rpm
CentOS 5のインストーラにXenExpressがCentOS 4.4であると認識させるために必要なパッケージです。
※CentOSのミラーサイトやCentOS 4.4インストールメディアに含まれています。
- CentOS 5にアップグレード後のXenServerブートエラー回避用CentOS 4.4付属パッケージ
(1)hotplug-2004_04_01-7.7.i386.rpm
(2)initscripts-7.93.25.EL-1.centos4.i386.rpm
(3)hal-0.4.2-4.EL4.i386.rpm
(4)udev-039-10.15.EL4.i386.rpm
※これらのrpmパッケージはCentOSのミラーサイトやCentOS 4.4インストールメディアに含まれています。
- CentOS 5インストールメディア
XenExpressをCentOS 5にアップグレードインストールするために使用します。
- LiveCD
XenExpressからCentOS 5へのアップグレードインストール直後はXenExpressを正しくブートできません。
このためCentOS 5へのアップグレードインストールで破壊されたディレクトリを復旧するためにKNOPPIX等のLiveCDを使用します。
- X設定ファイル(xorg.conf)
X関連のパッケージはyumでインストールしますがX設定ファイル(xorg.conf)は自動生成されません。
最も確実なのはXenExpressをインストールするPCにCentOS 5を事前に仮インストールして/etc/X11/xorg.confを外部媒体または他のPCに保存しておきそれをそのまま利用することです。
2.XenExpress(XenServer)のインストール
- XenServer本体のインストール
XenServer本体のインストーラは無条件にHDDのパーティションを自動構成します。
そのため他のOSの入っていないHDD(または完全にデータ抹消されても構わないHDD)にXenServer本体をインストールします。
- XenServer本体のブータブルCDからのブート
インストーラは英語です。
- 「Welcome to XenServer」画面
- 「Select Keymap」画面
jp106を選択します。
- 「Please select an operation」画面
<Install XenServer Host>を選択します。
※物理マシンを仮想環境にする機能(P2V)の選択もここで指定できます。
- 「End User License Agreement」画面
- 「System Hardware」画面
マシンが完全仮想化に対応していない場合は使用できる機能に制限が付く旨の警告が表示されます。
- 「Select Installation Source」画面
Local media(CD-ROM)を選択します。
- 「Linux Pack」画面
Linux Pack(ゲストOSテンプレート)のインストール有無を回答します(Yes選択)。
- メディア検証(Verifyオプション)画面
- 「Set Password」画面
rootユーザのパスワードをここで指定します。
- 「Time Zone」画面
Asia/Tokyoを選択します。
- 「Network Configuration」画面
DHCPの利用またはIPアドレスを指定します。
通常はXenServerとしてのPCのIPアドレスは固定にして利用しますがスタンドアロンで利用する場合はDHCP利用でも構いません。
- 「Hostname and DNS Configuration」画面
今回、ホスト名は「xenserver32」(32はVersion 3.2の意)としました。
DNSサーバのアドレスもここで指定します。
- 「Confirm Installation」画面
HDDの中身が完全に破壊されることの確認画面です。
- 「Installing XenServer」画面
CDからパッケージがインストールされます。
- 「New Media」画面
ここでLinux PackのCDに交換します。
- 日付・時刻設定
- 「Installation Complete」画面
インストールの完了です。
- インストールされたパッケージ一覧
インストールされるカーネル関連パッケージは以下の3個です。
(1)kernel-kdump-2.6.16.38-xs3.2.0.531.3960
(2)kernel-utils-2.4-13.1.83
(3)kernel-xen-2.6.16.38-xs3.2.0.531.3960
- GRUBメニュー
GRUBメニューには以下のエントリがあります。
(1)XenServer ※デフォルトです
(2)XenServer (Serial)
(3)XenServer in Safe Mode
(4)XenServer (Xen 3.0.4.1 / Linux 2.6.16.38-xs3.2.0.531.3960xen)
(5)XenServer (Serial, Xen 3.0.4.1 / Linux 2.6.16.38-xs3.2.0.531.3960xen)
- ブート確認
デフォルトのXenServerが起動することを確認します。
- テキストログインプロンプト
rootユーザでログインします。
通常はここですることは特にはありません。
※通常はここではログインせずに別マシンにインストールするXenServer管理コンソールからXenServerに接続して利用します。
3.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
4.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をシャットダウンします。
5.XenExpressのCentOS 5への基本アップグレード実行
XenExpressのCentOS 5への基本アップグレードの実行手順は以下の通りです。
- CentOS 5インストールメディア(CD/DVD)からのブート
boot:プロンプトでEnterを押し、「CD Found」画面では<Skip>応答でよいと思います。
- Language選択
Japanese(日本語)を選択します。
- キーボード選択
日本語を選択します。
- インストールの種類
CentOS 5のインストーラが/etc/redhat-releaseを確認して既にCentOS 4.4が入っていると認識します。
そこで新規の<インストール>なのか<既存インストールのアップグレード>なのかを選択する画面が表示されます。
ここでは<既存インストールのアップグレード>を選択します。
※インストール済みシステムとしては「CentOS 4.4」が表示されます。
- ブートローダの設定
CentOS 5のインストーラは「インストーラは現在システムで使用中のブートローダを検出できません。どうします?」と尋ねてきます。
ここではデフォルトの<ブートローダの更新をスキップ>を指定します。
このオプションを選択すると既存の/boot/grub/menu.lstの内容に今回インストールされるカーネル用の下記エントリが追加されます。
(1)CentOS (2.6.18-8.el5xen)
(2)CentOS-base (2.6.18-8.el5)
- パッケージのインストール
パッケージがインストールされます。
Xenカーネルパッケージ(kernel-xen-2.6.18-8.el5.i686)や通常カーネル(kernel-2.6.18-8.el5.i686:33MB)もインストールされます。
yumで使用するリポジトリもCentOS 5用に変更されます。
尚、XemExpressに元々入っているパッケージが少ないためこのアップグレードインストールは極めて短時間で終了します。
- インストール完了後の再起動
インストール完了後に<再起動>ボタンを押しますが正しくブートできませんのでPCの電源をOffにします。
【補足】
GRUBメニューで「CentOS-base」エントリを選択してブートするとブートエラーが出て自動リブートが繰り返されます。
また既存のXenServerエントリを選択してブートしても「module /boot/vmlinuz-2.6-xen」の部分で「Error 15: File not found」エラーとなり停止します。
これは/boot/vmlinuz-2.6-xenのリンク先の/boot/vmlinuz-2.6.16.38-xs3.2.0.531.3960xenが/boot/vmlinuz-2.6.18-8.el5xenに置き換わったことに起因します。
5.XenExpressのディレクトリ復旧
CentOS 5にアップグレードされたXenExpressはブートできないためCentOS 5へのアップグレードインストールで破壊されたディレクトリを復旧します。
XenServerをブートできるようにするディレクトリ復旧操作は以下の通りです。
- LiveCDからのブート
今回はKNOPPIX 5.1.1のブータブルDVDからブートしました。
ネットワークはここでは使用しません。
- Root Shellの起動
KNOPPIX 5.1.1のRoot Shellを起動します。
- ディレクトリ復旧
XenExpressのパーティションをマウントしてディレクトリを復旧します。
# mount /dev/hda1 /mnt ※S-ATAディスクの場合はmount /dev/sda1 /mnt
# mv /mnt/boot /mnt/boot.aftupg
# cp -Ra /mnt/boot.xeorg /mnt/boot
# mv /mnt/dev /mnt/dev.aftupg
# cp -Ra /mnt/dev.xeorg /mnt/dev
# mv /mnt/lib/modules /mnt/lib/modules.aftupg
# cp -Ra /mnt/lib/modules.xeorg /mnt/lib/modules
# mv /mnt/etc/redhat-release /mnt/etc/redhat-release.centos5
# cp -a /mnt/etc/redhat-release.xeorg /mnt/etc/redhat-release
# umount /mnt
【補足】
(1)/mnt/etc/sysconfig/selinux中のSELINUX=enforcingをSELINUX=disabledに変更する作業は後で行います。
- シャットダウン
ここでシャットダウンします。
6.XenExpressへのCentOS 5のGUI関連パッケージの追加と環境設定変更
ここではyumコマンドを使用して日本語GNOME環境を導入します。
※yumコマンドはCentOS 5の最新リポジトリからパッケージをインストールしてくれます。
また環境設定変更も行います。
- XenServerブート
XenServerをブートするとネットワークも利用できるように復旧しています。
- rpmパッケージのインストール
# yum groupinstall "X Window System"
# yum groupinstall "GNOME Desktop Environment" ※約800MB消費します。
※firefoxもインストールされます。
# yum install fonts*
※空き容量が少なくなった場合は必要に応じてfonts-koreanやfonts-chineseをアンインストールして構いません。
# yum clean all ※空き容量が約400MB増えます。
# yum install scim anthy scim-anthy
# yum install gimp gimp-data-extras
# yum install ftp ※任意(scpが使用できるためftpは任意)
- 設定ファイルの追加・設定変更
- /etc/sysconfig/i18nの新規作成
# vi /etc/sysconfig/i18n
[内容]
LANG="ja_JP.UTF-8"
SYSFONT="latarcyrheb-sun16"
SUPPORTED="ja_JP.UTF-8:ja_JP:ja"
- /etc/X11/xorg.conf
予め用意しておいたxorg.confファイルを/etc/X11/にコピーします。
- ランレベルの変更
# vi /etc/inittab
id:3:initdefault:の「3」を「5」に変更します(ランレベルの変更)。
更に、本inittabの最後に次の2行を追加します。
# Run xdm in runlevel 5 ※これはコメント行です。
x:5:respawn:/etc/X11/prefdm -nodaemon
- 再起動
XenServerを再起動するとGUIモードになり「ようこそ」画面が表示されます。
ファイアウォール/SELinux/日付と時刻の設定、一般ユーザアカウントの作成を行います。
その後、 <進む>−<終了>ボタンを押します。
ここでGDMグラフィカルログイン画面が表示されます。
もしそれが表示されない場合はXenExpressサーバにrootでssh接続して「gdm &」を実行します。
それでもGDMグラフィカルログイン画面が表示されない場合はリブートします。
- CentOS 5化されたXenExpressデスクトップ
scim+anthyにより日本語入力もできます。
- /etc/sysconfig/selinuxの設定変更
# vi /etc/sysconfig/selinux
SELINUX=enforcingをSELINUX=disabledに変更して保存します。
- ブート時のエラー回避
この時点でのXenServerブートでは次のようないくつかのエラーが発生します。
(1)Starting udev: udev[368]: add_to_rules: invalid KERNEL operation
これはudevパッケージが新しくなって/etc/udev/rules.d/にあるファイルの旧文法の記述をエラーとしていることを示しています。
(2)Applying Intel CPU microcode update: FATAL: Module microcode not found.
(3)Loading crash kernel: cannot open 'ro': stream error
これらのエラーに対する対策としてCentOS 4.4用パッケージを次のようにインストールし直します。
- CentOS 4.4パッケージの強制インストール(ダウングレード)
# rpm -ivh hotplug-2004_04_01-7.7.i386.rpm
# rpm -Uhv --nodeps --oldpackage initscripts-7.93.25.EL-1.centos4.i386.rpm
# rpm -Uhv --nodeps --oldpackage hal-0.4.2-4.EL4.i386.rpm
# rpm -Uhv --nodeps --oldpackage udev-039-10.15.EL4.i386.rpm
- xenagentd(Xenエージェントデーモン)起動失敗対策のためのリンク設定
XenExpressではxenagentdは自動起動される設定になっています。
しかしCentOS 5へのアップグレードによってxenagentdの起動で必要となるlibssl.so.4とlibcrypto.so.4が削除されてしまいます。
このため以下のリンク設定を行います。
# ln -s /lib/libssl.so.0.9.8b /lib/libssl.so.4
# ln -s /lib/libcrypto.so.0.9.8b /lib/libcrypto.so.4
- ブート時のエラー回避対策後のブート
CentOS 4.4パッケージの強制インストール後はStarting udev等でのエラーは発生しなくなります。
7.XenServer管理コンソールのインストール
- Linux PackのCDセット
Linux PackのCD(XenServer-3.2.0-linux-cd.iso版)をセットします。
- パッケージのインストール
# mount -r /dev/cdrom /mnt
# cd /mnt/client_install
# rpm -ivh *.rpm
# cd
# umount /mnt
- メニュー確認
再ログインしなくても[アプリケーション]メニューの[システムツール]に[Xensource XenServer Client]が追加表示されます。
この[Xensource XenServer Client]がXenServer管理コンソールの起動メニューとなります。
ちなみに[Virtual Machine Manager]メニューはありません。
yum install virt-managerで[Virtual Machine Manager]メニュー表示はできます。
しかしXenExpress付属のXenとCentOS 5付属のXenの不整合により[Virtual Machine Manager]メニューは使用できません。
※[Virtual Machine Manager]起動時、「Unable to open a connection to the Xen hypervisor/daemon.」というエラーとなります。
8.XenServer管理コンソールの起動
- XenServer管理コンソールの起動
[Xensource XenServer Client]メニューでXenServer管理コンソールを起動します。
スプラッシュ画面(ロゴ)が表示されます。
- Masterパスワードの設定
保存データの暗号化用パスワードを設定します。
- XenServerログイン画面
本来ならXenServerホストとして「localhost」を指定し、rootユーザのパスワードを指定してログインします。
しかしCentOS 5にインストールしたXenServer管理コンソールではXenServerログインができません。
具体的にはXenServerホスト欄に文字を入力し始めた途端に<了解>ボタンがグレー表示され、パスワードも受付けなくなります。
この現象はXenExpressをCentOS 5にアップグレードしたマシンに限らず、CentOS 5をネーティブインストールしたマシンでも発生します。
この問題の最も単純な回避策はrootユーザの場合なら/root/.xensource/client.propertiesファイルの「host=」行を「host=localhost」に変更することです。
※これは接続するXenServerホストをclient.propertiesファイルに直接指定する方式です。
この方式によりXenServerログイン画面に接続先がプリセット表示されパスワード入力や<了解>ボタンも使用可能となります。
※パスワードのキー入力不可の場合はGNOME端末からのコピー&ペーストで対応できます。
※<Remember Me>オプションを有効にして一度接続できれば次回からは「XenSource XenServer Master Login」のパスワード入力だけで済みます。
XenServerに接続後、管理コンソールが表示されます。
尚、XenServerをインストールしたマシンで自動起動のxenagentdデーモンを手動終了させてしまうと管理コンソールが利用できなくなります。
- Debian 3.1のインストールの様子
下記はXenServer管理コンソールでDebian 3.1をインストールしている様子です。
- Debian 3.1の実行
Debian 3.1の実行ではネットワークも問題なく使用できます。
9.XenExpressのコマンド実行
XenExpress(XenServer)にはCLIインタフェースのコマンドが付属しています。
これによって仮想マシンの無人監視も可能となり仮想データセンタの運用もし易くなります。