仮想化の概要
Vaporは、業界標準のエンタープライズ向けLinux仮想化技術を活用し、単一の物理ホスト上で分離された仮想マシン(VM)を実行および管理します。
仮想化アーキテクチャ:KVM、QEMU、libvirt
Vaporは、3つの主要なオープンソース技術を統合し、ハードウェア支援型仮想化を提供します:
- KVM (Kernel-based Virtual Machine): KVMは、LinuxオペレーティングシステムをType-1ハイパーバイザーに変換するカーネルモジュールです。ハードウェア支援仮想化拡張機能(Intel VT-xおよびAMD-V)を使用して、仮想マシンが物理ホストCPU上で命令を直接実行し、ネイティブに近いパフォーマンスで物理メモリにアクセスできるようにします。
- QEMU (Quick Emulator): KVMはCPUとメモリの管理を行いますが、周辺ハードウェアのエミュレーション機能は備えていません。QEMUはユーザースペースで動作し、PCIコントローラー、仮想ディスク、ネットワークインターフェースカード(NIC)、USBデバイス、シリアルコンソールなどの主要なハードウェアコンポーネントをシミュレートして仮想マシンに公開します。
- libvirt:
libvirtは、KVMおよびQEMUと相互作用するための安定した抽象化レイヤーを提供するAPI、デーモン(libvirtd)、および管理ツールセットです。XMLスキーマ定義を使用して仮想マシンの構成を表現し、ライフサイクル制御、ネットワークの割り当て、およびストレージボリュームのマッピングのための標準インターフェースを提供します。
Vaporは、これらの仮想化機能を直感的なWebコンソールと安全なREST APIを介して提供し、管理者が低レベルのハイパーバイザー構成ファイルを手動で編集する負担を排除します。
主要な仮想化コンポーネント
Vaporの仮想化サブシステムは、以下の管理領域をカバーしています:
- 仮想マシン (Computes): ライフサイクル操作、リソース割り当て(vCPU、RAM)、およびゲストオペレーティングシステムの構成。
- CPU & メモリ ホットプラグ: 実行中のVMのvCPUとRAMを再起動なしでスケーリング。
- ハードウェアとPCIパススルー: 高パフォーマンスなワークロード向けに、物理デバイス(GPUやSR-IOVインターフェースなど)を仮想マシンに直接マッピングする機能。
- ストレージプール: VMディスクファイル(
.qcow2)やインストールメディア(.iso)を格納する論理ストレージターゲット(ディレクトリ、ZFSプール、LVMボリュームグループ、またはネットワーク接続ストレージ)の定義と割り当て。 - 仮想ネットワーク: 仮想マシンを外部ネットワークに接続する、ホスト専用、NAT、およびブリッジ接続などの仮想ネットワークスイッチ。
- スナップショットとテンプレート: VMの特定時点の状態のキャプチャ、およびVMの迅速なプロビジョニングのための再利用可能なマスターテンプレートの作成。
- バックアップ: フル、差分、またはChanged Block Tracking (CBT) を使用した増分バックアップによる仮想マシンデータの保護。
- レプリケーションと災害復旧 (DR): 業務の継続性を確保するために、仮想マシンデータをセカンダリホストへ非同期的にレプリケーションする構成。