




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、KVM虚拟化技术方案介绍技术创新,变革未来背景介绍KVM简介UVP中KVM架构CPU虚拟化内存虚拟化I/O虚拟化KVM特性功能介绍背景介绍KVM(Kernel-based Virtual Machine)开源全虚拟化方案支持体系结构x86(32位,64位)、IA64、PowerPC、S390依赖x86硬件支持:Intel VT-x/ AMD-V内核模块,使得linux内核成为hypervisorKVM历史2006年10月 以色列公司Qumranet发布KVM2006年12月 KVM合入内核(Linux 2.6.20rc)2007年2月 Linux2.6.20正式版发布2008年9月 Redha
2、t以1.07亿美元收购Qumranet2009年9月 RHEL5.4开始支持KVM(同时支持Xen)2010年11月 RHEL6.0之后仅支持KVM云平台对KVM支持OpenStack, Eucalyptus, AbiCloud等同时支持KVM和Xen背景介绍KVM简介UVP中KVM架构CPU虚拟化内存虚拟化I/O虚拟化KVM特性功能介绍UVP虚拟化架构HardwareCPU(VT-x)Memory(EPT)Network(VMDq/SR-IOV)Storage(NPIV) Linux Kernel 通用I/O 网络虚拟化 存储虚拟化Hypervisor ( KVM)计算虚拟化vCPU(QoS
3、/NUMA/热插拔、物理核隔离)vMem(大内存页、共享内存)调度/中断优化(中断合并、中断透传、虚拟APIC)/定时器VT-d/SR-IOVLibvirt接口+OS APIQEMUEVSNative DriverGuest SoftBIOSvirtio(FE)Application直通硬件 Drivervirtio(BE)Vhost-scsi虚拟watchdogInter-vm通信虚拟串口vmchannel网卡直通虚拟机镜像KVM架构 vs Xen架构虚拟化管理接口逻辑分层 (libvirt、qemu、kvm)Libvirt与KVM关系VM与Hypervisor关系libvirt、qemu、
4、kvm部件的关系背景介绍KVM简介UVP中KVM架构CPU虚拟化内存虚拟化I/O虚拟化KVM特性功能介绍CPU虚拟化原理 - 虚拟化问题Native操作系统对CPU的认识与管理达成以下两点认识:CPU资源永远就绪OS对CPU具有最高权限引入虚拟化后出现的问题:多个VM之间共享CPU资源部分指令只有hypervisor有权限使用CPU虚拟化原理 - CPU共享如何让多个VM共享CPU?VM使用vCPU,hypervisor将vCPU调度到PCPU上运行,实现物理CPU资源的分时复用VCPUVCPUVCPUVCPUGuest OS 1Guest OS 2PCPUvCPU调度模型CPU虚拟化原理 -
5、 权限管理定义敏感指令敏感指令:经典的虚拟化方法主要使用“特权解除” (Privilege deprivileging) 和“陷入模拟” (Trap-and-Emulation) 的方式。即:将 Guest OS 运行在非特权级(特权解除),而将 VMM 运行于最高特权级(完全控制系统资源)。解除了 Guest OS 的特权后,Guest OS 的大部分指令仍可以在硬件上直接运行,只有当执行到特权指令时,才会陷入到 VMM 模拟执行(陷入模拟)。CPU虚拟化原理 - VT-xRing 0Ring 3VMX RootOperationVMX Non-RootOperationRing 0Ring
6、 3VCPU 1Ring 0Ring 3VCPU 2Ring 0Ring 3VCPU nvmlaunch/vmresumeVM ExitVMCS1VMCS2VMCSnVMX: Virtual Machine ExtensionsKVM CPU虚拟化三种运行模式用户态模式内核态模式客户模式ioctl返回VM entryKVMKernel模式根模式,特权级0客户虚拟机VM exitVCPU创建/初始化VCPU运行/退出处理I/O操作I/O操作模拟非I/O操作退出处理QemuUser模式根模式,特权级3客户虚拟机Guest模式非根模式ioctlioctlioctl返回VCPU创建/初始化VCPU运行
7、/退出处理Lightweight exitHeavyweight exit 虚拟化层的指令都运行在root模式,vm exit和vm entry之间的指令周期可以当作虚拟化层开销。Root-NonRoot切换开销VMM处理开销NonRootRoot物理机虚拟机虚拟化层开销背景介绍KVM简介UVP中KVM架构CPU虚拟化内存虚拟化I/O虚拟化KVM特性功能介绍内存虚拟化原理 - 虚拟化问题Native操作系统对内存的认识与管理达成以下两点认识:内存都是从物理地址0开始的内存都是连续的引入虚拟化后出现的问题:从物理地址0开始的:物理地址0只有一个,无法同时满足所有客户机从0开始的要求;地址连续:虽
8、然可以分配连续的物理地址,但是内存使用效率不高,缺乏灵活性。 内存虚拟化原理 - 虚拟化问题Machine Physical MemoryVirtual Machine Monitor (VMM)Guest Physical Memory5132432145VM1VM4VM3VM2KVM 内存虚拟化 - MMU虚拟化 (1)虚拟机内存分配Guest的物理内存在kvm-qemu进程虚拟地址空间中Guest物理内存页由host按需分配MMU虚拟化(两种)软件:Shadow Page Table硬件:EPT (Intel)GPA: Guest Physical AddressEPT:Extended
9、 Page TableMMU:memory management unitKVM 内存虚拟化 - MMU虚拟化 (2)MMU虚拟化概念KVM 内存虚拟化 - 影子页表Guest Page Table设为写保护,以保持Guest pages table与影子页表之间的一致性;如果Guest PTE的Dirty位未设置,则删除影子PTE的可写位。KVM 内存虚拟化 - EPT/NPT背景介绍KVM简介UVP中KVM架构CPU虚拟化内存虚拟化I/O虚拟化KVM特性功能介绍ProcessorIOHIntel QuickPath InterconnectSATADiskNICICH 10PCIeUSB
10、host controllerUSB DevicePCIePCIeUSBLPCLegacy DeviceMemoryDisplayPCIeProcessorSystem MemoryDeviceInterruptI/ODMA设备拓扑设备语义I/O虚拟化 - 设备拓扑、设备语义设备发现和配置BIOS 或 OS扫描发现设备,并分配资源PCI 配置空间软件与设备通信Port IOMMIO设备和内存间的数据传输DMA设备事件通知中断I/O虚拟化原理 - 虚拟化问题 I/O虚拟化需要解决两个问题 设备发现: 需要控制各虚拟机能够访问的设备; 访问截获: 通过I/O端口或者MMIO对设备的访问;设备通过D
11、MA与内存进行数据交换;KVM I/O设备虚拟化 - 全模拟用软件完全模拟一个特定的设备保持一样的软件接口,如:PIO、MMIO、DMA、中断等可以模拟出跟系统中的物理设备不一样的虚拟设备每次I/O操作需要多次上下文切换VM HypervisorQemu Hypervisor软件模拟的设备对不影响虚拟机中的软件栈原生驱动KVM IO虚拟化改进 - virtio高效的标准化pv driver兼容PCI: 设备发现,配置,IRQ支持多种虚拟化平台: Kvm, lguest 设备种类:Virtio-blk, virtio-net, virtio-balloon, virtio-console、vir
12、tio-scsi、virtio-9p虚拟出特殊的设备特殊的设备驱动,包括VM中的Front-end 驱动和主机上的Back-end驱动Front-end和Back-end驱动之间的高效通信减少VM和主机的数据传输开销共享内存-( Virt RING )Batched I/O异步事件通知Eventfd轻量级进程间“等待/通知”机制KVM IO虚拟化再次改进 - vhostVhost-blk架构(1)vhost-block、vhost-net、vhost-scsi(2)从VM来的io请求会被直接map成host上的bio,可以有效减少虚拟机中I/O的执行,性能更好,前端完全兼容vhost。vhos
13、t-netVhost-netVirtio网络后端移到内核中高效背景介绍KVM简介UVP中KVM架构CPU虚拟化内存虚拟化I/O虚拟化KVM特性功能介绍KVM特性 - QoSCgroups是control groups的缩写,是Linux内核提供的一种可以限制、记录、隔离进程组(process groups)所使用的物理资源(如:cpu,memory,IO等等)的机制。Cgroups (Control Groups)Linux内核对进程进行资源控制设置资源配额,建立分组将进程加入资源配额分组价值:虚拟机QoS资源管理资源控制类型CPU资源(用于控制cgroup中所有进程可以使用的cpu时间片)内
14、存资源(可以设定cgroup中任务使用的内存限制)磁盘IO带宽(基于权重和速度控制磁盘IO)网络带宽(控制网络带宽)KVM特性 - THPTransparent Hugepage页大小 2MB提高tlb命中率Tlb每一项访问范围4k2M减少访存时间tlb不命中时 访存次数(4次3次)申请大内存区,效率更高访问大内存区,减少页表项大小提高cpu cache效率透明对使用者完全透明,不依赖任何库大小页混合使用Libhugetlbfs需要设置兼容ksm,swap需要共享或swap时,拆分成4k小页面兼容EPT/NPT,兼容影子页表KVM特性 - KSM (1)KSM (Kernel Samepage
15、s Merging)扫描内存页面,相同内容页面只读共享也支持普通进程(非虚拟机)对于2M大内存页若有可共享4k页,大页拆成4k小页共享Windows 零页内存价值:节省内存,提高虚拟机密度Tradeoff: CPU vs Memory space扫描内存消耗cpu ksmtuned: 设置规则开启或关闭内存扫描启动扫描规则:空闲内存 10% 或 2G与不启用ksm相比:访存稍慢KVM特性 - KSM (2)mergecow Origin state::Merge state:KVM特性 - Vhost over SR-IOVSR-IOV设备直连Vhost over SR-IOVKVM高级特性 - 本地存储热迁移本地存储与vm热迁移虚拟化平台大多支持VM热迁移但要求共享存储支持SAN等共享存储价格昂贵许多中小企业没有共享存储环境Block migration2009年11月 kvm-qemu 0.12 由IBM加入特性虚拟机镜像从源主机迁移到目的主机迁移时间较长需要同时迁移内存状态和磁盘镜像存储空间一般比内存大价值:扩展了虚拟机热迁移的范围共享存储不再是必要条件内存大小镜像大小迁移时间迁移
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 35077-2025机械安全局部排气通风系统安全要求
- GB/T 18501.8101-2025电子和电气设备用连接器产品要求第8-101部分:电源连接器2芯、3芯40 A功率加2芯信号塑料外壳屏蔽密封连接器详细规范
- GB/T 45736-2025航天器姿态和轨道控制系统稳定运行要求
- GB/T 45623-2025航空活塞式发动机涡轮增压器转子包容试验方法
- 2025至2030ATM交换机行业风险投资运行分析及运作模式与投融资报告
- 2025年二手交易平台信用体系建设与信用评级服务创新报告
- 绿色建筑新趋势:2025年被动式超低能耗建筑技术原理与可持续性报告
- 特色民宿集群2025年旅游市场细分与品牌建设研究报告
- 新能源汽车租赁行业市场潜力评估及2025年发展前景报告
- 中医药现代化进程中的2025年国际市场拓展的产业链协同创新模式创新路径案例研究报告
- 最新教师培训课件:教师专业发展
- 水池深基坑开挖专项施工方案
- (整理)萨提亚沟通模式课件
- 水产品冷冻食品加工行业解决方案
- 茶知识与科学饮茶课件
- 手术通知单模板
- 2021年安康市中心医院医护人员招聘笔试试题及答案解析
- 医院医疗精神科危险物品管理PPT课件讲义
- 第二讲:黔东南州优势矿产资源
- 康复医院的设计要点精选
- 10kv高压架空电线防护方案概述
评论
0/150
提交评论