CN105718355B - 基于在线学习的超级计算机结点故障主动容错方法 - Google Patents
基于在线学习的超级计算机结点故障主动容错方法 Download PDFInfo
- Publication number
- CN105718355B CN105718355B CN201610040662.0A CN201610040662A CN105718355B CN 105718355 B CN105718355 B CN 105718355B CN 201610040662 A CN201610040662 A CN 201610040662A CN 105718355 B CN105718355 B CN 105718355B
- Authority
- CN
- China
- Prior art keywords
- node
- failure
- calculating
- state
- service station
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/142—Reconfiguring to eliminate the error
- G06F11/1425—Reconfiguring to eliminate the error by reconfiguration of node membership
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明公开了一种基于在线学习的超级计算机结点故障主动容错方法,目的是解决系统级检查点方法存在容错开销大的缺陷。技术方案是对于构建的超级计算机系统,服务结点收集新的故障结点的历史状态数据,利用这些数据对结点故障行为进行集中式的在线学习,获得更新的故障预测器;各计算结点获取自己的状态数据,利用新的故障预测器预测自己是否即将故障,如果是,则对本结点上正在运行的应用进程实施进程迁移;然后,服务结点与计算结点均睡眠等待规定的主动容错时间间隔Δ,并继续新一轮的主动容错过程。采用本发明可以提前预测超级计算机结点故障并实施低开销的主动容错,解决了系统级检查点方法容错开销大的问题,提升了超级计算机系统的可用性。
Description
技术领域
本发明主要涉及超级计算机系统的容错方法,尤其指如何利用在线机器学习技术对超级计算机结点实施低开销的主动容错方法。
背景技术
超级计算机系统通过将众多的计算部件结合起来并行执行同一计算任务,从而能够大大减少大规模计算任务所需的执行时间。通常的超级计算机系统构成是一个或多个服务结点用于登录管理,众多的计算结点用于完成计算任务,服务结点和计算结点间通过监控管理网络互相通信,监控管理网用于超级计算机系统的维护与管理。服务结点上部署有监控系统,能够监控每个计算结点的运行情况;并部署有资源管理系统,用于为计算任务分配计算资源(如计算结点等)。计算结点间还通过高速互连网相连,高速互连网用于计算任务的进程间通信。在超级计算机系统上运行的计算任务多为并行应用程序,运行过程中通过产生若干进程分布在不同的计算结点上同时执行,这些进程间的通信多采用消息传递的方式。超级计算机系统的故障通常为Fail-Stop类型的故障,即在计算任务的执行过程中,一旦有故障发生,系统将终止相关计算任务的所有进程,其并行应用程序非正常退出。如果没有容错支持,一旦故障发生,前面的计算都前功尽弃,必须重新启动相关计算任务,从头开始执行。
应用需求的不断增长推动着超级计算机软硬件系统的不断发展,随着超级计算机系统规模日益庞大,众多的组成部件、低电压的工作模式、复杂的软硬件结构等,使得超级计算机系统的平均无故障时间(Mean Time Between Failure,MTBF)越来越短,可靠性问题日益突出。如果没有容错技术的支持,运行时间长、并行规模大的计算任务无法顺利完成。容错成为提高超级计算机系统可用性,保证计算任务顺利完成的重要方法。到目前为止,超级计算机系统采用的容错方法一直是被动容错,即在故障发生后对故障进行处理,使得计算任务能够从某个点恢复并继续运行。
系统级检查点恢复(Checkpoint/Restart)是目前超级计算机系统采用的主流容错方法,它是一种被动容错方法,其主要思想是通过周期性的检查点操作,为计算任务的每个进程保存全局一致的执行映像,并将映像保存到稳定介质上(如共享存储系统)。一旦发生故障,则通过检查点恢复操作从最近一次检查点映像文件恢复该计算任务的运行,将计算损失减小到最近一次完成检查点操作的时间点到故障发生时间点这段时间间隔内所作的计算,避免了从头开始执行计算任务。检查点恢复方法主要包括如下关键步骤:
(1)设置检查点周期:为计算任务设置相邻两次检查点操作之间的时间间隔。检查点周期的具体值与计算任务的并行规模和超级计算机系统的平均无故障时间密切相关。在计算任务的执行过程中,通常由MPI(Message Passing Interface,消息传递接口)系统负责计算任务的各个进程之间的消息传递。为了保证长时间运行的计算任务能够顺利执行完毕,需要在MPI系统中为计算任务设定检查点周期(即执行检查点操作的时间间隔),并使得在平均无故障时间间隔内能够执行多次检查点操作;
(2)生成全局检查点映像文件:一旦到达一个检查点周期,MPI系统则启动全局检查点操作,通知计算任务中的每个进程需要执行检查点操作,生成全局检查点映像文件,并将其保存到指定的位置。全局检查点操作的目标是保证每个进程生成的局部检查点映像文件满足全局一致性;
(3)每个进程生成局部检查点映像文件:计算任务中的每个进程在本地执行单进程检查点操作,生成本地进程的检查点映像,并将检查点映像文件保存到指定的位置;
(4)检查点恢复操作:一旦故障发生,MPI系统从指定位置获取计算任务的全局检查点和所有进程的局部检查点映像文件,将计算任务的所有进程从该检查点处恢复执行。
系统级检查点恢复方法是超级计算机系统采用的主要容错方法,但是这种方法的容错开销很大,主要表现在如下几个方面:
(1)存储开销大:采用系统级检查点,每个进程均要产生本进程的检查点映像文件,检查点映像文件的内容包括:该进程的进程代码段、数据段、用户栈、上下文切换相关信息、活动文件信息、与信号有关的信息等,每个进程产生的检查点映像文件规模较大,一般达到几十MB至数百MB。为了保证容错恢复时能够获取到每个进程的检查点映像文件,这些映像文件通常保存到全局共享存储系统中。因此每次检查点操作,计算任务的所有进程将同时访问全局共享存储系统,导致系统的存储开销很大。
(2)通信开销大:为了将检查点映像文件保存到全局共享存储系统中,各进程需要通过网络将检查点映像文件传输到全局共享存储系统,因此执行检查点操作会带来很大的通信开销;
(3)故障恢复时间长:一旦故障发生,资源管理系统需要为相关计算任务重新分配计算资源,加载作业,并利用检查点恢复操作恢复计算任务的运行,此时每个进程需要从全局共享存储系统获取检查点映像文件,存在大规模的全局共享存储系统的读操作和大规模数据的网络传输,存储和通信开销很大,导致故障恢复的时间长。
因此,由于系统级检查点方法在执行检查点操作和故障恢复操作时存在大规模的文件集中传输和读写操作,存储和通信开销大,使得这种被动容错方法的开销很大。在超级计算机系统规模不是很大时,系统的平均无故障时间MTBF较长,执行检查点操作的时间间隔可设置得较长,而且单进程检查点映像文件的数目不是很多,使得容错开销占超级计算机系统整体运行时间的比例较小,系统级检查点不会严重影响到超级计算机系统的可用性。随着并行应用规模的不断增大,超级计算机系统的规模日益增加,目前国际上已经出现多套计算能力达每秒千万亿次浮点操作(Peta-Flops)的超级计算机系统,计算能力达百万万亿次浮点操作(Exa-Flops)的超级计算机系统也正在研制过程中。超级计算机系统规模的扩大使得系统的平均无故障时间大大缩短,执行检查点操作的时间间隔也相应大大缩小。在当前的千万亿次系统中,执行一次系统级检查点开销需十几分钟。专家预计未来百万万亿次计算机系统的平均无故障时间仅为几十分钟,为了保证大规模计算任务的持续运行,采用系统级检查点方法由于容错开销太大,已经难以满足未来超级计算机系统可用性的需求。
所以,现有的系统级检查点方法由于存储和通信的数据量大,导致容错开销很大,已经严重影响到目前千万亿次超级计算机系统的可用性,在未来的百万万亿次系统中更是难以应用。为了保证未来的超级计算机系统可用易用,容错成为目前超级计算机系统研制过程中亟待解决的问题。
发明内容
本发明要解决的技术问题是针对系统级检查点方法存在容错开销大的缺陷,提出基于在线学习的超级计算机结点故障主动容错方法。与传统的被动容错方法不同,主动容错是根据系统状态预测故障的发生,并在故障发生之前对可能的故障采取进程迁移等低开销的容错方式,从而减低整个系统的容错开销。本发明采用集中式在线故障行为学习和分布式故障预测与进程迁移相结合的主动容错方式,即服务结点对新收集到的计算结点的状态样本进行集中式的在线学习,将学习后获得的故障预测器(在线学习得到的学习结果)发送给每个计算结点;每个计算结点获取自身的状态信息,利用故障预测器对本结点状态信息进行故障预测,根据预测结果确定是否进行容错处理。由于大多数超级计算机系统的计算结点并没有本地盘,因此本方法考虑每个计算结点除了保存自身的状态信息外,还在计算结点间采用互相备份的方式保存备份结点的状态信息,当某一结点发生故障,其备份结点负责将故障结点的历史状态信息反馈给服务结点,以便对故障预测器进行增量式的在线更新。
本发明的具体技术方案如下:
第一步:构建超级计算机系统:构建具有一个服务结点和m个计算结点的超级计算机系统,计算结点的编号分别为c1,c2,…,cm,服务结点和m个计算结点间通过监控管理网络互连。在服务结点上部署监控系统与资源管理系统,监控系统负责监控各计算结点的运行情况,资源管理系统负责为计算任务分配计算资源。
第二步:系统启动并进行参数初始化:
2.1服务结点启动,并进行参数初始化:
2.1.1令运行正常的计算结点集合NS(Normal Set)和处于故障状态的计算结点集合FS(Fault Set)为空集;
2.1.2从监控系统获取运行正常的计算结点,将运行正常的计算结点放到集合NS;
2.1.3从监控系统获取处于故障状态的计算结点,将处于故障状态的计算结点放到集合FS;
2.1.4设定主动容错时间间隔Δ,Δ的值可设置在30秒至10分钟之间,缺省值为1分钟;
2.1.5初始化故障预测器:Ψ=NULL;
2.1.6初始化迁移结点请求队列RQ为空,RQ用于接收计算结点发送过来的申请迁移结点的请求;
2.1.7为NS中的每个计算结点分配备份结点,并将分配结果发送给NS中的计算结点。
2.2计算结点启动,相互独立并行地完成参数初始化,其中计算结点Ci(Ci∈NS)执行如下步骤:
2.2.1设定即将故障的时间段长度δ,在故障预测过程中,若预测结果小于等于δ,表示计算结点即将故障;若预测结果大于δ,则表示计算结点的状态正常。δ的取值为1分钟至30分钟之间,缺省值为30分钟;
2.2.2设定计算结点状态数据队列的长度Len,Len的取值范围为[120,360],缺省值为240;
2.2.3创建计算结点状态数据队列Q,用于保存计算结点的历史状态数据,队列Q中每条记录的内容形式为((s1,s2,…,sn),t),表示计算结点在t时刻的状态为(s1,s2,…,sn),其中si(1≤i≤n)为一个状态变量,如CPU温度、风扇转速等,n为状态变量的个数。队列Q的长度为Len条状态记录的长度;
2.2.4从服务结点获取计算结点Ci的备份结点,记备份结点的编号为C iB;
2.2.5设定主动容错时间间隔Δ,Δ的值可设置在30秒至10分钟之间,其缺省值为1分钟;
第三步:集中式在线故障行为学习:
3.1服务结点从监控系统获得m个计算结点的最新运行情况,对于新的故障结点,从它们的备份计算结点得到它们的历史状态数据,并对这些数据进行增量式的在线学习,获得新的故障预测器:
3.1.1检测集合FS中各计算结点的运行情况:令FS中已经正常运行的计算结点集合为AS,将AS中的结点从故障结点集FS中删除,然后将AS中的结点加入正常结点集NS中,即:FS=FS-AS,NS=NS∪AS;
3.1.2检测集合NS中各计算结点的运行情况:令NS中已经处于故障状态的计算结点集合为BS,将BS中的结点从NS中删除,然后将BS中的结点加入故障结点集FS中,即:NS=NS-BS,FS=FS∪BS。如果转第四步;否则执行第3.1.3步;
3.1.3为BS中的每个故障结点分配一个备用结点,令BS对应的备用结点集合为CS,将BS与CS发送至NS中的所有计算结点;
3.1.4接收BS中各故障结点的备份结点发送过来的故障结点的历史状态数据,生成增量样本集TD。对接收到的历史状态记录((s1,s2,…,sn),t),其对应在TD中的样本为((s1,s2,…,sn),τ),其中(s1,s2,…,sn)为故障计算结点在t时刻的状态,τ为该计算结点在状态为(s1,s2,…,sn)的t时刻距离后续实际故障发生时刻的时间间隔;
3.1.5采用集中式在线学习方法对增量样本集TD中的样本数据进行学习,更新故障预测器:
Ψ=Learn(TD,Ψ)
其中函数Learn(TD,Ψ)表示在已有的学习结果Ψ的基础上,利用数据集TD对Ψ进行增量式在线学习。若函数Learn(TD,Ψ)中的Ψ满足Ψ=NULL,则表示直接对数据集TD进行学习。Learn函数可以是任意已有的增量式在线学习算法的具体实现。
3.1.6将更新后的预测器Ψ发送至各个计算结点。
3.2NS中的所有计算结点并行地从服务结点接收新的故障结点集及其对应的备用结点集,新的故障结点的备份结点将这些故障结点的历史状态数据发送给服务结点,并对历史状态数据进行更新与备份;然后从服务结点接收新的故障预测器。其中,计算结点Ci(Ci∈NS)执行如下步骤:
3.2.1接收服务结点发送过来的故障结点集BS及其对应的备用结点集CS;
3.2.2如果Ci是BS中某故障结点的备份结点,则向服务结点发送该故障结点的历史状态数据(即备份在Ci上的故障结点的状态数据队列的内容);
3.2.3如果BS中某一故障结点F是本地结点Ci的备份结点,则找到故障结点F对应在CS中的备用结点,并将F的备用结点作为计算结点Ci的备份结点,记为CiB,然后将本地结点Ci的历史状态数据(即状态数据队列Q中的内容)备份到结点CiB上;
3.2.4从服务结点接收新的故障预测器,仍用Ψ表示;
第四步:分布式故障预测与进程迁移:
4.1NS中的各计算结点并行地获得自身的运行状态信息,利用故障预测器进行故障预测和预测结果处理,如果预测本结点即将故障,则实施进程迁移,如果预测本结点状态正常,则不实施进程迁移。其中,计算结点Ci(Ci∈NS)执行如下步骤:
4.1.1获取本地结点Ci的最新状态记录(S,t),其中S为结点Ci的当前运行状态,内容用一个状态向量表示,即S=(s1,s2,…,sn),t为获取状态S的时间;
4.1.2将状态记录(S,t)保存在本地结点上:将当前状态记录(S,t)保存到本地结点Ci的状态队列Q中,若保存的状态记录的数目超过队列长度Len,则在[0,Len-1]区间内取一个随机数z,按进入队列Q的顺序删除第z个进入队列Q中的状态记录;
4.1.3令本地结点Ci的备份结点为CiB,将状态数据队列Q备份到结点CiB上;
4.1.4利用故障预测器对本地结点Ci的状态S进行故障预测,预测结果PR=Predict(Ψ,S),Predict(Ψ,S)函数是指利用故障预测器Ψ对状态S进行预测。如果预测结果PR>δ,则表明结点状态正常,转第五步;否则表明本地结点即将故障,执行第4.1.5步;
4.1.5如果Ci上无计算任务,则转第五步;如果有计算任务在运行,则转第4.1.6步;
4.1.6计算结点Ci向服务结点发送申请迁移结点的请求;
4.1.7从服务结点接收迁移结点的标识号Cr;
4.1.8实施进程迁移,将在本地结点上运行的计算任务的应用进程迁移至结点Cr上运行;
4.2服务结点接收来自计算结点的申请迁移结点的请求,根据请求分配迁移结点,并将分配的迁移结点标识号发送给提交申请的计算结点:
4.2.1检测申请迁移结点的请求队列RQ,如果请求队列为空,则转第五步;如果请求队列不为空,则转第4.2.2步;
4.2.2从请求队列RQ中取出最先进入队列中的请求,若其为计算结点Ci发送来请求,则为计算结点Ci分配迁移结点Cr;并将迁移结点Cr的标识号发送给提出申请的计算结点Ci,然后转4.2.1步;
第五步:服务结点与计算结点均睡眠等待规定的主动容错时间间隔Δ,然后转第三步,继续新一轮的主动容错过程。
与现有的被动容错技术相比,本发明可达到以下技术效果:
(1)可以提前预测结点级故障。本发明主要用于预测结点级故障,即在计算结点发生故障之前预测到故障即将发生。本发明利用增量式在线学习方法不仅能够提前定位结点故障,而且为故障的处理赢得了宝贵的时间,使得容错的过程不必被动地等到故障发生以后再做相应的处理,而是在故障发生之前主动实施容错。
(2)主动容错的开销小。由于提前定位了可能发生故障的计算结点,容错过程仅需针对即将发生故障且上面有计算任务的结点展开,即仅对这些结点实施进程迁移(见第四步)。相比传统的被动容错方法,本发明中需要实施进程迁移的结点数目少,容错过程的存储量和通信量都很小,从而大大降低了容错开销。
(3)结合传统的被动容错方法,能够大幅度提升超级计算机系统的可用性。将本发明中的主动容错方法与传统的被动容错方法相结合,由于大部分的故障能够通过主动容错解决,只有无法预测到的故障需要利用被动容错的方法解决。这样可以加大系统级检查点的时间间隔,大大减少实施被动容错的次数,使系统的整体容错开销大大降低,从而能够大幅度提升超级计算机系统的可用性。
附图说明
图1是传统的系统级检查点恢复方法的实施效果示意图;
图2是本发明总体流程图;
图3是本发明第一步构建的超级计算机系统示意图;
图4是本发明的第三步“集中式在线故障行为学习”的详细流程图;
图5是本发明的第四步“分布式故障预测与进程迁移”的详细流程图;
图6是本发明的实施效果示意图。
具体实施方式
图1是采用传统系统级检查点恢复方法(杜云飞容错并行算法的研究与分析,国防科学技术大学,博士论文,2008,7-12页,30-32页)各计算结点执行效果示意图,Tc是执行一次系统级检查点所需的时间,Trc是一次故障的恢复时间。图中无阴影的部分为系统执行计算任务的时间。假设叉形位置为故障发生的时间点,三角形位置为故障恢复后程序继续执行的位置。以千万亿次超级计算机系统“天河一号”为例,系统的平均无故障时间MTBF为数小时,而执行一次系统级检查点所需的时间Tc已经达到十几分钟,执行故障恢复所需的时间Trc比Tc稍长。由于在平均无故障时间间隔内需要执行数次检查点操作,因此在MTBF时间段内,执行被动容错(包括执行系统级检查点和故障后的检查点恢复操作)需占用一个多小时,这导致超级计算机系统有很大一部分时间在执行被动容错的工作,使得实际可用性能大幅度降低。专家预计未来百万万亿次计算机系统的平均无故障时间仅为几十分钟,被动容错将无法满足未来百万万亿次超级计算机系统可用性的需求。
图2是本发明的总体流程图。具体实施如下:
第一步、构建超级计算机系统;
第二步、系统启动,参数初始化;
第三步、集中式在线故障行为学习;
第四步、分布式故障预测与进程迁移;
第五步、睡眠等待主动容错时间间隔Δ,然后转第三步,开始新一轮的主动容错过程。
图3是本发明第一步构建的超级计算机系统示意图,超级计算机系统由一个服务结点和m个计算结点构成,计算结点间通过高速互连网相连,高速互连网用于计算任务的进程间通信;服务结点与各计算结点通过监控管理网相连,监控管理网用于超级计算机系统的监控与管理。服务结点上部署有监控系统和资源管理系统,监控系统负责监控各计算结点的运行状况,判定计算结点是正常运行还是已经故障,资源管理系统负责为计算任务分配可用的计算结点。
图4是本发明的第三步“集中式在线故障行为学习”的详细流程图。其中第3.1步是服务结点的工作,先从监控系统获得各计算结点的运行情况,对于新的故障结点,从它们的备份结点得到它们的历史状态记录,形成增量样本集,并对这些增量样本进行在线学习,获得新的故障预测器。具体实施如下:
3.1.1检测故障结点集合FS,将已恢复正常的结点转入正常结点集NS中;
3.1.2检测正常结点集合NS,将新的已故障结点转入故障结点集FS中;如果没有新的故障结点,则转第四步;否则,执行第3.1.3步;
3.1.3为新的已故障结点分配备用结点,并将它们发送给计算结点;
3.1.4接收故障结点的历史状态数据,生成新的增量样本集;
3.1.5对新的增量样本集进行集中式在线式学习,获得新的故障预测器;
3.1.6将新的故障预测器发送给各个计算结点。
第三步中的第3.2步是计算结点的工作,负责从服务结点接收新的故障结点信息,将这些故障结点的历史状态数据发送给服务结点,并对计算结点间的状态备份关系进行更新;然后从服务结点接收新的故障预测器。具体实施如下:
3.2.1接收服务结点发来的故障结点及其备用结点信息;
3.2.2如果本地结点是某个故障结点的备份结点,则向服务结点发送该故障结点的历史状态数据;
3.2.3如果某个故障结点是本地结点的备份结点,则该故障结点的备用结点成为本地结点的备份结点,将本地结点的历史状态数据备份到新的备份结点上;
3.2.4从服务结点获得新的故障预测器。
图5是本发明的第四步“分布式故障预测与进程迁移”的详细流程图。其中第4.1步是计算结点的工作,负责获得自身的状态信息,并利用故障预测器对状态进行故障预测,如果预测结果表明本结点即将故障,则实施进程迁移。具体实施如下:
4.1.1获取本地结点的状态记录(S,t);
4.1.2本地结点的状态记录保存;
4.1.3本地结点的状态数据备份;
4.1.4利用故障预测器对结点状态S进行故障预测,如果预测结果表明结点正常,则转第五步;否则执行第4.1.5步;
4.1.5查看本地结点上是否有计算任务,如果无计算任务,则转第五步;否则执行第4.1.6步;
4.1.6向服务结点发送申请迁移结点的请求;
4.1.7从服务结点接收迁移结点号Cr;
4.1.8将在本地结点上运行的计算任务的应用进程迁移至Cr上运行。
第四步中的第4.2步是服务结点的工作,负责接收即将故障的计算结点发送的申请迁移结点的请求,然后分配迁移结点并将其发送给提出申请的计算结点。具体实施如下:
4.2.1检测申请迁移结点的请求队列RQ,如果请求队列为空,则转第五步;如果请求队列不为空,则转第4.2.2步;
4.2.2取出最先进入队列RQ中的请求,分配迁移结点Cr,并将其发送至发送该请求的计算结点,然后转第4.2.1步。
图6是本发明中各计算结点执行情况示意图。Tp是执行一次故障预测所需的时间,Trp是某个计算结点预测到故障并实施一次进程迁移对整个应用的影响时间。图中无阴影部分为计算结点执行计算任务的时间。根据在天河一号系统上的测试结果,执行一次故障预测所需的时间Tp为十毫秒级,执行一次进程迁移所需的时间Trp为秒级。因此对于平均无故障时间间隔MTBF为数小时的超级计算机,在MTBF时间段内,按主动容错时间间隔为缺省值1分钟计算,计算结点花在主动容错上的时间(包括MTBF时间段内执行故障估测的时间和进程迁移的时间)仅为秒级。由此可见,对大部分可预测的故障实施低开销的主动容错,小部分不可预测的故障才使用被动容错,可以显著降低容错的整体开销。因此本发明能够显著提高超级计算机系统的实际应用性能。
Claims (4)
1.一种基于在线学习的超级计算机结点故障主动容错方法,其特征在于包括以下步骤:
第一步:构建超级计算机系统:构建具有一个服务结点和m个计算结点的超级计算机系统,计算结点的编号分别为C1,C2,…,Cm,服务结点和m个计算结点间通过监控管理网络互连;在服务结点上部署监控系统与资源管理系统,监控系统负责监控各计算结点的运行情况,资源管理系统负责为计算任务分配计算资源;
第二步:系统启动并进行参数初始化:
2.1服务结点启动,并进行参数初始化:
2.1.1令运行正常的计算结点集合NS和处于故障状态的计算结点集合FS为空集;
2.1.2从监控系统获取运行正常的计算结点,将运行正常的计算结点放到集合NS;
2.1.3从监控系统获取处于故障状态的计算结点,将处于故障状态的计算结点放到集合FS;
2.1.4设定主动容错时间间隔Δ;
2.1.5初始化故障预测器:Ψ=NULL;
2.1.6初始化迁移结点请求队列RQ为空,RQ用于接收计算结点发送过来的申请迁移结点的请求;
2.1.7为NS中的每个计算结点分配备份结点,将分配结果发送给NS中的计算结点;
2.2计算结点启动,相互独立并行地完成参数初始化,其中计算结点Ci执行如下步骤,Ci∈NS:
2.2.1设定即将故障的时间段长度δ,在故障预测过程中,若预测结果小于等于δ,表示计算结点即将故障;若预测结果大于δ,则表示计算结点的状态正常;
2.2.2设定计算结点状态数据队列的长度Len;
2.2.3创建计算结点状态数据队列Q,用于保存计算结点的历史状态数据,队列Q中每条记录的内容形式为((s1,s2,…,sn),t),表示计算结点在t时刻的状态为(s1,s2,…,sn),其中si(1≤i≤n)为一个状态变量,n为状态变量的个数;
2.2.4从服务结点获取计算结点Ci的备份结点,记备份结点的编号为CiB;
2.2.5设定主动容错时间间隔Δ;
第三步:集中式在线故障行为学习:
3.1服务结点从监控系统获得m个计算结点的最新运行情况,对于新的故障结点,从它们的备份计算结点得到它们的历史状态数据,并对这些数据进行增量式的在线学习,获得新的故障预测器:
3.1.1检测集合FS中各计算结点的运行情况:令FS中已经正常运行的计算结点集合为AS,将AS中的结点从故障结点集FS中删除,然后将AS中的结点加入正常结点集NS中,即:FS=FS-AS,NS=NS∪AS;
3.1.2检测集合NS中各计算结点的运行情况:令NS中已经处于故障状态的计算结点集合为BS,将BS中的结点从NS中删除,然后将BS中的结点加入故障结点集FS中,即:NS=NS-BS,FS=FS∪BS;如果转第四步;否则执行第3.1.3步;
3.1.3为BS中的每个故障结点分配一个备用结点,令BS对应的备用结点集合为CS,将BS与CS发送至NS中的所有计算结点;
3.1.4接收BS中各故障结点的备份结点发送过来的故障结点的历史状态数据,生成增量样本集TD;对接收到的历史状态记录((s1,s2,…,sn),t),其对应在TD中的样本为((s1,s2,…,sn),τ),其中(s1,s2,…,sn)为故障计算结点在t时刻的状态,τ为该计算结点在状态为(s1,s2,…,sn)的t时刻距离后续实际故障发生时刻的时间间隔;
3.1.5采用集中式在线学习方法对增量样本集TD中的样本数据进行学习,更新故障预测器:
Ψ=Learn(TD,Ψ)
其中函数Learn(TD,Ψ)表示在已有的学习结果Ψ的基础上,利用数据集TD对Ψ进行增量式在线学习,若函数Learn(TD,Ψ)中的Ψ满足Ψ=NULL,则表示直接对数据集TD进行学习,Learn函数是任意已有的增量式在线学习算法的具体实现;
3.1.6将更新后的预测器Ψ发送至各个计算结点;
3.2NS中的所有计算结点并行地从服务结点接收新的故障结点集及其对应的备用结点集,新的故障结点的备份结点将这些故障结点的历史状态数据发送给服务结点,并对历史状态数据进行更新与备份;然后从服务结点接收新的故障预测器Ψ;
第四步:分布式故障预测与进程迁移:
4.1NS中的各计算结点并行地获得自身的运行状态信息,利用故障预测器进行故障预测和预测结果处理,计算结点Ci执行如下步骤:
4.1.1获取本地结点Ci的最新状态记录(S,t),其中S为结点Ci的当前运行状态,内容用一个状态向量表示,即S=(s1,s2,…,sn),t为获取状态S的时间;
4.1.2将状态记录(S,t)保存在本地结点上:将当前状态记录(S,t)保存到本地结点Ci的状态队列Q中,若保存的状态记录的数目超过队列长度Len,则在[0,Len-1]区间内取一个随机数z,按进入队列Q的顺序删除第z个进入队列Q中的状态记录;
4.1.3令本地结点Ci的备份结点为CiB,将状态数据队列Q备份到结点CiB上;
4.1.4利用故障预测器对本地结点Ci的状态S进行故障预测,预测结果PR=Predict(Ψ,S),Predict(Ψ,S)函数是指利用故障预测器Ψ对状态S进行预测;如果预测结果PR>δ,则表明结点状态正常,转第五步;否则表明本地结点即将故障,执行第4.1.5步;
4.1.5如果Ci上无计算任务,则转第五步;如果有计算任务在运行,则转第4.1.6步;
4.1.6计算结点Ci向服务结点发送申请迁移结点的请求;
4.1.7从服务结点接收迁移结点的标识号Cr;
4.1.8实施进程迁移,将在本地结点上运行的计算任务的应用进程迁移至结点Cr上运行;;
4.2服务结点接收来自计算结点的申请迁移结点的请求,根据请求分配迁移结点,并将分配的迁移结点标识号发送给提交申请的计算结点:
4.2.1检测申请迁移结点的请求队列RQ,如果请求队列为空,则转第五步;如果请求队列不为空,则转第4.2.2步;
4.2.2从请求队列RQ中取出最先进入队列中的请求,若其为计算结点Ci发送来请求,则为计算结点Ci分配迁移结点Cr;并将迁移结点Cr的标识号发送给提出申请的计算结点Ci,然后转4.2.1步;
第五步:服务结点与计算结点均睡眠等待规定的主动容错时间间隔Δ,然后转第三步,继续新一轮的主动容错过程。
2.如权利要求1所述的基于在线学习的超级计算机结点故障主动容错方法,其特征在于所述Δ的值设置在30秒至10分钟之间;所述δ的取值为1分钟至30分钟之间,所述Len的取值范围为[120,360]。
3.如权利要求2所述的基于在线学习的超级计算机结点故障主动容错方法,其特征在于所述Δ的值设置为1分钟,所述δ的值为30分钟,所述Len取值为240。
4.如权利要求1所述的基于在线学习的超级计算机结点故障主动容错方法,其特征在于所述3.2步中计算结点Ci执行如下步骤:
3.2.1接收服务结点发送过来的故障结点集BS及其对应的备用结点集CS;
3.2.2如果Ci是BS中某故障结点的备份结点,则向服务结点发送该故障结点的历史状态数据;
3.2.3如果BS中某一故障结点F是本地结点Ci的备份结点,则找到故障结点F对应在CS中的备用结点,并将F的备用结点作为计算结点Ci的备份结点,记为CiB,然后将本地结点Ci的历史状态数据备份到结点CiB上;
3.2.4从服务结点接收新的故障预测器,仍用Ψ表示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610040662.0A CN105718355B (zh) | 2016-01-21 | 2016-01-21 | 基于在线学习的超级计算机结点故障主动容错方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610040662.0A CN105718355B (zh) | 2016-01-21 | 2016-01-21 | 基于在线学习的超级计算机结点故障主动容错方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105718355A CN105718355A (zh) | 2016-06-29 |
CN105718355B true CN105718355B (zh) | 2018-02-16 |
Family
ID=56153716
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610040662.0A Active CN105718355B (zh) | 2016-01-21 | 2016-01-21 | 基于在线学习的超级计算机结点故障主动容错方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105718355B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106383995B (zh) * | 2016-09-05 | 2018-08-07 | 南京臻融软件科技有限公司 | 一种基于节点失效关联性的检查点放置方法 |
CN108241555B (zh) * | 2016-12-26 | 2022-03-01 | 阿里巴巴集团控股有限公司 | 一种分布式数据库的备份、恢复方法、装置和服务器 |
CN109213627B (zh) * | 2017-07-03 | 2021-10-22 | 宏碁股份有限公司 | 容错操作方法与使用此方法的电子装置 |
CN109831342A (zh) * | 2019-03-19 | 2019-05-31 | 江苏汇智达信息科技有限公司 | 一种基于分布式系统的故障恢复方法 |
CN111124720B (zh) * | 2019-12-26 | 2021-05-04 | 江南大学 | 一种自适应的检查点间隔动态设置方法 |
CN111459738B (zh) * | 2020-03-30 | 2023-06-30 | 中国人民解放军国防科技大学 | 基于fail-slow模型的并行存储系统故障诊断方法及系统 |
CN112115967B (zh) * | 2020-08-06 | 2023-08-01 | 中山大学 | 一种基于数据保护的图像增量学习方法 |
CN112363971A (zh) * | 2020-11-10 | 2021-02-12 | 王志平 | 一种超级计算机架构实现方法 |
WO2022150995A1 (zh) * | 2021-01-13 | 2022-07-21 | 王志平 | 一种超级计算机架构实现方法 |
CN113076239B (zh) * | 2021-04-12 | 2023-05-23 | 西安交通大学 | 一种高性能计算机用混合神经网络故障预测方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102662831A (zh) * | 2012-03-20 | 2012-09-12 | 中国人民解放军国防科学技术大学 | 一种容错系统诊断策略优化方法 |
CN102880522A (zh) * | 2012-09-21 | 2013-01-16 | 中国人民解放军国防科学技术大学 | 面向硬件故障的系统关键文件故障纠正方法及装置 |
CN103473162A (zh) * | 2013-09-25 | 2013-12-25 | 浪潮电子信息产业股份有限公司 | 一种基于软件故障注入的可靠性评测系统设计方法 |
CN104679907A (zh) * | 2015-03-24 | 2015-06-03 | 新余兴邦信息产业有限公司 | 高可用高性能数据库集群的实现方法及系统 |
-
2016
- 2016-01-21 CN CN201610040662.0A patent/CN105718355B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102662831A (zh) * | 2012-03-20 | 2012-09-12 | 中国人民解放军国防科学技术大学 | 一种容错系统诊断策略优化方法 |
CN102880522A (zh) * | 2012-09-21 | 2013-01-16 | 中国人民解放军国防科学技术大学 | 面向硬件故障的系统关键文件故障纠正方法及装置 |
CN103473162A (zh) * | 2013-09-25 | 2013-12-25 | 浪潮电子信息产业股份有限公司 | 一种基于软件故障注入的可靠性评测系统设计方法 |
CN104679907A (zh) * | 2015-03-24 | 2015-06-03 | 新余兴邦信息产业有限公司 | 高可用高性能数据库集群的实现方法及系统 |
Non-Patent Citations (2)
Title |
---|
硬件故障在程序中的传播行为分析及容错技术研究;徐新海;《中国博士学位论文全文数据库 信息科技辑》;20140415;全文 * |
面向高效能计算的大规模资源管理技术研究与实现;卢宇彤;《中国博士学位论文全文数据库 信息科技辑》;20100415;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN105718355A (zh) | 2016-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105718355B (zh) | 基于在线学习的超级计算机结点故障主动容错方法 | |
US11556438B2 (en) | Proactive cluster compute node migration at next checkpoint of cluster upon predicted node failure | |
Soualhia et al. | Infrastructure fault detection and prediction in edge cloud environments | |
US10073739B2 (en) | Methods, apparatus and system for selective duplication of subtasks | |
Garraghan et al. | Emergent failures: Rethinking cloud reliability at scale | |
Liu et al. | Software rejuvenation based fault tolerance scheme for cloud applications | |
Jones et al. | Application monitoring and checkpointing in hpc: looking towards exascale systems | |
CN105659562A (zh) | 利用簇中并行性进行容障处理 | |
CN107506261B (zh) | 适应cpu、gpu异构集群的级联容错处理方法 | |
CN110190991B (zh) | 一种多应用场景下的分布式流处理系统的容错方法 | |
Levitin et al. | Heterogeneous 1-out-of-N warm standby systems with online checkpointing | |
Yang et al. | Computing at massive scale: Scalability and dependability challenges | |
CN108647137A (zh) | 一种作业性能预测方法、装置、介质、设备及系统 | |
CN106875018B (zh) | 一种超大规模机器自动化维修的方法和装置 | |
WO2023165512A1 (zh) | 一种故障文件保存方法及相关装置 | |
Mesbahi et al. | Cloud dependability analysis: Characterizing Google cluster infrastructure reliability | |
Alonso et al. | Optimal resource allocation in a virtualized software aging platform with software rejuvenation | |
CN106383995B (zh) | 一种基于节点失效关联性的检查点放置方法 | |
Dohi et al. | Software rejuvenation: modeling and applications | |
Paing et al. | Stochastic reward nets model for time based software rejuvenation in virtualized environment | |
US20240037014A1 (en) | Prediction of an anomaly of a resource for programming a checkpoint | |
Agarwal et al. | Fault Tolerance in Cloud: A Brief Survey | |
Jia et al. | Towards proactive fault management of enterprise systems | |
Anand et al. | Modelling, implementation and testing of an effective fault tolerant multiprocessor real-time system | |
CN110334813A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |