仮想マシンとは(なぜ、いつ使用するのか)

ソフトウェア業界またはその周辺で働いている場合は、おそらく仮想マシンについて聞いたことがあるでしょう。 そうでない場合は、それらが何であり、何に使用されるのか疑問に思うかもしれません。

私はソフトウェア エンジニアとして、毎日仮想マシンを使用しています。 これらはソフトウェア開発における強力なツールですが、他の用途もあります。 VM とも呼ばれ、柔軟性、信頼性、費用対効果が高いため、多くの企業が VM を使用しています。 また、暴走したソフトウェア テストによる災害を防ぎます。

仮想マシンとは何か、なぜ使用されるのかを見てみましょう。

仮想マシンとは何ですか?

仮想マシンは、コンピューターのメイン OS 内で実行されている Windows、Mac OS、または Linux などのオペレーティング システム (OS) のインスタンスです。

通常、デスクトップのアプリ ウィンドウで実行されます。 仮想マシンには完全な機能があり、別のコンピューターまたはマシンのように機能します。 本質的に、仮想マシンは、ホスト マシンと呼ばれる別のコンピューター内で実行される仮想コンピューターです。

仮想マシン 1
画像 1: ラップトップで実行されている仮想マシン。

仮想マシンにはハードウェア (メモリ、ハード ドライブ、キーボード、またはモニター) がありません。 ホスト マシンからシミュレートされたハードウェアを使用します。 このため、「ゲスト」とも呼ばれる複数の VM を単一のホスト マシンで実行できます。

仮想マシン 2
画像 2: 複数の VM を実行するホスト マシン。

ホストは、Linux、Mac OS、Windows などの異なるオペレーティング システムで複数の VM を実行することもできます。 この機能は、ハイパーバイザーと呼ばれるソフトウェアに依存しています (上の画像 1 を参照)。 ハイパーバイザーはホスト マシン上で実行され、仮想マシンの作成、構成、実行、および管理を可能にします。

ハイパーバイザーは、ディスク領域を割り当て、処理時間をスケジュールし、各 VM のメモリ使用量を管理します。 これは、Oracle のようなアプリケーションです。 VirtualBox, ヴイエムウェア, Parallelsの、Xen、Microsoft Hyper-V、および他の多くがそうです。それらはハイパーバイザーです。

ハイパーバイザーは、ラップトップ、PC、またはサーバーで実行できます。 これにより、ローカル コンピューターまたはネットワーク全体に分散されたユーザーが仮想マシンを使用できるようになります。

異なるタイプの仮想マシンと環境には、異なるタイプのハイパーバイザーが必要です。 それらのいくつかを見てみましょう。

仮想マシンの種類

システム仮想マシン

完全仮想化とも呼ばれるシステム VM は、ハイパーバイザーによって実行され、実際のコンピューター システムの機能を提供します。 ホストのネイティブ オペレーティング システムを使用して、システム リソースを管理および共有します。

システム仮想マシンには、多くの場合、高速または複数の CPU、大容量のメモリ、および大量のディスク容量を備えた強力なホストが必要です。 パーソナル コンピューターまたはラップトップ コンピューターで実行されるものは、大企業の仮想サーバーが必要とするコンピューティング パワーを必要としない場合があります。 ただし、ホスト システムが適切でない場合は、実行が遅くなります。

仮想マシンの処理

プロセス仮想マシンは、SVM とはまったく異なります。マシン上でそれらを実行していても、それを認識していない場合があります。 アプリケーション仮想マシンまたはマネージド ランタイム環境 (MRE) とも呼ばれます。 これらの仮想マシンは、ホスト オペレーティング システム内で実行され、アプリケーションまたはシステム プロセスをサポートします。

PVM を使用する理由特定のオペレーティング システムやハードウェアに依存することなく、サービスを実行します。 彼らは、必要なリソースだけを備えた独自の小さな OS を持っています。 MRE は別の環境にあります。 Windows、Mac OS、Linux、またはその他のホスト マシンで動作するかどうかは問題ではありません。

最も一般的なプロセス仮想マシンの XNUMX つは、おそらく耳にしたことがあり、コンピューター上で実行されているのを見たことがあるかもしれません。 Java アプリケーションを実行するために使用され、略して Java 仮想マシンまたは JVM と呼ばれます。

ハイパーバイザーの種類

私たちが関心を持っているほとんどの仮想マシンは、コンピューター システム全体をエミュレートするため、ハイパーバイザーを使用しています。 ハイパーバイザーには、ベア メタル ハイパーバイザーとホステッド ハイパーバイザーの XNUMX 種類があります。 両方を簡単に見てみましょう。

ベアメタル ハイパーバイザー

BMH はネイティブ ハイパーバイザーとも呼ばれ、ホストのオペレーティング システム内ではなく、ホストのハードウェア上で直接実行されます。 実際、ホストのオペレーティング システムに代わって、各仮想マシンによるハードウェアの使用をスケジュールおよび管理し、プロセスの「仲介者」(ホストの OS) を排除します。

ネイティブ ハイパーバイザーは通常、企業が従業員にサーバー リソースを提供するために使用する大規模なエンタープライズ VM に使用されます。 Microsoft Azure または Amazon Web Services は、このタイプのアーキテクチャでホストされる VM です。 その他の例として、KVM、Microsoft Hyper-V、および VMware vSphere があります。

ホステッド ハイパーバイザー

ホステッド ハイパーバイザーは、マシン上で実行する他のアプリケーションと同様に、標準のオペレーティング システム上で実行されます。 ホストの OS を使用して、リソースを管理および配布します。 このタイプのハイパーバイザーは、マシン上で複数のオペレーティング システムを実行する必要がある個々のユーザーにより適しています。

これらには、Oracle VirtualBox、VMware Workstations、VMware Fusion、Parallels Desktop などのアプリケーションが含まれます。 ホスト型ハイパーバイザーの詳細については、次の記事をご覧ください。 最高の仮想マシン ソフトウェア.

仮想マシンを使用する理由

仮想マシンとは何かについての基本的な理解ができたので、いくつかの優れたアプリケーションを思いつくことができるでしょう。 人々が仮想マシンを使用する主な理由のいくつかを次に示します。

1。 費用対効果の高い

仮想マシンは、さまざまな状況で費用対効果が高くなります。 最も顕著な例の XNUMX つは、企業の世界です。 従業員にリソースを提供するために物理サーバーを使用すると、非常にコストがかかる可能性があります。 ハードウェアは安くはありませんが、それを維持するにはさらにコストがかかります。

仮想マシンをエンタープライズ サーバーとして使用することは、今や標準になっています。 MS Azure などのプロバイダーの VM を使用すると、ハードウェアの初期購入やメンテナンス料金は不要です。 これらの VM は、わずか XNUMX 時間あたり XNUMX ペニーでセットアップ、構成、および使用できます。 使用しないときはシャットダウンすることもでき、コストはまったくかかりません。

マシンで VM を使用すると、大幅なコスト削減にもなります。 複数のオペレーティング システムまたは異なるハードウェア構成で作業する必要がある場合は、
XNUMX つのホストで複数の仮想マシンを使用できます。タスクごとに別のコンピュータを購入する必要はありません。

2. スケーラブルで柔軟

エンタープライズ サーバーであっても、ラップトップで実行されている VM であっても、仮想マシンはスケーラブルです。 ニーズに合わせてリソースを簡単に調整できます。 より多くのメモリまたはハード ディスク容量が必要な場合は、ハイパーバイザーに移動し、VM を再構成して容量を増やしてください。 新しいハードウェアを購入する必要はなく、プロセスは迅速に完了できます。

3.クイックセットアップ

新しい VM をすばやくセットアップできます。 新しい VM のセットアップが必要になり、それらを管理している同僚に電話して、XNUMX 時間もかからずに使用できるようになったというケースがありました。

4.ディザスタリカバリ

データの損失を防ぎ、障害復旧に備えようとしている場合、VM は素晴らしいツールになる可能性があります。 それらは簡単にバックアップでき、必要に応じて別の場所に配布できます。 Microsoft や Amazon などのサード パーティが仮想マシンをホストしている場合、仮想マシンはオフサイトになります。つまり、オフィスが全焼してもデータは安全です。

5.再現しやすい

ほとんどのハイパーバイザーでは、VM のコピーまたはイメージを作成できます。 イメージングを使用すると、どのような状況でも同じベース VM の正確な複製を簡単に作成できます。

私が働いている環境では、開発とテストに使用する VM をすべての開発者に提供しています。 このプロセスにより、必要なすべてのツールとソフトウェアを使用してイメージを構成できます。 新しい開発者のオンボーディングを行う場合、そのイメージのコピーを作成するだけで、彼らは作業に必要なものを手に入れることができます。

6. 開発/テストに最適

仮想マシンを使用する最大の利点の XNUMX つは、仮想マシンがソフトウェアの開発とテストに最適なツールであることです。 VM を使用すると、開発者は XNUMX 台のマシンで複数のプラットフォームと環境で開発を行うことができます。 その VM が破損または破壊された場合、新しい VM をすぐに作成できます。

テスト担当者は、テスト サイクルごとにクリーンな新しい環境を使用できます。 私は、新しい VM を作成し、最新のソフトウェア バージョンをインストールし、必要なすべてのテストを実行し、テストが完了したら VM を削除する自動テスト スクリプトをセットアップするプロジェクトに取り組んできました。

VM は、TechFewer.com で行っているような製品のテストやレビューに最適です。 マシンで実行されている VM にアプリをインストールして、プライマリ環境を乱雑にすることなくテストできます。

テストが完了したら、いつでも仮想マシンを削除して、必要なときに新しい仮想マシンを作成できます。 このプロセスにより、Windows マシンしか持っていない場合でも、複数のプラットフォームでテストすることができます。

最後の言葉

お分かりのように、仮想マシンは、多くのアプリケーションに使用できる、費用対効果の高い多用途のツールです。 テスターや開発者などにサーバー アクセスを提供するために、高価なハードウェアを購入、セットアップ、維持する必要はもうありません。 VM によって、必要なオペレーティング システム、ハードウェア、および環境をいつでも簡単かつ迅速に作成できる柔軟性が得られます。