基于内核的虚拟机(Kernel-based Virtual Machine,缩写为KVM),是一种用于Linux内核中的虚拟化基础设施,可以将Linux内核转化为一个虚拟机监视器(Hypervisor)。
是一种运行于Intel VT或AMD-V硬件上的全虚拟化解决方案。
关于KVM
- 开源软件。
- 是x86架构且硬件支持虚拟化技术(如Intel VT或AMD-V)的Linux全虚拟化解决方案。
- 它包含一个为处理器提供底层虚拟化,可加载的核心模块kvm.ko。
- KVM还需要一个经过修改的QEMU软件(qemu-kvm),作为虚拟机上层控制和界面。
- KVM能在不改变linux或windows镜像的情况下同时运行多个虚拟机,(它的意思是多个虚拟机使用同一镜像)并为每一个虚拟机配置个性化硬件环境(网卡、磁盘、图形适配器……)同时KVM还能够使用ksm技术帮助宿主服务器节约内存。
- 在主流的Linux内核,如2.6.20以上的内核均已包含KVM核心。
KVM 将 Linux 转变为 1 类(裸机恢复)虚拟机监控程序。所有虚拟机监控程序都需要一些操作系统层面的组件才能运行虚拟机,如内存管理器、进程调度程序、输入/输出 (I/O) 堆栈、设备驱动程序、安全管理器以及网络堆栈等。KVM 具有所有这些组件,因为它是 Linux 内核的组成部分。每个虚拟机都像一般的 Linux 进程一样实施,由标准的 Linux 调度程序进行调度,并且使用专门的虚拟硬件,如网卡、图形适配器、CPU、内存和磁盘等。
KVM和Docker的区别
Docker和KVM是完全不同的两种东西。
KVM的虚拟化虚拟的是整个硬件和操作系统层(包含内存管理器、进程调度程序、输入/输出 (I/O) 堆栈、设备驱动程序、安全管理器以及网络堆栈等。)
Docker是一个虚拟化进程,内核级的虚拟化。
OpenStack和KVM之间的关系
OpenStack是云管理平台,其本身并不提供虚拟化功能,真正的虚拟化能力是由底层的hypervisor(如KVM、Qemu、Xen等)提供。
OpenStack默认使用的虚拟化技术是KVM。
2018.05.03
参考
1.基于内核的虚拟机;
2.OpenStack和KVM之间的关系;
3.Is KVM better than Docker?
4.what is KVM