第12回 サーバー仮想化ソフトウェア比較

x86システム上でサーバー仮想化ソフトウェアが登場して約25年がたちます。当初はVMwareが圧倒的なシェアでしたが、現在はLinux KVMもよく利用されています。特にパブリッククラウドベンダーが提供する仮想マシンサービス(Amazon EC2やOCI Computeなど)ではLinux KVMベースのサービスが主流となっています。

本コラムではサーバー仮想化ソフトウェアとしてOracle Linux KVMを何回か取り上げています。そこで、サーバー仮想化ソフトウェアの歴史を振り返りつつ、現在における選択肢と、選定のポイントについて説明します。

x86システム上で最初のサーバー仮想化ソフトウェア「VMware Workstation」が登場したのが1999年です。2001年には現在の「VMware vSphere ESXi」の初期バージョンとなる「VMware ESX Server」が登場しています。

VMware登場以前も汎用機やハイエンドUNIXサーバーでは1台のサーバーを複数に分割して利用する仮想化技術は存在しました。しかし、安価なx86システムで利用できるようになったことは衝撃的でした。

その後は、ハードウェアの劇的な性能向上とサーバー仮想化ソフトウェアの進化によって、現在はサーバー仮想化が当たり前の状況になっています。ここではハードウェアの性能向上に軽く触れると共に、サーバー仮想化ソフトウェアの歴史を振り返ります。

サーバー仮想化の普及に、もっとも影響を与えたのがハードウェアの性能向上でしょう。現在はローエンドサーバーでも4コア程度のCPUを搭載しており、50コアを超えるCPUも珍しくありません。これらのサーバーを効率的に利用する手段としてサーバー仮想化は欠かせないテクノロジーとなりました。

それ以外にも20年前と現在ではハードウェアの性能が劇的に向上しています。

  • CPUのマルチコア化・メニーコア化
  • Hyper-ThreadingやSimultaneous Multi Threading(SMT)によるCPUスレッド数増加
  • Intel VTやAMD-V(AMD SVM)など、CPUの仮想化支援テクノロジー
  • 数百ギガからテラバイトクラスの大容量メモリの普及
  • SSD/NVMeによるディスクアクセスの高速化

現在までに数多くのサーバー仮想化ソフトウェアが登場しました。そこで、これまでに登場した主要なソフトウェアを紹介します。

VMware
VMware ESX(現VMware ESXi)が登場してから、ハイパーバイザー(Hypervisor)による効率的な仮想化が可能になりました。また、vMotionによるライブマイグレーションの実現や、強力な管理ツールvCenter Serverの登場など、現在は非常に多くの機能を備えています。

VMwareのWebサイトを見ると、VMware vSphereだけでも多くのエディションがあり、機能も多彩なことがわかります。またvSANやNSXなどの関連プロダクトも数多くリリースされています。

Xen
Linuxで最初に登場したハイパーバイザーがXenです。2003年にファーストバージョンがリリースされ、その後はCitrix Systems社やOracle社などからXenベースのハイパーバイザーがリリースされました。

このときリリースされたOracle社の製品がOracle VM Server for x86です。Oracle VM Serverでは、これまでVMwareなどの仮想化環境では認められなかった、ハードパーティショニング(Hard Partitioning)が可能になりました。

現在もOracle VM Serverは利用されていますが、Premier Supportはすでに終了し、2024年6月にExtended Supportの終了がアナウンスされています。後継となる製品は、後述するOracle Linux KVMです。

Linux KVM
2007年にLinuxのメインラインカーネルにマージされたのがKVM(Kernel-based Virtual Machine)です。当初はXenのほうが優れていたため劣勢でした(Amazon EC2も当初はXenベース)。しかし、カーネルのメインラインに統合されたことから徐々に優勢になり、現在LinuxのハイパーバイザーではKVMが主流となっています。

また、Amazon Web ServicesやOracle Cloud Infrastructure、Google Cloudなど多くのパブリッククラウドでは、Linux KVMをベースとしたものが利用されています。

KVMはLinuxカーネルに含まれているため、現在リリースされているほとんどLinuxディストリビューションで使用できます。

Oracle Linuxもその1つで、Oracle Linux KVMという製品は存在せず、普通のOracle LinuxでKVMを使用できます。また、2019年にリリースされたOracle Linux Virtualization Managerと組み合わせることで、統合的な管理ができるだけでなく、Oracle VM Serverと同様のハードパーティショニングを実現できます。

仮想化に特化した製品としては、2009年にRed Hat社がリリースしたRed Hat Virtualization (旧称Red Hat Enterprise Virtualization) があります。
管理ツールなどもバンドルして仮想環境に最適化した製品でしたが、2022年にメンテナンスサポート期間になり、もっとも期間の長い延長ライフフェーズサポートも2026年8月に終了することがアナウンスされています。

現在Red Hat Virtualizationは、コンテナプラットフォームのRed Hat OpenShiftに組み込まれ、Red Hat OpenShift Virtualizationという機能として存在しています。

Microsoft Hyper-V
Hyper-VはWindows Serverの機能の1つとして2008年に登場しました。当初は性能不足やサポートするゲストOSの少なさなどで苦しみましたが、現在はAzureの基盤として採用されるまでになっています。Windows 8以降の一部のエディションではクライアントHyper-Vもありますが、今回はWindows ServerのHyper-Vを対象としています。

ここまでは主要なハイパーバイザーを紹介してきましたが、近年はこれら以外のサーバー仮想化テクノロジーも利用されています。そこで、いくつか紹介します。ただし、これまで説明したハイパーバイザーとは位置づけが異なるプロダクトなので、次章での比較対象には含めません。

Nutanix
ハイパーコンバージドインフラストラクチャ(HCI)に分類される製品です。サーバー仮想化に必要な機能を1つにまとめた製品で、サーバーやストレージ、ネットワーク、ソフトウェアのすべてのコンポーネントが含まれています。あらかじめセットアップされているので短時間に構築でき、すべて単一ベンダーから提供されるので複雑性と運用コストを低減できます。

ハイパーバイザーとしては、Linux KVMベースのNutanix AVHをデフォルトで使用でき、ESXiなど外部のハイパーバイザーも利用できます。

デメリットとしては、サーバー構成が限定されるため希望するCPUコア数での構築が困難なことや、ソフトウェアベースのストレージのためI/Oパフォーマンスに制限があることなどです。ただし、Nutanixは外部ストレージも利用できます。

OpenStack
OpenStackはクラウドコンピューティング環境を構築するソフトウェアです。おもにプライベートクラウド環境で使用され、仮想マシンやストレージ、ネットワーク、管理ツールなどを備えています。ハイパーバイザーとしては、KVMやESXi、Hyper-Vなどをサポートしています。

当初は安価に利用できる仮想環境として期待されました。しかし、構造が複雑で構築・運用が難しいこと、さらにリリースサイクルが6カ月と短く、メンテナンス期間も限定的なことから、現在は一部のテクノロジー系企業やパブリッククラウドベンダーの基盤として利用されています。

OpenStackは、Red Hat OpenStack Platformのようなディストリビューションとしてもリリースされています。

表01:OpenStackとパブリッククラウドのコンポーネント対応表

OpenStackAWSOCI
コンピュートNovaEC2Compute
ネットワークNeutronVPCVCN
ブロックストレージCinderEBSBlock Volume
オブジェクトストレージSwiftS3Object Storage
運用管理ツールHorizonマネジメントコンソールOCIコンソール

コンテナ
2013年に登場したDockerに始まり、2018年ころにはコンテナ基盤のオーケストレーターとしてKubernetesがスタンダードとなりました。コンテナによるサーバー仮想化は、ハイパーバイザーよりも集約力が高く、高速で軽量です。また、DevOpsとも相性がよいため、先進的なアプリケーションエンジニアからは歓迎されています。

ただし、以下の理由があるのでオンプレミスの本番環境での利用は限定的です。特に既存のアプリケーションがあるときの採用にはハードルがあります。

  1. Kubernetesのリリースサイクルが早く(1バージョン9カ月サポート)、Kubernetes本体およびエコシステムが猛烈な勢いで進化しているのでキャッチアップが大変
  2. 仮想マシンと比べてトラブルシュートが難しい
  3. 仮想マシンとは仕組みが違うため既存のアプリケーションは改修が必要

1はパブリッククラウドのマネージドサービスを利用することで軽減できますが、オンプレミスでは提供されていません。

ここまで、いくつかのサーバー仮想化方法を紹介してきました。今回はオンプレミスで利用可能なハイパーバイザーとして以下の3製品を比較します。

  • VMware vSphere
  • Microsoft Hyper-V
  • Oracle Linux KVM

実際のところ10年前ならば、VMwareが圧倒的に優れていました。しかし、その後のパブリッククラウド普及と、多くのパブリッククラウドベンダーがLinux KVMを利用したことで著しく向上し、現在は機能や性能、安定性といった基本機能に差がない状態です(AzureはHyper-Vを利用)。スケーラビリティではKVMのほうが優れているという調査結果もあるくらいです。

たとえばAmazon EC2の基盤となるAWS Nitro Systemは、専用のSoC(System on a Chip)を利用したハードウェアとKVMベースのハイパーバイザーなどから構成されています。

今回のソフトウェア比較では、ふりかえりとして概要の比較と、差が出るコスト面と運用面を比較します。

次の表は、各ハイパーバイザーの基本概要と主要機能です。もっと細かな比較表も世の中には存在しますが、あまり差が無いので、この程度にしておきます。ここでは、それぞれの概要を理解する程度に眺めてください。

表02:ハイパーバイザーの比較(基本)

※1:ハイパーバイザーに機能があることを示しているだけで、ホストおよびゲストの設定次第では動作しないこともあります。

もっとも異なるのがライセンスやサポートなどのコスト面です。VMwareやHyper-Vは価格が複雑で、一般公開されていない部分もあるので具体的な金額は書きませんが、それぞれの見積もりを取ったことがある方ならばOracle Linux KVMが圧倒的に安価なことが分かるはずです。また、Oracle製品を使用している場合、ハードパーティショニングとして認定されているので、Oracleのライセンスコストを大幅に削減できます。

表03:ハイパーバイザーの比較(コスト)

コスト面とは逆に、Oracle Linux KVMで見劣りするのが運用面です。お気に入りベンダーのサーバーが正式サポート外でも、Oracle社のOracle x86 Serverを利用すればサポートの問題は解決します。問題となるのは、バックアップなどのサードパーティーツールと、ノウハウを持ったエンジニアの少なさでしょう。

表04:ハイパーバイザーの比較(運用)

基本機能や性能、安定性の面で差が少なくなった現在、重要な比較ポイントは「コスト」と「運用」だと考えています。予算が潤沢にあり、安心した運用を行いたいならばVMwareは有力な選択肢でしょう。また、多くのWindows Serverを利用しているならばHyper-Vの親和性は高いはずです。

コストを重視するかたにとってはOracle Linux KVMは魅力的です。ライセンス不要でサポートも安価です。特にOracle製品を利用しているときはハードパーティショニングを利用できるので他との価格差が顕著になります。残るは運用面の不安です。これを自社エンジニアの育成によって解決するか、もしくは優れたパートナーで解決するのか、それは各社の方針や出会いで決まることかもしれません。

参考までに、Oracle社がKVMとVMware vSphere比較資料を公開していたので紹介します。

関連サービス

Oracle Linux KVM

Linux KVM (Kernel-based Virtual Machine:カーネルベースの仮想マシン) は、Linuxに組み込まれたオープンソースの仮想化テクノロジーです