[Xen] CentOS5でvirt-installを使って仮想環境を作る

2007.04.23 Author: ぴ

今回は、Red Hat Enterprise LinuxのクローンOSとして有名なCentOSの話です。

2007年3月に、Red Hat Enterprise Linux 5(以下、RHEL5)がリリースされました。それに伴い、2007年4月にCentOS5もリリースされました。RHEL5・CentOS5がリリースされたことによって、Webアプリの実行環境が劇的に変化することが予想されます。大きな変更点としては、以下のようなものが挙げられます。

  • Apacheが2.2系に
  • phpが5.1系に
  • MySQLが5.0系に
  • PostgreSQLが8.1系に
  • Kernelが2.6.18に
  • 仮想環境Xen対応に
その中の、仮想環境Xenについて取り上げてみます。

Xen非対応のOS(CentOS4など)では、XenのパッチをあてたKernelを再構築するなどして、環境を構築する必要がありましたが、CentOS5ではネイティブにサポートしているので(インストール時にVirtualizationのオプションを選択のこと)、非常に簡単にXenの環境が手に入ります。

Xenでは、管理用のOS Domain-0 と、ゲストOSが必要です。Domain-0上でゲストOSのインストール・起動等をコントロールすることができます。また、ゲストOSのコンソールへのアクセスも行うことができ、シームレスな操作を行うことが可能です。

Domain-0の環境は、Virtualizationのオプションを選択して初期インストールした時点で環境が手に入るので、ゲストOSの作成方法について解説をしたいと思います。

一番簡単なゲストOSの作成方法として、virt-installコマンドを使ったインストール方法があります。これを使えば、非常に簡単に作成が可能です。

virt-installでは、http:, ftp:, nfs: の3タイプからインストール元を選択することが可能ですが、条件があって、インストール元のツリー以下に

  • images/xen/initrd.img
  • images/xen/vmlinuz
が必要です。そのため、CentOS4などの上記ファイルが用意されていない環境では、別のインストール方法が必要となります(後日紹介するかもしれません)。

では、Domain-0上のCentOS5に、ゲストOSのCentOS5を作成します。

# virt-install \
     -n test \
     -r 512 \
     -f /xen/test \
     -s 16 \
     --nographics \
     -l ftp://ftp.riken.go.jp/Linux/centos/5.0/os/i386

上記コマンドの意味は

  • testという識別子をつける(-n)
  • 512MBのメモリを割り当て(-r)
  • /xen/testに仮想ファイル[xvd形式]を作成する(-f)
  • 16GBの仮想ファイルを作成する(-s)
  • GUIは利用しない(--nographics)
  • ftp://ftp.riken.go.jp/Linux/centos/5.0/os/i386 からインストール(-l)
という意味になります。

コマンドを走らせると、下記のようなインストール画面が表示されます。
choose_a_language.jpg

あとは、CentOS5のインストーラと同じ(カラーではありませんが…)なので、そのままインストール作業を終了させれば、インストール作業は完了です。

インストール作業が完了すると、自動的にゲストOSが再起動します。これで、仮想環境の構築が完了したことになります。インストール後は、

# yum update
でパッケージのアップデートを行ってから利用しましょう。

なお、Domain-0とtest(ゲストOS)の間を行き来するためにも、xmコマンドの最低限の利用方法を知っておく必要があります。

・testの起動
# xm create -c /etc/xen/test

・Xenの仮想環境一覧
# xm list

・Domain-0 から 起動中の test のコンソールを開く
# xm console test

・testのコンソールから、Domain-0に戻る
Ctrl + ]

・testの削除
# xm destroy test

なお、初期導入時に割り当てたメモリサイズを変更したい場合などは、/etc/xen/test ファイルを編集することで対応が可能です。

また、Domain-0の再起動を行った際に、自動的に test(ゲストOS) を起動したい場合は、

# ln -s /etc/xen/test /etc/xen/auto/test
とすれば、自動起動します(もちろん、xend, xendomainsが自動起動されていないと意味がないですが…)。
名古屋のWebシステム開発・ネットワーク構築会社 コネクティボへ