掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本发明大体上涉及用于多个存储装置的存储管理,包含用于冷存储应用的系统及方法。

背景技术

冷数据存储是指很少被使用或存取的非活动数据的存储。冷数据可能出于商业或合规性目的而长期保留。与用于支持更活动数据的高性能主存储相比,冷数据存储可采用更经济的存储。例如,在社交网络中发布的视频及照片在其被上传之后立刻被频繁存取,但所述存取频率在几天内急剧下降。具有此低存取率的数据可称为“冷数据”。可将冷数据移动到所谓“冷档案”中以供长期存储。

存储设施实施例如硬盘驱动器(HDD)、光盘及磁带的存储媒体。除环境因素外,数据存储的寿命还可能受存储媒体的结构及材料质量影响。这造成存储寿命的差异(例如,对于HDD来说少于5年,而对于磁带来说10到30年)。HDD采用一种组合机械驱动器及记录媒体的系统,且这些驱动器的寿命通常很短。磁带系统利用容易断裂的长超薄(数微米(μm))膜卷。光盘利用对非有机材料的物理更改,且这种媒体具有比HDD或磁带更长的存储能力。然而,将数据记录在光盘上具有实践及经济缺点:光盘的成本可能过于昂贵,且从光盘读取数据可能是不切实际的(例如,需要兼容的光盘读取器)。此外,使用例如光盘的长期存储媒体可能是不切实际的,这是因为用以激活长期存储媒体(例如,从长期存储媒体读取或写入长期存储媒体)的系统或装置可能变得过时且可能不容易获得。例如,光学读取器可能变得过时或不太普遍,且可能难以购买、制造或以其它方式获得激活长期存储媒体所需的光学读取器。因此,需要改进的数据存储,包含冷数据存储及长期数据存储。

发明内容

本文中所描述的一或多个实施例至少解决这些问题。一种存储冷数据的方式是通过使用如HDD或固态驱动器(SSD)的驱动器将其维持在一个“活的系统”中,且随着时间的推移连续地迁移所述数据,同时添加传入的新冷数据。

在数据中心中使用备份及归档应用程序来维持冷数据及冻结数据。通常这些应用程序的特征在于单个写入流(无更新及零或低读取负荷)。由于工作负荷性质,可在冷存储装置的生命周期内实施少量编程/擦除(P/E)循环。即,每天的装置写入(DWPD)要求可能对应于每几年1次磁盘写入。HDD尽管可能具有比SSD更低的性能(例如,在密度、功率消耗、冷却及可存取性方面)但成本可能比SSD更低。因此,由于对冷存储的低性能要求,通常实施HDD。这无法提供具有许多SSD优点的存储系统。

用于存储媒体的物理特性的一些规范包含以下项:最小成本、防篡改的记录方法、非易失性存储器、长使用寿命(例如100年或更长)、与各种系统的兼容性及随机存取能力。

与HDD媒体不同,可能包含NAND存储器的SSD受限于其写入能力。即,在存储器开始退化且最终失效之前,其具有有限的P/E循环。因此,其可能具备有限的保修期(例如,针对以DWPD设置的工作负荷为3或5年)。通常,超额配置(OP)是事先计算的,使得在所需的DWPD工作负荷下,保修期结束时剩余的P/E循环将少于P/E循环的媒体限制数目。由于针对最坏的情况设置OP,所以通常装置保留数百或数千个关于媒体限制剩余的P/E循环。例如,如果媒体P/E极限是10K,那么在寿命终止(或保修期结束)时其可达到消耗约7K到8K的程度,剩余2K到3KP/E。

除有限的P/E循环外,NAND媒体耗损可能增加读取错误率。即,在保修期时间结束时读取错误机率大于新媒体的读取错误机率。SSD控制器可使其错误校正算法适应媒体状态,例如从硬判决到软判决,或适应内部独立磁盘冗余阵列(RAID)结构。这会影响读取延时(例如,因为使用了涉及更多计算时间的更复杂算法),且甚至可能引起从块池移除块且将所述块标记为坏块。

实现与NAND快闪存储器封装进行通信的一些方法包含使用例如MMC(多媒体卡)及SPI(串行外围接口)的串行协议,但这些方法限于用于消费类装置(例如移动电话、平板计算机及相机)的快闪存储器中的低速应用。这些协议不适合于高速应用,例如在SSD中使用NAND快闪存储器装置。

然而,尽管有这些限制,但在大规模数据存储系统中使用SSD是有利的。过期的SSD或具有低剩余P/E容量的SSD可能是廉价的,且由于例如改进的密度、功率消耗及冷却性的SSD特性,与HDD相比,SSD的操作费用可能较低。本文中所描述的系统及方法提供将SSD(例如,包含过期的SSD或具有低剩余P/E容量的SSD)用于备份及归档平台,且提供在最小化可操作SSD将发生失效的风险的同时有效地使用SSD的迁移及归档过程。

常规上,在装置级(例如,基于个体)预期及管理存储装置故障。例如,在某些常规系统中,可假设存储装置在某个点之前一直起作用(例如,直到执行对应保修期极限的数个P/E循环为止),且一旦到达所述点时或在快要达到所述点之前,所述存储装置可被停用。然而,此停用并未使用关于装置的相对可靠性的池级信息来停用相对低优先级的存储装置,及将数据传送到相对高优先级的存储装置。此池级管理允许装置选择中的额外粒度且提供有效地使用可能超过保修期点的存储装置的改进的管理。

在一或多个实施例中,根据第一方面,一种使用管理装置来管理数据存储的方法包含:确定多个(即,池)存储装置的相应状态信息;及基于所述状态信息,使用成本函数来计算所述多个存储装置中的每一者的相应成本,所述成本函数包含一或多个参数,所述参数包含以下项中的至少一者:编程/擦除(P/E)参数、块错误状态参数、块错误级别参数及工作负荷参数。所述方法进一步包含基于所述经计算成本中的至少一些来选择所述多个存储装置中的目的地存储装置,及将数据写入到所述目的地存储装置。

在一或多个实施例中,根据第二方面,一种管理数据存储的方法包含:选择多个存储装置中的源存储装置;从所述源存储装置读取数据;确定所述读取数据是损坏的;及基于使用成本函数计算的所述目的地存储装置的成本来选择所述多个存储装置中的目的地存储装置。所述方法进一步包含:基于所述经损坏读取数据来确定经错误校正或无错误数据;及将所述经错误校正或无错误数据写入到所述所选择的目的地存储装置。所述成本函数包含一或多个参数,所述参数包含以下项中的至少一者:编程/擦除(P/E)参数、块错误状态参数、块错误级别参数及工作负荷参数。

在一或多个实施例中,根据第三方面,一种用于管理数据存储的系统包含多个存储装置及管理装置。所述管理装置经配置以确定多个存储装置的相应状态信息;基于所述状态信息,使用成本函数来计算所述多个存储装置中的每一者的相应成本;及基于所述经计算成本来确定所述多个存储装置的排名。所述管理装置进一步经配置以基于所述排名来选择所述多个存储装置中的目的地存储装置,及将数据写入到所述目的地存储装置。所述成本函数包含一或多个参数,所述参数包含以下项中的至少一者:编程/擦除(P/E)参数、块错误状态参数、块错误级别参数及工作负荷参数。

附图说明

图1展示根据本发明的实施例的实例数据存储系统的概览。

图2是根据本发明的实施例的用于管理在图1中所展示的数据存储系统的实例管理装置的框图。

图3展示根据本发明的实施例的多个存储装置及其成本排名。

图4是展示根据本发明的一或多个实施例的用于写入数据的实例方法的流程图。

图5是展示根据本发明的一或多个实施例的用于写入经错误校正数据的实例方法的流程图。

图6是展示根据本发明的一或多个实施例的用于执行系统维护的实例方法的流程图。

具体实施方式

本文中所描述的实施例提供对用于数据存储系统的装置或方法的某些改进。本文中描述所的实施例中的一或多者实施低成本的过期SSD或具有低剩余P/E容量的SSD。使用本文中所描述的装置或方法,可减轻或解决SSD的某些问题,例如数据损坏及驱动器故障的风险,所述装置或方法包含经配置以执行SSD的改进选择以将新数据归档或迁移现有(可能经错误校正)数据的管理装置。改进的选择可基于考虑包含在由管理装置管理的SSD池中的候选SSD的特性的成本函数。管理装置还可标记及/或移除不可靠的SSD(例如,如由不可靠装置的成本处于、高于或低于成本阈值来证明)。

图1展示根据本发明的实施例的实例数据存储系统100的概览。数据存储系统100可包含管理装置102、多个存储装置104及一或多个客户端装置106。管理装置102、多个存储装置104及一或多个客户端装置106通信地连接。

管理装置102可经配置以执行存储装置104的池级管理,包含选择性地将数据存储在存储装置104中的适当存储装置且包含标记或停用被认为不可靠的存储装置。管理装置102可向客户端装置106提供对一或多个应用程序编程接口(API)的存取以供存取、监视或操纵存储在存储装置104中的数据。API可提供块级、对象级、或文件级管理。下文关于图2更详细地描述实例管理装置102。

存储装置104可包含例如SSD的存储器装置。例如,存储装置104包含过期的SSD(例如,超过其关于P/E的保修期),或具有低剩余P/E容量的SSD。此类SSD可能是低成本的且在常规存储系统中可能是不可用的或低效率的。在一些实施例中,存储装置104还可包含未过期的SSD,且可包含HDD或其它存储媒体。

客户端装置106可为主机、服务器或经配置以传输数据以供冷存储的其它装置。例如,客户端装置106可经配置以将已过期(例如,在预定时间段内不活动,或在预定时间段内以低频率存取)的数据迁移到存储装置104。客户端装置106可将待存储的数据发送到管理装置102以存储在存储装置104中,或可向管理装置102查询客户端装置106可直接在其中存储数据的存储装置104内的位置。在一些实施方案中,客户端装置106可经配置以将信息直接存储在存储装置104中且可将此存储的指示发送到管理装置102。客户端装置106可使用由管理装置102提供的API来执行此管理。

图2是根据本发明的实施例的实例管理装置102的框图。管理装置102包含处理器202、状态信息204、成本计算器206、可靠性分析器208、状态更新器210、迁移管理器212、错误管理器214及接口216。管理装置102可经配置以选择性地将数据存储在存储装置104中的适当存储装置中且标记或停用认为不可靠的存储装置。

处理器202可包含一或多个微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等或其组合。所述处理器可经配置以执行固件、软件及存储在存储器中(在机器可读媒体上)的指令,例如包含在本文中所描述的管理装置102的组件中的指令。

状态信息204可为存储在管理装置102的存储器中的信息。状态信息204可包含分别对应于多个存储装置104的多个装置配置文件218。多个装置配置文件218可包含任何数目个装置配置文件,且至少包含第一装置配置文件218A。状态信息还包含排名220。

装置配置文件218A包含关于存储装置104的状态信息,包含P/E信息222、错误信息224、工作负荷信息226及成本信息228中的一或多者。装置配置文件218A还可包含可指示对应存储装置104的一或多个块是否是坏的或不可靠的坏块数据。可由管理装置102的组件使用状态信息来管理存储在存储系统100中的数据的归档及迁移。例如,状态信息可用于识别不可靠(例如容易出错,或不太可能将经存储数据维持在未损坏状态)的存储装置104,且将数据从不可靠的存储装置104迁移到可靠的存储装置104。状态信息还可用于其它用途,例如损耗均衡。

P/E信息222可涉及一或多个或所有存储装置104。P/E信息222可指示例如已对存储装置104执行的P/E循环的数目、有关存储装置104的P/E循环的次数的媒体极限或存储装置104的P/E循环的剩余数目。P/E信息222可包含特定于存储装置104的一或多个存储器块(其在本文中可简称为“块”)的信息,且可包含跨存储装置104的块计算的平均值(例如,每个块的P/E循环的平均数目)。如本文中更详细地描述,P/E信息222可用作成本函数的输入以确定存储装置104中的存储装置的可靠性、优先级或排名。

错误信息224可涉及存储装置104的错误状态或错误级别。错误信息224可包含指示存储装置104或存储装置104的块的“状态”的错误状态信息,其对应于一或多种错误校正技术或此技术的类别(例如,低级错误校正或高级错误校正)。例如,处于高错误级别的块的错误校正过程可能需要使用更多计算资源及/或花费更多时间来实施的复杂算法(例如,相对于用于低错误状态的块的算法)。可基于存储装置104的数据的损坏程度及/或类型来确定错误状态,或可基于使用特定错误校正技术来尝试进行的错误校正的结果来确定错误状态。在一些实施例中,错误状态信息可用于直接将存储装置104标记为不可靠。

错误信息224还可包含错误级别信息,所述错误级别信息指示存储装置104或存储装置104的块的读取数据错误、编程错误或坏块错误的频率或可能性。错误信息224可指示例如需要校正的错误之间的平均使用次数或时间量,或可指示给定时间段或给定使用次数的平均错误数目。错误信息224可包含错误级别信息或错误状态信息的直方图。如本文中更详细地描述,错误信息224可用作成本函数的输入以确定存储装置104中的存储装置的可靠性、优先级或排名。

工作负荷信息226可涉及存储装置104的使用的频率或可能性,或在一些实施例中,存储装置104的特定块的使用频率或可能性。存储装置104的使用可包含存取存储装置104以进行读取或写入过程。在冷存储系统中,存储装置的使用率通常较低,但仍可能因装置而异。在一些实施例中,存储装置104的较高使用频率或可能性可指示可实施可接受错误级别的较高阈值,因为错误率通常随着保留时间增加而增加,其与使用频率成反比。相比之下,存储装置104的较低使用频率或可能性可指示应实施可接受错误级别的较低阈值。在其它实施例中,存储装置104的较高使用频率或可能性可指示应实施可接受错误级别的较高阈值,因为具有较高错误级别的存储装置104可针对每次使用实施更耗时、复杂的错误校正算法,这对于高使用率及高优先级存储装置104来说可能相当于显著的(且可能是不可接受的)的存取时间延迟。在此类实施例中,存储装置104的较低使用频率或可能性可指示应实施可接受错误级别的较低阈值,因为将仅针对不被频繁存取的数据不频繁地实施耗时错误校正过程。如本文中更详细地描述,工作负荷信息226可用作成本函数的输入以确定存储装置104中的存储装置的可靠性、优先级或排名。成本函数可输出“成本”,其是基于一或多个可靠性参数(例如P/E参数或错误参数)的“可靠性”值与基于一或多个工作负荷参数(例如本文中所论述的工作负荷参数或指示使用频率的另一参数)的聚合。

成本信息228可涉及存储装置104的“成本”。可使用由成本计算器206确定的成本函数来确定成本,如本文中更详细地描述。成本可指示存储装置104的可靠性、优先级或排名。在本文中所描述的某些实施例中,成本函数可被描述为针对相对不太容易出错的相对可靠存储装置104输出高数字,且针对相对更容易出错的相对不可靠存储装置104输出低数字。对应地,高成本存储装置104可指相比于低成本存储装置104不太容易出现数据错误的相对可靠存储装置104。然而,在其它实施例中,成本函数可针对低可靠性装置输出高数字且针对高可靠性装置输出低数字。

成本计算器206可包含用于使用成本函数来计算存储装置104的成本的逻辑、硬件或固件。如上文所描述,所述成本可指示存储装置104的可靠性、优先级或排名。所述成本可指示存储装置104用于存储信息(例如,新信息或正从另一存储装置104迁移的信息)的适合性。所述成本可指示存储装置104是否足够可靠以包含在可靠存储装置104的池中,或是否应将存储装置104标记为不可靠、被停用及从可靠存储装置104的池移除。可使用成本函数来计算所述成本。成本函数可使用P/E信息222、错误信息224及工作负荷信息226中的任一者,及任何其它适当信息作为输入。在一些实施例中,成本函数是线性函数或包含线性分量。例如,成本函数可呈以下形式,或可包含呈以下形式的项目:

cost=w

其中P/E是编程/擦除参数,ES是错误状态参数,EL是错误级别参数,WORK是工作负荷参数,且w

P/E参数可与任何P/E信息222相关,且可为已对存储装置104执行的P/E循环的数目、有关存储装置104的P/E循环的数目的媒体极限、存储装置104的P/E循环的剩余数目。在一些实施例中,P/E参数可指示关于由一或多个预定阈值定义的媒体极限的剩余P/E循环的“级别”(例如许多循环剩余、一些循环剩余或少许循环剩余)。P/E参数可指示相对的P/E信息(例如,相对于其它块或其它存储装置104的所执行的P/E循环或剩余的P/E循环的差异)。通过将此P/E参数并入到成本函数中,成本函数可提供损耗均衡。P/E参数可为正计算其成本函数的目标存储装置104的多个块的P/E参数的平均值。

ES参数可与错误信息224的任何错误状态信息相关,且可指示针对存储在目标装置中数据的给定损坏级别或损坏类型推荐或适合其的错误校正技术或错误校正技术类别。ES参数可为正计算其成本函数的目标存储装置104的多个块的ES参数的平均值。

EL参数可与错误信息224的任何错误级别信息相关,且可指示存储在存储装置104中的数据或存储装置104的块的数据的错误频率或可能性。EL参数可为需要校正的错误之间的平均使用次数或时间量,或可指示给定时间段或给定使用次数的平均错误数目。EL参数可特定于由ES参数指示的错误级别的错误,或可涉及多个错误级别。EL参数可为正计算其成本函数的目标存储装置104的多个块的EL参数的平均值。

WORK参数可与任何工作负荷信息226相关,且可为表示正计算其成本函数的目标存储装置104的使用可能性或频率的参数。WORK参数可指示给定时间段内的使用次数(例如,预定时间段内的平均使用次数)。使用次数可被计算为读取使用及写入使用的加权总和,且在一些实施例中,写入使用的权重可比读取使用的权重更高。通过将WORK参数并入到成本函数中,成本函数可提供识别应被迁移的数据以减少读取干扰错误,或由于保留错误所致的数据错误或丢失、编程错误或坏块错误的可能性。因此,成本函数还可解释为频繁存取的装置中的高写入放大率(WA),及降级的写入性能。WORK参数可为正计算其成本函数的目标存储装置104的多个块的WORK参数的平均值。

除计算目标存储装置104的成本且确定成本信息228外,成本计算器206还可基于成本信息228来确定排名220。所述排名可为从最高成本到最低成本(或从最低成本到最高成本)对存储装置104进行排名的严格分层排名。排名220可对应于或为存储装置104的优先级或偏好的排名,且可用来确定用于数据迁移或数据归档过程的目的地存储装置104。

可靠性分析器208可包含用于确定存储装置104的可靠性的逻辑、硬件、或固件。可靠性可包含针对存储装置104确定的可靠性分数、可靠性级别或二进制可靠性(可靠/不可靠)。可靠性分析器208可使用一或多个成本阈值来确定存储装置104的可靠性。在一些实施例中,所述可靠性分析器可将存储装置标记为不可靠(例如,具有低于成本阈值的成本),且可生成警报或致使发出警报(例如,发送到管理装置102的用户),所述警报指示所述存储装置是不可靠的及/或所述存储装置应从存储装置104的池移除。可预先确定(例如,可由管理装置102的用户手动设置)由可靠性分析器208使用的一或多个成本阈值。

状态更新器210可包含用于生成、更新或以其它方式确定状态信息204的逻辑、硬件或固件。状态更新器可根据预定时间表(例如,每二十四小时或每四到八小时)来确定状态信息204,及/或可在发生触发事件时(例如,在将数据新归档在存储装置104中的一或多者中时、在执行一或多个数据迁移过程时、在将存储装置104从存储装置104的池移除或添加到存储装置104的池时、或在管理装置102的用户触发状态更新时)确定状态信息204。当对存储装置104执行P/E循环或错误校正过程时,或当以其它方式存取存储装置104时,可通知状态更新器210,且状态更新器210相应地更新状态信息204。在一些实施例中,状态更新器210可向存储装置104(或对应控制器)查询状态信息204。在一些实施例中,存储装置104(或对应控制器)可通过将状态信息204传输到状态更新器210来启动状态更新,而状态更新器210无需请求所述信息。在一些实施例中,状态更新器210可通过指示成本计算器206确定经更新成本来更新存储装置104的成本。所述状态更新器可类似地基于经更新成本来更新排名220。

迁移管理器212可包含用于迁移存储在存储装置104上的数据的逻辑、硬件或固件。迁移管理器212可实施包含将数据从不可靠的存储装置104迁移到可靠的存储装置104的迁移过程。例如,响应于触发(例如,将存储装置104标记为不可靠,或执行存储装置清理的用户命令),或根据时间表,迁移管理器212可选择标记为不可靠的源存储装置104,可选择可靠的目的地存储装置104,且可将一些或所有数据从源存储装置104传送到目的地存储装置104。迁移管理器212可实施池级选择过程,所述池级选择过程包含基于存储装置104的成本或基于排名220来选择高优先级的存储装置104作为目的地存储装置。在一些实施例中,迁移管理器212可选择存储装置104的池中的最高优先级的可用存储装置104作为目的地存储装置104。可用存储装置104可为例如具有足够闲置的存储器来存储待从源存储装置104传送的数据或以其它方式在逻辑上适合于存储经传送数据的存储装置104。

在一些实施例中,迁移管理器212可迁移数据以实施刷新协议以降低读取干扰错误或由于保留错误所致的数据错误或丢失、编程错误或坏块错误或数据存储系统100的任何种类的负荷平衡的可能性。例如,迁移管理器212可确定源存储装置104已发生预定读取次数,且可标记用于迁移的源存储装置以防止读取干扰。作为另一实例,迁移管理器212可确定可含有已经存储但未经读取达超过阈值保留时间的时间段的数据的源存储装置,且可标记用于迁移的源存储装置中的数据以防止保留错误。迁移管理器可将存储在经标记源存储装置104中的数据迁移到所选择的目的地存储装置104。可使用上文所描述的池阶层选择过程来选择目的地存储装置104。

在一些实施例中,迁移管理器212可使用针对存储在存储装置104中的数据的编码或冗余过程来实施防范错误的备份或数据保护。例如,存储装置104可实施由管理装置102管理的擦除编码协议,其中在将数据作为分块条带跨多个存储装置104存储之前,将数据冗余编码成多个数据分块,其中仅需要成功地读取分块的子集来恢复数据。在另一实例中,存储装置104可实施数据冗余或奇偶校验保护方案,例如RAID(独立磁盘冗余阵列)系统(例如,RAID 0数据条带化、RAID 1镜像、RAID 5或RAID 6奇偶校验保护)。在又一实例中,管理装置102可实施里德-所罗门(Reed-Solomon)错误校正编码系统。镜像或通过编码冗余功能进行的其它数据保护,例如在擦除编码或RAID系统中使用的镜像或数据保护,可使用上文所描述的池级选择过程来实施。例如,选择在其上存储RAID或包括一起构成数据条带的一或多个数据分块的数据的擦除经编码条带的存储装置104可使用池级选择过程来执行。

在一些实施例中,迁移管理器212可针对待存储的新数据执行归档功能。客户端装置106可将待存储的数据传输到管理装置102,或经由下文所描述的API将所述数据直接传输到存储装置104。管理装置102或API使用上文所描述的池级选择过程来选择目的地存储装置104,且将数据存储在所选择的存储装置104中。在一些实施例中,将数据存储在不具有装置配置文件218的装置中,且状态更新器210为所述装置生成新装置配置文件218。

迁移管理器212可执行迁移作为使用错误管理器214的错误校正协议的部分。错误管理器214可包含用于执行存储在存储装置104上的数据的错误校正的逻辑、硬件或固件。例如,错误管理器214可实施利用额外奇偶校验保护位来存储数据的里德-所罗门编码。错误管理器214可读取数据及奇偶校验保护位,且可确定读取数据被损坏。错误管理器214可确定应校正经损坏数据,且可通过对数据及奇偶校验保护位进行里德-所罗门解码来确定对应经错误校正数据。在一些实施例中,迁移管理器212可确定是否可将经错误校正数据重写到经损坏数据曾存储在其上的同一存储装置104,或是否应将经错误校正存储在不同存储装置104上。迁移管理器212可通过参考经损坏数据存储在其上的存储装置104的成本,及确定所述成本是否高于成本阈值(其可与由可靠性分析器208用于确定存储装置是否可靠的成本阈值相同,或其可为不同成本阈值)来作出这个确定。如果迁移管理器212确定将经错误校正数据写入到新存储装置104,那么迁移管理器212可实施池级选择过程以确定目的地存储装置104。

迁移管理器212可执行迁移作为使用错误管理器214的错误恢复协议的部分。错误管理器214可包含用于对存储在存储装置104上的数据执行错误恢复的逻辑、硬件或固件。例如,错误管理器214可实施擦除编码,所述擦除编码通过擦除编码成作为条带跨一组多个存储装置104存储的一组多个分块来以冗余形式存储数据。错误管理器214可读取数据分块,且当从特定存储装置104读取特定数据分块时可能遇到不可恢复的错误。接着,错误管理器214可通过在无错误的情况下读取条带中的多个分块的足够子集来恢复无错误数据。在一些实施例中,迁移管理器212可确定是否应将经恢复的无错误数据重写到多个存储装置104的不同集合,从而避免在读取时给出不可恢复错误的特定存储装置104,或是否可将无错误数据存储在多个存储装置104的同一集合中。迁移管理器212可通过参考在读取时给出不可恢复错误的存储装置104的成本,及确定成本是否高于成本阈值(其可与由可靠性分析器208用于确定存储装置是否可靠的成本阈值相同,或可为不同成本阈值)来作出这个确定。如果迁移管理器212确定将无错误数据写入到存储装置104的新集合,那么迁移管理器212可实施池级选择过程以确定存储装置104的目的地集合。

接口216可包含用于与客户端装置106及存储装置104进行通信的逻辑、硬件或固件。接口216可与由管理装置102提供的API集成在一起,所述API允许客户端装置106将数据存储在存储装置104中(例如,直接地或经由管理装置102间接地)。

如此配置,实例存储系统100使用关于装置的相对可靠性的池级信息来停用相对低优先级的存储装置,且将数据传送到相对高优先级的存储装置。此池级管理允许在选择装置时的额外粒度且提供有效地使用可能超过保修期的存储装置的改进的管理。存储系统100还提供超越简单地使存储装置均等的一种类型的整体损耗均衡,且提供在使用较低功能性的存储装置104之前,使用高功能性的存储装置104,功能性是根据并入有更多因素或替代因素而非简单地并入有已实施的P/E循环的数目的上述成本函数而确定。

现在参考图3,图3展示根据本发明的实施例的多个存储装置及其成本排名。图3展示经配置以从包含存储装置104A、104B、104C及104D的多个存储装置104获取状态信息204的实例管理装置102。管理装置102可使用成本计算器206以基于状态信息204来确定存储装置104A到104D中的每一者的成本且基于所述成本来确定每一存储装置104的排名。管理装置102可使用可靠性分析器208以基于存储装置104的成本低于成本阈值或可靠性阈值来确定任何存储装置104是否不可靠。在所描绘实例中,成本阈值为0.50。存储装置104A、104B及104C具有高于成本阈值的相应成本0.92、0.73及0.86,且可靠性分析器208相应地确定存储装置104A到104B是可靠的。存储装置104D具有低于成本阈值的成本0.32,且可靠性分析器208相应地确定存储装置104D是不可靠的且将存储装置104标记为不可靠。当实施用于选择存储装置104作为用来写入数据的目的地存储装置的池级选择过程时,管理装置102可省略经标记存储装置104D不予考虑。管理装置102可因为存储装置104D不可靠而省略确定存储装置104D的排名。

现在参考图4,图4展示根据本发明的实施例的用于将数据写入到所选择的存储装置的实例方法。所述方法包含框410到450,且可使用如本文中所描述的存储系统100来实施。简要地说,在框410处,存储系统100的管理装置102确定多个存储装置104的相应状态信息204。在框420处,管理装置102基于状态信息204,使用包含一或多个参数的成本函数来计算多个存储装置104中的每一者的相应成本。在框430处,管理装置102基于经计算成本中的至少一些来选择多个存储装置104中的目的地存储装置104。在框440处,管理装置102将数据写入到目的地存储装置104。

更详细地,在框410处,存储系统100的管理装置102确定多个存储装置104的相应状态信息204。管理装置102可使用状态更新器210来确定状态信息204。状所述态更新器可根据预定时间表(例如,每二十四小时或每四到八小时)来确定状态信息204及/或可在触发事件发生时(例如,在将数据新归档在一或多个存储装置104中、在执行一或多个数据迁移过程时、在将存储装置104从存储装置104的池移除或添加到存储装置104的池中时、或在管理装置102的用户触发状态更新时)确定状态信息204。当对存储装置104执行P/E循环或错误校正过程时,或当以其它方式存取存储装置104时,可通知状态更新器210,且状态更新器210相应地更新状态信息204。在一些实施例中,状态更新器210可向存储装置104(或对应控制器)查询状态信息204。在一些实施例中,存储装置104(或对应控制器)可通过将状态信息204传输到状态更新器210来启动状态更新,而状态更新器210无需请求所述信息。

在框420处,管理装置102基于状态信息,使用包含一或多个参数的成本函数来计算多个存储装置104中的每一者的相应成本。管理装置102可使用成本计算器206来计算成本。所述成本可指示存储装置104的可靠性、优先级或排名。所述成本可指示存储装置104用于存储信息(例如,新信息,或从另一存储装置104迁移的信息)的适合性。所述成本可指示存储装置104是否足够可靠以包含在可靠存储装置104的池中,或是否应将存储装置104标记为不可靠、未激活且从可靠存储装置104的池移除。用于计算成本的成本函数可使用P/E信息222、错误信息224、工作负荷信息226中的任一者或任何其它适当信息作为输入。在一些实施例中,成本函数是线性函数或包含线性分量。例如,成本函数可呈以下形式,或可包含呈下形式的项目:

cost=w

其中P/E是编程/擦除参数,ES是错误状态参数,EL是错误级别参数,WORK是工作负荷参数,且w

在框430处,管理装置102基于经计算成本中的至少一些来选择多个存储装置104中的目的地存储装置104,且在框440处,管理装置102将数据写入到目的地存储装置104。管理装置102可选择目的地存储装置104且使用迁移管理器212将数据写入到目的地存储装置104。迁移管理器212可实施池级选择过程,所述池级选择过程包含基于存储装置104的成本或基于排名220来选择高优先级的存储装置104作为目的地存储装置。在一些实施例中,迁移管理器212可选择存储装置104的池中的最高优先级的可用存储装置104作为目的地存储装置104。可用存储装置104可为例如具有足够闲置的存储器来存储待从源存储装置104传送的数据,或以其它方式在逻辑上适合于存储经传送数据的存储装置104。

因此,存储系统100可实施多个存储装置104的池级管理以存储及/或迁移数据。存储系统100通过尤其实施存储装置104的改进选择及使用来提供使用已过期或超过保修期的存储装置,例如SSD。

现在参考图5,图5展示根据本发明的实施例的用于将数据校正及写入到所选择的存储装置的实例方法。所述方法包含框510到560,且可使用如上文所描述的存储系统100来实施。简要地说,在框510处,管理装置102选择多个存储装置104中的源存储装置104。在框520处,管理装置102从源存储装置104读取数据。在框530处,管理装置102确定读取数据被损坏。在框540处,管理装置102基于使用成本函数计算的目的地存储装置104的成本来选择多个存储装置104中的目的地存储装置104。在框550处,管理装置102基于经损坏读取数据来确定无错误或经错误校正数据。在框560处,管理装置102将无错误或经错误校正数据写入到所选择的存储存储器装置104。

更详细地,在框510处,管理装置102选择多个存储装置104中的源存储装置104。管理装置102可选择所述存储装置作为包含定期校验存储在多个存储装置104上的数据的诊断协议的部分,或管理装置102可响应于从源存储装置104接收读取数据的请求而选择所述存储装置。

在框520处,管理装置102从源存储装置104读取数据。在框530处,管理装置102确定读取数据被损坏。管理装置102可使用例如循环冗余校验(CRC)的错误校验技术来确定读取数据被损坏,所述技术可包含奇偶校验。替代地,存储装置104本身可采用错误校正码(ECC)及/或CRC,且向管理装置102报告ECC的不可恢复错误或故障,或CRC校验错误。

在框540处,管理装置102基于使用成本函数计算的目的地存储装置104的成本来选择多个存储装置104中的目的地存储装置104。管理装置102可使用迁移管理器212来选择目的地存储装置104。迁移管理器212可实施池级选择过程,所述级选择过程包含基于存储装置104的成本或基于排名220来选择高优先级的存储装置104作为目的地存储装置。在一些实施例中,迁移管理器212可选择存储装置104的池中的最高优先级的可用存储装置104作为目的地存储装置104。可用存储装置104可为例如具有足够闲置的存储器来存储待从源存储装置104传送的数据,或以其它方式在逻辑上适合于存储经传送数据的存储装置104。

在框550处,管理装置102基于经损坏读取数据来确定无错误或经错误校正数据,且在框560处,管理装置102将无错误或经错误校正数据写入到所选择的存储存储器装置104。管理装置102可使用错误管理器214来确定无错误或经错误校正数据。错误管理器214可实施ECC码或擦除码协议,其中在将数据存储为分块条带之前将数据冗余地编码成多个数据分块。错误管理器214可读取所述数据分块中的至少一些,且可确定一些分块被损坏且可继续正确地读取足够数目个分块以恢复及读取数据。错误管理器214可确定应校正经损坏数据,且可通过实施ECC码来确定对应经错误校正数据。接着,管理装置102可将经错误校正数据写入到所选择的存储存储器装置104。

现在参考图6,图6展示根据本发明的实施例的用于执行系统维护的实例方法。所述方法包含框602到618,且可使用存储系统100来执行。简要地说,在框602处,触发发生且启动方法600。在框604处,管理装置102从存储装置104读取数据。在框606处,管理装置102确定读取数据是否包含错误。如果读取数据不包含错误,那么方法600前进到框608。如果读取数据确实包含错误,那么方法600前进到框610。在框608处,管理装置102确定从其读取数据的存储装置104是否可靠。如果是,那么方法600返回到框604(或,如果已读取所有相关数据,那么方法600结束)。如果管理装置102确定从其读取数据的存储装置104不可靠,那么方法前进到框614。

在框610处,管理装置102读取擦除码条带。在框612处,管理装置102使用从擦除码条带读取的足够数据分块来恢复读取数据。在框614处,管理装置102选择目的地存储装置104。在框616处,管理装置102将经错误校正数据写入到所选择的目的地存储装置104。在框618处,管理装置102修整最初读取的数据。

更详细地,在框602处,触发可启动方法600。触发可为发送到管理装置102以开始存储装置104的一般诊断过程或开始错误校验过程的用户指令,或触发可为管理装置102作出的是时候进行预定诊断过程的确定。

在框604处,管理装置102选择存储装置104且从存储装置104读取数据。管理装置102可基于诊断优先级分数或排名来选择存储装置104。在一些实施例中,诊断优先级分数是基于存储装置104的成本(例如最低成本或最接近不可靠的存储装置104可具有高或最高诊断优先级分数)。

在框606处,管理装置102使用错误管理器214来确定读取数据报是否包含错误或被损坏。管理装置102可使用例如循环冗余校验的技术来确定读取数据包含错误,所述技术可能包含奇偶校验。

在框608处,管理装置102确定从其读取数据的存储装置104是否为可靠装置。管理装置102可使用可靠性分析器208来作出这个确定,例如通过比较存储装置的成本与成本阈值。

在框610及框612处,管理装置102执行错误校正技术。例如,错误管理器214可实施读取擦除码条带(EC条带)的数据的擦除编码协议,其中数据被冗余编码成多个数据分块。错误管理器214可使用EC条带来恢复数据以确定与原始、未经损坏的读取数据匹配的无错误数据。

在框614处,管理装置102基于使用成本函数计算的目的地存储装置104的成本来选择多个存储装置104中的目的地存储装置104。管理装置102可使用迁移管理器212来选择目的地存储装置104。迁移管理器212可实施池级选择过程,所述池级选择过程包含基于存储装置104的成本或基于排名220来选择高优先级的存储装置104作为目的地存储装置。在一些实施例中,迁移管理器212可选择存储装置104的池中的最高优先级的可用存储装置104作为目的地存储装置104。可用存储装置104可为例如具有足够闲置的存储器来存储待从源存储装置104传送的数据或以其它方式在逻辑上适合于存储经传送数据的存储装置104。在框616处,管理装置102将经错误校正数据写入到所选择的存储装置104(如果在框606处确定不需要实施错误校正,那么写入读取数据)。

在框618处,管理装置102可删除在框604处从存储装置104读取的读取数据。因此,执行改进的迁移过程,且可将数据传送到可靠的存储装置604。因此,也可酌情实施错误校正。

虽然本发明已参考本发明的特定实施例进行描述及说明,但这些描述及说明并非限制性的。所属领域的技术人员应理解,可在不脱离如由所附权利要求书界定的本发明的真实精神及范围的情况下进行各种改变且可被等效物替换。附图不一定按比例绘制。由于制造工艺及公差,在本发明中的艺术表现形式与实际设备之间可能存在差别。可能存在未具体说明的本发明的其它实施例。说明书及附图应被认为是说明性的而非限制性的。可进行修改以使特定情况、材料、物质组成、方法或过程适应于本发明的目的、精神及范围。所有此类修改意在落入所附权利要求书的范围内。虽然已参考以特定顺序执行的特定操作描述本文中所揭示的方法,但将理解,可在不脱离本发明的教示的情况下对这些操作进行组合、细分或重新排序以形成等效方法。因此,除非本文中具体指示,否则所述操作的顺序及群组并非限制性的。

相关技术
  • 池级存储管理
  • 一种沼渣沼液池、进料池和一级厌氧池的一体化结构
技术分类

06120112803654