CN101324864A - 驱动器失效之后用于驱动器恢复的系统和方法 - Google Patents

驱动器失效之后用于驱动器恢复的系统和方法 Download PDF

Info

Publication number
CN101324864A
CN101324864A CNA2008101335929A CN200810133592A CN101324864A CN 101324864 A CN101324864 A CN 101324864A CN A2008101335929 A CNA2008101335929 A CN A2008101335929A CN 200810133592 A CN200810133592 A CN 200810133592A CN 101324864 A CN101324864 A CN 101324864A
Authority
CN
China
Prior art keywords
driver
memory
buffer memory
instruction
data
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.)
Pending
Application number
CNA2008101335929A
Other languages
English (en)
Inventor
K·T·马克斯
A·A·J·阿里
R·克劳森
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.)
Dell Products LP
Original Assignee
Dell Products LP
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 Dell Products LP filed Critical Dell Products LP
Publication of CN101324864A publication Critical patent/CN101324864A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65DCONTAINERS FOR STORAGE OR TRANSPORT OF ARTICLES OR MATERIALS, e.g. BAGS, BARRELS, BOTTLES, BOXES, CANS, CARTONS, CRATES, DRUMS, JARS, TANKS, HOPPERS, FORWARDING CONTAINERS; ACCESSORIES, CLOSURES, OR FITTINGS THEREFOR; PACKAGING ELEMENTS; PACKAGES
    • B65D83/00Containers or packages with special means for dispensing contents
    • B65D83/08Containers or packages with special means for dispensing contents for dispensing thin flat articles in succession
    • B65D83/0805Containers or packages with special means for dispensing contents for dispensing thin flat articles in succession through an aperture in a wall
    • B65D83/0811Containers or packages with special means for dispensing contents for dispensing thin flat articles in succession through an aperture in a wall with means for assisting dispensing
    • B65D83/0841Containers or packages with special means for dispensing contents for dispensing thin flat articles in succession through an aperture in a wall with means for assisting dispensing and for cutting interconnected articles
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65HHANDLING THIN OR FILAMENTARY MATERIAL, e.g. SHEETS, WEBS, CABLES
    • B65H35/00Delivering articles from cutting or line-perforating machines; Article or web delivery apparatus incorporating cutting or line-perforating devices, e.g. adhesive tape dispensers
    • B65H35/0006Article or web delivery apparatus incorporating cutting or line-perforating devices
    • B65H35/002Hand-held or table apparatus
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65HHANDLING THIN OR FILAMENTARY MATERIAL, e.g. SHEETS, WEBS, CABLES
    • B65H35/00Delivering articles from cutting or line-perforating machines; Article or web delivery apparatus incorporating cutting or line-perforating devices, e.g. adhesive tape dispensers
    • B65H35/0006Article or web delivery apparatus incorporating cutting or line-perforating devices
    • B65H35/0073Details
    • B65H35/008Arrangements or adaptations of cutting devices
    • B65H35/0086Arrangements or adaptations of cutting devices using movable cutting elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1084Degraded mode, e.g. caused by single or multiple storage removals or disk failures
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65HHANDLING THIN OR FILAMENTARY MATERIAL, e.g. SHEETS, WEBS, CABLES
    • B65H2301/00Handling processes for sheets or webs
    • B65H2301/50Auxiliary process performed during handling process
    • B65H2301/51Modifying a characteristic of handled material
    • B65H2301/515Cutting handled material
    • B65H2301/5151Cutting handled material transversally to feeding direction
    • B65H2301/51512Cutting handled material transversally to feeding direction using a cutting member moving linearly in a plane parallel to the surface of the web and along a direction crossing the handled material
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65HHANDLING THIN OR FILAMENTARY MATERIAL, e.g. SHEETS, WEBS, CABLES
    • B65H2301/00Handling processes for sheets or webs
    • B65H2301/50Auxiliary process performed during handling process
    • B65H2301/51Modifying a characteristic of handled material
    • B65H2301/515Cutting handled material
    • B65H2301/5153Details of cutting means
    • B65H2301/51532Blade cutter, e.g. single blade cutter
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65HHANDLING THIN OR FILAMENTARY MATERIAL, e.g. SHEETS, WEBS, CABLES
    • B65H2301/00Handling processes for sheets or webs
    • B65H2301/50Auxiliary process performed during handling process
    • B65H2301/51Modifying a characteristic of handled material
    • B65H2301/515Cutting handled material
    • B65H2301/5154Cutting handled material from hand-held or table dispenser
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65HHANDLING THIN OR FILAMENTARY MATERIAL, e.g. SHEETS, WEBS, CABLES
    • B65H2701/00Handled material; Storage means
    • B65H2701/10Handled articles or webs
    • B65H2701/19Specific article or web
    • B65H2701/1944Wrapping or packing material
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions

Abstract

本发明公开了一种用于重建驱动器的系统和方法,其中该驱动器的写缓存被启用,并且对发送到该驱动器的指令保持分开记录。在周期性的基础上,驱动器转储清除其缓存中的数据,并清除指令的历史记录。当该成功地重建该驱动器时,禁止该驱动器的缓存。

Description

驱动器失效之后用于驱动器恢复的系统和方法
本申请是申请号为200510055751.4,申请日为2005年3月21日,发明名称为“驱动器失效之后用于驱动器恢复的系统和方法”的中国专利申请的分案申请。
技术领域
本发明通常涉及数据存储系统的领域,具体而言,涉及通过启用的写缓存重建驱动器的系统和方法。
背景技术
由于信息的使用和价值持续增加,个人和企业都在寻找处理和存储信息的其它方式。一种用户可用的选择是信息处理系统。信息处理系统通常为了商业、个人或其它目的而处理、编译、存储和/或传送信息或数据,由此允许用户利用信息的价值。由于技术和信息处理的需要和要求在不同的用户或应用之间变化,所以信息处理系统也可根据处理什么信息,如何处理信息,处理、存储或传送多少信息,以及如何快速有效地处理、存储或传送信息而改变。信息处理系统中的变化对于信息处理系统可以是一般的,或专为具体用户配置的,具体用户例如财务事项处理、航班预定、企业数据存储或全球通信。此外,信息处理系统可以包括各种硬件和软件部件,这些部件可被配置用于处理、存储和传送信息,信息处理系统可以包括一个或多个计算机系统、数据存储系统和网络系统,例如计算机、个人计算机工作站、便携式计算机、计算机服务器、打印服务器、网络路由器、网络集线器、网络交换机、储存区域网络磁盘阵列、独立磁盘冗余阵列(Redundant ArrayofInexpensive Drivers,简称RAID)系统和无线电通信交换机。
信息处理系统通常包括一个或多个分组成驱动器阵列的驱动器。许多驱动器包括能被选择性地启用或禁止的相关的写缓存。关于包括启用的写缓存的驱动器,有时候在驱动器通知驱动器控制器写入成功时与数据被写入驱动器的存储介质时之间存在延迟。具有启用的写缓存的驱动器经常在驱动器的写缓存中引导或存储写入数据。一旦写入数据被成功地传送到缓存,驱动器将向驱动器控制器发出通知,说明已经成功地执行了写入命令。即使写指令的数据没有被写入永久的和非易失性的驱动器介质,也从驱动器向驱动器控制器发出通知。在写缓存中替换写指令的数据允许写控制器的控制电路优化信息写入驱动器介质中的顺序。
但是在写指令已经成功地写入驱动器的缓存而没有成功地写入驱动器的非易失性介质的情况下,这种技术是有问题的。在此情况下,驱动器已经通知驱动器控制器该写指令是成功的。如果在此情况下驱动器失效(例如,驱动器掉电或重启或写缓存被破坏),存储在写缓存中的数据可能丢失并且不会写入磁盘。但是由于驱动器的控制电路已经指出执行了写指令,所以驱动器控制器不会意识到数据的丢失。驱动器控制器和驱动器没有同步,导致没有写入磁盘的写缓存中的数据丢失。为了避免失效事件发生,经常禁止RAID系统中的驱动器的写缓存。当驱动器的写缓存被禁止时,驱动器不能临时地将写入数据存储到缓存,由此迫使驱动器将数据直接写入驱动器的非易失性存储介质。在这种情况下,直到驱动器已经将写入数据写入其非易失性存储介质时,驱动器才通知驱动器控制器已经成功写入。但是当驱动器的写缓存被禁止时,驱动器的性能可能受到负面影响,因为驱动器的控制电路不能优化从缓存到驱动器的永久介质的数据传输。
RAID存储阵列的特征在于能够在失效之后修复或重建关于驱动器的信息。例如,在RAID5阵列中,在阵列的驱动器上存储奇偶校验信息。如果一个驱动器失效,将根据存储在阵列中其它驱动器上的奇偶校验信息重建该驱动器。因为驱动器中介质的容量增加,所以增加的必须被恢复的信息量导致驱动器的恢复耗费较长的时间。对于具有能够存储几十或几百吉字节数据的介质的驱动器而言,数小时或一天或几天的重建时间是很常见的。当阵列中驱动器被重建时,许多RAID阵列以简化工作方式运行。在简化工作方式下,由于资源被用于重建驱动器导致阵列的性能下降。此外,如果在重建期间内正被重建的驱动器的缓存被禁止,则重建该驱动器所需的时间与重建具有启用的写缓存的驱动器所需时间相比可能更长。因此,在许多的RAID级中,当阵列处于简化工作模式时如果第二驱动器失效,则该阵列将丢失。
发明内容
按照本发明,公开了一种用于重建驱动器阵列中的驱动器的系统和方法。被重建的驱动器的写缓存是启用的。在重建过程期间,发向驱动器的指令也记录在与驱动器控制器相关的日志中。周期地向驱动器发送同步指令。响应同步指令,驱动器将写缓存中的没有被写入非易失性介质的所有数据写入介质。在同步之后,清除日志,也清除已经相对驱动器阵列的非易失性存储器被执行的写指令。
此处所公开的系统和方法的优点在于缩短了失效驱动器的重建时间。启用正被恢复的驱动器的写缓存允许驱动器的控制逻辑优化指令被写入介质的顺序。启用正被恢复的驱动器的写缓存也允许在与写指令相关的数据被写入驱动器的介质中之前向磁盘发送多个写指令。因为写缓存被启用,所以能够比重建过程中写缓存被禁止的驱动器更快地重建驱动器。此处所公开的系统和方法的另一个优点在于公开的技术包括预见在写缓存被启用时以及重建过程期间正被重建的驱动器可能经历系统失效的可能性的预防措施。为了补偿这种可能性,指令被写入日志并相对于驱动器被周期地同步。同步过程包括使驱动器缓存中的与写指令相关的所有数据写入驱动器的存储介质中。在驱动器控制器的日志中存储可能不同步的指令的子集,避免了必须从开端重新开始重建过程的可能性。替代的是,如果重建过程期间发生失效(例如,掉电)则重建过程可以从存储在日志中的这些指令重新开始。因此,此处公开的重建过程包括了在不影响重建过程性能的同时避免随后失效的安全机构。通过阅读随后的说明、权利要求书和附图,本领域普通技术人员将清楚了解其它的优点。
附图说明
通过结合附图参照下面的说明可更完整地理解本发明及其优点,附图中相同的参考标记表示相同的特征,其中:
图1是冗余存储阵列的图示;
图2是存储阵列的驱动器和相关的驱动器控制器;
图3是用于重建驱动器阵列的驱动器的方法的流程图。
具体实施方式
出于说明的目的,信息处理系统可包括工具或工具的集合,该工具或工具的集合可计算、分类、处理、传输、接收、检索、初始、切换、存储、显示、证明、检测、记录、再现、操作或利用用于商业、科学、控制或其它目的的任何形式的信息、情报或数据。例如,信息处理系统可以是个人计算机、网络存储设备或任何其它适合的设备,并且在尺寸、形状、性能、功能和价格上是可变的。信息处理系统可以包括随机存取存储器(RAM)、一个或多个例如中央处理器(CPU)或硬件或软件控制逻辑的处理资源、ROM和/或其它类型的非易失性存储器。信息处理系统的额外部件可包括一个或多个磁盘驱动器,一个或多个用于与外部设备通信的网络端口,以及各种输入/输出(I/O)设备,例如键盘、鼠标和视频显示器。信息处理系统还可以包括一个或多个用于在各硬件部件之间传输通信的总线。
图1是5级RAID存储阵列的图示,其通常用10表示。存储阵列10包括5个驱动器,其有时被称为盘或卷。图1示出的四个驱动器的每个都包括8条带(stripe)或8行(row)数据,其标注为条带0(Stripe0)至条带7(Stripe7)。应当认识到,图1的RAID阵列的构造仅是RAID阵列的示例,RAID阵列可以被配置成具有更多或更少的驱动器,每个驱动器可以具有更多或更少的条带或行。参照Stripe0,数据被存储在驱动器A、驱动器B和驱动器C。Stripe0的奇偶检验位被存储在驱动器D,用P0表示,奇偶检验位是对驱动器A、驱动器B和驱动器C中Stripe0的内容执行异或运算的结果。参照Stripe7说明RAID阵列10的数据结构的第二个例子,数据被存储在驱动器B、驱动器C和驱动器D中。Stripe7的奇偶检验位被存储在驱动器A,用P7表示,奇偶检验位是对驱动器B、驱动器C和驱动器D中Stripe7的内容执行异或运算的结果。例如,如果驱动器C失效或以其它方式被鉴别为退化的驱动器,则将通过RAID阵列10中其它三个驱动器中的数据重建驱动器C的每片中的数据。如图1所示,存储阵列中的每个驱动器都连接到主机。RAID5阵列10是容错RAID级的例子,其中能够支持单个驱动器失效,并能够重建失效的驱动器。其它的容错RAID级包括1、4、5、6、10和0+1。
存储阵列的每个驱动器与驱动器控制器通信并受其控制。图2是驱动器20和驱动器控制器22的图示。驱动器20和驱动器控制器22通过通道24彼此连接。通道24可以按照多种通信协议工作,包括并行或串行SCSI通信总线或链路,并行或串行ATA通信总线或链路,光纤通道通信链路,或无线通信链路。驱动器20包括介质存储元件26、控制逻辑21和写缓存27。介质存储元件26可以包括适于存储信息的任何介质,包括磁介质或光介质。类似地,写缓存27可以包括适于存储信息的任何存储机构。写缓存27通常是易失性存储器,与通常是非易失性的存储介质26相比写缓存27可用于更快的存取其内容。
驱动器20的控制逻辑21响应并处理来自驱动器控制器22的指令(包括从驱动器20读数据或向驱动器20写数据的指令),启用或禁止写缓存27,并使写缓存27中所有的信息写入存储介质26。控制逻辑21也将数据和提示信息发送到驱动器控制器22。此外,控制逻辑21控制存储介质26和写缓存27。驱动器控制器22包括控制逻辑元件23,其与驱动器控制器的日志28和存储器位置29通信并指导它们。按照本发明公开的驱动器控制器22的示例包括RAID控制器、下层的ATA/SATA或SCSI控制器或两者。
日志28是存储过去发送到驱动器20的写指令的信息存储位置。日志28的内容由控制逻辑23控制。控制逻辑23可以发布指令使日志28清除或清空其内容。日志28本质上最好是非易失性的,以便在驱动器或周围网络突然掉电时保护日志28的内容。日志28的内容是最近发送到驱动器20的指令列表,以及与每个所列指令相关的指令计数。存储器位置29可以是控制逻辑23可存取的任何存储器位置。运行的指令计数被存储在存储器位置29中。指令计数的值对应最近发送到驱动器20的指令。存储器位置29中的指令计数可由控制逻辑23控制。特别的,控制逻辑23可以将新的指令计数存储在存储器位置29中,可以检索存储的指令计数,或者擦除或复位指令计数。存储器位置29可以包括非易失性存储器,以便在驱动器或网络掉电时保护指令计数。
图3是用于重建驱动器阵列的驱动器的方法的流程图。当必须重建驱动器阵列的驱动器时执行图3的步骤。有许多原因需要重建驱动器。驱动器上的数据可能被劣化或者驱动器可能是一个已经被添加到驱动器阵列的驱动器。可以按照自动重建来重建该驱动器,自动重建识别要求重建驱动器的条件。或者,可以根据系统管理员的手动引导来重建驱动器。在步骤30,启用驱动器的写缓存,由此允许驱动器使用其写缓存来帮助优化向驱动器介质的写入。驱动器20的写缓存通常由驱动器控制器22发送至驱动器20的指令来启用。例如,如果驱动器20是SCSI驱动器,则驱动器控制器22将MODE SELECT(模式选择)指令发送至驱动器20的控制逻辑21中的Cache Mode Page(缓存模式页),并将驱动器中Write Cache Enable(写缓存使能)位设置成1。在ATA或SATA情况下,驱动器控制器发送具有子命令代码的SETFEATURES(设置特征)指令以启用写缓存。
在步骤32,驱动器控制器22接收发向驱动器的指令。这些指令包括重建驱动器所必须的写指令。因为驱动器的一部分被重建,所以指令可以包括有效负载指令,以便向驱动器的重建部分写入新的数据。在步骤32,接收的指令被记录在日志28。因为每个指令都被接收,所以写指令的运行列表被载入日志28。在将指令记录在日志28中之后,在存储器位置29中增加指令计数。在步骤38,将接收的指令发送到驱动器。从步骤32至38可以看出,在指令发送到驱动器之前,指令被记录在日志中。以此方式,在指令被提供给驱动器之前,记录是由每个指令构成的。当驱动器接收到指令时,指令及其内容可存储在缓存中或存储在驱动器的存储介质中。由于驱动器上的写缓存被启用,所以驱动器可以选择处理指令的方法,该方法可最有效地利用存储器的写缓存。一旦驱动器成功地处理了该指令,无论是通过在缓存中还是在其存储介质中替换该指令,驱动器都将向控制器发布提示指令,指出驱动器已经成功地处理了该指令。
在步骤40,在驱动器的表示成功接收该指令的提示发送之后,确定是否完成重建过程。如果驱动器重建过程没有完成,在步骤42确定指令计数是否已经达到预定的最大值。一旦指令计数达到预定的最大值,即,一旦指令的预定的最大值记录在日志中,则执行一系列步骤以使日志与驱动器的存储介质的内容同步。预定的最大值可以是不大于日志中可存储的指令数量的任何适当的数。预定的最大值不应当设置的太低,以至于日志和存储介质的同步过于频繁,干扰了同步步骤与重建过程的有效完成。预定值不应当设置的太高,以至于在日志中存储过量的指令。如果发生被重建的驱动器的随后损失,日志中具有过量的指令与跟踪用于重复执行的有限数量的指令的目的相违。如果没有达到预定的指令计数值,流程图返回到步骤32在驱动器控制器接收下一个指令。
如果在步骤42确定出已经达到预定的指令计数值,则使记录在日志中的指令与驱动器的存储介质的内容同步。在步骤44,驱动控制器发布指令,以便将存储在缓存中的与写指令相关的所有数据写到介质中。该指令是由驱动器的控制逻辑识别的指令。在SCSI情况下,驱动器控制器发布SYNCHRONIZE(同步)指令。在ATA或SATA情况下,驱动器控制器发布FLUSH(清除)指令。该指令使缓存中所有与写指令相关的数据将关于驱动器中的存储介质被清除。该步骤之后,驱动器的缓存不包括还没有被写入驱动器的存储介质中的一些写指令。在已经成功地执行了步骤44之后,步骤46清除日志,并将指令计数清零。流程图返回到步骤32在驱动器控制器接收发向驱动器的其它指令。
如果步骤40确定了重建已经完成,则流程图进行到步骤48,发布指令迫使所有的写指令离开缓存,以便能够关于驱动器的存储介质执行这些指令。应当意识到步骤48与步骤44是一致的。成功完成步骤48之后,在步骤50,清除日志并将指令计数清零。应当意识到步骤50与步骤46是一致的。在步骤52,禁止驱动器的写缓存。在SCSI情况下,驱动器控制器将MODE SELECT(模式选择)指令发送至驱动器20的控制逻辑21中的Cache Mode Page(缓存模式页),并将WriteCache Enable(写缓存使能)位设置成0。在ATA或SATA情况下,驱动器控制器发送具有子命令代码的SET FEATURES(设置特征)指令以禁止写缓存。禁止驱动器写缓存使驱动器处于发向存储驱动器的写指令不能到达驱动器的条件,由此确保向驱动器的所有写入都被写入驱动器的非易失性存储介质。
此处公开的系统和方法,在防止重建过程期间驱动器的随后失效的同时,允许使用优化的启用的写缓存重建驱动器。在日志中记录写指令提供了用于列出最近发布的写指令的资源。如果在驱动器的重建期间驱动器的写缓存掉电,则日志将包括还没有写到驱动器的存储介质中的这些指令的列表。因此,如果发生被重建驱动器的缓存的失效或掉电,日志的内容能够用作避免必须重新开始重建过程的资源。
应当理解,此处公开的系统和方法不限于此处公开的附图中所示的精确构造。而是,此处公开的系统和方法能够采用任何适当的计算机系统构造,该计算机系统构造包括冗余电源的使用。还应当理解,此处公开的系统和方法不限于对专用处理器或处理器族或处理器的专用指令的应用。而是,此处公开的系统和方法可使用能够通过调整一个或多个内部时钟来调整其功耗的任何处理器。尽管已经详细的说明了本发明,但是应当理解,在不脱离权利要求书所限定的本发明的实质和范围的情况下,能够进行各种改变、替换和修改。

Claims (20)

1.一种用于管理发往驱动器的重建指令的方法,该驱动器具有非易失性存储器和缓存;
启用该驱动器的缓存;
将发往该驱动器的重建指令记录在第一存储器位置;以及
周期地使该驱动器将与该重建指令相关的缓存的数据转储清除到其非易失性存储器中;
其中在驱动器的缓存被启用的期间内,每个发往驱动器指令至少被临时地记录在该存储器位置。
2.如权利要求1所述的用于管理发往驱动器的重建指令的方法,还包括在成功地重建驱动器之后禁止驱动器缓存的步骤。
3.如权利要求2所述的用于管理发往驱动器的重建指令的方法,其中使该驱动器将缓存的数据转储清除到其非易失性存储器中的步骤包括以下步骤:
保持存储在该第一存储器位置中的指令数量的计数;
当存储在该第一存储器位置中的指令数量的计数达到预定的临界值时,使该驱动器将与缓存的数据转储清除到其非易失性存储器中。
4.如权利要求3所述的用于管理发往驱动器的重建指令的方法,还包括在将数据从缓存成功地转储清除到非易失性存储器中之后清除该第一存储器位置和该计数的步骤。
5.一种存储阵列,包括:
多个驱动器,其中每个驱动器包括,
用于存储数据的非易失性存储介质;和
用于缓存与驱动器接收到的写指令相关的数据的写缓存;以及
驱动器控制器,其中每个驱动器控制器与存储阵列的一驱动器相关并与其连接,其中每个驱动器控制器都包括第一存储器,其中该第一存储器用于存储从每个驱动器控制器发送到与其相关的驱动器的写指令的历史记录;
其中每个驱动器控制器用于管理其相关驱动器的重建:
启用该驱动器的缓存;
将发送到该驱动器的每个写指令记录在第一存储器中;
周期地使该驱动器转储清除该驱动器写缓存中的数据;和
在成功的完成驱动器重建之后禁止该驱动器的写缓存。
6.如权利要求5所述的存储阵列,其中在成功转储清除该相关驱动器写缓存中数据的指示之后,每个驱动器控制器清除其第一存储器。
7.如权利要求5所述的存储阵列,其中每个驱动器控制器包括用于记录存储在该第一存储器中的指令数量的第二存储器。
8.如权利要求7所述的存储阵列,其中当存储在该第一存储器中的指令数量达到预定的临界值时,每个驱动器控制器使其相关的驱动器转储清除写缓存中的数据。
9.如权利要求5所述的存储阵列,其中第一存储器是非易失性的。
10.一种用于重建驱动器的存储介质的方法,其中该驱动器与可被选择启用的写缓存通信,该方法包括:
启用该驱动器的写缓存;
向该驱动器发送一个或多个指令;
将该一个或多个指令写入日志;和
使该驱动器将该写缓存中的数据转储清除到存储介质中。
11.如权利要求10所述的用于重建驱动器的存储介质的方法,还包括清除日志的步骤。
12.如权利要求11所述的用于重建驱动器的存储介质的方法,还包括在成功地重建该驱动器的介质之后禁止该写缓存的步骤。
13.如权利要求10所述的用于重建驱动器的存储介质的方法,还包括以下步骤:
提供发送到该驱动器的指令的计数;和
其中当发送到该驱动器的指令的计数达到预定值时执行使该驱动器转储清除该写缓存中的数据的步骤。
14.如权利要求13所述的方法,还包括在成功地转储清除该写缓存中的数据之后清除该日志的步骤。
15.如权利要求13所述的方法,还包括在成功地重建该驱动器的介质之后禁止该写缓存的步骤。
16.如权利要求10所述的方法,还包括在驱动器转储清除该写缓存中的所有数据并发送指示缓存的数据被写入介质的消息之后,清除该日志的步骤。
17.如权利要求10所述的方法,其中该日志由与该驱动器控制器相关的非易失性存储器构成。
18.一种用于通过通信通道与驱动器通信的驱动器控制器,包括:
用于记录在驱动器被重建期间内从驱动器控制器发送到该驱动器的指令的第一存储器;
用于存储记录在该第一存储器中指令的计数的第二存储器;
其中,在该驱动器被重建期间内,驱动器控制器用于启用该驱动器的写缓存,并且该指令的计数达到预定的临界值时使该驱动器转储清除该驱动器的写缓存中的数据。
19.如权利要求18所述的驱动器控制器,其中该驱动器控制器在成功地重建该驱动器之后禁止该驱动器的写缓存。
20.如权利要求19所述的驱动器控制器,其中该第一存储器包括非易失性存储器。
CNA2008101335929A 2004-03-22 2005-03-21 驱动器失效之后用于驱动器恢复的系统和方法 Pending CN101324864A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/805,811 US20050210318A1 (en) 2004-03-22 2004-03-22 System and method for drive recovery following a drive failure
US10/805,811 2004-03-22

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100557514A Division CN100418069C (zh) 2004-03-22 2005-03-21 驱动器失效之后用于驱动器恢复的系统和方法

Publications (1)

Publication Number Publication Date
CN101324864A true CN101324864A (zh) 2008-12-17

Family

ID=34552926

Family Applications (2)

Application Number Title Priority Date Filing Date
CNA2008101335929A Pending CN101324864A (zh) 2004-03-22 2005-03-21 驱动器失效之后用于驱动器恢复的系统和方法
CNB2005100557514A Active CN100418069C (zh) 2004-03-22 2005-03-21 驱动器失效之后用于驱动器恢复的系统和方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CNB2005100557514A Active CN100418069C (zh) 2004-03-22 2005-03-21 驱动器失效之后用于驱动器恢复的系统和方法

Country Status (10)

Country Link
US (1) US20050210318A1 (zh)
JP (1) JP2005276196A (zh)
KR (1) KR20060043873A (zh)
CN (2) CN101324864A (zh)
DE (1) DE102005012448B4 (zh)
FR (1) FR2870367B1 (zh)
GB (1) GB2412482B (zh)
MY (1) MY139233A (zh)
SG (2) SG135206A1 (zh)
TW (1) TWI366097B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7523272B2 (en) * 2004-07-12 2009-04-21 Dell Products L.P. System and method for identifying a storage drive in a storage network
US7143308B2 (en) * 2005-01-14 2006-11-28 Charlie Tseng Apparatus, system, and method for differential rebuilding of a reactivated offline RAID member disk
JP4754852B2 (ja) * 2005-03-15 2011-08-24 富士通株式会社 ストレージ制御装置および方法
JP2007004343A (ja) * 2005-06-22 2007-01-11 Fujitsu Ltd 書き込み制御方法及び記憶装置
US7721143B2 (en) * 2005-12-06 2010-05-18 Lsi Corporation Method for reducing rebuild time on a RAID device
US20070180292A1 (en) * 2006-01-31 2007-08-02 Bhugra Kern S Differential rebuild in a storage environment
US7500070B2 (en) * 2006-08-23 2009-03-03 Lsi Corporation Methods and apparatus for improved RAID 1 mirror re-synchronization
US8127099B2 (en) * 2006-12-26 2012-02-28 International Business Machines Corporation Resource recovery using borrowed blocks of memory
US7814361B2 (en) * 2007-10-12 2010-10-12 Dell Products L.P. System and method for synchronizing redundant data in a storage array
US8499120B2 (en) * 2008-10-17 2013-07-30 Seagate Technology Llc User selectable caching management
US8909983B2 (en) * 2012-03-08 2014-12-09 Synology Incorporated Method of operating a storage device
US9483352B2 (en) * 2013-09-27 2016-11-01 Fisher-Rosemont Systems, Inc. Process control systems and methods
CN104750622B (zh) * 2013-12-30 2018-02-02 光宝科技股份有限公司 储存装置及其资料传输控制方法
CN111104046B (zh) * 2018-10-25 2023-08-25 伊姆西Ip控股有限责任公司 管理冗余磁盘阵列的方法、设备和计算机可读存储介质
US11531470B2 (en) * 2020-10-21 2022-12-20 EMC IP Holding Company LLC Offload of storage system data recovery to storage devices

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5572660A (en) * 1993-10-27 1996-11-05 Dell Usa, L.P. System and method for selective write-back caching within a disk array subsystem
JP3180063B2 (ja) * 1997-08-26 2001-06-25 インターナショナル・ビジネス・マシーンズ・コーポレ−ション ディスク・ドライブ装置及びこれの制御方法
GB2343265A (en) * 1998-10-28 2000-05-03 Ibm Data storage array rebuild
AU4486200A (en) * 1999-04-23 2000-11-10 Wild File, Inc. Method and apparatus for dealing with data corruption and shared disks in the context of saving, using and recovering data
US6671705B1 (en) * 1999-08-17 2003-12-30 Emc Corporation Remote mirroring system, device, and method
US6901481B2 (en) * 2000-04-14 2005-05-31 Stratus Technologies Bermuda Ltd. Method and apparatus for storing transactional information in persistent memory
US20020029354A1 (en) * 2000-08-23 2002-03-07 Seagate Technology Llc Non-volatile write cache, in a disc drive, using an alternate power source
US6658533B1 (en) * 2000-09-21 2003-12-02 Intel Corporation Method and apparatus for write cache flush and fill mechanisms
US6549977B1 (en) * 2001-05-23 2003-04-15 3Ware, Inc. Use of deferred write completion interrupts to increase the performance of disk operations
US6567892B1 (en) * 2001-05-23 2003-05-20 3Ware, Inc. Use of activity bins to increase the performance of disk arrays
US6957302B2 (en) * 2001-09-20 2005-10-18 Hewlett-Packard Development Company, L.P. System and method for performing write operations in a disk drive using a write stack drive
US20030120869A1 (en) * 2001-12-26 2003-06-26 Lee Edward K. Write-back disk cache management
US6917967B2 (en) * 2002-12-13 2005-07-12 Sun Microsystems, Inc. System and method for implementing shared memory regions in distributed shared memory systems
US7010645B2 (en) * 2002-12-27 2006-03-07 International Business Machines Corporation System and method for sequentially staging received data to a write cache in advance of storing the received data

Also Published As

Publication number Publication date
GB2412482A (en) 2005-09-28
FR2870367A1 (fr) 2005-11-18
GB0505767D0 (en) 2005-04-27
IE20050081A1 (en) 2005-10-19
SG115830A1 (en) 2005-10-28
TW200540623A (en) 2005-12-16
CN100418069C (zh) 2008-09-10
TWI366097B (en) 2012-06-11
DE102005012448A1 (de) 2005-11-03
US20050210318A1 (en) 2005-09-22
GB2412482B (en) 2007-12-27
SG135206A1 (en) 2007-09-28
MY139233A (en) 2009-09-30
FR2870367B1 (fr) 2007-10-12
JP2005276196A (ja) 2005-10-06
CN1690979A (zh) 2005-11-02
KR20060043873A (ko) 2006-05-15
DE102005012448B4 (de) 2015-05-07

Similar Documents

Publication Publication Date Title
CN100418069C (zh) 驱动器失效之后用于驱动器恢复的系统和方法
US10223272B2 (en) Latency sensitive metadata object persistence operation for storage device
US9442802B2 (en) Data access methods and storage subsystems thereof
US8601311B2 (en) System and method for using over-provisioned data capacity to maintain a data redundancy scheme in a solid state memory
US7310711B2 (en) Hard disk drive with support for atomic transactions
US6766491B2 (en) Parity mirroring between controllers in an active-active controller pair
US8589724B2 (en) Rapid rebuild of a data set
US7975168B2 (en) Storage system executing parallel correction write
US20070162692A1 (en) Power controlled disk array system using log storage area
US20140304469A1 (en) Data storage
US20070088990A1 (en) System and method for reduction of rebuild time in raid systems through implementation of striped hot spare drives
US20100306466A1 (en) Method for improving disk availability and disk array controller
US20150286531A1 (en) Raid storage processing
EP2573689A1 (en) Method and device for implementing redundant array of independent disk protection in file system
US20050091452A1 (en) System and method for reducing data loss in disk arrays by establishing data redundancy on demand
US20060161823A1 (en) Disk array system configuring a logical disk drive having a redundancy function
US6928515B2 (en) Integrated sector format-error correction code system and method for efficient writing in a disk array system
CN102135862B (zh) 一种磁盘存储系统及其数据访问方法
CN104063184B (zh) 磁盘记录方法及其非易失性存储媒体与电子装置
CN103019894A (zh) 一种独立冗余磁盘阵列的重建方法
US20100058090A1 (en) Storage system and power saving method thereof
US6446160B1 (en) Multi-drive data storage system with analysis and selected demounting of idle data storage media
CN108304139A (zh) 一种在固态盘阵列中实现空间释放的方法及装置
CN113811862A (zh) 存储驱动器的动态性能等级调整
CN115087962A (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
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20081217