Method and apparatus for fast initialization of redundant arrays of storage devices

    公开(公告)号:US06993676B2

    公开(公告)日:2006-01-31

    申请号:US10170937

    申请日:2002-06-12

    IPC分类号: G06F11/00

    摘要: A method and apparatus for fast initialization of storage devices. An apparatus is described including a redundant array of storage devices that comprises a logical volume of storage. The logical volume further comprises a plurality of stripes. A bit mapped vector provides state initialization information for each of the plurality of stripes in lieu of initializing each of the stripes. A storage controller initializes each of the plurality of stripes by using accesses to the redundant array while concurrently allowing access to the plurality of stripes. Initialization of a stripe can be done by processing a write access. Associated written data to the stripe and updating its corresponding redundancy effectively initializes that stripe. The bit mapped vector is updated to reflect the initialization of that stripe. In addition, while the redundant array is idle, further initialization of un-initialized stripes occurs while concurrently allowing access to the redundant array.

    Apparatus and method for providing data redundancy and reconstruction
for redundant arrays of disk drives
    2.
    发明授权
    Apparatus and method for providing data redundancy and reconstruction for redundant arrays of disk drives 失效
    用于为磁盘驱动器的冗余阵列提供数据冗余和重建的装置和方法

    公开(公告)号:US5671349A

    公开(公告)日:1997-09-23

    申请号:US350743

    申请日:1994-12-06

    IPC分类号: G06F11/10 G06F11/00

    CPC分类号: G06F11/1076 G06F2211/1054

    摘要: The present invention provides a system of hardware and software that combine to form a redundant array of disk drives. This array provides a double means of redundancy that can reconstruct data from two simultaneously failed disks. The double redundancy means is implemented by two separate algorithms, DRR1 and DRR2. DRR1 takes the exclusive-or of all the commercial data and stores the result as redundancy data. DRR2 is similar to the algorithm described in Patel's article. As an additional feature, the implementation of DRR1 and DRR2 in the present invention is flexible enough to support either on-the-fly or read-modify-write level operation. Although both algorithms are in the prior art, the present invention improves on the run-time and space requirements of the algorithm. This improvement arises because of a novel relationship, discussed below, that exist between the individual T.sup.1 matrices and their column vectors that allows for a savings in computing the mapping of the commercial data to the redundancy data. This unique relationship is incorporated into the present systems hardware and software.

    摘要翻译: 本发明提供一种硬件和软件系统,其组合以形成磁盘驱动器的冗余阵列。 该阵列提供了双重冗余的方式,可以从两个同时发生故障的磁盘重建数据。 双重冗余装置由两个独立的算法DRR1和DRR2来实现。 DRR1采用专有或所有商业数据,并将结果存储为冗余数据。 DRR2类似于Patel文章中描述的算法。 作为附加特征,本发明中DRR1和DRR2的实现是足够灵活的,以支持即时或读 - 修改 - 写入电平操作。 虽然这两种算法都在现有技术中,但本发明改进了算法的运行时间和空间要求。 这种改进是由于下面讨论的新颖的关系,存在于各个T1矩阵和它们的列向量之间,这允许节省将商业数据映射到冗余数据的映射。 这种独特的关系被并入现有的系统硬件和软件。

    Method and system for leveraging spares in a data storage system including a plurality of disk drives
    3.
    发明授权
    Method and system for leveraging spares in a data storage system including a plurality of disk drives 有权
    用于在包括多个磁盘驱动器的数据存储系统中利用备件的方法和系统

    公开(公告)号:US06845465B2

    公开(公告)日:2005-01-18

    申请号:US09955527

    申请日:2001-09-17

    申请人: Ebrahim Hashemi

    发明人: Ebrahim Hashemi

    摘要: A method and apparatus for leveraging spare disks in a data storage system. Specifically the present invention describes a method for data recovery and redundancy in a data storage system having a plurality of disk drives. The data storage system is grouped into a plurality of arrays having data redundancy. The plurality of arrays is arranged in an optimum combination of arrays of mirrored pairs of disk drives, arrays of three disk drives in a redundant array of independent disks (RAID) configuration, and arrays of more than three disk drives in a RAID configuration to maximize performance while providing data redundancy. For every failure of one of said plurality of arrays due to a failed disk drive, a new array having data redundancy in a RAID configuration is dynamically created in said plurality of arrays. The new array is optimized for best performance and contains information from the failed disk drive.

    摘要翻译: 一种用于利用数据存储系统中的备用磁盘的方法和装置。 具体地说,本发明描述了一种具有多个磁盘驱动器的数据存储系统中的数据恢复和冗余的方法。 数据存储系统被分组成具有数据冗余的多个阵列。 多个阵列以镜像对磁盘驱动器阵列,独立磁盘(RAID)配置的冗余阵列中的三个磁盘驱动器阵列以及RAID配置中的三个以上磁盘驱动器的阵列的最佳组合进行排列,以使 同时提供数据冗余。 对于由于磁盘驱动器故障导致的所述多个阵列中的一个阵列的每个故障,在所述多个阵列中动态地创建具有RAID配置中的数据冗余的新阵列。 新阵列经过优化,以获得最佳性能,并包含故障磁盘驱动器的信息。

    Storage array having multiple erasure correction and sub-stripe writing
    4.
    发明授权
    Storage array having multiple erasure correction and sub-stripe writing 有权
    具有多个擦除校正和子条纹写入的存储阵列

    公开(公告)号:US06748488B2

    公开(公告)日:2004-06-08

    申请号:US09966842

    申请日:2001-09-28

    IPC分类号: G06F1200

    摘要: A data storage subsystem including an array of storage devices and a storage controller is disclosed. In one embodiment, the array of storage devices stores information in multiple stripes. Each stripe may include a plurality of data blocks and redundancy information in the form of plurality of redundancy blocks. The redundancy information may be generated using an nth order generator polynomial such as a Reed Solomon code. The storage controller may be configured to perform modified read/write stripe updates by: (a) reading original data from a subset of data blocks in a target stripe; (b) reading the original redundancy information for that stripe; (c) comparing the original data with the new data to determine a data difference; (d) calculating a redundancy difference from the data difference; (e) applying the redundancy difference to the original redundancy information to obtain updated redundancy information, (f) writing the new data and updated redundancy information to the target stripe. Multiple erasure correction is also contemplated.

    摘要翻译: 公开了一种包括存储设备阵列和存储控制器的数据存储子系统。 在一个实施例中,存储设备阵列存储多条信息。 每个条带可以包括多个数据块和多个冗余块形式的冗余信息。 可以使用诸如里德所罗门码的第n阶生成多项式来生成冗余信息。 存储控制器可以被配置为通过以下操作来执行修改的读/写条带更新:(a)从目标条带中的数据块的子集读取原始数据; (b)读取该条纹的原始冗余信息; (c)将原始数据与新数据进行比较以确定数据差异; (d)从所述数据差计算冗余差; (e)将冗余差应用于原始冗余信息以获得更新的冗余信息,(f)将新数据和更新的冗余信息写入目标条带。 还设想了多次擦除校正。

    METHODS FOR DATA CAPACITY EXPANSION AND DATA STORAGE SYSTEMS
    5.
    发明申请
    METHODS FOR DATA CAPACITY EXPANSION AND DATA STORAGE SYSTEMS 审中-公开
    数据容量扩展和数据存储系统的方法

    公开(公告)号:US20080091916A1

    公开(公告)日:2008-04-17

    申请号:US11873498

    申请日:2007-10-17

    申请人: Ebrahim HASHEMI

    发明人: Ebrahim HASHEMI

    IPC分类号: G06F12/06

    摘要: A data storage system includes at least one first storage device and at least one second storage device, and a storage controller coupled to the first storage device and the second storage device. The storage controller is configured to emulate a virtual storage device by grouping the first storage device and the second storage device. Each of the first storage device and the second storage device includes a plurality of blocks for storing data. The storage controller is also configured to expand a capacity of the virtual storage device by adding at least one third storage device to the first storage device. Each block of the third storage device has a 0 or 1 formatted in it, and a capacity of the virtual storage device is increased by a capacity of the third storage device.

    摘要翻译: 数据存储系统包括至少一个第一存储设备和至少一个第二存储设备,以及耦合到第一存储设备和第二存储设备的存储控制器。 存储控制器被配置为通过对第一存储设备和第二存储设备进行分组来模拟虚拟存储设备。 第一存储装置和第二存储装置中的每一个包括用于存储数据的多个块。 存储控制器还被配置为通过将至少一个第三存储设备添加到第一存储设备来扩展虚拟存储设备的容量。 第三存储装置的每个块在其中具有0或1格式,并且虚拟存储装置的容量增加第三存储装置的容量。

    Method and system for striping spares in a data storage system including an array of disk drives
    6.
    发明授权
    Method and system for striping spares in a data storage system including an array of disk drives 有权
    在包括磁盘驱动器阵列的数据存储系统中分割备件的方法和系统

    公开(公告)号:US06934804B2

    公开(公告)日:2005-08-23

    申请号:US10157333

    申请日:2002-05-28

    申请人: Ebrahim Hashemi

    发明人: Ebrahim Hashemi

    IPC分类号: G06F11/10 G06F12/00 G06F12/16

    CPC分类号: G06F11/1076 G06F2211/1028

    摘要: Method and apparatus for striping spare storage in a data storage system. Specifically the present invention describes a method and apparatus for storing data and spare storage in a data storage system having a plurality of physical storage devices. The plurality of physical storage devices is partitioned into a plurality of slices. Logical units of storage (LUNs) are created, wherein each LUN contains data, spare, and data redundancy. Each of the plurality of slices is assigned to one of the plurality of LUNs so as to distribute storage of data, data redundancy, and spare across all of the plurality of physical storage devices. Distribution of spare storage is concentrated at the inner zone of each of the plurality of physical storage devices. The data and spare storage can be distributed uniformly or with varying granularities across all of the plurality of physical storage devices.

    摘要翻译: 用于在数据存储系统中划分备用存储的方法和装置。 具体地,本发明描述了一种用于在具有多个物理存储设备的数据存储系统中存储数据和备用存储的方法和装置。 多个物理存储设备被分割成多个片。 创建逻辑单元(LUN),其中每个LUN包含数据,备用和数据冗余。 将多个切片中的每一个分配给多个LUN中的一个,以便分配所有多个物理存储设备中的数据,数据冗余和备用存储。 备用存储器的分配集中在多个物理存储设备中的每一个的内部区域。 可以在所有多个物理存储设备中均匀地或以不同的粒度分布数据和备用存储器。

    Load balancing configuration for storage arrays employing mirroring and striping
    7.
    发明授权
    Load balancing configuration for storage arrays employing mirroring and striping 有权
    使用镜像和条带的存储阵列的负载平衡配置

    公开(公告)号:US06425052B1

    公开(公告)日:2002-07-23

    申请号:US09429687

    申请日:1999-10-28

    申请人: Ebrahim Hashemi

    发明人: Ebrahim Hashemi

    IPC分类号: G06F1200

    摘要: An array of storage devices may be provided in which data is both striped and mirrored across the array. Data may be organized in stripes in which each stripe is divided into a plurality of stripe units. The stripe units may be mapped sequentially to consecutive storage devices in the array for each data stripe. Each data stripe is also mirrored within the array as a mirrored data stripe. Each mirrored data stripe is also divided into a plurality of stripe units. The stripe units of the mirrored stripes are distributed throughout the array according to a mapping that provides for load balancing during a reconstruction operation. According to one embodiment, stripe units for mirrored stripes are distributed according to a rotational group such that each mirrored stripe is rotated on the array by one more position than the previous mirrored stripe and wherein the rotational group is repeated as necessary. Alternatively, the mirrored stripe units may be distributed according to other permutations to improve load balancing during reconstruction of a failed device. In other embodiments, in addition to mapping mirrored stripe units to balance read operations during reconstruction, one or more spare storage devices may be striped throughout the array to improve load balancing for write operations during reconstruction.

    摘要翻译: 可以提供一组阵列的存储设备,其中的数据都是跨数组进行条带化和镜像的。 数据可以以条带组织,其中每个条纹被分成多个条带单元。 条带单元可以被顺序地映射到阵列中的每个数据条带上的连续存储设备。 每个数据条带也作为镜像数据条带在阵列中进行镜像。 每个镜像数据条带也被划分成多个条带单元。 根据在重建操作期间提供负载平衡的映射,镜像条纹的条带单元分布在整个阵列中。 根据一个实施例,用于镜像条纹的条带单元根据旋转组分布,使得每个镜像条纹在阵列上比先前镜像条纹多一个位置旋转,并且其中根据需要重复旋转组。 或者,可以根据其他排列来分布镜像条带单元,以在重建故障设备期间改善负载平衡。 在其他实施例中,除了映射镜像条带单元以在重建期间平衡读取操作之外,一个或多个备用存储设备可以在整个阵列中被条带化,以改善重建期间的写入操作的负载平衡。

    Apparatus and method for providing redundant arrays storage devices
    8.
    发明申请
    Apparatus and method for providing redundant arrays storage devices 审中-公开
    用于提供冗余阵列存储设备的装置和方法

    公开(公告)号:US20070067665A1

    公开(公告)日:2007-03-22

    申请号:US11229917

    申请日:2005-09-19

    申请人: Ebrahim Hashemi

    发明人: Ebrahim Hashemi

    IPC分类号: G06F11/00

    摘要: A storage system and method are disclosed for providing redundant arrays of storage devices such as magnetic disks. Each array includes a data portion with available data space and a spare portion. A controller monitors the size of available space as data fills up the array, and reconfigures the array when the available space reaches a predetermined minimum size or when the spare portion is filled. The number of disks is minimized since the spare portions utilize the unfilled portion of the disks that would normally include only data.

    摘要翻译: 公开了一种用于提供诸如磁盘的冗余存储设备阵列的存储系统和方法。 每个阵列包括具有可用数据空间的数据部分和备用部分。 当数据填充阵列时,控制器监视可用空间的大小,并且当可用空间达到预定的最小大小或者备用部分被填充时重新配置阵列。 磁盘的数量被最小化,因为备用部分利用通常仅包括数据的盘的未填充部分。

    Data storage array employing block verification information to invoke initialization procedures
    9.
    发明授权
    Data storage array employing block verification information to invoke initialization procedures 有权
    数据存储阵列采用块验证信息来调用初始化过程

    公开(公告)号:US06981171B2

    公开(公告)日:2005-12-27

    申请号:US09875241

    申请日:2001-06-05

    申请人: Ebrahim Hashemi

    发明人: Ebrahim Hashemi

    IPC分类号: G06F11/00 G06F11/10

    CPC分类号: G06F11/1076

    摘要: A data storage array employing block verification information to invoke initialization procedures. In one embodiment, a data storage subsystem includes a plurality of storage devices configured in an array and a storage controller coupled to the storage devices. The storage controller is configured to store data in the form of stripes where each stripe includes a plurality of data blocks stored across the plurality of storage devices. Each of the data blocks is associated with block verification information. Upon certain write operations, the storage controller is configured to initialize a given stripe in response to detecting a mismatch in the block verification information in at least one data block of the given stripe. In one particular implementation, the block verification contained in each of the data blocks includes a logical block address and/or a cyclic redundancy code.

    摘要翻译: 一种使用块验证信息来调用初始化过程的数据存储阵列。 在一个实施例中,数据存储子系统包括配置在阵列中的多个存储设备和耦合到存储设备的存储控制器。 存储控制器被配置为以条纹的形式存储数据,其中每个条带包括跨多个存储设备存储的多个数据块。 每个数据块与块验证信息相关联。 在某些写入操作时,存储控制器被配置为响应于检测给定条带的至少一个数据块中的块验证信息的不匹配而初始化给定条带。 在一个具体实现中,包含在每个数据块中的块验证包括逻辑块地址和/或循环冗余码。

    Methods for addressing extended number of peripheral devices over peripheral bus
    10.
    发明授权
    Methods for addressing extended number of peripheral devices over peripheral bus 有权
    通过外设总线寻址扩展数量的外围设备的方法

    公开(公告)号:US06708242B1

    公开(公告)日:2004-03-16

    申请号:US09636038

    申请日:2000-08-09

    IPC分类号: G06F1300

    CPC分类号: G06F13/4226

    摘要: The present invention provides methods for addressing an extended number of peripheral devices over a bus. A bus having an N-bit datapath is provided in a computer system. An extended address space is defined for a set of extended peripheral devices by assigning a bus ID to each extended peripheral device. Each bus ID includes a group ID and a group member ID. Each group ID and group member ID also indicates a priority of said associated device. One or more peripheral devices arbitrate for the bus. In this process, a peripheral device having the highest priority group ID and the highest priority group member ID among the arbitrating devices wins the arbitration. After arbitration, the winning device selects, for transferring data, a device by placing on the bus the bus IDs of the selecting and selected devices.

    摘要翻译: 本发明提供了用于通过总线寻址扩展数量的外围设备的方法。 在计算机系统中提供具有N位数据通路的总线。 通过为每个扩展的外围设备分配总线ID,为一组扩展的外围设备定义扩展地址空间。 每个总线ID包括组ID和组成员ID。 每个组ID和组成员ID还指示所述相关设备的优先级。 一个或多个外围设备仲裁总线。 在该处理中,仲裁装置中具有最高优先级组ID和优先级最高的组成员ID的外围设备获胜。 在仲裁之后,获胜装置通过在总线上放置选择和选择的装置的总线ID来选择用于传送数据的装置。