昨今、省スペースや電力削減の面で、Xenをベースとした仮想マシン環境プロダクトへの注目が集まっています。また、システム管理者が、実際にXenによる仮想マシン環境の構築や運用管理を行っていくうえで、各仮想マシン環境プロダクトがどのような管理機能を持っているかという点は非常に興味深い点と思われます。
オープンソースとして開発されているXenは、高性能な仮想マシン環境を提供します。しかし、その仮想マシン環境の管理を容易にするための管理機能はまだまだ万全とは言えません。これを補うべく、仮想マシンベンダやXenとは別のオープンソース・プロジェクトが開発・提供を行っています。ここでは、その中でも特に有望視される下記の商用の仮想マシン環境プロダクトについて、各々の機能について解説します。

 

  • XenEnterprise 4(以下、XE4とします)
  • SuSE Linux Enterprise Server 10(以下、SLES10とします)
  • RedHat Enterprise Linux AS 5(以下、RHEL5とします)

なお、今回の調査対象は、上記の製品に関するものであり、オプションや別製品で用意されているドライバ、管理ツール等は含まれません。

第1章 プロダクト及び管理ツールのインストール

本章では、プロダクトと管理ツールのインストールについて解説します。

1.1 プロダクトと管理ツールのインストール

各仮想マシン環境プロダクトのインストールは、インストールCD(またはDVD)から立ち上げ、いずれもインストール設定画面の指示に従えば、容易にインストールすることが可能です。
SLES10は、インストール設定画面の”Software”で、”Primary Function(基本構成)”の”Xen Virtual Machine Host Server (Xen 仮想マシンホストサーバ)”の項目を選択し、以後設定画面の指示に従って作業を進めます。
RHEL5も同様に、インストールパッケージの選択画面で、”Base System”の”Virtualization”の項目を選択し、以後設定画面の指示に従って作業を進めます。
XE4に関しては、インストール設定画面の指示に従い、インストール作業を行えば、10分程度でインストールが完了します。ただし、SLES10、RHEL5については、インストールパーティションをカスタマイズできますが、XE4はカスタマイズすることができません。XE4は最低1台のディスクを必要とし、その中をOS部分(EXT3)とゲストOSの保存域(LVM)として使用します。
ゲストOSを管理するGUIのツールは、それぞれ、

 

  • XE4:XenCenter
  • SLES10:yast2の仮想マシンの管理(Manage Virtual Machines)
  • RHEL5:virt-manager

となります。

XE4のXenCenterのみ、別のWindowsマシンへのインストールが必要となります。ただし、インストールは容易で、インストールCDをWindows PCに挿入すれば、インストーラーが起動され、設定画面の指示に従って作業を進めると、1分程度で作業が完了します。
XE4は、Xen環境専用であるとはいえ、非常に簡単かつスピーディにXen環境の構築を行うことが可能です。旧XenSouce社では「10分でXen環境が構築できる」と提言していましたが、まさに10分でインストールが完了します。「とりあえずXenを使ってみよう」と思う個人ユーザなどは、Free版のXen Expressというものも用意されていますので、こちらを、試してみるのもよいでしょう。

1.2 ゲストOSインストール

それぞれの仮想マシン環境プロダクトにおいて、インストールすることができるゲストOSについて解説します。
RHEL5はRHEL5を、SLES10はSLES10と9を準仮想化のゲストOSとしてインストールすることが可能です。つまり、同社製品でXenのサポートが行われているもののみが、準仮想化ゲストOSとしてインストールすることが可能です。その他のOSについては、全て完全仮想化ゲストOSとしてインストールすることになります。(※1
XE4の場合は、下記のOSを、準仮想化ゲストOSとしてインストールすることが可能です。

 

  • Red Hat Enterprise Linux 4 update1, update4, update5
  • Red Hat Enterprise Linux 5
  • SUSE Linux Enterprise Server 10 SP1
  • CentOS 4 update5
  • CentOS 5
  • Debian 3.1(Sarge)(※2
  • Debian 4.0(Etch)(※2

また、完全仮想化ゲストOSとして、下記のOSをインストールすることが可能です。

 

64-BIT

  • Windows Server 2003 Standard/Enterprise/Datacenter SP2
  • Windows Small Business Server 2003 SP2

32-BIT

  • Windows 2000 SP4
  • Windows XP SP2
  • Windows Server 2003 Web/Standard/Enterprise/Datacenter SP0, SP1, SP2, R2
  • Windows Small Business Server 2003 SP0, SP1, SP2, R2

 

XE4では、WindowsをゲストOSとした場合でも準仮想化ゲストOSと同じ程度のI/O性能を確保するために、SCSIホストアダプタとネットワークアダプタの準仮想化ドライバが用意されています。(※3
さて、実際のゲストOSのインストールに関してですが、いずれの仮想マシン環境プロダクトも、管理ツールには、”New VM”(XE4)、”Add”(SLES)、”New”(RHEL5)など、新規ゲストOSのインストールを開始するボタンが用意されています。このボタンをクリックすると、ゲストOSのインストール設定画面が出力されます。画面の指示に従い、ゲストOSの名称、ゲストOSの格納先、仮想CPUの個数、仮想メモリの割付量、仮想ネットワークカード等のリソース設定を行います。設定が完了すると、ゲストOSのインストーラが起動され、OSのインストールが開始されます。(※4
後は、インストーラの指示に従いOSのインストールを行うことになりますが、ここからの作業は、通常の物理マシンへのOSインストールと同様の作業となります。

ホストOSとゲストOSが同じプロダクトであれば、RHEL5、SLES10でも十分と思われますが、現状では、複数の異なったゲストOSをインストールしたり、WindowsでI/Oの性能が必要となる場合には、XE4を選択する方が好ましいでしょう。

第2章 ゲストOSの起動と状態参照・リソース変更

本章では、ゲストOSの起動、状態の参照、リソース変更について解説します。

2.1 ゲストOSの起動

ゲストOSの起動に関しては、起動方法が各仮想マシン環境プロダクトで異なります。

 

  • XenEnterprise 4(以下、XE4)
    管理ツールであるXenCenterを起動し、サーバとの接続を行います。XE4は複数のXenサーバとの接続が可能です。
    XE4では、サーバを単体で管理をすることもできますが、リソースプール(※5)を用いることで、効率的にサーバ群のリソースを使用することが可能となっています。
    ゲストOSの起動は、管理ツール上でゲストOSを選択し、”Start”をボタンをクリックすることで行えます。
    リソースプール内の共有ストレージにインストールされているゲストOSについては、起動したいゲストOSを選択し”Start”をクリックすると、プール内でリ ソースに余裕のある適当なサーバを自動的に判断し、そのサーバ上でゲストOSが起動されます。(※6)
    起動されたゲストOSのコンソールは、管理ツールの”console”タブを選択すると表示されます。また、この”console”タブで表示された画面は、管理ツール から切り放して表示(unlock)することも可能です。(※7
  • SuSE Linux Enterprise Server 10(以下、SLES10)
    SLESの管理ツール(yast2の仮想マシンの管理(Manage Virtual Machines))を起動します。起動されたツールのウィンドウ上には、インストールされているゲストOSが表示されます。起動したいゲストOSをマウスで選択し、ウィンドウ下部の”Start”ボタンをクリックすると、ゲストOSが起動されます。同様に画面下部にある”View”ボタンをクリックすると、ゲストOSのコンソールウィンドウが表示されます。
  • RedHat Enterprise Linux AS 5(以下、RHEL5)
    RHEL5の管理ツール(virt-manager)には、ゲストOSを起動する機能はありません。Xenのxmコマンドを用いて起動することになります。管理ツールでインストールしたゲストOSの起動設定ファイルは、”/etc/xen”の配下に格納され、インストール時に指定したゲストOS名称で保存されています。

 

<起動コマンドラインの例>
# xm create /etc/xen/ゲストOS名称
ゲストOSが起動されると、管理ツール上に起動されているゲストOSの行が表示されます。その行をマウスで選択し、ウィンドウ下部にある”Open”ボタンをクリックすると、ゲストOSのコンソールが表示されます。

ゲストOSの起動については、XE4、SLES10の管理ツールの使い勝手が良さそうです。(※8)

2.2 状態参照

状態参照についても各仮想マシン環境プロダクトで異なりますので、個別に解説します。

 

  • XE4
    XE4の管理ルーツでは、サーバ(dom0)、ゲストOS、ストレージ、リソースプールの状態を表示することが可能です。管理ツールの右に表示されるサーバ、ゲストOS、ストレージ、リソースプールのいずれかをマウスで選択し、左のウィンドウの”Overview、General”等のタブを選択すると、各情報を参照することが可能です。
    XE4で表示される情報については、別表【表1:XenCenterでの状態参照・リソース変更】に示します。

 

【表1:XenCenterでの状態参照・リソース変更】

タブ名 dom0(サーバ) ゲストOS
Overview ・Basic detailed

+ Name
+ UUID
+ Status (Running/Paused)

・Performance

+ CPU usage
+ Memory usage

・Basic detailed

+ Name
+ UUID
+ Status (Running/Paused)

・Performance

+ CPU usage
+ Memory usage
(現在の使用率ではなく、domainに割り付けられている仮想メモリ量)

Hardware ・Processor CPUs

+ Change allocation (ホストのCPU数)
+ Current allocation (ホストのCPU数)
+ Maximum allocation (ホストのCPU数)
+ Total CPUs on host machine (ホストのCPU数)

・Memory

+ Change allocation (dom0に割り当てられてるメモリ量)
+ Current allocation (dom0に割り当てられてるメモリ量)
+ Maximum allocation (不明)
+ Total Memory on host machine (ホストの物理メモリ量)

・Disk (何も表示されない)
・Network (何も表示されない)

・Processor CPUs

+ Change allocation (VCPU数) (*)
 VPゲストOS:1〜4、FVゲストOS:1固定
+ Current allocation (現在のVCPU数)
+ Maximum allocation (割り付け可能な最大VCPU数)
+ Total CPUs on host machine (ホストの物理CPU数)

・Memory

+ Change allocation (仮想メモリ) (*)
 VPゲストOS:50MB〜起動設定ファイルの値
 FVゲストOS:起動設定ファイルの値から変更できない
+ Current allocation (現在の仮想メモリ量)
+ Maximum allocation (割り付け可能な最大仮想メモリ量)
+ Total Memory on host machine (ホストの物理メモリ量)

・Disk

+ Type (file/disk)
+ Source (path)
+ Device (disk等)
+ Destination (hda/xvda等)

・Network

+ Type
+ Source
+ Device
+ MAC address

 

 

  • SLES10
    SLES10の管理ツールでは、ゲストOSの現在の状態(Stopped/Runing)と起動設定ファイルにある仮想メモリの割り付け量しか表示されません。
  • RHEL5
    RHEL5の管理ツールに表示されたドメイン(dom0/ゲストOS)をマウスで選択し、”Details(詳細)”ボタンをクリックすると、”Virtual Machine Detailes”ウィンドウが出力されます。”Overview”または”Hardware”タブを選択すると、別表【表2:virt-managerでの状態参照・リソース変更】の内容が表示されます。(※8)

 

【表2:virt-managerでの状態参照・リソース変更】

タブ名 サーバ ゲストOS プール ストレージ
Overview サーバ自身とゲストOSの以下の情報
・Status (状態)
・CPU Usage (CPU使用率)
・Used Memory (Memoryメモリ使用率)
・Disk (平均/最大)
・Network (平均/最大)
・状態
・CPU使用率
・メモリ使用率
・Diskレイト(平均/最大)
・Networkレイト(平均/最大)
・プール名称
各サーバとゲストOSの以下の情報
・Status (状態)
・CPU Usage (CPU使用率)
・Used Memory (Memoryメモリ使用率)
・Disk (平均/最大)
・Network (平均/最大)
General ・Name
・Description (※)
・Server Type (Master/Member)
・License
・iSCSI IQN (※)
・Memory
(サーバの物理メモリ量とdom0使用量)
・CPUs(サーバの物理CPU情報)
・Version Details
・License Details
・Name (※)
・Description (※)
・Power State (Running/halted/Suspended)
・OS
+ 起動された状態では、OSの名称が表示される
+ 停止(一時停止を含む)している場合は、Unknown
・VM Memory (16MB~) (※)
・Number of VCPUs (1~8) (※)
・VCPU Priority (1~65535:Normal 256) (※)
・Auto-start on server boot (※)
・OS Boot Parameters (Linuxのみ) (※)
・Boot Order (Windowsのみ) (※)
(DVVD-Drive/Hard Disk/Network)
・Name (※)
・Description (※)
・マスタサーバのIP Address
・Name (※)
・Description (※)
・Type(nfs,iSCSI, etc..)
・Location(IP address/path等)
・Size
Storage ・Name (※)
・Description (※)
・Type(local, nfs, lvm, etc..)
・Free(GB)
・Shared(Yes/No)
・ゲストOS名称
・Description (※)
・Power State (Running/halted/Suspended)
・OS (Generalを参照)
・Virtualization
(Optimized / XenSource Tools not installed)
・DVD drive (プルダウンメニューから選択) (※)
・ゲストOSのイメージファイル (※) (追加/削除も可能)
+ Name (※)
+ Description (※)
+ Size (※) (停止状態でのみ変更可)
+ Read Only (※)
+ Disk Access Priority (※)
(Lowest:7~Highest:0、default:Highest)
+ Storage Repository
各サーバの持つストレージと共有
ストレージの下記の情報
・Name (※)
・Description (※)
・Type(local, nfs, lvm, etc..)
・Free(GB)
・Shared(Yes/No)
ゲストOSのStorageへの格納情報
・Name
・VM (ゲストOS名称)
・Size
・Description
・Active
Network ・Name (※)
・Description (※)
・NIC(NIC0, NIC2, ..) (※)
・VLAN(VLAN-ID) (※)
・Auto (Yes/No) (※)
・ゲストOS名称
・Description
・Power State (Running/halted/Suspended)
・OS (Generalを参照)
・Virtualization (Storageを参照)
・ゲストOSのNetwork (※) (追加/削除も可能)
+ MAC address (※)
+ Network (Network 0, 1, ..) (※)
+ Limit(kbytes/s) (数値指定) (※)
・プール名称
・IP Address (マスタサーバのもの)
・Description
マスタサーバの下記の情報
・Name (※)
・Description (※)
・NIC(NIC0, NIC2, ..)
・VLAN (VLAN-ID)
・Auto (Yes/No) (※)
NICs ・NIC(NIC0, NIC2, ..)
・MAC
・Linc Status
・Vendor Name
・Device name
・MAC Address
・PCI Bus Path
・Device Metrics
+ Link Status
+ IO Read(KB/s)
+ IO Write(KB/s)
+ Speed
+ Duplex
Console コンソール コンソール/Xコンソール (切り替え可能)
Performance ・CPU Usage
・Memory Usage
・Network I/O (read/write)(kbytes/s)
・Memory Usage
・Network I/O (read/write)(kbytes/s)
・CPU Usage
・Memory Usage
・Network I/O (read/write)(kbytes/s)
・Disk I/O (read/write)(kbytes/s)
Logs 操作ログなどの表示

2.3 ゲストOSのリソース変更

状態参照についても各仮想マシン環境プロダクトで異なりますので、個別に解説します。

 

  • XE4
    状態参照で示した別表【表1:XenCenterでの状態参照・リソース変更】の中で、”(※)”の印があるものについては、値を変更することが可能です。ゲストOSの名称の変更はもちろん、ゲストOSの仮想CPU数、仮想メモリ量、仮想ディスクやNICの追加も管理ツール上からの変更が可能です。また、ネットワークの帯域制限や仮想ディスクアクセスの優先度、仮想CPUの優先度の項目設定も可能です。
    ただし、ネットワークの帯域制限に起因する影響については、ある程度の推測が可能ですが、仮想ディスクアクセス、仮想CPUの優先度を変更した場合にも、他のゲストOSに大きな影響を与える場合があります。これらの設定には十分注意を払い、試験を繰り返す必要があると思われます。
  • SLES10
    SLES10の管理ツールにはリソースを変更する機能がありません。起動設定ファイルを変更し、起動または再起動する必要があります。
  • RHEL5
    上記の別表【表2:virt-managerでの状態参照・リソース変更】で、”(※)”の印がついている項目が管理ツールから変更できるものです。表を見て分かるように、管理ツール上から変更できるものは準仮想化ゲストOSの仮想CPUと仮想メモリ量となります。また、管理ツールで変更した値は起動設定ファイルに反映されないため、起動設定ファイルを手動で編集する必要があります。リソースの割当量は一度決まってしまえばそれほど変更するものではないかもしれませんが、調整する上でも簡単にサーバ全体のリソース量やゲストOSのリソース量、パフォーマンスが参照でき、値の変更も簡単にできるXE4がここでも一歩リードしているようです。
    ただし、XE4はゲストOSの起動設定ファイルをエディタ等を用いて直接編集するということは基本的にできません。
    今回、GUIの管理ツールを比較してきましたが、GUIの管理ツールを重視せず、コマンドやスクリプトを用いて管理を行おうと考える管理者にとってはRHEL5やSLES10の機能で十分かもしれません。
  • ※1 完全仮想化ゲストOSを使用するには、CPUが完全仮想化をサポート(Intel VT, AMD SMV等)している必要があります(全プロダクト共通)。また、ホストOSが32bitまたは64bit対応であるかにより、サポートされるゲストOS(32bit/64bit対応)が異なります。詳しくは、各プロダクトのホームページ等で確認してください。
  • ※2 最低限の機能のみではありますが、OSがインストールされた状態のテンプレートを用いてインストールを行います。
  • ※3 XE4以外の仮想マシン環境プロダクトでは、完全仮想化ゲストOS用の準仮想化ドライバや他のプロダクト用準仮想化カーネル等は、オプションや別製品として準備されています(もしくは準備される予定です)。
  • ※4 ただし、準仮想化ゲストOSの場合、ゲストOSのインストールに必要なファイル等をNFSやHTTPサーバ上にコピーするなど、別途準備作業が必要になる場合もあります。
  • ※5 XE4では、リソースプールと呼ばれる、最大16のサーバから成る接続済みサーバーのグループ上で共有ストレージと連携して、仮想マシンを実行できるプラットフォームを提供しています。
  • ※6 起動させたいサーバを指定して起動することも可能です。また、サーバ本体のストレージ上にあるゲストOSやリソースプルに属さないサーバのゲストOSについては、そのサーバ上で起動されることになります。
  • ※7 管理ツールでfindボタンをクリックすると、探しているゲストOSのコンソールウィンドウが最前面になるfindという機能もあります。
  • ※8 2007年10月30日にリリースされたRHEL5 update1では、ゲストOSの起動も管理ツール上から行えるようになり、設定の変更できるリソースも増えたようです。