一般的に言えば、仮想化テクノロジーとツールのレビューに着手する前に、それが何であり、どのようなタイプが起こるかを決める必要があります。 それでは、退屈な定義から始めましょう。 このパートでは、ウィキペディアの資料を使用します
仮想化 (コンピューティング)は、一連のコンピューティングリソース、またはそれらの論理的な組み合わせを表すプロセスであり、元の構成に勝る利点をもたらします。 これは、リソースの実装、地理的な場所、または物理的な構成によって制限されないリソースの新しい仮想ビューです。 通常、仮想化リソースには、計算能力とデータストレージが含まれます。
この定義は、仮想化によって実行されるタスクの境界を正式にマークします。 それでは、仮想化のタイプを見てみましょう。 同じウィキペディアの記事には次のように書かれています:
- サーバー仮想化
仮想マシンは、「ゲスト」オペレーティングシステムにハードウェアとして提示される環境です。 ただし、これは実際にはホストシステムソフトウェアによってシミュレートされるソフトウェア環境です。 このシミュレーションは、ゲストドライバーが安定して動作できるように十分に信頼できるものでなければなりません。 準仮想化を使用する場合、仮想マシンはハードウェアをシミュレートしませんが、代わりに特別なAPIの使用を提案します。 - OSレベルの仮想化
オペレーティングシステムレベルでの仮想化-物理サーバーをOSレベルで仮想化し、同じ物理サーバー上で分離された安全な仮想サーバーを実行できるようにします。 - リソース仮想化
リソースのパーティション分割は、通常、このリソース(ディスク領域やネットワーク帯域幅など)に十分な大きさの単一のパーティションを、同じタイプのより小さくてリサイクルしやすいリソースに分割することです。
複数のリソースを大きなリソースまたはプールリソースに集約 、配布、または追加します。 たとえば、対称型マルチプロセッサシステムは複数のプロセッサを統合します。 RAIDおよびディスクマネージャーは、複数のディスクを1つの大きな論理ドライブに結合します。 RAIDおよびネットワーク機器は、多くのチャネルを組み合わせて使用し、単一のブロードバンドチャネルとして表示します。 メタレベルでは、コンピュータークラスターが上記のすべてを実行します。たとえば、Vmware VMFS、Solaris ZFS、NetApp WAFLなど、それらが構築されているデータストレージから抽象化されたネットワークファイルシステムもここに属します。 - アプリケーションの仮想化
Application Virtualization —ローカルリソースを使用するローカルで実行されるアプリケーションの作業環境が含まれます。 仮想化されたアプリケーションは、アプリケーションの実行と実行に必要なレジストリキー、ファイル、およびその他のコンポーネントを含む小さな仮想環境で実行されます。 このような仮想環境は、アプリケーションとオペレーティングシステム間のレイヤーとして機能し、アプリケーション間の競合を回避するのに役立ちます。
仮想化の種類の説明により、どのような利点が得られるのかが明確になり、さまざまな技術やツールについて話し合い、このアプローチやそのアプローチの目的と意味を明確に理解し、どのツールがタスクの解決に適しているか、どのツールを使用すべきでないかを判断できるようになりました。
ここでは、この記事の資料を検索する過程で見つけた多種多様なツールについては説明しませんが、さまざまなOSに対して安定しているもののみを示します。
- Solaris Containers / Zones -Sun Microsystemsの仮想化の傑作の1つ。 このツールは、オペレーティングシステムレベルの仮想化ツールに起因します。 これは、Sun Solaris OSの通常のツールであり、おそらくその大きな利点の1つです。
- FreeBSD刑務所 -このツールのプロパティは、Solarisコンテナ/ゾーンに似ています。 このツールは、FreeBSD OSの標準仮想化ツールです。 また、Solarisのコンテナおよびゾーンと同様に、JailはOSレベルの仮想化機能を提供します。
- KVM(カーネル仮想マシン) -このツールは最近Linuxの標準サーバー仮想化ツールであり、カーネルのモジュールとして提供されています。 このモジュールは、vmx(Intel)またはsvm(AMD)テクノロジーに基づいています。 つまり この場合、仮想化はSolaris Containers / ZonesまたはFreeBSD Jailよりも低いレベルで発生します。
おそらく今後、この問題をより詳細に研究し、それに応じて、さらに記事が増えるでしょう。