ハイパーバイザーとは
ハイパーバイザーは、演算処理、メモリー、ストレージなどのコンピューティング・リソースをプールし、それらを 仮想マシン (VM) 間で再割り当てするソフトウェアです。このテクノロジーによって仮想化が可能になり、1 つの物理マシンから多数の VM を作成して実行することができます。
ハイパーバイザーは仮想マシンモニター (VMM) と呼ばれることもあります。VM を構成するコンポーネントの分散を担当するスーパーバイザーと考えるとわかりやすいでしょう。ハイパーバイザーは、物理ハードウェアからリソースを取得して複数の VM に一度に提供し、新しい VM の作成と既存の VM の管理を可能にします。ハイパーバイザーとして使用される物理ハードウェアはホストと呼ばれます。一方、そのリソースを使用する多くの VM がゲストです。
ハイパーバイザーの仕組み
すべてのハイパーバイザーは、VM を稼働するためにオペレーティング・システム・レベルのコンポーネントが必要です。たとえば、メモリーマネージャー、プロセス・スケジューラー、入出力 (I/O) スタック、デバイスドライバー、セキュリティ・マネージャー、ネットワークスタックなどです。
ハイパーバイザーは割り当てられているリソースを各仮想マシンに付与し、物理リソースに対する VM リソースのスケジューリングを管理します。実際に処理を行うのは物理ハードウェアなので、ハイパーバイザーがスケジュールを管理しているときは、CPU は VM から要求された CPU 命令を実行します。
複数の異なるオペレーティングシステムを並行して実行でき、同じ仮想化ハードウェアリソースをハイパーバイザーと共有できます。これが仮想化の主なメリットです。仮想化を使用しない場合、ハードウェア上で実行できるオペレーティングシステムは 1 つだけです。
ハイパーバイザーには、従来のベンダーからオープンソースまで多くの選択肢があります。 VMware は仮想化の選択肢として一般的で、ESXi ハイパーバイザーと vSphere 仮想化プラットフォームを提供しています。
Kernel-based Virtual Machine (KVM) はオープンソースの選択肢で、Linux® カーネルの一部です。 その他にも、オープンソースの Xen や、Microsoft Hyper-V があります。
ハイパーバイザーの種類
仮想化に使用できるハイパーバイザーには、Type 1 と Type 2 の 2 種類があります。
Type 1
Type 1 ハイパーバイザーは、ネイティブ・ハイパーバイザーあるいはベアメタル・ハイパーバイザーとも呼ばれ、ホストのハードウェア上で直接稼働し、ゲスト・オペレーティングシステムを管理します。ホスト・オペレーティングシステムの代わりになり、VM リソースを直接ハードウェアにスケジューリングします。
このタイプのハイパーバイザーは、エンタープライズ・データセンターをはじめとするサーバーベースの環境において最も一般的です。
Type 1 ハイパーバイザーの例には、KVM、Microsoft Hyper-V、VMware vSphere があります。KVM は 2007 年に Linux カーネルに統合されたため、最新バージョンの Linux を使用していれば、 KVM も使用できます。
Type 2
Type 2 ハイパーバイザーは、ホスト型ハイパーバイザーとも呼ばれ、従来のオペレーティングシステム上で、ソフトウェアレイヤーまたはアプリケーションとして実行されます。
ホスト・オペレーティングシステムからゲスト・オペレーティングシステムを抽象化することで機能します。VM リソースはホスト・オペレーティングシステムに対してスケジューリングされ、ハードウェアに対して実行されます。
Type 2 ハイパーバイザーは、パーソナルコンピュータで複数のオペレーティングシステムを実行する個人ユーザーに適しています。
VMware Workstation と Oracle VirtualBox は Type 2 ハイパーバイザーの例です。
Red Hat のリソース
コンテナとVM
表面的には、コンテナと VM は似ているように見えます。両方ともさまざまな IT コンポーネントが組み合わさってシステムの他の部分から分離している、パッケージ化されたコンピューティング環境です。大きな違いは、スケーラビリティと可搬性にあります。
コンテナとは、システムの他の部分とは分離された一連のプロセスです。コンテナでは、プロセスは指定されたリソース要求にしかアクセスできません。これらのリソース制限により、コンテナは十分な容量があるノードで稼働できます。
VM はそれ自身のオペレーティングシステム (OS) を持つため、リソースを集中的に使用する複数の機能を一度に実行できます。多くのリソースを利用できるので、サーバー、OS、デスクトップ、データベース、およびネットワーク全体の抽象化、分割、複製、エミュレートが可能です。
ハイパーバイザーを使用すると、VM で複数のオペレーティングシステムを実行できますが、コンテナが実行できるオペレーティングシステムのタイプは 1 つだけです。たとえば、Linux サーバーで稼働しているコンテナが実行できるのは、Linux オペレーティングシステムだけです。
コンテナはハイパーバイザーを置き換えるものとみなされることもありますが、コンテナと仮想化は異なるニーズを満たすものなので、この考え方は正確ではありません。
ハイパーバイザーのセキュリティに関する考慮事項
VM は、残りのシステムから分離された環境を提供するので、VM 内部で何が実行されていても、ホストハードウェア上で実行されるものには影響しません。
VM はそれぞれが分離されているため、1 つの VM で防御が突破されても、システム全体に影響はありません。
ただし、ハイパーバイザー自体がハッキングされると、ハイパーバイザーが管理するすべての VM に問題が発生し、各 VM のデータが危険にさらされます。
セキュリティプロトコルと要件は、ハイパーバイザーの種類によって異なる場合があります。
Red Hat の仮想化を選ぶ理由
ハイパーバイザーは仮想化プラットフォームの基盤となります。Red Hat® は、KVM と oVirt のコミュニティにおける設立以来のコントリビューターとして KVM ハイパーバイザーの改良に携わり、長期にわたり仮想化の開発を支えてきました。
Red Hat OpenShift の機能である Red Hat OpenShift® Virtualization を使用すると、IT チームは仮想マシン (VM) をコンテナ化されたワークフローに取り入れることができます。VM をコンテナ内で実行すると、チームは VM をコンテナと並行して、すべてを単一のプラットフォーム上でデプロイして管理できます。これにより組織は、仮想化に対する既存の投資から利益を得ながら、先進的なアプリケーション・プラットフォームのシンプルさとスピードを活用することができます。
既存の仮想マシンは、無料の直感的な移行ツールを使用して、他のプラットフォームから OpenShift アプリケーション・プラットフォームに移行できます。その結果作成される VM は、同じ Red Hat OpenShift ノードでコンテナと一緒に実行されます。
Red Hat 公式ブログ
Red Hat のお客様、パートナー、およびコミュニティのエコシステムに関する最新の情報を入手しましょう。