技術(非IT系)

ハイパーバイザ型の動作原理は?仮想マシン管理の仕組みも!(ハードウェア制御・リソース分割・CPU仮想化・メモリ管理・I/O制御など)

当サイトでは記事内に広告を含みます

ハイパーバイザが仮想マシンを管理する仕組みは、現代のクラウドコンピューティングを支える核心的な技術です。

「ハイパーバイザはどうやってCPUやメモリを仮想化しているのか」という疑問に答えることが、インフラ技術の深い理解につながります。

本記事では、ハイパーバイザ型の動作原理・仮想マシン管理の仕組み・CPU仮想化・メモリ管理・I/O制御を詳しく解説していきます。

ハードウェアレベルの仮想化技術を理解することで、クラウドやオンプレミスのインフラ設計における判断力が大きく向上します。

インフラエンジニア・クラウドエンジニア・システムアーキテクトの方にぜひ参考にしていただける内容です。

技術の深部を理解することが、より信頼性の高いシステム設計への近道となるでしょう。

ハイパーバイザの動作原理:ハードウェア制御とリソース分割の仕組み

それではまず、ハイパーバイザの基本的な動作原理とハードウェア制御・リソース分割の仕組みについて解説していきます。

ハイパーバイザの基本的な役割は、物理ハードウェアのリソースを複数の仮想マシンに安全かつ効率的に分配することです。

この実現のためにハイパーバイザは「特権モード」で動作し、仮想マシン上のゲストOSより高い権限でハードウェアを管理します。

リソース ハイパーバイザの管理方法
CPU 物理CPUの時間を仮想CPUとして各VMに割り当てるスケジューリング
メモリ 物理メモリを仮想アドレス空間にマッピングして各VMに提供
ストレージ 物理ディスクを仮想ディスクイメージとして各VMに提供
ネットワーク 物理NICを仮想NICとして分割・各VMに提供

ハイパーバイザは仮想マシンのOSが直接ハードウェアにアクセスすることを防ぎ、すべてのハードウェアアクセスを自身を経由させることでVM間の分離と安全性を確保します。

仮想マシンのゲストOSは「自分が物理ハードウェアを直接使っている」と思っていますが、実際にはハイパーバイザが管理する仮想リソースを使っています。

この「ゲストOSをだます」という仕組みが仮想化の本質です。

CPU仮想化の仕組み:Intel VT-xとAMD-Vによるハードウェア支援

続いては、CPU仮想化の仕組みとハードウェア支援仮想化技術について確認していきます。

CPU仮想化は仮想化技術の中でも最も複雑な部分の一つです。

物理CPUは一つですが、複数の仮想マシンが「自分専用のCPUがある」と思って動作する仕組みを実現しています。

【CPU仮想化の主要な技術】

①完全仮想化(Full Virtualization)

ゲストOSを無修正で動作させる方式。ゲストOSの特権命令をハイパーバイザがトラップして安全に処理する。VMwareの初期バージョンで使われた。

②準仮想化(Para-Virtualization)

ゲストOSをハイパーバイザ対応に修正して動作させる方式。ゲストOSがハイパーバイザの存在を認識して協調動作するため効率が高い。Xenで採用。

③ハードウェア支援仮想化(Hardware-Assisted Virtualization)

Intel VT-x(Intel Virtualization Technology)やAMD-V(AMD Virtualization)というCPUの仮想化支援機能を使う方式。現在の主流。ゲストOSを無修正で動作させつつ高い性能を実現する。

現代のCPU(Intel・AMD)にはほぼすべてVT-xまたはAMD-Vという仮想化支援機能が搭載されており、これによってゲストOSの特権命令を効率的に処理できるようになり、CPU仮想化のオーバーヘッドが大幅に削減されました。

ハードウェア支援仮想化の登場が、Type1ハイパーバイザの性能を飛躍的に向上させた重要な転換点です。

KVMはLinuxカーネルとIntel VT-x/AMD-Vを組み合わせることで、ベアメタルに近い性能を実現しています。

メモリ管理とI/O制御:仮想マシンのリソース管理の詳細

続いては、仮想マシンのメモリ管理とI/O制御の仕組みについて確認していきます。

CPU仮想化と並んでメモリ管理とI/O制御もハイパーバイザの重要な機能です。

【メモリ管理の主要技術】

①影ページテーブル(Shadow Page Table)

ゲストOSの仮想アドレスと物理メモリアドレスのマッピングをハイパーバイザが管理する従来方式。オーバーヘッドが大きい。

②EPT(Extended Page Table)/ NPT(Nested Page Table)

Intel VT-xのEPTやAMD-VのNPTを使って、ハードウェアレベルでアドレス変換を処理する現代の方式。メモリ管理のオーバーヘッドが大幅に削減される。

③メモリバルーニング

仮想マシンに割り当てるメモリを動的に調整する技術。使用率の低いVMのメモリを回収して別のVMに割り当てることで物理メモリを効率的に活用する。

④透過的ヒュージページ(THP)

大きなメモリページを使うことでTLB(Translation Lookaside Buffer)ミスを減らしメモリアクセスを高速化する技術。

I/O制御においては、SR-IOV(Single Root I/O Virtualization)という技術が重要な進歩をもたらしています。

SR-IOVはネットワークカードやストレージコントローラーを物理レベルで分割し、各仮想マシンがほぼ直接ハードウェアにアクセスできるようにする技術です。

これにより、従来のソフトウェアI/O仮想化に比べて大幅なパフォーマンス向上と低レイテンシが実現します。

ハイパーバイザはこれらの技術を組み合わせて、複数の仮想マシンに公平かつ効率的にリソースを分配する役割を担っています。

仮想マシンの管理機能:ライブマイグレーション・スナップショット・高可用性

続いては、仮想マシンの管理機能であるライブマイグレーション・スナップショット・高可用性について確認していきます。

ハイパーバイザが提供する仮想マシン管理機能は、物理サーバーでは実現できない柔軟な運用を可能にします。

管理機能 内容 メリット
ライブマイグレーション 稼働中のVMを別の物理ホストに無停止で移動する メンテナンス時のサービス停止ゼロ
スナップショット VMの状態を特定時点で保存する 変更前の状態に即座に戻せる
クローニング 既存のVMを複製して同一環境を素早く作成する 環境構築時間の大幅短縮
高可用性(HA) ホスト障害時にVMを別ホストで自動起動する ハードウェア障害からの自動復旧
DRS(分散リソース) クラスタ内のリソース使用率を均等化するよう自動移動する リソースの効率的な活用

ライブマイグレーションはハイパーバイザ型仮想化の最も革新的な機能の一つです。

サービスを停止せずにVMを別の物理ホストに移動できるため、ハードウェアのメンテナンス・アップグレード・故障対応が劇的に容易になります。

この機能がなければ、物理サーバーのメンテナンスは必ずサービス停止を伴うものでした。

スナップショットはインフラの「セーブポイント」として機能し、OSアップデートやアプリケーション変更前のバックアップとして活用できます。

ただしスナップショットを長期間保持すると性能低下やストレージ消費につながるため、適切な管理が必要です。

まとめ

ハイパーバイザの動作原理は、物理ハードウェアを仮想リソースとして分割・管理し複数の仮想マシンに提供することにあります。

CPU仮想化ではIntel VT-x・AMD-Vによるハードウェア支援仮想化が現在の主流であり、オーバーヘッドを最小化した高性能な仮想化を実現しています。

EPT/NPTによるメモリ管理・SR-IOVによるI/O仮想化が仮想マシンのパフォーマンスをベアメタルに近い水準まで高めています。

ライブマイグレーション・スナップショット・高可用性などの管理機能が、物理サーバーでは実現できない柔軟な運用を可能にします。

ハイパーバイザの動作原理を深く理解することが、クラウド・仮想化インフラの設計と運用の質を高める基盤となるでしょう。