CN107391046A - 一种raid系统的数据写入方法及装置 - Google Patents
一种raid系统的数据写入方法及装置 Download PDFInfo
- Publication number
- CN107391046A CN107391046A CN201710651164.4A CN201710651164A CN107391046A CN 107391046 A CN107391046 A CN 107391046A CN 201710651164 A CN201710651164 A CN 201710651164A CN 107391046 A CN107391046 A CN 107391046A
- Authority
- CN
- China
- Prior art keywords
- data block
- old
- new
- verification
- disk
- 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
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/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
-
- 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
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/064—Management of blocks
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
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)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明实施例公开了一种RAID系统的数据写入方法及装置,包括获取待写入的第一新数据块,依据第一新数据块确定与其对应的第一磁盘,并获取第一磁盘中的第一旧数据块;获取与第一旧数据块对应的第一旧校验数据块,并依据第一新数据块、第一旧数据块及第一旧校验数据块得到第一新校验数据块;将第一新数据块写入第一磁盘,覆盖第一旧数据块;判断是否达到预设时间,若是,则将第一新校验数据块写入相应的校验磁盘,并覆盖第一旧校验数据块,否则,将第一新校验数据块缓存作为第二旧校验数据块至内存中,以便当写入第二新数据块时,采用第二旧校验数据块计算与第二新数据块对应的第二新校验数据块。减少读写校验磁盘次数,降低IO延时,提高系统性能。
Description
技术领域
本发明实施例涉及SAN存储系统技术领域,特别是涉及一种Raid系统的数据写入方法及装置。
背景技术
随着大数据时代的到来,越来越多的数据信息需要存储,并且数据信息的安全性也越来越重要。目前,在SAN存储系统中,数据信息是通过RAID(Redundant Array ofIndependent Disks,独立冗余磁盘阵列)提供冗余保护的,其中,RAID5和RAID6是通过条带校验方式提高冗余保护的。例如一个条带中包括两个用于存储数据块的磁盘和一个用于存储校验数据块的磁盘,D1和D2分别为该条带中的两个磁盘上的两个数据块,P为该条带中的校验磁盘中的校验数据块,该校验数据块P是由D1和D2做异或运算得到的,也即D1⊕D2=P,其中⊕为异或运算符号,由于异或运算的逆运算也是异或运算,所以当D1、D2和P中的任意一个丢失时,都可以由另外两个的异或运算对该丢失的数据进行恢复,从而确保数据的安全性。
RAID对上层提供连续的逻辑地址,其内部会将逻辑地址映射到每个磁盘的数据块上。当用户执行读操作时,只需要读取数据块即可;当执行写操作时,需要写入数据块,并更新校验块。写操作可以分为三种,分别为全条带写、重构写和读改写。如果写操作的长度覆盖了一个条带的所有数据块,直接用新数据块计算出新的校验块,将新数据块和新校验块写入磁盘,数据盘和校验盘都只有一次写操作,即为全条带写模式。如果写操作的长度覆盖一个条带的大部分数据块,则需要将剩余的数据块读出来,计算出新的校验块,将新数据块和新校验块写入磁盘,这种模式成为重构写。如果写操作的长度只覆盖少部分数据块,则将写操作按数据块拆分,读出旧的数据块和旧校验块,使用旧数据块和旧校验块计算出其他数据块的异或值,然后再和新数据块计算异或,得出新的校验块,最后将新数据块和新校验块写入磁盘,这种模式成为读改写。
由上述可知,当数据需要采用读改写方式写入磁盘时,可以将一次写操作分解为两次读磁盘,即读出旧数据块和读出旧校验块,并将获取的新数据块和得到的新校验块写入磁盘,此时需要4次IO,当上层有较多个数据需要需要采用读改写的方式写入磁盘时,整个过程所涉及到的读盘次数和写盘次数较多,增加了IO延时,降低了RAID系统的性能。
因此,如何提供一种解决上述问题的RAID系统的数据写入方法及装置成为本领域的技术人员需要解决的问题。
发明内容
本发明实施例的目的是提供一种RAID系统的数据写入方法及装置,在使用过程中可以减少读、写校验磁盘的次数,从而降低IO延时,以提高RAID系统的性能。
为解决上述技术问题,本发明实施例提供了一种RAID系统的数据写入方法,包括:
获取待写入的第一新数据块,依据第一新数据块确定与其对应的第一磁盘,并获取所述第一磁盘中的第一旧数据块;
获取与所述第一旧数据块对应的第一旧校验数据块,并依据所述第一新数据块、所述第一旧数据块以及所述第一旧校验数据块得到第一新校验数据块;
将所述第一新数据块写入所述第一磁盘,并覆盖所述第一旧数据块;
判断是否达到预设时间,如果是,则将所述第一新校验数据块写入相应的校验磁盘,并将其作为第二旧校验数据块覆盖所述第一旧校验数据块,否则,将所述第一新校验数据块缓存作为所述第二旧校验数据块至内存中,以便当写入第二新数据块时,采用所述第二旧校验数据块计算与所述第二新数据块对应的第二新校验数据块。
可选的,所述依据所述第一新数据块、所述第一旧数据块以及所述第一旧校验数据块得到第一新校验数据块的过程为:
将所述第一旧数据块和所述第一旧校验数据块进行异或运算,得到所述条带中的第一剩余旧数据块;
将所述第一新数据块和所述第一剩余旧数据块进行异或运算,得到第一新校验数据块。
可选的,所述获取与所述第一旧数据块对应的第一旧校验数据块的过程为:
判断所述内存中是否缓存有与所述第一旧数据块对应的第一旧校验数据块,如果是,则获取所述第一旧校验数据块,否则,确定与所述第一磁盘对应的条带中的校验磁盘,并从所述校验磁盘中获取所述第一旧校验数据块。
为解决上述技术问题,本发明实施例提供了一种Raid系统的数据写入装置,包括:
获取模块,用于获取待写入的第一新数据块,依据第一新数据块确定与其对应的第一磁盘,并获取所述第一磁盘中的第一旧数据块;用于获取与所述第一旧数据块对应的第一旧校验数据块;
计算模块,用于依据所述第一新数据块、所述第一旧数据块以及所述第一旧校验数据块得到第一新校验数据块;
写模块,用于将所述第一新数据块写入所述第一磁盘,并覆盖所述第一旧数据块;还用于将所述第一新校验数据块写入相应的校验磁盘,并将其作为第二旧校验数据块覆盖所述第一旧校验数据块;
判断模块,用于判断是否达到预设时间,如果是,则触发所述写模块;否则,触发存储模块;
所述存储模块,用于将所述第一新校验数据块缓存作为所述第二旧校验数据块至内存中,以便当写入第二新数据块时,采用所述第二旧校验数据块计算与所述第二新数据块对应的第二新校验数据块。
可选的,所述计算模块包括:
第一异或运算单元,用于将所述第一旧数据块和所述第一旧校验数据块进行异或运算,得到所述条带中的第一剩余旧数据块;
第二异或运算单元,用于将所述第一新数据块和所述第一剩余旧数据块进行异或运算,得到第一新校验数据块。
可选的,所述获取模块包括:
判断子单元,用于判断所述内存中是否缓存有与所述第一旧数据块对应的第一旧校验数据块,如果是,则触发第一获取子单元;否则,从触发确定子单元;
所述第一获取子单元,用于从所述内存获取所述第一旧校验数据块;
所述第二获取子单元,用于确定与所述第一磁盘对应的条带中的校验磁盘,并从所述校验磁盘中获取所述第一旧校验数据块。
本发明实施例提供了一种RAID系统的数据写入方法及装置,包括获取待写入的第一新数据块,依据第一新数据块确定与其对应的第一磁盘,并获取第一磁盘中的第一旧数据块;获取与第一旧数据块对应的第一旧校验数据块,并依据第一新数据块、第一旧数据块以及第一旧校验数据块得到第一新校验数据块;将第一新数据块写入第一磁盘,并覆盖第一旧数据块;判断是否达到预设时间,如果是,则将第一新校验数据块写入相应的校验磁盘,并将其作为第二旧校验数据块覆盖第一旧校验数据块,否则,将第一新校验数据块缓存作为第二旧校验数据块至内存中,以便当写入第二新数据块时,采用第二旧校验数据块计算与第二新数据块对应的第二新校验数据块。
可见,本发明实施例在采用读改写操作的方式对多个数据块进行写操作时,将第一新数据块写入至相应的第一磁盘中,并且在没有达到预设时间可以将与当前待写入的第一新数据块对应的第一新校验数据块缓存至内存中,当该条带下次写入第二新数据块时,直接将该第一新校验数据块作为本次的第二旧校验数据块使用,以得到与该第二新数据块对应的第二新校验数据块,如果此时还没有达到预设时间,则将该第二新校验数据块缓存至内存中并覆盖第一新校验数据块,以便下次新数据块写入时使用;如果此时到达预设时间,则将第二新校验数据块写入至相应的校验磁盘中。本发明实施例,在采用读改写操作的方式对多个数据块进行写操作时,可以通过合并多次校验数据块修改操作后将合并后的校验数据块一次性写入校验磁盘,可以减少读、写校验磁盘的次数,从而降低IO延时,以提高RAID系统的性能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种RAID系统的数据写入方法的流程示意图;
图2为本发明实施例提供的一种RAID系统的数据写入装置的结构示意图。
具体实施方式
本发明实施例提供了一种RAID系统的数据写入方法及装置,在使用过程中可以减少读、写校验磁盘的次数,从而降低IO延时,以提高RAID系统的性能。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参照图1,图1为本发明实施例提供的一种RAID系统的数据写入方法的流程示意图。
该方法包括:
S11:获取待写入的第一新数据块,依据第一新数据块确定与其对应的第一磁盘,并获取第一磁盘中的第一旧数据块;
需要说明的是,在用户执行写操作时,如果写操作的长度只覆盖了少部分磁盘中的数据块,则采用读改写的方式写入数据,并且当采用读改写的方式写入数据时,系统预先对用户输入的数据按照数据块进行拆分,得到多个新数据块,并且根据预先建立的数据地址信息与磁盘地址信息的映射关系,可以依据每个数据块的地址信息找到条带中与每个数据块对应的磁盘,例如第一新数据块对应条带中的第一磁盘,第二新数据块对应条带中的第二磁盘等。
因此,本发明实施例中在采用读改写的方式写入数据时,首先对拆分后的第一新数据块进行写入操作,此时获取该第一新数据块,可以依据该第一新数据块的地址信息及相应的映射关系确定出与该第一新数据块对应的第一磁盘,并从该第一磁盘中读取出此时所存储的第一旧数据块。
S12:获取与第一旧数据块对应的第一旧校验数据块,并依据第一新数据块、第一旧数据块以及第一旧校验数据块得到第一新校验数据块;
由于,在包括第一磁盘的条带中,第一磁盘中存储的第一旧数据块,相应的该条带中的校验磁盘中所存储的数据信息为第一旧校验数据块。通过第一旧数据块和第一旧校验数据块可以得到该条带中的其他磁盘中所存储的数据块,即得到第一剩余旧数据块,并通过第一新数据块和上述第一剩余旧数据块可以得到与第一新数据块对应的第一新校验按数据块。
进一步的,作为优选的实施例,具体可以通过以下方法依据第一新数据块、第一旧数据块以及第一旧校验数据块得到第一新校验数据块:
将第一旧数据块和第一旧校验数据块进行异或运算,得到条带中的第一剩余旧数据块;
将第一新数据块和第一剩余旧数据块进行异或运算,得到第一新校验数据块。
需要说明的是,由于校验磁盘中的校验数据块是通过其他磁盘中的数据块通过异或运算得到的,且异或运算的逆运算也是异或运算,所以可以将第一旧数据块和第一旧校验数据块进行异或运算,得到条带中的第一剩余旧数据块,例如第一旧数据块为OD,第一旧校验数据块为OP,第一新数据块为ND,则通过PD=OP⊕OD即可得到第一剩余旧数据块为PD;通过NP=ND⊕PD即可得到与第一新数据块ND对应的第一新校验数据块NP。
还需要说明的是,通过本发明实施例所提供的方法计算第一旧剩余数据块计算速度较快,且无需多次读取磁盘,减少读盘次数,降低时耗,进步一使快速计算出与第一新数据块对应的第一新校验数据块。S13:将第一新数据块写入第一磁盘,并覆盖第一旧数据块;S14:判断是否达到预设时间,如果是,则进入S15,否则,进如S16;
S15:将第一新校验数据块写入相应的校验磁盘,并将其作为第二旧校验数据块覆盖第一旧校验数据块;
S16:将第一新校验数据块缓存作为第二旧校验数据块至内存中,以便当写入第二新数据块时,采用第二旧校验数据块计算与第二新数据块对应的第二新校验数据块。
需要说明的是,当得到第一新校验数据块后,可以将第一新数据块写入第一磁盘中,并使第一新数据块覆盖第一旧数据块,此时可以通过预设时间判断是否需要将第一新校验数据块写入相应的校验磁盘中。
具体的,可以预先设置预设时间,如果此时到达预设时间,则可以将该第一新校验数据块作为第二旧校验数据块写入校验磁盘中,并且用该第一新校验数据块覆盖校验磁盘中的第一旧校验数据块,若此时还需要对第二新数据块进行写入操作,则可以直接从该校验磁盘中读取此时的第二旧校验数据块(即与第一新数据块对应的第一新校验数据块),并可以通过第二新数据块、与该第二新数据块所对应的第二磁盘中的第二旧数据块以及该第二旧校验数据块即可得到与该第二新数据块对应的第二新校验数据块,并将第二新数据块写入相应的第二磁盘中,若此时到达预设时间,则依旧将该第二新数据块写入相应的校验磁盘中,并覆盖上次写入的第一新校验数块,以便在下一个新数据块写入时使用。
如果在计算得到第一新校验数据块后,还没有到达预设时间,则将该第一新校验数据块存储至内存中进行缓存,并且如果在缓存过程中到达预设时间,则将该第一新校验数据块从缓存中写入相应的校验磁盘中,并覆盖校验磁盘中的第一旧校验数据块,以便于在下一个新数据块写入时使用;如果在缓存过程中没有到达预设时间时,还需要对第二新数据块进行写入操作,此时,可以直接从该内存中获取该第一新校验数据块作为第二旧校验数据块,以用于计算与第二新数据块对应的第二新校验数据块,在计算出第二新校验数据块后,将第二新数据写入至相应的第二磁盘中,并继续判断是否达到预设时间,如果到达预设时间,则将该第二新校验数据块写入至校验磁盘中,并覆盖校验磁盘中所存储的原校验数据块,此时还需要将内存中所存储的数据块清空,以便第一新校验数据块所占用的内存,同时也便于在下一个新数据块写入时,可以通过判断内存中是否有校验数据块来确定是从内存中获取相应的旧校验数据块,还是从校验磁盘中获取相应的旧校验数据块。
另外,本发明实施例中的预设时间可以根据实际情况进行设定,通过对预设时间的设定,可以使系统对多个新数据块对应的多个新校验数据块进行合并后再将合并后的新校验数据块一次性写入校验磁盘中,从而降低写校验盘的次数,同时,也相对减少了校验盘次数。
更进一步的,在上述S12中获取与第一旧数据块对应的第一旧校验数据块的过程,具体可以为:
判断内存中是否缓存有与第一旧数据块对应的第一旧校验数据块,如果是,则获取第一旧校验数据块,否则,确定与第一磁盘对应的条带中的校验磁盘,并从校验磁盘中获取第一旧校验数据块。
需要说明的是,在获取与第一旧数据块对应的第一旧校验数据块时,可以通过判断内存中是否存在第一旧校验数据块,如果存在,则直接从内存中获取即可,如果不存在(例如,内存中为空),则说明已经将该第一旧校验数据块写入至校验磁盘中,所以此时需要从校验磁盘中读取出第一旧校验数据块。
当然,对于该条带中第一个写入的新数据块,与第一磁盘中的第一旧数据对应的第一旧校验数据块已经写入至校验磁盘中,所以此时可以直接从校验磁盘中读取相应的第一旧校验数据块。
本发明实施例提供了一种RAID系统的数据写入方法及装置,包括获取待写入的第一新数据块,依据第一新数据块确定与其对应的第一磁盘,并获取第一磁盘中的第一旧数据块;获取与第一旧数据块对应的第一旧校验数据块,并依据第一新数据块、第一旧数据块以及第一旧校验数据块得到第一新校验数据块;将第一新数据块写入第一磁盘,并覆盖第一旧数据块;判断是否达到预设时间,如果是,则将第一新校验数据块写入相应的校验磁盘,并将其作为第二旧校验数据块覆盖第一旧校验数据块,否则,将第一新校验数据块缓存作为第二旧校验数据块至内存中,以便当写入第二新数据块时,采用第二旧校验数据块计算与第二新数据块对应的第二新校验数据块。
可见,本发明实施例在采用读改写操作的方式对多个数据块进行写操作时,将第一新数据块写入至相应的第一磁盘中,并且在没有达到预设时间可以将与当前待写入的第一新数据块对应的第一新校验数据块缓存至内存中,当该条带下次写入第二新数据块时,直接将该第一新校验数据块作为本次的第二旧校验数据块使用,以得到与该第二新数据块对应的第二新校验数据块,如果此时还没有达到预设时间,则将该第二新校验数据块缓存至内存中并覆盖第一新校验数据块,以便下次新数据块写入时使用;如果此时到达预设时间,则将第二新校验数据块写入至相应的校验磁盘中。本发明实施例,在采用读改写操作的方式对多个数据块进行写操作时,可以通过合并多次校验数据块修改操作后将合并后的校验数据块一次性写入校验磁盘,可以减少读、写校验磁盘的次数,从而降低IO延时,以提高RAID系统的性能。
相应的本发明实施例还公开了一种RAID系统的数据写入装置,具体请参照图2,图2为本发明实施例提供的一种RAID系统的数据写入装置的结构示意图。在上述实施例的基础上:
该装置包括:
获取模块1,用于获取待写入的第一新数据块,依据第一新数据块确定与其对应的第一磁盘,并获取第一磁盘中的第一旧数据块;用于获取与第一旧数据块对应的第一旧校验数据块;
计算模块2,用于依据第一新数据块、第一旧数据块以及第一旧校验数据块得到第一新校验数据块;
写模块3,用于将第一新数据块写入第一磁盘,并覆盖第一旧数据块;还用于将第一新校验数据块写入相应的校验磁盘,并将其作为第二旧校验数据块覆盖第一旧校验数据块;
判断模块4,用于判断是否达到预设时间,如果是,则触发写模块3;否则,触发存储模块5;
存储模块5,用于将第一新校验数据块缓存作为第二旧校验数据块至内存中,以便当写入第二新数据块时,采用第二旧校验数据块计算与第二新数据块对应的第二新校验数据块。
作为一个优选的实施例,计算模块2包括:
第一异或运算单元,用于将第一旧数据块和第一旧校验数据块进行异或运算,得到条带中的第一剩余旧数据块;
第二异或运算单元,用于将第一新数据块和第一剩余旧数据块进行异或运算,得到第一新校验数据块。
作为一个优选的实施例,获取模块1包括:
判断子单元,用于判断内存中是否缓存有与第一旧数据块对应的第一旧校验数据块,如果是,则触发第一获取子单元;否则,从触发确定子单元;
第一获取子单元,用于从内存获取第一旧校验数据块;
第二获取子单元,用于确定与第一磁盘对应的条带中的校验磁盘,并从校验磁盘中获取第一旧校验数据块。
可见,本发明实施例在采用读改写操作的方式对多个数据块进行写操作时,将第一新数据块写入至相应的第一磁盘中,并且在没有达到预设时间可以将与当前待写入的第一新数据块对应的第一新校验数据块缓存至内存中,当该条带下次写入第二新数据块时,直接将该第一新校验数据块作为本次的第二旧校验数据块使用,以得到与该第二新数据块对应的第二新校验数据块,如果此时还没有达到预设时间,则将该第二新校验数据块缓存至内存中并覆盖第一新校验数据块,以便下次新数据块写入时使用;如果此时到达预设时间,则将第二新校验数据块写入至相应的校验磁盘中。本发明实施例,在采用读改写操作的方式对多个数据块进行写操作时,可以通过合并多次校验数据块修改操作后将合并后的校验数据块一次性写入校验磁盘,可以减少读、写校验磁盘的次数,从而降低IO延时,以提高RAID系统的性能。
另外,对于本发明实施例中所提供的RAID系统的数据写入方法的具体介绍请参照上述方法实施例,本申请在此不再赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其他形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (6)
1.一种RAID系统的数据写入方法,其特征在于,包括:
获取待写入的第一新数据块,依据第一新数据块确定与其对应的第一磁盘,并获取所述第一磁盘中的第一旧数据块;
获取与所述第一旧数据块对应的第一旧校验数据块,并依据所述第一新数据块、所述第一旧数据块以及所述第一旧校验数据块得到第一新校验数据块;
将所述第一新数据块写入所述第一磁盘,并覆盖所述第一旧数据块;
判断是否达到预设时间,如果是,则将所述第一新校验数据块写入相应的校验磁盘,并将其作为第二旧校验数据块覆盖所述第一旧校验数据块,否则,将所述第一新校验数据块缓存作为所述第二旧校验数据块至内存中,以便当写入第二新数据块时,采用所述第二旧校验数据块计算与所述第二新数据块对应的第二新校验数据块。
2.根据权利要求1所述的RAID系统的数据写入方法,其特征在于,所述依据所述第一新数据块、所述第一旧数据块以及所述第一旧校验数据块得到第一新校验数据块的过程为:
将所述第一旧数据块和所述第一旧校验数据块进行异或运算,得到所述条带中的第一剩余旧数据块;
将所述第一新数据块和所述第一剩余旧数据块进行异或运算,得到第一新校验数据块。
3.根据权利要求2所述的RAID系统的数据写入方法,其特征在于,所述获取与所述第一旧数据块对应的第一旧校验数据块的过程为:
判断所述内存中是否缓存有与所述第一旧数据块对应的第一旧校验数据块,如果是,则获取所述第一旧校验数据块,否则,确定与所述第一磁盘对应的条带中的校验磁盘,并从所述校验磁盘中获取所述第一旧校验数据块。
4.一种RAID系统的数据写入装置,其特征在于,包括:
获取模块,用于获取待写入的第一新数据块,依据第一新数据块确定与其对应的第一磁盘,并获取所述第一磁盘中的第一旧数据块;用于获取与所述第一旧数据块对应的第一旧校验数据块;
计算模块,用于依据所述第一新数据块、所述第一旧数据块以及所述第一旧校验数据块得到第一新校验数据块;
写模块,用于将所述第一新数据块写入所述第一磁盘,并覆盖所述第一旧数据块;还用于将所述第一新校验数据块写入相应的校验磁盘,并将其作为第二旧校验数据块覆盖所述第一旧校验数据块;
判断模块,用于判断是否达到预设时间,如果是,则触发所述写模块;否则,触发存储模块;
所述存储模块,用于将所述第一新校验数据块缓存作为所述第二旧校验数据块至内存中,以便当写入第二新数据块时,采用所述第二旧校验数据块计算与所述第二新数据块对应的第二新校验数据块。
5.根据权利要求4所述的RAID系统的数据写入装置,其特征在于,所述计算模块包括:
第一异或运算单元,用于将所述第一旧数据块和所述第一旧校验数据块进行异或运算,得到所述条带中的第一剩余旧数据块;
第二异或运算单元,用于将所述第一新数据块和所述第一剩余旧数据块进行异或运算,得到第一新校验数据块。
6.根据权利要求5所述的RAID系统的数据写入方法,其特征在于,所述获取模块包括:
判断子单元,用于判断所述内存中是否缓存有与所述第一旧数据块对应的第一旧校验数据块,如果是,则触发第一获取子单元;否则,从触发确定子单元;
所述第一获取子单元,用于从所述内存获取所述第一旧校验数据块;
所述第二获取子单元,用于确定与所述第一磁盘对应的条带中的校验磁盘,并从所述校验磁盘中获取所述第一旧校验数据块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710651164.4A CN107391046B (zh) | 2017-08-02 | 2017-08-02 | 一种raid系统的数据写入方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710651164.4A CN107391046B (zh) | 2017-08-02 | 2017-08-02 | 一种raid系统的数据写入方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107391046A true CN107391046A (zh) | 2017-11-24 |
CN107391046B CN107391046B (zh) | 2021-04-20 |
Family
ID=60344144
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710651164.4A Active CN107391046B (zh) | 2017-08-02 | 2017-08-02 | 一种raid系统的数据写入方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107391046B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113297000A (zh) * | 2021-05-20 | 2021-08-24 | 山东云海国创云计算装备产业创新中心有限公司 | 一种raid编码电路及编码方法 |
CN113805806A (zh) * | 2018-12-03 | 2021-12-17 | 北京奥星贝斯科技有限公司 | 一种高效的数据单元重用方法和系统 |
CN115599315A (zh) * | 2022-12-14 | 2023-01-13 | 阿里巴巴(中国)有限公司(Cn) | 数据处理方法、装置、系统、设备及介质 |
CN117785026A (zh) * | 2023-11-17 | 2024-03-29 | 青海师范大学 | 一种基于ssd raid-5系统高效写的缓存方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020007428A1 (en) * | 1998-12-18 | 2002-01-17 | Kendell Alan Chilton | Data assembler/disassembler |
CN101976178A (zh) * | 2010-08-19 | 2011-02-16 | 北京同有飞骥科技有限公司 | 一种垂直排布集中校验的节能型磁盘阵列的构建方法 |
CN102033716A (zh) * | 2010-12-01 | 2011-04-27 | 北京同有飞骥科技股份有限公司 | 一种双磁盘容错的节能型磁盘阵列的构建方法 |
CN103488432A (zh) * | 2013-09-16 | 2014-01-01 | 哈尔滨工程大学 | 一种混合磁盘阵列及其延迟写入校验方法和数据恢复方法 |
US20150355845A1 (en) * | 2014-06-05 | 2015-12-10 | Samsung Electronics Co., Ltd. | Memory systems that support read reclaim operations and methods of operating same to thereby provide real time data recovery |
CN105718206A (zh) * | 2014-12-03 | 2016-06-29 | 中国人民解放军国防科学技术大学 | 能够感知raid的闪存转换层及其实现方法 |
US20170160942A1 (en) * | 2013-12-26 | 2017-06-08 | Silicon Motion, Inc. | Data storage device and flash memory control method |
-
2017
- 2017-08-02 CN CN201710651164.4A patent/CN107391046B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020007428A1 (en) * | 1998-12-18 | 2002-01-17 | Kendell Alan Chilton | Data assembler/disassembler |
CN101976178A (zh) * | 2010-08-19 | 2011-02-16 | 北京同有飞骥科技有限公司 | 一种垂直排布集中校验的节能型磁盘阵列的构建方法 |
CN102033716A (zh) * | 2010-12-01 | 2011-04-27 | 北京同有飞骥科技股份有限公司 | 一种双磁盘容错的节能型磁盘阵列的构建方法 |
CN103488432A (zh) * | 2013-09-16 | 2014-01-01 | 哈尔滨工程大学 | 一种混合磁盘阵列及其延迟写入校验方法和数据恢复方法 |
US20170160942A1 (en) * | 2013-12-26 | 2017-06-08 | Silicon Motion, Inc. | Data storage device and flash memory control method |
US20150355845A1 (en) * | 2014-06-05 | 2015-12-10 | Samsung Electronics Co., Ltd. | Memory systems that support read reclaim operations and methods of operating same to thereby provide real time data recovery |
CN105718206A (zh) * | 2014-12-03 | 2016-06-29 | 中国人民解放军国防科学技术大学 | 能够感知raid的闪存转换层及其实现方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113805806A (zh) * | 2018-12-03 | 2021-12-17 | 北京奥星贝斯科技有限公司 | 一种高效的数据单元重用方法和系统 |
CN113297000A (zh) * | 2021-05-20 | 2021-08-24 | 山东云海国创云计算装备产业创新中心有限公司 | 一种raid编码电路及编码方法 |
CN115599315A (zh) * | 2022-12-14 | 2023-01-13 | 阿里巴巴(中国)有限公司(Cn) | 数据处理方法、装置、系统、设备及介质 |
CN117785026A (zh) * | 2023-11-17 | 2024-03-29 | 青海师范大学 | 一种基于ssd raid-5系统高效写的缓存方法 |
CN117785026B (zh) * | 2023-11-17 | 2024-05-17 | 青海师范大学 | 一种基于ssd raid-5系统高效写的缓存方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107391046B (zh) | 2021-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107391046A (zh) | 一种raid系统的数据写入方法及装置 | |
US7543110B2 (en) | Raid controller disk write mask | |
US6880060B2 (en) | Method for storing metadata in a physical sector | |
US6898668B2 (en) | System and method for reorganizing data in a raid storage system | |
US20130346810A1 (en) | Use of application-level context information to detect corrupted data in a storage system | |
CN106168920B (zh) | 控制包括只读闪速数据存储设备的独立磁盘冗余阵列 | |
US10261705B2 (en) | Efficient data consistency verification for flash storage | |
CN1783342B (zh) | 用于使用wmrm存储器实现可靠的worm存储器的系统和方法 | |
CN107402724A (zh) | 一种SSD中Journal元数据的保存方法及系统 | |
JP2015201204A (ja) | データ記憶装置におけるデータ保全性管理 | |
CN107797881A (zh) | 一种数据一致性测试方法、装置、设备及存储介质 | |
CN103699337B (zh) | 一种基于独立磁盘冗余阵列raid的写控制方法及系统 | |
US20150178190A1 (en) | Detecting hot spots through flash memory management table snapshots | |
CN102799533B (zh) | 一种磁盘损坏扇区屏蔽方法及装置 | |
US20050210322A1 (en) | Migrating data between storage volumes | |
CN108874321A (zh) | 一种独立冗余磁盘阵列数据重构方法、装置及设备 | |
KR20170023735A (ko) | 스토리지 저널링을 개선하는 방법 및 시스템 | |
CN101526885A (zh) | 一种提升独立磁盘冗余阵列性能的方法及其控制器 | |
CN110413454B (zh) | 基于存储阵列的数据重建方法、装置及存储介质 | |
CN107731262A (zh) | 一种存储磁盘坏块管理方法、装置、设备及可读存储介质 | |
CN103793032B (zh) | 用于确定上电复位的方法和装置 | |
US20040153746A1 (en) | Mechanisms for embedding and using integrity metadata | |
WO2021140379A1 (en) | Storage class memory | |
US9213486B2 (en) | Writing new data of a first block size to a second block size using a write-write mode | |
CN107678894A (zh) | 一种内存测试方法、装置及系统 |
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 |