仮想化のメリットとデメリット

ハードウェア仮想化の概念は、IBM がコスト効率の高いソリューションの開発に多大な時間と労力を投資した 1960 年に提案され、VMware や Citrix などのさまざまなテクノロジー企業の努力により、1990 年代後半には仮想化はもはや概念ではありませんでした。 。近年のテクノロジーの進歩により、仮想化はクラウド コンピューティングなどの中核となる製品およびサービスになりました。あらゆる規模の企業が独自のクラウド コンピューティング製品を立ち上げています。 Google、Amazon、IBM、Microsoft は、サービスの一部として仮想化テクノロジーを提供している企業はほとんどありません。したがって、仮想化は全能であり、私たちがサーフィンしている Web サイトや企業や一般消費者が使用する Web アプリやサービスはすべて何らかのサーバー上で実行されており、おそらく仮想化上にあるでしょう。

はい、仮想化は普及しているテクノロジであるため、非常に有益ですが、いくつかの欠点もあります…今日は、サーバーとデスクトップの仮想化を扱うときにほとんど現れない、これらの長所と短所について話しましょう。

仮想化の利点または利点

1. サーバー管理の容易さ:

仮想化の出現により、管理者にとって大きな頭痛の種であった 1 つのことが軽減されました。つまり、複数の場所にある数百台のサーバーの処理が軽減されました。現在では、強力なハードウェアの助けを借りて、仮想化により、複数のサーバー ハードウェア上に複数のサーバー アプリケーションを作成するのではなく、それらのアプリケーションがいくつかのアプリケーションに分割されます。これにより、管理者が各ステーションのホストに対処するために何度も走り回る煩わしさが軽減されます。また、リモート ツールを使用すると、サーバーに物理的にアクセスせずに、レプリケーションやスナップショットなどのさまざまな機能を実行できます。

2. バランスの取れたハードウェア使用率:

サーバーにインストールされている各アプリケーションは、特定の時点で同じ量のリソースを消費するわけではありません。仮想化がなかったとき、アプリケーションの信頼性と可用性を確保し、アプリケーション間の競合や相互影響を回避するために、IT 管理者は単一の物理マシン上で複数の重要なアプリケーションを実行することを避け、電力とハードウェア リソースを浪費していました。ただし、仮想化の分離機能はこの問題をうまく解決し、ハードウェアの使用率も向上します。

さらに、企業の物理リソースの使用率は常に同じであるとは限りません。最初は消費量が少なくても、ビジネスが成長するにつれて、より多くの電力とリソースが必要になります。仮想化の出現後、突然の「ピーク」需要の問題は動的な拡張/調整によって解決でき、多数の物理マシンを追加することなく、複数の仮想マシンを物理マシン上で実行して、この追加の「アイドル時間」容量を利用できるようになります。リソース。

3. 動的に構成する

仮想化により、オペレーティング システムとアプリケーション プログラムがサーバー ハードウェアから分離され、柔軟性が大幅に向上します。物理サーバーをシャットダウンしたり削除したりせずに、仮想マシンのリソースを増減できます。したがって、ダウンタイムが少なくなります。

4. 高い信頼性

透過的な負荷分散、動的移行、および迅速なレプリケーションを提供する追加のソリューションとツールを利用して、信頼性の高いサーバー アプリケーション環境を提供します。これらすべてを組み合わせることで、サーバーまたはアプリケーション システムのダウンタイムが削減され、信頼性が向上します。

5. 費用対効果が高い

環境を仮想化すると、物理スペースの消費量が減り、エネルギーの使用量が減り、IT ハードウェアへの投資が削減され、コスト効率の高いメンテナンスが可能になります。この集中管理に加えて、このテクノロジーの大きな利点もあります…

仮想化の主な欠点または短所:

1. パフォーマンスの低下

仮想化テクノロジは、リソースを安定して使用できるようにする一方で、欠点もあるのではないか、と疑問に思われるかもしれません。はい、仮想化はシステムのハードウェア層上で実行されるソフトウェア層です。単一の物理マシン上で直接実行されているオペレーティング システムと比較すると、必然的にある程度のパフォーマンスが低下します。これは、単一のシステムには十分なリソースがありますが、物理マシン上で複数の仮想マシンが並行して実行される場合、物理マシンのリソースの使用率が高くなるほど、仮想マシンのパフォーマンスが大幅に低下するためです。

これには主に 2 つの理由があり、CPU の消費量が多いことと、ディスク ドライブからデータを読み取るプロセスが原因です。

CPU-複数の仮想マシンを作成して、サーバーまたはデスクトップに存在する限られた数の CPU の複数のコアを利用できます。したがって、物理マシン上で多数の仮想マシンが実行されている場合、CPU は常にビジー状態になります。 CPU の可能性を最大限に活用できることは間違いありませんが、その機能を拡張すると、この操作によってデッドロックに似たイベントが発生し、パフォーマンスが大幅に低下します。

さらに、特定のタスクを処理するために CPU の複数のコアを使用するように構成された VM としてアプリケーションをインストールした場合、同時に、物理マシンのコア数が必要な数よりも少ない場合、またはその時点で使用可能な場合、VM はがロックされ、使用可能なコアは他のコアが解放されるのを待ちます。

しかし、近年の仮想化技術の進歩により、多くのメーカーがこの点で多くの最適化を行い、この問題は大幅に改善されました。

I/O (入出力) 操作 -物理ディスクにインストールされている OS によって物理ディスクにデータを書き込むプロセスは、一部の VM とは異なります。データを書き込む VM IO 操作は、最初にホスト システムの仮想マシン イメージ ファイル上で発生し、次にホストはそれを特定の戦略で物理ハード ディスクに書き込みます。

この 2 段階でのデータの読み取りと書き込みにより遅延が発生します。これが 1 つの要因であり、もう 1 つはハードディスクの IOPS と複数の仮想マシンのランダム書き込み方法です。たとえば、7200 rpm SATA ディスクの理論上の IOPS は 76 で、Windows で動作する場合の一般的な IOPS は 10 ~ 30 であるため、理論上、SATA ディスクは 2 ~ 3 つの VM しかサポートできません。したがって、複数の仮想マシンをインストールして実行し、それらすべてがデータの読み取りと書き込みでビジー状態になると、VM は IO_Wait 状態になります。

2. セキュリティ

仮想化以前は、さまざまな重要なアプリケーションを実行するマシンは物理層で分離されていましたが、現在は仮想層のみになっているため、保護された環境で仮想マシン間の通信が適切に管理および監視されていない場合、攻撃につながる可能性があります。したがって、仮想内部および外部アプリケーションには厳格な標準を適用する必要があります。また、重要なパッチとアップデートを適用して VM を最新の状態に保ちます。仮想環境でこれを行わないと、致命的な事態が発生する可能性があります。

3. ホストがクラッシュし、VM もクラッシュする

従来の構成では、仮想マシンはローカル物理マシンのハードディスクに保存されます。実際の物理マシンがダウンすると、上記のすべての仮想マシンが使用できなくなります。物理マシンのハードディスクが破損し、通常であればほとんどのファイルは回復できるが、たまたま仮想マシンのイメージファイルが破損し、仮想マシン内のファイルが完全に上書きされてしまうという実話もあります。 。

4. 複雑な実装と複雑な管理

複数の仮想マシンのホストと仮想ネットワークの確立、およびその他のサービスが複雑な構造を形成します。これを管理するには、企業は仮想化の管理に関する広範な知識を持つ特別な IT 管理者を必要とします。通常の管理者は、問題のトラブルシューティングや解決を行うことができない場合があります。たとえば、VM が起動できない、または停止していることがよくあり、これは実際の物理マシンほど解決するのが簡単ではありません。

5. 導入コストは低くありません。

実際、仮想化環境を実装すると、インフラストラクチャを実行する複数の物理マシンと比較して、電力と管理のコストが削減されます。ただし、仮想化インフラストラクチャをゼロからセットアップするための初期費用は、ハードウェアのリソースが高いため、より多くの費用が必要になります。長期的には費用対効果が高い。

6. VM のスプロール

直面する可能性のあるもう 1 つの問題は、仮想化のスプロールまたは VM のスプロールです。物理インフラストラクチャでは、システムやサーバーの数は限られていますが、仮想化されると、多数の仮想マシンを定義できます。たとえば、10 台の物理マシンまたはサーバーがある場合、そこに 10 個のオペレーティング システムをインストールしますが、10 台すべてに仮想プラットフォームがある場合は、10×10 = 100 台のマシンを実行できます。しかし、適切な管理や制御がなければ、VM が拡散し、各マシンから適切な結果が得られなくなります。

そのため、やみくもに仮想マシンを作成して実行すると、サーバーのクラッシュ、パッチが適用されていないマシン、アプリケーションのクラッシュ、デッドロック、その他のボトルネックなどの問題が噴出し始めます。

したがって、適切な管理が必要となります。

エンディングノート:

顧客のニーズと使用習慣、実装シナリオを深く理解し、対応する展開計画と運用および保守戦略を立ててほとんどの問題を回避できれば、上記の欠点は実際にはそれほど深刻ではありません。そうすれば問題は利点に変わります。

その他の記事: