【ケーブイエム】

KVM とは?

💡 Linuxカーネルをそのままハイパーバイザーに変える技術
📌 このページのポイント
KVM — Linuxカーネルで動く仮想化技術 Guest OS(仮想マシン) Guest OS 1 Ubuntu Guest OS 2 Windows Guest OS 3 CentOS Linuxカーネル(KVMモジュール内蔵) Type-1相当のハイパーバイザーとして機能 / QEMUと連携 ハードウェア(CPU / メモリ / ストレージ)
KVMのレイヤー構造:カーネルがハイパーバイザーになる
ひよこ ひよこ

KVMって何?

ペンギン先生 ペンギン先生

Kernel-based Virtual Machineの略で、Linuxカーネルに組み込まれた仮想化技術だよ。1台の物理サーバーの上で、WindowsUbuntuなど複数のOSを同時に動かせるんだ。

ひよこ ひよこ

VirtualBoxとどう違うの?

ペンギン先生 ペンギン先生

VirtualBoxはホストOSの上でアプリとして動くType-2ハイパーバイザーだけど、KVMはLinuxカーネル自体がハイパーバイザーになるんだ。カーネルを直接使う分、オーバーヘッドが少なくて高速に動くよ。

ひよこ ひよこ

AWSでも使われてるの?

ペンギン先生 ペンギン先生

そうだよ。AWSのEC2インスタンスの多くはKVMベースの「Nitro」という仮想化基盤で動いているんだ。Google CloudOpenStackも同様にKVMを採用しているよ。

ひよこ ひよこ

QEMUとセットで聞くんだけど、どういう関係?

ペンギン先生 ペンギン先生

KVMはCPU仮想化を担当して、QEMUはネットワークカードストレージなどのデバイスをエミュレートする役割を持つんだ。2つが組み合わさって初めて完全な仮想マシン環境が作れるんだよ。

ひよこ ひよこ

DockerコンテナとKVMのVMはどう使い分けるの?

ペンギン先生 ペンギン先生

Dockerカーネルを共有して起動が速く軽量だけど、KVMはゲストOSを完全に分離できるのでセキュリティが高いんだ。マルチテナントクラウドではKVM、マイクロサービスの開発環境ではDockerという使い分けが多いよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「KVM」って出てきたら「Linuxカーネルに内蔵された仮想化技術で、クラウドの土台にもなっているものだな」と思えればだいたいOK!
📖 おまけ:英語の意味
「Kernel-based Virtual Machine」 = カーネルベースの仮想マシン
💬 Linuxの「カーネル(Kernel)」に組み込んで仮想マシンを動かすことから名付けられたんだよ
← 用語集にもどる