仮想化

menu icon

仮想化

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

仮想化とは

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

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

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

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

仮想化のメリット

仮想化により、データセンターのオペレーターやサービス・プロバイダーには複数のメリットがあります。

  • リソース効率:仮想化が登場する前は、各アプリケーション・サーバーに、専用の物理CPUが必要でした。IT担当者は、実行する必要のあるアプリケーションごとに個別のサーバーを購入して構成するということを行っていました。(IT部門では、信頼性を考慮して、1つのコンピューターにつき1つのアプリケーションと1つのオペレーティング・システム(OS)とすることが好まれました。)各物理サーバーは、十分利用されていない状態が常となっていました。 これに対して、サーバーを仮想化すると、信頼性を犠牲にすることなく、単一の物理コンピューター(通常はx86サーバー)上で、複数のアプリケーションを、個別にOSを持つそれぞれのVM上で実行することができます。 これにより、物理ハードウェアのコンピューティング能力を最大限活用することができます。
  • 管理の容易化:物理コンピューターをソフトウェア定義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)」をご覧ください。

ネットワークの仮想化

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

ネットワーク仮想化のタイプの1つであるソフトウェア定義ネットワーキング(SDN)は、ネットワーク・トラフィック・ルーティング(「コントロール・プレーン」と呼ばれる)を管理するハードウェアを仮想化します。また、別のタイプとなるネットワーク機能仮想化(NFV)は、特定のネットワーク機能(ファイアウォール、ロード・バランサー、トラフィック・アナライザーなど)を提供する1つ以上のハードウェア・アプライアンスを仮想化することで、それらのアプライアンスを構成、プロビジョ二ング、および管理しやすくします。

ストレージ仮想化

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

ストレージ仮想化の詳細は、「クラウド・ストレージとは」をご覧ください。

データ仮想化

現代の企業は、複数のアプリケーションからのデータを、複数のファイル・フォーマットを使用して複数の場所に保管しています。それは、クラウドからオンプレミスのハードウェアとソフトウェアのシステムに至るまで広範にわたります。 データ仮想化によって、データのソース、フォーマット、またはロケーションに関係なく、すべてのアプリケーションがそうしたデータにアクセスできるようになります。

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

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

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

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

データセンターの仮想化

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

それぞれの顧客は、同じ基盤となる物理ハードウェア上で稼働する、その顧客用のInfrastructure as a Service(IaaS)にアクセスできます。 仮想データセンターを使用すると、クラウド・ベースのコンピューティングを手軽に導入することが可能となります。企業は、インフラストラクチャー・ハードウェアを購入せずに、完全なデータセンター環境を迅速にセットアップできます。

CPUの仮想化

CPU(中央演算処理装置)の仮想化は、ハイパーバイザー、仮想マシン、およびオペレーティング・システムを可能にする基本的なテクノロジーです。 単一のCPUを複数の仮想CPUに分割して、複数のVMが使用できるようにします。

当初、CPUの仮想化は完全にソフトウェアで定義されていましたが、今日のプロセッサーの多くにはCPUの仮想化をサポートする拡張命令セットが含まれています。これにより、VMのパフォーマンスが向上します。

GPUの仮想化

GPU(グラフィカル処理装置)は、複雑なグラフィック処理や数学的な処理を担うことにより、全体的なコンピューティング・パフォーマンスを向上させる、特殊なマルチコア・プロセッサーです。 GPUの仮想化により、複数のVMが単一のGPUの処理能力をすべてまたは一部使用することで、動画、人工知能(AI)、その他のグラフィック集約型または計算集約型のアプリケーションを高速で利用できるようになります。

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

Linuxの仮想化

Linuxには、カーネル・ベースの仮想マシン(KVM)と呼ばれる独自のハイパーバイザーが組み込まれています。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による仮想化との比較についてご説明します(8:09)。

VMware

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

VMware社に関する詳細については、「VMware:完全ガイド」をご覧ください。

セキュリティー

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

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

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

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

仮想化とIBM

IBM Cloudは、パブリッククラウド・サービスからプライベートクラウドとハイブリッドクラウドのオファリングに至るまで、クラウド・ベースの仮想化ソリューションの充実したラインアップをご用意しています。 これを活用して、仮想インフラストラクチャーの作成と実行、さらには、クラウド・ベースのAIからIBM Cloud for VMware Solutionsを使用したVMwareワークロードの移行まで、さまざまなサービスを利用することができます。

IBM Cloudアカウントに今すぐご登録ください。