← Back to Patent Explorer
US7200715B2 Expired / Lapsed US ⏱️ 0.0 years remaining

Method for writing contiguous arrays of stripes in a RAID storage system using mapped block writes

Assignee: NetApp Inc
•
Filing: 2002-03-21
•
Granted: 2007-04-03
•
Expires: 2022-03-21
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract The invention features a method for controlling storage of data in a plurality of storage devices each including storage blocks, for example, in a RAID array. The method includes receiving a plurality of write requests associated with data, and buffering the write requests. A file system defines a group of storage blocks, responsive to disk topology information. The group includes a plurality of storage blocks in each of the plurality of storage devices. Each data block of the data to be written is associated with a respective one of the storage blocks, for transmitting the association to the plurality of storage devices.

Inventors

  • 👤 Steven R. Kleiman
  • 👤 Rajesh Sundaram
  • 👤 Douglas P. Doucette
  • 👤 Stephen H. Strange
  • 👤 Srinivasan Viswanathan

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-04 22:47
CPC Classifications
G; G06; G06F; G06F3/00; G06F3/06; G06F3/0601; G06F3/0602; G06F3/061; G06F3/0613; G06F11/00; G06F11/07; G06F11/08; G06F11/10; G06F11/1076; G06F3/0628; G06F3/0638; G06F3/0643; G06F3/0655; G06F3/0668; G06F3/0671; G06F3/0683; G06F3/0689

Claims Analysis

Total Claims: 60
Claim 1
Independent Claim 93 words
A method for controlling storage of data blocks in a plurality of storage devices, the method comprising: buffering a plurality of write requests associated with the data blocks for a single write transaction; defining a group of storage blocks, the group comprising a plurality of storage blocks in each of the plurality of storage devices; and associating each data block with a respective one of the storage blocks across the plurality of stripes to generate an association; and transmitting the association to a storage device manager for processing of the single write transaction.
Claim 2
Independent Claim 93 words
A method for controlling storage of data blocks in a plurality of storage devices, the method comprising: buffering a plurality of write requests associated with the data blocks for a single write transaction; defining a group of storage blocks, the group comprising a plurality of storage blocks in each of the plurality of storage devices; and associating each data block with a respective one of the storage blocks across the plurality of stripes to generate an association; and transmitting the association to a storage device manager for processing of the single write transaction.
Claim 3
Dependent Claim 47 words
The method of claim 1 , further comprising receiving by a file system the plurality of write requests, and transmitting from the file system to the storage device manager the association for processing of the single write transaction, wherein the storage device manager comprises a RAID layer.
Claim 4
Dependent Claim 33 words
The method of claim 1 , wherein associating comprises associating each data block of at least one of the write requests with storage blocks of only one of the plurality of storage devices.
Claim 5
Dependent Claim 32 words
The method of claim 1 , wherein defining the group of storage blocks comprises receiving by the file system from the storage device manager configuration information of the plurality of storage devices.
Claim 6
Dependent Claim 14 words
The method of claim 4 , wherein the configuration information comprises disk topology information.
Claim 7
Dependent Claim 21 words
The method of claim 1 , wherein the group of storage blocks comprises more than one stripe in a RAID group.
Claim 8
Dependent Claim 18 words
The method of claim 6 , wherein the group of storage blocks comprises more than one contiguous stripe.
Claim 9
Dependent Claim 40 words
The method of claim 7 , further comprising transmitting the association and the data to the plurality of storage devices to store each data block at the respective one of the storage blocks of the more than one contiguous stripe.
Claim 10
Dependent Claim 40 words
The method of claim 6 , wherein the plurality of storage devices comprises more than one RAID group, and defining the group of storage blocks comprises defining the group of storage blocks from storage blocks in a first RAID group.
Claim 11
Dependent Claim 39 words
The method of claim 9 , further comprising defining a second group of storage blocks in a second RAID group for association with data associated with a second plurality of write requests for processing of a second write transaction.
Claim 12
Dependent Claim 26 words
The method of claim 1 , further comprising queuing a plurality of associations by the storage device manager for processing of a plurality of write transactions.
Claim 13
Dependent Claim 34 words
The method of claim 11 , further comprising processing the plurality of write transactions by the storage manager in an order derived from a plurality of priorities associated with the plurality of write transactions.
Claim 14
Dependent Claim 28 words
The method of claim 1 , wherein the group of storage blocks comprises a same quantity of storage blocks in each one of the plurality of storage devices.
Claim 15
Dependent Claim 18 words
The method of claim 13 , wherein each of the plurality of storage blocks comprises contiguous storage blocks.
Claim 16
Dependent Claim 18 words
The method of claim 1 , wherein the group of storage blocks comprises allocated and unallocated storage blocks.
Claim 17
Dependent Claim 44 words
The method of claim 15 , wherein defining the group further comprises selecting an unallocated storage block having a lowest block identifier of any unallocated storage block as a storage block having a lowest storage block identifier of any storage block in the group.
Claim 18
Dependent Claim 15 words
The method of claim 1 , wherein the write requests comprise data to be written.
Claim 19
Independent Claim 104 words
A device for controlling storage of data in a plurality of storage devices each having storage blocks configured in a plurality of parallel stripes, the device comprising: a buffer collecting write requests, each request associated with data blocks; a processor defining a group of storage blocks, the group having a plurality of storage blocks in each of the plurality of storage devices, the processor associating each data block with a respective one of the storage blocks across the plurality of stripes for a single write transaction; and a transmitter transmitting an association to a storage device manager for processing of the single write transaction.
Claim 20
Independent Claim 104 words
A device for controlling storage of data in a plurality of storage devices each having storage blocks configured in a plurality of parallel stripes, the device comprising: a buffer collecting write requests, each request associated with data blocks; a processor defining a group of storage blocks, the group having a plurality of storage blocks in each of the plurality of storage devices, the processor associating each data block with a respective one of the storage blocks across the plurality of stripes for a single write transaction; and a transmitter transmitting an association to a storage device manager for processing of the single write transaction.
Claim 21
Independent Claim 104 words
A device for controlling storage of data in a plurality of storage devices each having storage blocks configured in a plurality of parallel stripes, the device comprising: means for buffering a plurality of write requests associated with data blocks for a single write transaction; means for defining a group of storage blocks, the group having a plurality of storage blocks in each of the plurality of storage devices; and means for associating each data block with a respective one of the storage blocks across the plurality of stripes, for transmitting an association to a storage device manager for processing of the single write transaction.
Claim 22
Independent Claim 104 words
A device for controlling storage of data in a plurality of storage devices each having storage blocks configured in a plurality of parallel stripes, the device comprising: means for buffering a plurality of write requests associated with data blocks for a single write transaction; means for defining a group of storage blocks, the group having a plurality of storage blocks in each of the plurality of storage devices; and means for associating each data block with a respective one of the storage blocks across the plurality of stripes, for transmitting an association to a storage device manager for processing of the single write transaction.
Claim 23
Dependent Claim 101 words
A computer readable media, comprising: the computer readable media containing instructions for execution in a processor for the practice of the method of, buffering a plurality of write requests associated with data blocks for a single write transaction; defining a group of storage blocks, the group comprising a plurality of storage blocks configured in a plurality of parallel stripes in each of a plurality of storage devices; and associating each data block with a respective one of the storage blocks across the plurality of stripes, for transmitting an association to a storage device manager for processing of the single write transaction.
Claim 24
Dependent Claim 101 words
A computer readable media, comprising: the computer readable media containing instructions for execution in a processor for the practice of the method of, buffering a plurality of write requests associated with data blocks for a single write transaction; defining a group of storage blocks, the group comprising a plurality of storage blocks configured in a plurality of parallel stripes in each of a plurality of storage devices; and associating each data block with a respective one of the storage blocks across the plurality of stripes, for transmitting an association to a storage device manager for processing of the single write transaction.
Claim 25
Independent Claim 76 words
A method for controlling storage of data, comprising: receiving one or more write requests associated with data blocks; receiving topological information associated with storage blocks configured in a plurality of parallel stripes of a storage system; associating the data blocks with one or more storage blocks across the plurality of stripes as an association; and writing the data blocks, in response to the association, to the one or more storage devices in a single write request.
Claim 26
Independent Claim 76 words
A method for controlling storage of data, comprising: receiving one or more write requests associated with data blocks; receiving topological information associated with storage blocks configured in a plurality of parallel stripes of a storage system; associating the data blocks with one or more storage blocks across the plurality of stripes as an association; and writing the data blocks, in response to the association, to the one or more storage devices in a single write request.
Claim 27
Dependent Claim 16 words
The method of claim 21 , further comprising: transmitting the association to a storage device manager.
Claim 28
Dependent Claim 17 words
The method of claim 21 , further comprising: associating each data block with a single storage block.
Claim 29
Dependent Claim 15 words
The method of claim 21 , further comprising: storing the data blocks in the association.
Claim 30
Dependent Claim 19 words
The method of claim 21 , further comprising: storing the data blocks in a memory of the storage system.
Claim 31
Dependent Claim 14 words
The method of claim 21 , further comprising: creating an array as the association.
Claim 32
Dependent Claim 19 words
The method of claim 21 , further comprising: buffering a plurality of write requests into the single write request.
Claim 33
Dependent Claim 28 words
The method of claim 27 , further comprising: buffering, in a buffer, the plurality of write requests into the single write request until a predetermined criteria is met.
Claim 34
Dependent Claim 16 words
The method of claim 28 , further comprising: meeting the criteria when a buffer is full.
Claim 35
Dependent Claim 21 words
The method of claim 28 , further comprising: meeting the criteria when the single write request is a predetermined logical length.
Claim 36
Dependent Claim 21 words
The method of claim 30 , further comprising: receiving topological information of a plurality of storage devices of the storage system.
Claim 37
Dependent Claim 18 words
The method of claim 31 , further comprising: using a RAID system as the plurality of storage devices.
Claim 38
Dependent Claim 17 words
The method of claim 21 , further comprising: using a plurality of disks for the storage system.
Claim 39
Dependent Claim 16 words
The method of claim 21 , further comprising: transmitting the association to the storage device manager.
Claim 40
Dependent Claim 18 words
The method of claim 21 , further comprising: organizing the association as a combination of columns and rows.
Claim 41
Dependent Claim 15 words
The method of claim 35 , further comprising: associating each column with a storage device.
Claim 42
Dependent Claim 18 words
The method of claim 36 , further comprising: associating each row with a stripe of the storage device.
Claim 43
Dependent Claim 22 words
The method of claim 37 , further comprising: arranging the association as a plurality of stripes on a plurality of storage devices.
Claim 44
Dependent Claim 128 words
A storage system, comprising: a file system, the file system to receive one of more write requests associated with data blocks; a storage device manager, the storage device manager to generate topological information of storage blocks configured in a plurality of parallel stripes of one or more storage devices, and to send the topological information to the file system; and an association generated in the file system, the association to associate the data blocks with one or more storage blocks across the plurality of stripes of the one or more storage devices, the association to be sent to the storage device manager, the storage device manager to write the data blocks, in response to the association, to the one or more storage blocks as a single write request.
Claim 45
Dependent Claim 128 words
A storage system, comprising: a file system, the file system to receive one of more write requests associated with data blocks; a storage device manager, the storage device manager to generate topological information of storage blocks configured in a plurality of parallel stripes of one or more storage devices, and to send the topological information to the file system; and an association generated in the file system, the association to associate the data blocks with one or more storage blocks across the plurality of stripes of the one or more storage devices, the association to be sent to the storage device manager, the storage device manager to write the data blocks, in response to the association, to the one or more storage blocks as a single write request.
Claim 46
Dependent Claim 21 words
The storage system of claim 39 , further comprising: an association that associates each data block with a single storage block.
Claim 47
Dependent Claim 27 words
The storage system of claim 39 , further comprising: a memory to buffer the data blocks for the write request to the one or more storage devices.
Claim 48
Dependent Claim 19 words
The storage system of claim 39 , further comprising: a memory to store the association containing the data blocks.
Claim 49
Dependent Claim 17 words
The storage system of claim 39 , further comprising: one or more storage devices having storage blocks.
Claim 50
Dependent Claim 14 words
The storage system of claim 39 , further comprising: an array as the association.
Claim 51
Dependent Claim 23 words
The storage system of claim 39 , further comprising: a buffer in the file system to receive the one or more write requests.
Claim 52
Dependent Claim 18 words
The storage system of claim 39 , further comprising: an arrangement of columns and rows in the association.
Claim 53
Dependent Claim 22 words
The storage system of claim 46 , further comprising: each column representing a storage device of the one or more storage devices.
Claim 54
Dependent Claim 21 words
The storage system of claim 46 , further comprising: each row representing a stripe of the one or more storage devices.
Claim 55
Dependent Claim 20 words
The storage system of claim 39 , further comprising: a plurality of disks as the one or more storage devices.
Claim 56
Dependent Claim 18 words
The storage system of claim 39 , further comprising: a RAID system as the plurality of storage devices.
Claim 57
Dependent Claim 80 words
A storage system, comprising: means for receiving one or more write requests associated with data blocks; means for receiving topological information associated with storage blocks configured in a plurality of parallel stripes of a storage system; means for associating the data blocks with one or more storage blocks across the plurality of stripes as an association; and means for writing the data blocks, in response to the association, to the one or more storage devices in a single write request.
Claim 58
Dependent Claim 80 words
A storage system, comprising: means for receiving one or more write requests associated with data blocks; means for receiving topological information associated with storage blocks configured in a plurality of parallel stripes of a storage system; means for associating the data blocks with one or more storage blocks across the plurality of stripes as an association; and means for writing the data blocks, in response to the association, to the one or more storage devices in a single write request.
Claim 59
Dependent Claim 91 words
A computer readable media, comprising: the computer readable media containing instructions for execution in a processor for the practice of the method of, receiving one or more write requests associated with data blocks; receiving topological information associated with storage blocks configured in a plurality of parallel stripes of a storage system; associating the data blocks with one or more storage blocks across the plurality of stripes as an association; and writing the data blocks, in response to the association, to the one or more storage devices in a single write request.
Claim 60
Dependent Claim 91 words
A computer readable media, comprising: the computer readable media containing instructions for execution in a processor for the practice of the method of, receiving one or more write requests associated with data blocks; receiving topological information associated with storage blocks configured in a plurality of parallel stripes of a storage system; associating the data blocks with one or more storage blocks across the plurality of stripes as an association; and writing the data blocks, in response to the association, to the one or more storage devices in a single write request.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2010-04-02 2010-10-02 2011-04-03 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2014-04-02 2014-10-02 2015-04-03 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2018-04-02 2018-10-02 2019-04-03 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag