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

文档序号:9221651阅读:来源:国知局
M 305上运行的应用程序313)可基于例如与不同客户或内部客户端达成的保证不同可用性水平的服务水平协议而具有不同的优先级507。常规超级管理程序307无法识别的是,并非所有相同类型的共享计算资源315在所有时间点上都以相同方式起作用。实际上,相同类型的共享资源315(例如,多个I/O信道)可能在质量(例如,可用性、带宽、可读性、速度)上差异极大。服务质量管理器101通过向具有最高优先级507的VM 305和/或应用程序313提供最佳可用资源315,从而对共享资源315进行最优化的利用。在不同实施例中,此功能可用于识别任何类型的共享计算资源315之间的质量差异,并基于特定VM 305 (或应用程序313)的优先级507向所述特定VM 305 (或应用程序313)提供不同的服务质量。
[0034]图3示出在超级管理程序307层级上运行并提供服务质量的服务质量管理器101,所述服务质量考虑了由超级管理程序307分配给VM 305的共享计算资源315的不同质量。应当理解,在其他实施例中,服务质量管理器101在组件层级而不是超级管理程序307层级运行,并将共享计算资源315分配给组件而不是VM 305,以便促进其他形式的虚拟化。例如,如下文结合图6详细地描述,在一个实施例中,服务质量管理器101在多路径处理组件601/HBA 235层级运行,并且将共享资源315分配给尝试访问虚拟多路径磁盘603的应用程序313。出于该描述的目的,可能有帮助的是,应注意VM 305是一种特殊类型的应用程序313,并且应以这种方式考虑VM 305。
[0035]图4示出根据一些实施例的共享存储装置309架构的例子。智能存储阵列190将多个物理存储设备160集合成单个逻辑单元(LUN)401。每个LUN 401表现为访问主机210或客机305的单个存储设备160。集群和存储系统301的逻辑卷管理器403可继而提供软件层级的逻辑卷管理,以基于每个LUN 401创建多个逻辑卷405。尽管图4示出分别在逻辑上被视为三个卷405的两个LUN 401,但应当理解,集群300可包含更多或更少的LUN 401,并且所述更多或更少的逻辑卷405可基于给定LUN 401来构建。
[0036]转到图5,根据一个实施例更详细地示出了服务质量管理器101的模块。服务质量管理器101的质量等级分配模块501将质量等级503分配给可由主机210上的VM 305使用的每个共享资源315。此类计算资源315的合集可被视为共享计算资源池505。影响计算资源315的质量的因素可以是静态的(例如,存储设备的平均访问速度或如由网络连接的基础网络硬件配置决定的网络连接最大吞吐量)或动态的(例如,存储设备上的当前可用空间量或通信信道上的当前负载)。在不同实施例中,质量等级分配模块501可基于静态因素、动态因素或这两者的组合将质量等级503分配给计算资源315。由于计算资源315的质量可动态变化,因此质量等级分配模块501可连续地或周期性地评估资源池505中的资源315,并基于资源315的当前状态(例如,基于计算资源315的所监测到的容量根据例如使用水平或类型的实时改变)确定当前质量等级503。例如,如果将新网络适配器添加到计算设备210,则可将新计算资源315添加到资源池505。发生这种情况时,质量等级分配模块501会检测新计算资源315并为其分配适当的质量等级503。
[0037]应当理解,作为任何基础硬件特征的替代或补充,共享计算资源的质量可根据其程序配置而变化。例如,在下文结合图6更详细地描述的一个实施例中,针对每个主机总线适配器(HBA) 235维持多个优先级队列607。更高优先级队列607中的I/O以比更低优先级队列607中的I/O以更高的频率发送至HBA 235,并且因此质量等级分配模块501将更高质量等级503分配给更高优先级队列607。然而,每个队列607的处理频率根据的是其通过编程进行管理的方式,这与HBA 235或其他基础组件的任何内在特征不同。
[0038]如该术语在本文中所用,质量等级503是对共享计算资源315的质量的量化。在不同实施例中,可使用不同的内部格式来表示质量等级503(例如,标度上的数字、字母数字描述符、百分比等)。在一些实施例中,质量等级503针对不同类型的资源315量化不同的质量因素(例如,存储设备的容量、I/O信道的带宽)。在一些实施例中,由单个质量等级503针对各个资源315量化多个质量因素(例如,由例如质量等级对象中的单独字段表示的容量、带宽和延迟)。在其他实施例中,质量等级503是资源总体质量的单一量化的形式。
[0039]不同的VM 305具有不同的已分配优先级507,这可以基于在其上运行的应用程序313的对应服务水平协议,或者基于其他因素,所述其他因素相对于在同一主机210上运行的其他VM 305的优先级确定该VM的优先级507。在一个实施例中,将优先级507分配给VM 305,并且应用程序313在具有与将要提供至特定应用程序313的服务的水平对应的优先级507的VM 305上运行。在另一个实施例中,将优先级507分配给应用程序313本身,并且每个VM 305从在其上运行的应用程序313的优先级获得其优先级507。如下文结合图6更详细地描述,在其他实施例中,可在不考虑VM 305的情况下将优先级507分配给在一个或多个物理计算机210上运行的多个应用程序313中的每一个。可基于服务质量保证或其他因素由管理员或其他用户(例如,通过用户界面)将优先级507分配给VM 305和/或应用程序313。例如,可在具有高优先级507的特定VM上运行业务关键应用程序。如该术语在本文中所用,优先级507是将要提供至VM 305或应用程序313的服务质量相对于将要提供至同一主机上的或以其他方式类似地安置的其他VM 305或应用程序313的服务质量的指示。在不同实施例中,可使用不同的内部格式来表示优先级507 (例如,低-中-高、标度上的数字等)。以可访问的格式(例如,全局数据结构、数据库等)来(例如,由集群和存储系统301)存储优先级507,使得服务质量管理器101的质量可访问这些优先级。
[0040]服务质量管理器101的请求接收模块509接收向超级管理程序307发出的对计算资源315的请求511。注意,服务质量管理器101在超级管理程序307层级运行。因此,请求接收模块509可通过拦截或以其他方式过滤对超级管理程序307进行的调用并且识别请求共享计算资源315的那些调用,来接收向超级管理程序307发出的目标请求511。
[0041]服务质量管理器101的优先级识别模块513识别发出对共享资源315的请求511的VM 305(或应用程序313)的优先级507。在一个实施例中,对共享资源的请求511标记有始发者的标识符(例如,发出请求511的VM 305的ID)。在这种情况下,优先级识别模块513通过标记来识别请求511的始发者,并例如通过全局数据结构来检索对应的优先级507。在其他实施例中,优先级识别模块513以其他方式识别请求511的始发者(并且因此能够查找并检索该始发者的优先级507)。例如,如果请求511为访问共享存储介质309的尝试的形式,则优先级识别模块513可通过确定正发生所尝试的I/O操作的LUN 401来识别请求511的始发者。
[0042]响应于对共享计算资源315的请求511,服务质量管理器101的资源分配模块515基于请求者(即,VM 305或应用程序313)的优先级507以及资源315的质量等级503从资源池505分配所请求类型的特定共享资源315。在一个实施例中,这个过程可包括根据由具有更高优先级507的组件发出的服务请求511分配具有更高质量等级503的资源315。在其他实施例中,使用更具体的粒度级别来进行所述分配。例如,优先级可指示重要的特定因素,诸如可靠性、速度、带宽等,并且与这些特定因素有关的具有不同质量等级503的共享资源315可被分配给具有对应的因素特定优先级507的VM 305。同时用于质量等级503和优先级507的确切粒度级别,一般来说并且针对特定因素来说,可根据需要因实施例而异。同样,用于基于质量等级503与优先级507之间的映射将资源315分配给请求者的确切逻辑可因实施例而异。通过基于质量等级503与优先级507之间的对应将共享计算资源315分配给VM 305和应用程序313,服务质量管理器101可按照特定组件的如由服务水平协议或以其他方式确定的相关特定优先级507来将服务质量提供至特定组件。这就实现了对共享资源315的共用资源池505的更合理的使用。
[0043]在一些实施例中,服务质量管理器101的记录模块517监测随时间推移特定VM305 (或应用程序313)对共享计算资源315的使用,并将对应信息写入到日志519以供将来参考。在不同实施例中,记录模块517可根据需要以不同的详细程度记录信息。例如,日志519可,例如在文件更改日志层级,记载基础的审计/统计资源使
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1