CN109739777A - 本地与分布式协同设计的可靠闪存存储方法及系统 - Google Patents
本地与分布式协同设计的可靠闪存存储方法及系统 Download PDFInfo
- Publication number
- CN109739777A CN109739777A CN201811587813.XA CN201811587813A CN109739777A CN 109739777 A CN109739777 A CN 109739777A CN 201811587813 A CN201811587813 A CN 201811587813A CN 109739777 A CN109739777 A CN 109739777A
- Authority
- CN
- China
- Prior art keywords
- data
- flash memory
- distributed
- local
- host system
- 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
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种本地与分布式协同设计的可靠闪存存储方法及系统,该方法包括:闪存设备连接到主机系统时闪存转换层将闪存可靠性信息发给主机,在闪存设备读取数据出错时,将出错数据信息发送给主机;主机对出错数据进行数据恢复,利用分布式容错机制,从远程副本或纠删码中获取正确数据帮助恢复出错数据,主机从先完成数据恢复的一方获取正确数据发送给分布式存储系统;分布式容错机制无法提供恢复出错数据需要的正确数据时,分布式存储系统从正确数据副本所在的闪存设备中的获取原始数据以恢复出错数据。该方法能综合管理分布式存储系统和本地闪存设备的可靠性机制,降低系统读操作延迟,提高闪存设备本地恢复数据的效率,增强存储系统可靠性。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种本地与分布式协同设计的可靠闪存存储方法及系统。
背景技术
闪存(Flash Memory,简称FM)是一种电子式可擦除编程存储器,与传统的磁盘介质相比,闪存具有读写带宽高、访问延迟低、功耗低、稳定性强的特点,已经在数据中心、个人电脑、移动设备上普及。闪存以页为单位进行读写,当闪存重写一个页之前,需要先进行擦除操作,闪存以块为单位进行擦除,一个闪存块中包含几百个闪存页。闪存的单元具有有限次的擦写(Programming/Erase,P/E)操作,即每个闪存单元具有有限的寿命。
以闪存为基础构建的固态盘(Solid State Drive,简称SSD)采用闪存转换层(Flash Translation Layer,简称FTL)对闪存的读写擦除进行管理,并向软件系统提供与传统磁盘相同的读写接口。闪存转换层主要负责地址映射、垃圾回收、磨损均衡和错误检查和纠正(Error Correction Code,简称ECC)校验等。
随着闪存技术的发展,闪存单元密度不断增加,但可靠性的问题也更加严峻。低密度奇偶校验(Low-Density Parity-Check,简称LDPC)码逐步替代BCH(Bose、Ray-Chaudhuri与Hocquenghem的缩写)编码,应用于固态盘中,以提高存储可靠性。处理读请求时,FTL首先从闪存介质读取数据进行硬解码,这一步的时间较短,通常在75微秒左右,如果硬解码出错,FTL将通过调整阈值电压,多次读取闪存介质数据,使用软解码机制处理数据,会耗费200微妙左右的时间。在一些固态盘中,厂商会在内部增加磁盘阵列(Redundant Arrays ofIndependent Drives,简称RAID)机制,以进一步增加数据可靠性。当LDPC软解码仍然出错时,FTL启动RAID,根据RAID策略读取并恢复数据,再将结果返回给主机,这引入50-100毫秒的延迟。
分布式存储系统中,通常采用多副本或纠删码的方式,存储冗余数据,以提高存储可靠性。分布式存储系统和闪存设备都有可靠性的保障机制,两者在功能上存在冗余,造成了资源的浪费,并且在传统的可靠性机制设计中,分布式系统和闪存设备相互隔离,无法充分利用信息,进行协同设计。例如,当前分布式系统中的节点通过高速的网络互联,网络的延迟很低,访问远程数据可能快于本地的出错处理过程。当本地的闪存设备出错时,仅采用耗时较长的本地恢复机制,导致系统访问延迟的增加。同时,分布式系统无法获取闪存设备的可靠性信息,不能结合该信息对数据布局进行优化。各个闪存设备之间的信息也无法交互,当数据的所有副本都无法恢复时,无法综合利用所有副本的信息,造成数据丢失。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的一个目的在于提出一种本地与分布式协同设计的可靠闪存存储方法,该方法能综合管理分布式存储系统和本地闪存设备的可靠性机制,降低系统的读操作延迟,提高闪存设备本地恢复数据的效率,增强存储系统可靠性。
本发明的另一个目的在于提出一种本地与分布式协同设计的可靠闪存存储系统。
为达到上述目的,本发明一方面实施例提出了一种本地与分布式协同设计的可靠闪存存储方法,包括:S1,将所述闪存设备连接到主机系统,闪存转换层将闪存可靠性信息发送给所述主机系统,在所述闪存设备读取数据出错时,所述闪存转换层将出错数据信息发送给所述主机系统;S2,所述主机系统对出错数据进行数据恢复,并利用分布式容错机制,从远程副本或纠删码中获取正确数据帮助恢复所述出错数据,所述主机系统从先完成数据恢复的一方获取所述正确数据发送给分布式存储系统;S3,所述分布式容错机制无法为所述主机系统提供恢复所述出错数据需要的所述正确数据时,所述分布式存储系统从所述正确数据的副本所在的所述闪存设备中的获取原始数据以恢复所述出错数据。
本发明实施例的本地与分布式协同设计的可靠闪存存储方法,通过闪存转换层提供设备内部的可靠性信息,存储系统结合分布式的副本机制和本地的ECC、RAID方法,减少两层之间功能的冗余;本地的闪存设备读取出错时,从远程副本获取数据,降低了分布式系统的读请求延迟,将远程获取的数据用于本地恢复,优化了本地的恢复过程,提高恢复效率;分布式系统将数据的多个副本以不同的可靠性级别存储,保证数据存储的可靠性,降低整体写操作的延迟;当所有的副本都无法完成本地恢复时,分布式系统读取原始数据进行恢复,提高了恢复成功的概率,增强了数据的可靠性。
另外,根据本发明上述实施例的本地与分布式协同设计的可靠闪存存储方法还可以具有以下附加的技术特征:
进一步地,在本发明的一个实施例中,在所述闪存设备连接到主机系统时,所述闪存转换层将闪存可靠性信息发送给所述主机系统进行初始化,所述闪存可靠性信息由支持的ECC、RAID、各容错机制的可靠性、读写延迟和恢复延迟组成;在所述分布式容错机制采用多副本机制时,对同一数据的多个副本分别采用不同强度的ECC和RAID存储。
进一步地,在本发明的一个实施例中,S1进一步包括:S101,所述闪存设备执行所述主机系统发送的读命令,包括执行硬解码、软解码和RAID恢复;S102,所述闪存设备在所述硬解码或所述软解码阶段出错,所述闪存转换层生成包含出错阶段和下一步骤预计执行时间的错误信息发送给主机系统,并进行下一步操作;S103,所述闪存设备在所述RAID恢复阶段出错,所述闪存转换层将所述出错数据的信息发送给所述主机系统,结束读过程。
进一步地,在本发明的一个实施例中,S2进一步包括:S201,所述主机系统收到所述闪存转换层发送的所述出错数据的信息,进行本地设备的恢复,并向远程节点发送读请求以从所述远程副本或所述纠删码中获取正确数据帮助恢复所述出错数据;S202,所述远程节点收到所述主机系统的读请求后向所述闪存设备发送读命令,其中,所述闪存设备在所述硬解码或所述软解码步骤出错时,直接进行下一步操作步骤,不向所述主机系统发送错误信息;S203,所述主机系统等待所述远程读和所述本地设备读结果,从先结束读操作的一方获取所述正确数据,返回给分布式存储系统。
进一步地,在本发明的一个实施例中,所述远程先获取所述正确数据且所述本地设备未完成所述出错数据的恢复时,所述本地设备获取所述远程的所述正确数据,并对普通恢复和使用所述正确数据进行恢复进行代价评估,若使用所述正确数据恢复所述出错数据代价小于所述普通恢复,则所述闪存转换层根据所述本地设备出错的阶段,根据所述正确数据计算出ECC和RAID校验数据,以覆盖所述本地设备的所述出错数据。
为达到上述目的,本发明另一方面实施例提出了一种本地与分布式协同设计的可靠闪存存储系统,包括:发送模块,用于将所述闪存设备连接到主机系统,闪存转换层将闪存可靠性信息发送给所述主机系统,在所述闪存设备读取数据出错时,所述闪存转换层将出错数据信息发送给所述主机系统;第一恢复模块,用于所述主机系统对出错数据进行数据恢复,并利用分布式容错机制,从远程副本或纠删码中获取正确数据帮助恢复所述出错数据,所述主机系统从先完成数据恢复的一方获取所述正确数据发送给分布式存储系统;第二恢复模块,用于所述分布式容错机制无法为所述主机系统提供恢复所述出错数据需要的所述正确数据时,所述分布式存储系统从所述正确数据的副本所在的所述闪存设备中的获取原始数据以恢复所述出错数据。
本发明实施例的本地与分布式协同设计的可靠闪存存储系统,通过闪存转换层提供设备内部的可靠性信息,存储系统结合分布式的副本机制和本地的ECC、RAID方法,减少两层之间功能的冗余;本地的闪存设备读取出错时,从远程副本获取数据,降低了分布式系统的读请求延迟,将远程获取的数据用于本地恢复,优化了本地的恢复过程,提高恢复效率;分布式系统将数据的多个副本以不同的可靠性级别存储,保证数据存储的可靠性,降低整体写操作的延迟;当所有的副本都无法完成本地恢复时,分布式系统读取原始数据进行恢复,提高了恢复成功的概率,增强了数据的可靠性。
另外,根据本发明上述实施例的本地与分布式协同设计的可靠闪存存储系统还可以具有以下附加的技术特征:
进一步地,在本发明的一个实施例中,在所述闪存设备连接到主机系统时,所述闪存转换层将闪存可靠性信息发送给所述主机系统进行初始化,所述闪存可靠性信息由支持的ECC、RAID、各容错机制的可靠性、读写延迟和恢复延迟组成;在所述分布式容错机制采用多副本机制时,对同一数据的多个副本分别采用不同强度的ECC和RAID存储。
进一步地,在本发明的一个实施例中,所述发送模块进一步用于:所述闪存设备执行所述主机系统发送的读命令,包括执行硬解码、软解码和RAID恢复;所述闪存设备在所述硬解码或所述软解码阶段出错,所述闪存转换层生成包含出错阶段和下一步骤预计执行时间的错误信息发送给主机系统,并进行下一步操作;所述闪存设备在所述RAID恢复阶段出错,所述闪存转换层将所述出错数据的信息发送给所述主机系统,结束读过程。
进一步地,在本发明的一个实施例中,所述第一恢复模块进一步用于:所述主机系统收到所述闪存转换层发送的所述出错数据的信息,进行本地设备的恢复,并向远程节点发送读请求以从所述远程副本或所述纠删码中获取正确数据帮助恢复所述出错数据;远程节点收到所述主机系统的读请求后向所述闪存设备发送读命令,其中,所述闪存设备在所述硬解码或所述软解码步骤出错时,直接进行下一步操作步骤,不向所述主机系统发送错误信息;本地存储系统等待所述远程读和所述本地设备读结果,从先结束读操作的一方获取所述正确数据,返回给分布式存储系统。
进一步地,在本发明的一个实施例中,所述远程先获取所述正确数据且所述本地设备未完成所述出错数据的恢复时,所述本地设备获取所述远程的所述正确数据,并对普通恢复和使用所述正确数据进行恢复进行代价评估,若使用所述正确数据恢复所述出错数据代价小于所述普通恢复,则所述闪存转换层根据所述本地设备出错的阶段,根据所述正确数据计算出ECC和RAID校验数据,以覆盖所述本地设备的所述出错数据。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本发明一个实施例的存储系统容错机制结构示意图;
图2为根据本发明一个实施例的本地与分布式协同设计的可靠闪存存储方法流程图;
图3为根据本发明一个具体实施例的存储系统结构示意图;
图4为根据本发明一个实施例的读请求处理过程图;
图5为根据本发明一个实施例的写请求处理过程图;
图6为根据本发明一个实施例的利用副本恢复数据图;
图7为根据本发明一个实施例的本地与分布式协同设计的可靠闪存存储系统结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参照附图描述根据本发明实施例提出的本地与分布式协同设计的可靠闪存存储方法及系统,首先将参照附图描述根据本发明实施例提出的本地与分布式协同设计的可靠闪存存储方法。
如图1所示,为基于闪存设备构建的分布式存储系统中,分布式系统和闪存设备的容错机制。数据在分布式系统中,有数据1、数据2、……、数据N共N个副本,这些副本在闪存设备中也被以容错机制存储。例如,数据N在闪存设备中,以RAID5方式存放,而每个数据块均采用ECC校验机制以提高可靠性。分布式系统和闪存设备两层的可靠性机制形成了冗余,造成了资源的浪费,两层之间也相互隔离,无法充分利用容错信息。
现有分布式系统中的节点通过高速的网络互联,网络的延迟很低,访问远程数据可能快于本地的出错处理过程。当本地的闪存设备出错时,仅采用耗时较长的本地恢复机制,导致系统访问延迟的增加。同时,分布式系统无法获取闪存设备的可靠性信息,不能结合该信息对数据布局进行优化。各个闪存设备之间的信息也无法交互,当数据的所有副本都无法恢复时,无法综合利用所有副本的信息,造成数据丢失。针对上述问题,本发明提出一种本地和分布式协同设计的闪存存储方法。
图2为根据本发明一个实施例的本地与分布式协同设计的可靠闪存存储方法流程图。
如图2所示,该本地与分布式协同设计的可靠闪存存储方法包括以下步骤:
在步骤S1中,将闪存设备连接到主机系统,闪存转换层将闪存可靠性信息发送给主机系统,在闪存设备读取数据出错时,闪存转换层将出错数据信息发送给主机系统。
其中,在闪存设备连接到主机系统时,闪存转换层将闪存可靠性信息发送给主机系统进行初始化,闪存可靠性信息由支持的ECC级别、RAID方式、各容错机制的可靠性、读写延迟和恢复延迟组成。
可以理解的是,将闪存设备连接到主机系统,闪存转换层向主机系统发送可靠性信息,在闪存设备读取数据出错时,闪存转换层向主机系统发送出错数据的信息,其中,闪存转换层只向主机系统发送一次可靠性信息用于初始化操作,但发送出错数据信息是每次在读数据出错的时候,都要向主机系统发送出错数据信息。
闪存转换层提供设备内部的可靠性信息,支持以不同的容错级别存储数据,存储系统能够结合利用和管理分布式的副本机制以及本地的ECC、RAID方法,减少两层之间功能的冗余。
具体地,闪存设备包括固态盘和可定制转换层的闪存设备,可靠性设计中使用的闪存转换层需要进行定制,转换层需要在连接系统时,将闪存设备支持的ECC强度、RAID级别、读写延迟、恢复延迟等可靠性信息,发送给主机系统。闪存转换层支持主机以不同的可靠性级别写入数据。
闪存设备向系统提供了的ECC和RAID的配置信息,不同强度级别的容错机制具有不同的可靠性和操作延迟。分布式存储系统使用多副本技术存储数据时,根据存储系统的状态,动态调整各个副本存放的设备,以及采用的ECC和RAID强度。这种方式能够通过分布式和本地的容错机制保证可靠性,同时因为低可靠性写操作的延迟较低,提高写性能。
进一步地,在本发明的实施例中,S1还可以包括:S101,闪存设备执行主机系统发送的读命令,包括执行硬解码、软解码和RAID恢复;
S102,闪存设备在硬解码或软解码阶段出错,闪存转换层生成包含出错阶段和下一步骤预计执行时间的错误信息发送给主机系统,并进行下一步操作;
S103,闪存设备在RAID恢复阶段出错,闪存转换层将出错数据的信息发送给主机系统,结束读过程。
可以理解的是,闪存设备执行主机发送的读命令,可能经历硬解码、软解码、RAID恢复多个步骤,耗时逐渐增大。闪存设备在硬解码、软解码阶段出错时,闪存转换层生成包含当前出错阶段、下一步骤预计执行时间的错误信息,返回给主机设备,同时进行下一步操作,RAID恢复阶段仍出错时,闪存设备返回数据无法恢复的错误,结束读过程。
如图3所示,分布式存储系统由本地存储系统构成的节点组成,本地存储系统包括软件层和闪存设备,本地存储系统可以读写闪存设备,也能够向其他节点的本地存储系统发出I/O请求。闪存设备是由闪存控制器与多个闪存芯片组成。其中,闪存控制器中负责闪存转换层的功能;多个闪存芯片通过多个闪存通道与控制器相连,每个闪存芯片可以独立的进行存储请求的处理。
闪存转换层负责底层信息反馈、地址映射和垃圾回收等功能,闪存设备连接到存储系统时,闪存转换层将内部的可靠性相关信息通过接口发送给主机系统,包括支持的ECC级别和RAID的级别、读写延迟、恢复延迟等信息,闪存转换层还支持主机以指定的不同可靠性级别写入数据。闪存转换层在读取出错时,将所处的阶段、预计恢复时间等信息传递给主机,也可将纠错失败的原始数据传递给主机的软件层,为进一步的恢复提供基础数据。
在步骤S2中,主机系统对出错数据进行数据恢复,并利用分布式容错机制,从远程副本或纠删码中获取正确数据帮助恢复出错数据,主机系统从先完成数据恢复的一方获取正确数据发送给分布式存储系统。
其中,在分布式容错采用多副本机制时,对同一数据的多个副本分别采用不同强度的ECC和RAID存储。
进一步地,在本发明的实施例中,S2还可以包括:
S201,主机系统收到闪存转换层发送的出错数据的信息,进行本地设备的恢复,并向远程节点发送读请求以从远程副本或纠删码中获取正确数据帮助恢复出错数据。
可以理解的是,在本地设备内进行数据恢复的同时,利用分布式容错机制,从远程副本或纠删码获取数据,由本地和远程二者中更快的一方获得正确数据,从远程获取正确的数据后,本地恢复没有完成时,该数据用于本地出错数据的恢复,降低了分布式系统的度请求延迟,优化了本地的恢复过程,提高恢复效率。
S202,远程节点收到主机系统的读请求后向闪存设备发送读命令,其中,闪存设备在硬解码或软解码步骤出错时,直接进行下一步操作步骤,不向主机系统发送错误信息;
S203,主机系统等待远程读和本地设备读结果,从先结束读操作的一方获取正确数据,返回给分布式存储系统,降低分布式系统读操作的延迟。
本地与分布式协同设计,就是本地闪存设备提供向主机报告可靠性状态的接口,提供ECC和RAID配置信息。布式系统具有多副本和纠删码,协同两者的容错机制设计闪存存储系统可靠性。本地读出错时利用分布式获取正确数据,分布式系统对数据的多副本以本地闪存设备支持的不同强度级别的ECC和RAID存储,分布式容错机制无法恢复时从本地获取原始数据以进一步比对恢复,从而降低分布式系统的I/O操作延迟,提高闪存设备本地恢复数据效率,增强存储可靠性。
如图4所示,本地存储系统从闪存设备读取数据出错时,从远程副本获取数据帮助进行数据恢复。本地存储系统接收到分布式系统的读请求(步骤①),本地软件层进行处理,生成闪存设备的数据读命令(步骤②),得到设备的I/O请求地址。闪存转换层解析读命令,计算逻辑地址所对应的闪存物理地址,如采用RAID存储时,再计算出各条带的分布位置,分别生成并发送闪存介质的读命令(步骤③)。闪存转换层可以使用不同的阈值电压进行多次的数据读取(步骤④),进行硬解码、软解码。如果过程中出错,闪存转换层将出错阶段、预计恢复时间等信息通过主机-设备接口传递给主机(步骤⑤),同时进行下一步的读重试、更深层次、更耗时的软解码等。本地存储系统的软件层接收到出错的信息,向分布式系统中的其他节点(图4中本地存储系统2)发起远程读请求(步骤⑥),获取缺失的数据。其他节点接收到该请求,也向闪存设备提交读请求,但该设备读取过程中遇到错误时,直接进行下一步操作,而不返回中间的错误信息。本地存储系统同时等待其他节点的正确数据(步骤⑦),和本地闪存设备的读取过程,将更快一方的数据返回给分布式存储系统。在分布式存储系统中,RDMA等低延迟网络得到广泛的应用,因而在本地闪存设备读取出错的情况下,可能获得更快的响应时间。
需要说明的是,在数据恢复时,远程先获取正确数据且本地设备未完成出错数据的恢复时,本地设备获取远程的正确数据,并对普通恢复和使用正确数据进行恢复进行代价评估,若使用正确数据恢复出错数据代价小于普通恢复,则闪存转换层根据本地设备出错的阶段,根据正确数据计算出ECC和RAID校验数据,以覆盖本地设备的出错数据。
具体地,在获取到远程副本的正确数据后,本地存储系统评估闪存设备的恢复时间和使用正确数据覆盖出错数据的时间。如果后者更优,则由闪存转换层采取比之前更高级别的ECC和/或RAID方式,根据正确数据计算出ECC、RAID校验数据,将数据写入到闪存介质上,中断初始时发起的读请求,更快地完成恢复过程,同时提高该数据的可靠性。
在步骤S3中,分布式容错机制无法为主机系统提供恢复出错数据需要的正确数据时,分布式存储系统从正确数据的副本所在的闪存设备中的获取原始数据以恢复出错数据。
可以理解的是,分布式容错机制无法获得正确数据时,分布式系统通过预定义的接口,从所有副本所在的闪存设备获取原始数据。分布式系统比较各副本同一比特位的值,统计各取值出现的次数。当某一取值的出现次数达到设定的阈值,则采信该数值,从而降低整体的比特错误率。在此基础上,结合ECC和RAID进一步校验和恢复,提高数据恢复的概率。
如图5所示,分布式存储系统写数据时,根据闪存设备提供的可靠性信息,将同一份数据的多个副本分别采用多种强度级别的容错机制存储。分布式存储系统根据客户端发送的写请求,将数据以多副本的方式存储在多个闪存设备上。闪存设备向主机提供了容错机制的信息,并且支持以指定的可靠性级别写入数据。分布式系统根据这些信息,以对数据布局进行调整,将多副本指定以不同容错级别的ECC和RAID写入闪存设备。
各个闪存设备的性能相近的情况下,系统采取策略,使得各闪存设备存储的数据量相近,以各种容错级别存储的数据量所占的比例也相近。通过这种方式,实现本地存储系统之间的负载均衡。在此基础上,分布式系统利用节点记录的读取出错的统计信息,对于出错率相对更高的节点,使用更高级别的可靠性机制存储数据,实现动态分配和均衡。
如图6所示,分布式容错机制无法提供正确数据时,存储系统可获取所有副本的原始数据,进一步比对和恢复。利用所有副本的原始数据进一步恢复数据的过程。数据1、数据2、……、数据N是同一数据的多个副本,存放在多个闪存设备上。所有的数据副本都无法读取出正确数据的情况下,分布式存储系统通过预先定义的接口从本地存储系统获取到出错的信息,以及无法恢复的原始数据。分布式系统将N个副本数据,从初始位置开始,逐位统计各副本的比特值。根据各设备的历史出错统计数据,对比特值0和1在各副本的出现次数作加权累加,采信出现次数更高的比特值作为恢复的结果。如果无法确定该位的数值,则留空待定。所有位置的比特值恢复完成后,结合ECC和RAID的校验数据,对数据进一步校验和恢复。与仅采取本地恢复的机制相比,分布式系统可以利用多个副本的原始数据,提高了系统的可靠性。
根据本发明实施例提出的本地与分布式协同设计的可靠闪存存储方法,通过闪存转换层提供设备内部的可靠性信息,存储系统结合分布式的副本机制和本地的ECC、RAID方法,减少两层之间功能的冗余;本地的闪存设备读取出错时,从远程副本获取数据,降低了分布式系统的读请求延迟,将远程获取的数据用于本地恢复,优化了本地的恢复过程,提高恢复效率;分布式系统将数据的多个副本以不同的可靠性级别存储,保证数据存储的可靠性,降低整体写操作的延迟;当所有的副本都无法完成本地恢复时,分布式系统读取原始数据进行恢复,提高了恢复成功的概率,增强了数据的可靠性。
其次参照附图描述根据本发明实施例提出的本地与分布式协同设计的可靠闪存存储系统。
图7为根据本发明一个实施例的本地与分布式协同设计的可靠闪存存储系统结构示意图;
如图7所示,该本地与分布式协同设计的可靠闪存存储系统10包括:发送模块100、第一恢复模块200和第二恢复模块300。
其中,发送模块100用于将闪存设备连接到主机系统,闪存转换层将闪存可靠性信息发送给主机系统,在闪存设备读取数据出错时,闪存转换层将出错数据信息发送给主机系统。第一恢复模块200用于主机系统对出错数据进行数据恢复,并利用分布式容错机制,从远程副本或纠删码中获取正确数据帮助恢复所述出错数据,主机系统从先完成数据恢复的一方获取正确数据发送给分布式存储系统。第二恢复模块300用于分布式容错机制无法为主机系统提供恢复出错数据需要的正确数据时,分布式存储系统从正确数据的副本所在的闪存设备中的获取原始数据以恢复出错数据。该闪存存储系统10能综合管理分布式存储系统和本地闪存设备的可靠性机制,降低系统的读操作延迟,提高闪存设备本地恢复数据的效率,增强存储系统可靠性。
进一步地,在本发明的一个实施例中,在闪存设备连接到主机系统时,闪存转换层将闪存可靠性信息发送给主机系统进行初始化,闪存可靠性信息由支持的ECC、RAID、各容错机制的可靠性、读写延迟和恢复延迟组成。
进一步地,在本发明的一个实施例中,在分布式容错机制采用多副本机制时,对同一数据的多个副本分别采用不同强度的ECC和RAID存储
进一步地,在本发明的一个实施例中,发送模块进一步用于:闪存设备执行主机系统发送的读命令,包括执行硬解码、软解码和RAID恢复;闪存设备在硬解码或软解码阶段出错,闪存转换层生成包含出错阶段和下一步骤预计执行时间的错误信息发送给主机系统,并进行下一步操作;闪存设备在RAID恢复阶段出错,闪存转换层将出错数据的信息发送给主机系统,结束读过程。
进一步地,在本发明的一个实施例中,第一恢复模块进一步用于:主机系统收到闪存转换层发送的出错数据的信息,进行本地设备的恢复,并向远程节点发送读请求以从远程副本或纠删码中获取正确数据帮助恢复出错数据;远程节点收到主机系统的读请求后向闪存设备发送读命令,其中,闪存设备在硬解码或软解码步骤出错时,直接进行下一步操作步骤,不向主机系统发送错误信息;本地存储系统等待远程读和本地设备读结果,从先结束读操作的一方获取正确数据,返回给分布式存储系统。
进一步地,在本发明的一个实施例中,远程先获取正确数据且本地设备未完成出错数据的恢复时,本地设备获取远程的正确数据,并对普通恢复和使用正确数据进行恢复进行代价评估,若使用正确数据恢复出错数据代价小于普通恢复,则闪存转换层根据本地设备出错的阶段,根据正确数据计算出ECC和RAID校验数据,以覆盖本地设备的出错数据。
需要说明的是,前述对本地与分布式协同设计的可靠闪存存储方法实施例的解释说明也适用于该实施例的系统,此处不再赘述。
根据本发明实施例提出的本地与分布式协同设计的可靠闪存存储系统,通过闪存转换层提供设备内部的可靠性信息,存储系统结合分布式的副本机制和本地的ECC、RAID方法,减少两层之间功能的冗余;本地的闪存设备读取出错时,从远程副本获取数据,降低了分布式系统的读请求延迟,将远程获取的数据用于本地恢复,优化了本地的恢复过程,提高恢复效率;分布式系统将数据的多个副本以不同的可靠性级别存储,保证数据存储的可靠性,降低整体写操作的延迟;当所有的副本都无法完成本地恢复时,分布式系统读取原始数据进行恢复,提高了恢复成功的概率,增强了数据的可靠性。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种本地与分布式协同设计的可靠闪存存储方法,其特征在于,包括以下步骤:
S1,将所述闪存设备连接到主机系统,闪存转换层将闪存可靠性信息发送给所述主机系统,在所述闪存设备读取数据出错时,所述闪存转换层将出错数据信息发送给所述主机系统;
S2,所述主机系统对出错数据进行数据恢复,并利用分布式容错机制,从远程副本或纠删码中获取正确数据帮助恢复所述出错数据,所述主机系统从先完成数据恢复的一方获取所述正确数据发送给分布式存储系统;
S3,所述分布式容错机制无法为所述主机系统提供恢复所述出错数据需要的所述正确数据时,所述分布式存储系统从所述正确数据的副本所在的所述闪存设备中的获取原始数据以恢复所述出错数据。
2.根据权利要求1所述的本地与分布式协同设计的可靠闪存存储方法,其特征在于,
在所述闪存设备连接到所述主机系统时,所述闪存转换层将闪存可靠性信息发送给所述主机系统进行初始化,所述闪存可靠性信息由支持的ECC、RAID、各容错机制的可靠性、读写延迟和恢复延迟组成;
在所述分布式容错机制采用多副本机制时,对同一数据的多个副本分别采用不同强度的ECC和RAID存储。
3.根据权利要求1所述的本地与分布式协同设计的可靠闪存存储方法,其特征在于,S1进一步包括:
S101,所述闪存设备执行所述主机系统发送的读命令,包括执行硬解码、软解码和RAID恢复;
S102,所述闪存设备在所述硬解码或所述软解码阶段出错,所述闪存转换层生成包含出错阶段和下一步骤预计执行时间的错误信息发送给主机系统,并进行下一步操作;
S103,所述闪存设备在所述RAID恢复阶段出错,所述闪存转换层将所述出错数据的信息发送给所述主机系统,结束读过程。
4.根据权利要求3所述的本地与分布式协同设计的可靠闪存存储方法,其特征在于,S2进一步包括:
S201,所述主机系统收到所述闪存转换层发送的所述出错数据的信息,进行本地设备的恢复,并向远程节点发送读请求以从所述远程副本或所述纠删码中获取所述正确数据帮助恢复所述出错数据;
S202,所述远程节点收到所述主机系统的读请求后向所述闪存设备发送读命令,其中,所述闪存设备在所述硬解码或所述软解码步骤出错时,直接进行下一步操作步骤,不向所述主机系统发送错误信息;
S203,所述主机系统等待所述远程读和所述本地设备读结果,从先结束读操作的一方获取所述正确数据,返回给分布式存储系统。
5.根据权利要求4所述的本地与分布式协同设计的可靠闪存存储方法,其特征在于,所述远程先获取所述正确数据且所述本地设备未完成所述出错数据的恢复时,所述本地设备获取所述远程的所述正确数据,并对普通恢复和使用所述正确数据进行恢复进行代价评估,若使用所述正确数据恢复所述出错数据代价小于所述普通恢复,则所述闪存转换层根据所述本地设备出错的阶段,根据所述正确数据计算出ECC和RAID校验数据,以覆盖所述本地设备的所述出错数据。
6.一种本地与分布式协同设计的可靠闪存存储系统,其特征在于,包括:
发送模块,用于将所述闪存设备连接到主机系统,闪存转换层将闪存可靠性信息发送给所述主机系统,在所述闪存设备读取数据出错时,所述闪存转换层将出错数据信息发送给所述主机系统;
第一恢复模块,用于所述主机系统对出错数据进行数据恢复,并利用分布式容错机制,从远程副本或纠删码中获取正确数据帮助恢复所述出错数据,所述主机系统从先完成数据恢复的一方获取所述正确数据发送给分布式存储系统;
第二恢复模块,用于所述分布式容错机制无法为所述主机系统提供恢复所述出错数据需要的所述正确数据时,所述分布式存储系统从所述正确数据的副本所在的所述闪存设备中的获取原始数据以恢复所述出错数据。
7.根据权利要求6所述的本地与分布式协同设计的可靠闪存存储系统,其特征在于,
在所述闪存设备连接到所述主机系统时,所述闪存转换层将闪存可靠性信息发送给所述主机系统进行初始化,所述闪存可靠性信息由支持的ECC、RAID、各容错机制的可靠性、读写延迟和恢复延迟组成;
在所述分布式容错机制采用多副本机制时,对同一数据的多个副本分别采用不同强度的ECC和RAID存储。
8.根据权利要求6所述的本地与分布式协同设计的可靠闪存存储系统,其特征在于,所述发送模块进一步用于:
所述闪存设备执行所述主机系统发送的读命令,包括执行硬解码、软解码和RAID恢复;
所述闪存设备在所述硬解码或所述软解码阶段出错,所述闪存转换层生成包含出错阶段和下一步骤预计执行时间的错误信息发送给主机系统,并进行下一步操作;
所述闪存设备在所述RAID恢复阶段出错,所述闪存转换层将所述出错数据的信息发送给所述主机系统,结束读过程。
9.根据权利要求6所述的本地与分布式协同设计的可靠闪存存储系统,其特征在于,所述第一恢复模块进一步用于:
所述主机系统收到所述闪存转换层发送的所述出错数据的信息,进行本地设备的恢复,并向远程节点发送读请求以从所述远程副本或所述纠删码中获取正确数据帮助恢复所述出错数据;
远程节点收到所述主机系统的读请求后向所述闪存设备发送读命令,其中,所述闪存设备在所述硬解码或所述软解码步骤出错时,直接进行下一步操作步骤,不向所述主机系统发送错误信息;
本地存储系统等待所述远程读和所述本地设备读结果,从先结束读操作的一方获取所述正确数据,返回给分布式存储系统。
10.根据权利要求6所述的本地与分布式协同设计的可靠闪存存储系统,其特征在于,所述远程先获取所述正确数据且所述本地设备未完成所述出错数据的恢复时,所述本地设备获取所述远程的所述正确数据,并对普通恢复和使用所述正确数据进行恢复进行代价评估,若使用所述正确数据恢复所述出错数据代价小于所述普通恢复,则所述闪存转换层根据所述本地设备出错的阶段,根据所述正确数据计算出ECC和RAID校验数据,以覆盖所述本地设备的所述出错数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811587813.XA CN109739777B (zh) | 2018-12-25 | 2018-12-25 | 本地与分布式协同设计的可靠闪存存储方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811587813.XA CN109739777B (zh) | 2018-12-25 | 2018-12-25 | 本地与分布式协同设计的可靠闪存存储方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109739777A true CN109739777A (zh) | 2019-05-10 |
CN109739777B CN109739777B (zh) | 2020-08-04 |
Family
ID=66361143
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811587813.XA Active CN109739777B (zh) | 2018-12-25 | 2018-12-25 | 本地与分布式协同设计的可靠闪存存储方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109739777B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111277365A (zh) * | 2020-01-16 | 2020-06-12 | 北京同有飞骥科技股份有限公司 | 一种基于喷泉码的自适应分布式数据存储方法及系统 |
CN112667443A (zh) * | 2020-12-31 | 2021-04-16 | 长城超云(北京)科技有限公司 | 一种面向用户的可变分布式存储副本容错方法 |
US20230033539A1 (en) * | 2021-07-28 | 2023-02-02 | Alibaba Singapore Holding Private Limited | Data recovery bypassing protocol for cloud network storage system |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0120186A2 (en) * | 1983-03-24 | 1984-10-03 | International Business Machines Corporation | Apparatus for automatic instruction parity error recovery |
US20090077443A1 (en) * | 2004-08-25 | 2009-03-19 | International Business Machines Corporation | Storing parity information for data recovery |
CN101868785A (zh) * | 2007-09-21 | 2010-10-20 | 惠普开发有限公司 | 生成数据存储系统的并行恢复策略 |
CN102270161A (zh) * | 2011-06-09 | 2011-12-07 | 华中科技大学 | 一种基于纠删码的多等级容错数据存储、读取和恢复方法 |
CN103309622A (zh) * | 2012-01-11 | 2013-09-18 | 霍尼韦尔国际公司 | 持久性数据的安全系统存储器 |
CN103944981A (zh) * | 2014-04-14 | 2014-07-23 | 中国科学院计算技术研究所 | 一种基于纠删码技术改进的云存储系统及实现方法 |
CN104052576A (zh) * | 2014-06-07 | 2014-09-17 | 华中科技大学 | 一种云存储下基于纠错码的数据恢复方法 |
CN105635252A (zh) * | 2015-12-23 | 2016-06-01 | 浪潮集团有限公司 | 一种Hadoop分布式文件系统HDFS纠删码冗余备份策略 |
CN107977167A (zh) * | 2017-12-01 | 2018-05-01 | 西安交通大学 | 一种基于纠删码的分布式存储系统的退化读优化方法 |
US20180205396A1 (en) * | 2017-01-13 | 2018-07-19 | Everspin Technologies Inc. | Preprogrammed data recovery |
-
2018
- 2018-12-25 CN CN201811587813.XA patent/CN109739777B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0120186A2 (en) * | 1983-03-24 | 1984-10-03 | International Business Machines Corporation | Apparatus for automatic instruction parity error recovery |
US20090077443A1 (en) * | 2004-08-25 | 2009-03-19 | International Business Machines Corporation | Storing parity information for data recovery |
CN101868785A (zh) * | 2007-09-21 | 2010-10-20 | 惠普开发有限公司 | 生成数据存储系统的并行恢复策略 |
CN102270161A (zh) * | 2011-06-09 | 2011-12-07 | 华中科技大学 | 一种基于纠删码的多等级容错数据存储、读取和恢复方法 |
CN103309622A (zh) * | 2012-01-11 | 2013-09-18 | 霍尼韦尔国际公司 | 持久性数据的安全系统存储器 |
CN103944981A (zh) * | 2014-04-14 | 2014-07-23 | 中国科学院计算技术研究所 | 一种基于纠删码技术改进的云存储系统及实现方法 |
CN104052576A (zh) * | 2014-06-07 | 2014-09-17 | 华中科技大学 | 一种云存储下基于纠错码的数据恢复方法 |
CN105635252A (zh) * | 2015-12-23 | 2016-06-01 | 浪潮集团有限公司 | 一种Hadoop分布式文件系统HDFS纠删码冗余备份策略 |
US20180205396A1 (en) * | 2017-01-13 | 2018-07-19 | Everspin Technologies Inc. | Preprogrammed data recovery |
CN107977167A (zh) * | 2017-12-01 | 2018-05-01 | 西安交通大学 | 一种基于纠删码的分布式存储系统的退化读优化方法 |
Non-Patent Citations (1)
Title |
---|
傅颖勋等: ""纠删码存储系统单磁盘错误重构优化方法综述"", 《计算机研究与发展》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111277365A (zh) * | 2020-01-16 | 2020-06-12 | 北京同有飞骥科技股份有限公司 | 一种基于喷泉码的自适应分布式数据存储方法及系统 |
CN111277365B (zh) * | 2020-01-16 | 2022-07-26 | 北京同有飞骥科技股份有限公司 | 一种基于喷泉码的自适应分布式数据存储方法及系统 |
CN112667443A (zh) * | 2020-12-31 | 2021-04-16 | 长城超云(北京)科技有限公司 | 一种面向用户的可变分布式存储副本容错方法 |
US20230033539A1 (en) * | 2021-07-28 | 2023-02-02 | Alibaba Singapore Holding Private Limited | Data recovery bypassing protocol for cloud network storage system |
US11782778B2 (en) * | 2021-07-28 | 2023-10-10 | Alibaba Singapore Holding Private Limited | Data recovery bypassing protocol for cloud network storage system |
Also Published As
Publication number | Publication date |
---|---|
CN109739777B (zh) | 2020-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2732373B1 (en) | Method and apparatus for flexible raid in ssd | |
US9569306B1 (en) | Recovery of multi-page failures in non-volatile memory system | |
US11288119B2 (en) | Key value SSD | |
US10872012B2 (en) | XOR recovery schemes utilizing external memory | |
CN103339609B (zh) | Raid阵列中的装置内数据保护 | |
US9430329B2 (en) | Data integrity management in a data storage device | |
CN103348326B (zh) | Ssd环境中的适配raid | |
CN103314361B (zh) | 具有动态几何的raid阵列中的重构读取 | |
US8601347B1 (en) | Flash memory device and storage control method | |
US20100169743A1 (en) | Error correction in a solid state disk | |
US20110029728A1 (en) | Methods and apparatus for reducing input/output operations in a raid storage system | |
DE202008018573U1 (de) | Speichersystem | |
CN111722793A (zh) | 开放通道存储设备的操作方法 | |
US10346247B1 (en) | Adjustable error sensitivity for taking disks offline in a mapped RAID storage array | |
CN109739777A (zh) | 本地与分布式协同设计的可靠闪存存储方法及系统 | |
US11340986B1 (en) | Host-assisted storage device error correction | |
CN113641303A (zh) | 用于故障弹性存储的系统、方法和设备 | |
US20100138603A1 (en) | System and method for preventing data corruption after power failure | |
CN113641528A (zh) | 用于数据恢复的系统、方法和装置 | |
CN114661516A (zh) | 具有数据质量度量和可选数据恢复方案的存储设备 | |
US12081526B2 (en) | Data storage device data recovery using remote network storage | |
JP7137612B2 (ja) | 分散型ストレージシステム、データ復旧方法、及びデータ処理プログラム | |
US20230376230A1 (en) | Data storage with parity and partial read back in a redundant array | |
US20220377054A1 (en) | Data storage device data recovery using remote network storage | |
US11221790B2 (en) | Storage system |
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 |