プリンタ用表示(TechTarget会員専用)
連載

1日5分のXen理解:

仮想マシンとは何か?

2005年12月5日に仮想マシンモニタXen 3.0がリリースされました。読者の中には、すでに利用されている方もいるのはないでしょうか? 2004年ごろから仮想化環境はホットな話題です。MicrosoftによるVirtual PCの買収、無償利用できるVMware Playerの登場など、仮想化というトピックに大きな話題集まっているのでご存じの方も多いしょう。本稿では、まず仮想マシン環境とは何であるのかを説明します。仮想マシンモニタとはどういうもので、Xenを使うと何ができるのかを眺めてみましょう。
2006年12月15日 08時00分 更新

本記事は、オープンソースマガジン2006年3月号 第1特集「仮想マシンモニタXen 3.0を使ってみよう」のパート1を再構成したものです。以下のように3回に分けて掲載を予定しています。

  • 第1回(本記事)
  • 第2回 仮想マシンモニターXenの特徴(12月16日掲載予定)
  • 第3回 Xen導入のメリットと課題(12月17日掲載予定)

なぜいま、仮想マシン環境なのか?

 仮想マシン環境は、古くて新しい技術です。仮想マシン環境の歴史は古く、大型汎用機用OSが現れた直後には、すでに仮想マシン環境が使われていました。仮想マシン環境とは、ハードウェアを仮想化し、その仮想ハードウェア上で、OSを動作させる技術です。仮想的なハードウェアを複数用意することで、同時に複数のOSを実行することも可能です。

 大型汎用機時代に仮想マシン環境が重宝された最大の動機は、過去の資産の継承です。汎用機の置き換えを行った場合、通常2つの汎用機の間には互換性がなく、古い汎用機用に作られた高価なアプリケーションプログラムは、新しい汎用機上では動作しません。この課題を解決するために、仮想マシン環境が普及しました。仮想マシン環境が古い汎用機のハードウェアをエミュレート*することで、アプリケーションプログラムをその仮想マシン環境の中で使い続けることができました。

 実は、現在でも同様のことが行われており、オフコン用に作られたソフトウェアが、現在はワークステーションやPCサーバの仮想マシン環境上で動作しているなどの例も耳にします。

 最近、この古い技術がまた脚光を浴びるようになってきました。皆さんも、雑誌やインターネット上で仮想マシン環境の話題を目にすることが増えてきたと感じられていることと思います。実際、現在PCサーバの分野にも、この仮想マシン環境を導入しようという動きが広まりつつあります。

 今日の仮想マシン環境を導入しようというモチベーションは、汎用機時代の最大の動機である「資産継承」よりも、マシン台数の削減に目が向いています。インターネット系サービスを中心に、そのサービス成長に伴って規模がどんどん大きくなり、ハードウェアコストおよび運用コストが増大傾向にあります。これらのコストを下げるための1つの手段として、仮想マシン環境の利用が検討されています。

 現在、それを可能とする環境も整いつつあります。高性能のPCサーバマシンが手ごろな価格で入手可能となっていますし、マルチコアプロセッサ、大容量メモリが標準的な環境となる今後のサーバでは、仮想マシン環境は非常に有望な技術です。

仮想マシン環境

 仮想マシン環境を作り出す仕組みは幾つか存在しますが、基本は同じです。

 1つは、あるOS(ホストOSと呼びます)の上に、ハードウェアをエミュレートする環境を載せ、その上で別のOS(ゲストOSと呼びます)を動かす方法です(図1)。

図1 図1 仮想マシン環境(ホストOS型)

 エミュレートはホストOSが持つ機能を利用して実現します。汎用機の仮想マシン環境、UML(User Mode Linux)、 VMware Workstationなどは、この方式を採用しています。

 2つ目は、ハードウェア上に、直接ハードウェアをエミュレートする専用のプログラムを動作させる方法です(図2)。

図2 図2 仮想マシン環境(仮想マシンモニタ型)

 仮想マシン環境を実現するために必要最小限の機能を、OSと実ハードウェアの間に挟み込みます。このプログラムを仮想マシンモニタと呼ぶこともあります。この方式は、1つ目の方式よりも小さなオーバーヘッドで、仮想マシン環境を実装できます。XenやVMware ESX Server版は、この方式を採用しています(コラム参照)。

コラム:そのほかの仮想マシン環境

 CPUエミュレータは、あるCPUアーキテクチャー用に作られた実行形式プログラム(バイナリプログラム)中の命令を解析し、1つずつ命令をエミュレートするプログラムです。実は、CPUエミュレータも仮想マシン環境の一種です。実行されるプログラム側から見ると、本物のCPUによって実行されているのか、CPUエミュレータが作り上げた仮想的なCPU上で実行されているのかに差はありません。

 Linux上で動作可能なCPUエミュレータには、QEMU、Bochsなどがあります。QEMUなどのCPUエミュレータは、PC/ATアーキテクチャーのデバイスのエミュレーション機能も持っています*。解析した命令がデバイスを操作する命令であった場合、その先にあるデバイスに合わせてその振る舞いをエミュレートします*

 最近、QEMUは、QEMUが動作している物理CPUと、QEMUが作り出す仮想環境の仮想CPUが同じアーキテクチャーであるとき、特権命令などの特殊な命令を除き、ネイティブ実行させる試みがなされています。Xenなどの正当派仮想マシンモニタとの区別は、どんどんあいまいに*なっていきそうです。

 Java環境も仮想マシンです。これは良く知られたことでしょう。JavaVMは、仮想的なハードウェア環境を作り出します。このハードウェア環境には元になる見本がありません*。JavaVMは、いかにもそこにそのハードウェアがあるように、Javaバイトコードを実行します。実装的に、QEMU などのCPUエミュレータの親戚です。

 現在意識している人はほとんどいないと思いますが、UNIXやLinuxのプロセスも仮想マシン環境です。プロセスと呼ばれる抽象的な実行環境を提供していますが、これは仮想マシン環境そのものです。その仮想マシン環境の中には、ユーザーが作成したプログラムを入れて自由に動作させることができます。この仮想マシンの制御はシステムコールを用いて行います。


このページで出てきた専門用語

エミュレート

実際にCPUで命令を実行するのではなく、その命令の意味を解析し、その命令が実際に実行された同じ処理を、まねて実行します。

PC/ATアーキテクチャーのデバイスのエミュレーション機能も持っています

現在では、CPUエミュレータよりも、PCエミュレータといった方が正確かもしれません。

その先にあるデバイスに合わせてその振る舞いをエミュレートします

デバイスの動きをまねします。

どんどんあいまいに

逆に、Xenのデバイスエミュレーション機能は、QEMUのコードを流用して実現しています。

このハードウェア環境には元になる見本がありません

かつてJavaバイトコードを直接実行可能なアーキテクチャーのプロセッサも後追いで作られたことがあります。しかし、いまは製造されていません。ホットスポット技術などの登場により、性能的なメリットが相対的に小さくなったことも要因の1つでしょう。


[高橋浩和(VA Linux Systems Japan),ITmedia]

Copyright© 2008 ITmedia, Inc. All Rights Reserved.


キャリアアップ



エンタープライズ・ピックアップ

news012.jpg 闘うマネジャー:行政のシステムコストは健全か?――削減に向けた視点の転換
民間からCIOとして長崎県庁に入り、8年目。「電子自治体化にかかるコストを大幅に削減せよ」というミッションを与えられ奮闘中だが、自らの経験をもとに、コスト削減に必要な「視点」について考えてみた。

news006.jpg マイクロソフトが考える、安心できるコンピューティング環境とは?
マイクロソフトでは「信頼できるコンピューティング環境:Trustworthy Computing」という独自の取り組みを実施している。プラットフォーム製品を提供する同社では、どのような考え方で安心を提供していくのだろうか。

news001.jpg 技術系企業の人材難が浮き彫りに:技術者の転職、スカウトの利用が主流に
プロシークは求職者を対象に実施したアンケート結果を発表した。コンサルタント、IT、クリエイティブ関連の求職者の50%以上がスカウトを活用していることが分かった。

news007.jpg サーバルーム配線事情:サーバルームの「明るい家族計画」
ちょっと目を離すとネズミの子供のごとく増えるケーブル。勝利の決め手は「事前の準備」だ。

news008.jpg アプリケーションに見るトラステッド・コンピューティング:ノートPCのデータを絶対に漏えいさせないために
TPMを用いてPC内のデータ保護が行えるBitLockerは、企業におけるセキュリティソリューションの切り札になるだろう。常に情報漏えいの危険性を伴っていた外出時のノートPCの利用が、BitLockerによって劇的に安全になるのだ。

news008.jpg BIの導入ステップを理解する
Business Intelligence(BI)の役割は、業務システムなどに蓄積される多くの情報を一元化し、さまざまな分析環境・方法を提供して企業の意思決定を助けることにある。社員全員が利用できるBIの導入ステップを解説しよう。

news009.jpg Gadget Hacks:chumby――米国生まれの情報端末に家電の未来を見る
FOOキャンプで産声を上げたchumbyは、これまでの情報端末の姿を変える可能性を秘めている。何より、開発元がハッキングを推奨するといういい意味でGeekのためのデバイスとなっているのが素晴らしい。

news015.jpg Magi's View:Web2.0で起業を志す者に捧げる9つの心得
1年前に投稿されたこの記事。「来年の今ごろになれば、Web2.0などは過去の出来事の1つに成り果てている可能性すらある」と述べられているが、現状と併せて読み進めてみると、幾分の真実が含まれている。

news051.jpg 今日から学ぶCOBIT:IT人材管理から学ぶ――「計画と組織」ドメインと10個のプロセス
「計画と組織」ドメインにおける、10個のプロセスについて紹介しよう。

エンタープライズ インフォメーション