[KVM] 序章: KVMの概念

概要

Linux の仮想化基盤であるKVMの構築・導入の備忘録である

KVMとは?


wikipedia で十分詳しい..

Kernel-based Virtual Machine (KVM) で、用はLinux-Kernelを利用して仮想化を行うものである。

仮想化基盤にはいろいろあるが、KVMは ホストOSが存在するHyperViser型の完全仮想化基盤である。ただし、KVM単体では利用される事は無くqemuが必要となるので注意が必要。また、多くの場合にはlibvirtのライブラリを利用してKVM/QEMUを操作する。

CPUへ行う命令に関しては QEMUを経由せずKVMが直接やり取りをする事になっている。

KVMではざっくり 以下のアーキテクチャで動いている。

また、仮想マシンはプロセス上はQEMUとして動作するため
以下のイメージも間違いではない

QEMU


基本的には、仮想化を行うエミュレーターのようなイメージ。
qemuはKVMと組み合わせて利用することでメモリ/IOデバイスを仮想マシンに提供する。
ユーザプロセスとして動作する。
QEMUは /dev/kvmというファイルディスクリプタを経由して システムコントロールioctl() を利用して KVMモジュールのIOやメモリをコントロールする

libvirt


KVMを運用する上で不可欠なライブラリ郡。KVM/QEMUを効率よく利用するために利用する
よくみる virshコマンドとかはこちらを利用する。

別にlibvirtを利用せずとも直接QEMUをいじる事で仮想化基盤を触る事は可能なので、
玄人の方はlibvirtを入れない事もあるそうな。
(余計なツールはリソースを無駄にするだけなので)

[参考資料]
http://pantora.net/datapool/osc2007-spring/v-tomo_koibana2_kvm.pdf

2 Comments

Add a Comment

Leave a Reply

Your email address will not be published. Required fields are marked *

備忘録の覚書 © 2017 Frontier Theme