Claims Analysis
Total Claims: 20
Claim 1
Independent Claim
142 words
In an array of storage devices accessible from a host computer system, wherein data stored by said host computer system on each one of said storage devices is distributed by said array across all storage devices in said array, a method of organizing storage devices within said array, said method comprising the steps of: (a) organizing data blocks on said storage devices into at least one block group and a block pool, wherein each of said storage devices contains at least part of said block group and at least part of said block pool; (b) when data is written to said array, allocating blocks from said block pool to form a group of allocated blocks to store said data; (c) when data is not being written to said array, placing data from said allocated blocks into said at least one block group.
Claim 2
Dependent Claim
142 words
In an array of storage devices accessible from a host computer system, wherein data stored by said host computer system on each one of said storage devices is distributed by said array across all storage devices in said array, a method of organizing storage devices within said array, said method comprising the steps of: (a) organizing data blocks on said storage devices into at least one block group and a block pool, wherein each of said storage devices contains at least part of said block group and at least part of said block pool; (b) when data is written to said array, allocating blocks from said block pool to form a group of allocated blocks to store said data; (c) when data is not being written to said array, placing data from said allocated blocks into said at least one block group.
Claim 3
Dependent Claim
22 words
The method of claim 1 wherein step (c) comprises the step of copying said data to said at least one block group.
Claim 4
Dependent Claim
25 words
The method of claim 1 wherein step (c) comprises the step of exchanging blocks from said at least one block group with said allocated blocks.
Claim 5
Dependent Claim
26 words
The method of claim 1 wherein a size of each of said at least one block group is dynamically changable by a user of said method.
Claim 6
Dependent Claim
27 words
The method of claim 1 wherein a protection status of each of said at least one block group is dynamically changable by a user of said method.
Claim 7
Dependent Claim
34 words
The method of claim 1 wherein data stored in said at least one block group is stored in a first configuration and data stored in said allocated blocks is stored in a second configuration.
Claim 8
Dependent Claim
18 words
The method of claim 6 wherein said first configuration and said second configuration are selected by said array.
Claim 9
Dependent Claim
63 words
The method of claim 1 wherein step (b) further comprises the steps of: (b1) when said data being written is not located sequentially after data previously written, allocating more blocks than necessary to contain said data being written; and (b1) when said data being written is located sequentially after data previously written, writing said data into allocated blocks containing said previously written data.
Claim 10
Dependent Claim
62 words
The method of claim 1 wherein step (b) further comprises the steps of: (b1) when said data being written is no larger than an amount of data that can be stored on a single disk within said array, allocating an amount of said blocks sufficient to allow said data to be written twice, wherein said data is duplicated within said allocated blocks.
Claim 11
Dependent Claim
52 words
The method of claim 1 wherein step (b) further comprises the steps of: (b1) when said data being written is an amount of data that requires writing to all disks of said array, writing said data in said at least one block group, wherein no blocks are allocated from said block pool.
Claim 12
Dependent Claim
277 words
In an array of storage devices accessible from a host computer system, wherein data stored by said host computer system on each one of said storage devices is distributed by said array across all storage devices in said array, a method of organizing storage devices within said array, said method comprising the steps of: (a) organizing data blocks on said storage devices into at least one block group and a block pool, wherein each of said storage devices contains at least part of said block group and at Least part of said block pool; (b) when data is written to said array and said data is an amount of data that requires writing to all disks of said array, writing said data in said at least one block group; (c) when data is written to said array and said data is no larger than an amount of data that can be stored on a single disk within said array, allocating an amount of blocks from said block pool to form a group of allocated blocks, wherein said amount of blocks is sufficient to allow said data to be written twice, wherein said data is duplicated within said allocated blocks; (d) when data is written to said array and said data is an amount of data that requires writing to more than one disk of said array, but does not require writing to all disks of said array, allocating blocks from said block pool to form a group of allocated blocks to store said data; (e) when data is not being written to said array, placing data from said allocated blocks into said at least one block group.
Claim 13
Dependent Claim
277 words
In an array of storage devices accessible from a host computer system, wherein data stored by said host computer system on each one of said storage devices is distributed by said array across all storage devices in said array, a method of organizing storage devices within said array, said method comprising the steps of: (a) organizing data blocks on said storage devices into at least one block group and a block pool, wherein each of said storage devices contains at least part of said block group and at Least part of said block pool; (b) when data is written to said array and said data is an amount of data that requires writing to all disks of said array, writing said data in said at least one block group; (c) when data is written to said array and said data is no larger than an amount of data that can be stored on a single disk within said array, allocating an amount of blocks from said block pool to form a group of allocated blocks, wherein said amount of blocks is sufficient to allow said data to be written twice, wherein said data is duplicated within said allocated blocks; (d) when data is written to said array and said data is an amount of data that requires writing to more than one disk of said array, but does not require writing to all disks of said array, allocating blocks from said block pool to form a group of allocated blocks to store said data; (e) when data is not being written to said array, placing data from said allocated blocks into said at least one block group.
Claim 14
Dependent Claim
22 words
The method of claim 11 wherein step (e) comprises the step of copying said data to said at least one block group.
Claim 15
Dependent Claim
25 words
The method of claim 11 wherein step (e) comprises the step of exchanging blocks from said at least one block group with said allocated blocks.
Claim 16
Dependent Claim
26 words
The method of claim 11 wherein a size of each of said at least one block group is dynamically changeable by a user of said method.
Claim 17
Dependent Claim
27 words
The method of claim 11 wherein a protection status of each of said at least one block group is dynamically changeable by a user of said method.
Claim 18
Dependent Claim
34 words
The method of claim 11 wherein data stored in said at least one block group is stored in a first configuration and data stored in said allocated blocks is stored in a second configuration.
Claim 19
Dependent Claim
18 words
The method of claim 16 wherein said first configuration and said second configuration are selected by said array.
Claim 20
Dependent Claim
63 words
The method of claim 11 wherein step (c) further comprises the steps of: (c1) when said data being written is not located sequentially after data previously written, allocating more blocks than necessary to contain said data being written; and (c1) when said data being written is located sequentially after data previously written, writing said data into allocated blocks containing said previously written data.