検索
特集/連載

「完全仮想化」と「準仮想化」は結局どちらが優れているのか?完全仮想化と準仮想化の違い【後編】

仮想化技術には大きく「完全仮想化」と「準仮想化」の2種類がある。仕組みや特徴が異なる技術だが、IT管理者はどちらを選ぶべきなのか。

Share
Tweet
LINE
Hatena

関連キーワード

OS | 仮想マシン(VM) | サーバ仮想化


 仮想化には大きく2種類の方式がある。ハイパーバイザーで動作するゲストOSの中身に何も変更を加えないで動作させる「完全仮想化」(full virtualization)に対して、ゲストOSに変更を加えて性能向上を図る仕組みを「準仮想化」(Para Virtualization)と呼ぶ。両者にはそれぞれメリットとデメリットがある。どのような違いがあるのかを解説する。

「完全仮想化」と「準仮想化」の違いとは

完全仮想化と準仮想化の重要な違い

 完全仮想化は、ハイパーバイザーが物理ハードウェアを直接仮想化して、仮想マシン(VM)を提供する方式だ。この方式は後述する仮想化支援機能が普及するまで、転送速度などのパフォーマンスに課題があった。準仮想化はパフォーマンスの低下を軽減するため、ゲストOSとハイパーバイザーが直接通信することで、オーバーヘッド(余分な処理負荷)を削減する。

 その他、準仮想化では以下のリスクがある。

  • ハイパーバイザーとゲストOS間でVMの処理に関する指示(ハイパーコール)を交換するためのAPI(アプリケーションプログラミングインタフェース)に依存する
  • ゲストOSのパッチやアップデートによって機能しなくなる
  • 別のゲストOSへの切り替えが難しい

 それに対して、完全仮想化は、ハイパーバイザー自体が事実上のホストOSとして機能するため、ハードウェアとゲストOSの分離を実現する。

ハードウェア支援による仮想化について

 完全仮想化では、ハイパーバイザーによってメモリやプロセッサといった物理リソースを抽象化して、論理的なリソースとして扱う。つまり、ハイパーバイザーは物理リソースと論理リソースを変換するが、仮想化技術が登場した初期はこの変換作業にオーバーヘッドが生じていた。そのため、ハイパーバイザーが作成できるVMの数は制限されていた。

 しばらくして、プロセッサに「VMごとにメモリを割り当てる」といった、仮想化専用の命令を追加することで、仮想化処理を高速化する「仮想化支援機能」が開発された。例えばIntelの仮想化支援機能「Intel Virtualization Technology」(Intel VT)やAdvanced Micro Devices(AMD)の仮想化支援機能「AMD Virtualization」(AMD-V)などがある。

完全仮想化と準仮想化:結論

 最近のプロセッサには標準で、仮想化支援機能が組み込まれている。そのため完全仮想化に伴うパフォーマンスの低下は問題でなくなりつつある。完全仮想化は、VMが他のVMやホストOSから分離されるというメリットがあり、変更を加えず任意のOSを使用できる。それに対して、準仮想化は完全仮想化ほどの支持を得られず、近年は実験的なユースケースでの利用にとどまっている。

TechTarget発 世界のインサイト&ベストプラクティス

米国TechTargetの豊富な記事の中から、さまざまな業種や職種に関する動向やビジネスノウハウなどを厳選してお届けします。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る