ハードウェア仮想化

From Wikipedia, the free encyclopedia

ハードウェア仮想化(ハードウェアかそうか、: hardware virtualization)とは、ソフトウェアを使用してコンピュータリソース仮想マシンと呼ばれる個別の分離されたエンティティに分割することである。つまり、完全なハードウェアプラットフォーム、コンポーネントの特定の論理的抽象化、またはさまざまなオペレーティングシステム (OS) の実行に必要な機能のみとしてのコンピュータの仮想化である。ハードウェア仮想化により、同一または異なるOSの複数のコピーをコンピュータ上で実行することができ、異なる仮想マシンのアプリケーションが互いに干渉し合うのを防ぐことができる[1]。仮想化は、コンピューティングプラットフォームの物理的特性をユーザーから隠し、代わりに抽象的なコンピューティングプラットフォームを提示する。[2][3]当初、仮想化を制御するソフトウェアは「制御プログラム」と呼ばれていたが、「ハイパーバイザ」または「仮想マシンモニター」という用語が徐々に好まれるようになった。[4]

「仮想化」という用語は、1960年代に、実験的なIBM M44/44Xシステムに由来する仮想マシン(「疑似マシン」と呼ばれることもある)を指すために造られた[要出典]。仮想マシンの作成と管理は、最近では「プラットフォーム仮想化」または「サーバ仮想化」と呼ばれている。

プラットフォームの仮想化は、ホストソフトウェア(制御プログラム)によって特定のハードウェアプラットフォーム上で実行される。ホストソフトウェアは、ゲストソフトウェア用にシミュレートされたコンピュータ環境である仮想マシン(VM)を作成する。ゲストソフトウェアはユーザーアプリケーションに限定されない。多くのホストは、完全なOSを実行できる。ゲストソフトウェアは、物理ハードウェア上で直接実行されているかのように実行されるが、いくつかの注意点がある。物理システムリソース(ネットワークアクセス、ディスプレイ、キーボード、ディスクストレージなど)へのアクセスは、通常、ホストプロセッサやシステムメモリへのアクセスよりも厳しく管理される。仮想化ホストによって実装されたハードウェアアクセスポリシーに応じて、ゲストは特定の周辺機器へのアクセスを制限されたり、デバイスのネイティブ機能の一部に限られたりすることがよくある。

仮想化は、ハイパーバイザの実行に必要なリソースと、物理マシンでネイティブに実行する場合と比較して仮想マシンでのパフォーマンスの低下の両方で、パフォーマンスの低下を招くことがよくある。

仮想化の理由

  • サーバ統合の場合、CPUやハードドライブなどのより多くの(コストのかかる)ハードウェアリソースの必要性を減らすために、多くの小さな物理サーバが1つの大きな物理サーバに置き換えられる。ハードウェアは仮想環境に統合されているが、通常、OSは統合されていない。代わりに、物理サーバで実行されている各OSは、仮想マシン内で実行されている個別のOSに変換される。これにより、大規模サーバはそのような多くの「ゲスト」仮想マシンを「ホスト」できる。これは、物理から仮想(P2V)への変換として知られている。
  • サーバの統合は、機器のメンテナンスに関連する機器と人件費の削減に加えて、エネルギー消費とテクノロジーの環境生態学的セクターにおける世界的なフットプリントを削減するという追加の利点もある。たとえば、一般的なサーバは425で実行される W [5]とVMwareは、最大15:1のハードウェア削減率を見積もっている。[6]
  • 仮想マシン(VM)は、物理マシンよりもリモートサイトから簡単に制御および検査でき、VMの構成はより柔軟である。これは、カーネル開発や、最新のハードウェアをサポートしていないレガシーOSの実行など、OSコースの指導に非常に役立つ[7]
  • 事前にハードウェアを購入しなくても、必要に応じて新しい仮想マシンをプロビジョニングできる。
  • 仮想マシンは、必要に応じて、ある物理マシンから別の物理マシンに簡単に再配置できる。たとえば、顧客に行く営業担当者は、物理コンピュータを輸送することなく、デモソフトウェアを備えた仮想マシンをラップトップにコピーできる。同様に、仮想マシン内のエラーはホストシステムに害を及ぼさないため、ラップトップでOSがクラッシュするリスクはない。
  • この再配置の容易さにより、仮想マシンは、再生されたエネルギー源や障害のあるエネルギー源の影響を心配することなく、災害復旧シナリオで簡単に使用できる。

ただし、複数のVMが同じ物理ホストで同時に実行されている場合、各VMは、他のVMによってシステムに課せられるワークロードに大きく依存するさまざまな不安定なパフォーマンスを示す可能性がある。この問題は、仮想マシン間の一時的な分離のための適切なインストール手法によって対処できる。

プラットフォームの仮想化にはいくつかのアプローチがある。

仮想化のユースケースの例:

  • ホストOSでサポートされていない1つ以上のアプリケーションの実行:必要なゲストOSを実行している仮想マシンは、ホストOSを変更せずに、目的のアプリケーションの実行を許可できる。
  • 代替OSの評価:ホストOSを変更せずに、新しいOSをVM内で実行できる。
  • サーバの仮想化:物理サーバのハードウェアリソースをより完全に活用するために、単一の物理サーバで複数の仮想サーバを実行できる。
  • 特定の環境の複製:仮想マシンは、使用する仮想化ソフトウェアに応じて、複製して複数のホストにインストールするか、以前にバックアップしたシステム状態に復元することができる。
  • 保護された環境の作成:マルウェアの調査や動作の悪いソフトウェアのインストールなど、VMで実行されているゲストOSが修復に費用効果の低い方法で損傷した場合、VMは害を及ぼすことなく単純に破棄される可能性がある。ホストシステム、およびゲストの再起動時に使用されるクリーンコピー。

完全仮想化

完全仮想化の論理図。

完全仮想化では、仮想マシンは十分なハードウェアをシミュレートして、同じ命令セット用に設計された変更されていない「ゲスト」OSを分離して実行できるようにする。このアプローチは、VMファミリの前身であるIBM CP-40およびCP-67で1966年に開拓された。

ハードウェア支援仮想化

ハードウェア支援仮想化では、ハードウェアは、仮想マシンモニターの構築を容易にし、ゲストOSを分離して実行できるようにするアーキテクチャサポートを提供する。[8]ハードウェア支援仮想化は、最初の仮想マシンOSであるVM / 370で使用するために、1972年にIBM System / 370に最初に導入された。

2005年と2006年に、インテルAMDは仮想化をサポートするための追加のハードウェアを提供した。サン・マイクロシステムズ(現在のオラクル)は、2005年にUltraSPARCTシリーズプロセッサに同様の機能を追加した。

2006年、第1世代の32ビットおよび64ビットx86ハードウェアサポートが、ソフトウェア仮想化よりもパフォーマンス上の利点を提供することはめったになかった。[9]

準仮想化

準仮想化では、仮想マシンは必ずしもハードウェアをシミュレートする必要はないが、代わりに(またはさらに)変更することによってのみ使用できる特別なAPIを提供する[要説明]「ゲスト」OS。これを可能にするには、「ゲスト」OSのソースコードが利用可能である必要がある。ソースコードが利用可能な場合は、機密性の高い命令をVMM APIの呼び出しに置き換えて(例:「cli」と「vm_handle_cli()」)、OSを再コンパイルして新しいバイナリを使用するだけで十分である。ハイパーバイザへのこのシステムコールは、TRANGOおよびXenでは「ハイパーバイザコール」と呼ばれる。これは、VM下のIBMのCMSでDIAG(「診断」)ハードウェア命令を介して実装される[要説明](これがハイパーバイザという用語の由来だった)。

OSレベルの仮想化

OSレベルの仮想化では、物理サーバはOSレベルで仮想化され、複数の分離された安全な仮想化サーバを単一の物理サーバで実行できるようにする。「ゲスト」OS環境は、ホストシステムと同じOSの実行中のインスタンスを共有する。したがって、同じカーネルを使用して「ゲスト」環境を実装し、特定の「ゲスト」環境で実行されているアプリケーションは、それをスタンドアロンシステムと見なす。

ハードウェア仮想化ディザスタリカバリ

脚注

外部リンク

Related Articles

Wikiwand AI