在线购物网站建设的需求分析,小程序开发兼职的注意要点,企业标准型手机网站,用什么做网站后台的前言
大家好#xff0c;我是秋意零。
今天介绍的内容是KVM的概述#xff0c;以及它所支持的基本功能。 #x1f47f; 简介
#x1f3e0; 个人主页#xff1a; 秋意零#x1f525; 账号#xff1a;全平台同名#xff0c; 秋意零 账号创作者、 云社区 创建者#x1f…前言
大家好我是秋意零。
今天介绍的内容是KVM的概述以及它所支持的基本功能。 简介 个人主页 秋意零 账号全平台同名 秋意零 账号创作者、 云社区 创建者 个人介绍在校期间参与众多云计算相关比赛如 “省赛”、“国赛”并斩获多项奖项荣誉证书 目前状况24 届毕业生拿到一家私有云IAAS公司 offer目前已在实习欢迎大家欢迎大家一起学习云计算走向年薪 30 万推广CSDN 主页左侧是个人扣扣群推广。方便大家技术交流、技术博客互助。 一、KVM介绍
KVM全称是Kernel-based Virtual Machine基于内核的虚拟机是采用硬件虚拟化技术的全虚拟化解决方案对于某些设备如硬盘、网卡KVM也支持virtio的半虚拟化方式。
2006年10月KVM模块的源代码被正式纳入Linux kernel成为内核源代码的一部分。
KVM基于硬件虚拟化支持的全虚拟化实现。它以内核模块的形式加载之后就将Linux内核变成了一个Hypervisor但硬件管理等还是通过Linux kernel来完成的所以它是一个典型的Type 2 Hypervisor。 二、架构
一个KVM虚拟机对应于一个Linux进程每个vCPU是该进程下的一个线程还有单独的处理IO的线程也是在该进程中的线程组内。
所以宿主机上各个虚拟机是由宿主机内核像调度普通进程一样调度的即可以通过Linux的各种进程调度的手段来实现不同客户机的权限限定、优先级等功能。
虚拟机所看到的硬件设备是QEMU模拟出来的 (不包括VT-d透传的设备)当虚拟机对模拟设备进行操作时由QEMU截获并转换为对实际的物理设备可能设置都不实际物理地存在的驱动操作来完成。 三、功能概述
3.1 内存管理
KVM依赖Linux内核进行内存管理。上面提到一个KVM客户机就是一个普通的Linux进程所以客户机的“物理内存”就是宿主机内核管理的普通进程的虚拟内存。进而Linux内存管理的机制如大页、KSM (Kernel Same Page Merge内核的同页合并)、NUMA(Non-Uniform Memory Arch非一致性内存架构)、通过mmap的进程间共享内存统统可以应用到客户机内存管理上。
3.2 存储和客户机镜像的格式
严格来说这是QEMU的功能特性。
KVM能够使用Linux支持的任何存储来存储虚拟机镜像包括具有IDE、SCSI和SATA的本地磁盘网络附加存储 (NAS) (包括NFS和SAMBA/CIFS)或者支持iSCSI和光线通道的SAN。多路径I/0可用于改进存储吞吐量和提供几余。
KVM的原生磁盘格式为QCOW2它支持快照允许多级快照、压缩和加密。
3.3 实时迁移
KVM支持实时迁移这提供了在宿主机之间转移正在运行的客户机而不中断服务的能力。实时迁移对用户是透明的客户机保持打开网络连接保持活动用户应用程序也持续运行但客户机转移到了一个新的宿主机上。
除了实时迁移KVM支持将客户机的当前状态 (快照snapshot) 保存到磁以允许存储并在以后恢复它。
3.4 设备驱动程序
KVM支持混合虚拟化因为KVM使用的QEMU软件模拟IO设备网卡、磁盘、显卡性能比较低这个时候在虚拟机中安装使用VirtIO半虚拟化驱动来实现IO等性能的提高。
其中半虚拟化的驱动程序安装在客户机操作系统中允许虚拟机使用优化的I/O接口而不使用模拟的设备从而为网络和块设备提供高性能的I/0。
KVM使用的半虚拟化的驱动程序是VirtlO标准它是一个与Hypervisor独立的、构建设备驱动程序的接口允许多种Hypervisor使用一组相同的设备驱动程序能够实现更好的对客户机的互操作性。
同时KVM也支持Intel的VT-d技术通过将宿主机的PCI总线上的设备透传(pass-through)给客户机让客户机可以直接使用原生的驱动程序高效地使用这些设备。这种使用是几乎不需要Hypervisor的介入的。
3.5 性能和可伸缩性
KVM也继承了Linux的性能和可伸缩性。KVM在CPU、内存、网络、磁盘等虚拟化性能上表现出色大多都在原生系统的95%以上。KVM的伸缩性也非常好支持拥有多达288个vCPU和4TB RAM的客户机对于宿主机上可以同时运行的客户机数量软件上无上限。
这意味着任何要求非常苛刻的应用程序工作负载都可以运行在KVM虚拟机。 总结
通过KVM介绍我们知道了KVM是基于内核的虚拟机是基于硬件虚拟化辅助的全虚拟化技术KVM的VMM层目前已经被写入到了Linux内核模块中。
功能概述中介绍了KVM的虚拟机可以安装VirtIO来提高我们IO性能。