内容参考自:KVM-基于内核的虚拟机 - 维基百科
欢迎关注我的微信公众号【万能的小江江】
KVM简介
基于内核的虚拟机(Kernel-based Virtual Machine,缩写为KVM)是一种用于Linux内核中的虚拟化基础设施,可将Linux内核转化为一个虚拟机监视器
在KVM上可以运行诸多客户操作系统,包括Linux的诸多发行版、BSD、Solaris、Windows、Haiku、ReactOS、Plan 9、AROS研究操作系统和OS X。https://zh.wikipedia.org/wiki/基于内核的虚拟机#cite_note-7)除此之外,还支持Android 2.2、GNU/Hurdhttps://zh.wikipedia.org/wiki/基于内核的虚拟机#cite_note-8)(Debian K16)、Minix 3.1.2a、Solaris 10 U3和Darwin 8.0.1,而其他操作系统或新版操作系统都支持KVM,仅仅存在一些限制而已。
VirtIO半虚拟化 在Linux、OpenBSD、FreeBSD、NetBSD、(https://zh.wikipedia.org/wiki/基于内核的虚拟机#cite_note-12)Windows上支持对部分设备的[半虚拟化](https://zh.wikipedia.org/w/index.php?title=半虚拟化&action=edit&redlink=1)。这项特性支持半虚拟化的网卡、半虚拟化的磁盘控制器、用于调整客户端内存使用的气球设备(Balloon device)和使用独立计算环境简单协议的VGA图形接口。
KVM内部结构
KVM提供抽象的设备,但不模拟处理器。它开放了/dev/kvm
接口,供使用者模式的主机使用:
- 设置客户虚拟机的地址空间。宿主机同样也需用户可用于引导进主操作系统的固件镜像(通常为模拟PC时的自定义BIOS)。
- 为客户机模拟I/O。
- 将客户机的视频显示映射回系统宿主机上。
在Linux上,QEMU版本0.10.1及更新版就是一个用户层主机。QEMU使用KVM以近乎原生的速度虚拟化客户机,若无KVM的话则将仅使用软件模拟。
KVM内部使用SeaBIOS作为对16位x86 BIOS的开源模拟。
KVM的图形化管理工具
- Kimchi – 网页版KVM虚拟化管理工具
- Virtual Machine Manager – 支持创建、编辑、启动与停止基于KVM的虚拟机,同时也支持对宿主之间的实时或冷拖拽虚拟机迁移。
- Proxmox虚拟环境 – 一项开源的虚拟化管理包,包括KVM与LXC。同时它还有裸机安装器、网页版远程管理界面、HA集群堆栈、统一存储、柔性网络及可选的商业支持。
- OpenQRM – 用于管理不同数据中心基础设施的平台。
- GNOME 机柜 – Linux上用于管理libvirt客户机的Gnome界面。
- oVirt – 用于管理基于libvirt的KVM开源工具。