CN101548271B - 多个存储装置中的数据冗余 - Google Patents

多个存储装置中的数据冗余 Download PDF

Info

Publication number
CN101548271B
CN101548271B CN200780044865.6A CN200780044865A CN101548271B CN 101548271 B CN101548271 B CN 101548271B CN 200780044865 A CN200780044865 A CN 200780044865A CN 101548271 B CN101548271 B CN 101548271B
Authority
CN
China
Prior art keywords
data redundancy
redundancy scheme
memory command
memory
disk controller
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.)
Expired - Fee Related
Application number
CN200780044865.6A
Other languages
English (en)
Other versions
CN101548271A (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.)
LSI Corp
Original Assignee
SandForce Inc
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
Priority claimed from US11/942,629 external-priority patent/US7904672B2/en
Priority claimed from US11/942,623 external-priority patent/US8090980B2/en
Application filed by SandForce Inc filed Critical SandForce Inc
Priority to CN201210391651.9A priority Critical patent/CN102929751B/zh
Publication of CN101548271A publication Critical patent/CN101548271A/zh
Application granted granted Critical
Publication of CN101548271B publication Critical patent/CN101548271B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2089Redundant storage control functionality
    • G06F11/2092Techniques of failing over between control units
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2007Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
    • G06F11/201Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media between storage system components
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2015Redundant power supplies

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Power Sources (AREA)

Abstract

本发明提供一种用于在多个存储装置中提供数据冗余的系统、方法和计算机程序产品。在操作中,接收存储命令以用于根据第一数据冗余方案来提供数据冗余。另外,对所述存储命令进行转译以用于根据第二数据冗余方案来提供所述数据冗余。此外,输出所述经转译的存储命令以用于在多个存储装置中提供所述数据冗余。

Description

多个存储装置中的数据冗余
技术领域
本发明涉及数据存储,且更具体地说涉及存储装置中的数据冗余。
背景技术
存储系统是现代企业计算系统的性能的最具限制性方面中的一者。基于硬盘驱动器的存储装置的性能通过查找时间和半旋转的时间来确定。通过减少查找时间和减少旋转等待时间来增加性能。然而,在驱动器可旋转多快方面存在限制。当代最快的驱动器可达到15,000rpm。
图1说明根据现有技术的系统100。在系统100中,至少一个计算机102-108耦合到主机控制器110和112。主机控制器110和112耦合到多个磁盘114-120。
通常,系统100经配置为独立磁盘冗余阵列(RAID)-1,将磁盘114-116的镜像内容存储在磁盘118-120中。磁盘114-116被称为通过磁盘118-120镜像。
通过复制磁盘114-116、主机控制器110和其间的连接来实现计算机系统的增加的可靠性。因此,可靠的计算机系统能够至少在存在磁盘114-120、RAID控制器110和112、计算机102-108和其间的连接的单个故障的条件下操作。然而,通过使用系统100,存储系统性能可能仍然是不够的。另外,增加此类系统的性能在当前是昂贵的且经常是不可行的。
因此需要处理与现有技术相关联的这些和/或其它问题。
发明内容
提供用于在多个存储装置中提供数据冗余的系统、方法和计算机程序产品。在操作中,接收存储命令以用于根据第一数据冗余方案来提供数据冗余。另外,对存储命令进行转译以用于根据第二数据冗余方案来提供数据冗余。此外,输出经转译的存储命令用于在多个存储装置中提供数据冗余。
附图说明
图1说明根据现有技术的系统。
图2A展示根据一个实施例的用于在多个存储装置中提供数据冗余的系统。
图2B展示根据一个实施例的用于在多个存储装置中提供数据冗余的存储系统。
图3展示根据一个实施例的磁盘组合件。
图4展示根据另一实施例的磁盘组合件。
图5展示根据一个实施例的用于操作冗余磁盘控制器的方法。
图6展示根据另一实施例的用于操作冗余磁盘控制器的方法。
图7展示根据另一实施例的用于操作冗余磁盘控制器的系统。
图8说明其中可实施各种先前实施例的各种结构和/或功能性的示范性系统。
具体实施方式
图2A展示根据一个实施例的用于在多个存储装置中提供数据冗余的系统280。如图所示,系统280包括至少一个计算机285-288。计算机285-288与至少一个控制器290-291通信。如进一步展示,控制器290-291与包括多个磁盘控制器293-294和多个存储装置296-299的存储系统292通信。应注意,虽然分开地展示控制器290-291,但在另一实施例中此类控制器290-291可为一个单元。另外,多个磁盘控制器293-294在各种实施例中可为一个单元或独立单元。
在操作中,接收存储命令以用于根据第一数据冗余方案来提供数据冗余。另外,对存储命令进行转译以用于根据第二数据冗余方案来提供数据冗余。此外,输出经转译的存储命令用于在多个存储装置296-299中提供数据冗余。
在本描述内容的情况下,存储命令指代存储和促进数据存储的任何命令、指令或数据。另外,在本描述内容的情况下,数据冗余方案指代用于在系统中提供冗余数据或容错的任何类型的方案。举例来说,在各种实施例中,数据冗余方案可包括(但不限于):独立磁盘冗余阵列(RAID)0数据冗余方案、RAID 1数据冗余方案、RAID 10数据冗余方案、RAID 3数据冗余方案、RAID 4数据冗余方案、RAID 5数据冗余方案、RAID 50数据冗余方案、RAID 6数据冗余方案、RAID 60数据冗余方案、平方奇偶(square parity)数据冗余方案、任何非标准RAID数据冗余方案、任何嵌套RAID数据冗余方案和/或满足上述定义的任何其它数据冗余方案。
在一个实施例中,第一数据冗余方案可包括RAID 1数据冗余方案。在另一实施例中,第二数据冗余方案可包括RAID 5数据冗余方案。在另一实施例中,第二数据冗余方案可包括RAID 6数据冗余方案。
此外,在本描述内容的情况下,多个存储装置296-299可表示任何类型的存储装置。举例来说,在各种实施例中,存储装置296-299可包括(但不限于)机械存储装置(例如,磁盘驱动器等)、固态存储装置(例如,动态随机存取存储器(DRAM)、快闪存储器等)和/或任何其它存储装置。在存储装置296-299包括快闪存储器的情况下,快闪存储器可包括(但不限于)单层单元(SLC)装置、多层单元(MLC)装置、NOR快闪存储器、NAND快闪存储器、MLC NAND快闪存储器、SLC NAND快闪存储器等。
现将关于各种可选结构和特征来陈述更说明性的信息,按照用户的要求,可能或可能不以所述各种可选结构和特征来实施上述框架。应明显注意到,陈述以下信息用于说明性目的且其不应被理解为以任何方式具有限制性。以下特征中的任一者可视情况在排除或不排除所描述的其它特征的情况下被并入。
图2B展示根据一个实施例的用于在多个存储装置中提供数据冗余的存储子系统250。作为一选项,存储子系统250可在图2A的细节的情况下查看。然而,存储子系统250当然可在任何所要环境的情况下实施。还应注意,以上所提及的定义可在本描述内容期间适用。
如图所示,存储子系统250包括多个主要存储装置231-232和用以增加用于包括冗余信息的存储容量的至少一个额外存储装置233-234。存储子系统250的数据存储的量可被看作是多个主要存储装置231-232的存储容量的总和。作为一选项,存储容量还可通过额外存储装置233-234来扩充。当然,在一个实施例中,可独自使用额外存储装置233-234来存储从所存储数据计算的冗余信息。
如进一步展示,第一磁盘控制器210包括至少一个端口201。在操作中,端口201中的至少一者可充当存储子系统250的第一端口。另外,端口201中的至少一者可充当第一磁盘控制器210到磁盘控制器总线203、电源连接275以及将第一磁盘控制器210耦合到存储装置231-234的对应总线241-244的内部连接211-214的端口。
总线203将第一磁盘控制器210耦合到第二磁盘控制器220。在操作中,总线203可用以监视第一磁盘控制器210与第二磁盘控制器220的操作。当第二磁盘控制器220检测到第一磁盘控制器210的故障时,磁盘控制器220可通过经由磁盘控制器总线203发出断开请求到第一磁盘控制器210来与对应的总线241-244断开内部连接211-214。
将第一磁盘控制器210耦合到第二磁盘控制器220的总线203也可用以使用第一磁盘控制器210来监视第二磁盘控制器220的操作。当第一磁盘控制器210检测到第二磁盘控制器220的故障时,第一磁盘控制器210可通过经由磁盘控制器总线203发出断开请求到第二磁盘控制器220来与对应的总线241-244断开内部连接221-224。
在一个实施例中,第一磁盘控制器210可检测内部不正确操作或与第一磁盘控制器210相关联的不正确操作。在此情况下,当检测到内部不正确操作时,第一磁盘控制器210可断开与对应总线241-244的连接211-214。类似地,第二磁盘控制器220可检测内部不正确操作或与第二磁盘控制器220相关联的不正确操作。在此情况下,当检测到内部不正确操作时,第二磁盘控制器220可断开与对应总线241-244的连接221-224。
另外,在一个实施例中,第一和第二磁盘控制器210和220可检测磁盘控制器总线203的故障。在此情况下,第二磁盘控制器220可断开与对应总线241-244的连接221-224,且第一磁盘控制器210可保持活动。在另一实施例中,第一磁盘控制器210可断开与对应总线241-244的连接211-214,且第二磁盘控制器220可保持活动。在又一实施例中,即将保持活动的磁盘控制器可断开即将不活动的控制器的连接。
应注意,总线211-214和221-224的断开可经由三个状态电路、多路复用器或用于断开总线211-214和221-224的任何其它电路来实施。举例来说,在一个实施例中,断开可通过将与磁盘控制器210或220相关联的三个状态总线驱动器置于高阻抗状态来完成。在另一实施例中,断开可通过控制存储装置231-234的输入上的多路复用器来完成。
如进一步展示,第二磁盘控制器220包括至少一个端口202。在操作中,端口202中的至少一者可充当存储子系统250的第二端口。另外,端口202中的至少一者可充当第二磁盘控制器220到磁盘控制器总线203、电源连接276以及将第二磁盘控制器220耦合到存储装置231-234的对应总线241-244的内部连接221-224的端口。
在提供单个冗余存储装置233且没有额外的冗余存储装置234的情况下,存储子系统250可在存在存储装置231-233中任一者的单个故障的条件下操作而没有数据损耗。在一个实施例中,数据和冗余信息的组织可根据RAID 5。在另一实施例中,数据和冗余信息的组织可根据RAID 6、RAID 10、RAID 50、RAID 60、平方奇偶冗余方案等。
在提供两个冗余存储装置233和234的情况下,存储子系统250可在存在存储装置231-234中任两者的故障的条件下继续操作而没有任何数据损耗。在操作中,端口201和202可将存储在存储子系统250中的数据呈现为两个常规独立镜像磁盘。在此情况下,此类常规独立镜像磁盘可表现为RAID 1、RAID 10、RAID 50、RAID 60、平方奇偶冗余方案等。
到存储子系统250的电力可通过经由电连接252耦合到第一电源单元253的第一电力连接器251来供应。到存储子系统250的电力也可通过经由连接262耦合到第二电源单元263的第二电力连接器261来供应。作为一选项,第一电源253的输出和第二电源263的输出可通过配电网络270而结合且分配到磁盘控制器210和220以及存储装置231-234。存储装置231-234经由对应的连接271-274耦合到配电网络270。磁盘控制器210和220经由电源连接275和276耦合到配电网络270。
在到电力连接器251的电力发生故障的情况下,到存储子系统250的电力可通过电力连接器261来供应。类似地,在到电力连接器261的电力发生故障的情况下,到存储子系统250的电力可通过电力连接器251来供应。在连接252发生故障的情况下,到存储子系统250的电力可通过连接262来供应。在连接262发生故障的情况下,到存储子系统250的电力可通过连接252来供应。
在电源253发生故障的情况下,到存储子系统250的电力可通过电源263来供应。如果电源263发生故障,那么到存储子系统250的电力可通过电源253来供应。类似地,当连接254发生故障时,到存储子系统250的电力可通过连接264来供应。同样地,当连接264发生故障时,到存储子系统250的电力可通过连接254来供应。因此,存储子系统250容许各种组件的故障,而不会使存储子系统250不能操作。
在一个实施例中,磁盘控制器210和/或220可含有用以检测到电源253和263的电力断开的电路。另外,此类电路可提供电力以将磁盘控制器210和220的状态保存到存储装置231-234中,使得不发生数据损耗。举例来说,可检测电源253和/或263的断开。
在此情况下,响应于检测到电源253和263的断开,可将电力供应到存储装置231-234。电源253和263可将电力供应到存储子系统250持续足够的时间,使得在到电源253和263两者的电力断开之后,可完成将磁盘控制器210和220的状态写入到存储装置231-234中。因此,可将电力提供到存储装置231-234直到没有数据损耗将由于电源253和263的断开而发生时的至少一点为止。在各种实施例中,电源253和263可包括电池、电容器和/或用以在到电源253和263的电力断开时将电力提供到存储子系统250的任何其它组件。
应注意,存储子系统250可在存在图2B中说明的任何元件的任何单个故障的条件下继续操作而没有数据损耗。还应注意,在各种实施例中,存储装置231-234可为机械存储装置、非机械存储装置、易失性或非易失性存储装置。此外,在各种实施例中,存储装置231-234可包括(但不限于)DRAM或快闪存储装置(例如,SLC装置、MLC装置、NOR门快闪装置、NAND门快闪存储装置等)。
此外,在一个实施例中,磁盘控制器210和220可实施为两个独立芯片。在另一实施例中,磁盘控制器210和220可实施在一个芯片或电路小片上。举例来说,此类实施可基于封装问题来确定。
图3展示根据一个实施例的磁盘组合件300。作为一选项,磁盘组合件300可实施在图1-2的功能性和结构的情况中。然而,磁盘组合件300当然可在任何所要环境的情况下实施。还应注意,以上所提及的定义可在本描述内容期间适用。
如图所示,磁盘组合件300包括:印刷电路板302,其包括磁盘驱动器(未图示);电力连接器,其具有作为SATA(串行高级技术附件)连接器304的一部分的主要端口;以及电力连接器,其具有作为第二SATA连接器306的一部分的次要端口。在一个实施例中,磁盘组合件300可包括SAS(串行附接SCSI)连接器。举例来说,磁盘组合件300可包括:印刷电路板302,其包括磁盘驱动器(未图示);电力连接器,其具有作为SAS连接器304的一部分的主要端口;以及电力连接器,其具有作为第二SAS连接器306的一部分的次要端口。
作为一选项,连接器304和306可将磁盘组合件300暴露为某数据冗余配置。举例来说,SATA接口可将磁盘组合件300暴露为以RAID 1模式配置的一对磁盘。在另一实施例中,SAS接口可将磁盘组合件300暴露为以RAID 1模式配置的磁盘对。在又一实施例中,SATA和SAS接口可将磁盘组合件300暴露为以RAID 0模式配置的多个磁盘。
图4展示根据另一实施例的磁盘组合件400。作为一选项,磁盘组合件400可实施在图1-3的功能性和结构的情况中。然而,磁盘组合件400当然可在任何所要环境的情况下实施。还应注意,以上所提及的定义可在本描述内容期间适用。
如图所示,磁盘组合件400包括两个或两个以上磁盘组合件410和420。作为一选项,磁盘组合件410和420可包括来自图3的磁盘组合件300。在此情况下,每一磁盘组合件410和420可包括印刷电路板和连接器430。
视情况,每一磁盘组合件410和420可经由电连接401而互连。在此情况下,电连接401可表示磁盘控制器总线,例如图2B的磁盘控制器总线203。在操作中,磁盘组合件400可通过允许一个以上磁盘(例如,磁盘组合件410和420)占据常规或主要存储装置(例如,磁盘驱动器等)的空间来增加系统的存储性能。
图5展示根据一个实施例的用于操作冗余磁盘控制器的方法500。作为一选项,本方法500可实施在图1-4的功能性和结构的情况中。然而,方法500当然可在任何所要的环境中实行。还应注意,以上所提及的定义可在本描述内容期间适用。
如图所示,存储系统(例如,磁盘组合件等)被加电。见操作510。监视存储系统的磁盘控制器。见操作520。作为一选项,可通过另一磁盘控制器来监视所述磁盘控制器。此类监视可包括:经由两个磁盘控制器之间的总线(例如,图2B的磁盘控制器总线203等)来监视磁盘控制器;和/或监视对应于存储系统的存储装置的总线(例如,对应存储装置231-234的总线241-244等)上的活动。
存储系统继续操作,监视磁盘控制器,直到其确定所监视的磁盘控制器已发生故障为止。见操作530。如果所监视的磁盘控制器发生故障,那么将所监视的磁盘控制器断开。见操作540。
在一个实施例中,磁盘控制器的断开可通过经由两个磁盘控制器之间的总线(例如,图2B的磁盘控制器总线203等)发出断开命令来实施。在此情况下,断开命令可包括断开将所监视磁盘控制器链接到存储装置的总线(例如,图2B的连接211-214或221-224)。在一个实施例中,可通过其它磁盘控制器来监视多个磁盘控制器。在此情况下,可将多个磁盘控制器中的每一磁盘控制器看作所监视的磁盘控制器。
图6展示根据另一实施例的用于操作冗余磁盘控制器的方法600。作为一选项,本方法600可实施在图1-5的功能性和结构的情况中。然而,方法600当然可在任何所要的环境中实行。还应注意,以上所提及的定义可在本描述内容期间适用。
如图所示,存储系统(例如,磁盘组合件等)被加电。见操作610。监视存储系统的至少两个磁盘控制器之间的链接。见操作620。在一个实施例中,磁盘控制器之间的链接可包括图2B的磁盘控制器总线203。另外,磁盘控制器之间的链接可通过磁盘控制器中的至少一者来监视(例如,图2B的第一和第二磁盘控制器210和220等)。
存储系统继续操作,监视链接,直到其确定所述链接已发生故障为止。见操作630。如果链接发生故障,那么将一个磁盘控制器断开。见操作640。
在一个实施例中,断开可包括断开将磁盘控制器链接到存储装置的总线(例如,图2B的连接211-214或221-224等)。在此情况下,可不处理与断开的控制器相关联的端口所接收的命令。作为一实例,两个磁盘控制器中的第二者可在第一与第二磁盘控制器之间的链接发生故障后断开。在此情况下,第一控制器可继续操作,且可不处理来自第二磁盘控制器的端口的命令。
图7展示根据另一实施例的用于操作冗余磁盘控制器的系统700。作为一选项,系统700可实施在图1-6的功能性和结构的情况中。然而,系统700当然可在任何所要的环境中实施。还应注意,以上所提及的定义可在本描述内容期间适用。
如图所示,提供至少一个计算机702-706。计算机702-706耦合到多个RAID控制器712-714。控制器712-714与多个存储装置716-722通信。此类通信可包括利用与存储装置716-722相关联的端口。
系统700的可靠性可通过使用具有驱动器内冗余的存储装置716-722(例如,图2B的存储系统250)来实现。此外,可复制所有连接(例如,总线等)以确保系统700的可靠性。作为一选项,存储装置716-722可各自每个装置包括两个端口,从而提供与使用具有单个端口的存储装置相比两倍的带宽。此外,每一存储装置716-722可通过利用例如RAID 5、RAID 6、RAID 10、RAID 50、RAID 60、平方奇偶冗余方案等冗余系统来模拟两个磁盘。
作为一选项,可利用写入减少逻辑708-710来减少到存储装置716-722的写入的数目。在此情况下,对存储命令进行转译以用于提供数据冗余可在减少之后执行。举例来说,可接收存储命令以用于根据控制器712-714的第一数据冗余方案(例如,RAID 5、RAID 6、RAID 10、RAID 50、RAID 60、平方奇偶冗余方案等)来提供数据冗余。
接着可利用写入减少逻辑708-710来减少到存储装置716-722的写入的数目。接着可(例如,通过电路)对存储命令进行转译,以用于根据与存储装置716-722相关联的第二数据冗余方案提供数据冗余。在一个实施例中,第二数据冗余方案可与第一数据冗余方案(例如,RAID 5、RAID 6、RAID 10、RAID 50、RAID 60、平方奇偶冗余方案等)相同。在另一实施例中,第二数据冗余方案可与第一数据冗余方案(例如,RAID 1、RAID 6、RAID 10、RAID 50、RAID 60、平方奇偶冗余方案等)不同。
在一个实施例中,可利用写入减少逻辑708-710将所接收的用于根据第一数据冗余方案提供数据冗余的存储命令格式化为与第二数据冗余方案兼容的格式。严格地作为一选项,RAID控制器712-714可包括具有如在存储装置716-722的情况中所描述的驱动器内冗余的系统。以此方式,可减少到存储装置716-722的写入的数目。因此,可对存储命令进行转译以在减少写入的数目之后根据与存储装置716-722相关联的第二数据冗余方案来提供数据冗余。以此方式,可避免数据的随机化。
图8说明其中可实施各种先前实施例的各种结构和/或功能性的示范性系统800。如图所示,提供包括连接到通信总线802的至少一个主机处理器801的系统800。系统800还包括主存储器804。控制逻辑(软件)和数据存储在可采用随机存取存储器(RAM)形式的主存储器804中。
系统800还包括图形处理器806和显示器808(即,计算机监视器)。在一个实施例中,图形处理器806可包括多个着色器模块、光栅化模块等。上述模块中的每一者可甚至位于单个半导体平台上以形成图形处理单元(GPU)。
在本描述内容中,单个半导体平台可指代唯一基于整体式半导体的集成电路或芯片。应注意,术语单个半导体平台还可指代具有增加的连接性的多芯片模块,其模拟芯片上操作,且与利用常规中央处理单元(CPU)和总线实施方案相比产生了实质的改进。当然,各种模块也可分开定位或按照用户要求以半导体平台的各种组合定位。
系统800还可包括次要存储装置810。次要存储装置810包括(例如)硬盘驱动器和/或可移除式存储装置驱动器,其表示软盘驱动器、磁带驱动器、压缩磁盘驱动器等。可移除式存储装置驱动器以众所周知的方式从可移除式存储单元进行读取和/或向可移除式存储单元进行写入。
计算机程序或计算机控制逻辑算法可存储在主存储器804和/或次要存储装置810中。此类计算机程序在执行时使系统800能够执行各种功能。存储器804、存储装置810和/或任何其它存储装置是计算机可读媒体的可能实例。
在一个实施例中,各个先前图式的结构和/或功能性可在以下情况下实施:主机处理器801、图形处理器806、次要存储装置810、具有主机处理器801和图形处理器806两者的能力的至少一部分的集成电路(未图示)、芯片集(即,经设计以作为用于执行相关功能的单元而工作和出售的集成电路的群组等)和/或在此方面的任何其它集成电路。
然而,各个先前图式的结构和/或功能性可在以下情况下实施:通用计算机系统、电路板系统、专用于娱乐目的的游戏控制台系统、专用系统和/或任何其它所要的系统。举例来说,系统800可采用桌上型计算机、膝上型计算机和/或任何其它类型的逻辑的形式。然而,系统800可采用各种其它装置的形式,包括(但不限于):个人数字助理(PDA)装置、移动电话装置、电视等。
此外,虽然未图示,但系统800可耦合到网络(例如,电信网络、局域网(LAN)、无线网络、例如因特网的广域网(WAN)、对等网络、电缆网络等)以用于通信目的。
虽然上文已描述各种实施例,但应理解,其仅通过实例而非限制的方式来呈现。因此,优选实施例的宽度和范围不应受上述示范性实施例中的任一者限制,而是应仅根据所附权利要求书及其等效物来界定。

Claims (22)

1.一种存储方法,其包含:
通过一标准存储子系统接口从计算机处接收包括写入的第一存储命令;
减少所述经接收的写入的数目来产生第二存储命令;
通过一磁盘控制器接收所述第二存储命令并根据第一数据冗余方案产生第三存储命令来提供数据冗余;
根据第二数据冗余方案对所述第三存储命令进行转译;
在多个快闪存储器中输出所述经转译的存储命令;以及
其中通过在所述减少后提供所述数据冗余来避免随机化。
2.根据权利要求1所述的方法,其中所述第一数据冗余方案包括独立磁盘冗余阵列(RAID)-1数据冗余方案。
3.根据权利要求1所述的方法,其中所述第二数据冗余方案包括独立磁盘冗余阵列(RAID)-5数据冗余方案。
4.根据权利要求1所述的方法,其中所述第二数据冗余方案包括独立磁盘冗余阵列(RAID)-6数据冗余方案。
5.根据权利要求1所述的方法,其中所述标准存储子系统接口包括SATA接口。
6.根据权利要求5所述的方法,其中所述磁盘控制器包括在一磁盘组合件中。
7.根据权利要求1所述的方法,其中所述标准存储子系统接口包括SAS接口。
8.根据权利要求7所述的方法,其中所述磁盘控制器包括在一磁盘组合件中。
9.根据权利要求1所述的方法,其中所述快闪存储器中的至少一者包括NAND快闪存储器。
10.根据权利要求9所述的方法,其中所述NAND快闪存储器包括单层单元(SLC)NAND快闪存储器。
11.根据权利要求9所述的方法,其中所述NAND快闪存储器包括多层单元(MLC)NAND快闪存储器。
12.根据权利要求1所述的方法,其中所述快闪存储器包括在一磁盘组合件中。
13.根据权利要求1所述的方法,其中磁盘组合件中的处理器执行所述减少所述经接收的写入的数目。
14.根据权利要求1所述的方法,其中所述第一数据冗余方案或所述第二数据冗余方案中的一者包括独立磁盘冗余阵列(RAID)-10数据冗余方案、独立磁盘冗余阵列(RAID)-50数据冗余方案、独立磁盘冗余阵列(RAID)-60数据冗余方案和平方奇偶冗余方案中的一者。
15.一种存储装置,其包含:
用于通过标准存储子系统接口从计算机处接收包括写入的第一存储命令的装置;
用于减少所述经接收的写入的数目来产生第二存储命令的装置;
用于通过一磁盘控制器接收所述第二存储命令并根据第一数据冗余方案产生第三存储命令来提供数据冗余的装置;
用于根据第二数据冗余方案对所述第三存储命令进行转译的装置;
用于在多个快闪存储器中输出所述经转译的存储命令的装置;以及
其中通过在所述减少后提供所述数据冗余来避免随机化。
16.根据权利要求15所述的装置,其中所述标准存储子系统接口包括SATA接口。
17.根据权利要求15所述的装置,其中所述标准存储子系统接口包括SAS接口。
18.根据权利要求15所述的装置,其中所述第一数据冗余方案包括独立磁盘冗余阵列(RAID)-1数据冗余方案。
19.根据权利要求15所述的装置,其中所述第二数据冗余方案包括独立磁盘冗余阵列(RAID)-5数据冗余方案。
20.根据权利要求15所述的装置,其中所述第二数据冗余方案包括独立磁盘冗余阵列(RAID)-6数据冗余方案。
21.一种存储设备,其包含:
标准存储子系统接口电路,其能够从计算机处接收第一存储命令,所述第一存储命令包括写入;
写入减少电路,其能够减少所述经接收的写入的数目来产生第二存储命令;
磁盘控制器,其包括能够接收所述第二存储命令并根据第一数据冗余方案产生第三存储命令来提供数据冗余的电路;
电路,其能够利用第二数据冗余方案将所述第三存储命令转译为存储命令;
存储装置接口电路,其能够输出所述经转译的存储命令至多个快闪存储器;以及
其中通过在所述减少后提供所述数据冗余来避免随机化。
22.根据权利要求21所述的设备,其进一步包括所述快闪存储器。
CN200780044865.6A 2006-12-08 2007-11-21 多个存储装置中的数据冗余 Expired - Fee Related CN101548271B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210391651.9A CN102929751B (zh) 2006-12-08 2007-11-21 多个存储装置中的数据冗余

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US87363006P 2006-12-08 2006-12-08
US60/873,630 2006-12-08
US11/942,629 2007-11-19
US11/942,623 2007-11-19
US11/942,629 US7904672B2 (en) 2006-12-08 2007-11-19 System and method for providing data redundancy after reducing memory writes
US11/942,623 US8090980B2 (en) 2006-12-08 2007-11-19 System, method, and computer program product for providing data redundancy in a plurality of storage devices
PCT/US2007/024294 WO2008073219A1 (en) 2006-12-08 2007-11-21 Data redundancy in a plurality of storage devices

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201210391651.9A Division CN102929751B (zh) 2006-12-08 2007-11-21 多个存储装置中的数据冗余

Publications (2)

Publication Number Publication Date
CN101548271A CN101548271A (zh) 2009-09-30
CN101548271B true CN101548271B (zh) 2012-12-05

Family

ID=39512026

Family Applications (2)

Application Number Title Priority Date Filing Date
CN200780044865.6A Expired - Fee Related CN101548271B (zh) 2006-12-08 2007-11-21 多个存储装置中的数据冗余
CN201210391651.9A Expired - Fee Related CN102929751B (zh) 2006-12-08 2007-11-21 多个存储装置中的数据冗余

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201210391651.9A Expired - Fee Related CN102929751B (zh) 2006-12-08 2007-11-21 多个存储装置中的数据冗余

Country Status (4)

Country Link
JP (2) JP2010511963A (zh)
CN (2) CN101548271B (zh)
TW (2) TWI437427B (zh)
WO (1) WO2008073219A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7904672B2 (en) 2006-12-08 2011-03-08 Sandforce, Inc. System and method for providing data redundancy after reducing memory writes
US7849275B2 (en) 2007-11-19 2010-12-07 Sandforce, Inc. System, method and a computer program product for writing data to different storage devices based on write frequency
US8214589B2 (en) 2009-03-13 2012-07-03 Seagate Technology Llc Data storage system redundancy scheme verification
US8516166B2 (en) 2009-07-20 2013-08-20 Lsi Corporation System, method, and computer program product for reducing a rate of data transfer to at least a portion of memory
TWI579688B (zh) * 2012-02-29 2017-04-21 萬國商業機器公司 磁碟陣列資料儲存系統
JP6063146B2 (ja) * 2012-04-27 2017-01-18 株式会社バッファローメモリ 外部記憶装置
CN102915212B (zh) * 2012-09-19 2015-06-10 记忆科技(深圳)有限公司 一种固态硬盘的raid实现方法、固态硬盘及电子设备
WO2016088254A1 (ja) * 2014-12-05 2016-06-09 株式会社日立製作所 ストレージシステム、方法
JP6696280B2 (ja) 2016-04-13 2020-05-20 富士通株式会社 情報処理装置、raid制御方法、およびraid制御プログラム
TWI648675B (zh) 2017-08-29 2019-01-21 群聯電子股份有限公司 資料儲存方法、記憶體控制電路單元及記憶體儲存裝置
CN109460372B (zh) * 2017-09-06 2022-11-22 群联电子股份有限公司 数据存储方法、存储器控制电路单元及存储器存储装置
CN110780811B (zh) * 2019-09-19 2021-10-15 华为技术有限公司 数据保护方法、装置及存储介质
US11921580B2 (en) * 2022-07-08 2024-03-05 Micron Technology, Inc. Redundant multiport memory for vehicle applications

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6298415B1 (en) * 1999-02-19 2001-10-02 International Business Machines Corporation Method and system for minimizing writes and reducing parity updates in a raid system
US6651137B2 (en) * 2000-12-30 2003-11-18 Electronics And Telecommunications Research Institute Hierarchical RAID system including multiple RAIDs and method for controlling RAID system

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5392244A (en) * 1993-08-19 1995-02-21 Hewlett-Packard Company Memory systems with data storage redundancy management
US5546558A (en) * 1994-06-07 1996-08-13 Hewlett-Packard Company Memory system with hierarchic disk array and memory map store for persistent storage of virtual mapping information
JPH0816328A (ja) * 1994-06-28 1996-01-19 Mitsubishi Electric Corp ディスクアレイシステム
DE19540915A1 (de) * 1994-11-10 1996-05-15 Raymond Engineering Redundante Anordnung von Festkörper-Speicherbausteinen
US5542065A (en) * 1995-02-10 1996-07-30 Hewlett-Packard Company Methods for using non-contiguously reserved storage space for data migration in a redundant hierarchic data storage system
JP3358795B2 (ja) * 1997-03-27 2002-12-24 インターナショナル・ビジネス・マシーンズ・コーポレーション ディスクドライブ装置及びその制御方法
JPH1153235A (ja) * 1997-08-08 1999-02-26 Toshiba Corp ディスク記憶装置のデータ更新方法、ならびにディスク記憶制御システム
US20050160218A1 (en) * 2004-01-20 2005-07-21 Sun-Teck See Highly integrated mass storage device with an intelligent flash controller
JP3832223B2 (ja) * 2000-09-26 2006-10-11 株式会社日立製作所 ディスクアレイのディスク障害復旧方法
JP3592640B2 (ja) * 2001-01-09 2004-11-24 株式会社東芝 ディスク制御システムおよびディスク制御方法
US20030084397A1 (en) * 2001-10-31 2003-05-01 Exanet Co. Apparatus and method for a distributed raid
JP2003316664A (ja) * 2002-04-24 2003-11-07 Mitsubishi Electric Corp 不揮発性半導体記憶装置
JP2004021811A (ja) * 2002-06-19 2004-01-22 Hitachi Ltd 不揮発メモリを使用したディスク制御装置
KR20040066638A (ko) * 2003-01-20 2004-07-27 삼성전자주식회사 외부 저장 서브 시스템에서의 패리티 저장 방법 및에러블록 복구 방법
US7213102B2 (en) * 2003-06-26 2007-05-01 International Business Machines Corporation Apparatus method and system for alternate control of a RAID array
TWI261993B (en) * 2004-05-20 2006-09-11 Rdc Semiconductor Co Ltd System and method for data redundancy checking and correcting
JP4366298B2 (ja) * 2004-12-02 2009-11-18 富士通株式会社 記憶装置、その制御方法及びプログラム
JP2006252165A (ja) * 2005-03-10 2006-09-21 Toshiba Corp ディスクアレイ装置、及びコンピュータシステム
JP4671720B2 (ja) * 2005-03-11 2011-04-20 株式会社日立製作所 ストレージシステム及びデータ移動方法
US8244958B2 (en) * 2005-05-09 2012-08-14 Sandisk Il Ltd. Method and system for facilitating fast wake-up of a flash memory system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6298415B1 (en) * 1999-02-19 2001-10-02 International Business Machines Corporation Method and system for minimizing writes and reducing parity updates in a raid system
US6651137B2 (en) * 2000-12-30 2003-11-18 Electronics And Telecommunications Research Institute Hierarchical RAID system including multiple RAIDs and method for controlling RAID system

Also Published As

Publication number Publication date
CN102929751A (zh) 2013-02-13
CN102929751B (zh) 2018-04-20
JP2013257900A (ja) 2013-12-26
TW201428491A (zh) 2014-07-16
TW200837561A (en) 2008-09-16
WO2008073219A1 (en) 2008-06-19
TWI437427B (zh) 2014-05-11
TWI550400B (zh) 2016-09-21
JP2010511963A (ja) 2010-04-15
CN101548271A (zh) 2009-09-30

Similar Documents

Publication Publication Date Title
CN101548271B (zh) 多个存储装置中的数据冗余
US9128872B2 (en) Techniques for providing data redundancy after reducing memory writes
US8090980B2 (en) System, method, and computer program product for providing data redundancy in a plurality of storage devices
CN110232001B (zh) 存储系统
US11157200B2 (en) Communicating over portions of a communication medium
US8930611B2 (en) Storage system and control method thereof
US9887008B2 (en) DDR4-SSD dual-port DIMM device
JP7730283B2 (ja) メタデータにエラー検出訂正(ecc)ビットを割り当てるためのeccビットの分散
JP2017531856A (ja) アクティブストレージユニットおよびアレイ
US12474855B2 (en) Duplicating memory content with chipset attached memory
EP3069253A1 (en) Apparatus and method for routing information in a non-volatile memory-based storage device
CN204203856U (zh) 一种新型内置式sas 12g raid存储卡
CN108614746A (zh) 一种数据处理方法及其系统、服务器
CN116719765A (zh) 硬盘背板、磁盘阵列建立系统及服务器
CN121326241A (zh) 一种支持多协议的服务器ssd设计方法及装置
CN120973291A (zh) 固态硬盘和电子设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: INFINEON TECHNOLOGIES CORP.

Free format text: FORMER OWNER: SANDFORCE INC.

Effective date: 20130822

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20130822

Address after: California, USA

Patentee after: LSI Corp.

Address before: California, USA

Patentee before: SANDFORCE, Inc.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20121205

CF01 Termination of patent right due to non-payment of annual fee