【ケーブイエム】

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)」に組み込んで仮想マシンを動かすことから名付けられたんだよ
← 用語集にもどる