CN105930223A - 一种减少检查点文件大小的方法 - Google Patents

一种减少检查点文件大小的方法 Download PDF

Info

Publication number
CN105930223A
CN105930223A CN201610257288.XA CN201610257288A CN105930223A CN 105930223 A CN105930223 A CN 105930223A CN 201610257288 A CN201610257288 A CN 201610257288A CN 105930223 A CN105930223 A CN 105930223A
Authority
CN
China
Prior art keywords
check point
point file
program
content
file
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
Application number
CN201610257288.XA
Other languages
English (en)
Inventor
孙建华
陈政宇
刘俊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hunan University
Original Assignee
Hunan University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hunan University filed Critical Hunan University
Priority to CN201610257288.XA priority Critical patent/CN105930223A/zh
Publication of CN105930223A publication Critical patent/CN105930223A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Retry When Errors Occur (AREA)

Abstract

本发明涉及容错技术中检查点技术领域,提出了一种减少检查点文件大小的方法。该方法是根据检查点文件中存储内容的冗余性,采取不同的策略来达到最大限度的减少检查点文件大小的目的。本发明将设置检查点的程序分为两类:单节点程序和分布式程序。图一显示了本发明在分布式程序中的原理示意图。在进行设置检查点的时对于单节点程序和分布式程序采取如下方法:对单节点程序中的栈段采取Gzip压缩+重复数据删除的方法;在分布式程序中,堆栈段采取Gzip压缩+重复数据删除的方法,代码段、动态链接库以及同一节点上的共享内存采取只存储一份内容到其中一个节点的检查点中,而其余的检查点文件只存储该内容索引的方法。

Description

一种减少检查点文件大小的方法
技术领域
本发明涉及容错技术中检查点技术领域,特别是涉及减少检查点文件的大小。具体涉及通过对检查点文件中具体内容的冗余性来制定不同的策略,最终通过消除检查点文件中的冗余数据来达到减少检查点文件大小的方法。
背景技术
随着计算机硬件水平的不断提高,促进了高性能计算不断的向前发展。而随着机群系统的规模越来越大,机群系统发生故障的概率也不断的上升。对于分布式系统和高性能计算来说,一个节点发生了故障将导致整个任务运行失败。这将带来巨大的资源浪费,因此容错技术已经成为避免造成资源的巨大浪费的不可或缺的需求。
在分布式系统和高性能计算中,检查点技术是提供错误容忍的一个很重要的方式。检查点技术是指在程序正常运行时,通过每隔一段时间进行设置检查点,将程序正常运行的状态信息保存到稳定的存储设备中,如果此程序在接下来的运行过程中发生了故障,那么可以从存储设备中读取前一个检查点保存的检查点文件中的状态信息,使其卷回恢复继续正确执行。然而随着计算规模的增大,检查点的文件大小也会变大,同时也会频繁的进行设置检查点。例如在1000个节点中,每个节点需要存储1GB的内存空间,那么每次设置检查点将消耗1TB的存储空间,这将会给存储的可扩展性带来严峻的挑战。
目前减少检查点文件的大小主要有四个方法:增量检查点,内存排除,检查点压缩,重复数据删除。增量检查点通过仅仅保存内存中改变过的内容来达到减少检查点文件的目的。在恢复阶段,程序状态的信息通过获取增量检查点文件和最近一次保存的完全检查点文件来进行恢复。内存排除是指通过跳过临时或者未使用的缓存区来减少检查点文件的大小。而检查点压缩则是最普遍使用的方法,它是先将程序的状态信息进行压缩之后在保存到检查点文件中。重复数据删除技术是目前主流的存储技术,它通过删除数据集中重复的数据,只保留其中一份,从而消除冗余数据。在重复数据删除技术中,首先是将数据文件分割为一组数据块,为每个数据块计算指纹,然后以指纹为关键字进行Hash查找,匹配则表示该数据块为重复数据块,仅存储数据块索引号,否则则表示该数据块是一个新的唯一块,对数据块进行存储并创建相关的元信息。这样,当进行读取文件时,首先读取所有块的元信息,根据元信息找到对应块的内容,最后还原数据文件。这种技术可以很大程度上减少对物理存储空间的需求,从而满足日益增长的数据存储需求。
在进程地址空间中一般会涉及到5个不同的数据段,这5个数据段分别是:代码段、数据段、BSS段、堆、栈。有研究对进程的地址空间内容进程了实验分析[1],结果显示了栈段中具有较高的冗余数据,而代码段、数据段、BSS段、堆则具有较高的压缩率。这就给减少检查点文件的大小提供了一个有效的方法。
发明内容
本发明针对检查点文件中不同数据内容的冗余性来采取不同的处理方法,最终能够最大程度的减少检查点文件的大小。
本发明将应用程序分为两类:单节点程序和分布式程序。图一显示了本发明在分布式程序中的原理示意图。本发明在单节点程序和分布式程序在使用检查点技术时所采取的策略如下:
1)在单节点程序中,对进程地址空间中的栈段采取重复数据删除和Gzip压缩的方法,对于其他需要存储的部分均采用Gzip压缩的方法。
2)在分布式程序中,由于不同进程间的堆、栈段之间的冗余率比较大,对于堆、栈段采取重复数据删除和Gzip压缩的方法,而对于代码段、动态链接库以及同一个节点上的共享内存由于不同的进程间的内容都是相同的,故在所有的检查点文件中只需要存储一份内容,其余的检查点文件存储该内容的索引,最后进行Gzip压缩即可。
在设置检查点时,会将进程的状态信息保存到检查点文件中。而在保存进程地址空间中的内容时,将采用本发明的方法对进程地址空间中的内容进行处理,最后保存至检查点文件中。通过使用本发明的方法,可以很大程度的减少检查点文件的大小。
附图说明
图1:本发明针对于分布式程序的原理示意图.
图2:应用级检查点系统构架图.
图3:proc文件系统中的maps文件示意图.
图4:堆栈在检查点文件中存储的示意图
具体实施方式
DMTCP是一个成熟的应用级检查点工具。其构架图如图2所示。安装好DMTCP之后,DMTCP会将检查点功能编译为一个链接库。在使用检查点时,DMTCP会将该库链接到应用程序中。然后会在应用的进程中创建检查点线程,并创建一个协调器进程。协调器进程用来保持各个进程的状态一致性。当开始设置检查点时,协调器进程会向每一个检查点线程发送消息,检 查点线程接收到消息后,通过信号联系用户线程来暂停当前的运行。当所有的用户线程暂停运行之后,检查点线程开始保存用户进程的状态信息到检查点文件中。所有进程的状态信息保存到检查点文件中之后,协调器通知各个检查点线程,检查点线程通过信号联系用户线程继续运行下去。
本发明在DMTCP中进行了实现。实现中主要涉及的是对进程地址空间中的内容进行处理。在DMTCP中,进程地址空间中的内容主要是从proc虚拟文件系统中的maps文件获取。maps文件中的格式如图3所示。在图3中,从左到右是:该映射所在的地址空间、该映射的有关权限、偏移量、该映射文件所在的设备、文件的inode号、文件名。本发明在DMTCP中的实现主要由2部分构成:1)检查点设置阶段,堆、栈段的处理模块和代码段、动态库以及共享内存的处理模块。2)检查点恢复阶段,对于堆、栈段、动态库以及共享内存的恢复模块。
下面是本发明在DMTCP中实现的几个模块描述:
1.检查点设置阶段堆、栈段的处理模块
输入:Memorydata
说明:Memorydata是从内存中读取的堆或者栈的相关信息,即proc文件系统maps中每行的信息。图4显示了堆、栈在检查点文件中存储的示意图。
步骤:
1)向协调器发送请求查询该应用是不是分布式程序。在使用检查点时,协调器会接收到各个进程发送过来的连接信息,协调器收集到每个进程运行的程序名,当相同程序名的数量大于2时,则表明当前运行程序是分布式程序。
2)如果该应用不是分布式程序,则使用普通的数据去冗余算法,算法结束。
3)如果该应用是分布式程序,按照4KB大小将Memorydata内存地址进行分块,并计算每一块内容的哈希值,继续下面的步骤。当数据块不能被划分时,存储该内存数据的元数据信息,以便以后进行恢复,算法结束。
4)如果该哈希值存在于本地哈希库,表明该块不是唯一块,不需要进行存储,接着从本地哈希库中获取该块所对应的唯一块的块号并记录起来。跳至步骤3。
5)如果该哈希值在本地哈希库中不存在,那么发送信息到协调器,查询该块是否存在于其他的节点上。
6)如果该块存在于其他的节点上,那么从协调器获取该块的索引信息。跳至步骤8。
7)如果该块不存在于其他节点上,那么表示该块是唯一块,直接存储该块的内容到检查点文件中,并生成该块的索引信息,将块的索引信息上传到协调器。块的索引信息包括该块所在的检查点文件名和唯一块的块号。跳至步骤8。
8)将索引信息添加到本地的哈希库并将块的数目加1,最后将该块的哈希值添加到本地哈希库中。跳至步骤3。
2.检查点设置阶段动态链接库、代码段以及同一个节点上的共享内存处理模块
输入:Memorydata
说明:Memorydata是从内存中读取的动态链接库、代码段以及共享内存的相关信息,即proc文件系统maps中每行的信息。
步骤:
1)向协调器发送请求查询该该应用是不是分布式程序。
2)如果该应用不是分布式程序,那么算法结束,转向正常的处理流程。
3)如果该应用是分布式程序,那么向协调器发送信息,查询该数据名是否存在于协调器上。
4)如果该数据名不存在于协调器上,那么直接存储该数据信息并将Memorydata.flag标记为1,表示该块信息内容存储的是内容而不是索引。然后上传索引信息至协调器,用于其他节点的查询。如果该数据名存在于协调器上,那么需要从协调器下载该数据的索引信息,然后将索引信息保存到检查点文件中。
3.对于堆、栈段、代码段、动态库以及共享内存的恢复模块
输入:Fd
说明:Fd是打开的检查点文件描述符。在进行检查点恢复阶段,会打开检查点文件,从检查点文件中读取内容然后重新映射到内存中去,当读取的内容是堆、栈、代码段、动态库和共享内存的头信息时,开始下面的算法。
步骤:
1)首先检查该恢复程序是否是分布式程序,如果该不是分布式程序,那么算法结束,跳至正常的检查点恢复处理。如果是分布式程序,那么自身进程创建一个监听线程,该监听线程用来监听从其他节点发送过来的请求信息,并将监听线程的相关信息上传到协调器,进行注册。
2)当所有的进程都在协调器注册成功后,协调器会将所有的监听线程信息汇总发送回各个恢复进程。
3)从检查点文件中读取头文件信息。
4)如果读取的头文件信息中显示该部分是共享内存并且存储内容是索引信息,这就表示该共享内存的内容保存在索引信息中的检查点文件中。那么只需要打开本地的索引信息中的检查点文件,定位到指定的位置,然后读取相应的内容。
5)如果读取的头文件信息中显示该部分是堆、栈段,那么首先需要恢复堆、栈段的内容。首先读取堆、栈段的元信息,根据元信息读取每一块所对应的唯一块内容, 如果唯一块中的内容显示该块的内容在其他检查点文件上,那么就需要向该检查点所在的进程拿取相应的内容。需要向该进程的监听线程发送请求,该进程的监听线程收到请求信息后,根据索引信息找到相应的内容数据,然后将这些内容数据发送回请求进程。
6)如果读取头文件信息中显示的是代码段和动态库,跟堆、栈段的恢复一样,如果读取到的内容是索引信息,那么就需要向该内容所在的进程拿取相应的内容。
7)将读取到的内容映射到相应内存地址中。
参考文献
[1]Rai A,Ramjee R,Anand A,et al.MiG:Efficient Migration of Desktop VMs Using Semantic Compression[C]//USENIX Annual Technical Conference.2013:25-36。

Claims (3)

1.一种减少检查点文件大小的方法,其特征是:针对检查点文件中不同数据内容的冗余性来采取不同的处理方法,最终达到最大限度的减少检查点文件大小的目的。
2.根据权利要求1所述的方法,其特征是:在单节点的应用程序设置检查点时,为了减少检查点文件的大小,进程的栈段采取Gzip压缩+重复数据删除的方法,而其他的部分采用Gzip压缩的方法。
3.根据权利要求1所述的方法,其特征是:在分布式程序设置检查点时,为了减少检查点文件的大小,进程的堆栈段采取Gzip压缩+重复数据删除的方法,代码段、动态链接库、同一节点上的共享内存采取只存储一份内容到一个检查点文件中而其他的检查点文件只存储索引信息,其他的部分采用Gzip压缩的方法。
CN201610257288.XA 2016-04-24 2016-04-24 一种减少检查点文件大小的方法 Pending CN105930223A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610257288.XA CN105930223A (zh) 2016-04-24 2016-04-24 一种减少检查点文件大小的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610257288.XA CN105930223A (zh) 2016-04-24 2016-04-24 一种减少检查点文件大小的方法

Publications (1)

Publication Number Publication Date
CN105930223A true CN105930223A (zh) 2016-09-07

Family

ID=56836034

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610257288.XA Pending CN105930223A (zh) 2016-04-24 2016-04-24 一种减少检查点文件大小的方法

Country Status (1)

Country Link
CN (1) CN105930223A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107193692A (zh) * 2017-05-23 2017-09-22 中国科学院计算技术研究所 基于检查点的计算机的容错方法
CN113487025A (zh) * 2021-07-02 2021-10-08 浙江大学 面向神经网络检查点数据的智能压缩存储方法和系统
CN117873789A (zh) * 2024-03-13 2024-04-12 之江实验室 一种基于分段量化的检查点写入方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102332162A (zh) * 2011-09-19 2012-01-25 西安百利信息科技有限公司 基于人工神经网络的医学图像兴趣区自动识别和分级压缩方法
CN102934114A (zh) * 2010-06-15 2013-02-13 微软公司 用于文件系统的检查点
CN104331525A (zh) * 2014-12-01 2015-02-04 国家计算机网络与信息安全管理中心 基于重复数据删除的共享方法
CN105373349A (zh) * 2015-10-30 2016-03-02 江苏翰诺信息科技发展有限公司 一种可删除重复数据的大数据存储系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102934114A (zh) * 2010-06-15 2013-02-13 微软公司 用于文件系统的检查点
CN102332162A (zh) * 2011-09-19 2012-01-25 西安百利信息科技有限公司 基于人工神经网络的医学图像兴趣区自动识别和分级压缩方法
CN104331525A (zh) * 2014-12-01 2015-02-04 国家计算机网络与信息安全管理中心 基于重复数据删除的共享方法
CN105373349A (zh) * 2015-10-30 2016-03-02 江苏翰诺信息科技发展有限公司 一种可删除重复数据的大数据存储系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
杨绍芸: ""计算机免疫系统GECISM中检查点技术及实现"", 《中国优秀博硕士学位论文全文数据库 (硕士)信息科技辑》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107193692A (zh) * 2017-05-23 2017-09-22 中国科学院计算技术研究所 基于检查点的计算机的容错方法
CN107193692B (zh) * 2017-05-23 2020-01-21 中国科学院计算技术研究所 基于检查点的计算机的容错方法
CN113487025A (zh) * 2021-07-02 2021-10-08 浙江大学 面向神经网络检查点数据的智能压缩存储方法和系统
CN113487025B (zh) * 2021-07-02 2023-09-08 浙江大学 面向神经网络检查点数据的智能压缩存储方法和系统
CN117873789A (zh) * 2024-03-13 2024-04-12 之江实验室 一种基于分段量化的检查点写入方法及装置
CN117873789B (zh) * 2024-03-13 2024-05-10 之江实验室 一种基于分段量化的检查点写入方法及装置

Similar Documents

Publication Publication Date Title
EP3519965B1 (en) Systems and methods for healing images in deduplication storage
US8224874B2 (en) Systems and methods for removing unreferenced data segments from deduplicated data systems
US8799238B2 (en) Data deduplication
US9928248B2 (en) Self-healing by hash-based deduplication
US8725698B2 (en) Stub file prioritization in a data replication system
US8407191B1 (en) Priority based data scrubbing on a deduplicated data store
US8504515B2 (en) Stubbing systems and methods in a data replication environment
US10019323B1 (en) Method and system for container data recovery in a storage system
EP3612922A1 (en) Accessible fast durable storage integrated into a bulk storage device
US9256498B1 (en) System and method for generating backups of a protected system from a recovery system
US8954398B1 (en) Systems and methods for managing deduplication reference data
US9904480B1 (en) Multiplexing streams without changing the number of streams of a deduplicating storage system
CN105339907A (zh) 非易失性存储器系统中的同步镜像
US20110022601A1 (en) Block level tagging with file level information
US9519545B2 (en) Storage drive remediation in a raid system
CN104077380A (zh) 一种重复数据删除方法、装置及系统
US11429498B2 (en) System and methods of efficiently resyncing failed components without bitmap in an erasure-coded distributed object with log-structured disk layout
US10613923B2 (en) Recovering log-structured filesystems from physical replicas
CN105930223A (zh) 一种减少检查点文件大小的方法
CN104965835A (zh) 一种分布式文件系统的文件读写方法及装置
US10545825B2 (en) Fault-tolerant enterprise object storage system for small objects
US8595271B1 (en) Systems and methods for performing file system checks
US20200042616A1 (en) Method, apparatus and computer program product for managing data storage
US7337194B2 (en) Asynchronous remote mirroring techniques for databases
US9798793B1 (en) Method for recovering an index on a deduplicated storage system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20160907

WD01 Invention patent application deemed withdrawn after publication