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
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.
References Cited (Backward Citations)
US3876978A
Cited
US4092732A
Cited
US4201976A
Cited
US4205324A
Cited
US4517663A
Cited
US4467421A
Cited
US4375100A
Cited
US4825403A
Cited
US4688221A
Cited
US4849929A
Cited
US4817035A
Cited
US4667326A
Cited
US5202979A
Cited
US4722085A
Cited
US4755978A
Cited
US4805098A
Cited
US4761785B1
Cited
US4761785A
Cited
USRE34100E
Cited
US4775978A
Cited
US4796260A
Cited
US5257367A
Cited
US4849974A
Cited
US4849976A
Cited
US4837680A
Cited
US4870643A
Cited
US4847842A
Cited
US4899342A
Cited
US4989205A
Cited
US5077736A
Cited
US4989206A
Cited
US5128810A
Cited
US5218689A
Cited
US5148432A
Cited
US5163131A
Cited
US5101492A
Cited
US5233618A
Cited
US5088081A
Cited
US5210860A
Cited
US5166936A
Cited
US5208813A
Cited
US5235601A
Cited
US5283880A
Cited
US5274799A
Cited
US5579475A
Cited
US5179704A
Cited
US5351246A
Cited
US5237658A
Cited
US5305326A
Cited
US5410667A
Cited
US5459842A
Cited
US5819292A
Cited
US6289356B1
Cited
US6038570A
Cited
US5948110A
Cited
US5537567A
Cited
US5623595A
Cited
US6138126A
Cited
US5963962A
Cited
US5812753A
Cited
US5862158A
Cited
US5884098A
Cited
US5805788A
Cited
US5860003A
Cited
US5950225A
Cited
US6158017A
Cited
US6148368A
Cited
US6092215A
Cited
US6223300B1
Cited
US6138201A
Cited
US6101568A
Cited
US6298415B1
Cited
US6195727B1
Cited
US6490664B1
Cited
US6532548B1
Cited
US6581185B1
Cited
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 |