基于共享资源的质量向经优先级排序的虚拟机和应用程序提供优化的服务质量的制作方法_4

文档序号:9221651阅读:来源:国知局
用信息,或用于访问特定资源315的实际值,诸如发送至给定路径、存储设备、复制链接等的I/O的偏移。所记录的信息可用于例如计算增量数据更新(例如,通过给定管道发送的增量数据),并将所述增量数据更新发送至主机外处理服务(未示出),诸如增量备份系统等。
[0044]使注意力回到图3,现在将描述特定使用案例,以帮助示出根据一个实施例的服务质量管理器101的工作。如上文所指出,在一个实施例中,虚拟化环境311为VMwarevSphere平台的形式,并且超级管理程序307为VMware的硬件层级超级管理程序ESX。在该实施例中,多个VM 305在给定主计算机210上基于ESX 307的实例来运行,并且向ESX 307发出对从VMDK 309读取数据或将数据写入到VMDK 309的请求511。(VMDK 309是VMware特定格式的虚拟机磁盘。)资源分配模块515基于请求I/O操作的VM 305的优先级507将这些I/O操作中的特定I/O操作分配给具有不同优先级水平(S卩,不同质量等级503)的I/O队列607 (其为一种类型的共享资源315)。注意,I/O队列607未在图3中具体示出,但图6示出了为具有不同优先级水平的队列607的形式的共享计算资源315。在所描述的特定使用案例的例子中,在主机210上运行的每个VM 305具有以下三个优先级中的一者:高、中或低。资源分配模块515通过将I/O请求511放置在所分配的队列607中,来根据来自VM305的服务I/O请求511分配所述三个I/O队列607中的一者。所述三个队列607分别具有高、中和低的质量等级503。将源自优先级307为高的VM 305的I/O请求511放置在高等级队列607中,将那些源自中优先级VM 305的I/O请求放置在中等级队列607中,并且将那些源自低等级VM 305的I/O请求放置在低等级队列607中。根据队列607的等级来服务于队列607,使得用最高服务质量来处理来自高优先级VM 305的I/O请求511,以此类推。应当理解,在类似使用案例中,可使用不止三个水平的质量等级503和优先级507。
[0045]在所描述的使用案例中,优先级识别模块513通过确定给定I/O请求511定向到或来自哪个基础LUN 401来确定该请求511所源自的VM 305 (从而确定该VM 305的优先级507)。注意,在该使用案例中,共享存储装置309为VMDK虚拟磁盘的形式。因此,为确定目标LUN 401,服务质量管理器101创建受I/O操作影响的VMDK磁盘块与作为VMDK 309基础的LUN 401的集合中对应偏移之间的映射317。该映射317指示目标LUN 401从而指示始发VM 305及其优先级507。
[0046]在该使用案例的不同具体实施中,可使用不同的方法来确定VMDK磁盘309到LUN401的映射317。例如,在一个具体实施中,使用VMware Web服务API来确定系给定VMware数据存储库的一部分的LUN 401的集合。使用具有特定命令行选项的给定VMware命令(当前为“ vmkfstooI s-tO ”,但在VMware产品的未来版本中,命令和调用参数可能改变)来确定存储映射。这个命令输出VMDK块到通用唯一标识符(UUID)集合中的偏移的映射。注意,这些UUID不直接与实际存储LUN 401相关,而是存储在以固定偏移(当前为VMware VirtualMachine File System (VMware虚拟机文件系统)4.1中的偏移00100080)开头的独立存储LUN 401中。通过在系给定VMware数据存储库的一部分的设备上读取该偏移处的数据(如经由如上文所述的Web服务API所确定),确定哪些LUN 401具有哪些给定UUID。由于服务质量管理器101具有如“vmkfstools-tO”命令所返回的VMDK块到UUID中的偏移的映射,并且已确定哪个LUN 401具有哪个UUID,因此服务质量管理器101现在可构造VMDK块到LUN 401的映射317。注意,在其他具体实施中,该映射317以其他方式获得,例如通过使用某些可用的VMware API来获得。在任何情况下,映射317都指示VMDK数据的哪些块驻留在给定LUN 401的哪些偏移中。基于该映射317,多路径处理组件(例如,VMware ESX环境中的VxDMP)可确定给定I/O包正来自或前往哪个VM 305从而确定哪个VM 305发出了请求511。下文结合图6更详细地讨论了多路径处理。一旦识别了发出请求511的VM 305,优先级识别模块513便识别该VM 305的优先级507,并且资源分配模块515将特定I/O操作分配给具有匹配质量等级503的I/O队列607。
[0047]现在转到图6,描述了服务质量管理器101的另一使用案例。在图6所示的使用案例中,服务质量管理器101在集群和存储系统301的多路径处理组件601层级运行,而不是在超级管理程序307层级运行,其中一些模块在HBA 235层级运行。更具体地讲,一些存储管理产品,诸如Veritas Volume Manager (Veritas卷管理器)的DynamicMultipathing (动态多路径处理)组件,支持多路径存储设备603。多路径存储设备603是可供I/O的发起程序使用的虚拟磁盘,其中在虚拟多路径磁盘603与基础物理存储装置160之间存在多个物理路径605。尽管图6示出了物理存储装置160的两个路径605,但实际上可存在更多(或更少)的路径605。此外,尽管图6将物理存储装置160示出为单个组件,但通常会用多个基础物理存储设备160来实施物理存储装置160,例如如图4所示。
[0048]如图6所示,多个应用程序313在计算机系统210的系统存储器217中运行,并发起以虚拟多路径磁盘603为目标的I/O操作。作为响应,多路径处理组件601确定针对给定I/O操作将使用哪个路径605。传统上,多路径处理组件601采用常规负载均衡策略(例如,轮询、最小O等)来决定沿哪个路径605发送每个1/0,并且如果给定路径605失效则在路径605之间动态地切换。为了沿给定路径605将1/0发送至物理存储装置160,多路径处理组件601将1/0发送至被配置为经由给定路径605连接至物理存储装置160的特定主机适配器总线(HBA) 235。
[0049]在图6所示的一个使用案例中,服务质量管理器101针对每个HBA 235维持多个优先级队列607。多路径处理组件601接收以虚拟多路径磁盘603为目标的1/0,并且使用其负载均衡策略来将1/0分配给特定HBA 235。在HBA 235层级,资源分配模块515然后基于队列607的质量等级503以及发起1/0操作的应用程序313的优先级507,将给定1/0分配给特定HBA 235的特定优先级队列607。更具体地讲,图6示出了每个HBA 235有三个优先级队列607,每个队列分别针对来自高优先级应用程序313、中优先级应用程序313和低优先级应用程序313的I/O。在其他实施例中,可根据需要针对每个HBA 235维持更多、更少或不同等级的队列607。
[0050]优先级识别模块513(例如,通过I/O请求511中的标记或正发生I/O操作的LUN401)识别I/O所源自的应用程序313,从而识别该应用程序的优先级507。资源分配模块515基于应用程序313的优先级507将I/O插入在适当的优先级队列607中。例如,在所示的三队列607实施例中,将源自优先级507为高的应用程序313的I/O插入在高优先级队列607中,将那些源自中优先级应用程序313的I/O插入在中优先级队列607中,并且将那些源自低优先级应用程序313的I/O插入在低优先级队列607中。
[0051]服务质量管理器101基于优先级队列607的相应优先级沿每个HBA 235从所述HBA 235的优先级队列607发送I/O。换句话讲,服务质量管理器101从高优先级队列607中选择最多1/0,从中优先级队列607中选择较少1/0,并且从低优先级队列607中选择最少数量的I/O。将要从每个队列607中选择的I/O的特定比例可基于相对优先级来确定,或者可由管理员或其他用户设定。将要使用的确切比例是可变设计参数,并且在不同实施例中,可根据需要使用不同的比例。I/O操作的这种与其始发应用程序313的优先级507成比例的服务将更高水平的服务提供至更高优先级应用程序313。
[0052]在图6所示的使用案例的另一个实施例中,与将队列607分配给路径605相反或作为将队列607分配给路径605的补充,将质量等级503分配给特定路径605本身。传统上,用户可将不同权重分配给多路径存储设备603的不同路径605。权重然后用作调度机制,使得每个权重决定正发送至对应路径605的I/O的比例。还可基于各种因素,诸如路径605的带宽、到物理存储设备160的跳数、路径605的稳定性等,来动态地确定权重。在该实施例中,质量等级分配模块
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1