KVM功能概览

来源:互联网 发布:java里字段 编辑:程序博客网 时间:2024/05/29 09:32

在KVM架构中,虚拟机实现为常规的Linux进程,由标准Linux调用程序进行调度。事实上,每个虚拟CPU显示为一个常规的Linux进程。

需要注意的是,KVM本身不执行任何模拟,需要用户空间程序通过/dev/kvm接口设置一个客户机虚拟服务器的地址空间,向它提供模拟的I/O,并将它的视频显示映射回宿主的显示屏。目前这个应用程序就是大名鼎鼎的QEMU。

KVM架构

KVM的功能特性:
(1)内存管理
KVM从Linux继承了强大的内存管理功能。一个虚拟机的内存与任何其他Linux进程的内存一样进行存储,可以以大页面的形式进行交换以实现更高的性能,也可以以磁盘文件的形式进行共享。NUMA支持(非一致性内存访问,针对多处理器的内存设计)允许虚拟机有效地访问大量内存。
KVM支持最新的基于硬件的内存虚拟化功能,支持Intel的扩展页表(EPT)和AMD的嵌套页表(NPT),以实现更低的CPU利用率和更高的吞吐量。
内存页面共享通过一项名为内核同页合并(Kernel Same-page Merging,KSM)的内核功能来支持。KSM扫描每个虚拟机的内存,如果虚拟机拥有相同的内存页面,KSM将这些页面合并到一个在虚拟机之间共享的页面,仅存储一个副本。如果一个客户机尝试更改这个共享页面,它将得到自己的专用副本。
(2)存储
KVM能够使用Linux支持的任何存储来存储虚拟机镜像,包括IDE、SCSI和SATA的本地磁盘,网络附加存储(NAS)(包括NFS和SAMBA/CIFS)或者支持iSCSI和光纤通道的SAN。多路径I/O可用于改进存储吞吐量和提供冗余。
KVM的原生磁盘格式为QCOW2,它支持快照,允许多级快照,压缩和加密。
(3)设备驱动程序
KVM支持混合虚拟化,其中准虚拟化的驱动程序安装在客户机操作系统中,允许虚拟机使用优化的I/O接口而不使用模拟的设备,从而为网络和块设备提供高性能的I/O。KVM准虚拟化的驱动程序使用IBM和Red Hat联合Linux社区开发的VirtIO标准,它是一个与虚拟机管理程序独立的、构建驱动程序的接口,允许为多个虚拟机管理程序使用一组相同的设备驱动程序,能够实现更出色的虚拟机交互性。

0 0