CN111124296B - 一种向固态硬盘写数据的方法、装置、设备及存储介质 - Google Patents

一种向固态硬盘写数据的方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN111124296B
CN111124296B CN201911276624.5A CN201911276624A CN111124296B CN 111124296 B CN111124296 B CN 111124296B CN 201911276624 A CN201911276624 A CN 201911276624A CN 111124296 B CN111124296 B CN 111124296B
Authority
CN
China
Prior art keywords
data
block
solid state
state disk
written
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
Application number
CN201911276624.5A
Other languages
English (en)
Other versions
CN111124296A (zh
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.)
Beijing Inspur Data Technology Co Ltd
Original Assignee
Beijing Inspur Data Technology 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 Beijing Inspur Data Technology Co Ltd filed Critical Beijing Inspur Data Technology Co Ltd
Priority to CN201911276624.5A priority Critical patent/CN111124296B/zh
Publication of CN111124296A publication Critical patent/CN111124296A/zh
Application granted granted Critical
Publication of CN111124296B publication Critical patent/CN111124296B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Abstract

本发明公开了一种向固态硬盘写数据的方法、装置、设备及存储介质,该方法包括:确定当前需要写入固态硬盘的数据条带中的一组数据为当前组数据,当前组数据中包含校验数据;确定上次写入固态硬盘的数据条带中的一组数据为目标组数据,并确定目标组数据包含的校验数据在固态硬盘中的block为目标block;在将当前组数据写入固态硬盘时,将当前组数据中的校验数据依次写入至在预设的顺序中位于目标block之后的block中;返回执行确定当前需要写入固态硬盘的数据条带中的一组数据为当前组数据的步骤,直至需要写入固态硬盘的数据写完或固态硬盘被写满为止。本申请中增加了数据读取时的并发量,从而提高了垃圾回收的效率。

Description

一种向固态硬盘写数据的方法、装置、设备及存储介质
技术领域
本发明涉及固态硬盘技术领域,更具体地说,涉及一种向固态硬盘写数据的方法、装置、设备及存储介质。
背景技术
在使用固态硬盘实现数据存储时,通常选择以RAID的方式组织数据条带来提高数据完整性,因此数据条带的组织对于性能有较大影响。
固态硬盘中包含lun,lun由block组成,block由page组成;其中,lun是并发单位,也即在实现数据读取时,能够同时读取多个lun中的数据。以RAID5为例对现有技术进行详细说明,每个需要写入到一个数据条带里的数据被划分成15份有效数据,对这15份有效数据进行计算可以得到对应的1份校验数据,从而得到与需要写入的数据对应的一组数据(15份有效数据及1份校验数据均作为子数据组成该组数据),并且该组数据中的16份子数据中每份子数据对应一个page,也即一份子数据对应存储到一个page中;具体来说,可以按照以下方式实现数据到固态硬盘的存储:将第1组数据的校验数据写入固态硬盘的第1个block的第1个page中,将第1组数据的15份有效数据依次写入固态硬盘的第2个至第16个block的第1个page中;将第2组数据的校验数据写入固态硬盘的第1个block的第2个page中,将第2组数据的15份有效数据依次写入固态硬盘的第2个至第16个block的第2个page中,将第3组数据的校验数据写入固态硬盘的第1个block的第3个page中,将第3组数据的15份有效数据依次写入固态硬盘的第2个至第16个block的第3个page中,以此类推,从而使得位于16个block的同样位置的page组成一个数据条带。
但是以上述方式向固态硬盘中写入数据完成后,会导致校验数据均位于同一个block中,而在读取每个lun时是依次读取其中包含的每个block的,因此在并发读取多个lun时,会出现某个lun当前被读取的block为仅包含校验数据的block的情况,但是在垃圾回收时是不需要读取校验数据的,因此此时并发读取的并不是需要读取的全部lun中的block,而是全部lun当前读取的block中存储的不均为校验数据的block,明显此时实际并发量是小于全部lun的数量的,因此这种情况下减少了读数据时的并发量,进而导致垃圾回收效率较低。
发明内容
本发明的目的是提供一种向固态硬盘写数据的方法、装置、设备及存储介质,能够增加读数据时的并发量,提高垃圾回收的效率。
为了实现上述目的,本发明提供如下技术方案:
一种向固态硬盘写数据的方法,包括:
确定当前需要写入固态硬盘的数据条带中的一组数据为当前组数据,所述当前组数据中包含校验数据;
确定上次写入固态硬盘的数据条带中的一组数据为目标组数据,并确定所述目标组数据包含的校验数据在所述固态硬盘中的block为目标block;
在将所述当前组数据写入所述固态硬盘时,将所述当前组数据中的校验数据依次写入至在预设的顺序中位于所述目标block之后的block中;
返回执行确定当前需要写入固态硬盘的数据条带中的一组数据为当前组数据的步骤,直至需要写入固态硬盘的数据写完或所述固态硬盘被写满为止。
优选的,将所述当前组数据写入所述固态硬盘之前,还包括:
如果在预设的顺序中位于所述目标block之后的block中存在坏块,则利用所述固态硬盘中预留的正常的block替换该坏块并提供相应的存储功能。
优选的,将所述当前组数据中的校验数据依次写入至在预设的顺序中位于所述目标block之后的block中,包括:
如果在预设的顺序中位于所述目标block之后的block中存在坏块,则将所述当前组数据中的校验数据依次写入至在预设的顺序中位于所述目标block之后除所述坏块之外的其他block中。
优选的,还包括:
如果在预设的顺序中位于所述目标block之后的block中存在坏块,则将所述坏块的位置信息发送至管理员对应的管理终端。
优选的,将所述当前组数据写入所述固态硬盘之前,还包括:
确定所述当前组数据需要写入的数据条带为目标条带;
将所述当前组数据中的校验数据依次写入至在预设的顺序中位于所述目标block之后的block中,包括:
将所述当前组数据中的校验数据依次写入至所述目标条带对应的全部block中,在预设的顺序中位于所述目标block之后的block中;
所述方法还包括:
在将所述当前组数据写入所述固态硬盘时,将所述当前组数据中包含的有效数据写入所述目标条带对应的block中,除所述校验数据写入的block之外其他的block中。
一种向固态硬盘写数据的方法装置,包括:
第一确定模块,用于:确定当前需要写入固态硬盘的数据条带中的一组数据为当前组数据,所述当前组数据中包含校验数据;
第二确定模块,用于:确定上次写入固态硬盘的数据条带中的一组数据为目标组数据,并确定所述目标组数据包含的校验数据在所述固态硬盘中的block为目标block;
第一写入模块,用于:在将所述当前组数据写入所述固态硬盘时,将所述当前组数据中的校验数据依次写入至在预设的顺序中位于所述目标block之后的block中;
循环模块,用于:返回执行确定当前需要写入固态硬盘的数据条带中的一组数据为当前组数据的步骤,直至需要写入固态硬盘的数据写完或所述固态硬盘被写满为止。
优选的,还包括:
替换模块,用于:将所述当前组数据写入所述固态硬盘之前,如果在预设的顺序中位于所述目标block之后的block中存在坏块,则利用所述固态硬盘中预留的正常的block替换该坏块并提供相应的存储功能。
优选的,所述第一写入模块包括:
写入单元,用于:如果在预设的顺序中位于所述目标block之后的block中存在坏块,则将所述当前组数据中的校验数据依次写入至在预设的顺序中位于所述目标block之后除所述坏块之外的其他block中。
一种向固态硬盘写数据的方法设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上任一项所述向固态硬盘写数据的方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述向固态硬盘写数据的方法的步骤。
本发明公开了一种向固态硬盘写数据的方法、装置、设备及存储介质,该方法包括:确定当前需要写入固态硬盘的数据条带中的一组数据为当前组数据,所述当前组数据中包含校验数据;确定上次写入固态硬盘的数据条带中的一组数据为目标组数据,并确定所述目标组数据包含的校验数据在所述固态硬盘中的block为目标block;在将所述当前组数据写入所述固态硬盘时,将所述当前组数据中的校验数据依次写入至在预设的顺序中位于所述目标block之后的block中;返回执行确定当前需要写入固态硬盘的数据条带中的一组数据为当前组数据的步骤,直至需要写入固态硬盘的数据写完或所述固态硬盘被写满为止。本发明公开的技术方案中,每次在向固态硬盘写数据时,均先确定出上次向固态硬盘写数据时写入的数据包含的校验数据所在的block,以将此次数据包含的校验数据写入至预先设定的顺序中位于上次写入的校验数据所在的block之后的block中,使得每次写入的数据中包含的校验数据均按照设定的顺序依次写入至对应的block中,通过这种方式实现校验数据在不同block中的均匀分布,校验数据在不同block中均匀分布也就意味着有效数据也在不同block中均匀分布,从而使得每个block中均同时具有校验数据及有效数据,因此每个block均为在进行垃圾回收时需要读取的block,此时实现全部lun的并发读取时不存在现有技术中当前读取的某个或者某多个lun中的block存储的均为校验数据的情况,也即能够实现全部lun的并发读取时并发量为lun的数量,从而相对于现有技术增加了读数据时并发量,提高了垃圾回收的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种向固态硬盘写数据的方法的流程图;
图2为本发明实施例提供的一种向固态硬盘写数据的方法装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,其示出了本发明实施例提供的一种向固态硬盘写数据的方法的流程图,可以包括:
S11:确定当前需要写入固态硬盘的数据条带中的一组数据为当前组数据,当前组数据中包含校验数据。
需要说明的是,本发明实施例提供的一种向固态硬盘写数据的方法的执行主体可以为对应的向固态硬盘写数据的装置。需要写入到固态硬盘中的每组数据均包括有效数据及校验数据,有效数据为实际数据,校验数据为对有效数据进行计算后得到的数据,能够在有效数据损坏时基于剩余的有效数据及校验数据恢复损坏的数据;具体来说,如果需要将一个数据存储到固态硬盘中,则将这个数据划分为多份有效数据,然后对这多份有效数据进行计算得到对应的校验数据,从而这多份有效数据及计算得到的校验数据组成需要写入到固态硬盘的一组数据。其中,对有效数据进行计算得到对应校验数据的算法可以为RAID5,也可以为RAID6,当然还可以为根据实际需要选取的其他算法,均在本发明的保护范围之内。并且每组数据在写入到固态硬盘里时,是需要将这组数据写入到一个数据条带中,从而这种方式实现数据存储。另外,本申请中的数据条带可以为RAID条带,其与现有技术中对应概念的含义相同,在此不再过多赘述。
S12:确定上次写入固态硬盘的数据条带中的一组数据为目标组数据,并确定目标组数据包含的校验数据在固态硬盘中的block为目标block。
每组数据包含的有效数据及校验数据均可以称为该组数据的子数据;在将一组数据写入到固态硬盘中时,通常是一份子数据写入到一个page中,并且将一组数据包含的子数据写入到不同block的相同位置的page中,也即每组数据包含的每份子数据分别写入至对应数量的block的第n个page中,n为1至单个block包含的page的总数量中的任一数值,包含端点值;例如对有效数据进行计算得到对应校验数据的算法为RAID5,则每组数据包括16份子数据,这16份子数据中包含15份有效数据及1份校验数据,在将一组数据写入固态硬盘时,将这组数据包含的16份子数据分别写入至16个block中每个block的第n个page中。
另外,上次写入到固态硬盘的数据条带中的一组数据即为距离当前时刻最近的时间写入到固态硬盘的数据条带中的一组数据,并且确定出其中的校验数据在固态硬盘中的block为目标block,以基于此确定当前需要写入到固态硬盘的数据条带中的一组数据对应的block。
S13:在将当前组数据写入固态硬盘时,将当前组数据中的校验数据依次写入至在预设的顺序中位于目标block之后的block中。
将当前需要写入到固态硬盘的数据条带中的一组数据依次写入到在预设的顺序中位于目标block之后的block中,也即如果当前需要写入到固态硬盘的数据条带中的一组数据中包含一个校验数据,则将该校验数据写入到在预设的顺序中位于目标block之后的一个block中,如果当前需要写入到固态硬盘的数据条带中的一组数据中包含两个校验数据,则将该两个校验数据写入到在预设的顺序中位于目标block之后的两个block中,以此类推;从而使得每次写入到固态硬盘的校验数据依次按照预设的顺序写入到对应的block中;其中,位于目标block之后的block可以为距离目标block最近的位于目标block之后的block。
预设的顺序可以为根据实际需要进行设定的顺序,具体来说,如果每组数据包含的子数据为m份,则将每组数据依次写入到每m个block中,例如:将当前需要写入固态硬盘的各组数据写入至第1个至第m个block中,待第1个至第m个block被写满后,再将新的需要写入至固态硬盘的各组数据写入至第m+1个block至第m*2个block中,待第m+1个至第m*2个block被写满后,再将新的需要写入至固态硬盘的各组数据写入至第m*2+1个block至第m*3个block中,以此类推;结合在将一组数据写入到固态硬盘中时,通常是将一组数据包含的子数据写入到不同block的相同位置的page中,则为将每组数据包含的子数据写入到当前需要写入的m个block的第n个page中,例如在向每m个block中写入数据时,可以是将第1组数据写入至这m个block中第1个至第m个block中的第1个page中,将第2组数据写入到这m个block中第1个至第m个block中的第2个page中,将第3组数据写入到这m个block中第1个至第m个block中的第3个page中,以此类推;对应的,此时对校验数据的写入则具体是,将第1组数据的校验数据写入至这m个block中第1个block的第1个page中,将第2组数据写入至这m个block中第2个block的第2个page中,将第3组数据写入至这m个block中第3个block的第3个page中,以此类推,其余有效数据则写入对应数据条带其他的page中即可;从而使得校验数据在各block中可以均匀分布,避免某个block中均为校验数据,导致如果需要对全部lun进行并发读取,读取到这个均为校验数据的block时无需对其进行读取,此时并发读取的block的数量小于lun的数量,并发量较小的情况出现,也即增大了并发量。
以对有效数据进行计算得到对应校验数据的算法为RAID5为例对每组数据的写入进行具体说明:每组数据包括16份子数据,这16份子数据中包含15份有效数据及1份校验数据,则将第1组数据写入至第1个block至第16个block的第1个page中,将第2组数据写入至第1个block至第16个block的第2个page中,以此类推,直至将第1个block至第16个block写满后,将后续每组数据再按照这种方式写入到第17个到32个block中;此时对校验数据的写入则具体是,将第1组数据的校验数据写入至第1个block的第1个page中,将第2组数据写入至第2个block的第2个page中,以此类推。
S14:返回执行确定当前需要写入固态硬盘的数据条带中的一组数据为当前组数据的步骤,直至需要写入固态硬盘的数据写完或固态硬盘被写满为止。
在写完一组数据后,再将下一组数据写入固态硬盘中,以此类推,直至不存在需要写入到固态硬盘中的数据(也即需要写入固态硬盘的数据写完)或者固态硬盘被写满为止,从而通过这种循环的方式实现校验数据在固态硬盘中的依次均匀的写入。
本发明公开的技术方案中,每次在向固态硬盘写数据时,均先确定出上次向固态硬盘写数据时写入的数据包含的校验数据所在的block,以将此次数据包含的校验数据写入至预先设定的顺序中位于上次写入的校验数据所在的block之后的block中,使得每次写入的数据中包含的校验数据均按照设定的顺序依次写入至对应的block中,通过这种方式实现校验数据在不同block中的均匀分布,校验数据在不同block中均匀分布也就意味着有效数据也在不同block中均匀分布,使得每个block中均同时具有校验数据及有效数据,因此每个block均为在进行垃圾回收时需要读取的block,此时实现全部lun的并发读取时不存在现有技术中当前读取的某个或者某多个lun中的block存储的均为校验数据的情况,也即能够实现全部lun的并发读取时并发量为lun的数量,从而相对于现有技术增加了读数据时并发量,提高了垃圾回收的效率。
本发明实施例提供的一种向固态硬盘写数据的方法,将当前组数据写入固态硬盘之前,还可以包括:
如果在预设的顺序中位于目标block之后的block中存在坏块,则利用固态硬盘中预留的正常的block替换该坏块并提供相应的存储功能。
为了实现数据的有效存储,本实施例中可以预先在固态硬盘中预留部分可以正常工作的block作为预备block,从而在将一组数据写入到固态硬盘中时,如果block出现损坏成为无法被写入数据的坏块,则利用预备block替换坏块,将需要写入坏块中的数据写入到替换坏块的block中,从而使得对数据的存储不受坏块影响,保证了数据的有效存储。
本发明实施例提供的一种向固态硬盘写数据的方法,将当前组数据中的校验数据依次写入至在预设的顺序中位于目标block之后的block中,可以包括:
如果在预设的顺序中位于目标block之后的block中存在坏块,则将当前组数据中的校验数据依次写入至在预设的顺序中位于目标block之后除坏块之外的其他block中。
需要说明的是,除了在固态硬盘中预留部分block作为预备block外,还可以在需要写入数据的block为坏块时,可以直接忽略该坏块,并越过该坏块将需要写入到坏块中的数据写入到在预设的顺序中位于坏块之后的正常的block中,从而不仅能够保证数据的有效存储,也能够避免利用预备block实现坏块替换导致的复杂操作;具体在选择使用预备block替换还是直接越过坏块使用正常block的方式时,可以根据实际需要进行选取其中一种,也可以同时选取两种,并且为这两种当时设置不同的优先级,也即可以先利用其中一种方式实现对应数据的存储,如果能够正常实现对应数据的存储,则继续后续数据存储操作,否则,则选择另外一种方式实现对应数据的存储,从而进一步保证数据的有效存储。
本发明实施例提供的一种向固态硬盘写数据的方法,还可以包括:
如果在预设的顺序中位于目标block之后的block中存在坏块,则将坏块的位置信息发送至管理员对应的管理终端。
需要说明的是,在发现坏块后,为了使得管理员可以及时获知出现坏块的情况以及时进行坏块的修复等操作,本实施例中可以将坏块的位置信息发送至管理员对应管理终端,从而使得管理员可以远程获知出现坏块及坏块的位置等情况,进而便于管理员实现相应修复等工作的开展。
本发明实施例提供的一种向固态硬盘写数据的方法,将当前组数据写入固态硬盘之前,还可以包括:
确定当前组数据需要写入的数据条带为目标条带;
将当前组数据中的校验数据依次写入至在预设的顺序中位于目标block之后的block中,可以包括:
将当前组数据中的校验数据依次写入至目标条带对应的全部block中,在预设的顺序中位于目标block之后的block中;
向固态硬盘写数据的方法还可以包括:
在将当前组数据写入固态硬盘时,将当前组数据中包含的有效数据写入目标条带对应的block中,除校验数据写入的block之外其他的block中。
由于在将一组数据写入固态硬盘时,实际上是将这组数据写入至固态硬盘包含的一个数据条带中,此时一个数据条带可以为m个block中位于相同位置的page组成的m个page;因此,在将一组数据写入固态硬盘时,可以确定对应需要写入的数据条带为目标条带,进而将需要写入目标条带中的一组数据的校验数据,写入目标条带对应的全部block中,在预设的顺序中位于上次写入的校验数据所在block之后的block中,而将需要写入目标条带中的一组数据的有效数据,写入目标条带对应的全部block中除校验数据所在block之外的block中;其中,目标条带对应的全部block即为包含组成目标条带的每个page的block,而将校验数据或者有效数据写入到对应的block中则为将校验数据或有效数据写入到对应的block包含的组成目标条带的page中,从而实现一组数据至对应数据条带的有效写入。
另外,“将当前组数据中的校验数据依次写入至目标条带对应的全部block中,在预设的顺序中位于目标block之后的block中”可以与“如果在预设的顺序中位于目标block之后的block中存在坏块,则将当前组数据中的校验数据依次写入至在预设的顺序中位于目标block之后除坏块之外的其他block中”进行结合,也即:如果在预设的顺序中位于目标block之后的block中存在坏块,则将当前组数据中的校验数据依次写入至目标条带对应的全部block中,在预设的顺序中位于目标block之后除坏块之外的其他block中。具体来说,如果在预设的顺序中位于目标block之后的block中存在坏块,则可以认为此时目标条带并不包含该坏块,因此可以越过该坏块直接使用位于其后的block,从而实现校验数据的有效写入。本发明实施例还提供了一种向固态硬盘写数据的方法装置,如图2所示,可以包括:
第一确定模块11,用于:确定当前需要写入固态硬盘的数据条带中的一组数据为当前组数据,当前组数据中包含校验数据;
第二确定模块12,用于:确定上次写入固态硬盘的数据条带中的一组数据为目标组数据,并确定目标组数据包含的校验数据在固态硬盘中的block为目标block;
第一写入模块13,用于:在将当前组数据写入固态硬盘时,将当前组数据中的校验数据依次写入至在预设的顺序中位于目标block之后的block中;
循环模块14,用于:返回执行确定当前需要写入固态硬盘的数据条带中的一组数据为当前组数据的步骤,直至需要写入固态硬盘的数据写完或固态硬盘被写满为止。
本发明实施例提供的一种向固态硬盘写数据的方法装置,还可以包括:
替换模块,用于:将当前组数据写入固态硬盘之前,如果在预设的顺序中位于目标block之后的block中存在坏块,则利用固态硬盘中预留的正常的block替换该坏块并提供相应的存储功能。
本发明实施例提供的一种向固态硬盘写数据的方法装置,第一写入模块可以包括:
第一写入单元,用于:如果在预设的顺序中位于目标block之后的block中存在坏块,则将当前组数据中的校验数据依次写入至在预设的顺序中位于目标block之后除坏块之外的其他block中。
本发明实施例提供的一种向固态硬盘写数据的方法装置,还可以包括:
提示模块,用于:如果在预设的顺序中位于目标block之后的block中存在坏块,则将坏块的位置信息发送至管理员对应的管理终端。
本发明实施例提供的一种向固态硬盘写数据的装置,还可以包括:
第三确定模块,用于:将当前组数据写入固态硬盘之前,确定当前组数据需要写入的数据条带为目标条带;
第一写入模块可以包括:
第二写入单元,用于:将当前组数据中的校验数据依次写入至目标条带对应的全部block中,在预设的顺序中位于目标block之后的block中;
装置还可以包括:
第二写入模块,用于:在将当前组数据写入固态硬盘时,将当前组数据中包含的有效数据写入目标条带对应的block中,除校验数据写入的block之外其他的block中。
其中,第二写入单元可以与第一写入单元组合成写入单元,而写入单元则用于:如果在预设的顺序中位于目标block之后的block中存在坏块,则将当前组数据中的校验数据依次写入至目标条带对应的全部block中,在预设的顺序中位于目标block之后除坏块之外的其他block中。
本发明实施例还提供了一种向固态硬盘写数据的方法设备,可以包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上任一项向固态硬盘写数据的方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上任一项向固态硬盘写数据的方法的步骤。
需要说明的是,本发明实施例提供的一种向固态硬盘写数据的方法装置、设备及存储介质中相关部分的说明请参见本发明实施例提供的一种向固态硬盘写数据的方法中对应部分的详细说明,在此不再赘述。另外,本发明实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种向固态硬盘写数据的方法,其特征在于,包括:
确定当前需要写入固态硬盘的数据条带中的一组数据为当前组数据,所述当前组数据中包含校验数据;
确定上次写入固态硬盘的数据条带中的一组数据为目标组数据,并确定所述目标组数据包含的校验数据在所述固态硬盘中的block为目标block,确定所述目标组数据包含的校验数据在所述目标block中的page为目标page;
在将所述当前组数据写入所述固态硬盘时,将所述当前组数据中的校验数据依次写入至在预设的顺序中位于所述目标block之后的block的当前page中;其中,在预设的顺序中所述当前page在block中的位置位于所述目标page在所述目标block中的位置之后;
返回执行确定当前需要写入固态硬盘的数据条带中的一组数据为当前组数据的步骤,直至需要写入固态硬盘的数据写完或所述固态硬盘被写满为止。
2.根据权利要求1所述的方法,其特征在于,将所述当前组数据写入所述固态硬盘之前,还包括:
如果在预设的顺序中位于所述目标block之后的block中存在坏块,则利用所述固态硬盘中预留的正常的block替换该坏块并提供相应的存储功能。
3.根据权利要求1所述的方法,其特征在于,将所述当前组数据中的校验数据依次写入至在预设的顺序中位于所述目标block之后的block中,包括:
如果在预设的顺序中位于所述目标block之后的block中存在坏块,则将所述当前组数据中的校验数据依次写入至在预设的顺序中位于所述目标block之后除所述坏块之外的其他block中。
4.根据权利要求2或3所述的方法,其特征在于,还包括:
如果在预设的顺序中位于所述目标block之后的block中存在坏块,则将所述坏块的位置信息发送至管理员对应的管理终端。
5.根据权利要求4所述的方法,其特征在于,将所述当前组数据写入所述固态硬盘之前,还包括:
确定所述当前组数据需要写入的数据条带为目标条带;
将所述当前组数据中的校验数据依次写入至在预设的顺序中位于所述目标block之后的block中,包括:
将所述当前组数据中的校验数据依次写入至所述目标条带对应的全部block中,在预设的顺序中位于所述目标block之后的block中;
所述方法还包括:
在将所述当前组数据写入所述固态硬盘时,将所述当前组数据中包含的有效数据写入所述目标条带对应的block中,除所述校验数据写入的block之外其他的block中。
6.一种向固态硬盘写数据的方法装置,其特征在于,包括:
第一确定模块,用于:确定当前需要写入固态硬盘的数据条带中的一组数据为当前组数据,所述当前组数据中包含校验数据;
第二确定模块,用于:确定上次写入固态硬盘的数据条带中的一组数据为目标组数据,并确定所述目标组数据包含的校验数据在所述固态硬盘中的block为目标block,确定所述目标组数据包含的校验数据在所述目标block中的page为目标page;
第一写入模块,用于:在将所述当前组数据写入所述固态硬盘时,将所述当前组数据中的校验数据依次写入至在预设的顺序中位于所述目标block之后的block的当前page中;其中,在预设的顺序中所述当前page在block中的位置位于所述目标page在所述目标block中的位置之后;
循环模块,用于:返回执行确定当前需要写入固态硬盘的数据条带中的一组数据为当前组数据的步骤,直至需要写入固态硬盘的数据写完或所述固态硬盘被写满为止。
7.根据权利要求6所述的装置,其特征在于,还包括:
替换模块,用于:将所述当前组数据写入所述固态硬盘之前,如果在预设的顺序中位于所述目标block之后的block中存在坏块,则利用所述固态硬盘中预留的正常的block替换该坏块并提供相应的存储功能。
8.根据权利要求7所述的装置,其特征在于,所述第一写入模块包括:
写入单元,用于:如果在预设的顺序中位于所述目标block之后的block中存在坏块,则将所述当前组数据中的校验数据依次写入至在预设的顺序中位于所述目标block之后除所述坏块之外的其他block中。
9.一种向固态硬盘写数据的方法设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述向固态硬盘写数据的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述向固态硬盘写数据的方法的步骤。
CN201911276624.5A 2019-12-12 2019-12-12 一种向固态硬盘写数据的方法、装置、设备及存储介质 Active CN111124296B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911276624.5A CN111124296B (zh) 2019-12-12 2019-12-12 一种向固态硬盘写数据的方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911276624.5A CN111124296B (zh) 2019-12-12 2019-12-12 一种向固态硬盘写数据的方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN111124296A CN111124296A (zh) 2020-05-08
CN111124296B true CN111124296B (zh) 2023-03-14

Family

ID=70498540

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911276624.5A Active CN111124296B (zh) 2019-12-12 2019-12-12 一种向固态硬盘写数据的方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN111124296B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107450852A (zh) * 2017-07-31 2017-12-08 郑州云海信息技术有限公司 一种存储空间处理方法、装置和设备
CN108920293A (zh) * 2018-06-28 2018-11-30 郑州云海信息技术有限公司 固态硬盘写失败的处理方法和固态硬盘
CN109614044A (zh) * 2018-12-04 2019-04-12 浪潮电子信息产业股份有限公司 一种固态硬盘写错误的处理方法、装置及设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106293511B (zh) * 2016-07-26 2018-12-04 北京理工大学 一种面向连续数据存储的动态局部并行数据布局方法
CN109144428B (zh) * 2018-09-11 2021-07-16 浪潮电子信息产业股份有限公司 一种应用于固态硬盘的垃圾回收方法、设备及介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107450852A (zh) * 2017-07-31 2017-12-08 郑州云海信息技术有限公司 一种存储空间处理方法、装置和设备
CN108920293A (zh) * 2018-06-28 2018-11-30 郑州云海信息技术有限公司 固态硬盘写失败的处理方法和固态硬盘
CN109614044A (zh) * 2018-12-04 2019-04-12 浪潮电子信息产业股份有限公司 一种固态硬盘写错误的处理方法、装置及设备

Also Published As

Publication number Publication date
CN111124296A (zh) 2020-05-08

Similar Documents

Publication Publication Date Title
CN101916173B (zh) 一种基于raid的数据读写方法及其系统
CN107484427B (zh) 用于处理存储设备中分条的方法和存储设备
US20060200697A1 (en) Storage system, control method thereof, and program
CN110399247B (zh) 一种数据恢复方法、装置、设备及计算机可读存储介质
CN104461391A (zh) 一种存储设备元数据管理处理方法及系统
EP2573689A1 (en) Method and device for implementing redundant array of independent disk protection in file system
CN101840360A (zh) Raid系统的快速重建方法及装置
CN109358809B (zh) 一种raid数据存储系统及方法
CN102799533B (zh) 一种磁盘损坏扇区屏蔽方法及装置
CN104246708A (zh) 针对nand闪存上数据的存储的架构
CN102981927A (zh) 分布式独立冗余磁盘阵列存储方法及分布式集群存储系统
CN105573681A (zh) 一种ssd盘片内部raid组建方法及系统
CN101587425A (zh) 一种增加独立磁盘冗余阵列冗余性的方法及装置
CN104156174A (zh) 基于条带的固态硬盘raid实现方法及装置
US20180157428A1 (en) Data protection of flash storage devices during power loss
US11385828B2 (en) Method and apparatus for calculating storage system available capacity
US20160210210A1 (en) Solid-state storage system, apparatus and method of writing data
CN114924923A (zh) 一种硬盘写入点正确性验证方法、系统、设备及介质
CN111930552A (zh) 坏块数据的恢复方法、装置、存储介质及电子设备
CN103530206A (zh) 一种数据恢复的方法和设备
CN109558066B (zh) 存储系统中恢复元数据的方法和装置
CN113419684A (zh) 一种数据处理方法、装置、设备及可读存储介质
CN111045858A (zh) 一种坏道处理方法及系统
CN116339644B (zh) 一种独立磁盘冗余阵列创建方法、装置、设备及介质
CN111124296B (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