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

A virtual machine (VM) is an emulated or digital version of a physical computer. Virtual machines can be used to run different operating systems and applications, store data, connect to networks, as well as perform other tasks like a physical device. Virtual machines run on a physical device called a host or parent server. And a virtual machine is called a guest or child.

この記事では、仮想マシンの動作原理とコンテナとの違いについて説明します。また、仮想マシンの最も重要な使用事例のうち、クロスプラットフォームソフトウェア開発やマルウェア調査についても詳しく説明します。

広告

仮想マシンはどのように動作するのか?

基本的に、仮想化技術を使用すると、ユーザーは1台のホスト上で複数の仮想マシンを作成して同時に実行できます。たとえば、Windowsホストは、Windows、CentOS、Ubuntu、およびその他のLinuxディストリビューションを実行できます。

A virtual server uses hypervisor software to interact with the underlying physical hardware. It makes it possible to keep VMs separate and evenly allocate host resources (CPUs, storage, and memory) to each VM guest as needed. The hypervisor can also schedule operations to prevent deadlocks.

Source: Microsoft

2種類のハイパーバイザ

仮想化で使用される2つの主要なハイパーバイザがあります。

タイプ1ハイパーバイザ(プロセスVM)

最初に、タイプ1ハイパーバイザー、別名ベアメタルハイパーバイザー、は物理コンピューター上でネイティブに実行されます。通常、仮想マシンの作成/管理やハイパーバイザー上のアクセス権の管理には別個の管理ツールが必要です。Microsoft Hyper-VCitrix Hypervisorがタイプ1ハイパーバイザーの例です。

広告

タイプ2ハイパーバイザー(システムVM)

A type 2 hypervisor, also known as a hosted hypervisor, can run as an application on the host OS. It allows users to manually create a virtual machine instance and install a guest operating system.

タイプ2ハイパーバイザーは、各仮想マシンリクエストをホストオペレーティングシステムにルーティングする必要があるため、比較的遅いです。専用サーバーを購入する余裕のない個人、開発者、中小企業向けに適しています。代表的なタイプ2ハイパーバイザーの例には、Oracle VirtualBoxVMware Workstationなどがあります。

仮想化とは何ですか?

仮想化は、物理的なホストマシン上に抽象化レイヤーを作成する技術です。これにより、1台のコンピュータのハードウェアリソース(CPU、RAM、ストレージ)を仮想マシンと呼ばれる異なる仮想コンピュータに分割するのに役立ちます。

各仮想マシンは独立したマシンとして機能し、独自のオペレーティングシステムを持っています。複数のオペレーティングシステムとアプリケーションを1つの物理サーバで実行したい組織にとって、費用対効果の高いソリューションです。

広告

仮想化の5つのタイプ

仮想化には、ハードウェア、ソフトウェア、ストレージ、ネットワーク、およびデスクトップ仮想化の5つの一般的なタイプがあります。

1. ハードウェア仮想化

ハードウェア仮想化、またはサーバー仮想化としても知られる技術は、コンピュータやオペレーティングシステムの仮想バージョンを作成することを可能にするものです。これにより、同時に複数のオペレーティングシステムを同じ物理マシンで実行できます。ハードウェア仮想化はハードウェアリソースの利用を最適化します。

2. ソフトウェア仮想化

ソフトウェア仮想化は、物理ホストマシンが複数の仮想コンピュータを実行できるようにする方法です。ハイパーバイザーソフトウェアを活用して、ハードウェアリソース(ストレージ、プロセッサ、メモリなど)を異なる仮想マシン(VM)間で分配します。例えば、LinuxディストリビューションをWindowsオペレーティングシステムを実行しているコンピュータ上で仮想マシンで実行できます。

3. ストレージ仮想化

ストレージ仮想化は、複数のネットワークストレージデバイスからの物理ストレージを1つの仮想ディスクとして統合します。これにはコスト削減、負荷分散、災害復旧計画、パフォーマンスと速度の向上など、さまざまな利点があります。

4. ネットワーク仮想化

ネットワーク仮想化は、物理ネットワークを1つのソフトウェアベースの仮想ネットワークにグループ化するプロセスです。利用可能な帯域幅をさまざまなチャネルに分散し、デバイスやサーバーに割り当てることを支援します。これにより、セキュリティ、信頼性、ネットワーク速度の向上などの利点が得られます。

5. デスクトップ仮想化

デスクトップ仮想化は、ユーザーがワークステーションの負荷をシミュレートして、どこからでもどんなデバイスからでもアクセスできるようにします。その主な利点にはコスト削減、リソースの最適化、データセキュリティの向上、管理の容易さがあります。

VMを使用する主な利点は何ですか?

VMはエンドユーザーとIT管理者の両方に様々な利点をもたらします。企業環境で非常に魅力的にするいくつかの機能のリストを以下に示します。

1. クラウドコンピューティング

仮想化技術はクラウドコンピューティングの基本アーキテクチャを提供します。これにより、企業はクラウドネイティブの仮想マシンをオンプレミスサーバー環境に展開および移行し、ハイブリッドクラウドを活用することができます。

また、組織がクラウドリソースを動的な使用要件に合わせてリアルタイムで割り当ておよび変更することも可能です。クラウドベースのVMサービスは、SaaSアプリケーションの実行、データのバックアップ、メールおよびアクセス管理サービスのホスティングなどに人気があります。

2. コスト効率

仮想マシンを使用すると、1台のサーバーで複数の仮想マシンインスタンスを作成および実行できます。ITハードウェアコストが企業にとって実際の課題となることがあるため、VMは最小限の物理的ハードウェアリソースを使用することでコスト効率を向上させるのに役立ちます。例えば、IT管理者は1台のサーバーマシンを使用して企業環境で異なるアプリケーションを展開することができます。

3. セキュリティ

ユーザーは仮想環境を作成してセキュリティを強化し、マルウェアが基礎となるハードウェアやオペレーティングシステムに影響を与えるのを防ぐことができます。サイバー攻撃の場合、ユーザーは迅速かつ簡単に侵害されたVMを以前のバージョンに戻すことが可能です。

その一方で、開発者はVMを使用して、ソフトウェアの更新やアプリをリリースする前にテストすることができます。また、VMは悪意のあるソフトウェアをテストするために研究者に役立ちます。

4. スケーラビリティと移植性

仮想化により、顧客は選択したオペレーティングシステムと特定のリソースを持つ異なる種類のVMを迅速に展開することができます。 VMは、組織がワークロードの変動により柔軟に対応するのを助けるほか、物理サーバーに異なるオペレーティングシステムをインストールするために必要な追加の時間と労力を節約することもできます。

5. ワークロードの移行

仮想マシンは物理コンピューターから分離された「自己完結型パッケージ」と呼ばれ、ITチームが高速ハードウェアに移行したり、VMを1台のサーバーから別のサーバーに移動したり、障害から回復することが容易になります。

6. ディザスタリカバリー

組織は仮想マシンを使用してシステムをクラウド環境にバックアップすることができます。この機能は追加のセキュリティ層を提供し、ハードウェアの障害などのシナリオでのデータ損失のリスクを最小限に抑えます。

7. DevOpsサポート

VMはエンタープライズの開発者をサポートするための最大限の柔軟性を提供します。ソフトウェアの開発およびテストプロセスに必要な機能を備えた孤立した環境を作成することができます。VMを使用すると、開発者は異なるオペレーティングシステムで互換性のないソフトウェアを実行およびテストすることができます。

仮想マシンとコンテナ

仮想マシンと同様に、コンテナを使用すると、基盤と分離されたアプリケーションを実行することが可能になります。ただし、仮想マシンとコンテナの主な違いについて詳しく見てみましょう:

Virtual Machines Containers
Hardware-level process isolation Operating system-level process isolation
A virtual machine offers complete isolation of apps from the host OS Containers can share some resources with the host OS
VMs use a few GBs of system memory Containers require less memory space (KBs or MBs)
Each VM has a dedicated OS Containers can share OS resources
VM is more secure Containers are less secure
Boots in minutes Boots in seconds
VMs consume more system resources Containers consume fewer resources
VMs can move between hardware Containers are destroyed and recreated
VM creation takes a considerable amount of time Users can create containers within a few seconds
Users can run any OS inside the VM Users can only run containers on the same OS version as the host
Some popular use cases of VMs are running multiple applications, monolithic applications, and legacy apps on older OS. Containers are best for running web apps, DevOps testing, and microservices.

仮想マシンの主な使用用途

仮想マシンには最終ユーザーとIT管理者の両方にとっていくつかの使用用途があります。以下に、いくつかの例を示します:

1. 新しいオペレーティングシステムのテスト

仮想マシンを使用すると、ユーザーは単一の物理ホストで異なるオペレーティングシステムを実行できます。これにより、ユーザーはメインのオペレーティングシステムに影響を与えることなく新機能をテストできます。

Windows Insiderである場合、DevチャンネルからのWindows 11プレビュービルドをテストするために仮想マシンを使用することに魅力を感じるかもしれません。しかし、これらのビルドはかなり不安定であり、仮想マシンを再作成してオペレーティングシステムを再インストールすることで、VMが何らかの理由で起動に失敗した場合でも対処できます。

2. レガシーまたは非互換のソフトウェアを実行

仮想マシンのもう1つの一般的な用途は、企業環境でレガシーソフトウェアアプリケーションを使用できるようにすることです。VMを使用することで、既存のオペレーティングシステムでサポートされていないソフトウェアを実行できます。

3. マルウェア調査

マルウェア研究者は、悪意のあるプログラムやアプリケーションをテストするための新しいマシンが必要な場合がよくあります。ここで仮想マシンが役立ちます。物理ホストで感染リスクを冒さずにソフトウェアをVMでテストできます。

4. クロスプラットフォームソフトウェア開発

仮想化技術を使用することで、ソフトウェア開発者やテスターはアプリケーションを複数のプラットフォームでテストできます。たとえば、開発チームは、エミュレーション環境でアプリのさまざまなバージョンをテストするためにさまざまな仮想マシンを使用できます。

5. トレーニングセッション

トレーニングルームのコンピュータがさまざまなオペレーティングシステムのインスタンスを実行することは重要です。仮想マシンを使用すると、トレーナーが異なるビジネスシナリオや環境を複製したトレーニングセッションを行うことができます。

6. セキュアブラウジング

最後に、仮想マシンはユーザーにセキュアなブラウジング体験を提供するのに役立ちます。VMの現在の状態をスナップショットに取り、マルウェア感染の場合にロールバックすることが可能です。ユーザーは、Type 2ハイパーバイザーをセットアップするか、IT管理者にサーバー上でホストされた仮想デスクトップへの一時的アクセスを許可してもらうことができます。

結論

要するに、仮想マシンはITチームがシステムリソースを効率的に配布し、大規模なコンピュータクラスタを管理するための費用対効果の高いソリューションです。ただし、VMにはさまざまな利点と欠点があり、組織は通常、ビジネスニーズに応じてハイブリッドアプローチ(物理的および仮想マシンの両方)を使用しています。

Source:
https://petri.com/what-is-a-virtual-machine/