blog

仮想化とは何か:8つの側面から包括的に説明する

仮想化とは、コンピュータのコンポーネントが実際のベースではなく、仮想的に実行されることです。CPUの仮想化により、1つのCPUで複数のCPUを並列にエミュレートできるため、1つのプラットフォームで複数...

Oct 18, 2013 · 15 min. read
シェア

仮想化とは、コンピュータのコンポーネントが実際のベースではなく、仮想的なベースで実行されることを意味します。CPUの仮想化により、1つのCPUで複数のCPUを並列にエミュレートできるため、1つのプラットフォームで複数のオペレーティングシステムを同時に実行したり、アプリケーションを互いに影響を与えずに別々の空間で実行したりできるようになり、コンピュータの効率が大幅に向上します。

仮想化技術

仮想化とは、現実ベースではなく仮想ベースで動作するコンピューティング・コンポーネントを指す広義の用語で、管理を簡素化し、リソースを最適化するために設計されたソリューションです。フロア全体の壁がほとんど見えない空っぽで風通しの良いオフィスビルのように、ユーザーは同じコストでより自律的で適用可能なオフィス空間を構築することができ、それによってコストを節約し、スペース***の活用を活用することができます。このように、さまざまなニーズに応じて限られた固定資源を再計画し、IT分野におけるアイデアの***活用を実現することを仮想化技術と呼びます。

仮想化技術はハードウェアの能力を拡張し、ソフトウェアの再構成プロセスを簡素化することができます。CPU仮想化技術は、単一のCPUでマルチCPU並列処理をシミュレートすることができ、プラットフォームで複数のオペレーティングシステムを同時に実行したり、アプリケーションを互いに影響を与えずに別々の空間で実行したりすることができるため、コンピュータの効率が大幅に向上します。

仮想化技術は、マルチタスク技術やハイパースレッディング技術とはまったく異なります。仮想化技術では、同時に複数のオペレーティングシステムを実行することができ、各オペレーティングシステムで実行されている複数のプログラムがあり、各オペレーティングシステムは、仮想CPUまたは仮想ホスト上で実行されているのに対し、マルチタスクは、オペレーティングシステムで同時に実行されているいくつかのプログラムを指します。CPUを分離することはできません、唯一の一緒に動作します。

仮想化はまた、VMware Workstationのような仮想化を実現するソフトウェアとは異なり、特にソフトウェア仮想マシンに関連するオーバーヘッドを削減し、より幅広いオペレーティング・システムをサポートするという点で、大きな技術的進歩を遂げています。

仮想化技術には多くの定義があり、以下にそのいくつかを示します。

「仮想化とは、コンピュータリソースを、その実装や地理的な位置、物理的なパッケージングに基づいた独自の方法で表現するのではなく、ユーザーとアプリケーションの両方が容易に恩恵を受けられる何らかの方法で表現するプロセスです。言い換えれば、データ、コンピューティング・パワー、ストレージ・リソース、その他のリソースを、物理的なビューではなく論理的なビューで提供することです」。 -- ジョナサン・ユーニス、Illuminata Inc.

「仮想化とは、コンピュータリソースの論理的なグループを表現し、元の構成から利益を得る方法でアクセスできるようにするプロセスです。このリソースの新しい仮想的なビューは、実装、地理的な場所、または基礎となるリソースの物理的な構成によって制限されません。" -- ウィキペディア

「仮想化:同じようなリソースの集合に対して、共通の抽象的なインターフェイスを提供することで、属性や操作の違いを隠蔽し、リソースを共通の方法で表示・管理できるようにすること。 -- オープン・グリッド・サービス・アーキテクチャ用語集 #p#

ゴール

仮想化の主な目的は、ITインフラを簡素化することです。リソースへのアクセスとリソースの管理を簡素化します。

コンシューマーとは、エンドユーザー、アプリケーション、アクセスリソース、またはリソースと相互作用するサービスのことです。リソースは特定の機能を提供する実装であり、標準インターフェースに基づいて入力を受け入れ、出力を提供することができます。リソースは、サーバー、ディスク、ネットワーク、計測器などのハードウェアであることもあれば、Webサービスなどのソフトウェアであることもあります。

コンシューマは、仮想リソースがサポートする標準インターフェースを通じてリソースにアクセスします。標準インタフェースを使用することで、ITインフラ***に変更が加えられた場合のコンシューマの混乱を最小限に抑えることができます。たとえば、エンドユーザは仮想リソースとのインタラクション方法が変更されていないため、これらのテクニックを再利用することができ、基盤となる物理リソースや実装が変更されても影響を受けません。また、標準インターフェイスが変更されていないため、アプリケーションをアップグレードしたり、パッチを適用したりする必要もありません。

また、仮想化によってコンシューマとリソースの結合度が低下するため、ITインフラストラクチャの全体的な管理も簡素化できます。その結果、コンシューマはリソースの特定の実装に依存しなくなります。この疎結合を利用することで、管理者はコンシューマへの管理作業の影響を最小限に抑える方法でITインフラストラクチャを管理できます。管理操作は、手動、半自動、またはサービス・レベル・アグリーメントによって自動的に実行できます。

その上で、グリッド・コンピューティングは仮想化技術を幅広く活用することができます。グリッド・コンピューティングはITインフラを仮想化します。ITインフラの共有と管理を行い、ユーザーやアプリケーションのニーズに合ったリソースを動的に提供し、インフラへのアクセスを簡素化します。#p#

処方

ソフトウェアプログラム

純粋なソフトウェア仮想化ソリューションには多くの制限があります。ゲスト」オペレーティング・システムは、多くの場合、「ゲスト」オペレーティング・システムの仮想化を通じて仮想化されます。

仮想化

マシン・モニタがハードウェアと通信し、VMMがシステム上のすべての仮想マシンへのアクセスを決定します。ソフトウェアのみの仮想化ソリューションでは、ソフトウェア・スイートにおけるVMMの場所は従来オペレーティング・システムが置かれていた場所であり、オペレーティング・システムの場所は従来アプリケーションが置かれていた場所です。この通信レイヤーの追加には、物理リソースへのインタフェースを提供してハードウェア環境をエミュレートするためのバイナリ変換が必要です。この変換は必然的にシステムの複雑さを増します。さらに、ゲスト・オペレーティング・システムのサポートは仮想マシン環境の機能によって制限されるため、64 ビットのゲスト・オペレーティング・システムなど、特定のテクノロジの導入が妨げられる可能性があります。ソフトウェアのみのソリューションでは、ソフトウェア・スタックの複雑さが増すため、これらの環境の管理が難しくなり、システムの信頼性とセキュリティを確保するのが難しくなります。

ハードウェアプログラム

CPU仮想化はハードウェア・ソリューションであり、仮想化技術をサポートするCPUは、仮想化プロセスを制御するために特別に最適化された命令セットを備えています。

仮想化

パフォーマンスが大幅に向上します。仮想化技術は、互換性のあるVMMソフトウェアでソフトウェアのみのソリューションを改善するチップベースの機能を提供します。仮想化ハードウェアは、オペレーティング・システムをその上で直接実行できる新しいアーキテクチャを提供することで、VMMの設計を大幅に簡素化し、バイナリ変換の必要性を排除し、関連するパフォーマンスのオーバーヘッドを削減します。さらに、純粋なソフトウェアVMMでは、64ビットのクライアントOSをサポートしていません。これは深刻な欠点で、64ビット・プロセッサの普及が進むにつれて、ますます顕著になっています。これとは対照的に、CPUの仮想化技術は、幅広いレガシーOSに加えて64ビットのゲストOSをサポートしています。

仮想化技術は一連のソリューションです。CPU、マザーボードのチップセット、BIOS、およびVMMソフトウェアや一部のオペレーティング・システムなどのソフトウェア・サポートが必要です。CPUだけが仮想化技術をサポートしていても、VMMのソフトウェアと組み合わせれば、仮想化技術をまったくサポートしていないシステムよりも優れたパフォーマンスを発揮します。

CPU大手のIntelとAMDはともに仮想化で先手を打とうとしていますが、AMDの仮想化技術はIntelに数カ月遅れています。Intelは2005年後半からIntel Virtualization Technology(Intel VT)仮想化技術をプロセッサ・ラインナップに展開しています。インテルは、デスクトップ向けのPentium 4 6X2、Pentium D 9X0、Pentium EE 9XXシリーズをはじめ、Core Duo、Core Soloシリーズ、Xeon LVシリーズ、Xeon EE 9XXシリーズなど、Intel VT仮想化技術を搭載した一連のプロセッサーをリリースしてきました。Xeon LVシリーズ、Xeon 5000シリーズ、Xeon 5100シリーズ、Xeon MP 7000シリーズ、Itanium 2 9000シリーズ、およびMeromを含むインテルの次世代メインストリーム・プロセッサの大半を含みます。

仮想化

Coreモバイル・プロセッサー、Conroeコア・デスクトップ・プロセッサー、Woodcrestコア・サーバー・プロセッサー、およびMontecitoコアをベースとするItanium 2ハイエンド・サーバー・プロセッサーはすべて、インテルVT仮想化技術をサポートします。

AMDはまた、Socket S1インターフェースのTurion 64 X2シリーズ、Socket AM2インターフェースのAthlon 64 X2シリーズおよびAthlon 64 FXシリーズなど、AMD仮想化技術(AMD VT)をサポートする一連のプロセッサーを発表しました。次期Socket F Opteronを含むAMDの次世代メインストリーム・プロセッサーの大半は、AMD VT仮想化テクノロジーをサポートする予定です。#p#

ハード

簡単

他の破壊的技術と同様、サーバ仮想化技術も、最初はひっそりと登場し、その後シーンに登場し、最終的には省エネ統合スキームの結果として受け入れられるようになったようです。今日、多くの企業がハードウェア・リソースの有効活用、ディザスタ・リカバリ、オフィス・オートメーションの改善のために仮想化を利用しています。この一連の記事では、物理ハードウェアの制限を取り除く方法について、サーバ、ストレージ、アプリケーション、デスクトップの仮想化技術という3つの視点から紹介します。

仮想化技術により、ユーザーは動的に仮想サーバーを有効にすることができ、各仮想サーバーはオペレーティング・システムを欺いて、仮想マシンを実際のハードウェアと思わせることができます。また、複数の仮想マシンを実行することで、物理サーバーの計算能力をフルに活用し、データセンターのニーズの変化に迅速に対応することができます。

仮想化のコンセプトは新しいものではありません。1970年代には、メインフレームコンピュータが複数のオペレーティングシステムのインスタンスを同時に実行し、それぞれが独立していました。しかし、ハードウェアとソフトウェアの進歩により、業界標準に基づく量販x86サーバーで仮想化が可能になったのはごく最近のことです。

実際、今日のデータセンター管理者は、プロプライエタリなものからオープンソースまで、多種多様な仮想化ソリューションに直面しています。一般的に、各ソリューションは3つの基本技術のいずれかに基づいていますが、どの技術が有効か***は、仮想化する特定のワークロードと優先的なビジネス目標によって決まります。

完全仮想化

*** VMwareとMicrosoftのVirtual PCがこのアプローチを代表する2つの市販製品ですが、カーネルベースの仮想マシンはLinuxシステム向けのオープンソース製品です。#p#

ハイパーバイザーはCPU命令をキャプチャし、ハードウェア・コントローラーや周辺機器にアクセスする命令の仲介役を果たします。その結果、完全な仮想化技術により、仮想化環境で稼働していることを意識することなく、ほぼすべてのオペレーティング・システムをそのまま仮想サーバーにインストールすることができます。主な欠点は、ハイパーバイザーがプロセッサにオーバーヘッドを課すことです。

完全に仮想化された環境では、ハイパーバイザーはベアハードウェア上で実行され、ホストオペレーティングシステムとして機能します。ハイパーバイザーによって管理される仮想サーバーは、クライアントオペレーティングシステムを実行します。

IBMは独自の仮想化製品Z/VMも持っています。

準仮想化

完全な仮想化は、ハイパーバイザーが個々の仮想サーバーを管理し、互いに独立した状態に保つ必要があるため、プロセッサー負荷が高くなります。この負担を軽減する1つの方法は、ゲスト・オペレーティング・システムを変更して、仮想環境で実行されていると考え、ハイパーバイザーと連携できるようにすることです。このアプローチは準仮想化と呼ばれます。

Xenは、オープンソースの準仮想化技術の一例です。オペレーティングシステムはXenハイパーバイザー上で仮想サーバーとして実行されますが、Xenハイパーバイザーはコアレベルで一定の変更を加える必要があります。そのため、XenはBSD、Linux、Solarisなどのオープンソースのオペレーティングシステムに適していますが、Windowsのようなプロプライエタリなオペレーティングシステムの仮想化には適していません。

準仮想化技術の利点は、高いパフォーマンスです。準仮想化サーバーはハイパーバイザーと連携し、仮想化されていないサーバーとほぼ同等の応答性を実現できます。完全な仮想化よりも準仮想化の方が優れていることは明らかであるため、MicrosoftとVMwareの両社は、それぞれの製品を補完するために準仮想化技術を開発しています。

オペレーティング・システム層の仮想化

仮想化を実現するもう1つの方法は、オペレーティング・システム・レベルで仮想サーバー機能を追加することです。Solaris Containerはこの例で、Virtuozzo/OpenVZはLinux用のソフトウェア・ソリューションです。

オペレーティング・システム・レベルでの仮想化に関しては、独立したハイパーバイザー・レイヤーは存在しません。その代わり、ホスト・オペレーティング・システム自体が、複数の仮想サーバ間でハードウェア・リソースを割り当て、それらのサーバを互いに独立させる役割を担います。明らかな違いは、OSレイヤーの仮想化では、すべての仮想サーバーが同じオペレーティング・システムを実行しなければならないことです。

オペレーティング・システム層の仮想化は柔軟性に欠けますが、ネイティブ・スピードのパフォーマンスは高くなります。さらに、このアーキテクチャではすべての仮想サーバーで単一の標準オペレーティング・システムを使用するため、ヘテロジニアス環境よりも管理が容易です。

ハードウェア対応ソフトウェア

メインフレームとは異なり、PCのハードウェアは仮想化を念頭に置いて設計されていませんでした。AMDとIntelが****世代のx86プロセッサを発表したことで、初めてCPUレベルで仮想化のサポートが追加されました。

残念ながら、両社のテクノロジーは互いに独立して開発されたため、コードに互換性はありません。しかし、ハードウェア仮想化サポート機能により、ハイパーバイザーは非常に重い管理作業から解放されます。これは、パフォーマンスの向上に加え、Windows環境を含む準仮想化環境でオペレーティング・システムを変更することなく実行できる機能です。

CPUレイヤーの仮想化技術は自動的に機能するわけではありません。具体的にサポートするためには、仮想化ソフトウェアを開発する必要があります。しかし、この技術の利点は非常に魅力的であるため、あらゆる種類の仮想化ソフトウェアが続々と開発されることが予想されます。#p#

評価

仮想化の各手法にはそれぞれ利点があり、どれを選択するかはユーザー固有の状況に依存します。同じオペレーティング・システムをベースとするサーバ・グループは、オペレーティング・システム・レイヤを介した統合に適しています。

準仮想化技術は両方の長所を兼ね備えており、仮想化技術をサポートするプロセッサーと一緒に導入すれば、そのメリットはさらに顕著になります。優れたパフォーマンスだけでなく、複数の異種クライアントOSを実行する能力も提供します。

この3つのアプローチのうち、完全仮想化はパフォーマンス***の点で不利ですが、次のような利点があります。これは、ソフトウェアの品質保証とテストに理想的であり、さらに、最も多様なクライアントOSをサポートします。

完全仮想化ソリューションには、他にもユニークな機能があります。たとえば、仮想サーバーの「スナップショット」を取得して状態を保持し、ディザスタリカバリに役立てることができます。このような仮想サーバ・イメージは、新しいサーバ・インスタンスを迅速にプロビジョニングするために使用することができます。最近では、自社製品の評価版を、ダウンロード可能なパッケージ化された仮想サーバー・イメージとして提供するソフトウェア会社も増えています。

物理サーバと同様に、仮想サーバにも継続的なサポートとメンテナンスが必要です。サーバ仮想化の人気の高まりにより、物理から仮想への移行ユーティリティや、仮想化技術用の主要なシステム管理コンソールなど、サードパーティ製ツールの市場が活況を呈しており、レガシーIT環境から効率的でコスト効率の高い仮想環境への移行プロセスを簡素化するように設計されています。#p#

セーフガード

仮想化環境にとって非常に重要なことは、ダイナミックで複雑なITインフラストラクチャを管理・維持する必要性を減らすことです。さらに、ソフトウェアやツールを通じて実装されたモデルや技術が、これらの管理タスクをサポートします。これらのモデルや技術を組み合わせることで、次のような機能が実現します:

IT インフラストラクチャのすべてのリソースへの管理アクセスに単一のセキュアなインタフェースを提供し、管理者がすべてのリソースの診断、構成、および変更を管理し、利用可能なリソースのカタログを検出して維持し、リソースを監視して通常の状態を記録できるようにします。管理者は手動で対応するか、適切な条件に基づいて自動的に対応します。 リソースは、使用状況、可用性、サービス・レベル要件に基づいてプロビジョニングまたは撤収されます。プロビジョニングは、確立されたポリシーに基づいて手動、半自動、または自動的に行うことができます。エンドユーザーやアプリケーションのセキュリティを補完するセキュリティ・メカニズムを提供し、エンドユーザーやアプリケーションのSLAを満たすために、すべてのリソースのパフォーマンス情報を記録します。#.

パラダイム

簡単

仮想化はさまざまな方法で立証できます。単一のエンティティではなく、リソースの論理的な表現をサポートするために必要な機能と、標準的なインターフェースを通じてリソースの消費者にリソースを提示するために必要な機能を提供する、パターンと技術のコレクションです。パターン自体はすべて、前述のさまざまな仮想フォームの繰り返しです。

ここでは、仮想化を実装する際によく使われるパターンやテクニックを紹介します:

1.単一のリソースの複数の論理表現

このモデルは、仮想化で最も広く使用されているモデルの1つです。このモデルには物理リソースが1つしか含まれていませんが、あたかも複数のリソースが含まれているかのような論理表現を消費者に提示します。コンシューマは、他のコンシューマとリソースを共有していることを考慮することなく、あたかも自分が唯一のコンシューマであるかのように、この仮想リソースと対話します。

2.複数のリソースの単一の論理表現

このパターンは、複数のリソースを組み合わせて、単一のインターフェイスを提供する単一の論理表現として表現します。これは、強力でリッチな仮想リソースを作成するために、あまり強力でない複数のリソースを使用する場合に非常に有用なパターンです。ストレージ仮想化はこのモデルの一例です。サーバーの場合、クラスタリング技術によって、コンシューマーはあたかも1つのシステムとやりとりしているかのような錯覚に陥ります。事実上、これがIT技術設備から見たグリッドが実現できることなのです。

3.複数のリソースにまたがる単一の論理表現の提供

このモデルには、複数の利用可能なリソースの1つとして表される仮想リソースが含まれます。仮想リソースは、リソースの利用率、応答時間、近接性など、指定された条件に基づいて物理リソースの実装を選択します。このモデルは前のモデルとよく似ていますが、両者には微妙な違いがあります。第一に、各物理リソースは完全なコピーであり、論理表現レベルではクラスタ化されていません。第二に、各物理リソースは論理表現が必要とするすべての機能を提供します。このパターンの一般的な例は、タスク負荷のバランスを取るためのアプリケーションコンテナの使用です。アプリケーションやサービスにリクエストやトランザクションを送信するとき、コンシューマは、複数のコンテナで実行されているアプリケーションのどのコピーがリクエストやトランザクションを処理するのかを正確に気にしません。コンシューマはただ、リクエストやトランザクションが処理されることを望んでいるだけです。

4.個々のリソースの単一の論理表現

これは、1つのリソースを他の何かのように表現するために使用される単純なパターンです。この一般的な例は、ウェブ対応のエンタープライズバックエンドアプリケーションです。この場合、バックエンドアプリケーションを修正する代わりに、アプリケーションプログラミングインタフェースにマッピングされたWebインタフェースを表すフロントエンドが作成されます。このパターンでは、バックエンドアプリケーションに最小限の変更を加えるだけで、いくつかの基本的な機能を再利用することができます。また、同じパターンを使って、変更できないコンポーネントに基づいてサービスを構築することも可能です。

5.複合型または階層型仮想化

このモデルは、先ほど説明したモデルの1つ以上を組み合わせたもので、物理リソースを使用して豊富な機能セットを提供します。情報の仮想化はこのパターンの良い例です。これは、リソースのグローバルな命名と参照、情報の処理方法と使用方法に関する情報を含むメタデータ、および情報に対して実行される操作を管理するために必要な基本機能を提供します。オープン・グリッド・サービス・アーキテクチャ(OGSA)やグリッド・コンピューティング・コンポーネントなどの例は、実際には仮想化の組み合わせ、または仮想化の異なるレイヤーです。#p#

使用前評価

1、習慣、感情の使用:集中管理のための仮想化技術と組み合わせた集中コンピューティングを使用してPCを散在企業の多くは、企業のための良い解決策を提供しません。しかし、コンピューティングリソースが不可欠であることを知っているが、異なる場所のみの存在は、端末またはサーバーに配置減らすことはできません。一人一人のデスクトップのコンピューティングリソースは、現在、この環境でのユーザーの経験は、サーバーに転送するために慣れているに等しいと仮定すると、100ユーザーが100X2X2を提供するためにサーバーを必要とする同時には、400のCPUコンピューティングパワーと200Gのメモリは、ユーザーの環境の経験に慣れて満たすために等しいです。その後、企業は500ユーザーがそれを計算し、それが1000ユーザーの場合、それ。実際には、ユーザーにこのようなコンピューティングパワーを提供することは不可能であり、また、この一方から、ユーザーエクスペリエンスを犠牲にしなければなりません。第二に、各ユーザーは、サーバーに行かなければならないオペレーティングシステムをダウンロードするために使用する帯域幅の圧力は巨大で、より多くのユーザーほど、この要因は明らかなので、この要因も考慮する必要がある企業の管理スタッフの焦点。ユーザーエクスペリエンスは、それが以前ほど良いではありませんが、それはそれを促進するためにITスタッフの仕事に影響を与えるのでしょうか?[1]

2、機器とソフトウェアの互換性:プラグアンドプレイ周辺機器に慣れて、新しいシステムは、毎日の仕事の習慣に影響を与えることはありません、影響がある場合は、それを回避する方法です?ビジネスマネージャーは、具体的に検討する必要があります。

3、コスト:企業によって費やされるすべてのペニーは、具体的にインプット-アウトプットの比率を考慮し、良い管理ツールを促進するために、少なくとも、それは時間の期間内に企業を与えることができる2倍以上の利点をもたらすことを考慮する必要があります。集中型仮想化ソリューションは、主に仮想化ソフトウェアのライセンス費用、純正オペレーティングシステムのライセンス、純正オフィスソフトウェアのライセンス、シンクライアントの調達コスト、ネットワーク機器の交換費用、新しいストレージデバイスのコスト増、サーバクラスタのハードウェアおよびソフトウェアの調達コスト、さらにはいくつかのネットワーク変換コストの形で入力コストをもたらします。対応の増加の技術的要件の管理のための新技術のために技術スタッフの訓練と学習のコスト、追加の管理要員のコストになります。機器の指数関数的な増加のために、また、サーバールームの改修のための電力消費の様々なコストがあります。 アカウントに様々なコストの合計を取ると、変換の単一のポイントの計算されたコストだけでなく、仮想化プラットフォームの将来のアップグレードコストを考慮し、内部システムのアップグレードとの互換性は、企業に一致することができます。そうして初めて、プロジェクト全体の費用とアップグレードに対処するための完全な財務計画を策定することができます。この計画には、企業グループ全体のすべての部門が調整に参加する必要があります。

4、マルチメディアと大規模なプログラムの経験:いくつかの設計部門や設計関連部門では、現在のグラフィックスカードの仮想化技術のために大規模な設計手順の必要性はまだ成熟していないので、このシナリオでは適用することはできません。

5、ハードウェアとソフトウェアのアーキテクチャの変更:新しいシステムと新しいアプリケーションは、チーム編成の変更に対処するための管理構造の変更に対処する準備ができていますか?***は、クラウドコンピューティングモデルのための企業の管理者が求めるために仮想化された製品プログラムを導入することを示唆:準備ができて?

Read next