CN113076065A - 一种高性能计算系统中数据输出故障容错方法 - Google Patents
一种高性能计算系统中数据输出故障容错方法 Download PDFInfo
- Publication number
- CN113076065A CN113076065A CN202110400429.XA CN202110400429A CN113076065A CN 113076065 A CN113076065 A CN 113076065A CN 202110400429 A CN202110400429 A CN 202110400429A CN 113076065 A CN113076065 A CN 113076065A
- Authority
- CN
- China
- Prior art keywords
- file
- fault
- tolerant
- data
- space
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0623—Securing storage systems in relation to content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种高性能计算系统中数据输出故障容错方法,步骤包括:S01.将文件系统管理的存储空间划分为普通空间和容错空间,普通空间用于存放无故障时的正常文件数据,容错空间用于存放发生故障时临时存放的文件数据;S02.正常状态时将文件数据存储在普通空间,当发生故障时,启动容错控制,根据当前存储资源可用状态进行重新调度,将受故障影响的文件数据的输出位置进行重定向,以将受故障影响的文件数据存储至可用的容错空间并建立链接关系;故障恢复后,将容错空间的数据搬移到普通空间以恢复正常布局。本发明具有实现方法简单、成本低、时空代价以及数据空间代价小,且对数据输出性能和存储容量的影响小等优点。
Description
技术领域
本发明涉及高性能计算系统,尤其涉及一种高性能计算系统中数据输出故障容错方法。
背景技术
高性能计算系统通常会输出大量数据,这些数据由并行执行的多个任务输出到并行文件系统中,该输出的过程就是多个文件并行的写入过程。即并行文件系统控制数据输出的核心软件,负责管理系统中存储服务结点和设备,控制数据的输入和输出流程,因而高带宽并行输出是该类并行文件系统的重要特征。而随着计算规模的增长,高性能计算机中并行输出的数据量也会持续增长,参与数据输出过程的各类结点、网络设备、存储设备的规模也会伴随着增长,同时也会导致单位时间内局部发生的各类部件故障随之增多,且高性能计算并行任务之间具有极紧密的相关性,因而局部的数据输出失效即可能导致整个计算作业失败,这种情况会大大降低大规模HPC系统的持续计算能力。高性能计算系统中对大规模数据输出过程影响较大的故障主要发生在网络路径层、服务层和设备层,故障表现可分为两大类:1、永久性故障,例如磁盘等存储介质损坏导致无可用空间或并行文件系统上的数据永久无法访问;2、短暂故障,网络或者服务器发生故障导致暂时无法访问,故障恢复后并行文件系统可恢复正常。
高性能计算过程中会输出大量结果数据,这些数据从计算任务到存储设备的过程中,可能需流经内存、多个总线、多个网络和多种设备,任意的偶发故障就会引起输出过程的中断,导致发起数据输出请求的任务挂起等待,进而引发并行计算过程中其他相关任务的等待,处理器处于空转等待状态而空耗资源,从而影响高性能计算机的产出效率。短暂故障会影响数据的输出过程,如果采用数据输出全路径冗余的方式进行容错,代价较大。
典型的高性能计算机的并行文件系统如图1所示,计算结点运行客户端通过高速网络访问元数据结点和数据结点,元数据结点上存储文件的数据布局,数据结点存放文件的数据。并行文件系统通常采用静态布局的方式管理存储的文件,静态布局方式意味着文件创建时,文件的每一块数据应输出到哪些存储结点上就已经确定,并在元数据中记录保存。如图2所示,静态布局的优势是客户端在打开文件时即获取文件布局,无需每次输出数据时都去询问元数据服务器,避免元数据服务繁忙导致拥塞,这种情况在高性能计算的大规模数据输出模式下是必须避免的。但该类方式的一个缺点是不够灵活,没有动态利用集群存储中的可用资源,当文件输出遇到故障时,尽管此时并行文件系统中还有其他可用资源,但无法重新分配其他可用的存储资源,任务报错退出,导致整个作业失败。
目前高性能计算系统中针对上述故障主要采用三个层面的容错方法:
1、在设备层通过RAID(redundant array of independent disk)技术保证单个磁盘失效不会导致数据丢失,或者通过多点部署数据副本,保证原始数据不会丢失;
2、在服务层采用故障接管技术保证服务器服务不会中断,
3、在访问路径上实现全路径冗余,例如网络路径冗余规、磁盘阵列多控制器多链路等技术,保证数据访问路径上任意单点失效都不会影响数据访问。
但是以上方法本质仅只是采用冗余的方式避免单点失效,尤其是针对短暂故障仅是采用冗余的原则,当系统规模达到超大规模时,如果在任意层次都采用冗余的方式来容错,会带来巨大的成本开销,使得容错成本较高。
综上,高性能计算机的并行文件系统常采用静态布局的方式管理存储的文件,没有动态利用集群存储中的可用资源,当文件输出遇到故障时,会使得无法重新分配其他可用的存储资源而导致整个作业失败;而针对短暂故障现有技术仅是采用冗余的方式避免单点失效,当系统规模达到超大规模时,容错成本较高。因此需要面向高性能计算的数据访问模式和故障特征来匹配相应的容错方法。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种实现方法简单、成本低、时空代价以及数据空间代价小,且对数据输出性能和存储容量的影响小的高性能计算系统中数据输出故障容错方法。
为解决上述技术问题,本发明提出的技术方案为:
一种高性能计算系统中数据输出故障容错方法,步骤包括:
S01.将文件系统管理的存储空间划分为普通空间和容错空间,所述普通空间用于存放无故障时的正常文件数据,所述容错空间用于存放发生故障时临时存放的文件数据;
S02.正常状态时将文件数据存储在所述普通空间,当发生故障时,启动容错控制,根据当前存储资源可用状态进行重新调度,将受故障影响的文件数据的输出位置进行重定向,以将受故障影响的文件数据存储至可用的所述容错空间并建立链接关系;故障恢复后,将所述容错空间的数据搬移到所述普通空间以恢复正常布局。
进一步的,所述普通空间中为正常文件数据的元数据设置有一个容错链接表,以用来存放指向所述容错空间中目的数据区的链接;所述容错空间中根据文件系统的文件数据结点数划分为N个容错数据区R0~RN-1,所述容错空间中存放的文件数据包括发生故障时文件的暂存数据及暂存数据在文件中的位置和区间信息。
进一步的,所述步骤S01的步骤包括:
S1.1.将文件系统管理的存储空间划分为普通空间和容错空间,所述容错空间和所述普通空间共用并行文件系统的数据服务结点,并分别使用独立的服务进程和物理存储空间;
S1.2.配置所述普通空间存放无故障时的NF文件,并为所述NF文件的元数据设置一个容错链接表,以用来存放指向所述容错空间中目的数据区的链接,所述NF文件为正常文件;配置所述容错空间存放发生故障后受影响文件的临时暂存AF文件,所述AF文件包括发生故障时文件的暂存数据及暂存数据在文件中的位置和区间信息;
S1.3.所述普通空间和容错空间启动并行文件系统服务,其中所述容错空间的每个数据区具有独立的并行文件系统服务;
S1.4.定期扫描所述普通空间和所述容错空间的服务状态,并更新系统的可用资源状态。
进一步的,所述步骤S02中,正常情况下文件操作请求自动指向所述普通空间中存放的NF文件,所述NF文件为正常文件,当检测到所述NF文件的操作请求无法完成时,则进入容错状态启动容错控制,将所有正在操作的文件记录标记为“脏”状态并映射到所述容错空间中可用的目的容错数据区中,并在所述容错数据区生成对应的AF文件,所述AF文件为NF文件的子集;当检测到当前容错数据区发生故障时,则继续使用下一个可用的容错数据区。
进一步的,所述启动容错控制时,具体将文件逐个通过基于文件路径的哈希算法映射到唯一的所述容错数据区,即对于N个容错数据区,各所述容错数据区从0~N-1编号后,各文件根据哈希算法由路径名计算对应的容错数据区的编号i,如果容错数据区Ri因故障不能访问,则顺序访问下一个容错数据区Ri+1。
进一步的,所述步骤S02中,持续监控所述普通空间的元数据服务,如果元数据正常则立即在NF文件的容错链接表中记录AF文件链接,以指向容错数据区中AF文件,所述NF文件为正常文件,所述AF文件为临时暂存文件;如果元数据不正常,则后续的文件访问请求定向到容错数据区的AF文件;当监测到恢复正常后,启动所述AF文件到所述NF文件的同步过程,完成一致性流程后,删除所述AF文件并清除所述NF文件的链接,系统恢复正常工作状态。
进一步的,所述步骤S02中,还包括定位及打开文件的步骤,包括:
S2.1.1.根据监控信息判断所述普通空间的服务状态,如果正常则向普通空间元数据服务发查询请求,如果其中的NF文件处于“脏”状态,则确定对应的容错数据区,发送AF文件查询请求并返回查询结果,所述NF文件为正常文件,AF文件为发生故障时临时暂存文件;
S2.1.2.根据文件查询结果构建文件数据分布映射表,如果所述NF文件处于正常状态,则在所述文件数据分布映射表中增加一个表项,以指向全部文件数据空间;如果处于“脏”状态,则分别依次查询所述NF文件和所述AF文件,并根据查询结果在所述文件数据分布映射表中增加相应表项以分别指向不同的数据段,所述文件数据分布映射表根据元数据服务器返回的信息生成;
S2.1.3.构建文件访问必需的数据结构并将指针返回,完成文件打开请求。
进一步的,所述步骤S02中,还包括写文件步骤,包括:
S2.2.1.根据写接口中起点位置、偏移量参数以及文件数据分布映射表,计算出目标数据所在的目的存储结点,然后向目的存储结点发送请求,启动正常写文件过程,存储结点返回成功则正常结束,如果存储结点返回错误码,转入步骤S2.2.2;
S2.2.2.判断返回的错误码的类型,若为非超时故障则将错误码直接返回给用户程序,若为服务超时故障则转入S2.3.3以进行容错处理;
S2.2.3.向元数据服务发文件容错请求,元数据服务首先定位容错数据区,并在所述容错数据区中查找是否存在对应的容错文件,如果存在则跳至S2.3.4;否则创建容错链接表,启动映射流程,在所述容错链接表中记录新分配的容错数据区存储结点和数据容错AF文件标识,并记录容错区域的起始位置;
S2.2.4.元数据服务查找所述AF文件,并将所述AF文件对应的存储结点返回;
S2.2.5.根据返回的新的元数据信息更新所述文件数据分布映射表,向新分配的存储结点发起写入数据流程;
S2.2.6.如果数据未写完返回步骤S2.2.1,否则将容错区域的结束位置发生给元数据服务结点,更新元数据容错链接表中的容错区域。
进一步的,所述步骤S02中,还包括读文件步骤,包括:
S2.3.1.根据读接口中起点位置、偏移量参数以及文件打开时合成的文件数据分布映射表,计算出文件数据对应的存储结点,发送读请求,启动正常读文件过程,存储结点返回成功则正常结束,否则跳至S2.3.2;
S2.3.2.如果需要读取的数据在容错区域,则先读取数据,然后判断普通空间的存储结点是否正常,如果正常则启动一致性服务进程将数据同时写回普通空间,然后通知元数据服务删除容错链接表中的表项;
S2.3.3.把存储节点返回的数据复制到应用程序缓存,如果数据未读完返回步骤S2.3.1,否则读流程结束。
进一步的,所述步骤S02后,还包括关闭文件步骤,包括:
S2.4.1.当需要关闭文件时,分别发送关闭请求给普通元数据服务和容错元数据服务进程;
S2.4.2.由所述普通元数据服务执行正常的关闭操作,所述容错元数据服务进程收到文件的关闭请求后,在元数据容错空间中查找所述容错链接表,判断当前文件是否发生过容错,转入步骤S2.4.3以启动AF文件消除过程;
S2.4.3.判断当前普通空间是否正常,如果依然故障则结束文件关闭流程,如果已经恢复正常,则锁定文件以使得为只读状态,同时发送请求给当前文件容错空间所在的目的结点,目的结点将数据内容传输到文件普通空间所在存储结点,将AF文件和NF文件合并以保证文件一致性,所述NF文件为正常文件,AF文件为发生故障时临时暂存文件;
S2.4.4在元数据结点清除所述容错链接表,同时解锁文件。
与现有技术相比,本发明的优点在于:
1、本发明通过使用分布式临时性的数据存储空间,采用临时性动态数据布局的方式进行短暂故障的容错,仅在存储系统发生短暂故障时由软件层根据存储资源可用状态进行重新调度,临时采用动态文件数据布局,故障恢复后即后台恢复正常布局,能够保证文件数据输出过程可持续,并容忍短暂故障的发生,同时在短暂故障消除后恢复静态布局,有效避免局部故障导致作业的失效。
2、本发明充分利用HPC系统中故障动态发生和发生概率较小的特点,仅在存储设备发生故障时才启动数据输出的容错过程,通过容错空间达到文件输出容错的目的,能够实现按需容错,容错的时空代价较小,且对数据输出性能和存储容量的影响小。
3、本发明充分利用HPC集群文件系统架构中存储结点“集群”的特点,通过较小的分布式容错数据空间为代价,实现了数据输出过程中的资源重新调度,达到动态多路径数据输出的效果,能够避免配置常态化的冗余部署带来的成本代价,从而实现低成本容错。
附图说明
图1是典型并行文件系统架构原理示意图。
图2是并行文件系统文件访问流程示意图。
图3是本实施例中容错空间及容错原理示意图。
图4是本实施例中实现容错访问的流程示意图。
具体实施方式
以下结合说明书附图和具体优选的实施例对本发明作进一步描述,但并不因此而限制本发明的保护范围。
如图3所示,本实施例性能计算系统中数据输出故障容错方法的步骤包括:
S01.将文件系统管理的存储空间划分为普通空间和容错空间,普通空间用于存放无故障时的正常文件数据,容错空间用于存放发生故障时临时存放的文件数据;
S02.正常状态时将文件数据存储在普通空间,当发生故障时,启动容错控制,根据当前存储资源可用状态进行重新调度,将受故障影响的文件数据的输出位置进行重定向,以将受故障影响的文件数据存储至可用的容错空间并建立链接关系;故障恢复后,将容错空间的数据搬移到普通空间以恢复正常布局。
短暂故障通常具有偶发、修复快速的特点,且高性能计算系统中短暂故障发生的比例远高于永久性故障,本实施例针对高性能计算系统中短暂故障的特点,以及利用并行文件系统中存储设备具有多点和分布的特性,通过使用分布式临时性的数据存储空间,采用临时性动态数据布局的方式进行短暂故障的容错,仅在存储系统发生短暂故障时由软件层根据存储资源可用状态进行重新调度,临时采用动态文件数据布局,故障恢复后即后台恢复正常布局,即在数据正常访问时采用静态数据布局,当发生故障时,在软件层动态改变数据布局,保证文件数据输出过程可持续,并在短暂故障消除后恢复静态布局,使得可以容忍短暂故障的发生,有效避免局部故障导致作业的失效。
本实施例上述容错方法,仅在发生故障时进行容错,在无故障时无需额外的容错代价,可以减小整体的容错开销;同时由于利用短暂故障在短时间内可恢复正常的特点,采用软件的方法避免数据输出过程中断,可以使得数据输出的任务不会挂起。
如图3所示,本实施例将文件系统管理的存储空间划分为普通空间和容错空间,容错空间所占的比例可根据系统的平均短暂故障修复时间和系统数据输出吞吐率来确定。为了确保足够的容错容量,具体可按照以下表达式确定需划分的容错空间:
容错空间的容量C容错=数据吞吐率*平均短暂故障修复时间
存储空间划分后,由普通空间用于存放无故障时的文件数据,容错空间用于存放发生故障时临时存放的数据。故障发生时,文件系统将受故障影响文件的数据输出位置进行重定向,指向到可用的容错空间并建立链接关系,以用于后续数据的访问和管理;当故障恢复后,容错空间的数据搬移到正常空间,清空后重复使用。由于容错空间仅存放短暂故障窗口期内的被影响的文件数据,因此所需的存储空间较小;且由于短暂故障通常具有偶发、修复快速的特点,因此容错空间大多数时间仅存储少量容错数据,其存储成本远低于传统容错方式中的固定冗余存储成本,且由于仅在发生故障才短暂使用动态布局,也避免了传统动态布局方式的开销大等问题。
本实施例中具体在普通空间中为正常文件数据的元数据设置有一个容错链接表,以用来存放指向容错空间中目的数据区的链接;容错空间中根据文件系统的文件数据结点数划分为N个容错数据区R0~RN-1,容错空间中存放的文件数据包括发生故障时文件的暂存数据及暂存数据在文件中的位置和区间信息等。容错数据区R0~RN-1具体可在确定出容错空间后采用均分的方式划分得到。
本实施例中,上述步骤S01的详细步骤为:
S1.1.将系统中的物理存储空间划分为普通空间和容错空间,容错空间根据文件系统的文件数据结点数均分为N个容错数据区R0~RN-1,容错空间和普通空间共用并行文件系统的数据服务结点,使用独立的服务进程和物理存储空间;
S1.2.配置普通空间存放的内容是无故障情况下NF(Normal File)文件,并为NF文件的元数据设置一个容错链接表,以用来存放指向容错空间的某个数据区的链接;容错空间存放的发生故障后受影响文件的临时暂存AF(Alternative File)文件,AF文件包括发生故障时文件的暂存数据及暂存数据在文件中的位置和区间信息,通过文件偏移量表示;
S1.3.普通空间和容错空间都启动并行文件系统服务,容错空间的每个数据区具有独立的并行文件系统服务以保障并行文件系统服务质量;
S1.4.定期扫描普通空间和容错空间的服务状态,更新系统的可用资源状态视图。
上述步骤S1.1中,普通空间和容错空间具体可通过文件系统卷标进行区分。如图3,容错数据区R0~RN-1之间相对独立,每个容错数据区跨多个存储节点分布,支持完整的并行文件系统服务。如果计算节点存在本地存储介质,也可以作为Ri空间使用,这样即使客户端的网络完全暂时中断,数据输出仍能够持续,容错能力更强。如普通空间占用D0~D11数据结点的大部分空间,容错空间R0~R5分别占用2个数据结点的部分空间,普通空间和容错空间共享使用元数据结点和元数据存储空间,并采用高可用和高冗余等存储硬件配置,防止元数据服务故障。
上述容错链接表具体为一个数据结构,由该数据结构存放指向容错空间的某个数据区的链接。
上述步骤S1.4中具体可在客户端启动虚拟层,负责监控普通空间和容错空间,由虚拟层负责截获返回的文件访问请求进行容错处理,以及对顶层用户屏蔽故障信息。
本实施例进一步还设置有一致性服务进程,以用于在空闲时清理容错空间,同步文件数据,保障文件的一致性。
本实施例中步骤S02中,正常情况下文件操作请求自动指向普通空间中存放的NF文件,NF文件为正常文件,当检测到NF文件的操作请求无法完成时,则进入容错状态启动容错控制,将所有正在操作的文件记录标记为“脏”状态并映射到容错空间中可用的目的容错数据区中,并在容错数据区生成对应的AF文件,AF文件为NF文件的子集;当检测到当前容错数据区发生故障时,则继续使用下一个可用的容错数据区。
上述启动容错控制时,具体将文件逐个通过基于文件路径的哈希算法映射到唯一的容错数据区,即对于N个容错数据区,各容错数据区从0~N-1编号后,各文件根据哈希算法由路径名计算对应的容错数据区的编号i,如果容错数据区Ri因故障不能访问,则顺序访问下一个容错数据区Ri+1。由于Ri区具备完整的并行文件系统服务,所以文件的数据输出过程不会因短暂故障终止,数据暂存在Ri区的AF文件中;则当检测到Ri区发生短暂故障后,可以继续使用下一个可用的容错数据区Rj。
上述容错数据区资源调度映射规则具体为:对于任意文件,按以下规则确定容错数据区Ri:
1、假设N个容错数据区,R区从0~N-1编号;
2、任意文件,根据哈希算法,由路径名计算对应的R区编号i;
3、如果Ri因故障不能访问,则顺序访问Ri+1。
在具体应用实施例中,在客户端给用户呈现一个虚拟的文件系统,正常情况下,用户创建文件,读写数据,各种文件操作请求自动指向普通空间NF文件,当客户端检测到NF文件操作请求无法完成时(一般采用超时机制并结合监控服务判断网络连接状态),则该客户端进入容错状态,将所有正在操作的文件记录标记为“脏”状态,逐个通过基于文件路径的哈希算法映射到唯一的容错数据区Ri,并在该容错数据区生成对应的AF容错文件,AF文件通常是NF文件的子集。
因为短暂故障会在短时间内修复,AF文件只是暂时文件。本实施例具体通过客户端持续监控普通空间的元数据服务,如果元数据正常则立即在NF文件的容错链接表中记录AF文件链接,指向Ri数据区中AF文件,如果元数据不正常,则后续的文件访问请求直接根据哈希算法定向到Ri区的AF文件;当监测到普通数据区恢复正常后,会启动AF文件到NF文件的同步过程,完成一致性流程后,删除AF文件,清除NF文件的链接,系统恢复正常工作状态。
基于本实施例上述故障容错方法,本发明在具体应用实施例中步骤S02进一步还可实现各类文件操作的容错,数据输出容错流程具体如图4所示,各文件操作详细为:
(1)创建文件和目录(create、mkdir),步骤包括:
客户端虚拟层向普通空间元数据服务发送请求,告知需创建的文件或目录的全路径名;
普通空间元数据服务收到客户端的创建请求后,在普通空间创建目录或文件,如果创建成功,则向客户端返回成功信息
如果请求超时,客户端虚拟层选择可用的容错区Ri,向该容错空间元数据服务发送同样的请求,完成AF文件或目录的创建操作。
创建容错链接表,指向R区的容错文件AF。
(2)定位及打开(lookup、open)文件的步骤包括:
S2.1.1.根据监控信息判断普通空间的服务状态,如果正常则向普通空间元数据服务发查询请求,如果其中的NF文件处于“脏”状态,则确定对应的容错数据区,发送AF文件查询请求并返回查询结果,NF文件为正常文件,AF文件为发生故障时临时暂存文件;
S2.1.2.根据文件查询结果构建文件数据分布映射表,如果NF文件处于正常状态,则在文件数据分布映射表中增加一个表项,以指向全部文件数据空间;如果处于“脏”状态,则分别依次查询NF文件和AF文件,并根据查询结果在文件数据分布映射表中增加相应表项以分别指向不同的数据段,文件数据分布映射表根据元数据服务器返回的信息生成。
在具体应用实施例中,定位及打开时,由客户端根据监控信息判断普通空间的服务状态,完成文件查询请求;如果正常则向普通空间元数据服务发查询请求,如果NF文件处于dirty状态,则通过上述映射规则确定Ri容错数据区,发送AF文件查询请求,并返回查询结果;根据文件查询结果,构建文件数据分布映射表;如果NF文件处于正常状态,则数据分布映射表仅增加一个表项,指向全部文件数据空间,如果处于“脏”状态,则根据分别依次查询NF和AF文件,根据结果在文件数据分布映射表中增加相应表项,分别指向不同的数据段;数据分布映射表具体由客户端根据元数据服务器返回的信息生成,并存放在于内存中,以保证查表延迟远低于访盘延迟;然后再由虚拟层构建文件访问的必需的数据结构,将指针返回用户,完成open请求。
(3)写文件(write)的步骤如下:
S2.2.1.根据写接口中起点位置、偏移量参数以及文件数据分布映射表,计算出目标数据所在的目的存储结点,然后向目的存储结点发送请求,启动正常写文件过程,存储结点返回成功则正常结束,如果存储结点返回错误码,转入步骤S2.2.2;
S2.2.2.判断返回的错误码的类型,若为非超时故障则将错误码直接返回给用户程序,若为服务超时故障则转入S2.3.3以进行容错处理;
S2.2.3.向元数据服务发文件容错请求,元数据服务首先定位容错数据区,并在容错数据区中查找是否存在对应的容错文件,如果存在则跳至S2.3.4;否则创建容错链接表,启动映射流程,在容错链接表中记录新分配的容错数据区存储结点和数据容错AF文件标识,并记录容错区域的起始位置;
S2.2.4.元数据服务查找AF文件,并将AF文件对应的存储结点返回;
S2.2.5.根据返回的新的元数据信息更新文件数据分布映射表,向新分配的存储结点发起写入数据流程;
S2.2.6.如果数据未写完返回步骤S2.2.1,否则将容错区域的结束位置发生给元数据服务结点,更新元数据容错链接表中的容错区域。
在具体应用实施例中,写文件时由客户端虚拟层根据write(fd,pos,len)接口中起点位置、偏移量参数以及根据文件数据分布映射表,计算出数据所在的存储结点,然后向该存储结点发送请求,启动正常写文件过程,存储结点返回成功则正常结束;如果存储结点返回错误码,则根据错误码的类型选择后续操作,错误码分为两类:服务超时故障和非超时故障,其中非超时故障按正常流程将错误码直接返回给用户程序,由用户程序解释并处理,而服务超时故障则转入容错流程处理,容错流程处理:客户端向元数据服务发文件容错请求,元数据服务首先上述映射规则定位R区,并在R区查找是否存在对应的容错文件,如果存在,则跳至S2.2.4以进行元数据服务查找AF文件;否则创建容错链接表,启动如上述映射的规则的映射流程,并在容错链接表中记录新分配的R区存储结点和数据容错AF文件标识,并记录容错区域的起始位置;元数据服务查找AF文件时,并将AF文件对应的存储结点返回给客户端;客户端再根据返回的新的元数据信息,更新文件分布映射表,向新分配的存储结点发起写入数据流程,直至数据写完,将容错区域的结束位置发生给元数据服务结点,更新元数据容错链接表中的容错区域。
(4)读文件(read)的步骤包括:
S2.3.1.根据读接口中起点位置、偏移量参数以及文件打开时合成的文件数据分布映射表,计算出文件数据对应的存储结点,发送读请求,启动正常读文件过程,存储结点返回成功则正常结束,否则跳至S2.3.2;
S2.3.2.如果需要读取的数据在容错区域,则先读取数据,然后判断普通空间的存储结点是否正常,如果正常则启动一致性服务进程将数据同时写回普通空间,然后通知元数据服务删除容错链接表中的表项;
S2.3.3.把存储节点返回的数据复制到应用程序缓存,如果数据未读完返回步骤S2.3.1,否则读流程结束
在具体应用实施例中,读文件时由客户端根据read(fd,pos,len)接口中起点位置、偏移量参数,并读取文件打开时合成的文件分布映射表,计算出文件数据对应的存储结点,发送读请求,启动正常读文件过程,存储结点返回成功则正常结束,否则如果需要读取的数据在容错区域,则先读取数据,然后判断普通空间的存储结点是否正常,如果正常则启动后台一致性服务进程将数据同时写回普通空间,然后通知元数据服务删除容错链接表中的表项;再由客户端把存储节点返回的数据复制到应用程序缓存,直至数据读取完,结束读流程。
(5)关闭文件(close)的步骤包括:
S2.4.1.当需要关闭文件时,分别发送关闭请求给普通元数据服务和容错元数据服务进程;
S2.4.2.由普通元数据服务执行正常的关闭操作,容错元数据服务进程收到文件的关闭请求后,在元数据容错空间中查找容错链接表,判断当前文件是否发生过容错,转入步骤S2.4.3以启动AF文件消除过程;
S2.4.3.判断当前普通空间是否正常,如果依然故障则结束文件关闭流程,如果已经恢复正常,则锁定文件以使得为只读状态,同时发送请求给当前文件容错空间所在的目的结点,目的结点将数据内容传输到文件普通空间所在存储结点,将AF文件和NF文件合并以保证文件一致性;
S2.4.4在元数据结点清除容错链接表,同时解锁文件。
在具体应用实施例中,客户端在文件关闭时,分别发送close请求给普通元数据服务和容错元数据服务进程;普通元数据服务执行正常的关闭操作,容错元数据服务进程收到文件的关闭请求后,在元数据容错空间中查找容错链接表,判断该文件是否发生过容错,然后启动AF文件消除过程,首先判断普通数据空间是否正常,如果依然故障,则结束文件关闭流程,如果已经恢复正常,则锁定文件使其只读,同时发送请求给将文件容错空间所在结点,该结点将数据内容传输到文件普通空间所在存储结点,将AF文件和NF文件合并,保证文件一致性,最后在元数据结点清除容错链接表,同时解锁文件。
本实施例进一步还包括读取文件属性(stat)步骤,包括:
按常规模式从普通空间读取获得文件属性;
如果该文件存在容错链接表,则读取容错空间文件元数据信息,计算容错文件的长度;
重新合并计算文件长度,填入文件属性数据结构,返回给客户端。
删除文件步骤具体包括:
客户端向元数据服务发送文件删除请求,元数据服务在容错空间中查找容错链接表,判断该文件是否发生过容错,没有则执行正常删除流程;否则执行元数据服务分别根据普通元数据和元数据容错索引文件,生成存储结点列表,案列表向存储结点发送文件删除请求;删除容错空间元数据,以及删除普通空间元数据。
文件系统一致性检查和恢复步骤具体包括:
定期扫描容错空间,读取容错空间中每个文件的记录,形成恢复日志,恢复日志中的每一行记录应该从哪个存储结点读取数据,读取的AF文件名以及偏移量和长度,恢复目标存储结点和目标文件名;
每个存储结点在读取恢复日志,并行完成NF文件和AF文件的合并过程,并消除容错链接表;该过程可以在存储结点启动初始化时完成,或运行时在线定期进行,此时需对被操作的文件进行锁定保护。
本发明通过上述容错方法,能够充分利用HPC系统中故障动态发生和发生概率较小的特点,仅在存储设备发生故障时才启动数据输出的容错过程,通过容错空间达到文件输出容错的目的,实现按需容错,容错的时空代价较小,对数据输出性能和存储容量的影响小;同时能够充分利用HPC集群文件系统架构中存储结点“集群”的特点,通过较小的分布式容错数据空间为代价,实现了数据输出过程中的资源重新调度,达到动态多路径数据输出的效果,避免配置常态化的冗余部署带来的成本代价,实现低成本容错的目的。
进一步的本实施例上述容错方法还可与其他存储容错技术配合使用,以降低静态冗余方法带来的设备成本、存储空间和访问时间等方面的时间和成本开销。
上述只是本发明的较佳实施例,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。因此,凡是未脱离本发明技术方案的内容,依据本发明技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均应落在本发明技术方案保护的范围内。
Claims (10)
1.一种高性能计算系统中数据输出故障容错方法,其特征在于,步骤包括:
S01.将文件系统管理的存储空间划分为普通空间和容错空间,所述普通空间用于存放无故障时的正常文件数据,所述容错空间用于存放发生故障时临时存放的文件数据;
S02.正常状态时将文件数据存储在所述普通空间,当发生故障时,启动容错控制,根据当前存储资源可用状态进行重新调度,将受故障影响的文件数据的输出位置进行重定向,以将受故障影响的文件数据存储至可用的所述容错空间并建立链接关系;故障恢复后,将所述容错空间的数据搬移到所述普通空间以恢复正常布局。
2.根据权利要求1所述的高性能计算系统中数据输出故障容错方法,其特征在于:所述普通空间中为正常文件数据的元数据设置有一个容错链接表,以用来存放指向所述容错空间中目的数据区的链接;所述容错空间中根据文件系统的文件数据结点数划分为N个容错数据区R0~RN-1,所述容错空间中存放的文件数据包括发生故障时文件的暂存数据及暂存数据在文件中的位置和区间信息。
3.根据权利要求2所述的高性能计算系统中数据输出故障容错方法,其特征在于:所述步骤S01的步骤包括:
S1.1.将文件系统管理的存储空间划分为普通空间和容错空间,所述容错空间和所述普通空间共用并行文件系统的数据服务结点,并分别使用独立的服务进程和物理存储空间;
S1.2.配置所述普通空间存放无故障时的NF文件,并为所述NF文件的元数据设置一个容错链接表,以用来存放指向所述容错空间中目的数据区的链接,所述NF文件为正常文件;配置所述容错空间存放发生故障后受影响文件的临时暂存AF文件,所述AF文件包括发生故障时文件的暂存数据及暂存数据在文件中的位置和区间信息;
S1.3.所述普通空间和容错空间启动并行文件系统服务,其中所述容错空间的每个数据区具有独立的并行文件系统服务;
S1.4.定期扫描所述普通空间和所述容错空间的服务状态,并更新系统的可用资源状态。
4.根据权利要求1所述的高性能计算系统中数据输出故障容错方法,其特征在于,所述步骤S02中,正常情况下文件操作请求自动指向所述普通空间中存放的NF文件,所述NF文件为正常文件,当检测到所述NF文件的操作请求无法完成时,则进入容错状态启动容错控制,将所有正在操作的文件记录标记为“脏”状态并映射到所述容错空间中可用的目的容错数据区中,并在所述容错数据区生成对应的AF文件,所述AF文件为NF文件的子集;当检测到当前容错数据区发生故障时,则继续使用下一个可用的容错数据区。
5.根据权利要求4所述的高性能计算系统中数据输出故障容错方法,其特征在于:所述启动容错控制时,具体将文件逐个通过基于文件路径的哈希算法映射到唯一的所述容错数据区,即对于N个容错数据区,各所述容错数据区从0~N-1编号后,各文件根据哈希算法由路径名计算对应的容错数据区的编号i,如果容错数据区Ri因故障不能访问,则顺序访问下一个容错数据区Ri+1。
6.根据权利要求1所述的高性能计算系统中数据输出故障容错方法,其特征在于:所述步骤S02中,持续监控所述普通空间的元数据服务,如果元数据正常则立即在NF文件的容错链接表中记录AF文件链接,以指向容错数据区中AF文件,所述NF文件为正常文件,所述AF文件为临时暂存文件;如果元数据不正常,则后续的文件访问请求定向到容错数据区的AF文件;当监测到恢复正常后,启动所述AF文件到所述NF文件的同步过程,完成一致性流程后,删除所述AF文件并清除所述NF文件的链接,系统恢复正常工作状态。
7.根据权利要求2~6中任意一项所述的高性能计算系统中数据输出故障容错方法,其特征在于,所述步骤S02中,还包括定位及打开文件的步骤,包括:
S2.1.1.根据监控信息判断所述普通空间的服务状态,如果正常则向普通空间元数据服务发查询请求,如果其中的NF文件处于“脏”状态,则确定对应的容错数据区,发送AF文件查询请求并返回查询结果,所述NF文件为正常文件,AF文件为发生故障时临时暂存文件;
S2.1.2.根据文件查询结果构建文件数据分布映射表,如果所述NF文件处于正常状态,则在所述文件数据分布映射表中增加一个表项,以指向全部文件数据空间;如果处于“脏”状态,则分别依次查询所述NF文件和所述AF文件,并根据查询结果在所述文件数据分布映射表中增加相应表项以分别指向不同的数据段,所述文件数据分布映射表根据元数据服务器返回的信息生成;
S2.1.3.构建文件访问必需的数据结构并将指针返回,完成文件打开请求。
8.根据权利要求2~6中任意一项所述的高性能计算系统中数据输出故障容错方法,其特征在于,所述步骤S02中,还包括写文件步骤,包括:
S2.2.1.根据写接口中起点位置、偏移量参数以及文件数据分布映射表,计算出目标数据所在的目的存储结点,然后向目的存储结点发送请求,启动正常写文件过程,存储结点返回成功则正常结束,如果存储结点返回错误码,转入步骤S2.2.2;
S2.2.2.判断返回的错误码的类型,若为非超时故障则将错误码直接返回给用户程序,若为服务超时故障则转入S2.3.3以进行容错处理;
S2.2.3.向元数据服务发文件容错请求,元数据服务首先定位容错数据区,并在所述容错数据区中查找是否存在对应的容错文件,如果存在则跳至S2.3.4;否则创建容错链接表,启动映射流程,在所述容错链接表中记录新分配的容错数据区存储结点和数据容错AF文件标识,并记录容错区域的起始位置;
S2.2.4.元数据服务查找所述AF文件,并将所述AF文件对应的存储结点返回;
S2.2.5.根据返回的新的元数据信息更新所述文件数据分布映射表,向新分配的存储结点发起写入数据流程;
S2.2.6.如果数据未写完返回步骤S2.2.1,否则将容错区域的结束位置发生给元数据服务结点,更新元数据容错链接表中的容错区域。
9.根据权利要求2~6中任意一项所述的高性能计算系统中数据输出故障容错方法,其特征在于,所述步骤S02中,还包括读文件步骤,包括:
S2.3.1.根据读接口中起点位置、偏移量参数以及文件打开时合成的文件数据分布映射表,计算出文件数据对应的存储结点,发送读请求,启动正常读文件过程,存储结点返回成功则正常结束,否则跳至S2.3.2;
S2.3.2.如果需要读取的数据在容错区域,则先读取数据,然后判断普通空间的存储结点是否正常,如果正常则启动一致性服务进程将数据同时写回普通空间,然后通知元数据服务删除容错链接表中的表项;
S2.3.3.把存储节点返回的数据复制到应用程序缓存,如果数据未读完返回步骤S2.3.1,否则读流程结束。
10.根据权利要求2~6中任意一项所述的高性能计算系统中数据输出故障容错方法,其特征在于,所述步骤S02后,还包括关闭文件步骤,包括:
S2.4.1.当需要关闭文件时,分别发送关闭请求给普通元数据服务和容错元数据服务进程;
S2.4.2.由所述普通元数据服务执行正常的关闭操作,所述容错元数据服务进程收到文件的关闭请求后,在元数据容错空间中查找所述容错链接表,判断当前文件是否发生过容错,转入步骤S2.4.3以启动AF文件消除过程;
S2.4.3.判断当前普通空间是否正常,如果依然故障则结束文件关闭流程,如果已经恢复正常,则锁定文件以使得为只读状态,同时发送请求给当前文件容错空间所在的目的结点,目的结点将数据内容传输到文件普通空间所在存储结点,将AF文件和NF文件合并以保证文件一致性,所述NF文件为正常文件,AF文件为发生故障时临时暂存文件;
S2.4.4在元数据结点清除所述容错链接表,同时解锁文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110400429.XA CN113076065B (zh) | 2021-04-14 | 2021-04-14 | 一种高性能计算系统中数据输出故障容错方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110400429.XA CN113076065B (zh) | 2021-04-14 | 2021-04-14 | 一种高性能计算系统中数据输出故障容错方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113076065A true CN113076065A (zh) | 2021-07-06 |
CN113076065B CN113076065B (zh) | 2022-12-09 |
Family
ID=76617830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110400429.XA Active CN113076065B (zh) | 2021-04-14 | 2021-04-14 | 一种高性能计算系统中数据输出故障容错方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113076065B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07306794A (ja) * | 1994-05-12 | 1995-11-21 | Mitsubishi Electric Corp | 分散システム及び分散システムの高信頼化方法 |
CN101075206A (zh) * | 2007-07-03 | 2007-11-21 | 北京控制工程研究所 | 基于链接表的软件主动容错方法 |
US20120117419A1 (en) * | 2010-10-28 | 2012-05-10 | Maxwell Technologies, Inc. | System, method and apparatus for error correction in multi-processor systems |
US20150074367A1 (en) * | 2013-09-09 | 2015-03-12 | International Business Machines Corporation | Method and apparatus for faulty memory utilization |
US20170300394A1 (en) * | 2016-04-14 | 2017-10-19 | Vmware, Inc. | Fault tolerance for containers in a virtualized computing environment |
CN110932880A (zh) * | 2018-09-20 | 2020-03-27 | 财团法人资讯工业策进会 | 容错移转装置及方法 |
-
2021
- 2021-04-14 CN CN202110400429.XA patent/CN113076065B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07306794A (ja) * | 1994-05-12 | 1995-11-21 | Mitsubishi Electric Corp | 分散システム及び分散システムの高信頼化方法 |
CN101075206A (zh) * | 2007-07-03 | 2007-11-21 | 北京控制工程研究所 | 基于链接表的软件主动容错方法 |
US20120117419A1 (en) * | 2010-10-28 | 2012-05-10 | Maxwell Technologies, Inc. | System, method and apparatus for error correction in multi-processor systems |
US20150074367A1 (en) * | 2013-09-09 | 2015-03-12 | International Business Machines Corporation | Method and apparatus for faulty memory utilization |
US20170300394A1 (en) * | 2016-04-14 | 2017-10-19 | Vmware, Inc. | Fault tolerance for containers in a virtualized computing environment |
CN110932880A (zh) * | 2018-09-20 | 2020-03-27 | 财团法人资讯工业策进会 | 容错移转装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113076065B (zh) | 2022-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7934262B1 (en) | Methods and apparatus for virus detection using journal data | |
US7882286B1 (en) | Synchronizing volumes for replication | |
US8335761B1 (en) | Replicating in a multi-copy environment | |
US8271447B1 (en) | Mirroring metadata in a continuous data protection environment | |
US9501542B1 (en) | Methods and apparatus for volume synchronization | |
US7191198B2 (en) | Storage operation management program and method and a storage management computer | |
US8868504B2 (en) | Database system with active standby and nodes | |
US8060714B1 (en) | Initializing volumes in a replication system | |
US7925633B2 (en) | Disaster recovery system suitable for database system | |
US6996674B2 (en) | Method and apparatus for a global cache directory in a storage cluster | |
US6678788B1 (en) | Data type and topological data categorization and ordering for a mass storage system | |
KR100983300B1 (ko) | 데이터 처리 시스템 내에서의 고장 복구 | |
US8108634B1 (en) | Replicating a thin logical unit | |
US6691209B1 (en) | Topological data categorization and formatting for a mass storage system | |
US7130868B2 (en) | File system for creating switched logical I/O paths for fault recovery | |
US7685385B1 (en) | System and method for satisfying I/O requests before a replica has been fully synchronized | |
US20110238625A1 (en) | Information processing system and method of acquiring backup in an information processing system | |
KR20060117505A (ko) | 비공유 공간 데이터베이스 클러스터에서 확장성 해싱을이용한 클러스터 로그 기반의 회복 방법 | |
US7624229B1 (en) | Spillover slot | |
US8145865B1 (en) | Virtual ordered writes spillover mechanism | |
US7386664B1 (en) | Method and system for mirror storage element resynchronization in a storage virtualization device | |
JP3887130B2 (ja) | 高可用性計算機システム及び同システムにおけるデータバックアップ方法 | |
US20190065433A1 (en) | Remote direct memory access | |
US10877674B2 (en) | Determining layout templates identifying storage drives | |
WO2017131749A1 (en) | Remote direct memory access |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |