はじめに
サーバーの仮想化は、1つの物理サーバーから複数のサーバーインスタンスを作成するプロセスです。各サーバーインスタンスは、分離された仮想環境を表します。各仮想環境内で、個別のオペレーティングシステムを実行できます。
この記事では、サーバーの仮想化と、この強力なテクノロジーを利用する理由についてすべて学びます。

サーバー仮想化とは何ですか?
仮想化の前に、ハードウェアの上にオペレーティングシステムをインストールして、サーバーに直接リンクさせます。つまり、各サーバーには独自のハードウェアが必要でした。
平均して、専用サーバーは通常の運用中にリソースの15%しか使用しません。ベアメタルサーバーでアプリケーションを実行すると、仮想化に比べていくつかの利点がありますが、多くの場合、リソースの浪費になります。さらに、ソフトウェアまたはハードウェアの障害により、すべてのサーバーで実際の修理が必要になることがよくありました。
したがって、セキュリティ上の目的で、リソースの使用率を高め、クライアントのオペレーティングシステム間の分離を維持する必要がありました。
サーバーの仮想化は、上記の問題の解決策として導入されました。仮想化ソフトウェアを使用すると、物理サーバーを複数の仮想サーバーに「分割」できます。そうすることで、ハードウェアに投資することなく、物理リソースを最大限に活用できます。
サーバー仮想化はどのように機能しますか?
仮想サーバーインスタンスを作成するには、最初に仮想化ソフトウェアをセットアップする必要があります。この重要なソフトウェアは、ハイパーバイザーと呼ばれます。 。その主な役割は、CPU /プロセッサ、RAM、その他の物理リソースを仮想インスタンスから分離する仮想化レイヤーを作成することです。
ホストマシンにハイパーバイザーをインストールすると、その仮想化ソフトウェアを使用して物理リソースをエミュレートし、その上に新しい仮想サーバーを作成できます。
サーバーの仮想化にはさまざまな種類があります。それらの違いは、主にそれらが提供する分離のレベルに基づいており、これはそれらがエミュレートするハードウェアリソースの量にも関連しています。
サーバー仮想化の種類
サーバーが提供する分離に基づいて、サーバー仮想化には3つのアプローチがあります。
- 完全仮想化または仮想マシンモデル
- 準仮想マシンモデル
- OSレベルでの仮想化
仮想マシンモデルまたは完全仮想化
完全な仮想マシンモデルでは、ハイパーバイザーはゲストマシンを完全に分離します。ホストマシンのハードウェアを共有しますが、ハイパーバイザーとその役割を認識せずに、完全に自律的なコンピューター上にあるかのように実行されます。これらのVMは、それ自体を自立的で効率的であると見なしています。したがって、オペレーティングシステムのインスタンスを適応させたり特別に変更したりする必要はありません。
Paravirtual Machine
複数の仮想マシンが必要で、柔軟なリソース共有がある場合、完全に仮想化された環境は必要ない場合があります。この場合、準仮想化環境の方が状況に適している可能性があります。
準仮想化モデルにより、VMが特権命令をトラップする必要がなくなり、時間効率が向上し、システムへの影響が少なくなります。オペレーティングシステムはハイパーバイザーの存在を認識し、ハイパーコールと呼ばれるコメントを送信してハイパーバイザーと直接通信します。 。
この通信を行うために、ハイパーバイザーとオペレーティングシステムの両方がハイパーコールの交換に特化しています。したがって、準仮想化には準仮想化ハイパーバイザーとオペレーティングシステムが必要です。これらは、 APIを実装することで変更されます (アプリケーションプログラミングインターフェイス)ハイパーコールを介して通信できるようにします。
オペレーティングシステムレイヤー

OSレベルでの仮想化は、複数のユーザースペースインスタンスの存在を可能にするカーネルを備えたオペレーティングシステムの機能です。このタイプの仮想化をコンテナ化と呼びます およびこれらのユーザースペースインスタンスコンテナ(パーティション、仮想環境、または刑務所)。
プログラムはコンテナ内で実行できますが、コンテナのコンテンツとそのコンテナに割り当てられたデバイスにのみ制限されます。プライマリOSとは異なり、これらのユーザースペースインスタンスは、利用可能なすべてのリソースがあると信じていますが、コンテナに割り当てられたリソースに制限されています。
このレベルの仮想化はホストと同じOSとカーネルを使用するため、OSのバージョンによってのみホストと異なる可能性があります。したがって、ホストとは異なるOSを使用できないため、制限があります。
ハイパーバイザーの種類
仮想環境の作成には、次の2種類のハイパーバイザーが使用されます。
- タイプ1ハイパーバイザー(ネイティブ/ベアメタルハイパーバイザー)
- タイプ2ハイパーバイザー(ホスト型ハイパーバイザー)
タイプ1ハイパーバイザー

タイプ1またはベアメタルハイパーバイザーは、ホストマシンの物理ハードウェアに直接インストールされ、ハードウェアとOSの間にレイヤーを提供します。このレイヤーの上に、多くの仮想マシンをインストールできます。マシンはまったく接続されておらず、オペレーティングシステムのさまざまなインスタンスを持ち、さまざまなアプリケーションサーバーとして機能する可能性があります。
管理コンソール
システム管理者と上級ユーザーは、管理コンソールと呼ばれるインターフェースを介してハイパーバイザーをリモートで制御します。 。
これを使用すると、オペレーティングシステムのインスタンスに接続して管理できます。また、サーバーのオンとオフを切り替えたり、オペレーティングシステムをあるサーバーから別のサーバーに転送したり(ダウンタイムや誤動作の場合)、他の多くの操作を実行したりすることもできます。
タイプ1ハイパーバイザーは、基盤となるオペレーティングシステム(ホスト)の攻撃対象領域がないため、非常に安全です。また、リソースの浪費を避けるために、使用状況に基づいて各仮想マシンに割り当てられたリソースを制御および割り当てます。
タイプ1ハイパーバイザーの例には、VMware ESXi、KVM、Oracle VM、Citrix XenServer、MicrosoftHyper-Vなどがあります。
タイプ2ハイパーバイザー
タイプ1とは異なり、タイプ2ハイパーバイザーは既存のオペレーティングシステムの上にインストールされます。これにより、ユーザーは自分のパーソナルコンピューターまたはサーバーを仮想マシンのホストとして利用できます。したがって、基盤となるハードウェア、ホストとして機能するオペレーティングシステム、ハイパーバイザー、およびゲストオペレーティングシステムがあります。

VMは分離されていますが、プライマリOSはハードウェアに直接接続されています。これにより、タイプ1ハイパーバイザーよりも安全性が低くなります。
セキュリティが最優先される環境では、このタイプのハイパーバイザーはニーズに合わない場合があります。ただし、中小企業のエンドユーザーやクライアントは、このタイプの環境の方が適していると感じるかもしれません。
ホスト型ハイパーバイザーを使用すると、オペレーティングシステムの複数のインスタンスをインストールできます。ただし、リソースの割り当てには注意が必要です。タイプ2ハイパーバイザーの場合、割り当てを超過すると、ホストマシンがクラッシュする可能性があります。
タイプ2ハイパーバイザーの例には、VMware Workstation、KVM、Oracle VM VirtualBox、Microsoft Virtual PC、Red HatEnterpriseVirtualizationなどが含まれます。