勉強前イメージ
仮想化のイメージあるけど、それ以外はわかってない
調査
KVM とは
Kernel-based Virtual Machine の略で、linuxカーネル上で動く仮想化の技術です。
KVMを使ってホストを仮想化し、その上で仮想マシンを稼働させることができます。
仮想マシンはlinuxではなくてもwindowsでも稼働させることができ、複数の仮想マシンを稼働させることが可能です。
KVMはlinuxカーネル2.6.20以降で標準に搭載されています。
ちなみにlinuxカーネルのバージョン確認方法は uname -r
コマンドで見ることができます。
以下が実行例ですが、こちらであれば3.10.0なのでKVMが標準搭載されています。
[root@localhost ~]# uname -r
3.10.0-1160.62.1.el7.x86_64
そもそも仮想化のお話
仮想化を実現するには2種類のやり方があります。
- ホストOS型
ホストOSのミドルウェアとして、動作する。
気軽に構築できる。VirtualBoxなどこちらになる。
検証環境とかに使われている
- ハイパーバイザー型
ホストOSを使わず、仮想化のソフトが直接ハードウェアの入出力処置を実行する方法。
規模が大きい仮想マシンなどでよく使われている。
上記のような2つの種類があり
大きなサービスの本番環境などであればハイパーバイザー型が使われていることが多いのではないかと思います。
KVMはここでいうとカーネルに組み込まれているためどちらの型というのは言いづらいところではあります。
QEMUについても・・・
KVMでlinuxカーネル上に仮想化の環境はできても入出力(I/O)の仮想化はできません。
これをするにはQEMU(キューエミュ)が必要です。
QEMUはエミュレータ型の仮想化ソフトの一つです。
KVMとQEMUをセットで入れることによって、様々なゲストOSを使用できます。
勉強後イメージ
virtualboxとかで検証環境を使ってるのはホスト型。
1台のサーバにいくつものサーバを置いて、webサーバだったりDBサーバだったり立てるのがハイパーバイザー型。
KVMはlinuxカーネル上で動く独自な存在。