サーバー仮想化ソフトウェアは、複数の仮想サーバーを単一の物理マシンで同時に実行できるようにする技術です。ハイパーバイザと呼ばれるソフトウェア・レイヤーをハードウェアとオペレーティング・システムの間に挿入することで、1 台のサーバーの CPU、メモリ、ストレージ、ネットワーク・リソースを複数の独立した仮想マシン(VM)に分割し、それぞれ独自の OS とアプリケーションを実行することができます。
分散環境全体で増大するワークロードを管理する企業にとって、サーバー仮想化ソフトウェアは基本的な IT 戦略となっています。ハードウェアのコストを削減し、リソースの使用率を向上させ、新しいアプリケーションやサービスの導入を迅速化します。
この記事では、サーバー仮想化ソフトウェアがどのように機能するか、利用可能なさまざまなタイプ、評価すべき主要なコンポーネント、メリット、実装ガイダンス、技術の次の方向性について説明します。
サーバー仮想化ソフトウェアの仕組み
本質的に、サーバー仮想化ソフトウェアは、物理ハードウェアと、その上で動作するオペレーティング・システムとの間に抽象化レイヤーを構築します。このレイヤー、ハイパーバイザは、仮想マシンからのハードウェア呼び出しを傍受し、物理サーバーが実行できる命令に変換します。
基本的なプロセスは次のとおりです。
- ハードウェア抽象化:ハイパーバイザは、物理サーバーの CPU、RAM、ストレージ、ネットワーク・インターフェースを制御します。これにより、共有リソースのプールが作成されます。
- VM の作成:管理者は、それぞれにvCPU、メモリ、仮想ディスク、ネットワーク ・アダプタが割り当てられた仮想マシン(VM)を定義します。ハイパーバイザは、共有リソースプールからこれらをプロビジョニングします。
- 分離:各 VM は、独自のサンドボックス環境で動作します。1 つの VM でクラッシュやセキュリティ侵害が発生しても、同じホストの他のユーザには影響しません。
- リソースのスケジューリング:ハイパーバイザは、ワークロードの需要に応じて、リソースの割り当てを動的に管理し、CPU サイクルと VM 間のメモリをシフトします。
- 管理インターフェース:一元化されたコンソールにより、管理者は複数の物理ホスト間で VM を作成、構成、監視、移行、廃止できます。
このアーキテクチャにより、サーバー仮想化ソフトウェアはエンタープライズ IT にとって非常に強力なものとなっています。アプリケーションごとに個別の物理サーバーを購入・保守する代わりに、多くのアプリケーションが利用可能な容量の 10%~15% しか使用していないため、1 台のマシンで 60%~80% の使用率で数十のワークロードを実行できます。NRDC によると、データセンター全体の平均サーバー使用率は、仮想化の普及後も 12% から 18% の間で推移し、問題の規模と機会の両方を明らかにしています。
サーバー仮想化の種類
全てのサーバー仮想化ソフトウェアが同じように機能するわけではありません。組織が選択するアプローチは、性能要件、既存のインフラ、運用の複雑さによって異なります。
タイプ1(ベアメタル)ハイパーバイザ
タイプ 1 ハイパーバイザは、基盤となるオペレーティングシステムを必要とせず、物理サーバーのハードウェアに直接インストールされます。ハードウェア・リソースを制御し、オーバーヘッドを最小限に抑えてゲスト VM を管理できるため、ネイティブに近いパフォーマンスを提供します。
一般的な例としては、VMware ESXi、Microsoft Hyper-V(スタンドアロンの役割としてインストールされた場合)、KVM(カーネルベースの仮想マシン)、Proxmox VE などがあります。ベアメタル・ハイパーバイザは、性能、密度、信頼性が最も重要な本番データセンター環境の標準となっています。
タイプ2(ホスト型)ハイパーバイザ
タイプ 2 ハイパーバイザは、既存のオペレーティング・システム上でアプリケーションとして実行されます。インストールと管理は容易である一方で、ハードウェアアクセスのためにホスト OS に依存するため、オーバーヘッドが追加されます。
Oracle VirtualBox や VMware Workstation などがその例です。これらは、本番環境のワークロードではなく、主に開発、テスト、ラボ環境で使用されます。
OS レベルの仮想化(コンテナ)
コンテナ化は従来のサーバー仮想化とは技術的には異なり、補完的なアプローチとなっています。Docker などのコンテナ・エンジンや Kubernetes などのオーケストレーション・プラットフォームは、ハードウェア・スタック全体を仮想化するのではなく、OS レベルでアプリケーションを分離します。コンテナは軽量で、数秒で開始します。しかし、ホスト OS カーネルを共有するため、OS の多様性を制限します。
現在、多くのエンタープライズ環境では、VM とコンテナの両方を並列で実行し、サーバー仮想化ソフトウェアを使用して完全な OS 分離を実現し、マイクロサービスやクラウド・ネイティブなアプリケーション用のコンテナを使用しています。
準仮想化
準仮想化では、ゲスト OS がハイパーバイザを認識するように変更され、ゲスト OS と仮想化レイヤー間の直接通信を可能にします。これにより、完全なハードウェア・エミュレーションと比較してオーバーヘッドを削減できます。Xen は、最も有名な準仮想化プラットフォームです。しかし、モダン・ハイパーバイザは、準仮想化技術とハードウェア支援の仮想化を融合したハイブリッド・アプローチを採用しています。
仮想化プラットフォームの主要コンポーネント
サーバー仮想化環境を構成するコンポーネントを理解することで、さまざまなソフトウェア・オプションを評価・比較できます。
- ハイパーバイザ:あらゆる仮想化プラットフォームの基盤。物理リソースを抽象化し、VM に割り当てます。パフォーマンス、セキュリティ機能、エコシステムの互換性は、ハイパーバイザによって大きく異なります。
- ホストマシン:ハイパーバイザを実行している物理サーバー。ホスト・ハードウェア、特に CPU アーキテクチャ、メモリ容量、ストレージ性能は、効率的に実行できる VM の数を直接決定します。
- ゲストマシン(VM):ホスト上で実行されている仮想サーバー。各ゲストは、割り当てられた vCPU、メモリ、仮想ストレージ、およびネットワーク・インターフェースを使用して動作します。
- 仮想マシン・マネージャー(VMM):VM の作成、構成、監視、移行のための一元管理インターフェース。例としては、VMware vCenter、Microsoft System Center の Virtual Machine Manager(SCVMM)、Proxmox の Web ベースのコンソールなどがあります。
- 仮想化 API:自動化、オーケストレーション、サードパーティ製ツールとの統合を可能にするプログラム・インターフェース。API により、IT チームは VM プロビジョニングのスクリプト作成、ポリシーの適用、仮想化プラットフォームと CI/CD パイプラインの接続を行うことができます。
- ストレージ・バックエンド:多くの場合、ストレージ・レイヤーは、仮想化性能において最も重要な要素の 1 つです。ホスト上の全ての VM は、同じ基盤となるストレージ・サブシステムを共有します。ストレージの速度が遅い、または混雑すると、あらゆる仮想マシンに波及するボトルネックが生じ、アプリケーションの応答性が低下し、VM 密度が制限されます。
サーバー仮想化ソフトウェアと物理サーバーの比較
次の表は、主要なエンタープライズ基準全体で、サーバー仮想化環境と従来の物理サーバー展開を比較したものです。