仮想化とは
仮想化により、単一のコンピューターのハードウェア・リソース、すなわち、プロセッサー、メモリー、ストレージなどを、仮想マシン(VM)と呼ばれる複数の仮想コンピューターに分割することが可能になります。
黒と青の背景
仮想化とは

仮想化とは、コンピュータの物理的なハードウェアをより効率的に利用するためのプロセスで、クラウド・コンピューティングの基盤となるものです。

仮想化はソフトウェアを使うことで、コンピューター・ハードウェア上に抽象化層を作成します。これにより、単一のコンピューターのハードウェアの要素(プロセッサー、メモリー、ストレージなど)を、複数の仮想コンピューター(一般に仮想マシン(VM)と呼ばれる)に分割することができます。 仮想マシンはそれぞれが、各自のオペレーティング・システム(OS)を実行します。実際の基礎となるコンピューター・ハードウェアの一部のみで稼働しているにもかかわらず、独立したコンピューターのように動作します。

また、仮想化すると、物理的なコンピューター・ハードウェアをより効率的に使用することが可能になり、組織のハードウェアの投資効率を高めることができます。

今日、仮想化は企業のITアーキテクチャーにおける標準的な手法となっています。 それはまた、クラウド・コンピューティング経済を推進するテクノロジーでもあります。 仮想化により、クラウド・プロバイダーは、既存の物理コンピューター・ハードウェアを利用してユーザーにサービスを提供することが可能になります。クラウド・ユーザーは、必要なときに必要なコンピューティング・リソースのみを購入でき、ワークロードの増大に合わせてコスト効率の高い方法でそうしたリソースを拡張することができます。

仮想化がどのように機能するかについて詳しくは、動画「仮想化についての説明」(英語)をご覧ください。

仮想化のメリット

仮想化は、データ・センターの運営者やサービス・プロバイダーに複数のメリットをもたらします。

  • リソース効率: 仮想化以前は、アプリケーション・サーバーにはそれぞれ専用の物理的なCPUが必要で、ITスタッフは実行するアプリケーションごとに別のサーバーを購入して設定していました。 (IT部門では、信頼性の観点から、1台のコンピューターに1つのアプリケーションと1つのオペレーティングシステム(OS)を使用することが好まれていました。) そうすると必ず、各物理サーバーの使用率が低くなってしまいます。 これに対して、サーバーを仮想化すると、信頼性を犠牲にすることなく、単一の物理コンピューター(通常はx86サーバー)上で、複数のアプリケーションを、個別にOSを持つそれぞれのVM上で実行することができます。 これにより、物理ハードウェアのコンピューティング能力を最大限活用することができます。

  • 簡単な管理: 物理コンピューターをソフトウェアで定義された仮想マシンに置き換えることで、ソフトウェアのポリシーの使用と管理が容易になります。 これにより、自動化されたITサービス管理ワークフローを作成できます。 例えば、自動化されたデプロイメントおよび構成ツールを使用すると、管理者は仮想マシンとアプリケーションのコレクションをソフトウェア・テンプレートにサービスとして定義できます。 つまり、面倒なことに時間をかけることなく、それらのサービスを繰り返し一貫性を保って導入することができます。 また、手動での設定はエラーが起きがちです。 管理者は、仮想化セキュリティー・ポリシーを使用して、仮想マシンの役割に基づいて特定のセキュリティー構成を指定することができます。 ポリシーに基づき、使用されていない仮想マシンを廃止して、スペースとコンピューティング能力を節約することで、リソースの効率を高めることも可能です。

  • 最小のダウンタイム: OSとアプリケーションのクラッシュは、ダウンタイムの原因となり、ユーザーの生産性を低下させます。 管理者は、複数の冗長仮想マシンを一緒に実行し、問題が発生したときにフェイルオーバーすることができます。 複数の冗長物理サーバーを実行すると、より高いコストがかかります。

  • より迅速なプロビジョニング: アプリケーションごとに、ハードウェアを購入、インストール、構成するには時間がかかります。 ハードウェアが既に導入されている場合、すべてのアプリケーションを実行するために仮想マシンをプロビジョニングすると、大幅に時間を短縮できます。 管理ソフトウェアを使用して自動化し、既存のワークフローに組み込むこともできます。

潜在的なメリットの詳細については、「仮想化の5つのメリット」をご覧ください。

ソリューション

複数の企業が、特定のデータセンター・タスクやエンド・ユーザーを対象としたデスクトップ仮想化シナリオを想定した、仮想化ソリューションを提供しています。 良く知られている例では、サーバー、デスクトップ、ネットワーク、ストレージの仮想化を専門とするVMware社、アプリケーション仮想化を得意分野とするがそれだけではなく、サーバー仮想化と仮想デスクトップ・ソリューションも提供するCitrix社、Hyper-V仮想化ソリューションをWindowsと同梱し、サーバー・コンピューターとデスクトップ・コンピューターの仮想バージョンに注力しているMicrosoft社が挙げられます。

仮想マシン(VM)

仮想マシン(VM)は、物理的なコンピューティングをソフトウェアでシミュレートした仮想環境です。 通常、VMの構成を含むいくつかのファイル、仮想ハードドライブ用のストレージ、特定の時点での状態を保持するVMのスナップショットなどで構成されています。

VM詳細については「仮想マシンとは」をご覧ください。

ハイパーバイザー

ハイパーバイザーは、VMの調整を行うソフトウェア層です。 VMと基礎となる物理ハードウェアの間のインターフェースとして機能し、各VMの実行に必要な物理リソースを確実に利用できる状態にします。 また、VMがお互いのメモリ・スペースや計算サイクルを侵害して干渉しないようにします。

ハイパーバイザーには次の2つのタイプがあります。

  • タイプ1ハイパーバイザー(「ベアメタル」ハイパーバイザーとも呼ばれます)は、従来のオペレーティング・システムと完全に置き換わる形で、基礎となる物理リソースとやりとりします。 仮想サーバー・シナリオで最も一般的に見られるものです。
  • タイプ2のハイパーバイザーは既存のOS上でアプリケーションとして稼働します。 エンドポイント・デバイスで代替オペレーティング・システムを実行するために最も一般的に使用されますが、ホストOSを使用して基盤となるハードウェア・リソースにアクセスして調整する必要があるため、パフォーマンスのオーバーヘッドが発生します。

「ハイパーバイザー:完全ガイド」は、ハイパーバイザーに関するあらゆる内容を網羅しています。

仮想化のタイプ

ここまではサーバの仮想化について説明してきましたが、他にも多くのITインフラストラクチャー要素を仮想化することで、(特に)IT管理者や企業全体に大きなメリットをもたらすことができます。 ここでは、以下のような仮想化の種類について説明します。

  • デスクトップ仮想化
  • ネットワーク仮想化
  • ストレージ仮想化
  • データ仮想化
  • アプリケーション仮想化
  • データセンターの仮想化
  • CPU仮想化
  • GPUの仮想化
  • Linuxの仮想化
  • クラウドの仮想化

デスクトップの仮想化

デスクトップの仮想化では、複数のデスクトップ・オペレーティング・システムをそれぞれのVMに入れて、同じコンピュータ上で動作させることができます。

デスクトップの仮想化は次の2つのタイプがあります。

  • 仮想デスクトップ・インフラストラクチャー(VDI)は、複数のデスクトップを中央のサーバー上のVMで実行し、シン・クライアント・デバイスでログインしたユーザーにストリーミング配信します。 組織はVDIを使用することで、ユーザーにあらゆるデバイスからのさまざまなOSへのアクセスを提供できるようになります。しかも、どのデバイスにもOSをインストールする必要はありません。 詳細は「仮想デスクトップ・インフラストラクチャー(VDI)とは」を参照してください。
  • ローカル・デスクトップの仮想化では、ローカル・コンピューター上でハイパーバイザーを実行します。これにより、ユーザーはそのコンピューター上で1つ以上の追加OSを実行し、主となるOSについて何も変更せずに、必要に応じて1つのOSから別のOSに切り替えることができるようになります。

仮想デスクトップについて詳しくは、「Desktop as a Service(DaaS)」をご覧ください。

ネットワークの仮想化

ネットワークの仮想化では、ソフトウェアを使用してネットワークの「ビュー」を作成し、管理者はそれを使って単一のコンソールからネットワークを管理することができます。 ハードウェアの要素と機能(接続、スイッチ、ルーターなど)をハイパーバイザー上で実行されているソフトウェアに抽象化します。 ネットワーク管理者は、基盤となっている物理的なコンポーネントに触れることなく、これらの要素を変更、制御することができ、ネットワーク管理を劇的に簡素化することができます。

ネットワークの仮想化には、ネットワーク・トラフィックのルーティング(コントロール・プレーンと呼ばれる)を制御するハードウェアを仮想化するソフトウェア定義ネットワーキング(SDN)や、特定のネットワーク機能(ファイアウォール、ロード・バランサー、またはトラフィックアナライザーなど)を提供する1つまたは複数のハードウェア・アプライアンスを仮想化し、それらのアプライアンスの構成、プロビジョニング、管理を容易にするネットワーク機能仮想化(NFV)などがあります。

ストレージ仮想化

ストレージの仮想化により、ネットワーク上のすべてのストレージ・デバイスは、個々のサーバーにインストールされているか、スタンドアロン型のストレージ・ユニットであるかどうかにかかわらず、単一のストレージ・デバイスとしてアクセスおよび管理されます。 具体的には、ストレージの仮想化により、ストレージのすべてのブロックが単一の共有プールに割り振られます。そこから必要に応じてネットワーク上の任意のVMにそれらのストレージを割り当てることができます。 ストレージの仮想化により、VMへのストレージのプロビジョニングが容易になり、ネットワーク上の利用可能なすべてのストレージを最大限に活用することができます。

ストレージの仮想化の詳細については「クラウド・ストレージとは」を参照してください。

データ仮想化

現代の企業は、複数のアプリケーションからのデータを、複数のファイル形式で、クラウドからオンプレミスのハードウェアやソフトウェアのシステムにいたるまで、複数の場所に保存しています。 データを仮想化することで、あらゆるアプリケーションが、ソース、フォーマット、場所を問わず、それらすべてのデータにアクセスできるようになります。

データ仮想化ツールは、データにアクセスするアプリケーションとそれを保管するシステムの間にソフトウェア層を作成します。 この層は、アプリケーションのデータの要求または照会を必要に応じて変換し、複数のシステムにわたって提供できる結果を返します。 データ仮想化は、他のタイプの統合は実現できない、好ましくない、またはコストが高すぎる場合に、データ・サイロを解消するのに役立ちます。

アプリケーションの仮想化

アプリケーションの仮想化では、アプリケーション・ソフトウェアをユーザーのOSに直接インストールすることなく実行します。 これは、完全なデスクトップ仮想化(前述のとおり)とは異なります。アプリケーションのみが仮想環境で実行され、エンド・ユーザーのデバイス上のOSは通常どおり実行されます。 アプリケーションの仮想化には、以下の3つのタイプがあります。 

  • ローカル・アプリケーション仮想化: アプリケーション全体はエンドポイント・デバイス上で実行されますが、ネイティブ・ハードウェア上ではなくランタイム環境で実行されます。
  • アプリケーション・ストリーミング:アプリケーションは、サーバー上に存在します。サーバーから、必要なときにソフトウェアの小さなコンポーネントが送信されてエンド・ユーザーのデバイス上で実行されます。
  • サーバー・ベースのアプリケーション仮想化: アプリケーションはすべてサーバー上で動作し、ユーザー・インターフェースのみをクライアント・デバイスに送信します。

データセンターの仮想化

データセンターの仮想化は、データセンターのハードウェアの大部分をソフトウェアに抽象化し、管理者が、効率的に1つの物理データセンターを複数の仮想データセンターに分割して、さまざまな顧客に対応させることを可能にします。

各クライアントは、同じ基盤となる物理ハードウェア上で動作する独自のInfrastructure As a Service(IaaS)にアクセスすることができます。 仮想データセンターは、インフラストラクチャー・ハードウェアを購入することなく、完全なデータセンター環境を迅速に構築することができるため、クラウド・ベースのコンピューティングの利用開始が容易です。

CPUの仮想化

CPU(中央演算処理装置)の仮想化は、ハイパーバイザーや仮想マシン、およびOSを実現するための基本技術です。 1つのCPUを複数の仮想CPUに分割して、複数のVMで使用できるようにします。

当初、CPUの仮想化はすべてソフトウェア定義で行われていましたが、現在のプロセッサーの多くは、CPUの仮想化をサポートする拡張命令セットを含み、VMのパフォーマンスを向上させています。

GPUの仮想化

GPU(グラフィックス処理装置)とは、負荷の高いグラフィックや数学的処理を行い、コンピューティング・パフォーマンス全体を向上させる特殊なマルチ・コア・プロセッサーのことです。 GPUの仮想化により、複数のVMが1つのGPUの処理能力の全部または一部を使用することができ、動画、人工知能(AI)、およびその他のグラフィックや数学的処理を多用するアプリケーションを高速化することができます。

  • パススルー・GPUはGPU全体を1つのゲストOSが利用できるようにします。
  • 共有vGPUは物理的なGPUコアを複数の仮想GPU(vGPU)に分割して、サーバー・ベースのVMで使用できるようにします。

Linuxの仮想化

Linuxには、カーネル・ベースの仮想マシン(KVM)と呼ばれる独自のハイパーバイザーが搭載されており、インテル社とAMDの仮想化プロセッサーの拡張機能をサポートしているため、LinuxのホストOS内でx86ベースのVMを作成することができます。

オープン・ソースのOSであるLinuxは、カスタマイズ性に優れています。 特定のワークロード用にカスタマイズされたバージョンのLinuxや、機密性の高いアプリケーション用にセキュリティーが強化されたバージョンのLinuxを実行するVMを作成することができます。

クラウドの仮想化

前述の通り、クラウド・コンピューティング・モデルは仮想化に依存しています。 サーバー、ストレージ、およびその他の物理的なデータセンターのリソースを仮想化することで、クラウド・コンピューティング・プロバイダーは以下のようなさまざまなサービスをお客様に提供することができます。 

  • Infrastructure as a Service (IaaS): 必要に応じて構成することができる、仮想化されたサーバー、ストレージ、およびネットワーク・リソース。  
  • Platform as a service (PaaS)仮想化された開発ツール、データベース、およびその他のクラウド・ベースのサービス。独自のクラウド・ベースのアプリケーションおよびソリューションを構築することができます。
  • Software as a service (SaaS):クラウド上で使用するソフトウェア・アプリケーション。 SaaSは、ハードウェアから最も抽象化されたクラウド・ベースのサービスです。

これらのクラウド・サービス・モデルについての詳細は、ガイド「IaaS、PaaS、SaaSの比較」をご覧ください。

仮想化とコンテナ化

サーバーの仮想化では、ハードウェア内のコンピューター全体が再現され、OS 全体が実行されます。 OSはアプリケーションを1つ実行します。 仮想化がまったく行われていないよりは効率的ですが、実行したいアプリケーションごとに、不要なコードやサービスが重複しています。

その代替アプローチとなるのが、コンテナです。 コンテナは、基本のOSカーネルを共有し、アプリケーションと、アプリケーションが依存するソフトウェア・ライブラリーや環境変数などのみを実行します。 これにより、コンテナはより小さくなり、より迅速なデプロイが可能となります。

コンテナとコンテナ化についての詳細は、「コンテナ:完全ガイド」「コンテナ化:完全ガイド」をご覧ください。

ブログ投稿「コンテナとVMの違い」で、さらに詳しくその違いについて説明しています。

以下の動画では、Sai Vennamがコンテナ化の基礎、またVMによる仮想化との比較についてご説明します。

VMware

VMware社は仮想化ソフトウェアを作り出しています。 VMware社は創業当初、サーバー仮想化のみを提供していました。ESX(現ESXi)ハイパーバイザーは、仮想化製品で最も初期に商業的に成功したものです。 今日、VMware社は、ネットワーク、ストレージ、およびデスクトップの仮想化に対応したソリューションを提供しています。

VMware社に関して詳しくは、「VMware:完全ガイド」を参照してください。

 

セキュリティー

仮想化は、セキュリティー上のメリットをもたらします。 例えば、VMがマルウェアに感染した場合は、VMが感染する前の安定した時点(スナップショットと呼ばれます)にロールバックすることができます。また、VMを削除して再作成することも、より簡単にできます。 仮想化されていないOSから常にウィルスを除去できるとは限りません。なぜなら、マルウェアはOSのコア・コンポーネントに深く組み込まれていることが多く、その場合システムのロールバックを行ってもマルウェアは存在し続けるためです。

仮想化には、セキュリティー上の課題もいくつかあります。 攻撃者によってハイパーバイザーが侵害された場合、すべてのVMとゲスト・オペレーティング・システムが攻撃者に所有されるおそれがあります。 ハイパーバイザーは、物理ネットワークに触れずにVM同士の間で通信できるようにすることもできるので、そのトラフィックを確認するのは困難です。したがって、疑わしいアクティビティーを検出することも簡単ではありません。

ホストOS上のタイプ 2 のハイパーバイザーは、ホストOSの侵害の影響も受けやすくなっています。

市場では、マルウェアに対するVMのスキャンとパッチ適用、VMの仮想ディスク全体の暗号化、VMアクセスの管理と監査を行うことができる仮想化セキュリティー製品が、幅広く提供されています。

関連ソリューション
Cloud for VMware Solutions

IBM Cloudを使用して、VMwareのワークロードとアプリケーションをシームレスにモダナイズします。

Cloud VMwareソリューションの詳細はこちら
データ仮想化ツールとソリューション

データを移動させることなく、異種データを単一ビューで表示します。 煩雑さやエラーのリスクを軽減しながらデータを管理します。

データ仮想化の詳細はこちら
サーバーとデスクトップのストレージ仮想化

ストレージの仮想化によりハイブリッドクラウドを簡素化します。 データを危険にさらすことなく、ストレージ・リソースを一元化し、データ・サービスを拡張し、データ・モビリティーを向上させます。

ストレージ仮想化の詳細はこちら
参考情報 仮想マシン(VM)とは

仮想マシンとは、物理コンピューターの仮想表現であり、エミュレーションです。 仮想化により、複数の仮想マシンを単一の物理コンピューター上で作成できます。

ハイパーバイザーとは

ハイパーバイザーは、複数のオペレーティング・システムのインスタンスを、同じ物理コンピューティング・リソース上で同時に実行することで、仮想化を実現しています。

クラウド・コンピューティングとは

クラウド・コンピューティングにより、ITインフラストラクチャーをユーティリティーに変換することで、インターネット経由でコンピューティング・リソースとアプリケーションに「プラグイン」できるようなるため、オンプレミスにインストールして維持する必要がありません。

詳細情報はこちら

IBM Cloudは、さまざまな技術と料金体系のオプションに基づいて、お客様独自のVMを構成して実行する機会を提供しています。 必要なコンピューティング能力、メモリー、ローカル・ストレージ、GPU機能に基づいて、VMの技術プロファイルを選択して、お客様独自のワークロードに合わせてシステムを調整することが可能です。さらに、セキュリティー要件とコンプライアンス要件に適合するように、パブリック・ノードまたはプライベート・ノードから選択できます。

IBM Cloudを無料で始める