Skip to content
Published on

[仮想化] 09. 仮想化プラットフォーム比較: QEMU vs VirtualBox vs VMware vs KubeVirt

Authors

はじめに

仮想化プラットフォームの選択は、インフラのパフォーマンス、コスト、運用の複雑さに大きな影響を与えます。この記事では、QEMU/KVM、VirtualBox、VMware ESXi、KubeVirtの4つのプラットフォームを様々な観点から比較分析します。

プラットフォーム概要

QEMU/KVM

  • Linuxカーネルに内蔵されたType 1ハイパーバイザー(KVM)+ ハードウェアエミュレータ(QEMU)
  • オープンソース(GPL v2)
  • libvirt、virsh、virt-managerなどで管理

VirtualBox

  • Oracleが管理するType 2ハイパーバイザー
  • デスクトップ仮想化に特化
  • クロスプラットフォーム(Windows、macOS、Linux)

VMware ESXi

  • VMware(Broadcom)のエンタープライズType 1ハイパーバイザー
  • vCenter Serverによる集中管理
  • 商用ライセンス

KubeVirt

  • KubernetesネイティブVMオーケストレーション
  • 内部的にQEMU/KVMを使用
  • CNCF Incubatingプロジェクト

総合比較表

項目QEMU/KVMVirtualBoxVMware ESXiKubeVirt
タイプType 1(KVM)Type 2Type 1Type 1(KVM)
ホストOSLinuxWin/Mac/Linux専用(ESXi)Linux(K8s)
ライセンスGPL v2(無料)GPLv3/PUEL商用Apache 2.0(無料)
管理ツールlibvirt、virshGUI、VBoxManagevCenter、vSpherekubectl、virtctl
APIサポートlibvirt APICOM/SOAP APIREST/SOAP APIKubernetes API
ライブマイグレーションサポート非サポートサポート(vMotion)サポート
スナップショットサポートサポートサポート制限あり
コンテナ統合手動非サポート制限あり(Tanzu)ネイティブ
最大VM数数百(ノードあたり)数十数百(ホストあたり)数千(クラスタ)
コミュニティ活発普通ベンダー主導活発(CNCF)

GPUサポート比較

GPU機能詳細比較表

GPU機能QEMU/KVMVirtualBoxVMware ESXiKubeVirt
GPUパススルーVFIO非サポートDirectPath I/OVFIO Manager
vGPUNVIDIA vGPU Manager非サポート最高水準GPU Operator
MIGサポート手動設定非サポートMIGバックvGPUGPU Operator
仮想ディスプレイvirtio-gpu/virglVMSVGAVMware SVGAvirtio-gpu
OpenGLサポート4.5(virgl)3.0(部分)3.3(SVGA)virgl経由
CUDAサポートパススルー/vGPU非サポートパススルー/vGPUパススルー/vGPU
マルチGPUサポート非サポートサポートサポート
GPUホットプラグ制限あり非サポートサポート制限あり

GPUパススルー方式比較

QEMU/KVM:
+----------+     +--------+     +--------+
| IOMMU    | --> | VFIO   | --> | VM     |
| 設定     |     | バインド |     | GPU    |
+----------+     +--------+     +--------+
手動設定が必要、最大の柔軟性

VMware ESXi:
+----------+     +------------+     +--------+
| ESXi     | --> | DirectPath | --> | VM     |
| 設定     |     | I/O        |     | GPU    |
+----------+     +------------+     +--------+
vCenter UIで簡単設定

KubeVirt:
+----------+     +-------------+     +---------+     +--------+
| GPU      | --> | VFIO        | --> | Sandbox | --> | VM     |
| Operator |     | Manager     |     | Plugin  |     | GPU    |
+----------+     +-------------+     +---------+     +--------+
自動化された設定、K8s API統合

VirtualBox:
+----------+
| 非サポート |
+----------+
GPUパススルーサポートなし

vGPUサポート比較

QEMU/KVM:
- NVIDIA vGPU Managerが必要(ライセンス)
- Mediated Device(MDEV)フレームワーク
- 手動でMDEV作成・管理

VMware ESXi:
- エンタープライズ最高水準のvGPUサポート
- vCenterでvGPUプロファイル管理
- MIGバックvGPU完全サポート
- DRS(Distributed Resource Scheduler)連携

KubeVirt:
- GPU Operatorで自動化
- Sandbox Device Pluginでスケジューリング
- ClusterPolicyで宣言的管理

VirtualBox:
- vGPU非サポート

パフォーマンス比較

CPUオーバーヘッド

プラットフォームCPUオーバーヘッド説明
QEMU/KVM1-3%KVMハードウェアアクセラレーション、最小オーバーヘッド
VirtualBox5-10%Type 2ハイパーバイザー、ホストOS経由
VMware ESXi2-5%専用ハイパーバイザー、最適化されたスケジューリング
KubeVirt3-5%QEMU/KVM + K8s Podオーバーヘッド

I/Oパフォーマンス

プラットフォームディスクI/OネットワークI/O
QEMU/KVMvirtio: 90-95%virtio-net: 90-95%
VirtualBox70-80%80-85%
VMware ESXiPVSCSI: 90-95%VMXNET3: 90-95%
KubeVirtvirtio: 85-90%Podネットワーク経由

パフォーマンス数値はベアメタル比の割合です。

メモリオーバーヘッド

プラットフォームVMあたりオーバーヘッドメモリオーバーコミット
QEMU/KVM50-100 MBサポート(KSM)
VirtualBox100-200 MB非サポート
VMware ESXi100-200 MBサポート(TPS、Ballooning)
KubeVirt200-300 MBPodレベルで制限あり

管理と運用

管理の複雑さ

簡単                                                    複雑
|------|------|------|------|------|------|------|------|
       VBox          VMware       QEMU/KVM     KubeVirt

VirtualBox: GUI中心、数クリックでVM作成
VMware: vCenter Web UI、直感的なエンタープライズ管理
QEMU/KVM: CLI/XML設定、学習曲線が高い
KubeVirt: YAML/kubectl、K8s知識が必須

自動化レベル

プラットフォームIaCツールAPICI/CD統合
QEMU/KVMTerraform(libvirt)libvirt可能
VirtualBoxVagrantVBoxManage制限あり
VMware ESXiTerraform(vSphere)REST API優秀
KubeVirtKubernetes YAMLK8s APIネイティブ

ライセンスとコスト

ライセンスモデル比較

プラットフォーム基本ライセンスGPU関連追加コスト
QEMU/KVMGPL v2(無料)vGPU: NVIDIAライセンス
VirtualBoxGPLv3(無料)/ PUEL(拡張機能)GPU機能制限
VMware ESXivSphere Standard/EnterprisevGPU + VMwareライセンス
KubeVirtApache 2.0(無料)vGPU: NVIDIAライセンス

意思決定ガイド

いつどのプラットフォームを選択するか

QEMU/KVMを選択する場合

  • Linux環境で最大パフォーマンスが必要な場合
  • GPUパススルーでネイティブに近いパフォーマンスが必要な場合
  • オープンソースでコストを削減したい場合
  • 高いカスタマイズが必要な場合

VirtualBoxを選択する場合

  • 開発/テスト用デスクトップ仮想化
  • クロスプラットフォームサポートが必要な場合
  • GPUアクセラレーションが不要な場合
  • 素早く簡単なVM作成が必要な場合

VMware ESXiを選択する場合

  • エンタープライズプロダクション環境
  • 最高水準のvGPUサポートが必要な場合
  • vMotion、DRSなどの高度な機能が必要な場合
  • ベンダー技術サポートが重要な場合

KubeVirtを選択する場合

  • 既にKubernetesインフラを運用中の場合
  • コンテナとVMを統合管理したい場合
  • GitOps/IaCベースのVM管理が必要な場合
  • VMwareからのマイグレーションを計画中の場合

ワークロード別推奨プラットフォーム

ワークロード第1候補第2候補備考
ML/AI学習(大規模)QEMU/KVMKubeVirtGPUパススルー性能
VDI(企業)VMwareKubeVirtvGPU + 管理利便性
開発/テストVirtualBoxQEMU/KVM簡単な設定
レガシーマイグレーションKubeVirtVMwareK8s統合管理
マルチテナントGPUVMwareKubeVirtvGPU分離
CI/CD環境KubeVirtQEMU/KVM自動化統合
エッジコンピューティングQEMU/KVMKubeVirt軽量環境

マイグレーションパス

VMwareからKubeVirtへ

1. VMディスクをエクスポート(VMDK形式)
   |
   v
2. qemu-imgでQCOW2に変換
   qemu-img convert -f vmdk -O qcow2 vm-disk.vmdk vm-disk.qcow2
   |
   v
3. CDIでイメージインポート(HTTPまたはS3   |
   v
4. KubeVirt VM CRDを作成
   |
   v
5. ネットワーク/ストレージマッピングを確認
   |
   v
6. VMを起動して検証

VirtualBoxからQEMU/KVMへ

1. VDIディスクをQCOW2に変換
   qemu-img convert -f vdi -O qcow2 disk.vdi disk.qcow2
   |
   v
2. virsh/virt-managerでVMを作成
   |
   v
3. virtioドライバをインストール(Windowsの場合)
   |
   v
4. ネットワークを再設定

将来展望

プラットフォーム別発展方向

プラットフォーム発展方向
QEMU/KVMConfidential Computing(SEV/TDX)、ARM仮想化
VirtualBoxデスクトップ仮想化維持、ARMサポート拡大
VMwareBroadcom買収後不確実、ライセンス変更
KubeVirtCNCF Graduation、GPUサポート強化、エッジ拡張

おわりに

各仮想化プラットフォームには固有の強みと限界があります。パフォーマンス重視ならQEMU/KVM、デスクトップ環境ならVirtualBox、エンタープライズ環境ならVMware、クラウドネイティブ環境ならKubeVirtが最適です。

最近のBroadcomによるVMware買収とライセンス変更により、KubeVirtのようなオープンソース代替案への関心が大幅に増加しています。

次の記事では、仮想化技術の未来を展望します。コンフィデンシャルコンピューティング、GPUディスアグリゲーション、WebAssemblyなど次世代技術を取り上げます。


クイズ:仮想化プラットフォーム比較理解度チェック

Q1. GPUパススルーをサポートしないプラットフォームは?

A) QEMU/KVM B) VirtualBox C) VMware ESXi D) KubeVirt

答え:B) VirtualBoxはGPUパススルーをサポートしていません。デスクトップ仮想化に特化したType 2ハイパーバイザーです。


Q2. vGPUサポートが最も優れたプラットフォームは?

A) QEMU/KVM B) VirtualBox C) VMware ESXi D) KubeVirt

答え:C) VMware ESXiはエンタープライズレベルの最高のvGPUサポートを提供し、MIGバックvGPUとDRS連携まで対応しています。


Q3. コンテナとVMを同一クラスタで管理できるプラットフォームは?

A) QEMU/KVM B) VirtualBox C) VMware ESXi D) KubeVirt

答え:D) KubeVirtはKubernetesネイティブでコンテナとVMを同一クラスタで統合管理できます。


Q4. VMwareからKubeVirtへのマイグレーション時のディスク形式変換順序は?

A) VMDK -> VDI -> QCOW2 B) VMDK -> QCOW2 C) VMDK -> RAW -> QCOW2 D) VMDK -> IMG -> QCOW2

答え:B) qemu-imgを使用してVMDKを直接QCOW2に変換できます。