向网络中的主机分配路径的方法和系统的制作方法

文档序号:7972674阅读:192来源:国知局
专利名称:向网络中的主机分配路径的方法和系统的制作方法
技术领域
本发明涉及一种用于使用负载均衡以向网络中的主机分配路径的方法、系统和程序。
背景技术
存储网络中的主机系统可以通过多条路径与存储控制器通信。从主机到存储控制器的路径可以包括一个或多个中介交换机,以便交换机可以提供从主机端口到多个存储控制器端口的多条路径。
在现有技术中,每个主机可以确定直接或者通过交换机的不同路径,其中这些路径可以用来访问由存储控制器管理的卷。这些主机可以各自应用负载均衡算法,以确定路径,以便用来将被定向到由存储控制器管理的卷的I/O请求传送到存储控制器。该方案的一个缺点是如果不同的主机使用相同的负载均衡算法来单独执行负载均衡,则它们可能集体地使存储网络的一部分超负载而使该网络的其它部分利用不足。
因此,在本技术领域内需要用于向网络环境中的主机分配路径的改进技术。

发明内容
本发明提供一种用于使用负载均衡以向网络中的主机分配路径的方法、系统和程序。从主机接收主机路径利用率(usage)信息,其表示到目标设备的路径的主机利用率。执行负载均衡算法,以使用所接收的主机路径利用率信息,以均衡主机的路径利用的方式,向主机分配路径,以便用来与目标设备通信。


图1示出了网络计算环境的实施例。
图2a和2b示出了路径可以如何将主机连接到存储群集的实施例。
图3示出了向网络中的主机分配路径以便用来存取存储控制器的操作的实施例。
图4示出了主机向网络管理器传达的路径利用率信息的实施例。
图5和6示出了执行负载均衡算法的操作的实施例。
具体实施例方式
图1示出了网络计算环境的实施例。存储控制器2在网络6上接收来自主机系统4a、4b...4n的输入/输出(I/O)请求,其被定向到各自被配置成具有一个或多个卷10a、10b(例如,逻辑单元号、逻辑设备等)的存储设备8a、8b。存储控制器2包括多个适配器12a、12b...12n,其中每个包括一个或多个端口,其中每个端口提供到存储控制器2的端点。存储控制器包括处理器复合体14;高速缓存16,用来缓存关于存储设备8a、8b的I/O请求和数据;以及存储管理软件18,用来执行存储管理相关操作,并且处理对卷10a、10b的I/O请求。存储控制器2可以包括不同能力范围(power boundary)的多个处理群集,以提供冗余。主机4a、4b...4n包括I/O管理器26a、26b...26n程序,以管理在网络6上I/O请求向适配器12a、12b...12n的传送。在特定实施例中,该环境还可以包括管理器系统28,其包括网络管理器程序30,以协调主机4a、4b...4n对存储群集的存取,从而优化操作。
主机4a、4b...4n和管理器系统28可以在相对于网络6的带外网络32上通信。主机4a、4b...4n可以在存储网络6如存储区域网(SAN)上将I/O请求传达到存储控制器2,并且主机4a、4b...4n和管理器系统28可以在单独的带外网络32如局域网(LAN)上相互之间传达管理信息。主机4a、4b...4n可以在带外网络32上将其存储网络6拓扑结构信息传达到管理器系统28,并且管理器系统28可以在带外网络32上与主机4a、4b...4n通信,以分配主机4a、4b...4n路径,以便用来存取存储控制器2。可选地,主机4a、4b...4n、管理器系统28和存储控制器2可以在单个网络例如网络6上传达I/O请求和协调相关信息。
存储控制器2可以包括在本技术领域内公知的适合存储控制器或服务器,例如国际商业机器(IBM)企业级存储服务器(ESS)(企业级存储服务器和IBM是IBM的注册商标)。可选地,存储控制器2可以包括与高端企业级存储服务器相对的低端存储服务器。主机4a、4b...4n可以包括在本技术领域内公知的计算设备,例如服务器、大型机、工作站、个人计算机、手持计算机、膝上型计算机、电话设备、网络设备等。存储网络6可以包括存储区域网(SAN)、局域网(LAN)、内联网、因特网、广域网(WAN)等。带外网络32可以与存储网络6独立,并且使用诸如LAN的网络技术。存储设备8a、8b可以包括存储设备阵列,例如仅仅一堆盘(JBOD)、直接存取存储设备(DASD)、独立盘冗余阵列(RAID)阵列、虚拟化设备、磁带存储设备、闪存等。
每个主机4a、4b...4n可以具有多条通过单独的适配器(以及可能的交换机)到存储控制器2的单独路径,以便如果一条路径不能到达存储控制器2,则主机4a、4b...4n可以继续在其它路径和适配器上存取存储设备8a...8n。每个适配器可以包括多个端口,其提供多个存取端点。此外,在主机4a、4b...4n和存储控制器2之间可能存在一级或多级交换机,以扩大从一个主机端点(端口)到存储控制器2上的多个端点(例如,适配器端口)的路径的数目。
图2a和2b示出了图1中的主机4a和4b与群集12a、12b可以如何连接的不同配置。图2a示出了主机4a、4b如何各自具有多个适配器以提供到存储控制器54中的存储群集12a、12b的单独路径的一个配置,其中在每个主机4a、4b中存在到每个存储群集12a、12b的单独路径。
图2b示出了可选配置,其中每个主机4a、4b具有到每个交换机62a、62b的一条路径,并且每个交换机62a、62b提供到每个存储群集12a、12b的单独路径,从而向每个主机4a、4b提供到每个存储群集12a、12b的附加路径。
图3示出了在管理器系统28的网络管理器30程序中实现以向主机4a、4b...4n分配路径以便用来存取存储控制器2的操作的实施例。管理器系统28启动均衡对路径的主机分配的操作(在块100)。可以周期性地执行该操作,以更新主机路径分配,从而允许针对改变后的网络条件的重新均衡。网络管理器30从多个主机4a、4b...4n中的每个接收每个主机在到存储控制器2的每条路径上所具有的I/O数(在块102)。I/O数可以包括主机在路径上未决(即,已被发送但是尚未完成)的I/O数、每单位时间传送的I/O数等。
图4提供了主机4a、4b...4n可以针对主机用来与存储控制器2通信的每条路径传送到管理器系统28的信息的实施例。对于每条路径,主机路径利用率信息130包括主机标识符132;主机端口134,提供路径的主机端点;存储控制器端口136,提供路径的存储控制器端点(其也可以包括中介交换机);路径利用率138,其可以包括未决的或者测量时间段内的I/O数;以及I/O被定向的卷140。主机4a、4b...4n可以使用一条路径来存取多个卷10a、10b。主机4a、4b...4n可以将附加和不同类型的信息传送到管理器系统28,以协调操作。
回到图3,网络管理器30还接收关于在每条路径上使用的当前带宽和每条路径上的总可用带宽的信息(在块104)。可以通过查询网络6中的交换机或其它设备来提供路径利用率和带宽信息。网络管理器30确定每个主机在每条路径上所具有的I/O比例,其可以通过对所有主机在共享路径上所具有的总I/O进行求和然后确定路径上的总I/O的每个主机百分比来确定(在块106)。网络管理器30以主机在路径上所具有的I/O比例和路径的当前带宽利用率的函数,确定每条路径上的主机带宽利用率(在块108)。如果对于路径提供了子路径信息,则网络管理器30可以进一步考虑路径的每条子路径上的主机带宽利用率。每条子路径包括共享交换机上的端点和另一交换机上的端点、或者存储控制器2端口。这样,网络管理器30可以考虑交换机之间或者交换机和存储控制器2之间的每条子路径上的I/O的每个主机的份额。网络管理器30使用每条路径或子路径上的主机带宽利用率执行负载均衡算法,以向路径分配主机,以便均衡到由存储控制器管理的卷的每条子路径上的主机路径利用率(在块110)。网络管理器30可以使用在本技术领域内公知的负载均衡算法,其考虑节点之间的点及其I/O利用率权重,确定节点之间的最优路径分配,以均衡带宽利用率。网络管理器30可以向每个主机传达主机用来通过存储控制器存取存储设备的至少一条路径的分配(在块112)。向主机传达的路径信息可以包括主机端点(端口)和存储控制器端点(端口),以用来与存储控制器2通信。此外,负载均衡算法可以针对每个主机和每个卷来提供最优路径分配。网络管理器30因而可以向每个主机4a、4b...4n传达每个主机可以用来存取卷的路径的分配。
在特定实施例中,路径分配可以包括主机用来存取存储控制器/卷的优选路径。在一个实施例中,如果主机未被分配用来存取卷的路径,则主机不可使用未被分配的路径。可选地,在出故障的情况下,主机可以使用未被分配的路径。在另外实施例中,对于不同的操作环境,不同的策略可能是适当的。例如,如果存储网络6健康,即所有或大部分路径可用,则可以向主机分配路径,使得除非主机别无选择,否则它们不能使用未被分配的路径。相反,如果网络6具有众多出故障的路径,则以较低服务质量级别操作或者驻留较不重要的应用的特定主机可能被迫停止I/O,以对被视为具有较大优先级或重要性的那些主机提供连续存取,从而关键性I/O的性能不受影响。
图5示出了在图3的块110由网络管理器30执行以执行负载均衡操作的操作实施例。当启动负载均衡算法(在块150)时,网络管理器30在计算机可读存储器中形成图或映射图,其提供网络6内的主机节点和卷之间的路径中的所有主机节点、连接到主机节点的交换机节点、交换机节点、存储控制器节点、以及可通过存储控制器节点存取的卷的计算机实现表示(在块152)。通过网络管理器30向主机4a、4b...4n查询主机路径利用率信息,或者主机4a、4b...4n自动地传送该信息,可以形成该图。类似地,通过网络管理器30查询网络32的带外网络或者网络6的带内网络中的交换机,可以获得关于交换机和路径带宽利用率以及最大可能带宽的信息。然后,网络管理器30执行负载均衡算法,如多路径负载均衡算法,以向每个主机分配路径以便使用(在块154)。如同所述,网络管理器30可以使用在本技术领域内公知的路径负载均衡算法,其处理节点图,以确定向主机的路径分配以便用来存取存储设备中的卷。该图可以包括节点、顶点和边的图或网,然后应用标准分区和流优化算法,以确定最优的对路径的主机负载均衡。在另外实施例中,管理器可以向特定主机、卷、或其它网络(例如,SAN)组件分配较大的权重,以分配或表示使用特定网络组件的优先权。
在另外的实施例中,每个主机4a、4b...4n可以被分配到特定服务质量级别。服务质量级别为主机保证一定量的路径冗余和带宽。这样,高服务质量级别(例如,铂金、金)可以保证以高带宽级别分配多条路径、以及没有单故障点,而较低服务质量级别可以保证较少的带宽以及较少的冗余或者没有冗余。
图6示出了在图3的块110由网络管理器30执行以执行负载均衡操作从而考虑主机4a、4b...4n的不同服务质量级别的操作的附加实施例。当启动负载均衡算法(在块200)时,网络管理器30确定网络中的所有可用节点的当前集合,包括主机和存储控制器端点节点之间的路径中的主机节点、交换机节点、存储控制器节点,以及可通过存储控制器节点存取的卷(在块202)。然后,网络管理器30针对主机4a、4b...4n和/或卷10a、10b...10n被分配的每个服务质量级别,执行块204到214的操作循环。如同所述,服务质量级别可以指定冗余路径数、单故障点级别、以及带宽。网络管理器30可以从最高服务质量级别开始在块204到214考虑服务质量级别,并且在每个后继迭代,考虑下一个较低的服务质量级别。对于每个服务质量级别i,网络管理器30确定被分配到服务质量级别i的所有主机4a、4b...4n和/或卷10a、10b...10n(在块206)。形成网络节点图,其包括在所确定的主机和存储控制器端点节点之间的所有可用节点的当前集合中所有确定的主机节点、交换机节点、以及存储控制器节点(在块208)。对于最高服务质量,可用节点的当前集合包括网络中的所有路径。网络管理器30执行负载均衡算法,以处理该图,从而向被分配到服务质量i的每个所确定主机分配预定数目的路径以便使用(在块210)。从可用节点的当前集合中删除被分配给所确定的主机或卷的路径(例如,一个或多个交换机节点和存储控制器节点)或者路径带宽(在块212)。然后,控制回到块206(在块214),以针对较小的可用路径集合,即交换机和存储控制器节点,考虑为其分配路径的次高服务质量级别。
通过图6的操作,每个服务质量级别与路径组相关联,使得被分配到该服务质量级别的主机可以利用该级别的组中的那些路径。在一个实施例中,较低服务质量级别中的主机不可使用被分配到较高服务质量级别的路径组。然而,被分配到一个服务质量级别的主机可以使用被分配到较低服务质量级别的路径组中的路径。在另一实施例中,主机被分配路径或其它网络组件上的带宽的不多于指定部分,并且必须将它们限制成不超过所示阈值。
所述实施例提供了这样的技术,其用于通过让网络管理器执行关于所有主机和到目标设备的路径的负载均衡,对存储网络中的主机之间的路径分配进行负载均衡,然后传达主机的路径分配以便用来存取目标设备。
附加实施例细节所述操作可以被实现为使用标准编程和/或工程技术来生产软件、固件、硬件或其任何组合的方法、设备或产品。所述操作可以被实现为在“计算机可读介质”中维护的代码,其中处理器可以从计算机可读介质读取并执行代码。计算机可读介质可以包括诸如磁存储介质(例如,硬盘驱动器、软盘、磁带等)、光学存储装置(CD-ROM、DVD、光盘等)、易失性和非易失性存储器装置(例如,EEPROM、ROM、PROM、RAM、DRAM、SRAM、闪存、固件、可编程逻辑电路等)等的介质。实现所述操作的代码可以在硬件逻辑电路中实现(例如,集成电路芯片、可编程门阵列(PGA)、专用集成电路(ASIC)等)。另外,实现所述操作的代码可以在“传输信号”中实现,其中传输信号可以通过空间或者通过诸如光纤、铜线等的传输介质来传播。在其中编码了代码或逻辑的传输信号还可以包括无线信号、卫星传输、无线电波、红外线信号、蓝牙等。在其中编码了代码或逻辑的传输信号能够由发射站发射并且由接收站接收,其中可以对在传输信号中编码的代码或逻辑进行解码,并且将其存储在接收和发射站或设备的硬件或计算机可读介质中。“产品”包括可以在其中实现代码的计算机可读介质、硬件逻辑和/或传输信号。在其中编码了实现所述操作实施例的代码的装置可以包括计算机可读介质或硬件逻辑。当然,本领域的技术人员将认识到,可以对该配置进行很多修改,而不背离本发明的范围,并且产品可以包括在本技术领域内公知的适合信息承载介质。
所述实施例讨论了优化主机4a、4b...4n与一个存储控制器2之间的路径。在另外实施例中,优化和负载均衡可以被扩展成在多个主机和多个存储控制器以及不同存储控制器上的卷之间均衡路径。
除非另外特别指出,术语“实施例(an embodiment)”、“实施例(embodiment)”、“多个实施例(embodiments)”、“本实施例(theembodiment)”、“这些实施例(the embodiments)”、“一个或多个实施例”、““一些实施例”、以及“一个实施例”意味着“本发明的一个或多个(而非全部)实施例”。
除非另外特别指出,术语“包括(including)”、“包括(comprising)”、“具有(having)”及其变化形式意味着“包括但不限于”。
除非另外特别指出,项目的枚举列表不意味着这些项目中的任何或所有项目是互斥的。
除非另外特别指出,术语“一个(a)”、“一个(an)”和“该(the)”意味着“一个或多个”。
除非另外特别指出,相互通信的设备无需处于连续的相互通信。另外,相互通信的设备可以直接地或通过一个或多个中介物间接地通信。
具有相互通信的若干组件的实施例的描述并不意味着需要所有这样的组件。相反,描述了各种可选组件是为了说明本发明的各种可能实施例。
此外,虽然可以按照顺序描述处理步骤、方法步骤、算法等,但是这些处理、方法和算法可以被配置成以替代次序工作。换句话说,可以描述的任何步骤顺序或次序不一定表示以该次序执行步骤的要求。这里所述的处理步骤可以以任何实际次序执行。此外,可以同时执行一些步骤。
当这里描述了单个设备或物品时,应当容易地清楚,可以使用多于一个设备/物品(无论它们是否协作)来代替单个设备/物品。类似地,当这里描述了多于一个设备或物品(无论它们是否协作)时,应当容易地清楚,可以使用单个设备/物品来代替该多于一个设备或物品,或者可以使用不同数目的设备/物品来代替所示数目的设备或程序。设备的功能性和/或特征可以可选地由未被显式地描述为具有这样的功能性/特征的一个或多个其它设备实施。这样,本发明的其它实施例无需包括设备本身。
图3、5和6的所示操作示出了以特定次序发生的特定事件。在可选实施例中,可以以不同的次序执行、修改或删除特定操作。此外,可以将步骤添加到上述逻辑,并且仍然遵循所述实施例。此外,可以顺序地发生这里描述的操作,或者可以并行地处理特定操作。另外,可以由单个处理单元或者由分布式处理单元执行操作。
本发明的各个实施例的前面描述是为了说明和描述的目的而提供的。它不意欲是穷尽性的,或者将本发明局限于所公开的确切形式。鉴于上面教导,很多修改和变化是可能的。本发明的范围不意欲由本详细描述限制,而是由所附权利要求限制。上面说明书、示例和数据提供了本发明的组成的制造和使用的完整描述。由于可以产生本发明的很多实施例而不脱离本发明的精神和范围,因此本发明居于所附权利要求之内。
权利要求
1.一种方法,包括从主机接收主机路径利用率信息,其表示到目标设备的路径的主机利用率;以及使用所接收的主机路径利用率信息执行负载均衡算法,从而以均衡主机的路径利用的方式,向主机分配路径,以便用来与目标设备通信。
2.如权利要求1所述的方法,还包括接收到目标设备的路径上的路径带宽利用率,其中负载均衡算法使用所接收的路径带宽利用率和主机路径利用率信息来向主机分配路径;以及向每个主机传达主机用来存取目标设备的至少一条路径的分配。
3.如权利要求2所述的方法,其中接收路径利用率信息包括从主机接收主机在路径上所具有的输入/输出请求数,其中从主机到目标设备的路径中的至少一个交换机接收路径上的路径带宽利用率,还包括针对每个主机和由该主机使用的路径,作为该主机在该路径上所具有的I/O请求的比例和该路径上的路径带宽利用率的函数,确定该路径上的主机带宽利用率,其中负载均衡算法向路径分配主机,以均衡路径的主机带宽利用率。
4.如权利要求1所述的方法,其中目标设备包括存储控制器,其提供对在其中配置了多个卷的存储设备的访问,其中主机提供存储设备中的每个卷的路径利用率信息,其中负载均衡算法基于每个卷而对路径利用率进行均衡,并且其中分配表示主机用来存取特定卷的至少一条路径的分配。
5.如权利要求1所述的方法,还包括维护主机的服务质量信息,其中负载均衡算法将主机分配到多个组之一,其中每个组包括用来存取目标设备的至少一条路径,其中每个组与一个服务质量级别相关联,并且为与该服务质量级别相关联的主机提供至少一条路径,以便使用。
6.如权利要求5所述的方法,其中所传达的至少一个主机的分配表示该主机不能用来存取目标设备的至少一条路径,以为与比该主机的服务质量级别更高的服务质量级别相关联的主机保留路径。
7.如权利要求1所述的方法,其中执行负载均衡算法还包括定义图,其表示网络中的所有主机节点、主机节点和目标设备节点之间的交换机节点、以及目标设备节点,其中路径包括主机节点之一和目标设备节点之一,并且其中负载均衡算法处理该图以确定路径向主机的分配。
8.如权利要求1所述的方法,其中主机中的每一个被分配到多个服务质量级别中的一个,并且其中执行负载均衡算法包括通过关于可用路径或带宽以及被分配到迭代的服务质量的主机的负载均衡,从最高服务质量级别开始到最低质量级别,针对每个服务质量级别,执行负载均衡的迭代,其中在每个后续迭代,从考虑分配的可用路径中删除在先前迭代期间向主机分配的路径。
9.一种与多个主机通信的系统,其中主机在到目标设备的网络路径上通信,包括处理器;以及计算机可读介质,包括由处理器执行以执行操作的代码,该操作包括从主机接收主机路径利用率信息,其表示到目标设备的路径的主机利用率;以及使用所接收的主机路径利用率信息执行负载均衡算法,从而以均衡主机的路径利用的方式,向主机分配路径,以便用来与目标设备通信。
10.如权利要求9所述的系统,其中该操作还包括接收到目标设备的路径上的路径带宽利用率,其中负载均衡算法使用所接收的路径带宽利用率和主机路径利用率信息来向主机分配路径;以及向每个主机传达主机用来存取目标设备的至少一条路径的分配。
11.如权利要求10所述的系统,其中接收路径利用率信息包括从主机接收主机在路径上所具有的输入/输出请求数,其中从主机到目标设备的路径中的至少一个交换机接收路径上的路径带宽利用率,并且其中该操作还包括针对每个主机和由该主机使用的路径,作为该主机在该路径上所具有的I/O请求的比例和该路径上的路径带宽利用率的函数,确定该路径上的主机带宽利用率,其中负载均衡算法向路径分配主机,以均衡路径的主机带宽利用率。
12.如权利要求9所述的系统,其中目标设备包括存储控制器,其提供对在其中配置了多个卷的存储设备的访问,其中主机提供存储设备中的每个卷的路径利用率信息,其中负载均衡算法基于每个卷而对路径利用率进行均衡,并且其中向每个主机传达的分配表示主机用来存取特定卷的至少一条路径的分配。
13.如权利要求9所述的系统,其中该操作还包括维护主机的服务质量信息,其中负载均衡算法将主机分配到多个组之一,其中每个组包括用来存取目标设备的至少一条路径,其中每个组与一个服务质量级别相关联,并且为与该服务质量级别相关联的主机提供至少一条路径,以便使用。
14.如权利要求9所述的系统,其中主机中的每一个被分配到多个服务质量级别中的一个,并且其中执行负载均衡算法包括通过关于可用路径或带宽以及被分配到迭代的服务质量的主机的负载均衡,从最高服务质量级别开始到最低质量级别,针对每个服务质量级别,执行负载均衡的迭代,其中在每个后续迭代,从考虑分配的可用路径中删除在先前迭代期间向主机分配的路径。
15.一种方法,包括从主机接收主机路径利用率信息,其表示到目标设备的路径的主机利用率;接收到目标设备的路径上的路径带宽利用率;使用所接收的主机路径利用率信息和所接收的路径带宽利用率,执行负载均衡算法,从而以均衡主机的路径利用的方式,向主机分配路径,以便用来与目标设备通信;以及向每个主机传达主机用来存取目标设备的至少一条路径的分配。
全文摘要
本发明提供一种用于使用负载均衡以向网络中的主机分配路径的方法、系统和程序。从主机接收主机路径利用率信息,其表示到目标设备的路径的主机利用率。执行负载均衡算法,以使用所接收的主机路径利用率信息,以均衡主机的路径利用的方式,向主机分配路径,以便用来与目标设备通信。
文档编号H04L29/08GK1968285SQ200610153910
公开日2007年5月23日 申请日期2006年9月12日 优先权日2005年11月14日
发明者蒂末希·查尔斯·派伯尔 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1