1. 概要

過去数年間で、クラウドコンピューティングの人気は着実に高まっています。 コンピューティング、ストレージ、ネットワーキングなどのコンピューターリソースのオンデマンド可用性を提供します。 クラウドコンピューティングの構成要素の1つは、仮想化です。これは、システムハードウェアをその上で実行される仮想マシンから分離するための抽象化レイヤーを提供します。

ソフトウェアベンダーは、さまざまな手法を使用してサーバー仮想化を実装しています。 このチュートリアルでは、より一般的な仮想化手法のいくつかについて説明します。

2. 完全仮想化

完全仮想化技術では、ハイパーバイザーは基盤となるハードウェアを完全にシミュレートします。 この手法の主な利点は、で変更されていないOSを実行できることです。 完全仮想化では、ゲストOSは仮想化されていることを完全に認識しません。

完全仮想化では、直接実行とバイナリ変換を組み合わせて使用します。 これにより、機密性の低いCPU命令を直接実行できますが、機密性の高いCPU命令はオンザフライで変換されます。 パフォーマンスを向上させるために、ハイパーバイザーは最近変換された命令のキャッシュを維持します。

VMwareのESXiサーバーは、この手法を使用してサーバーの仮想化を実現します。

3. 準仮想化

準仮想化では、 ハイパーバイザーは、基盤となるハードウェアをシミュレートしません。 代わりに、ハイパーコールを提供します 。 ゲストOSは、ハイパーコールを使用して機密性の高いCPU命令を実行します。 この手法は、ゲストOSでの変更が必要なため、完全仮想化ほど移植性がありません。 ただし、ゲストOSは仮想化されていることを認識しているため、パフォーマンスが向上します。

ハイパーコールはカーネルシステムコールに似ています。 これにより、ゲストOSがハイパーバイザーと通信できるようになります。

オープンソースのXenプロジェクトは、準仮想化技術を使用しています。

4. ハードウェア支援による仮想化

ネイティブ仮想化とも呼ばれるこの手法では、基盤となるハードウェアが仮想化を支援する特別なCPU命令を提供します。 この手法は、ハイパーバイザーが変更されていないゲストOSを実行できるため、移植性も高くなります。 この手法により、ハイパーバイザーの実装がより簡単になり、保守が容易になります。

IntelのIntel-VTおよびAMDのAMD-Vプロセッサは、ソフトウェアベンダーがハードウェア支援仮想化を実装するために使用するCPU仮想化命令を提供します。

5. 結論

この記事では、サーバー仮想化を実装するためのさまざまな手法について簡単に説明しました。 完全仮想化とハードウェア支援仮想化により、移植性が向上することに注目しました。 ただし、準仮想化により、ゲストOSのパフォーマンスが向上します。