一种云应用导向的固态盘缓存管理系统及方法技术方案

技术编号:15541116 阅读:83 留言:0更新日期:2017-06-05 10:40
本发明专利技术涉及一种云应用导向的固态盘缓存管理系统及方法,其核心思想是从云应用的视角切入,使用多层网络模型刻画虚拟机与固态盘之间的映射关系,并进一步确定每个虚拟机获得的最佳的固态盘缓存大小。当云应用的工作负载发生变化时,系统会自动触发调整过程,执行虚拟机动态迁移以及缓存容量更改,从而提升云应用的性能,提高固态盘的利用率。

Cloud application oriented solid-state disk cache management system and method

The invention relates to a cloud application oriented SSD cache management system and method, its core idea is cut from the cloud application perspective, using multilayer network model to describe the mapping relationship between the virtual machine and the solid state disk, and to determine whether each virtual machine obtains the optimal solid state disk cache size. When the workload of Cloud Applications changes, the system will automatically trigger the adjustment process, perform dynamic migration of virtual machines and cache capacity changes, thereby enhancing the performance of cloud applications and improving the utilization of solid state disk.

【技术实现步骤摘要】
一种云应用导向的固态盘缓存管理系统及方法
本专利技术涉及一种云应用导向的固态盘缓存管理系统及方法,尤其涉及一种基于多层网络的固态盘缓存分配和缓存导向的虚拟机动态迁移方法。属于软件

技术介绍
虚拟化技术目前得到了广泛应用。借助虚拟化技术,一台物理服务器上可以聚合(Consolidation)多台虚拟机,从而有效提升硬件资源利用率。虚拟化服务器(Hypervisor)上通常部署基于磁介质的机械硬盘(HardDiskDrive,HDD),或通过iSCSI等协议连接到后端的大容量共享存储,用作保存虚拟机镜像。在这一架构中,虚拟化服务器的IO性能直接影响了虚拟机本身的性能。固态盘(SolidStateDisk,SSD)作为一种快速的非易失性介质,通常部署在Hypervisor上,用作后端虚拟机镜像存储的读写缓存。虚拟机的IO请求会先经过缓存,若缓存命中,则缓存数据会立刻返回,不会进一步触发针对后端HDD或共享存储的相对速度较慢的读写操作,从而有效提升IO性能。一台Hypervisor上部署的固态盘缓存是由这台Hypervisor上承载的所有虚拟机共享的,因此,合理使用固态盘缓存资源至关重要。云应用是虚拟化环境下的主要服务模式。一个典型云应用通常由多台虚拟机组成,这些虚拟机上部署了不同的组件,互相之间存在关联,并共同对外提供服务。虚拟化环境下一种典型的云应用场景是基于Web的事务型云应用。这一类云应用通常由前端负载均衡器、服务中间件以及后端数据库或持久化存储组成,通常提供了基于HTTP(S)协议的接口供用户通过浏览器访问,或开放了诸如RESTful风格的API供第三方开放平台应用接入。这类应用同样可以连接复杂的后端事务处理逻辑,如社交网络图谱、大数据分析等。对于这一类应用而言,平均响应时间是最关键的指标,直接影响到最终用户的体验,而优化响应时间需要从应用的角度通盘考虑,无法直接从应用集群中确定优化目标和手段。另外,云应用本身的负载是动态变化的,用户对云应用的使用具备一定的模式,体现到虚拟机上可能表现为截然不同的IO负载表现,在进行固态盘缓存资源管理时,也需要具备自适应能力,可以感知到云应用的负载模式变化并触发固态盘资源的新一轮调整,以保证应用性能最优。然而,目前主流的固态盘缓存资源管理方法通常从虚拟机和缓存本身的角度考虑,主要解决固态盘缓存的资源分配问题,目标是尽可能合理地将固态盘缓存分配给所有虚拟机,并达到性能最优。这类工作关注的指标是缓存的Miss率以及相关导出指标,如从虚拟机中观察到的IO响应时间、IO带宽等。缓存Miss率作为缓存最关键的指标,直接反映了缓存的使用状况,也和最终使用缓存的客户端(即虚拟机)的平均IO响应时间密切相关,因此降低缓存Miss率是提高IO性能的一个直观有效的手段。但值得注意的是,单纯从底层IO指标切入忽略了上层工作负载对底层存储设备的性能影响,实际调整效果和理论模型计算结果存在一定的差距。此外,这类缓存资源管理方法将虚拟机作为独立的单位看待,独立进行调整,没有考虑到从属于同一个云应用的虚拟机之间具有的天然关联,也没有从应用的视角评价应用整体平均响应时间。从属于同一个云应用的不同虚拟机可能具有不同的优先级和IO负载,并可能承担不同事务的处理。对不同的虚拟机进行缓存容量调整会对应用的平均响应时间造成不同的影响。这可能导致在进行固态盘缓存资源管理时尽管从各个独立的虚拟机角度看可以达到最优的Miss率、IO响应时间或IO带宽,但从应用视角看不能达到最优性能。固态盘在作为缓存资源使用时,除了具有缓存的特性之外,同样也具有存储介质的特性,即它的服务能力,如带宽和每秒IO操作数(Input/OutputOperationsPerSecond,IOPS),是存在上限的。当多台虚拟机同时使用一个固态盘缓存,且虚拟机上都运行了高IO负载的应用时,可能导致对固态盘缓存的服务能力的需求超过其供给,从而产生资源争用,最终引起IO请求在固态盘一端排队,导致固态盘缓存的平均延迟远高于理想值,降低了缓存的效果。因此,在进行缓存资源管理时,除了需要考虑固态盘缓存容量的分配,也需要从集群的角度考虑虚拟机的放置,以最大限度地利用固态盘的服务能力,并尽可能避免资源争用。需要结合云应用的特点,为应用内的虚拟机选择适当的Hypervisor,并进一步根据虚拟机对固态盘缓存的需求以及对应用性能的影响程度确定固态盘缓存在同一Hypervisor上承载的虚拟机上的具体分配。现有工作并没有很好地将虚拟机的放置与固态盘资源分配相结合。目前尚未有相关文献报导。
技术实现思路
本专利技术的目的在于:针对现有技术的不足,提出一种云应用导向的固态盘缓存管理方法及系统,本专利技术当云应用的工作负载发生变化时,会自动触发调整过程,执行虚拟机动态迁移以及缓存容量更改,从而提升了云应用的性能,提高了固态盘的利用率。本专利技术技术解决方案:一种云应用导向的固态盘缓存管理方法和系统,如图1所示,主要由控制模块、监测模块、分析模块和决策模块组成。各模块的主要职责、交互模式和实现如下:控制模块:用于协调监测模块、分析模块、决策模块和执行模块的工作,与各模块进行交互并收集结果,基于自适应闭环实现固态盘缓存管理。在一个完整的闭环执行过程中,控制模块首先与监测模块进行交互,依赖监测模块持续监测云应用的工作负载以及虚拟机间的依赖关系,并收集云应用状态和性能数据供后续分析使用;之后与分析模块进行交互,将云应用状态和性能数据传递给分析模块,并收集生成的多层网络模型的相关信息;之后与决策模块进行交互,传入多层网络模型并依赖决策模块完成固态盘缓存管理决策,如虚拟机放置方案的计算以及进一步的Hypervisor上缓存分配方案的计算;最后与执行模块进行交互,传递具体的固态盘缓存管理决策,由执行模块完成具体的虚拟机的在线迁移以及缓存容量的动态调整。控制模块还负责在检测到云应用工作负载发生突变时触发新一轮的闭环执行;监测模块:包括部署在Hypervisor上的监测模块和部署在虚拟机上的监测模块;部署在Hypervisor上的监测模块负责监测Hypervisor、固态盘以及缓存的相关信息,相关信息包括Hypervisor的空闲CPU和内存资源;固态盘的最大带宽和IOPS、当前使用的带宽和IOPS;缓存的使用率、读写次数和命中率;部署在虚拟机上的监测模块负责监测虚拟机上部署的云应用组件的相关信息和虚拟机的IO性能,云应用组件的相关信息包括云应用在应对当前工作负载时各事务所占比例及在各组件上的执行时间,组件间的网络交互和依赖关系;虚拟机的IO性能包括已使用的带宽和IOPS,以及由此计算得到的虚拟机的IO负载状况,即已使用的IO资源占可用资源的比例;监测模块会持续监测这些信息,并在闭环执行过程中接收控制模块的请求,返回相应的云应用状态及性能数据供后续分析、决策使用;控制模块在自适应闭环的执行过程中,会首先与监测模块进行交互,以获取必要信息供后续分析模块、决策模块和执行模块使用;分析模块:用于接收监测模块传递的信息,并构建多层网络模型;多层网络模型包括资源需求端和资源供给端,以及用于匹配的多个决策层;通过分析部署在虚拟机中监测模块传回的云应用组件的网络交互情况和虚拟机IO性能,构建出虚本文档来自技高网
...
一种云应用导向的固态盘缓存管理系统及方法

【技术保护点】
一种云应用导向的固态盘缓存管理系统,其特征在于包括:控制模块、监测模块、分析模块、决策模块和执行模块;控制模块:用于协调监测模块、分析模块、决策模块和执行模块的工作,与各模块进行交互并收集结果,基于自适应闭环实现固态盘缓存管理,在一个完整的闭环执行过程中,控制模块首先与监测模块进行交互,依赖监测模块持续监测云应用的工作负载以及虚拟机间的依赖关系,并收集云应用状态和性能数据供后续分析使用;之后与分析模块进行交互,将云应用状态和性能数据传递给分析模块,并收集生成的多层网络模型的相关信息;之后与决策模块进行交互,传入多层网络模型并依赖决策模块完成固态盘缓存管理决策,包括虚拟机放置方案的计算以及进一步的Hypervisor上缓存分配方案的计算;最后与执行模块进行交互,传递具体的固态盘缓存管理决策,由执行模块完成具体的虚拟机的在线迁移以及缓存容量的动态调整;控制模块还负责在检测到云应用工作负载发生突变时触发新一轮的闭环执行;监测模块:包括部署在Hypervisor上的监测模块和部署在虚拟机上的监测模块;部署在Hypervisor上的监测模块负责监测Hypervisor、固态盘以及缓存的相关信息,相关信息包括Hypervisor的空闲CPU和内存资源;固态盘的最大带宽和IOPS、当前使用的带宽和IOPS;缓存的使用率、读写次数和命中率;部署在虚拟机上的监测模块负责监测虚拟机上部署的云应用组件的相关信息和虚拟机的IO性能,云应用组件的相关信息包括云应用在应对当前工作负载时各事务所占比例及在各组件上的执行时间,组件间的网络交互和依赖关系;虚拟机的IO性能包括已使用的带宽和IOPS,以及由此计算得到的虚拟机的IO负载状况,即已使用的IO资源占可用资源的比例;监测模块会持续监测这些信息,并在闭环执行过程中接收控制模块的请求,返回相应的云应用状态及性能数据供后续分析、决策使用;控制模块在自适应闭环的执行过程中,会首先与监测模块进行交互,以获取必要信息供后续分析模块、决策模块和执行模块使用;分析模块:用于接收监测模块传递的信息,并构建多层网络模型;多层网络模型包括资源需求端和资源供给端,以及用于匹配的多个决策层;通过分析部署在虚拟机中监测模块传回的云应用组件的网络交互情况和虚拟机IO性能,构建出虚拟机之间的依赖关系图,并进一步遍历出集群中所有虚拟机的依赖关系的所有强连通分量,从而刻画云应用的边界;再结合依赖关系图和虚拟机的IO负载状况构建出虚拟机对固态盘缓存的需求,完成资源需求端的构建;之后,分析模块会组装需要调用的决策模块并适配后端的资源供给端,完成多层网络模型的构建;控制模块在自适应闭环的执行过程中,会将从监测模块处收集得到的云应用的相关信息和虚拟机IO性能信息传递给分析模块,并接收分析模块计算得到的多层网络模型的拓扑结构和其中选取的决策层,供后续与决策模块交互时使用;决策模块:用于匹配多层网络模型中的供给端和需求端,实现资源供给和需求的最优化匹配;决策模块基于特定算法以实现资源管理的目标,表现为多层网络中的决策层;目前包含两个默认的决策层,第一决策层采用二分图匹配算法计算虚拟机的放置方案;第二决策层采用网络流中的最小花费最大流算法计算每一个Hypervisor上虚拟机的应被分配的最优缓存大小;实施时可以根据需求不同扩展出更多决策层;在比实行控制模块在接收到分析模块传回的多层网络模型之后,会调用其中指定的决策层,以完成相应的资源管理方案的计算,在调用完模型中选取的所有决策层之后即完成了资源需求端和资源供给端的匹配,并生成了最终的资源管理方案,包括虚拟机的放置方案和缓存分配方案;执行模块:部署在Hypervisor上;执行模块接受决策模块计算得到的虚拟机放置方案和每个Hypervisor上的虚拟机的固态盘缓存大小,执行具体的虚拟机的动态迁移和缓存容量调整操作;控制模块在自适应闭环的执行过程中,会最后与执行模块进行交互,传入由决策模块生成的资源管理方案,将其应用到虚拟机上;此外,当控制模块触发了新一轮自适应闭环执行时,执行模块也会计算最少步骤的虚拟机动态迁移方案以及对虚拟机上工作负载影响最小的缓存容量调整方案,并进行调整;最终完成云应用导向的固态盘缓存管理。...

【技术特征摘要】
1.一种云应用导向的固态盘缓存管理系统,其特征在于包括:控制模块、监测模块、分析模块、决策模块和执行模块;控制模块:用于协调监测模块、分析模块、决策模块和执行模块的工作,与各模块进行交互并收集结果,基于自适应闭环实现固态盘缓存管理,在一个完整的闭环执行过程中,控制模块首先与监测模块进行交互,依赖监测模块持续监测云应用的工作负载以及虚拟机间的依赖关系,并收集云应用状态和性能数据供后续分析使用;之后与分析模块进行交互,将云应用状态和性能数据传递给分析模块,并收集生成的多层网络模型的相关信息;之后与决策模块进行交互,传入多层网络模型并依赖决策模块完成固态盘缓存管理决策,包括虚拟机放置方案的计算以及进一步的Hypervisor上缓存分配方案的计算;最后与执行模块进行交互,传递具体的固态盘缓存管理决策,由执行模块完成具体的虚拟机的在线迁移以及缓存容量的动态调整;控制模块还负责在检测到云应用工作负载发生突变时触发新一轮的闭环执行;监测模块:包括部署在Hypervisor上的监测模块和部署在虚拟机上的监测模块;部署在Hypervisor上的监测模块负责监测Hypervisor、固态盘以及缓存的相关信息,相关信息包括Hypervisor的空闲CPU和内存资源;固态盘的最大带宽和IOPS、当前使用的带宽和IOPS;缓存的使用率、读写次数和命中率;部署在虚拟机上的监测模块负责监测虚拟机上部署的云应用组件的相关信息和虚拟机的IO性能,云应用组件的相关信息包括云应用在应对当前工作负载时各事务所占比例及在各组件上的执行时间,组件间的网络交互和依赖关系;虚拟机的IO性能包括已使用的带宽和IOPS,以及由此计算得到的虚拟机的IO负载状况,即已使用的IO资源占可用资源的比例;监测模块会持续监测这些信息,并在闭环执行过程中接收控制模块的请求,返回相应的云应用状态及性能数据供后续分析、决策使用;控制模块在自适应闭环的执行过程中,会首先与监测模块进行交互,以获取必要信息供后续分析模块、决策模块和执行模块使用;分析模块:用于接收监测模块传递的信息,并构建多层网络模型;多层网络模型包括资源需求端和资源供给端,以及用于匹配的多个决策层;通过分析部署在虚拟机中监测模块传回的云应用组件的网络交互情况和虚拟机IO性能,构建出虚拟机之间的依赖关系图,并进一步遍历出集群中所有虚拟机的依赖关系的所有强连通分量,从而刻画云应用的边界;再结合依赖关系图和虚拟机的IO负载状况构建出虚拟机对固态盘缓存的需求,完成资源需求端的构建;之后,分析模块会组装需要调用的决策模块并适配后端的资源供给端,完成多层网络模型的构建;控制模块在自适应闭环的执行过程中,会将从监测模块处收集得到的云应用的相关信息和虚拟机IO性能信息传递给分析模块,并接收分析模块计算得到的多层网络模型的拓扑结构和其中选取的决策层,供后续与决策模块交互时使用;决策模块:用于匹配多层网络模型中的供给端和需求端,实现资源供给和需求的最优化匹配;决策模块基于特定算法以实现资源管理的目标,表现为多层网络中的决策层;目前包含两个默认的决策层,第一决策层采用二分图匹配算法计算虚拟机的放置方案;第二决策层采用网络流中的最小花费最大流算法计算每一个Hypervisor上虚拟机的应被分配的最优缓存大小;实施时可以根据需求不同扩展出更多决策层;在比实行控制模块在接收到分析模块传回的多层网络模型之后,会调用其中指定的决策层,以完成相应的资源管理方案的计算,在调用完模型中选取的所有决策层之后即完成了资源需求端和资源供给端的匹配,并生成了最终的资源管理方案,包括虚拟机的放置方案和缓存分配方案;执行模块:部署在Hypervisor上;执行模块接受决策模块计算得到的虚拟机放置方案和每个Hypervisor上的虚拟机的固态盘缓存大小,执行具体的虚拟机的动态迁移和缓存容量调整操作;控制模块在自适应闭环的执行过程中,会最后与执行模块进行交互,传入由决策模块生成的资源管理方案,将其应用到虚拟机上;此外,当控制模块触发了新一轮自适应闭环执行时,执行模块也会计算最少步骤的虚拟机动态迁移方案以及对虚拟机上工作负载影响最小的缓存容量调整方案,并进行调整;最终完成云应用导向的固态盘缓存管理。2.一种云应用导向的固态盘缓存管理方法,其特征在于实现步骤如下:(1)在目标应用中进行程序插装(Instrumentatio...

【专利技术属性】
技术研发人员:黄涛唐震吴恒魏峻王伟支孟轩
申请(专利权)人:中国科学院软件研究所
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1