CN103188346A - 支持分布式决策的大规模高并发访问i/o服务器负载均衡系统 - Google Patents
支持分布式决策的大规模高并发访问i/o服务器负载均衡系统 Download PDFInfo
- Publication number
- CN103188346A CN103188346A CN2013100699276A CN201310069927A CN103188346A CN 103188346 A CN103188346 A CN 103188346A CN 2013100699276 A CN2013100699276 A CN 2013100699276A CN 201310069927 A CN201310069927 A CN 201310069927A CN 103188346 A CN103188346 A CN 103188346A
- Authority
- CN
- China
- Prior art keywords
- file
- load
- server
- access
- decision
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明针对高性能计算机中缺乏高数据并发访问的文件级别的文件分条,针对面向分条文件的、并且能够充分考虑动态文件访问特性的分配方法以及一种支持分布式决策的负载均衡等问题,公开了一种支持分布式决策的大规模高并发访问I/O服务器负载均衡系统,为高性能计算机提供了具有高扩展性、充分考虑网络延迟和迁移代价的新型动态负载均衡支持。在模块构成上主要包括面向高并发文件访问请求的文件级分条,最小化IO访问冲突的文件分配和基于分布式决策的负载均衡。本发明可以满足具有大规模高并发和分布式决策的高性能计算机的负载均衡系统应用需求。因此,本发明具有广阔的应用前景和可产生显著的经济效益等特色。
Description
技术领域
本发明公开了一种大规模IO服务器负载均衡系统,尤其涉及一种支持分布式决策的高性能计算机文件系统中大规模高并发访问I/O服务器间的负载均衡系统,I/O指输入/输出。属于计算机技术领域。
背景技术
并行输入/输出(Input/Output)系统历来是计算机系统结构领域一个热点研究方向,其旨在内存和磁盘之间创建多个数据通路来缓解计算机系统的I/O性能瓶颈问题。并行文件系统作为并行输入/输出系统的核心软件之一,不仅提供了文件数据并行访问所需的语义和接口,而且能够通过文件的分条、文件的分配和数据服务器之间的动态负载均衡等手段来保证文件数据的聚合访问速度。其中,文件分条是文件数据并行访问的前提之一;有效的文件分配是发挥大规模存储设备性能的有力保障;数据服务器之间的动态负载均衡则保证了并行文件系统的高性能和高扩展性。本发明公开了一种涵盖上述三项关键技术的面向高性能计算机文件系统中大规模IO服务器的服务器负载均衡系统。
现有主流的并行文件系统包括PVFS,Lustre和GPFS等。一般的文件数据负载均衡的完整流程可以抽象概括为三个关键步骤(如附图1所示):第一步,对进入并行文件系统的文件进行分块(条)。第二步,分条文件的分配。第三步,并行文件系统中I/O服务器之间动态负载均衡。就文件分条而言,其中一个重要因素就是确定文件的分条宽度。下面我们将从本发明相关的学术研究及已发表论文分析、以及相关的专利分析两方面对本专利的创新性进行分析。
(1)在支持分布式决策的高性能计算机文件系统中大规模高并发访问I/O服务器间的负载均衡方法的相关研究和已发表论文分析方面,和本专利相关的包括文件分体方法、分体文件的分配方法和负载均衡三方面:
首先,在文件分条方法的相关研究和已发表论文分析,首先因为面向单一的检查点文件可以方便进程失效之后的重启;单一的结果文件可以使得计算结果良好的封装,单一的共享文件也会降低元数据压力等原因,传统的“单文件-多进程”的方式已被广泛采用,目前迫切 需要一种文件级的分条粒度。其次,随着数据密集型,高性能计算机已进入P级,即将进入适于E级计算的高性能计算机研发,其文件系统中的文件请求具有更典型的大规模、高并发,高突发等特征,需要能够刻画该特征的分条模型。单一应用程序内部的计算阶段和I/O阶段相互交替(例如同步原语(MPI_File_sync、MPI_Barrier等);访问多个文件的平稳请求流也可能转换成为访问单一文件的突发请求流(如Server-Side coordination技术)。总体看来,如表1所示,传统利用实验统计和最优化的数学理论等方法,针对如何确定系统级或者目录级的文件分条宽度的问题已经进行了大量的研究。但是由于系统级和目录级的文件分条没有考虑单一文件的访问特性,在面对科学计算程序的I/O性能优化时并不能很好刻画文件级访问特征,特别是大规模高性能计算机当前(如P级)和未来(如E级)的大规模高并发等需求,具有一定的限制。与此相反,文件级别的分条方法能够很好考虑单一文件访问的特性,从而给出能够提高该文件访问性能的分条宽度。对于高性能计算机所使用的并行文件系统而言,由于其需要面对具有突发特性的科学计算程序的I/O请求、同时也得面对更高的文件访问并行度,因此现有研究总体仍然缺乏一种能够很好的应用于高性能计算中数据并发访问的文件级分条策略,尤其是该分条的策略需要满足能够根据每一个文件的自身的访问特点和整个系统的负载情况来确定文件的分条宽度,从而为高效的并行数据的访问提供保证。
表1.文件分条方法概括和对比
其次,在文件分配方面的相关研究和已发表论文分析,分条文件的分配问题是指在给定一定数量的文件和I/O服务器的前提下,如何以最小化平均响应时间、或者最大化系统的利用率等目标来寻找文件在I/O服务器间的分配。文件分配的问题也经过了广泛而深入的研究,现有研究主要可分为两类,包括(1)基于最优化理论的文件分配方法:通过建立优化模型来求导最优分配方案。例如1982年,Lawrence W.Dowdy归纳了常见的优化模型,并说明如何寻找最优的文件分配问题本质上是一个NP问题。2007年,Akshat Verma利用分治策略,把优化模型中的平均响应时间的目标函数分解为Rotational Delay Problem,Seek Time Problem,Transfer Dely Problem三个子函数分别讨论。该作者提出:在传输时间足够小的前提下,文件分配可以利用nlog(n)的算法。(2)基于启发式的思想文件分配方法:以文件访问特性为出发点,采用近似最优的文件分配算法来完成文件的分配。总结看来(如表2所示),针对文件的分配问题的研究主要包括基于最优化理论的文件分配方法和基于启发式思想的文件分配算法两类。其中试图通过基于最优化理论寻找最优文件分配方案的分配算法被证明为一个NP问题。尽管一些学者在特定的假设和场景下提出了时间复杂度为nlog(n)的算法,但是该类文件分配算法仍然具有很高的计算复杂度,因而这类方法在实际系统的应用受到了一定的限制。与此同时,在基于启发式思想的文件分配算法中,当前的解决方法大多采用文件的热度和文件期望服务时间来作为分配标准,因而其不能很好的考虑文件动态访问特性,例如文件请求的磁盘访问冲突等。与此同时,由于并行I/O系统中文件往往采用分条的方式存储,并且希望通过文件内部和文件间的并发访问来支持文件数据的并行访问。因此,当前的启发式文件分配方法中仍然缺少针对面向分条文件同时能够最优化不同文件之间的访问冲突概率的文件分配算法。
表2.文件分配方法汇总
最后,对于数据服务器间的动态负载均衡的相关研究和已发表论文分析而言,静态负载均衡是指在程序运行前,对文件数据按照负载比例进行分块,然后映射到不同的I/O服务器以实现I/O服务器间的负载均衡。这种负载均衡技术,简单有效。对于那些具有恒定负载或者可预测负载的科学计算程序而言,该负载均衡技术很适用,但是大量的研究表明,科学应用程序的负载往往都是随着时间而改变,甚至对于一个程序的不同阶段也会呈现不同的负载特性。因此几乎所有的主流的并行文件系统,包括GPFS、Lustre和PVFS2等,都采用相同策略:把所有的文件分成相同大小的块,然后采用”Round-robin”的方式映射到I/O服务器上以期望负载均衡。此外也有很多面向静态分配问题的研究,包括Lin-Wen Lee提出的以最小服务器时间方差为目标的文件分配,以及TAO XIE提出的面向非分块文件的静态分配等。尽管这些分配策略能给在一定的程度上保证负载的平衡,但是当面对异构的软硬件计算环境、复杂I/O访问模式等情况时,由于服务器性能差异,I/O访问碰撞等因素,该种数据文件的分布很容易造成并行文件系统中出现I/O服务器热点,从而成为并行文件系统的性能瓶颈。因此静态负载尽管简单,但是由于不能根据系统运行时状况进行负载的调整,虽然在某些特定的条件下,如传输时间很短,Akshat等提出可以通过复杂度为Nlog(N)的算法实现多个并行磁盘间的负载平衡而减少平均相应时间,但是当面对大规模的软硬件环境、运行队列和客户端的负载I/O请求模式时,寻找一种负载平衡仍然是NP-Hard问题。其次,动态负载均衡指在文件的负载特性等信息等未知的情况下,根据系统运行时的动态负载信息实时地调整负载在服务器间的分布,从而消除负载热点,优化整个系统的性能。在集中式的负载决策方法方面,Scheuermann et al提出了“Disk Cooling”策略,其主要但是,该负载均衡主 要采用的是集中式负载均衡算法,而且忽略了网络通信的代价等因素。Weitao Sun等研究学者也提出的基于神经网络预测的动态重分配策略也具有相同的缺点。Kunkel也设计了面向PVFS2并行文件系统的集中式负载均衡方法,而且深入研究了采用动态文件迁移来实现负载均衡的方法。在早期I/O服务器数量少、网络规模小的情况下,集中式负载均衡技术能够很容易实现系统的最优负载均衡。但是随着I/O服务器的增加和网络规模的扩大,集中式负载由于其在CPU计算能力、内存容量和网络带宽等方面的限制,很容易成为整个系统的性能瓶颈。在分组决策的方面,Wei Liu等提出的面向Web机群的负载平衡策略通过把服务器进行分组来进行负载均衡的均衡决策,但是,这种方法仍然需要两次网络通信才能激发一次动态文件迁移。因而,这些方法在大规模并行文件系统的环境下的应用也受到了一定的限制。根据我们掌握的资料,当前还没有针对并行文件系统的、基于分布式决策机制的负载均衡解决方法。分布式动态的负载均衡相对于集中式动态负载有较好的扩展性,而且其每一次的动态文件评论操作只需要一次网络通信来收集负载,因此其负载决策的实时性要明显的好于基于集中式的和基于分组的方法。总结看来,对于面向并行文件系统的负载均衡方法而言,其包括静态负载均衡方法和动态负载均衡方法两大类。其中,试图寻找最优化的静态文件分配算法被验证为一个NP-Hard问题;动态的负载均衡可以进一步可分为集中、分组和分布式三种。对于基于集中式决策的算法和基于分组决策的负载均衡算法而言,其扩展性可能不仅低,而且大部分研究忽略了网络延迟等因素对负载均衡方法性能的影响。而对于基于分布式决策的动态负载均衡而言,其扩展性较高,而且网络通讯对决策延迟的影响小,但是基于分布式决策的负载均衡算法可能导致较高的通信量。因此为了适应大规模并行文件系统的需求,需要研究一种具有高扩展性、充分考虑网络延迟和迁移代价的新型动态负载均衡算法。
第三,和本发明相关的专利主要包括,我们重点调研了的高性能计算机文件系统,并行文件系统,文件分条,文件分配和负载均衡等方法和系统。负载海量数据分级存储方法(申请号:200710118116.5)、元数据服务系统、元数据同步方法与写服务器更新方法(200810224708.X),一种集群文件系统动态数据分布方法(申请号:201210184965.1),一种对并行文件系统进行文件布局提取的方法和装置(申请号:201110003511.5),一种集群服务器的动态负载均衡方法(03118565.7),一种实现加权最小连接分配的服务器负载均衡方法(03147308.3)等,但国内外现有成熟的并行文件系统服务器平衡技术和专利研究更多关注于计算结点负载平衡,缺乏对并行文件系统中大规模的I/O服务器间的负载平衡,尤其是“大规模I/O服务器”和“复杂的I/O访问模式”(如PB级环境下的小文件I/O访问等) 带来的不平衡等问题的考虑;并且主要面向百万亿次机和千万亿次高效能计算机,面向更高效能计算机中的并行文件系统中大规模I/O服务器间负载平衡的研究相对较少甚至缺乏;最后,传统的负载平衡方法已不足以解决更高效能计算机中由于服务器数量显著增加和复杂的I/O访问模式等带来的负载失衡问题。更未发现有从负载均衡处理基本流程出发,支持分布式决策的高性能计算机文件系统中大规模高并发访问I/O服务器间的服务器负载均衡系统,特别是能同时具备面向高并发文件访问请求的文件级分条,最小化I/O访问冲突的文件分条,基于分布式体系结构的动态自适应的负载均衡三项功能的负载均衡方法和系统的相关研究和专利。
发明内容
1、目的
本发明的目的是提供一种支持分布式决策的高性能计算机文件系统中大规模高并发访问I/O服务器间的服务器负载均衡系统,以增加FLASH I/O和MPI-IO-Test,在处理文件分条特性的同时降低文件请求间的动态访问冲突概率,并通过分布特性保证整个负载均衡方法和系统具有高扩展性和高可用的性能,最终达到提高整个存储系统的性能的目的。
2、技术方案
本发明的技术方案如下:
基于并行文件系统内的数据处理流程,一种支持分布式决策的高性能计算机文件系统中大规模高并发访问I/O服务器间的负载均衡系统,在模块构成上,主要包括如下三个模块:
S1:面向高并发文件访问请求的文件级分条,该模块主要完成对应用层发起的文件执行文件级分条功能,具有满足高并发和文件级分体实现的需求的技术特征。该模块的核心是实现了一个面向文件级别的最优文件分条大小选择算法。更具体地,该算法的基本流程为,首先,从文件应用层和文件系统支撑层读取到三个输入参数:访问该文件的文件请求的平均大小、该文件访问的并发度、并行文件系统中的数据服务器的数量。然后,该算法计算单一文件请求的最优分条宽度。然后,计算整个文件的分条大小。具体而言,当数据服务器的数量能够保证每一个文件请求采用最优的文件分条宽度的时候,该文件的分条宽度可以设置为单一文件的最优分条宽度。当文件的并发访问度大于数据服务器的数量的时候,文件的分条宽度被设置为文件请求的大小。当文件请求的数量小于数据服务器的数量的时候,该文件分条宽度的选择算法更倾向于最小化单一文件请求的响应时间。最后,根据分体宽度执行文件级分体。
S2:最小化I/O访问冲突概率的文件分配,该模块核心是要实现最小化IO访问冲突的动态文件分配算法,该模块主要完成最小化IO访问冲突的文件分配,该模块实现和保证了并行I/O性能,同时也是文件之间进行并行数据访问性能的有力保证。
S3:基于分布式决策的负载均衡SALB,该模块主要通过调用其内部的基于分布式负载决策算法完成负载均衡,通过该动态负载均衡可以有效的消除并行文件系统的性能瓶颈、保证并行文件数据访问的性能和扩展性。SALB是完全基于分布式负载决策的体系结构。在这种体系结构中,本专利提出的负载均衡模块运行在每一个数据服务器上,并且通过各个数据服务器上SALB模块相互协调来实现所有数据服务器间的负载均衡,使得每一个数据服务器都可以独立的进行负载均衡决策和发起动态文件迁移。SALB采用的这种分布式决策的体系结构可以保证其扩展性和高可用性。SALB包括四个子模块:
S31:基于时间序列分析的在线负载预测(Load Forecast)。该模块用来估计这个数据服务器短期内的负载。这些预测的负载可以被其他服务器收集来进行负载决策,从而可以减少负载决策延迟。
S32:最小化IO访问冲突的文件分配。用于负载收集的信息交换可能降低整个系统的性能。但是,通过设置一个自适应的负载收集阈值可以有效的降低整个系统内用于负载收集的信息交换。当服务器的负载大于该负载收集阈值时,该数据服务器认为自己负载过大从而需要去收集系统中其他服务器的负载信息来进行负载决策。
S32:面向大规模服务器的分布式负载决策机制。基于整个系统的负载状况和本数据服务器自己的负载,该负载决策机制能够在分布式体系结构下决定是否需要触发动态文件迁移以平衡服务器间的负载。
S34:自适应的动态文件迁移。当这个服务器需要转移自己的负载时,该模型可以根据收集到的负载信息以及自己服务器上不同文件的负载状况来选择迁移的对象,以平衡动态文件迁移收益和副作用。动态文件迁移方法可以用于把需要迁移的文件数据转移到选择的目标服务器上。
一种支持分布式决策的高性能计算机文件系统中大规模高并发访问I/O服务器间的负载均衡系统,如附图1所示,其运行流程为:
(1)调用并执行S1,即并行文件系统层中支撑层的客户端执行面向高并发文件访问请求的文件级分条。
(2)调用并执行S1S2,即并行文件系统层中支撑层的客户端执行最小化IO访问冲突的文件分配。
(3)调用并执行S1S3,即并行文件系统层中支撑层的数据服务器上的负载均衡模块SALB完成负载均衡。具体包括,首先调用并执行“S31在线负载预测算法(FcstLoad)”来估计和预测该服务器在下一个时间段内的负载。第二步,调用并执行“S32:面向大规模服务器的分布式负载决策机制”,第三步,调用并执行“S33:基于优化模型的选择动态文件迁移候选对象”。第四步,调用并执行“S34:自适应的动态文件迁移”。
3、优点及功效
本发明所发明的支持分布式决策的高性能计算机文件系统中大规模高并发访问I/O服务器间的服务器负载均衡系统,它与现有技术相比,其主要的优点是:总体上,从负载均衡处理基本流程出发,能够适应高并发文件访问请求的文件级细粒度分条,在负载均衡的过程中最小化I/O访问冲突,基于分布式体系结构的动态自适应的负载均衡综合功效。具体地:在面向高并发度访问的文件级分条方面,由于传统的针对并行文件系统的分条策略缺乏综合考虑文件请求大小和文件的并发访问度等缺点,本发明中提出的分条策略能够根据系统的实时情况、文件的访问特性提供有效的文件分条策略。在一种最小化待分配文件间访问冲突概率的面向分条文件的分配。由于传统的最优化文件分配问题计算复杂度高,并且启发式文件分配算法中缺少对面向分条文件的支持和忽略了待分配文件之间的访问冲突概率。所发明的从空间和时间的角度来优化传统的文件分配算法。从空间角度而言,该文件分配算法充分考虑了文件的分条对文件分配算法的影响;从时间的角度而言,该文件分配算法能够最小化了文件之间的访问冲突概率。在种自适应可扩展的动态负载均衡方面,由于传统的动态负载均衡大多基于集中式或分组的算法,并且忽略了负载收集的通信量、决策延迟、负载迁移副作用等因素对负载均衡的影响的问题。本发明提出的动态负载均衡算法,采用分布式的体系结构,每一个服务器运行其自己的负责均衡客户端,其每一个服务器可以独立地监视自身的负载、收集其他I/O服务器的负载、进行负载均衡的优化决策,从而保证了较小的网络通讯代价和该负载均衡算法具有很高的扩展性。
现有国内外高性能计算机系统已经进入P级时代,正在研发E级系统,而大规模、高并发和分布性需求是当前高性能计算机面临的挑战和下一代高性能计算机的重要发展趋势,而符合该趋势的负载均衡系统和方法是其核心和突破之一,故本发明具有很强的实用性和很广的应用范围。
附图说明
图1本发明的支持分布式决策的大规模高并发访问I/O服务器负载均衡系统体系结构示意图。
图2.面向高并发文件访问请求的文件级分条的PVFS2的集成示意图。
图3.基于分布式决策的负载均衡SALB的PVFS实施图示意图。
图4.基于5个IOS的SALB分布式负载决策机制运行实例示意图。
图5.动态文件迁移的时序图。
具体实施方式
为使本发明的目的、技术方案和优点表达得更加清楚明白,以PVFS(一种典型的并行文件系统平台)和数据服务器负载均衡为例,下面结合附图(如图1-图5)及具体实施例对本发明再作进一步详细的说明,但不构成对本发明的限制。具体实施方法如下:
首先给出本实例中所涉及的数学符号说明如表1所示。
表1.所涉及数学符号及其实际的意义
如图1所示,基于并行IO系统体系结构(自上而下为,应用层->并行文件系统层->物理硬件层),基于PVFS所具的典型并行文件系统架构(客户端、元数据服务器和数据服务器)和并行文件系统的负载均衡处理流程(文件分条->文件分配->负载均衡),本发明所实施的一种支持分布式决策的高性能计算机文件系统中大规模高并发访问I/O服务器间的负载均衡系统,在体系结构层次上,部署于并行文件系统层,承担着应用程序层和物理硬件层的一个交互接口 的角色,所有核心模块和负载均衡流程运行于文件系统支撑层(在PVFS实例中,文件系统支撑层主要包括客户端、数据服务器和元数据)并得到其支撑。
在模块上,本专利主要实施了如下三个模块:
S1:面向高并发文件访问请求的文件级分条模块,该模块的核心是实施一个面向文件级别的最优文件分条大小选择算法,其算法思想和伪码实现如算法1所示。更具体地,该算法的基本实现流程为,首先,本算法从PVFS应用层和文件系统支撑层读入三个输入参数:访问该文件的文件请求的平均大小l、该文件访问的并发度c、并行文件系统中的数据服务器的数量m。然后,算法计算出单一文件请求的最优分条大小q's,具体计算公式为:
如果 则 否则如果 则q's←l,
然后,算法再计算出单一文件请求的最优分条宽度最后,判断并确定面向文件级别的高并发请求下的整个文件的最优分条大小。具体的计算公式为:w'×c≤m则q*←q's;否则如w'×c>m,则q*←l.具体而言,当数据服务器的数量能够保证每一个文件请求采用最优的文件分条宽度的时候,该文件的分条宽度被设置为单一文件的最优分条宽度。当文件的并发访问度大于数据服务器的数量的时候,文件的分条宽度被设置为文件请求的大小。当文件请求的数量小于数据服务器的数量的时候,该文件分条宽度的选择算法更倾向于最小化单一文件请求的响应时间。
算法1.面向文件级别的最优文件分条大小选择算法的伪代码
在系统集成上,由于大多数的并行文件系统都提供了更改文件分条大小的工具。例如,在PVFS2文件系统中,我们通过修改整个并行文件系统的默认分条宽度来更改文件的分条宽度,此外也可以通过PVFS2提供的工具来对某一目录下的新建文件的分条宽度进行修改。然而,当前的并行文件系统仍然缺乏对文件级别的分条宽度设置的支持。为了利用图本专利的文件分条方法来获得每一个新建文件的最优分条宽度,本系统提前获取六个参数。这六个参数包括平均磁盘的寻道时间P、磁盘的平均速度D、平均的网络延迟N、平均的文件请求大小l、文件访问的并发度c和数据服务器的数量m。在这六个参数中,磁盘的平均寻道时间和平均访问速度可以从磁盘的技术手册中获得。平均网络延迟通过网络工具Netperf来获取。对于一个已经建成的存储系统而言,这三个参数连同磁盘的数量一起都能够认为是固定不变的。因此,这些参数被放入到PVFS2的配置文件中。平均的文件请求大小和文件访问的并发度从该文件 访问的历史信息log文件中获得,此外也可以采用动态环境中(例如ROM-IO中)获得。分析文件访问历史信息的方法和动态采集分析文件访问特征的方法在以往的研究Medina M R.A self-tuning disk striping system for parallel input/output[D].University of Illinois at Urbana-Champaign,2007.有很充分的研究,可直接应用,因此本发明就不细致讨论了。在这两个文件的访问特性被确定以后,系统通过pvfs2-touch或者ad pvfs2open两个函数将特性传递给并行文件系统。在PVFS2中,一个文件被通过系统提供的工具pvfs2-touch或者ROM-IO提供的函数ad pvfs2open来创建。这两个函数都调用了PVFS2的文件创建接口PVFS sys create来创建实际的文件。本模块提出的文件分块方法可以实现为成一个名为update stripe size的函数(如图2所示);然后,update stripe size可以被集成到函数pvfs2-touch和ad pvfs2open中。因此,当一个文件被创建时,文件分布信息的分条大小采用本发明所公布的方法进行更新。
S2:最小化IO访问冲突的文件分配,该模块实施核心是要实现DMinCPP文件分配算法,其实施伪码如算法2所示。更具体地,例如,对在n个磁盘(以dl,d2,...,dn表示)之间分配m个分块的文件F=f1,f2,...,fm的场景。对一个文件i而言,文件的访问信息包括该文件的访问频率λi和该文件的大小si。所有的文件采用相同的分条宽度(qi).每一个子文件(或者称为数据文件)的访问频率通过以下公式进行计算:
在该公式中,dj被称为第i个子文件的访问密度。
具体而言,首先,各个磁盘的访问强度矩阵Di被初始化为零。其次,按照访问密度di
降序排列的文件被分配到各个磁盘上。每一批次的文件是独立的分配的。在一个批次内的文件分配完成后,文件访问的信息被记录。在下一个周期,属于下一个批次的文件能够基于前一个周期内的磁盘累计访问强度来进行分配。
算法2.最小化IO访问冲突的文件分配模块算法伪码
S3:基于分布式决策的负载均衡SALB。典型的并行文件系统,如PVFS,包括三个主要的部分:数据服务器(I/Oserver,IOS),元数据服务器(Metadata server,MDS)和客户端(Client)。这三个部分通过网络链接在一起。客户端一般是运行在计算节点上以提供给应用程序访问并行文件系统的接口。元数据服务器存储整个系统的元数据(例如目录数据和文件分布信息等)。数据服务器存储文件的真实数据。下述实例中重点以数据服务器间的负载均衡为例来介绍其实施方法
基于PVFS以上体系结构中,本专利提出的负载均衡模块主要基于分布式负载决策的体系结构,被运行在每一个数据服务器上,并且通过各个数据服务器上SALB模块相互协调来实现所有数据服务器间的负载均衡,使得每一个数据服务器都可以独立的进行负载均衡决策和发起动态文件迁移。图3展示了SALB的五个主要组成部分,以及他们之间的相互交互等信息的具体实施。以其中一个数据服务器为例,SALB的四个主要实现的子模块包括:S31:基于时间序列分析的在线负载预测(Load Forecast)。S32:面向大规模服务器的分布式负载决策机制。S33:基于优化模型的选择动态文件迁移候选对象(Migration Candidates Selection)。S34:自适应的动态文件迁移(Dynamic File Migration)。
S3中具体的各子模块的实施方法包括:
S31:基于时间序列分析的在线负载预测(Load Forecast),该模块的核心是实现了一个基于时间序列分析的在线的负载预测算法FcstLoad(),算法伪码实现如算法3所示。具体实现思想为:以基于时间序列中经典的ARMA模型的预测算法为例,算法首先输入的是该数据服务器的负载序列L={L1,Lt-1,...,Lt-p}。算法的输出是该服务器下一个时间段的预测负载lf。通过一个循环(算法3中的第一行至第三行),FcstLoad预测算法通过一阶差分去掉整个序列中的趋势等不稳定因素,从而把该序列变成一个稳定的负载序列。稳定的序列存在L′中。由于该稳定序列的均值不一定等于零,因此在第四步,对序列L′进行归零化处理,并且结果存储在L′′中。在第五步,AR模型最大的可能阶数被设置为从第六步到第八步,FcstLoad预测算法进行L′′的自相关系数计算,并且把结果存储在矩阵R中。基于自相关矩阵,FcstLoad预测算法在第九步到第十四步计算出AR模型的阶数和系数。具体而言,FcstLoad预测算法利用具有复杂度为O(1)的Levinson-Durbin(L-D)算法(现有文献已公开)来进行AR模型的系数的计算。与此同时,FcstLoad预测算法采用Akaike Information Criterion(现有文献已公开)来确定AR模型的最佳的阶数p′。在第十五步,用最小二乘法来计算模型的实际系数μl,μ2,...,μp′ of然后,FcstLoad预测算法在第十六步计算出未来一步的负载由于是经过差分过后的序列的预测负载,因此在最后,FcstLoad预测算法还需要加上原来的负载Lt,然后系统返回预测的负载lf。
算法3.基于时间序列分析的在线负载预测算法FcstLoad()
S32:面向大规模服务器的分布式负载决策机制。实施方法为:首先,运行在每一个数据服务器上的SALB应该独立的做决定而且能够同时兼顾考虑其自身的负载和整个系统的负载。在SALB中,每一个数据服务器自身的负载由S31负载预测模块提供的预测负载来衡量;整个系统的负载是由负载均衡效率(the efficiency of load balancing,ELB)来衡量的,ELB的计算方法为:其中,{la0,...,laN}是N个数据服务器的负载序列。很明显,ELB的值位于0和1之间,并且ELB越接近1,整个系统的负载在服务器间分布越均匀。然而,由于设定一个高的ELB值,可能导致整个系统内部的频繁的迁移,而频繁的迁移可能导致整个系统性能的下降。因此在SALB中,我们采用了预先设定一个ELB阈值的方法,用ELBt表示。其次,SALB支持并行的负载迁移。为了实现以上两个目标,SALB所实施的分布式负载 决策机制可以归纳如下:如果某一个数据服务器计算的ELB大于ELB的阈值ELBt并且与此同时这个服务器的负载是在起收集的负载列表中是最大的,那么这个数据服务器可以发起一个动态的文件迁移来转移其负载;否则,这个服务器不能够触发动态文件迁移来转移负载。要求当前的数据服务器在其收集的负载列表中具有最大的负载才能发生迁移的原因主要有以下两点:首先,要求当前的数据服务器具有最大的负载能够避免不同的数据服务器把其负载迁移到相同的数据服务器上;其次,具有大于ELBt但不具有最大负载的数据服务器不应该利用其他服务器的负载来进行负载均衡决策。为了解释SALB的分布式负载决策机制如何工作的,图4给出了一个具备5个IOS的具体的实例。其中,IOS0表示正在迁移它的负载到IOS6,并且IOS1和IOS5正在收集其他服务器的负载来独立地进行负载决策。由于服务器IOS1和IOS5收集的负载相同,因此其计算出来的ELB都为0:40(小于本例中ELBt的值——0:7)。由于IOS1的负载在所有的服务器中的负载是最大的,因此IOS1可以选择一个数据服务器做为迁移的目标(在本例子中迁移对象为IOS7)。此时,尽管IOS5计算的ELB值也是0:40,但是由于它的负载不是所有服务器中最大的,IOS5就并不会触发负载迁移。可见,IOS1和IOS5同时选择相同的目标服务器作为迁移目标的问题就可以避免了。在下一个负载均衡的周期,IOS5计算的ELB值是0:91。在这种情况下,IOS5就已经没有必要去触发负载迁移了。可见,要求具有最大负载的服务器才能触发动态文件迁移能够避免某个数据服务器利用其他服务器的负载来做决策。在整个例子中,两个并行的迁移也可以在两个服务器之间同时的发生。这种SALB具有的分布式负载决策机制能够很好的支持并行负载迁移,从而加快大规模失衡负载系统能够快速进入均衡的状态。
S33:基于优化模型的选择动态文件迁移候选对象:动态文件的迁移对象(包括本地待迁移的子文件和接受该文件的目的服务器)需要在负载迁移发生之前做好选择。本地待迁移的子文件(在一些文献中也被称为数据文件)主要是指位于同一个服务器上的属于同一个文件的部分。迁移对象选择的目标是平衡动态文件迁移的效果和副作用。为了有效的平衡一次动态负载文件迁移的代价和收益,本实施中迁移对象选择优化算法得到,首先在优化算法中模型的目标函数由下面的公式定义:
其限制条件为:
在模型中,{l1,...,ln}:是本地服务器上的n个子文件的负载,{la1,...,laN}是N个数据服务器的负载。基于以上目标函数和限制条件公式,采用算法4,即可计算出所需要的选择迁移目标服务器iostarget和对应的迁移文件flocal。
算法4基于优化模型的选择动态文件迁移候选对象算法SelCand
S34:自适应的动态文件迁移,在实施上,基于“客户端——服务器”架构。发起动态文件迁移请求的数据服务器是作为客户端;接受动态文件迁移数据的服务器是服务器端。动态文件迁移算法的顺序图呈现在图5中。为了更新被迁移文件的分布信息,元数据服务器(Netadata Server,MDS)加入了动态文件迁移的过程。动态文件迁移客户端的函数是MigrationClient。MigrationClient采用IOStarget和flocal作为输入。MigrationClient的第一步是获取需要迁移的文件flocal的属性信息。然后,MigrationClient会发送一个迁移请求给目标数据服务器IOStarget。在收到这个请求以后,目标服务器的调度程序会调用函数MigrationServer来创建一个新的数据文件,然后会回复给客户端数据服务器这个新创建的子文件的句柄(Handle)。当客户端函数收到这个句柄之后,它会发起一个文件数据数据流(Flow)把文件的数据转移到目的服务器。在文件数据传输完成了以后,客户端函数MigrationClient会 发送另外一个请求到元数据服务器,从而完成迁移子文件分布信息的更新。在元数据信息被更新后,MigrationClient会删除掉原有的文件数据从而结束文件迁移的过程。
一种支持分布式决策的高性能计算机文件系统中大规模高并发访问I/O服务器间的负载均衡系统,如附图1所示,基本流程为:
首先,调用并执行S1,即并行文件系统层中支撑层的客户端执行面向高并发文件访问请求的文件级分条。具体为,并行文件系统层根据来自于应用层的文件的请求大小,系统的负载情况等情况,以最大化该文件的访问性能或者系统的利用率等为目的,基于本发明一种能近似高并发访问的文件请求的性能分析模型,采用一种自适应的文件级分条方法把进入系统的文件分成多个子文件,从而使多个子文件间的并行访问成为可能,满足高并发和文件级分体的需求。
其次,调用并执行S2,即并行文件系统层中支撑层的客户端执行最小化IO访问冲突的文件分配,具体地,本步骤根据一种基于文件访问强度指标的分配方法,对文件的访问统计信息、系统的负载等情况,以最小化IO访问冲突为目标,给出文件在服务器间的分配方案。
然后,调用并执行S3,即并行文件系统层中支撑层的数据服务器上的负载均衡模块SALB完成负载均衡。更具体的是,SALB的核心为执行S35负载均衡算法,算法的实现伪码如算法5所示。具体实施步骤为,首先每一个数据服务器周期性的调用这个算法并且向这个算法提供一个负载收集阈值(LCt)、一个负载均衡效率阈值(ELBt)和该服务器在过去的p+1个时间的负载采样序列L=(Lt-p,…,Lt-1,Lt)。SALB算法的第一步是实施“S31在线负载预测算法(FcstLoad)”来估计和预测该服务器在下一个时间段内的负载lf。第二步的主要工作是比较预测的负载lf和负载收集的阈值LCt。如果预测的负载lf比负载的收集阈值LCt小,那么SALB算法会终止。否则,SALB算法会在第五步通过CollLoad函数继续收集所有其他服务器的负载信息,并把该信息存在数组{la0,…,laN}中。在这之后,SALB会选择所有服务器中负载最大的,然后把它存到变量lmax中。在第七步中,调用“S32:面向大规模服务器的分布式负载决策机制”并计算该服务器的elb。如果该服务器的elb超过了阈值ELBt,并且该服务器的负载在所有收集的负载列表中是最大的,该服务器可以触发一次动态文件迁移。但在动态文件迁移之前,负载迁移的对象需要通过“S33:基于优化模型的选择动态文件迁移候 选对象”的SelCand算法进行选择。在第十三步,呈现在“S34:自适应的动态文件迁移”的算法MigrateClient会被调用来实现数据从本地服务器到目标服务器的传送,并最后更新被迁移文件的元数据信息。
算法5.SALB算法伪码
应说明的是:以上实施例仅用以说明而非限制本发明的技术方案,尽管参照上述实施例对本发明进行了详细说明,本领域的普通技术人员应当理解:依然可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。
Claims (2)
1.一种支持分布式决策的高性能计算机文件系统中大规模高并发访问I/O服务器负载均衡系统,其特征在于包括如下三个模块:
(1)面向高并发文件访问请求的文件级分条,该模块能够根据文件的访问特点,如请求大小和文件并发访问度等,自动设置文件的分条大小,从而为高效的并行I/O提供有利保证,具有满足高并发和文件级分体实现的需求的技术特征;
(2)最小化I/O访问冲突概率的文件分配,该模块主要完成最小化IO访问冲突的文件分配,该方法不仅充分考虑文件的分条策略,而且充分考虑文件访问的冲突概率,实现和保证了并行I/O性能,同时也是文件之间进行并行数据访问性能的有力根基;
(3)基于分布式决策的动态负载均衡,该模块具有高扩展性、充分考虑决策延迟、迁移代价和迁移抖动的特征,可以有效的消除并行文件系统的性能瓶颈、保证并行文件数据访问的性能和扩展性;该模块包括四个子模块:1)基于时间序列分析的在线负载预测,用来估计这个数据服务器短期内的负载,这些预测的负载可以被其他服务器收集来进行负载决策,从而可以减少负载决策延迟;2)最小化IO访问冲突的文件分配,其用于负载收集的信息交换可能降低整个系统的性能;3)面向大规模服务器的分布式负载决策机制,基于整个系统的负载状况和本数据服务器自己的负载,该负载决策机制能够在分布式体系结构下决定是否需要触发动态文件迁移以平衡服务器间的负载;4)自适应的动态文件迁移,当服务器需要转移自己的负载时,其可以根据收集到的负载信息以及自己服务器上不同文件的负载状况来选择迁移的对象,以平衡动态文件迁移收益和副作用,用于把需要迁移的文件数据转移到选择的目标服务器上。
2.权利要求1所述的支持分布式决策的高性能计算机文件系统中大规模高并发访问I/O服务器负载均衡系统,其运行流程为:
(1)调用并执行“面向高并发文件访问请求的文件级分条”;
(2)调用并执行“最小化I/O访问冲突概率的文件分配”;
(3)调用并执行“基于分布式决策的动态负载均衡”,具体包括,1)调用并执行“基于时间序列分析的在线负载预测”,2)调用并执行“最小化IO访问冲突的文件分配”,3)调用并执行“面向大规模服务器的分布式负载决策机制”,4)调用并执行“自适应的动态文件迁移”。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013100699276A CN103188346A (zh) | 2013-03-05 | 2013-03-05 | 支持分布式决策的大规模高并发访问i/o服务器负载均衡系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013100699276A CN103188346A (zh) | 2013-03-05 | 2013-03-05 | 支持分布式决策的大规模高并发访问i/o服务器负载均衡系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103188346A true CN103188346A (zh) | 2013-07-03 |
Family
ID=48679308
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013100699276A Pending CN103188346A (zh) | 2013-03-05 | 2013-03-05 | 支持分布式决策的大规模高并发访问i/o服务器负载均衡系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103188346A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104348913A (zh) * | 2014-10-28 | 2015-02-11 | 浪潮电子信息产业股份有限公司 | 一种紧耦合可扩展的大数据交互方法 |
CN105007336A (zh) * | 2015-08-14 | 2015-10-28 | 深圳市云舒网络技术有限公司 | 服务器的负载均衡方法及其系统 |
CN106020941A (zh) * | 2015-03-24 | 2016-10-12 | 国际商业机器公司 | 选择资源分配策略和解决资源冲突 |
CN106874080A (zh) * | 2016-07-07 | 2017-06-20 | 阿里巴巴集团控股有限公司 | 基于分布式服务器集群的数据计算方法及系统 |
CN107018163A (zh) * | 2016-01-28 | 2017-08-04 | 中国移动通信集团河北有限公司 | 一种资源配置方法和装置 |
CN107566535A (zh) * | 2017-10-27 | 2018-01-09 | 武汉大学 | 一种Web地图服务中基于用户并发访问时序规则的自适应负载均衡策略 |
CN107979876A (zh) * | 2017-11-16 | 2018-05-01 | 广州市百果园网络科技有限公司 | 数据传输方法及终端 |
CN108509147A (zh) * | 2017-02-28 | 2018-09-07 | 慧与发展有限责任合伙企业 | 数据块迁移 |
CN109086293A (zh) * | 2018-06-11 | 2018-12-25 | 玖富金科控股集团有限责任公司 | Hive文件读写方法及装置 |
CN110213351A (zh) * | 2019-05-17 | 2019-09-06 | 北京航空航天大学 | 一种面向广域高性能计算环境的动态自适应io负载均衡方法 |
CN113312218A (zh) * | 2021-03-31 | 2021-08-27 | 阿里巴巴新加坡控股有限公司 | 磁盘的检测方法和装置 |
CN115438046A (zh) * | 2022-08-25 | 2022-12-06 | 北京万里开源软件有限公司 | 一种基于htap数据库的分布式储存方法 |
CN116627659A (zh) * | 2023-07-21 | 2023-08-22 | 科大讯飞股份有限公司 | 模型检查点文件保存方法、装置、设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101510203A (zh) * | 2009-02-25 | 2009-08-19 | 南京联创科技股份有限公司 | 基于拆分机制并行处理实现大数据量高性能处理的方法 |
-
2013
- 2013-03-05 CN CN2013100699276A patent/CN103188346A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101510203A (zh) * | 2009-02-25 | 2009-08-19 | 南京联创科技股份有限公司 | 基于拆分机制并行处理实现大数据量高性能处理的方法 |
Non-Patent Citations (3)
Title |
---|
DONG BIN 等: "《Communication in Computer and Information Science》", 31 December 2011, article ""A File Assignment Strategy for Parallel I/ 0 System with Minimum I / 0 Contention Probability"", pages: 445-454 * |
DONG BIN 等: "A dynamic and adaptive load balancing strategy for parallel file system with large-scale I/O servers", 《JOURNAL OF PARALLEL AND DISTRIBUTED COMPUTING》, vol. 72, no. 10, 31 October 2012 (2012-10-31), pages 1254 - 1268 * |
DONG BIN 等: "A New File-Specific Stripe Size Selection Method for Highly Concurrent Data Access", 《2012 ACM/IEEE 13TH INTERNATIONAL CONFERENCE ON GRID COMPUTING(GRID)》, 23 September 2012 (2012-09-23), pages 22 - 30, XP032262065, DOI: doi:10.1109/Grid.2012.11 * |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104348913A (zh) * | 2014-10-28 | 2015-02-11 | 浪潮电子信息产业股份有限公司 | 一种紧耦合可扩展的大数据交互方法 |
CN106020941B (zh) * | 2015-03-24 | 2019-06-11 | 国际商业机器公司 | 选择资源分配策略和解决资源冲突的方法 |
CN106020941A (zh) * | 2015-03-24 | 2016-10-12 | 国际商业机器公司 | 选择资源分配策略和解决资源冲突 |
CN105007336A (zh) * | 2015-08-14 | 2015-10-28 | 深圳市云舒网络技术有限公司 | 服务器的负载均衡方法及其系统 |
CN105007336B (zh) * | 2015-08-14 | 2018-06-29 | 深圳市云舒网络技术有限公司 | 服务器的负载均衡方法及其系统 |
CN107018163A (zh) * | 2016-01-28 | 2017-08-04 | 中国移动通信集团河北有限公司 | 一种资源配置方法和装置 |
CN107018163B (zh) * | 2016-01-28 | 2020-02-11 | 中国移动通信集团河北有限公司 | 一种资源配置方法和装置 |
CN106874080A (zh) * | 2016-07-07 | 2017-06-20 | 阿里巴巴集团控股有限公司 | 基于分布式服务器集群的数据计算方法及系统 |
CN106874080B (zh) * | 2016-07-07 | 2020-05-12 | 阿里巴巴集团控股有限公司 | 基于分布式服务器集群的数据计算方法及系统 |
CN108509147A (zh) * | 2017-02-28 | 2018-09-07 | 慧与发展有限责任合伙企业 | 数据块迁移 |
CN107566535A (zh) * | 2017-10-27 | 2018-01-09 | 武汉大学 | 一种Web地图服务中基于用户并发访问时序规则的自适应负载均衡策略 |
CN107566535B (zh) * | 2017-10-27 | 2020-05-05 | 武汉大学 | 基于Web地图服务并发访问时序规则的自适应负载均衡方法 |
CN107979876A (zh) * | 2017-11-16 | 2018-05-01 | 广州市百果园网络科技有限公司 | 数据传输方法及终端 |
CN109086293A (zh) * | 2018-06-11 | 2018-12-25 | 玖富金科控股集团有限责任公司 | Hive文件读写方法及装置 |
CN109086293B (zh) * | 2018-06-11 | 2020-11-27 | 玖富金科控股集团有限责任公司 | Hive文件读写方法及装置 |
CN110213351A (zh) * | 2019-05-17 | 2019-09-06 | 北京航空航天大学 | 一种面向广域高性能计算环境的动态自适应io负载均衡方法 |
CN113312218A (zh) * | 2021-03-31 | 2021-08-27 | 阿里巴巴新加坡控股有限公司 | 磁盘的检测方法和装置 |
CN115438046A (zh) * | 2022-08-25 | 2022-12-06 | 北京万里开源软件有限公司 | 一种基于htap数据库的分布式储存方法 |
CN115438046B (zh) * | 2022-08-25 | 2023-03-28 | 北京万里开源软件有限公司 | 一种基于htap数据库的分布式储存方法 |
CN116627659A (zh) * | 2023-07-21 | 2023-08-22 | 科大讯飞股份有限公司 | 模型检查点文件保存方法、装置、设备及存储介质 |
CN116627659B (zh) * | 2023-07-21 | 2023-12-01 | 科大讯飞股份有限公司 | 模型检查点文件保存方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103188346A (zh) | 支持分布式决策的大规模高并发访问i/o服务器负载均衡系统 | |
Jia et al. | A distributed multi-gpu system for fast graph processing | |
CN101458634B (zh) | 负载均衡调度方法和装置 | |
Wang et al. | Maptask scheduling in mapreduce with data locality: Throughput and heavy-traffic optimality | |
CN102724277B (zh) | 虚拟机热迁移和部署的方法、服务器及集群系统 | |
Khanli et al. | PHFS: A dynamic replication method, to decrease access latency in the multi-tier data grid | |
CN108182105B (zh) | 基于Docker容器技术的局部动态迁移方法及控制系统 | |
CN103488539B (zh) | 一种基于cpu动态调频技术的数据中心节能方法 | |
CN102231121B (zh) | 基于内存映射的大数据文件快速并行提取方法 | |
CN105117497B (zh) | 基于Spark云网络的海洋大数据主从索引系统及方法 | |
CN103345514A (zh) | 大数据环境下的流式数据处理方法 | |
CN105808358B (zh) | 一种用于众核系统的数据相关性线程分组映射方法 | |
CN104050042A (zh) | Etl作业的资源分配方法及装置 | |
CN102222174A (zh) | 一种基因计算系统和方法 | |
Wang et al. | Hybrid pulling/pushing for i/o-efficient distributed and iterative graph computing | |
CN103491155A (zh) | 一种实现移动计算和获取移动数据的云计算方法及系统 | |
CN105975345B (zh) | 一种基于分布式内存的视频帧数据动态均衡存储管理方法 | |
CN111586091A (zh) | 一种实现算力组配的边缘计算网关系统 | |
CN107450855A (zh) | 一种用于分布式存储的模型可变的数据分布方法及系统 | |
CN109271257A (zh) | 一种虚拟机迁移部署的方法及设备 | |
Fan et al. | Intelligent resource scheduling based on locality principle in data center networks | |
CN110597598B (zh) | 一种云环境中的虚拟机迁移的控制方法 | |
CN103023936A (zh) | 一种多层次网络系统及基于该网络系统的任务执行方法 | |
Yin et al. | Joint scheduling of data and computation in geo-distributed cloud systems | |
CN101079897B (zh) | 一种便于存储节点数量扩增的并行存储系统构造方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130703 |