CN115599607B - 一种raid阵列的数据恢复方法及相关装置 - Google Patents
一种raid阵列的数据恢复方法及相关装置 Download PDFInfo
- Publication number
- CN115599607B CN115599607B CN202211508424.XA CN202211508424A CN115599607B CN 115599607 B CN115599607 B CN 115599607B CN 202211508424 A CN202211508424 A CN 202211508424A CN 115599607 B CN115599607 B CN 115599607B
- Authority
- CN
- China
- Prior art keywords
- data
- stripe
- raid array
- written
- secure memory
- 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
- 238000011084 recovery Methods 0.000 title claims abstract description 81
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000012795 verification Methods 0.000 claims abstract description 17
- 238000013500 data storage Methods 0.000 claims abstract description 11
- 238000004590 computer program Methods 0.000 claims description 10
- 230000002159 abnormal effect Effects 0.000 claims description 4
- 230000000694 effects Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- 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/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- 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/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1456—Hardware arrangements for backup
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请公开了一种RAID阵列的数据恢复方法,涉及存储技术领域,包括:保存RAID阵列中条带的条带信息;在安全内存中保存待写入所述条带的数据与校验数据;所述安全内存为存储系统掉电后,由电池备电单元为所述存储系统供电时,完成数据保存的内存;在所述存储系统恢复后,从所述安全内存读取所述数据与所述校验数据;读取所述条带信息,并根据所述条带信息,将读取的所述数据与所述校验数据写入所述条带。该方法能够解决写洞问题,且不会对存储系统的性能造成影响,也不需要增加硬件资源。本申请还公开了一种RAID阵列的数据恢复装置、设备以及计算机可读存储介质,均具有上述技术效果。
Description
技术领域
本申请涉及存储技术领域,特别涉及一种RAID阵列的数据恢复方法;还涉及一种RAID阵列的数据恢复装置、设备以及计算机可读存储介质。
背景技术
RAID技术是存储领域中的重要技术,其使用条带、镜像和校验来保证数据可靠性。在提高I/O性能方面,业界多利用多控节点组成集群,主节点负责处理主机的I/O请求,辅助节点负责存储系统的后台任务(例如,RAID阵列初始化、巡检和重构任务等),以此来提高存储系统的I/O性能。在增加数据可靠性方面,目前业界多利用RAID阵列中的冗余磁盘来恢复故障盘的数据。然而如果RAID阵列在更新条带内部数据的时候,系统突然断电或出现其他故障,此时就会出现条带中的部分数据更新完成,而条带中的其他数据没有更新完成。因此当系统重启之后,条带中的数据是不完整的,条带处于数据不一致的情况,就会出现WriteHole问题,即写洞问题。
为了解决Write Hole问题,目前业界主要采取如下两种方法:1、采用文件系统的Journal(日志)的设计思想,实现写请求的原子处理;2、采用非易失性内存作为写缓存,达到原子写操作的目的。然而第一种方法需要多次读写底层文件系统,而多次读写底层文件系统会严重影响性能。第二种方法需要增加NVRAM硬件资源,且NVRAM硬件资源价格昂贵且存储资源有限,有限的存储资源无法大批量的存储数据。
有鉴于此,如何解决上述技术缺陷已成为本领域技术人员亟待解决的技术问题。
发明内容
本申请的目的是提供一种RAID阵列的数据恢复方法,能够解决写洞问题,且不会对存储系统的性能造成影响,也不需要增加硬件资源。本申请的另一个目的是提供一种RAID阵列的数据恢复装置、设备以及计算机可读存储介质,均具有上述技术效果。
为解决上述技术问题,本申请提供了一种RAID阵列的数据恢复方法,包括:
保存RAID阵列中条带的条带信息;
在安全内存中保存待写入所述条带的数据与校验数据;所述安全内存为存储系统掉电后,由电池备电单元为所述存储系统供电时,完成数据保存的内存;
在所述存储系统恢复后,从所述安全内存读取所述数据与所述校验数据;
读取所述条带信息,并根据所述条带信息,将读取的所述数据与所述校验数据写入所述条带。
可选的,所述保存条带的条带信息包括:
在I/O群组的各个节点中保存所述条带信息。
可选的,所述在安全内存中保存待写入所述条带的数据与校验数据包括:
在I/O群组中的写请求对应的节点的所述安全内存中保存所述数据与所述校验数据。
可选的,所述从所述安全内存读取所述数据与所述校验数据前还包括:
判断所述安全内存是否可用;
若所述安全内存可用,则从所述安全内存读取所述数据与所述校验数据。
可选的,还包括:
若所述安全内存不可用,则根据已写入所述条带的数据恢复未写入所述条带的数据。
可选的,所述根据已写入所述条带的数据恢复未写入所述条带的数据前还包括:
判断RAID阵列是否具有数据恢复能力;
若所述RAID阵列具有数据恢复能力,则根据已写入所述条带的数据恢复未写入所述条带的数据。
可选的,所述判断所述RAID阵列是否具有数据恢复能力包括:
判断所述RAID阵列是否有故障盘;
若所述RAID阵列没有故障盘,则所述RAID阵列具有数据恢复能力。
可选的,还包括:
若所述RAID阵列有故障盘,则判断故障盘的个数是否超出允许值;
若所述故障盘的个数未超出所述允许值,则所述RAID阵列具有数据恢复能力;
若所述故障盘的个数超出所述允许值,则所述RAID阵列不具有数据恢复能力。
可选的,所述根据已写入所述条带的数据恢复未写入所述条带的数据前还包括:
判断第一预设时长后所述安全内存是否恢复可用;
若所述第一预设时长后所述安全内存未恢复可用,则根据已写入所述条带的数据恢复未写入所述条带的数据;
若所述第一预设时长后所述安全内存恢复可用,则从所述安全内存读取所述数据与所述校验数据,并将读取的所述数据与所述校验数据写入对应的所述条带。
可选的,还包括:
若所述RAID阵列不具有数据恢复能力,则判断第二预设时长后所述安全内存是否恢复可用;
若所述第二预设时长后所述安全内存未恢复可用,则结束条带数据恢复流程;
若所述第二预设时长后所述安全内存恢复可用,则从所述安全内存读取所述数据与所述校验数据,并将读取的所述数据与所述校验数据写入对应的所述条带。
可选的,还包括:
判断第三预设时长后所述数据与所述校验数据是否成功写入所述条带;
若第三预设时长后所述数据与所述校验数据成功写入所述条带,则删除所述安全内存中的所述数据与所述校验数据。
可选的,还包括:
若第三预设时长后所述数据与所述校验数据未成功写入所述条带,则记录写入异常事件。
可选的,所述保存RAID阵列中条带的条带信息包括:
保存所述条带的条带地址和/或所述条带的条带编号。
可选的,所述保存RAID阵列中条带的条带信息包括:
在所述安全内存保存所述条带信息。
可选的,还包括:
将所述数据与所述校验数据备份到所述I/O群组中的另一个节点。
可选的,还包括:
所述校验数据保存到所述安全内存中,且所述数据写入磁盘后,向主机发送写成功信号。
为解决上述技术问题,本申请还提供了一种RAID阵列的数据恢复装置,包括:
第一保存模块,用于保存RAID阵列中条带的条带信息;
第二保存模块,用于在安全内存中保存待写入所述条带的数据与校验数据;所述安全内存为存储系统掉电后,由电池备电单元为所述存储系统供电时,完成数据保存的内存;
读取模块,用于在所述存储系统掉电恢复后,从所述安全内存读取所述数据与所述校验数据;
写入模块,用于读取所述条带信息,并根据所述条带信息,将读取的所述数据与所述校验数据写入所述条带。
为解决上述技术问题,本申请还提供了一种RAID阵列的数据恢复设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上任一项所述的RAID阵列的数据恢复方法的步骤。
为解决上述技术问题,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述的RAID阵列的数据恢复方法的步骤。
本申请所提供的RAID阵列的数据恢复方法,包括:保存RAID阵列中条带的条带信息;在安全内存中保存待写入所述条带的数据与校验数据;所述安全内存为存储系统掉电后,由电池备电单元为所述存储系统供电时,完成数据保存的内存;在所述存储系统恢复后,从所述安全内存读取所述数据与所述校验数据;读取所述条带信息,并根据所述条带信息,将读取的所述数据与所述校验数据写入所述条带。
可见,本申请所提供的RAID阵列的数据恢复方法,待写入条带的数据与校验数据会保存到电池备电单元保护的内存中,即使存储系统发生异常掉电,在电池备电单元供电的情况下,也可以确保待写入条带的数据与校验数据均会完整的保存到电池备电单元保护的内存中,进而在存储系统恢复后可以从电池备电单元保护的内存中读取数据并重新写入条带,恢复条带的一致性。整个过程不需要多次读写底层文件系统,不会对存储系统的性能造成影响,也不需要增加硬件资源。
本申请所提供的RAID阵列的数据恢复装置、设备以及计算机可读存储介质均具有上述技术效果。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的一种RAID阵列的数据恢复方法的流程示意图;
图2为本申请实施例所提供的一种主机I/O按条带切分的示意图;
图3为本申请实施例所提供的一种RAID阵列的数据恢复装置的示意图;
图4为本申请实施例所提供的一种RAID阵列的数据恢复设备的示意图。
具体实施方式
本申请的核心是提供一种RAID阵列的数据恢复方法,能够解决写洞问题,且不会对存储系统的性能造成影响,也不需要增加硬件资源。本申请的另一个核心是提供一种RAID阵列的数据恢复装置、设备以及计算机可读存储介质,均具有上述技术效果。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例所提供的一种RAID阵列的数据恢复方法的流程示意图,参考图1所示,该方法包括:
S101:保存RAID阵列中条带的条带信息;
对于正在写入数据的条带,保存该条带的条带信息,以便基于此条带信息恢复条带的一致性。对于条带信息的具体类型,可以进行差异性设置,能够据此针对性的恢复条带数据即可。
在一些实施例中,所述保存RAID阵列中条带的条带信息包括:
保存所述条带的条带地址和/或所述条带的条带编号
条带信息可以为条带地址。在恢复条带数据时,可以根据所保存的条带地址,对相应的条带重新写入数据。条带信息还可以为条带编号。在恢复条带数据时,可以根据所保存的条带编号,对相应的条带重新写入数据。
对于条带信息保存的具体位置,同样可以差异性设置。
在一些实施例中,所述保存RAID阵列中条带的条带信息包括:
在I/O群组的各个节点中保存所述条带信息。
为了保证存储系统的高可用性,使用两个节点组成一个I/OGROUP即I/O群组,I/O群组中的两个节点互为对端节点,一个或多个I/O群组组成集群,集群中节点可相互通信。本实施例在保存条带的条带信息时,将条带信息保存到I/O群组的两个节点,后续从I/O群组的任意一个节点都可以读取到条带信息,确保能够获取到条带信息。进一步,条带信息可以保存在电池备电单元保护的内存中。
S102:在安全内存中保存待写入所述条带的数据与校验数据;所述安全内存为存储系统掉电后,由电池备电单元为所述存储系统供电完成数据保存的内存;
区别于传统的基于文件系统与基于非易失性内存的恢复条带数据的方式,本实施例基于安全内存即电池备电单元保护的内存进行条带数据恢复。电池备电单元保护的内存是指在存储系统掉电后,由电池备电单元为存储继续供电,在电池备电单元供电的情况下,完成数据保存的内存。对于要写入条带的数据与校验数据,本实施例将其均保存到电池备电单元保护的内存中。即使存储系统发生掉电故障,这些数据与校验数据也能够正常保存到电池备电单元保护的内存中。
其中,一些实施例中,所述在安全内存中保存待写入所述条带的数据与校验数据包括:
在I/O群组中的写请求对应的节点的所述安全内存中保存所述数据与所述校验数据。
本实施例在保存待写入条带的数据与校验数据时,只将其保存到I/O群组中的写请求对应的节点,I/O群组中的另一个节点不保存待写入条带的数据与校验数据。
进一步,在一些实施例中,还可以包括:
将所述数据与所述校验数据备份到所述I/O群组中的另一个节点。以便后续在写请求对应的节点无法读取到保存的数据与校验数据时,可以从另外一个节点处读取到保存的数据与校验数据。
S103:在所述存储系统恢复后,从所述安全内存读取所述数据与所述校验数据;
S104:读取所述条带信息,并根据所述条带信息,将读取的所述数据与所述校验数据写入所述条带。
存储系统恢复后,从电池备电单元保护的内存中读取数据与校验数据,并根据读取的条带信息将数据与校验数据重新写入相应的条带,恢复该条带一致性。
在一些实施例中,所述从所述安全内存读取所述数据与所述校验数据前还可以包括:
判断所述安全内存是否可用;
若所述安全内存可用,则从所述安全内存读取所述数据与所述校验数据。
读取电池备电单元保护的内存中保存的数据与校验数据的前提是电池备电单元保护的内存可用。可用是指可以从电池备电单元保护的内存中读取数据与校验数据且数据与校验有效。如果可用,则从电池备电单元保护的内存中读取数据与校验数据。如果不可用,可以结束本次的条带数据恢复流程,也可以进一步采取其他方式恢复条带数据。
其中,在一些实施例中,若所述安全内存不可用,则根据已写入所述条带的数据恢复未写入所述条带的数据。
本实施例在电池备电单元保护的内存不可用的情况下,进一步采取备用方案,根据所述存储系统掉电时已写入所述条带的数据恢复未写入所述条带的数据,以此恢复条带一致性。
例如,根据已写入的数据重构校验数据。或者,根据已写入的数据与校验数据恢复未写入的数据。
其中,在一些实施例中,所述根据所述存储系统掉电时已写入所述条带的数据恢复未写入所述条带的数据前还包括:
判断RAID阵列是否具有数据恢复能力;
若所述RAID阵列具有数据恢复能力,则根据所述存储系统掉电时已写入所述条带的数据恢复未写入所述条带的数据。
根据存储系统掉电时写入条带的数据恢复未写入条带的数据是在RAID阵列具有数据恢复能力时实现的。如果RAID阵列不具有数据恢复能力,则无法根据所述存储系统掉电时已写入所述条带的数据恢复未写入所述条带的数据。
其中,所述判断所述RAID阵列是否具有数据恢复能力可以包括:
判断所述RAID阵列是否有故障盘;
若所述RAID阵列没有故障盘,则所述RAID阵列具有数据恢复能力。
如果RAID阵列没有故障盘,表明能够从每个数据盘读出数据,故此时可以根据所述存储系统掉电时已写入所述条带的数据恢复未写入所述条带的数据。如果RAID阵列有故障盘,则可能无法实现根据所述存储系统掉电时已写入所述条带的数据恢复未写入所述条带的数据。因此,在一些实施例中,若所述RAID阵列有故障盘,则判断故障盘的个数是否超出允许值;若所述故障盘的个数未超出所述允许值,则所述RAID阵列具有数据恢复能力;若所述故障盘的个数超出所述允许值,则所述RAID阵列不具有数据恢复能力。
例如,对于RAID5阵列,如果故障盘的个数超出一个,则其不具有数据恢复能力,此时无法实现根据所述存储系统掉电时已写入所述条带的数据恢复未写入所述条带的数据。
例如,对于RAID6阵列,如果故障盘的个数超出两个,则其不具有数据恢复能力,此时无法实现根据所述存储系统掉电时已写入所述条带的数据恢复未写入所述条带的数据。
此外,在一些实施例中,所述根据已写入所述条带的数据恢复未写入所述条带的数据前还包括:
判断第一预设时长后所述安全内存是否恢复可用;
若所述第一预设时长后所述安全内存未恢复可用,则根据掉电时已写入所述条带的数据恢复未写入所述条带的数据;
若所述第一预设时长后所述安全内存恢复可用,则从所述安全内存读取所述数据与所述校验数据,并将读取的所述数据与所述校验数据写入对应的所述条带。
电池备电单元保护的内存不可用可能是由于某些原因导致的暂时性不可用,故可以在电池备电单元保护的内存不可用时,等待一段时间,如果一段时间后,电池备电单元保护的内存恢复可用,则从所述安全内存读取所述数据与所述校验数据,并将读取的所述数据与所述校验数据写入对应的所述条带。如果一段时间后,电池备电单元保护的内存仍不可用,则根据所述存储系统掉电时已写入所述条带的数据恢复未写入所述条带的数据。
进一步,在一些实施例中,还包括:
若所述RAID阵列不具有数据恢复能力,则判断第二预设时长后所述安全内存是否恢复可用;
若所述第二预设时长后所述安全内存未恢复可用,则结束条带数据恢复流程;
若所述第二预设时长后所述安全内存恢复可用,则从所述安全内存读取所述数据与所述校验数据,并将读取的所述数据与所述校验数据写入对应的所述条带。
本实施例在判断出RAID阵列不具有数据恢复能力时,等待第二预设时长。如果第二预设时长后电池备电单元保护的内存恢复可用,则从所述安全内存读取所述数据与所述校验数据,并将读取的所述数据与所述校验数据写入对应的所述条带。如果第二预设时长后电池备电单元保护的内存仍不可用,则结束本次的条带数据恢复流程。
进一步,在一些实施例中,还包括:
判断第三预设时长后所述数据与所述校验数据是否成功写入所述条带;
若第三预设时长后所述数据与所述校验数据成功写入所述条带,则删除所述安全内存中的所述数据与所述校验数据。
可以在启动条带数据恢复的第二预设时长后,判断数据与校验数据是否成功写入了对应的条带。如果数据与校验数据已经成功写入了对应的条带,则删除电池备电单元保护的内存中的该数据与校验数据,以释放内存空间。如果第三预设时长后所述数据与所述校验数据未成功写入所述条带,则可以记录写入异常事件,以便管理人员据此排查故障,维护存储系统。
进一步,在一些实施例中,还包括:
所述校验数据保存到所述安全内存中,且所述数据写入磁盘后,向主机发送写成功信号。
为了提高RAID阵列的写性能,本实施例在将校验数据保存到电池备电单元保护的内存中且数据分块的数据均写入磁盘后,就直接向主机发送写成功信号,而不再等待校验数据写入磁盘后才向主机发送写成功信号,从而可以有效提高单节点内部RAID阵列的写性能。
具体而言,参考图2所示,主机请求的写数据按条带切分,图2中写数据切分为条带stripe0、stripe1和stripe2,每个条带都有数据分块strip和校验分块parity。在写数据按条带切分的基础上,将切分后的条带stripe,继续拆分成条带中多个分块的写请求,每个数据分块strip单独处理。每个数据分块strip开始写入磁盘中,并由条带stripe中的多个数据分块strip异或运算得出校验分块parity;将校验分块parity的校验数据保存到电池备电单元保护的内存中。待所有数据分块strip都写完成之后,直接向主机发送写成功信号。
综上所述,本申请所提供的RAID阵列的数据恢复方法,待写入条带的数据与校验数据会保存到电池备电单元保护的内存中,即使存储系统发生异常掉电,在电池备电单元供电的情况下,也可以确保待写入条带的数据与校验数据均会完整的保存到电池备电单元保护的内存中,进而在存储系统恢复后可以从电池备电单元保护的内存中读取数据并重新写入条带,恢复条带的一致性。整个过程不需要多次读写底层文件系统,不会对存储系统的性能造成影响,也不需要增加硬件资源。
本申请还提供了一种RAID阵列的数据恢复装置,下文描述的该装置可以与上文描述的方法相互对应参照。请参考图3,图3为本申请实施例所提供的一种RAID阵列的数据恢复装置的示意图,结合图3所示,该装置包括:
第一保存模块10,用于保存RAID阵列中条带的条带信息;
第二保存模块20,用于在安全内存中保存待写入所述条带的数据与校验数据;所述安全内存为存储系统掉电后,由电池备电单元为所述存储系统供电时,完成数据保存的内存;
读取模块30,用于在所述存储系统掉电恢复后,从所述安全内存读取所述数据与所述校验数据;
写入模块40,用于读取所述条带信息,并根据所述条带信息,将读取的所述数据与所述校验数据写入所述条带。
在上述实施例的基础上,作为一种具体的实施方式,所述第一保存模块10具体用于:
在I/O群组的各个节点中保存所述条带信息。
在上述实施例的基础上,作为一种具体的实施方式,所述第二保存模块20具体用于:
在I/O群组中的写请求对应的节点的所述安全内存中保存所述数据与所述校验数据。
在上述实施例的基础上,作为一种具体的实施方式,还包括:
第一判断模块,用于判断所述安全内存是否可用;
若所述安全内存可用,则所述读取模块30从所述安全内存读取所述数据与所述校验数据。
在上述实施例的基础上,作为一种具体的实施方式,还包括:
恢复模块,用于若所述安全内存不可用,则根据已写入所述条带的数据恢复未写入所述条带的数据。
在上述实施例的基础上,作为一种具体的实施方式,还包括:
第二判断模块,用于判断RAID阵列是否具有数据恢复能力;
若所述RAID阵列具有数据恢复能力,则所述恢复模块根据已写入所述条带的数据恢复未写入所述条带的数据。
在上述实施例的基础上,作为一种具体的实施方式,所述第二判断模块具体用于:
判断所述RAID阵列是否有故障盘;
第一确定模块,用于若所述RAID阵列没有故障盘,则所述RAID阵列具有数据恢复能力。
在上述实施例的基础上,作为一种具体的实施方式,还包括:
第三判断模块,用于若所述RAID阵列有故障盘,则判断故障盘的个数是否超出允许值;
第二确定模块,用于若所述故障盘的个数未超出所述允许值,则所述RAID阵列具有数据恢复能力;
第三确定模块,用于若所述故障盘的个数超出所述允许值,则所述RAID阵列不具有数据恢复能力。
在上述实施例的基础上,作为一种具体的实施方式,还包括:
第四判断模块,用于判断第一预设时长后所述安全内存是否恢复可用;
若所述第一预设时长后所述安全内存未恢复可用,则所述恢复模块根据已写入所述条带的数据恢复未写入所述条带的数据;
若所述第一预设时长后所述安全内存恢复可用,则所述读取模块30从所述安全内存读取所述数据与所述校验数据,所述写入模块40将读取的所述数据与所述校验数据写入对应的所述条带。
在上述实施例的基础上,作为一种具体的实施方式,还包括:
第五判断模块,用于若所述RAID阵列不具有数据恢复能力,则判断第二预设时长后所述安全内存是否恢复可用;
结束模块,用于若所述第二预设时长后所述安全内存未恢复可用,则结束条带数据恢复流程;
若所述第二预设时长后所述安全内存恢复可用,则所述读取模块30从所述安全内存读取所述数据与所述校验数据,所述写入模块40将读取的所述数据与所述校验数据写入对应的所述条带。
在上述实施例的基础上,作为一种具体的实施方式,还包括:
第六判断模块,用于判断第三预设时长后所述数据与所述校验数据是否成功写入所述条带;
删除模块,用于若第三预设时长后所述数据与所述校验数据成功写入所述条带,则删除所述安全内存中的所述数据与所述校验数据。
在上述实施例的基础上,作为一种具体的实施方式,还包括:
记录模块,用于若第三预设时长后所述数据与所述校验数据未成功写入所述条带,则记录写入异常事件。
在上述实施例的基础上,作为一种具体的实施方式,所述第一保存模块10具体用于:
保存所述条带的条带地址和/或所述条带的条带编号。
在上述实施例的基础上,作为一种具体的实施方式,所述第一保存模块10具体用于:
在所述安全内存保存所述条带信息。
在上述实施例的基础上,作为一种具体的实施方式,还包括:
备份模块,用于将所述数据与所述校验数据备份到所述I/O群组中的另一个节点。
在上述实施例的基础上,作为一种具体的实施方式,还包括:
发送模块,用于所述校验数据保存到所述安全内存中,且所述数据写入磁盘后,向主机发送写成功信号。
本申请所提供的RAID阵列的数据恢复装置,待写入条带的数据与校验数据会保存到电池备电单元保护的内存中,即使存储系统发生异常掉电,在电池备电单元供电的情况下,也可以确保待写入条带的数据与校验数据均会完整的保存到电池备电单元保护的内存中,进而在存储系统恢复后可以从电池备电单元保护的内存中读取数据并重新写入条带,恢复条带的一致性。整个过程不需要多次读写底层文件系统,不会对存储系统的性能造成影响,也不需要增加硬件资源。
本申请还提供了一种RAID阵列的数据恢复设备,参考图4所示,该设备包括存储器1和处理器2。
存储器1,用于存储计算机程序;
处理器2,用于执行计算机程序实现如下的步骤:
保存RAID阵列中条带的条带信息;在安全内存中保存待写入所述条带的数据与校验数据;所述安全内存为存储系统掉电后,由电池备电单元为所述存储系统供电时,完成数据保存的内存;在所述存储系统恢复后,从所述安全内存读取所述数据与所述校验数据;读取所述条带信息,并根据所述条带信息,将读取的所述数据与所述校验数据写入所述条带。
对于本申请所提供的设备的介绍请参照上述方法实施例,本申请在此不做赘述。
本申请还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如下的步骤:
保存RAID阵列中条带的条带信息;在安全内存中保存待写入所述条带的数据与校验数据;所述安全内存为存储系统掉电后,由电池备电单元为所述存储系统供电时,完成数据保存的内存;在所述存储系统恢复后,从所述安全内存读取所述数据与所述校验数据;读取所述条带信息,并根据所述条带信息,将读取的所述数据与所述校验数据写入所述条带。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory ,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
对于本申请所提供的计算机可读存储介质的介绍请参照上述方法实施例,本申请在此不做赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、设备以及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的RAID阵列的数据恢复方法、装置、设备以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围。
Claims (18)
1.一种RAID阵列的数据恢复方法,其特征在于,包括:
保存RAID阵列中条带的条带信息;
在安全内存中保存待写入所述条带的数据与校验数据;所述安全内存为存储系统掉电后,由电池备电单元为所述存储系统供电时,完成数据保存的内存;
在所述存储系统恢复后,从所述安全内存读取所述数据与所述校验数据;
读取所述条带信息,并根据所述条带信息,将读取的所述数据与所述校验数据写入所述条带;
还包括:
所述校验数据保存到所述安全内存中,且所述数据写入磁盘后,向主机发送写成功信号。
2.根据权利要求1所述的RAID阵列的数据恢复方法,其特征在于,所述保存RAID阵列中条带的条带信息包括:
在I/O群组的各个节点中保存所述条带信息。
3.根据权利要求1所述的RAID阵列的数据恢复方法,其特征在于,所述在安全内存中保存待写入所述条带的数据与校验数据包括:
在I/O群组中的写请求对应的节点的所述安全内存中保存所述数据与所述校验数据。
4.根据权利要求1所述的RAID阵列的数据恢复方法,其特征在于,所述从所述安全内存读取所述数据与所述校验数据前还包括:
判断所述安全内存是否可用;
若所述安全内存可用,则从所述安全内存读取所述数据与所述校验数据。
5.根据权利要求4所述的RAID阵列的数据恢复方法,其特征在于,还包括:
若所述安全内存不可用,则根据已写入所述条带的数据恢复未写入所述条带的数据。
6.根据权利要求5所述的RAID阵列的数据恢复方法,其特征在于,所述根据已写入所述条带的数据恢复未写入所述条带的数据前还包括:
判断RAID阵列是否具有数据恢复能力;
若所述RAID阵列具有数据恢复能力,则根据已写入所述条带的数据恢复未写入所述条带的数据。
7.根据权利要求6所述的RAID阵列的数据恢复方法,其特征在于,所述判断所述RAID阵列是否具有数据恢复能力包括:
判断所述RAID阵列是否有故障盘;
若所述RAID阵列没有故障盘,则所述RAID阵列具有数据恢复能力。
8.根据权利要求7所述的RAID阵列的数据恢复方法,其特征在于,还包括:
若所述RAID阵列有故障盘,则判断故障盘的个数是否超出允许值;
若所述故障盘的个数未超出所述允许值,则所述RAID阵列具有数据恢复能力;
若所述故障盘的个数超出所述允许值,则所述RAID阵列不具有数据恢复能力。
9.根据权利要求5所述的RAID阵列的数据恢复方法,其特征在于,所述根据已写入所述条带的数据恢复未写入所述条带的数据前还包括:
判断第一预设时长后所述安全内存是否恢复可用;
若所述第一预设时长后所述安全内存未恢复可用,则根据已写入所述条带的数据恢复未写入所述条带的数据;
若所述第一预设时长后所述安全内存恢复可用,则从所述安全内存读取所述数据与所述校验数据,并将读取的所述数据与所述校验数据写入对应的所述条带。
10.根据权利要求6所述的RAID阵列的数据恢复方法,其特征在于,还包括:
若所述RAID阵列不具有数据恢复能力,则判断第二预设时长后所述安全内存是否恢复可用;
若所述第二预设时长后所述安全内存未恢复可用,则结束条带数据恢复流程;
若所述第二预设时长后所述安全内存恢复可用,则从所述安全内存读取所述数据与所述校验数据,并将读取的所述数据与所述校验数据写入对应的所述条带。
11.根据权利要求1所述的RAID阵列的数据恢复方法,其特征在于,还包括:
判断第三预设时长后所述数据与所述校验数据是否成功写入所述条带;
若第三预设时长后所述数据与所述校验数据成功写入所述条带,则删除所述安全内存中的所述数据与所述校验数据。
12.根据权利要求11所述的RAID阵列的数据恢复方法,其特征在于,还包括:
若第三预设时长后所述数据与所述校验数据未成功写入所述条带,则记录写入异常事件。
13.根据权利要求1所述的RAID阵列的数据恢复方法,其特征在于,所述保存RAID阵列中条带的条带信息包括:
保存所述条带的条带地址和/或所述条带的条带编号。
14.根据权利要求1所述的RAID阵列的数据恢复方法,其特征在于,所述保存RAID阵列中条带的条带信息包括:
在所述安全内存保存所述条带信息。
15.根据权利要求3所述的RAID阵列的数据恢复方法,其特征在于,还包括:
将所述数据与所述校验数据备份到所述I/O群组中的另一个节点。
16.一种RAID阵列的数据恢复装置,其特征在于,包括:
第一保存模块,用于保存RAID阵列中条带的条带信息;
第二保存模块,用于在安全内存中保存待写入所述条带的数据与校验数据;所述安全内存为存储系统掉电后,由电池备电单元为所述存储系统供电时,完成数据保存的内存;
读取模块,用于在所述存储系统掉电恢复后,从所述安全内存读取所述数据与所述校验数据;
写入模块,用于读取所述条带信息,并根据所述条带信息,将读取的所述数据与所述校验数据写入所述条带;
还包括:
发送模块,用于所述校验数据保存到所述安全内存中,且所述数据写入磁盘后,向主机发送写成功信号。
17.一种RAID阵列的数据恢复设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至15任一项所述的RAID阵列的数据恢复方法的步骤。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至15任一项所述的RAID阵列的数据恢复方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211508424.XA CN115599607B (zh) | 2022-11-29 | 2022-11-29 | 一种raid阵列的数据恢复方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211508424.XA CN115599607B (zh) | 2022-11-29 | 2022-11-29 | 一种raid阵列的数据恢复方法及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115599607A CN115599607A (zh) | 2023-01-13 |
CN115599607B true CN115599607B (zh) | 2023-06-16 |
Family
ID=84853336
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211508424.XA Active CN115599607B (zh) | 2022-11-29 | 2022-11-29 | 一种raid阵列的数据恢复方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115599607B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115878047B (zh) * | 2023-01-19 | 2023-06-16 | 苏州浪潮智能科技有限公司 | 一种数据一致性校验方法、装置、设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1991775A (zh) * | 2005-12-28 | 2007-07-04 | 英业达股份有限公司 | 存储系统的高速缓存数据的保护方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104881242A (zh) * | 2014-02-28 | 2015-09-02 | 中兴通讯股份有限公司 | 数据写入方法及装置 |
CN104035830B (zh) * | 2014-06-24 | 2017-12-15 | 浙江宇视科技有限公司 | 一种数据恢复方法和装置 |
US9921914B2 (en) * | 2015-11-03 | 2018-03-20 | Intel Corporation | Redundant array of independent disks (RAID) write hole solutions |
US11467777B1 (en) * | 2020-10-12 | 2022-10-11 | iodyne, LLC | Method and system for storing data in portable storage devices |
-
2022
- 2022-11-29 CN CN202211508424.XA patent/CN115599607B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1991775A (zh) * | 2005-12-28 | 2007-07-04 | 英业达股份有限公司 | 存储系统的高速缓存数据的保护方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115599607A (zh) | 2023-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100701563B1 (ko) | 스토리지 제어 장치 및 방법 | |
US7739544B2 (en) | Disk array system and rebuild method thereof | |
US7640452B2 (en) | Method for reconstructing data in case of two disk drives of RAID failure and system therefor | |
US7721143B2 (en) | Method for reducing rebuild time on a RAID device | |
US7805632B1 (en) | Storage system and method for rapidly recovering from a system failure | |
US20090313617A1 (en) | Method for Updating Control Program of Physical Storage Device in Storage Virtualization System and Storage Virtualization Controller and System Thereof | |
US8225136B2 (en) | Control method and storage device | |
US10643668B1 (en) | Power loss data block marking | |
JP2013041455A (ja) | ストレージシステム、ストレージ制御装置およびストレージ制御方法 | |
CN104035830A (zh) | 一种数据恢复方法和装置 | |
CN111158599B (zh) | 一种写数据的方法、装置、设备及存储介质 | |
CN109491609B (zh) | 一种缓存数据处理方法、装置、设备及可读存储介质 | |
US5421003A (en) | Disk storage system with fault tolerant media maintenance | |
JP2006079418A (ja) | 記憶制御装置、制御方法及びプログラム | |
CN115599607B (zh) | 一种raid阵列的数据恢复方法及相关装置 | |
CN108874312B (zh) | 数据存储方法以及存储设备 | |
CN110795273B (zh) | 一种raid的写洞保护方法、系统及存储介质 | |
US8015435B2 (en) | Data writing method | |
CN110941397A (zh) | 存储集群bbu故障时的节点模式调整方法及相关组件 | |
CN111240903A (zh) | 数据恢复方法及相关设备 | |
US10168935B2 (en) | Maintaining access times in storage systems employing power saving techniques | |
US20140173337A1 (en) | Storage apparatus, control method, and control program | |
CN115934403A (zh) | 数据恢复方法、装置及固态硬盘 | |
CN112068770B (zh) | 一种基于raid条带写优化方法 | |
KR20030073982A (ko) | 레이드 서브 시스템에서 중복 데이터의 일관성 유지 방법 |
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 |