一种写操作负载均衡系统的多节点调度方法与流程

文档序号:11261864阅读:150来源:国知局
一种写操作负载均衡系统的多节点调度方法与流程

本发明涉及集群和存储技术领域,具体而言,涉及一种写操作负载均衡系统的多节点调度方法。



背景技术:

使用冗余计算资源组的计算机集群组,以便在单个系统组件故障时提供连续服务。更具体地说,集群通过提供多个服务器、多个网络连接或冗余数据存储等用于消除单点故障。集群系统通常与提供附加有用功能的存储管理产品相结合,例如日志文件系统、逻辑卷管理、数据卷复制和多路径输入/输出功能等。

在结合存储管理环境实现集群的情况下,集群的计算机系统(节点)可以访问共享存储,使得共享存储看起来与每个节点相同。共享存储器通常利用由集群和存储系统管理的多个底层物理存储设备来实现,以便对集群的多个节点呈现为单个存储设备。多个物理存储介质可以被分组为被称为lun(“逻辑单元号”)的单个逻辑单元,并且作为访问节点的单个存储设备出现。

底层物理存储设备的管理还可以涉及软件级逻辑卷管理,其中使得多个物理存储设备看起来像访问节点的单个逻辑卷。可以从多个物理存储设备中直接构建逻辑卷,或者在由多个物理存储设备逻辑构建lun的顶部构建逻辑卷。卷管理器可以级联、条带化或以其他方式将底层物理分区组合成更大的虚拟分区。在一个集群环境中,集群卷管理器在集群的多个节点上扩展卷管理,使得每个节点能够识别相同的逻辑卷布局以及在一个节点处的所有相同状态的卷资源。

数据卷也可以通过网络复制到远程站点。卷复制允许从主站点到辅助站点的连续数据复制,以便进行灾难恢复或关闭主机处理。为了使辅助站点可用,必须维持在主站点上发生的写操作的顺序(写顺序保真度)。因此,对于集群环境中的卷复制,写入的顺序通常在日志(复制日志)中进行维护,并且集群中的一个节点被指定为日志所有者。

当集群中除了日志所有者之外的其他节点希望写入共享存储时,节点首先向日志所有者节点发送请求,日志所有者在复制日志中分配用于写入的位置,并且使用表明分配位置的信息响应请求节点。在接收到来自日志所有者的响应之后,请求节点将向复制日志中分配位置写入数据,然后向目标数据卷写入数据。因此,对主卷的写操作顺序保留在复制日志中。由于日志用于以先进先出顺序将写操作复制到辅助站点,所以在数据卷的复制过程中将维持写顺序的保真度。

集群中的不同节点具有不同的存储性能特性,这取决于硬件、软件、节点和存储设备之间的路径以及节点的存储栈中的其他层。这些因素中的一些也可以动态地变化,这取决于i/o负载、可用的cpu和存储器等。因此,不同的特定节点具有在任何给定时间内管理未解决的i/o请求的不同上限。如果未完成的请求数量达到上限,则节点上的新i/o请求将被节流(例如,通过scsi层),从而以对数方式减慢节点的存储i/o。但是,由于日志所有者的节点按先进先出顺序处理写入请求,因此可以在复制日志中为进行大量请求的单个节点分配比在无自我节流的情况下更多时隙。因为在共享存储之前对复制日志进行写操作以保持写入顺序的保真度,所以此节点级的调节将成为对集群内i/o性能产生负面影响的瓶颈。换句话说,当其他节点等待自节流节点处理其延迟操作,同时超过它可以同时管理的限制时,可以延迟执行它们自己的写操作,即使存储介质可以处理更大的i/o负载。

还注意到,复制日志通常驻留在比支持数据卷的存储设备更快的存储硬件上(例如,与慢速磁介质相反的固态驱动器)。这是因为日志必须以足够快的速度处理对多个复制卷的写入操作。此外,由于复制日志比数据卷小得多,因此使用具有更好访问时间的更昂贵的存储器来回退复制日志是更经济可行的。但是,复制日志和数据卷之间的性能差异导致对后者的写入相对落后,并且会造成瓶颈问题。复制日志包含有限数量的用于写入的时隙,并且当所有这些时隙都在使用时,必须限制来自任何节点的传入或写入操作,直到记录的操作已刷新到复制的卷。当集群的特定节点(或节点的给定子集)执行连续i/o操作时,其他节点可以使其写入操作在不可接受的长时间内被节流。

在这些情况下,来自集群的给定节点的大量i/o负载可能会导致其他节点的i/o饥饿的问题。更具体地,试图执行足够数量的写操作的给定节点可以导致如上所述的自节流。如果节点在复制日志中被分配了更多的时隙,那么它就可以有效地进行工作。而集群的其他节点在等待自节流节点处理其延迟操作时不能执行它们自己的写操作。因此其他节点将变成i/o饥饿,即使存储介质可以处理更大的i/o负载。另外,当特定节点的繁重i/o操作绑定复制日志的有限容量时,其他节点将处于饥饿状态,直到来自独占节点的记录操作已经被刷新到集群的其他节点,而此时单个节点将独占复制日志。

另一个问题是由于日志所有者节点和集群的其他节点之间的主/从关系,日志所有者节点通常比从节点具有更少的写延迟。日志所有者可以完成自己的写入操作,而其他节点必须向日志所有者发出请求,并且在依赖于来自集群的所有节点的合理均匀的吞吐量的复制过程中被授予时隙。

另外,一些写操作是同步的或者具有高度的潜在敏感性,而另一些写操作是异步的。对于操作的连续性,应用程序可能需要在较高优先级的情况下保证这些潜在敏感的i/o操作之间的竞争。



技术实现要素:

本发明的目的在于提供一种写操作负载均衡系统的多节点调度方法,该方法在集群和存储环境中,节点通过先写入复制日志然后写入共享存储来执行写入操作,集群和存储环境利用对复制日志的写操作顺序和内容将共享存储的数据卷复制到辅助站点,因为对复制日志的写操作顺序与对共享存储的写操作的顺序匹配,所以在卷复制中保持着写顺序的保真性。

本发明是这样实现的:

一种写操作负载均衡系统的多节点调度方法,包括数据卷共享存储的集群和存储环境,以及集群和存储环境中用于存储输入/输出操作的负载,所述集群和所述存储环境支持重新分配数据卷,所述方法包括以下步骤:

接收,由计算机从集群和存储环境的节点,接收复制日志的写入操作的空间分配请求;

指定,由计算机将复制日志中的空间,指定给共享存储器中的每个数据卷;

分配,由计算机将复制日志中的空间分配给多个节点中的每一个,以针对高优先级卷的同步以及具有高等待时间的写操作,同时将异步和低优先级写操作定向到低优先级卷。

进一步的,在接收步骤中,所述节点通过首先写入的复制任务来执行写入操作日志,并且该节点随后进入到共享存储;其中,对复制日志的写操作顺序与对共享存储的写操作顺序相匹配;集群和存储环境利用对复制日志写操作的顺序和内容,将共享存储的数据卷复制到辅助站点,从而保持写入次序的保真度。

进一步的,在面对同步和高优先级卷的节点时,还包括异步和低优先级节点写入操作定向到低优先级卷的方法,具体为:

接收,从集群和存储环境的节点中接收写入操作的空间分配请求;

调度,在接收到请求时,根据同一级别的优先级调度写操作。

进一步的,其还包括:

接收由用户输入的指示分配特定数据量,并根据分配的特定数据量调度优先级的输入;

响应于所接收特定数据卷分配调度优先级。

进一步的,其还包括:

接收由用户输入的指示,并对分配给特定数据卷的调度优先级进行调整输入;

调整分配给所接收输入指示的特定数据卷的调度优先级。

一种非暂时性可读存储介质的调度方法,包括以下步骤:

调度多个节点的写入操作;

从集群和存储环境的节点接收用于在复制日志中分配写入操作空间的请求;

向共享存储器的多个数据卷中的每一个分配调度优先级;

根据分配的调度优先级将复制日志中的空间分配给多个数据卷中的每一个,使得对具有高分配调度优先级的数据卷写入操作,是具有低分配的调度优先级处理卷。

进一步的,其还包括:

将同步和具有高等待时间写操作的多个节点中的特定节点,定向到高优先级卷,以及将异步和低优先级写操作定向到低优先级卷;

接收来自集群和存储环境的节点的用于写入操作的空间分配的请求;

以相应的接收到的请求中指示的优先级调度写操作。

进一步的,其还包括:

接收由用户输入的指示,并分配特定数据卷的调度优先级进行输入;

响应所接收的输入信号,向所述特定数据卷分配调度优先级。

进一步的,其还包括:

接收由用户输入的指示,并分配给特定数据卷的调度优先级进行调整;

调整分配给特定数据卷的调度优先级。

本发明的有益效果是:

本发明在集群和存储环境中,节点通过先写入复制日志然后写入共享存储来执行写入操作,集群和存储环境利用对复制日志的写操作顺序和内容将共享存储的数据卷复制到辅助站点,因为对复制日志的写操作顺序与对共享存储的写操作的顺序匹配,所以在卷复制中保持着写顺序的保真性。

附图说明

为了更清楚地说明本发明实施方式的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1是实施例中可以实现写入操作负载平衡系统的典型的网络架构框图;

图2是实施例中适于实现写入操作负载平衡系统的计算机系统框图;

图3是实施例中写入操作负载平衡系统的操作框图;

图4是实施例中由写入操作负载平衡系统使用的共享存储架构的框图;

图5是实施例中写入操作负载平衡系统的操作流程图;

图6是实施例中写入操作负载平衡系统的操作流程图;

图7是实施例中写入操作负载平衡系统的操作流程图。

具体实施方式

以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。

需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。

请参阅图1所示,图1是描述了其中可以实现写入操作负载平衡系统101的示例性网络架构100的框图。在所示的网络架构100中,客户端系统103a,103b和103n以及服务器105a和105n耦合到网络107。一个写操作负载均衡系统101。写操作负载平衡系统101被示为驻留在服务器105a和103n上,但是在其他实例中,写操作负载平衡系统101也可以驻留在单个计算机210上或者根据实际需要分布在其他多个计算机210之间。在图1中,服务器105a被进一步描绘为具有直接附接存储设备160a(1)-(n),并且服务器105n被描绘为具有直接附接存储设备160b(1)-(n)。服务器105a和105n也连接到支持通过服务器105a和105n访问存储设备180(1)-(n)以及客户端系统103a-n通过网络107访问存储设备180(1)-(n)的san设备170。智能存储阵列190作为特定存储阵列190的示例展示出的存储设备也被看作可经由san结构170访问的特定存储设备的示例。在其他实例中,使用fc和iscsi(未示出)而不是san结构170(或与san结构170组合)来实现共享存储。

可以使用许多不同的联网技术来提供从每个客户端计算机系统103a-n到网络107的连接,一些示例包括:lan,wan和各种无线技术。客户端系统103a-n能够使用诸如网络浏览器或其他客户端软件(未示出)访问服务器105a或105n上的应用和数据。这使得客户端系统103a-n能够从应用服务器105运行应用程序并访问由存储服务器105或存储设备160a(1)-(n),160b(1)-(n),180(1)-(n)以及智能存储阵列190托管的数据。客户端103可以是诸如台式计算机、笔记本或移动计算机设备的形式,包括能够连接到网络107和运行应用程序的便携式计算机系统。这样的移动计算设备有时被称为智能电话,尽管一些移动电话并不具有这样的能力。其中平板计算机是移动计算设备的另一个示例。

尽管如图1所示,将三个客户端103a-n和两个服务器105a-n作为示例,但在实际部署中,可以使用更多(或更少)的计算机。在一个实例中,网络107可以是互联网的形式,而在其他实例中又可以使用其他网络107或基于网络的环境。

图2为适用于实现写入操作负载平衡系统101的计算机系统210的框图。客户端103和服务器105两者都可以以计算机系统210的形式实现。如图所示,计算机系统210的一个组件是总线212。总线212互动式地耦合计算机系统210的其它组件,诸如至少一个处理器214,系统存储器217(例如,随机存取存储器(ram)、只读存储器(rom、闪存)),输入/输出(i/o)控制器218,交互式耦合到音频输出设备(例如扬声器220)的音频输出接口222,交互式耦合到视频输出设备(例如显示屏224)的显示器适配器226,诸如通用串行总线(usb)插座228,串行端口230,并行端口(未示出)等;键盘控制器233耦合到键盘232,一个或多个硬盘244(或其他形式的存储介质)连接到存储接口234,主机总线适配器(hba)接口卡235a与光纤通道(fc)网络290连接,一个hba接口卡235b与scsi总线239连接;一个光盘242和一个鼠标246(或其它指示装置)耦合到总线212上。调制解调器247通过一根usb接收器228耦合到总线212。例如通过串行端口230,一个或多个有线或无线的网络接口248将直接与总线212连接。

其它部件(未示出)可以以类似的方式连接(例如,文档扫描器,数字照相机,打印机等)。相反地,图2中所示的所有组件不需要都是存在的(例如,智能电话和平板电脑通常不具有光盘驱动器240、外部键盘242或外部指向设备246,尽管各种外部组件都可以经由如usb接收器228的设备耦合到移动计算设备)。各种部件可以以图2所示的方式互连。

总线212允许处理器214和系统存储器217之间的数据通信,如上所述,其可以包括rom、闪速存储器以及ram。其中,ram通常是加载操作系统和应用程序的主存储器。rom和闪存可以包含控制某些基本硬件操作的基本输入输出系统(bios)以及其他代码。应用程序可以存储在本地计算机可读介质上(例如,硬盘244、光盘242),并且加载到系统存储器217中由处理器214执行。应用程序也可以例如通过网络接口248或调制解调器247从远程(即远程定位的计算机系统210)加载到系统存储器217中。在图2中,写操作负载平衡系统101被示为驻留在系统存储器217中,且系统101的工作原理将结合图3在下面更详细地进行解释。

存储接口234连接到一个或多个硬盘244(或其他标准存储介质),硬盘244可以是计算机系统210的一部分,或者也可以是物理上分离的并且通过其他接口系统访问的存储介质。

网络接口248和调制解调器247可以直接或间接连接到诸如因特网107,且该连接方式可以是有线或无线的。

如图3所示,写入操作负载平衡系统101调度集群300中所有节点303的写入操作,以便有效地平衡存储i/o操作的负载,并且防止了不同节点303的延迟、锁定、i/o饥饿、不公平请求处理以及难以优先支持数据卷405复制操作的常规集群和存储环境中固有的特定操作。其中,写操作负载平衡系统101能够最充分地利用存储阵列和节点的处理能力。

图3所示为在集群300的日志所有者节点303上运行的写入操作负载平衡系统101的实例。如上所述,写入操作负载平衡系统101的功能可以驻留在服务器105、客户机103或分布在多个计算机系统210之间,包括在基于网状/云的计算环境内,其中写操作负载平衡系统101的功能作为服务通过网络107提供。可以理解的是,虽然写操作负载平衡系统101在图3中被示为单个实体,但是所示的写操作负载平衡系统101表示了功能的集合,其可以根据需要被实例化为单个或多个模块(图3中给出了具体的多计划写入操作负载平衡系统101的实例化)。应当理解,写操作负载平衡系统101的模块可以在任何计算机系统210的系统存储器217(例如,ram,rom,闪存)内被实例化(例如作为目标代码或可执行映像),这使得当计算机系统210的处理器214处理模块时,计算机系统210可以排除相关联的功能。如本文所使用的术语“计算机系统”,“计算机”,“客户端”,“客户端计算机”,“服务器”,“服务器计算机”和“计算设备”表示配置和编程为排除所描述的功能的一个或多个计算机。另外,用于实现写入操作负载平衡系统101的功能的程序代码可以存储在计算机可读存储介质上。在本文中可以使用任何形式的有形计算机可读存储介质,诸如磁、光或固态存储介质。如本文所使用的术语“计算机可读存储介质”并不意味着与底层物理介质分离的电信号。

图3给出了在使用共享存储器307并提供数据卷405复制的集群和存储系统301的上下文中实例化的集群300,用于展示为驻留在任何节点303外部的集中式组件的效率。应当理解,聚类和存储系统301表示一个功能的集合,其在实践中通常被实例化为在整个集群300中分布的多个组件。结合图3所示和共享存储器307,例如具有多个卷405(图4中示出了卷)的单个存储设备160。在实践中,共享存储器307通常利用多个底层的物理存储设备160来实现,其由集群和存储系统301管理,以便作为具有多个卷405的单个存储设备160向计算机系统210管理共享存储器307。根据一个实例的这样场景架构的示例将在图4中示出,并做详细地讨论。

如图3所示,包含一个日志所有者节点303、复制日志305和一个附加节点303的集群300。尽管如图3所示,仅有两个节点303的集群300,但是应当理解,集群300可以包含比节点303更多的节点(并且在一些实例中更多)。每个节点303都可以被实例化为如图2中所示类型的物理/虚拟主机计算机210。虽然图3示出了写操作负载平衡系统101驻留在日志所有者节点303上,但是应当理解,写操作负载平衡系统101执行的一些功能可以在聚类器300的其他节点303上执行。还要注意,尽管复制日志305用于将共享存储器307的数据卷405复制到辅助站点,但是未标示出辅助站点和复制过程,因为它们仅与写入操作负载平衡系统101的功能相切。

如图4所示,是根据一些实例的共享存储307架构的示例。智能存储装置190将多个物理存储装置160分组为单个逻辑单元(luns)401。每个lun401都可以作为单个存储设备160出现到访问节点303,且示例和存储系统301的逻辑卷管理器403可以进而预定软件级逻辑卷管理,用于在每个lun401之上创建多个逻辑卷405。虽然图4示出了两个lun401,每个lun401在逻辑上被视为三个卷405,但是应当理解,集群300可以包含更多或更少的lun401,并且该模式或更少的逻辑卷504可以建立在给定的lun401上,并且还可以从多个lun401上(未示出)创建单个逻辑卷405。

返回到图3,在一个实例中,写操作负载平衡系统101通过基于针对每个节点的写操作积压容量校准来控制复制日志305中的空间分配来优化写操作。更具体地,写入操作负载平衡系统101的容量确定模块309确定每个节点303管理未完成写入请求的容量。如上所述,由于节点303之间的静态和动态存储堆栈会不断变化,集群300的不同节点303具有在没有自调节的情况下可以同时管理的未完成i/o请求数量的不同上限。即使在单个节点303上,由于诸如节点303和存储器307之间的当前多路径状态的动态因素,该上限也会随时间变化。因此,通过确定集群300的节点303的当前积压容量,写操作负载平衡系统101可以基于其容量来校准复制日志305中的空间到各个节点303的分配情况。

更具体地,写入操作负载平衡系统101的请求接收模块313接收由每个节点303发送到日志所有者303的请求,以请求用于写入操作的复制日志305中的空间。当从特定节点303接收到请求时,容量确定模块309将确定发出请求的节点303的当前积压容量,写入操作负载平衡系统101的分配校准模块311然后校准复制日志中的空间量以分配给确定的特定节点303的当前容量。特定节点303仅在复制日志305中被分配足够的空间以执行在其积压中的多个写操作,节点303可以在没有自节流的情况下管理它。换句话说,通过限制分配空间以容纳不超过节点的最高上限和节点积压任务的写入操作管理,节点对于积压任务的节流操作如果超过该上限就将被阻止。这有效地防止了节点303使i/o饥饿或将其他节点303锁定出复制日志305,直到它处理完其积压的任务,这将超过它能够在没有自我限制的情况下的限制。当节点303必须限制其自己的写操作时,集群300中的其余节点303必须等待,而自节流节点303需要处理完其积压任务。由于需要保持写顺序的保真度,自节流节点303完成所有集群300可以执行的写操作,对于该写操作,复制日志305中的空间将随后被分配。另一方面,通过限制分配到每个节点303,可以处理而不必限制其自身的写操作,这避免了来自群集300的宽存储i/o速度的减慢。

在一个实例中,节点303包括提示其在对日志所有者节点303的写槽分配请求中的当前积压任务容量的信息。在其他实例中,写操作负载平衡系统101,例如在期望的周期性基础上(要使用的特定轮询间隔是可变的设计参数)轮询节点303的该信息。并且,该提示提供了写入操作负载平衡系统101节点的当前积压任务容量的信息可以在实例之间变化。例如,在一个实例中,提供未完成的i/o请求和scsi标签命令队列的数量。在此文中可以根据需要在不同的实例中使用更多或更少的精确水平的信息。同样地,在不同的实例之间,节点处理积压任务的写操作的容量的具体粒度也不同。在一些实例中,容量确定模块309将尝试确定特定的当前上限(其可以向上或向下调整,例如考虑误差的界限),并且将限制其在复制日志305中给节点303的空间分配。在其它实例中,容量确定模块309以较低的精度确定节点的积压任务容量,例如仅查看节点303上的未完成i/o请求的数量,并且基于大量未完成的i/o请求指示的事实,在复制日志305中将更少的空间分配给具有更多积压任务的节点303。

在另一个实例中,写操作负载平衡系统101的队列维护模块321维护单个全局队列315以调度整个集群300的写操作。在该实例中,并不是向日志所有者节点303和集群的所有节点303发出写请求,包括日志所有者节点303将它们的请求添加到对全局队列315的尾部以执行写操作。写操作负载均衡系统101的队列读取模块317读取全局队列315,并且写操作负载均衡系统101的调度模块319根据队列315的顺序调度写操作(严格执行先到先输出的顺序)。通常,会使用集群级别全局队列315来调度写入操作,用于防止各个节点303利用具有锁定和i/o饥饿其他节点303的多个连续写入操作来独占对复制日志305的访问。其中,基于全局队列315的实例会在集群300上提供完全公平的i/o调度。

当在期望节点303之间的调度有偏好的情况下,一个针对整个集群300的每个策略全局队列315,对于每个单独的节点303(包括日志所有者节点303)都维护单独的一个本地调度队列315。每个节点303(包括日志所有者节点303)将其写请求添加到其自身的本地队列315中,这将导致跨集群300的所有写操作在针对每个节点303的每节点队列315中都会排队等待。调度模块219会根据各种算法中的一种来调度来自各个本地队列315的写入操作,这取决于要提供给不同节点303的调度先决条件的期望水平决定。

在一个实例中,根据轮回调度方法来调配本地队列315,当调度写操作时,根据复制日志305中的当前可用空间,调度模块319调度来自每个节点的队列315的相等数量的写操作,而忽略每个节点303排队的操作数量。例如,如果在一轮调度期间,复制日志305可以适应75个写操作,那么在一个三节点303的集群300的情况下,首先写入每个节点的队列315的25个操作从其中被读出,并且对应的写操作被调度,而将忽略相对的队列深度是怎样的情况。因此,三个节点303中的每一个节点都具有调度相等数量的写操作,下一轮写操作调度会以相同的方式(或者如果空间量不能被节点303的数量和队列请求均匀地划分,则会基本相等)均等地划分可用空间。以上这种方法对集群300中的每个节点303都提供相同级别的调度偏好,而忽略了队列深度。

执行调度轮次的时间间隔是可变设计参数,当可用数量不能被具有排队操作的节点303的数量均分时,用于划分剩余时隙的具体公式也将是可变设计参数。另外,当一个或多个节点303的队列315可以被清空而不使用它们在复制日志305中的可用空间的全部共享时,剩余容量在其他节点303之间将被均匀地划分。

在另一基于节点队列315的实例中,将使用最大队列调度算法。在该实例中,调度模块319与每个队列315的请求数量成正比,然后调度各个节点303的写入操作。因此,具有更多未决请求的队列315的节点303比具有更少请求的节点303具有优先级。例如,在四个节点(在本讨论中称为节点a,b,c和d)的群集300中,假设每个节点的队列深度为:a为100,b为1500,c为150,d为250。如果复制日志305当前具有用于200个写操作的时隙,那么则从节点a中调取10个,节点b调取150个,节点c调取15个,节点d调度25个。因此,每个节点303都被赋予与其相对于其他节点的挂起写操作的数量成正比的调度优先级。

但是应当理解的是,在利用本地每节点队列315来平衡写操作调度的其他实例中,可以根据需要使用不同的队列服务算法。另外,在一个实例中,管理员或其他授权用户可以通过接口等输入指令来设置或调整特定节点303的优先级。例如,管理员可以设置和编辑优先级权重以用于一个或多个节点303,并且提供给特定节点303的调度偏好的级别与输入的权重成是比例的。

在另一实例中,写入操作负载平衡系统101基于每卷来优化写入操作调度。在本实例中,写入操作负载均衡系统101的卷优先级分配模块323将为不同的数据卷405分配不同级别的优先级。其中,这些分配可以响应于从管理员接收的指令(或者例如在系统安装时默认设置)进行或调整。然后,写入操作负载平衡系统101的空间分配模块325将与其优先级成比例地将复制日志305中的空间分配给卷405。换句话说,在复制日志305中会为具有较高优先级的卷405分配更多的空间。所以,以比具有较低优先级的优先级来处理对较高优先级卷405的写入,并且因此更快地执行所有其他相等的写入。这使得应用程序能够将它们的同步和其他具有高等待时间的写操作定向到较高优先级卷405,并且将它们的异步和其他较低优先级写入操作定向到较低优先级卷405中。例如,在数据库管理应用程序中,控制文件和重做卷的i/o将比i/o给予数据文件和存档日志更高的优先级。在另一实例中,并不是基于优先级将其写入操作目标作为特定卷405的应用,而是请求本身包含指示相应写入操作的优先级的信息(例如,在头部中),并且由写入操作负载平衡系统101调度它们(例如,通过将高优先级操作引导到高优先级卷405中)。

如图5所示,是根据一些实例的写入操作负载平衡系统101的操作步骤。请求接收模块313接收来自聚类和存储环境301的节点303的用于在复制日志305中分配写操作的空间请求。响应于接收到请求,容量确定模块309确定503请求节点303的当前容量以管理其积压任务,而不节制其自己的写操作执行。并且,分配校准模块311将复制日志305中分配的空间量校准到节点的当前容量。

如图6所示,是根据其他实例的写入操作负载平衡系统101的操作步骤。队列维护模块321维持601,该维护要么针对集群和存储环境301的所有节点303的单个全局调度队列315,要么针对每个节点303的单独的本地调度队列315。队列读取模块317从单个全局队列315中或从单独的本地调度模块319中读取603调度写入操作的请求,相应地调度605进行写入操作,从而为每个节点303提供公平调度或为特定节点303提供特定级别的调度优先级。

如图7所示,是根据其他实例的写入操作负载平衡系统101的操作的步骤。请求接收模块313从节点303接收请求,以请求复制日志305中的空间分配。卷优先级分配模块323为共享存储器307的每个数据卷405分配单独的调度优先级。然后空间分配模块325分配705空间与其优先级成比例地存储在卷405中。

以上所述仅为本发明的优选实施方式而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1