Claims Analysis
Total Claims: 6
Claim 1
Independent Claim
326 words
A method of expanding a striped hard disk array for a computer system during computer system operation, said hard disk array controlled by a hard disk controller which reports to a computer operating system an original data storage capacity of the array when the array is in a first fully operational configuration and which receives requests for access to the array from said operating system, the first fully operational configuration of the array having at least two original physical disk drives with data striped across the disks, wherein the corresponding stripe for each disk in the array is one row, the method comprising the steps of: (a) adding at least one added physical disk drive to the two original disk drives in the disk array to create an upgraded data storage capacity in a second fully operational configuration of the array, the second fully operational configuration comprising the original disk drives and the added disk drive, said upgraded storage capacity being an increase from said original data storage capacity; (b) selecting a row in the disk array for expansion to incorporate a portion of the added disk; (c) waiting for a predetermined delay period during which the operating system issues no requests for access to the disk array; (d) preventing access by the operating system to the disk array once the predetermined period expires; (e) selecting a data block in the original disk drives in the disk array for expansion; (f) relocating said data block to fill a storage location created in the selected row by the addition of the added disk drive; (g) identifying with a first indicator the next free location in the array to be expanded; (h) identifying with a second indicator the next data block in the array to be relocated; (i) permitting the operating system to access the hard disk array; and (j) reporting to the operating system said upgraded storage capacity of the second fully operational configuration of the array.
Claim 2
Independent Claim
326 words
A method of expanding a striped hard disk array for a computer system during computer system operation, said hard disk array controlled by a hard disk controller which reports to a computer operating system an original data storage capacity of the array when the array is in a first fully operational configuration and which receives requests for access to the array from said operating system, the first fully operational configuration of the array having at least two original physical disk drives with data striped across the disks, wherein the corresponding stripe for each disk in the array is one row, the method comprising the steps of: (a) adding at least one added physical disk drive to the two original disk drives in the disk array to create an upgraded data storage capacity in a second fully operational configuration of the array, the second fully operational configuration comprising the original disk drives and the added disk drive, said upgraded storage capacity being an increase from said original data storage capacity; (b) selecting a row in the disk array for expansion to incorporate a portion of the added disk; (c) waiting for a predetermined delay period during which the operating system issues no requests for access to the disk array; (d) preventing access by the operating system to the disk array once the predetermined period expires; (e) selecting a data block in the original disk drives in the disk array for expansion; (f) relocating said data block to fill a storage location created in the selected row by the addition of the added disk drive; (g) identifying with a first indicator the next free location in the array to be expanded; (h) identifying with a second indicator the next data block in the array to be relocated; (i) permitting the operating system to access the hard disk array; and (j) reporting to the operating system said upgraded storage capacity of the second fully operational configuration of the array.
Claim 3
Dependent Claim
103 words
The method as defined in claim 1, further comprising the steps of: waiting a predetermined delay period during which the operating system issues no requests for access to the disk array if a request for access to the disk array was pending at the step (i); preventing access to the disk array; repeating steps (e) through (i) for the remaining data blocks in the disk array until all rows incorporate the added disk drive, wherein once the entire array is expanded, each disk will have an available storage space at its physical end; and configuring the available storage space as a new volume.
Claim 4
Dependent Claim
107 words
The method of claim 1, wherein the disk array is a RAID 4 system having existing parity for each row in the array which contains data, said parity stored in the last disk in the array for each row, the method further comprising the steps of: copying the existing parity for a stripe of data to a temporary storage location; setting a flag to indicate that the existing parity is located in the temporary storage location; calculating a new parity for said row incorporating a portion of the new disk drive; storing the new parity in the last disk in the selected row; and clearing said flag.
Claim 5
Dependent Claim
101 words
The method of claim 1, wherein said striped disk array is a RAID 5 system having parity for each stripe in the array, said parity for each stripe distributed among the disks in the array, the method further comprising the steps of: copying the selected row of data, including the parity, from the hard disk array to a temporary storage location; setting a flag to indicate that the selected row is located in the temporary storage location; calculating a new parity for the expanded row; storing the new parity in a predetermined disk in the expanded row; and clearing said flag.
Claim 6
Dependent Claim
102 words
The method of claim 1, wherein a disk access request is issued to the hard disk controller while the expansion is in progress, further comprising the steps of: determining if the data requested is stored before or after the row indicated by said first indicator; and accessing the appropriate location in the disk array by calculating the location of the data accounting for the disks in the expanded array if the request is before the location referenced by the first indicator or accounting for the disks in the original array if the request is after the location references by the first indicator.