CPUの仮想化サポート技術は一体何をサポートしているのか--仮想化技術をひも解く(5)

谷川耕一

2007-08-01 08:00

 前回はサーバの仮想化技術について、その概要を説明した。その際にも触れたが、現状の仮想化ブームを後押ししているのはサーバの仮想化だ。そのサーバの仮想化を後押ししているのが、VMwareやXenといった仮想化を実現するソフトウェアの普及であり、IntelやAMDなどのプロセッサが提供するサーバ仮想化をサポートする技術の登場であろう。

 プロセッサにもさまざまなものがあるが、LinuxやWindowsといった現在最も身近に普及しているOSの仮想サーバを実現するのであれば、いわゆるx86アーキテクチャをサポートするIntelとAMDのプロセッサ搭載マシンがプラットホームとなる。今回は、Intel、AMDが提供する仮想化サポート技術をひも解いてみたい。

本来は1台のマシンに1つのOS

 一部のハードウェアを除き、これまでは物理的に1台のマシンでは1つのOSだけが動くようなアーキテクチャになっていた。そのため、1つのOSがすべてのハードウェアリソースを占有できたが、仮想化により複数のOSが1台で動くようになると、本来1つのOS用に用意されていたリソースを複数のOSで共有して利用しなければならない。

 ストレージのようにゲストOS 1の領域、2の領域と分けられるリソースならば問題はないが、もともと1つのOS用に用意されたリソースには分離できないものもある。そのため、仮想サーバを実現しようとすると、仮想化ソフトウェアがゲストOSの要求に応じ、分離できないリソースを切り分けてゲストOSに渡す必要がある。

 プロセッサによる仮想化サポート技術がない場合は、この切り分け処理をソフトウェア的に行わなければならない。そのためにゲストOSのソースコードを変更したり、ゲストOSからのハードウェアに対する命令を仮想化ソフトウェアでバイナリ変換する必要があった。OSのソースコードを変更するとなると、ソースコードが公開されている必要がある。また、OSパッチを適用する際には、その都度動作を検証する必要があるかもしれない。

 当然ながら、複数のゲストOS間で頻繁にリソースの切り替えが発生する場合、ソフトウェアのバイナリ変換処理で仮想化すると仮想化ソフトウェアに大きな負荷が発生する。また、このゲストOSの命令を代理実行する実装はかなり複雑で、仮想化ソフトウェアを提供するベンダーは、システムの信頼性を確保するためにそれなりの時間と手間が必要だ。ゲストOSに対しソースコードの改変が必要となるのが、旧来のXenの仮想化実現方法だ。一方、ソフトウェアでバイナリ変換処理をするのが、VMwareのハイパーバイザーということになる。

最初から仮想サーバが動くようにする

 このような仮想化の問題点を大幅に解決したのが、プロセッサの仮想化サポートの技術だ。簡単に言ってしまえば、従来1台につき1つのOSしか動かなかったプロセッサのアーキテクチャを、最初から複数のOSが動くように変えてしまうというものだ。

 この仮想化のための拡張をIntelでは「Intel-VT(Virtualization Technology)」、AMDでは「AMD-V(Virtualization)」と呼んでいる。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

関連記事

関連キーワード
インテル
Intel
AMD
日本AMD
仮想化

ZDNET Japan クイックポール

所属する組織のデータ活用状況はどの段階にありますか?

NEWSLETTERS

エンタープライズコンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]