CN105740172A - 一种块设备数据缓存掉电保护的方法及系统 - Google Patents

一种块设备数据缓存掉电保护的方法及系统 Download PDF

Info

Publication number
CN105740172A
CN105740172A CN201610052933.4A CN201610052933A CN105740172A CN 105740172 A CN105740172 A CN 105740172A CN 201610052933 A CN201610052933 A CN 201610052933A CN 105740172 A CN105740172 A CN 105740172A
Authority
CN
China
Prior art keywords
block device
buffer unit
information
data
protection
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
CN201610052933.4A
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.)
Inspur Beijing Electronic Information Industry Co Ltd
Original Assignee
Inspur Beijing Electronic Information Industry Co Ltd
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 Inspur Beijing Electronic Information Industry Co Ltd filed Critical Inspur Beijing Electronic Information Industry Co Ltd
Priority to CN201610052933.4A priority Critical patent/CN105740172A/zh
Publication of CN105740172A publication Critical patent/CN105740172A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了块设备数据缓存掉电保护的方法及系统,该方法包括:在掉电保护内存区域设置块设备信息保护区,缓存单元信息保护区及缓存单元保护区;将块设备信息保护区,缓存单元信息保护区及缓存单元保护区设置为对CPU直写或无缓存模式;当系统未掉电时,在缓存单元保护区中的缓存单元中保存块设备缓存数据;在块设备信息保护区中记录对应的块设备信息,在缓存单元信息保护区记录对应的缓存单元信息;当系统掉电时,根据块设备信息保护区,缓存单元信息保护区及缓存单元保护区中记录的内容,识别需要写回数据的块设备,并将块设备对应的数据写回到存储介质中;能够解决对CPU缓存不同步和保护问题,保证掉电数据保护完整具有较好的性能。

Description

一种块设备数据缓存掉电保护的方法及系统
技术领域
本发明涉及计算机技术领域,特别涉及一种块设备数据缓存掉电保护的系统及方法。
背景技术
计算机数据存储方面主要分块设备存储、文件存储两种方式,为了提高性能,计算机系统往往将块设备或文件的数据缓存到内存中,写数据时先写到缓存再异步写回到磁盘,缓存包括块设备或文件系统元数据和应用数据,为保证当系统掉电时数据不丢失,需要有掉电保护功能。掉电保护主要有两种方式。方式一为掉电时备用电池给计算机系统整体或除外接磁盘柜(通过SAS或者FC网络)外的计算机系统部件持续供电一段时间,在这段时间内操作系统继续运行并将缓存数据写回到磁盘或者保存到其他非掉电易失的持久介质如FLASH盘或SSD盘,来电恢复时由操作系统从持久介质中读取保存的数据进行恢复;方式二为掉电时备用电池只给内存(DRAM)供电并自动对内存进行刷新以保持内存数据,来电恢复时软件系统重新识别掉电前的缓存数据进行恢复。
方式一的优点是由于掉电期间操作系统(软件系统)不间断,可由软件自主处理,不需复杂硬件,缺点是要求备用电源功率和容量足够高,这带来硬件成本提高。方式二优点是备用电源要求功率较低,缺点是保护的时间也受到电源容量的影响非持久,但是在一定时间如72小时仍可满足绝大部分场景要求。
关于方式二,在硬件平台方面,x86架构在存储应用越来越广,如intel新型号CPU加入了支持掉电时触发对DRAM异步刷新功能,称为ADR(AsynchronousDRAMRefresh),应用其ADR功能进行掉电数据保护成为一种较便利的方式。然而该平台ADR功能存在一个不足是,掉电时并不支持将CPU缓存同步到内存,这带来的问题是:(1)如果将DRAM内存设置为对CPU直写(WriteThrough)或无缓存(UnCacheable),由于组织缓存的元数据访问频繁且也需要掉电保护,性能下降严重;(2)如果将DRAM内存设置为对CPU写回(WriteBack)方式,带来掉电数据保护不完整甚至导致数据错误的问题。因此,如何实现块设备缓存的掉电保护,并克服平台对CPU缓存不同步和保护问题,保证掉电数据保护完整,同时具有较好的性能,是本领域技术人员需要解决的技术问题。
发明内容
本发明的目的是提供一种块设备数据缓存掉电保护的方法及系统,能够解决平台对CPU缓存不同步和保护问题,保证掉电数据保护完整,同时具有较好的性能。
为解决上述技术问题,本发明提供一种块设备数据缓存掉电保护的方法,包括:
在掉电保护内存区域设置块设备信息保护区,缓存单元信息保护区及缓存单元保护区;
将所述块设备信息保护区,所述缓存单元信息保护区及所述缓存单元保护区设置为对CPU直写或无缓存模式;
当系统未掉电时,在所述缓存单元保护区中的缓存单元中保存块设备缓存数据;并在所述块设备信息保护区中记录对应的块设备信息,在所述缓存单元信息保护区记录对应的缓存单元信息;
当系统掉电时,根据所述块设备信息保护区,所述缓存单元信息保护区及所述缓存单元保护区中记录的内容,识别需要写回数据的块设备,并将需要写回数据的块设备对应的数据写回到存储介质中。
其中,所述在掉电保护内存区域设置块设备信息保护区,缓存单元信息保护区及缓存单元保护区,包括:
BIOS通过寄存器eax参数值为0xe820的中断命令int15h通知操作系统内存区段和类型;
通过所述类型识别掉电保护内存区域;
在掉电保护内存区域设置块设备信息保护区并以数组形式连续记录块设备信息项,缓存单元信息保护区并以数组形式连续记录缓存单元信息项,由缓存单元组成缓存单元保护区。
其中,每个所述块设备信息项包括:块设备标识,块设备名称,块设备大小及块设备是否有效;每个所述缓存单元信息项包括:所属的块设备编号,缓存单元的数据在块设备中的逻辑地址,缓存单元数据是否为脏及信息是否有效。
其中,根据所述块设备信息保护区,所述缓存单元信息保护区及所述缓存单元保护区中记录的内容,识别需要写回数据的块设备,并将需要写回数据的块设备对应的数据写回到存储介质中之前,包括:
当系统掉电时,由备用电池或电容对内存供电并对内存定时刷新以保持内存数据。
其中,根据所述块设备信息保护区,所述缓存单元信息保护区及所述缓存单元保护区中记录的内容,识别需要写回数据的块设备,并将需要写回数据的块设备对应的数据写回到存储介质中,包括:
遍历所述缓存单元信息保护区中每个缓存单元信息项,利用常规内存建立块设备信息以及组织需要写回的缓存单元,其中根据每个缓存单元信息项的信息是否有效的字段值判断对应信息项是否有效、缓存单元数据是否为脏的字段值判断对应数据是否需要写回、根据所属的块设备编号的字段值确定对应的块设备信息,并根据缓存单元的数据在块设备中的逻辑地址信息进行排序和组织;
将恢复的数据缓存按逻辑地址由低到高的顺序写回到块设备对应的后端存储介质上。
其中,将恢复的数据缓存按逻辑地址由低到高的顺序写回到块设备对应的后端存储介质上之后,还包括:
将所述块设备信息保护区对应的块设备信息项中的块设备是否有效的字段值设置为0;
将所述缓存单元信息保护区对应的缓存单元信息项中的信息是否有效的字段值设置为0。
其中,还包括:
当增加块设备时,更新常规元数据,并在所述块设备信息保护区中设置相应的块设备信息项,将块设备是否有效的字段设置为1;
当删除块块设备时,更新常规元数据,并在所述块设备信息保护区中设置相应的块设备信息项,将块设备是否有效的字段设置为0;
当为块设备分配缓存单元时,更新常规元数据,并在所述缓存单元信息保护区中设置相应的缓存单元信息项,将信息是否有效的字段设置为1;
当对缓存单元写数据时,更新常规元数据,并将所述缓存单元信息保护区中设置相应的缓存单元信息项的缓存单元数据是否为脏的字段设置为1;
当为块设备删除缓存单元时,更新常规元数据,并在所述缓存单元信息保护区中设置相应的缓存单元信息项,将信息是否有效的字段设置为0。
本发明提供一种块设备数据缓存掉电保护的系统,包括:
设置保护区模块,用于在掉电保护内存区域设置块设备信息保护区,缓存单元信息保护区及缓存单元保护区;
设置保护区模式模块,用于将所述块设备信息保护区,所述缓存单元信息保护区及所述缓存单元保护区设置为对CPU直写或无缓存模式;
第一处理模块,用于当系统未掉电时,在所述缓存单元保护区中的缓存单元中保存块设备缓存数据;并在所述块设备信息保护区中记录对应的块设备信息,在所述缓存单元信息保护区记录对应的缓存单元信息;
第二处理模块,用于当系统掉电时,根据所述块设备信息保护区,所述缓存单元信息保护区及所述缓存单元保护区中记录的内容,识别需要写回数据的块设备,并将需要写回数据的块设备对应的数据写回到存储介质中。
其中,所述第二处理模块包括:
恢复数据单元,用于遍历所述缓存单元信息保护区中每个缓存单元信息项,利用常规内存建立块设备信息以及组织需要写回的缓存单元,其中根据每个缓存单元信息项的信息是否有效的字段值判断对应信息项是否有效、缓存单元数据是否为脏的字段值判断对应数据是否需要写回、根据所属的块设备编号的字段值确定对应的块设备信息,并根据缓存单元的数据在块设备中的逻辑地址信息进行排序和组织;
写回单元,用于将恢复的数据缓存按逻辑地址由低到高的顺序写回到块设备对应的后端存储介质上。
其中,所述第二处理模块还包括:
参数更新单元,用于将所述块设备信息保护区对应的块设备信息项中的块设备是否有效的字段值设置为0;将所述缓存单元信息保护区对应的缓存单元信息项中的信息是否有效的字段值设置为0。
本发明所提供的块设备数据缓存掉电保护的方法,包括:在掉电保护内存区域设置块设备信息保护区,缓存单元信息保护区及缓存单元保护区;将所述块设备信息保护区,所述缓存单元信息保护区及所述缓存单元保护区设置为对CPU直写或无缓存模式;当系统未掉电时,在所述缓存单元保护区中的缓存单元中保存块设备缓存数据;并在所述块设备信息保护区中记录对应的块设备信息,在所述缓存单元信息保护区记录对应的缓存单元信息;当系统掉电时,根据所述块设备信息保护区,所述缓存单元信息保护区及所述缓存单元保护区中记录的内容,识别需要写回数据的块设备,并将需要写回数据的块设备对应的数据写回到存储介质中;该方法通过对掉电保护内存的分区管理克服CPU缓存不受保护带来的数据安全问题,保证掉电数据完整性并有效降低性能影响;本发明还提供的块设备数据缓存掉电保护的系统。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的块设备数据缓存掉电保护的方法的流程图;
图2为本发明实施例所提供的上电恢复缓存数据的方法的流程图;
图3为本发明实施例所提供的块设备数据缓存掉电保护的系统的结构框图。
具体实施方式
本发明的核心是提供一种块设备数据缓存掉电保护的方法及系统,能够解决平台对CPU缓存不同步和保护问题,保证掉电数据保护完整,同时具有较好的性能。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明实施例所提供的块设备数据缓存掉电保护的方法的流程图;该方法可以包括:
S100、在掉电保护内存区域设置块设备信息保护区,缓存单元信息保护区及缓存单元保护区;
其中,这三个保护区要设置在掉电保护的内存区域,这样才可以保证在系统掉电的情况下记录和保存需要保护的缓存数据。掉电保护内存区域的设置可以是BIOS通过寄存器eax参数值为0xe820的中断命令int15h通知操作系统内存区段和类型;通过所述类型识别掉电保护内存区域;例如的,掉电时需要触发自动刷新的内存条是可通过BIOS配置的,BIOS通过寄存器eax参数值为0xe820的中断指令int15h告知操作系统内存区段和类型,通过不同类型值识别哪些是不受掉电保护内存,哪些区段是受掉电保护内存。
S110、将所述块设备信息保护区,所述缓存单元信息保护区及所述缓存单元保护区设置为对CPU直写或无缓存模式;
其中,为了克服掉电时CPU缓存丢失问题对块设备缓存完整性和正确性造成的影响,该方法从掉电保护内存划分出几个区:块设备信息保护区、缓存单元信息保护区、缓存单元保护区。这3个区的起始地址都和物理页page对齐且大小都是物理页的整数倍;这3个区的物理页都设置为对CPU直写(WriteThrough)或者无缓存(Uncacheable)模式,这是通过设置物理页属性实现的,对于WriteThrough模式,物理页页表属性PAT=1,PCD=0,PWT=0,对于Uncacheable模式,物理页页表属性PAT=1,PCD=0,PWT=0。掉电保护内存区域中除了上述3个区外的其他内存区域,以及非掉电保护内存区,其物理页设置为WriteBack模式即写回模式,用于记录块设备信息、缓存单元的组织,称为常规元数据。
块设备信息保护区记录各个块设备信息,缓存单元信息保护区记录各个缓存单元信息;这些信息可以用连续的数组进行记录也可以是利用数据结构进行记录;具体的如在掉电保护内存区域设置块设备信息保护区并以数组形式连续记录块设备信息项,缓存单元信息保护区并以数组形式连续记录缓存单元信息项,由缓存单元组成缓存单元保护区。其中,这里的块设备信息项和缓存单元信息项的内容可以有用户进行确定,但是要存在相互之间的对应关系,以便在进行数据恢复时,可以进行准确的恢复;可选的,每个所述块设备信息项包括:块设备标识,块设备名称,块设备大小及块设备是否有效;每个所述缓存单元信息项包括:所属的块设备编号,缓存单元的数据在块设备中的逻辑地址,缓存单元数据是否为脏及信息是否有效。
具体的:三个保护区的具体的参数设置情况;
(1)块设备信息保护区
数组形式连续记录块设备信息项,一个块设备信息项包含了一个对应的块设备的信息,块设备从0开始编号,系统支持的最大块设备数预先设定并预留足够大的块设备信息区,例如块设备信息保护区支持块设备的数量为BDEV_NUM,每个块设备的信息大小为BDEV_INFO_SIZE,则块设备信息保护区的大小至少为BDEV_NUMxBDEV_INFO_SIZE,且对齐到物理页大小。编号为BDEV_IDX的块设备信息的地址为:块设备信息区起始地址+(BDEV_IDXxBDEV_INFO_SIZE)。
单个块设备信息包含块设备相关信息,包括:
块设备唯一标识uuid、
块设备名称、
块设备大小、
块设备是否有效;
(2)缓存单元信息保护区
数组形式连续记录缓存单元信息项,一个缓存单元信息项记录一个对应的缓存单元的信息,数组下标为以0起始的缓存单元编号,缓存单元信息包括:
该缓存单元所属的块设备编号bdev_idx、
该缓存单元的数据在块设备中的逻辑地址laddr、
该缓存单元数据是否为脏(需要写回到存储介质上)dirty、
该信息是否有效unit_valid;
根据该缓存单元所属的块设备编号可计算出该缓存单元所属块设备的块设备信息项在块设备信息保护区中的地址。
(3)缓存单元保护区
以缓存单元为最小分配单位,用于存放块设备数据缓存,根据缓存单元区的起止地址、缓存单元的地址,可以计算对应的缓存单元信息项在缓存单元信息保护区以及受保护内存区域中的地址。
前两个步骤是完成对内存的新的管理方式,在内存掉电保护区内设置三个保护区,通过这三个区域记录的信息实现对掉电数据的完整恢复。
优选的,根据上述三个保护区设置的参数,当在这三个保护区进行块设备增加等操作时,需要及时对这些参数的字段数值进行修改,下面列举几个操作的过程:
当增加块设备时,更新常规元数据,并在所述块设备信息保护区中设置相应的块设备信息项,将块设备是否有效的字段设置为1;
其中,具体的创建或增加块设备时,从0~BDEV_NUM-1中分配一个空闲的块设备编号,即块设备信息保护区中该块设备是否有效的字段的值为0的块设备编号,创建UUID、名称等,除了在常规内存中组织记录块设备信息外,还根据块设备编号将块设备信息记录到块设备信息保护区对应的块设备信息项中,并块设备是否有效的字段设置为1。
当删除块块设备时,更新常规元数据,并在所述块设备信息保护区中设置相应的块设备信息项,将块设备是否有效的字段设置为0;
其中,具体的当删除块设备时,除了从常规内存中删除外,同步地将块设备信息保护区中的对应的块设备信息设置为无效,通过修改块设备是否有效的字段设置为0。
当为块设备分配缓存单元时,更新常规元数据,并在所述缓存单元信息保护区中设置相应的缓存单元信息项,将信息是否有效的字段设置为1;
其中,当新分配一个缓存单元给块设备时,除了常规内存中记录,同步地在缓存单元信息保护区中更新对应的缓存单元信息项,包括设置该信息是否有效的字段unit_valid的值为1。
当对缓存单元写数据时,更新常规元数据,并将所述缓存单元信息保护区中设置相应的缓存单元信息项的缓存单元数据是否为脏的字段设置为1;
其中,当对一个缓存单元写入新数据时,除了常规内存中更新缓存元数据外,也同步地设置缓存单元信息保护区中对应的缓存单元信息项的dirty为1;
当为块设备删除缓存单元时,更新常规元数据,并在所述缓存单元信息保护区中设置相应的缓存单元信息项,将信息是否有效的字段设置为0。
其中,当把一个块设备的缓存单元删除(回收)时,除了常规内存中更新缓存元数据外,也同步地设置缓存单元信息保护区中对应的缓存单元信息项的unit_valid字段值为0,表示该缓存单元信息项无效。
其中,在存储系统运行和使用过程中,由于不常添加和删除块设备,上述创建或增加块设备的操作和删除块设备的操作的执行频率很低,且增加的内存修改量不大,因此对性能影响不大,为块设备分配缓存单元的操作,写缓存单元和及删除缓存单元时分别需要修改相应的缓存单元信息项,由于该信息项地址可根据缓存单元地址一步计算定位,查询开销小,且由于存储系统的块设备容量大、用户访问热点也远大于CPUCache,常规内存中的元数据操作(一般用基树或者红黑树等)相对开销更大,因此对读写性能的影响降到最低,且对于读数据请求或操作,若为有效缓存数据,查询常规内存的元数据即可,不需要执行分配缓存单元操作。
存储系统也使用写回模式(WriteBack)的内存(记为常规内存)记录块设备信息、组织数据缓存元数据,并使用“缓存单元保护区”中的缓存单元保存块设备缓存数据,同时在“块设备信息保护区”中记录块设备信息、在“缓存单元信息保护区”中记录缓存单元信息:
S120、当系统未掉电时,在所述缓存单元保护区中的缓存单元中保存块设备缓存数据;并在所述块设备信息保护区中记录对应的块设备信息,在所述缓存单元信息保护区记录对应的缓存单元信息;
S130、当系统掉电时,根据所述块设备信息保护区,所述缓存单元信息保护区及所述缓存单元保护区中记录的内容,识别需要写回数据的块设备,并将需要写回数据的块设备对应的数据写回到存储介质中。
其中,当系统掉电时,由备用电池或电容对内存供电并对内存定时刷新以保持内存数据。这里的电容为超级电容。
下面举例说明上述过程:采用支持掉电时对DRAM进行刷新的平台如Intel支持ADR的x86/x86_64架构CPU及其芯片组作为存储控制器,提供存储区域网络SAN(StorageAreaNetwork)类型的块设备存储服务。其硬件功能为,当系统掉电时,可编程逻辑阵列CPLD通知CPU执行内存自动刷新,同时备用电池接替外部电源对内存刷新相关的部件供电;当系统外部供电恢复时,系统启动,启动完成后软件系统根据受保护内存的内容识别掉电前未写回的块设备数据缓存,并将数据重新写回到后端存储介质上。
基于上述技术方案,本发明实施例提的块设备数据缓存掉电保护的方法,通过对掉电保护内存的分区管理克服CPU缓存不受保护带来的数据安全问题,保证掉电数据完整性并有效降低性能影响。
基于上述实施例,在掉电后在进行上电恢复时的过程可以是:
遍历所述缓存单元信息保护区中每个缓存单元信息项,利用常规内存建立块设备信息以及组织需要写回的缓存单元;其中,根据每个缓存单元信息项的信息是否有效的字段值判断对应信息项是否有效、缓存单元数据是否为脏的字段值判断对应数据是否需要写回、根据所属的块设备编号的字段值确定对应的块设备信息,并根据缓存单元的数据在块设备中的逻辑地址信息进行排序和组织;
其中,即遍历缓存单元信息保护区中每个缓存单元信息项,使用常规内存建立块设备信息以及组织需要写回的缓存单元,其中根据缓存单元信息项的unit_valid字段值判断该信息项是否有效、dirty字段值若为1则判断为需要写回、根据bdev_idx字段值在“块设备信息保护区”中查找相应编号的块设备信息,并根据缓存单元的逻辑地址laddr进行排序和组织。
将恢复的数据缓存按逻辑地址由低到高的顺序写回到块设备对应的后端存储介质上。
请参考图2,图2为本发明实施例所提供的上电恢复缓存数据的方法的流程图;该过程可以包括:
S200、遍历所述缓存单元信息保护区中每个缓存单元信息项,利用常规内存建立块设备信息以及组织需要写回的缓存单元;其中,根据每个缓存单元信息项的信息是否有效的字段值判断对应信息项是否有效、缓存单元数据是否为脏的字段值判断对应数据是否需要写回、根据所属的块设备编号的字段值确定对应的块设备信息,并根据缓存单元的数据在块设备中的逻辑地址信息进行排序和组织;
S210、将恢复的数据缓存按逻辑地址由低到高的顺序写回到块设备对应的后端存储介质上;
S220、将所述块设备信息保护区对应的块设备信息项中的块设备是否有效的字段值设置为0;将所述缓存单元信息保护区对应的缓存单元信息项中的信息是否有效的字段值设置为0。
其中,更新块设备信息保护区和缓存单元信息保护区中的信息项的该信息项是否有效值为0后即可以开始正常的服务初始化流程。从而保证了掉电保护过程的可靠性和完整性。
基于上述技术方案,本发明实施例提的块设备数据缓存掉电保护的方法,通过对掉电保护内存的分区管理克服CPU缓存不受保护带来的数据安全问题,保证掉电数据完整性并有效降低性能影响。
本发明实施例提供了块设备数据缓存掉电保护的方法,能够解决平台对CPU缓存不同步和保护问题,保证掉电数据保护完整,同时具有较好的性能。
下面对本发明实施例提供的块设备数据缓存掉电保护的系统进行介绍,下文描述的块设备数据缓存掉电保护的系统与上文描述的块设备数据缓存掉电保护的方法可相互对应参照。
请参考图3,图3为本发明实施例所提供的块设备数据缓存掉电保护的系统的结构框图;该系统可以包括:
设置保护区模块100,用于在掉电保护内存区域设置块设备信息保护区,缓存单元信息保护区及缓存单元保护区;
设置保护区模式模块200,用于将所述块设备信息保护区,所述缓存单元信息保护区及所述缓存单元保护区设置为对CPU直写或无缓存模式;
第一处理模块300,用于当系统未掉电时,在所述缓存单元保护区中的缓存单元中保存块设备缓存数据;并在所述块设备信息保护区中记录对应的块设备信息,在所述缓存单元信息保护区记录对应的缓存单元信息;
第二处理模块400,用于当系统掉电时,根据所述块设备信息保护区,所述缓存单元信息保护区及所述缓存单元保护区中记录的内容,识别需要写回数据的块设备,并将需要写回数据的块设备对应的数据写回到存储介质中。
其中,所述第二处理模块400包括:
恢复数据单元,用于遍历所述缓存单元信息保护区中每个缓存单元信息项,利用常规内存建立块设备信息以及组织需要写回的缓存单元,其中根据每个缓存单元信息项的信息是否有效的字段值判断对应信息项是否有效、缓存单元数据是否为脏的字段值判断对应数据是否需要写回、根据所属的块设备编号的字段值确定对应的块设备信息,并根据缓存单元的数据在块设备中的逻辑地址信息进行排序和组织;
写回单元,用于将恢复的数据缓存按逻辑地址由低到高的顺序写回到块设备对应的后端存储介质上。
可选的,所述第二处理模块400还包括:
参数更新单元,用于将所述块设备信息保护区对应的块设备信息项中的块设备是否有效的字段值设置为0;将所述缓存单元信息保护区对应的缓存单元信息项中的信息是否有效的字段值设置为0。
可选的,基于上述实施例,该系统还包括:
参数更新模块,当增加块设备时,更新常规元数据,并在所述块设备信息保护区中设置相应的块设备信息项,将块设备是否有效的字段设置为1;当删除块块设备时,更新常规元数据,并在所述块设备信息保护区中设置相应的块设备信息项,将块设备是否有效的字段设置为0;当为块设备分配缓存单元时,更新常规元数据,并在所述缓存单元信息保护区中设置相应的缓存单元信息项,将信息是否有效的字段设置为1;当对缓存单元写数据时,更新常规元数据,并将所述缓存单元信息保护区中设置相应的缓存单元信息项的缓存单元数据是否为脏的字段设置为1;当为块设备删除缓存单元时,更新常规元数据,并在所述缓存单元信息保护区中设置相应的缓存单元信息项,将信息是否有效的字段设置为0。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的块设备数据缓存掉电保护的方法及系统进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

Claims (10)

1.一种块设备数据缓存掉电保护的方法,其特征在于,包括:
在掉电保护内存区域设置块设备信息保护区,缓存单元信息保护区及缓存单元保护区;
将所述块设备信息保护区,所述缓存单元信息保护区及所述缓存单元保护区设置为对CPU直写或无缓存模式;
当系统未掉电时,在所述缓存单元保护区中的缓存单元中保存块设备缓存数据;并在所述块设备信息保护区中记录对应的块设备信息,在所述缓存单元信息保护区记录对应的缓存单元信息;
当系统掉电时,根据所述块设备信息保护区,所述缓存单元信息保护区及所述缓存单元保护区中记录的内容,识别需要写回数据的块设备,并将需要写回数据的块设备对应的数据写回到存储介质中。
2.如权利要求1所述的方法,其特征在于,所述在掉电保护内存区域设置块设备信息保护区,缓存单元信息保护区及缓存单元保护区,包括:
BIOS通过寄存器eax参数值为0xe820的中断命令int15h通知操作系统内存区段和类型;
通过所述类型识别掉电保护内存区域;
在掉电保护内存区域设置块设备信息保护区并以数组形式连续记录块设备信息项,缓存单元信息保护区并以数组形式连续记录缓存单元信息项,由缓存单元组成缓存单元保护区。
3.如权利要求2所述的方法,其特征在于,每个所述块设备信息项包括:块设备标识,块设备名称,块设备大小及块设备是否有效;每个所述缓存单元信息项包括:所属的块设备编号,缓存单元的数据在块设备中的逻辑地址,缓存单元数据是否为脏及信息是否有效。
4.如权利要求3所述的方法,其特征在于,根据所述块设备信息保护区,所述缓存单元信息保护区及所述缓存单元保护区中记录的内容,识别需要写回数据的块设备,并将需要写回数据的块设备对应的数据写回到存储介质中之前,包括:
当系统掉电时,由备用电池或电容对内存供电并对内存定时刷新以保持内存数据。
5.如权利要求3所述的方法,其特征在于,根据所述块设备信息保护区,所述缓存单元信息保护区及所述缓存单元保护区中记录的内容,识别需要写回数据的块设备,并将需要写回数据的块设备对应的数据写回到存储介质中,包括:
遍历所述缓存单元信息保护区中每个缓存单元信息项,利用常规内存建立块设备信息以及组织需要写回的缓存单元;其中,根据每个缓存单元信息项的信息是否有效的字段值判断对应信息项是否有效、缓存单元数据是否为脏的字段值判断对应数据是否需要写回、根据所属的块设备编号的字段值确定对应的块设备信息,并根据缓存单元的数据在块设备中的逻辑地址信息进行排序和组织;
将恢复的数据缓存按逻辑地址由低到高的顺序写回到块设备对应的后端存储介质上。
6.如权利要求5所述的方法,其特征在于,将恢复的数据缓存按逻辑地址由低到高的顺序写回到块设备对应的后端存储介质上之后,还包括:
将所述块设备信息保护区对应的块设备信息项中的块设备是否有效的字段值设置为0;
将所述缓存单元信息保护区对应的缓存单元信息项中的信息是否有效的字段值设置为0。
7.如权利要求1至6任一项所述的方法,其特征在于,还包括:
当增加块设备时,更新常规元数据,并在所述块设备信息保护区中设置相应的块设备信息项,将块设备是否有效的字段设置为1;
当删除块块设备时,更新常规元数据,并在所述块设备信息保护区中设置相应的块设备信息项,将块设备是否有效的字段设置为0;
当为块设备分配缓存单元时,更新常规元数据,并在所述缓存单元信息保护区中设置相应的缓存单元信息项,将信息是否有效的字段设置为1;
当对缓存单元写数据时,更新常规元数据,并将所述缓存单元信息保护区中设置相应的缓存单元信息项的缓存单元数据是否为脏的字段设置为1;
当为块设备删除缓存单元时,更新常规元数据,并在所述缓存单元信息保护区中设置相应的缓存单元信息项,将信息是否有效的字段设置为0。
8.一种块设备数据缓存掉电保护的系统,其特征在于,包括:
设置保护区模块,用于在掉电保护内存区域设置块设备信息保护区,缓存单元信息保护区及缓存单元保护区;
设置保护区模式模块,用于将所述块设备信息保护区,所述缓存单元信息保护区及所述缓存单元保护区设置为对CPU直写或无缓存模式;
第一处理模块,用于当系统未掉电时,在所述缓存单元保护区中的缓存单元中保存块设备缓存数据;并在所述块设备信息保护区中记录对应的块设备信息,在所述缓存单元信息保护区记录对应的缓存单元信息;
第二处理模块,用于当系统掉电时,根据所述块设备信息保护区,所述缓存单元信息保护区及所述缓存单元保护区中记录的内容,识别需要写回数据的块设备,并将需要写回数据的块设备对应的数据写回到存储介质中。
9.如权利要求7所述的系统,其特征在于,所述第二处理模块包括:
恢复数据单元,用于遍历所述缓存单元信息保护区中每个缓存单元信息项,利用常规内存建立块设备信息以及组织需要写回的缓存单元,其中根据每个缓存单元信息项的信息是否有效的字段值判断对应信息项是否有效、缓存单元数据是否为脏的字段值判断对应数据是否需要写回、根据所属的块设备编号的字段值确定对应的块设备信息,并根据缓存单元的数据在块设备中的逻辑地址信息进行排序和组织;
写回单元,用于将恢复的数据缓存按逻辑地址由低到高的顺序写回到块设备对应的后端存储介质上。
10.如权利要求9所述的系统,其特征在于,所述第二处理模块还包括:
参数更新单元,用于将所述块设备信息保护区对应的块设备信息项中的块设备是否有效的字段值设置为0;将所述缓存单元信息保护区对应的缓存单元信息项中的信息是否有效的字段值设置为0。
CN201610052933.4A 2016-01-26 2016-01-26 一种块设备数据缓存掉电保护的方法及系统 Pending CN105740172A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610052933.4A CN105740172A (zh) 2016-01-26 2016-01-26 一种块设备数据缓存掉电保护的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610052933.4A CN105740172A (zh) 2016-01-26 2016-01-26 一种块设备数据缓存掉电保护的方法及系统

Publications (1)

Publication Number Publication Date
CN105740172A true CN105740172A (zh) 2016-07-06

Family

ID=56247728

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610052933.4A Pending CN105740172A (zh) 2016-01-26 2016-01-26 一种块设备数据缓存掉电保护的方法及系统

Country Status (1)

Country Link
CN (1) CN105740172A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106815520A (zh) * 2016-12-30 2017-06-09 东软集团股份有限公司 引擎保护方法和装置
CN107807863A (zh) * 2017-10-26 2018-03-16 郑州云海信息技术有限公司 一种在AC掉电后保护CPU Cache数据的方法及系统
CN110502457A (zh) * 2019-08-23 2019-11-26 北京浪潮数据技术有限公司 一种元数据存储方法及装置
CN113254270A (zh) * 2021-05-28 2021-08-13 济南浪潮数据技术有限公司 一种存储缓存热点数据自恢复方法、系统及存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101183801A (zh) * 2007-12-07 2008-05-21 杭州华三通信技术有限公司 一种掉电保护方法、系统和装置
CN101286086A (zh) * 2008-06-10 2008-10-15 杭州华三通信技术有限公司 硬盘掉电保护方法、装置以及硬盘和硬盘掉电保护系统
CN101620878A (zh) * 2008-07-03 2010-01-06 鸿富锦精密工业(深圳)有限公司 存储系统
CN101667748A (zh) * 2009-10-26 2010-03-10 中兴通讯股份有限公司 一种电路掉电保护装置及保护方法
CN102200949A (zh) * 2011-05-16 2011-09-28 浪潮(北京)电子信息产业有限公司 多控存储系统实现控制器故障保护的装置及方法
CN102915282A (zh) * 2012-09-28 2013-02-06 浪潮(北京)电子信息产业有限公司 一种存储系统的块设备数据缓存管理方法及系统
CN104122977A (zh) * 2014-07-11 2014-10-29 华为技术有限公司 一种存储数据的方法及存储系统
CN104268103A (zh) * 2014-09-26 2015-01-07 浪潮电子信息产业股份有限公司 一种基于超级块及细粒度内存分配的数据掉电保护方法
CN104598166A (zh) * 2014-12-31 2015-05-06 曙光信息产业股份有限公司 系统管理方法和装置
WO2015063845A1 (ja) * 2013-10-28 2015-05-07 富士通株式会社 データ格納装置、データ格納方法およびデータ格納プログラム

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101183801A (zh) * 2007-12-07 2008-05-21 杭州华三通信技术有限公司 一种掉电保护方法、系统和装置
CN101286086A (zh) * 2008-06-10 2008-10-15 杭州华三通信技术有限公司 硬盘掉电保护方法、装置以及硬盘和硬盘掉电保护系统
CN101620878A (zh) * 2008-07-03 2010-01-06 鸿富锦精密工业(深圳)有限公司 存储系统
CN101667748A (zh) * 2009-10-26 2010-03-10 中兴通讯股份有限公司 一种电路掉电保护装置及保护方法
CN102200949A (zh) * 2011-05-16 2011-09-28 浪潮(北京)电子信息产业有限公司 多控存储系统实现控制器故障保护的装置及方法
CN102915282A (zh) * 2012-09-28 2013-02-06 浪潮(北京)电子信息产业有限公司 一种存储系统的块设备数据缓存管理方法及系统
WO2015063845A1 (ja) * 2013-10-28 2015-05-07 富士通株式会社 データ格納装置、データ格納方法およびデータ格納プログラム
CN104122977A (zh) * 2014-07-11 2014-10-29 华为技术有限公司 一种存储数据的方法及存储系统
CN104268103A (zh) * 2014-09-26 2015-01-07 浪潮电子信息产业股份有限公司 一种基于超级块及细粒度内存分配的数据掉电保护方法
CN104598166A (zh) * 2014-12-31 2015-05-06 曙光信息产业股份有限公司 系统管理方法和装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106815520A (zh) * 2016-12-30 2017-06-09 东软集团股份有限公司 引擎保护方法和装置
CN107807863A (zh) * 2017-10-26 2018-03-16 郑州云海信息技术有限公司 一种在AC掉电后保护CPU Cache数据的方法及系统
CN110502457A (zh) * 2019-08-23 2019-11-26 北京浪潮数据技术有限公司 一种元数据存储方法及装置
CN110502457B (zh) * 2019-08-23 2022-02-18 北京浪潮数据技术有限公司 一种元数据存储方法及装置
CN113254270A (zh) * 2021-05-28 2021-08-13 济南浪潮数据技术有限公司 一种存储缓存热点数据自恢复方法、系统及存储介质
CN113254270B (zh) * 2021-05-28 2022-06-14 济南浪潮数据技术有限公司 一种存储缓存热点数据自恢复方法、系统及存储介质

Similar Documents

Publication Publication Date Title
US11907200B2 (en) Persistent memory management
EP3662390B1 (en) High availability database through distributed store
CN103577121B (zh) 一种基于Nand Flash的高可靠线性文件存取方法
US10101930B2 (en) System and method for supporting atomic writes in a flash translation layer
US9317375B1 (en) Managing cache backup and restore for continuous data replication and protection
US7213110B2 (en) Destaging method for storage apparatus system, and disk control apparatus, storage apparatus system and program
CN106055431A (zh) 基于快照在线回滚的数据备份与恢复的方法及装置
US20030056062A1 (en) Preemptive write back controller
KR101475483B1 (ko) 비휘발성 버퍼 캐시와 비휘발성 스토리지를 위한 통합 데이터 관리 장치 및 방법
US9021222B1 (en) Managing incremental cache backup and restore
CN103207883A (zh) 用于元数据持久存储的方法
DE112011105984T5 (de) Dynamische teilweise Abschaltung eines arbeitsspeicherseitigen Zwischenspeichers in einer Arbeitsspeicherhierarchie auf zwei Ebenen
CN105740172A (zh) 一种块设备数据缓存掉电保护的方法及系统
US20200042343A1 (en) Virtual machine replication and migration
CN101425041A (zh) 在nand flash存储器上建立fat文件系统的优化方法
US7831750B2 (en) Method, apparatus and software for processing input or output requests for a mirrored storage volume
CN103544110A (zh) 一种基于固态盘的块级连续数据保护方法
CN105589767A (zh) 一种用于nand flash的系统掉电保护实现方法
Son et al. SSD-assisted backup and recovery for database systems
US9411692B2 (en) Applying write elision
EP3754508B1 (en) Access request processing method and apparatus, and computer system
CN110134551B (zh) 一种持续数据保护方法及装置
CN108664217A (zh) 一种降低固态盘存储系统写性能抖动的缓存方法及系统
CN101807212B (zh) 嵌入式文件系统的缓存方法及嵌入式文件系统的缓存装置
WO2024077863A1 (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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20160706

WD01 Invention patent application deemed withdrawn after publication