概要
仮想マシン (VM) とは、独立したシステムとして機能するコンピューティング環境です。プールされたハードウェアリソースを使用して作成され、固有の CPU、メモリー、ネットワーク・インタフェース、ストレージを持ちます。ハイパーバイザーと呼ばれるソフトウェアが、必要なコンピューティング・リソースを分離し、VM の作成と管理を可能にします。
VM を実行する物理的なマシンは、ホストマシン、ホストコンピュータ、ホスト・オペレーティングシステム、または単にホストと呼ばれます。リソースを使用する多数の VM は、ゲストマシン、ゲストコンピュータ、ゲスト・オペレーティングシステム、または単にゲストと呼ばれます。ハイパーバイザーは、CPU、メモリー、ストレージなどのコンピューティング・リソースを、既存のゲスト間で、または新しい仮想マシンに容易に再配置できるリソースのプールとして扱います。
VM を使うと、複数の異なるオペレーティングシステムを 1 台のコンピュータ上で同時に実行できます。たとえば MacOS や Windows システム上で Linux® ディストリビューションを実行できます。各オペレーティングシステムは、オペレーティングシステムやアプリケーションがホストハードウェア上で通常実行されるときと同じ方法で実行されるので、VM 上でエミュレートされるユーザーエクスペリエンスは、物理マシン上で実行されるリアルタイムのオペレーティングシステムの場合とほぼ同じです。
仮想化とは
仮想化とは、従来ハードウェアに拘束されていたリソースを活用するテクノロジーを指します。物理マシンのさまざまな能力を複数のユーザーや環境の間で分散することにより、その能力をフル活用できます。
仮想化の種類には次のようなものがあります。
データ仮想化:データソースを統合し、動的な単一のデータ供給元として使用できるようにします
デスクトップ仮想化:複数のシミュレートされたデスクトップ環境を管理者が一元的にデプロイおよび制御できるようにします
サーバー仮想化:管理者がサーバーを複数の構成に分割し、それぞれの構成に個別の機能を割り当てることができるようにします
オペレーティングシステム仮想化:1 台のコンピュータ上で複数のオペレーティングシステムを実行できるようにします
ネットワーク機能仮想化 (NFV):ネットワークの機能 (ディレクトリサービス、ファイル共有、IP 設定など) を分割して、複数の環境に分散させることができます
ハイパーバイザーの仕組み
VM は 1 つのデータファイルで定義することができます。このデータファイルはコンピュータ間で移動させることができ、どのコンピュータでも開くことが可能で、どこでも同じように動作します。ハイパーバイザーがハードウェアを管理し、物理リソースを仮想環境から分離します。リソースは、必要に応じて物理環境から VM にパーティション分割されます。実際に処理を行うのは物理ハードウェアなので、ハイパーバイザーがスケジュールを管理しているときは、CPU は VM から要求された CPU 命令を実行します。
稼働中の VM で、ユーザーまたはプログラムが発行する命令で物理環境のリソースが余分に必要になった場合、ハイパーバイザーはその要求を物理システムのリソースにスケジューリングし、仮想マシンのオペレーティングシステムとアプリケーションが物理リソースの共有プールにアクセスできるようにします。
Linux® 環境では、組み込みのハイパーバイザーは カーネルベースの仮想マシン (KVM) と呼ばれます。その他にも、オープンソースの Xen や、Microsoft Hyper-V があります。
仮想化に使用できるハイパーバイザーには 2 種類あります。
Type 1
Type 1 ハイパーバイザーはベアメタルです。VM リソースはハイパーバイザーによって直接ハードウェアにスケジューリングされます。KVM は Type 1 ハイパーバイザーの例です。
Type 2
Type 2 ハイパーバイザーはホスト型です。VM リソースはホスト・オペレーティングシステムに対してスケジューリングされ、ハードウェアに対して実行されます。VMware Workstation と Oracle VirtualBox は Type 2 ハイパーバイザーの例です。
VM のメリット
仮想化によって、複数のオペレーティングシステムを並行して実行でき、同じ仮想化ハードウェアリソースを共有できます。仮想化を使用しない場合、ハードウェア上で実行できるオペレーティングシステムは 1 つだけです。
VM を使用する最大の理由はサーバーの統合です。ほとんどのオペレーティングシステムとアプリケーションは、ベアメタルにデプロイした場合、少量の物理リソースしか使用しません。サーバーを仮想化すると、多数の仮想サーバーを物理サーバーに配置して、ハードウェアの使用率を改善できます。
すると、ハードドライブやハードディスクなどの物理リソースを追加購入する必要がなくなり、データセンターでの電力、スペース、冷却の要件も緩和されます。VM によって障害復旧の手段が追加され、これまではハードウェアを増設しなければ達成できなかった、フェイルオーバーと冗長性が可能になります。
VM は、残りのシステムから分離された環境を提供するので、VM 内部で何が実行されていても、ホストハードウェア上で実行されるものには影響しません。
VM は分離されているので、新しいアプリケーションのテストやプロダクション環境の設定を行うのに適しています。特定のプロセスをサポートする、専用の VM を実行することもできます。
VM とクラウドの関係
仮想化は、クラウド・コンピューティングを支えているテクノロジーのひとつです。パブリッククラウドとプライベートクラウドは、リソースを仮想化して共有プールとし、管理制御レイヤーを追加して、自動化されたセルフサービス機能でこれらのリソースを提供します。
クラウドを構築する仮想化、管理、自動化ソフトウェアはすべて、物理リソース、仮想データプール、管理ソフトウェア、自動化スクリプト、顧客間の接続を維持するオペレーティングシステムの上に配置されています。
Red Hat を選ぶ理由
Red Hat は長年にわたり、オープンソースの仮想化ソフトウェア開発に貢献してきました。 Red Hat OpenShift の機能である Red Hat® OpenShift® Virtualization を使用すると、IT チームは仮想マシン (VM) をコンテナ化されたワークフローに取り入れることができます。VM をコンテナ内で実行すると、チームは VM をコンテナと並行して、すべてを単一のプラットフォーム上でデプロイして管理できます。これにより組織は、仮想化に対する既存の投資から利益を得ながら、先進的なアプリケーション・プラットフォームのシンプルさとスピードを活用することができます。
既存の仮想マシンは、無料の直感的な移行ツールを使用して、他のプラットフォームから OpenShift アプリケーション・プラットフォームに移行できます。その結果作成される VM は、同じ Red Hat OpenShift ノードでコンテナと一緒に実行されます。