第13号(2007年10月)

記事:Xenによる仮想化とRed Hat Enterprise Linux 5.1



Red Hat Enterprise Linux 5 (以下ではRHEL5と略記します) では xen によるサーバ仮想化機能が追加されました。 今回はこれらの機能の概要と使用方法を簡単にご説明したのち、まもなくリリースされるRed Hat Enterprise Linux5.1(以下ではRHEL5.1と略記します)での変更点について紹介させていただきます。

サーバ仮想化とは1台の物理的なサーバで複数の仮想的なサーバの「ふり」をすることで複数のOSを1台の物理的なサーバで動作させることです。

サーバ仮想化は汎用機の世界では1960年代に既に存在していた古い技術ですが、最近 IA サーバーなどでも提供されるようになり、又活発なオープンソース技術での開発により現在最も注目を浴びているテクノロジーの一つです。
仮想化の実装方式としては、まずハードウェアによる実装とソフトウェアによる実装、そして両方が混在したものがあります。今回ご紹介するxenは両方が混在したものにあたります。

さらに、仮想化されたサーバ上で動作するOSが仮想化を意識するかどうかで完全仮想化(full virtualization)と準仮想化(para virtualization)の2種類に類別できます。現在、xenはこのどちらも実装していますが、以前は準仮想化のみを提供していました。現在でも xenでは完全仮想化よりも準仮想化が圧倒的にパフォーマンスがよく、この記事でも準仮想化についておはなしします。

xenは「ハイパーバイザー」と呼ばれ、Red Hat Enterprise Linuxなどの「ゲストOS」が動作する仮想マシンを管理します。xenは起動直後に「ドメイン0」と呼ばれる Linux を自動的に起動し、それに加えて新しい仮想マシンを作成・起動することができます。 作成する仮想マシンについて、仮想CPUの数、仮想メモリの量、仮想ディスクに対応させる実デバイス、仮想ネットワークなどの設定をすることができ、実マシンの資源を仮想マシンに任意に割り当てることができます。 これにより、1台の物理的なサーバ上で様々な種類のサーバを任意の構成で構築出来ます。

では、この仮想化を実際に導入する場合ですが、ここでは、Red Hat NetworkというRed Hatが提供するネットワークサービスからのインストール方法をご紹介します。

■Red Hat Networkからのインストール方法


xenを使って複数の仮想マシンを動作させるには、以下のようなステップで行います。
ステップ1. xenのインストール
ステップ2. 仮想マシンのインストール
ステップ3. 起動・管理

ここでは、紙面も限られる為、ステップ1の一部、xenのインストールをするための Red Hat Network での設定を説明いたします。その他のステップなどインストール方法の詳細については、以下のドキュメントにてステップバイステップで手順が示されていますのでご興味のある方は是非ご覧下さい。 「Red Hat Enterprise Linux ではじめる仮想化」 http://wp.techtarget.itmedia.co.jp/contents/?cid=852 (このドキュメントでは、現状のxenによる仮想化の制限や、標準ドキュメントでわかりにくい点についても補足されています。)

RHEL5では、初期出荷後いくつか重要なバグ修正が行われていますので、CDからではなく Red Hat Network からの最新版のインストールをお薦めします。
(なお、ここで紹介する手順はRHEL5, RHEL5.1で共通のものです。例では 32bit x86環境を対象としていますが、ご利用のアーキテクチャにより適宜読みかえてください。)

1. Red Hat Network で仮想化を導入したいシステムを選択し、"Alter Channel Subscriptions" リンクから購読チャンネルの変更画面へ移動して、"RHEL Virtualization (v. 5 for 32-bit x86)" を追加します。

2. メニューの「ソフトウェアの追加/削除」からパッケージマネージャを起動し、「仮想化/仮想化」を選択して「適用」を押します。 これで、xen、xen対応linuxカーネル、管理用ツールvirt-managerなどがインストールされます。

3. /boot/grub/grub.conf に ”title Red Hat Enterprise Linux Server (2.6.18-8.1.10.el5xen)”のような行を含むxen用のエントリが作成されていることを確認して、再起動します。
4. 起動時の grub画面上で 3 のエントリを選択し、起動します。

以上で、xenによる仮想化の設定の一部が完了します。 今後もハードウェアスペックの向上が着々と進む中で、このような仮想化技術は、これからのIT技術の中核を担う事になると思われます。直ぐにシステムに導入するという方でなくとも、今後必須となるであろう、その技術をご自身でご体験下さい。

ここまで基本的な利用方法についてお話してきましたが、間もなくリリースされるRHEL5.1 でのxenに関連したアップデートを紹介します。

■Red Hat Enterprise Linux 5.1 でのxenの変更点


1、サポート範囲の拡大

* AMD-V 環境でのxen完全仮想化ゲストをサポート
* IA64でのxenサポート

2、既存問題への対応〜問題が修正されました。

(1)日本語キーボードへの対応
* Red Hat Network 上の更新ではすでに修正されていますが、RHEL5 で対応していなかった英語キーボード以外のキーマップに対応しています。
(2)libvirtによる仮想マシン起動のサポート
* RHEL5の仮想化関連のツールは、xenに依存するのではなく将来登場する複数の仮想化技術に対応するため、libvirtという抽象化ライブラリを使用しています。RHEL5に同梱されていたlibvirt では起動していない仮想マシンの管理をしていなかったため、仮想マシンを起動することができませんでした。RHEL5.1からは起動していない仮想マシンの管理もサポートされ、GUIからの仮想マシン起動ができるようになりました。
(3)その他多数の修正が含まれています。

3、機能強化〜様々な重要機能が強化されました。

(1)完全仮想化の save / restore, live migration のサポート
* RHEL5 では準仮想化ゲストのみ save / restore, live migration はをサポートしていましたが、完全仮想化環境でも利用できるようになりました。
* これによって、物理サーバーを停止する際にも仮想サーバでのシャットダウン処理を回避することができます。
(2)xen用カーネルでの kexec/kdump の サポート
* 前号でも紹介いたしましたが、RHEL5 から、以前のnetdump, diskdump にかわって kexec/kdump によるダンプ取得が採用されました。
* RHEL5 のxen用linuxカーネルではkexec が利用できなかったのですが、RHEL5.1からは利用可能になります。
* 使用方法は通常のkexec/kdumpと同じです。
(3)dnsmasq パッケージの追加
* 前述の「Red Hat Enterprise Linux ではじめる仮想化」内でdnsmasqを利用したネットワーク構成について紹介していますが、RHEL5にはdnsmasqパッケージが存在しなかったため、RHEL5.1で追加されました。これによりノートPCなどの環境でも仮想化を利用しやすくなります。

間もなくリリースされるRHEL5.1では、xen以外でも多くの修正がなされています。
サブスクリプションをお持ちの方は、Red Hat Networkからダウンロードしてご利用下さい。
より安定した仮想化環境、よりセキュアなシステム環境が実現出来ます。

レッドハット株式会社/ニュースレター編集部