Disk storage system and data update method used therefor
First Claim
Patent Images
1. A disk storage system comprising:
- N (N is a positive integer of two or more) disk storages;
a write buffer having a storage capacity corresponding to N*K (K is an integer indicating the number of blocks);
buffer management means for managing logical addresses that are included in data to be written in the write buffer;
means for writing (N*K−
1) write block data into (N*K−
1) blocks of the write buffer, the writing means rearranging, when a plurality of write block data whose logical addresses are contiguous is detected by the buffer management means, the plurality of write block data into contiguous blocks of the write buffer and writing the rearranged write block data in the write buffer;
means for generating a logical address tag block corresponding to the write block data from the logical addresses of the (N*K−
1) write block data and time stamps indicating the write time, and writing the generated logical address tag block into the remaining one block in the write buffer; and
means for contiguously storing, as a single stripe, the (N*K−
1) write block data and the logical address tag block written into the write buffer into empty areas of the N disk storages.
1 Assignment
0 Petitions
Accused Products
Abstract
A disk storage system with a RAID architecture includes a write buffer having a storage capacity corresponding to one stripe, a buffer management table, and a controller. The controller stores, in the write buffer, logical blocks whose data lengths are changed, as needed, and delays updating of the logical blocks stored in the write buffer in data update processing until the number of stored logical blocks reaches N*K−1 The controller then performs a continuous write operation to sequentially write N*K logical blocks, obtained by adding a logical address tag block to the N*K−1logical blocks, in contiguous areas of empty areas different from the areas in which the old data are stored.
-
Citations
17 Claims
-
1. A disk storage system comprising:
-
N (N is a positive integer of two or more) disk storages;
a write buffer having a storage capacity corresponding to N*K (K is an integer indicating the number of blocks);
buffer management means for managing logical addresses that are included in data to be written in the write buffer;
means for writing (N*K−
1) write block data into (N*K−
1) blocks of the write buffer, the writing means rearranging, when a plurality of write block data whose logical addresses are contiguous is detected by the buffer management means, the plurality of write block data into contiguous blocks of the write buffer and writing the rearranged write block data in the write buffer;
means for generating a logical address tag block corresponding to the write block data from the logical addresses of the (N*K−
1) write block data and time stamps indicating the write time, and writing the generated logical address tag block into the remaining one block in the write buffer; and
means for contiguously storing, as a single stripe, the (N*K−
1) write block data and the logical address tag block written into the write buffer into empty areas of the N disk storages.- View Dependent Claims (2, 3, 4, 5, 6, 7)
means for, in response to a read request from a host system, reading, in the write buffer, the write block data and the logical address tag block of the stripe corresponding to the read request; and
means for, when the logical addresses of the logical address tag block are contiguous, rearranging the plurality of write block data into contiguous blocks in the write buffer, forming (N*K−
1) block data together with other write block data, writing the formed (N*K−
1) block data in the write buffer, generating and writing the logical address tag block in the write buffer.
-
-
6. The system according to claim 1, further comprising:
-
means for reading the write block data and the logical address tag blocks from a plurality of stripes written in the N disk storages;
means for detecting only effective write block data from the logical address tag blocks; and
means for arranging and writing the data whose logical addresses are contiguous in the contiguous blocks of the write buffer when the effective write block data is written in (N*K−
1) blocks of the write buffer.
-
-
7. The system according to claim 6, further comprising:
-
means for rearranging and writing in the remaining one block of the write buffer the logical address tag blocks in conformity to the write arrangement of the write block data; and
means for arranging the rearranged logical address tag blocks and (N*K−
1) write block data into a single stripe of data and contiguously storing the single stripe of data in other empty areas of the N disk storages.
-
-
8. A disk storage system, comprising:
-
(N+1) (N is a positive integer of two or more) disk storages;
a write buffer having a storage capacity corresponding to N*K (K is an integer indicating the number of blocks);
buffer management means for managing logical addresses that are included in data to be written in the write buffer;
means for writing (N*K−
1) write block data into (N*K−
1) blocks of the write buffer, the writing means rearranging, when a plurality of block data whose logical addresses are contiguous is detected by the buffer management means, the plurality of block data into contiguous blocks of the write buffer and writing the rearranged write block data into the write buffer;
means for generating a logical address tag block corresponding to the write block data from the logical addresses of the (N*K−
1) write blocks and time stamps indicating the write time, and writing the generated logical address tag block into the remaining one block in the write buffer;
means for generating K parity blocks corresponding to K stripe data consisting of the (N*K−
1) write block data and the logical address tag block by using an exclusive OR operation; and
means for contiguously storing, as a single stripe, the (N*K−
1) write data, the logical address tag block and the K parity blocks into empty areas of the (N+1) disk storages.
-
-
9. A data update method applied to a disk storage system constituted by N disk storages (N is a positive integer of two or more), comprising the steps of:
-
writing (N*K−
1) write block data in (N*K−
1) blocks of a write buffer having a storage capacity corresponding to N*K (K is an integer indicating the number of blocks), the writing step rearranging, when a plurality of block data whose logical addresses are contiguous is detected by a buffer management means managing logical addresses that the write block data includes, the plurality of block data into contiguous blocks of the write buffer and writing the rearranged block data in the write buffer;
generating a logical address tag block corresponding to the write block data from the logical addresses of the (N*K−
1) write blocks and time stamps indicating the write time, and writing the generated logical address tag block into the remaining one block in the write buffer; and
contiguously storing, as a single stripe, the (N*K−
1) write block data and the logical address tag block written into the write buffer into empty areas of the N disk storage.- View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
reading, in response to a read request from a host system, in the write buffer, the write block data and the logical address tag block of the stripe corresponding to the read request;
forming, when the logical addresses of the logical address tag block are contiguous, the plurality of write block data into contiguous blocks in the write buffer;
arranging (N*K−
1) block data together with other write block data, writing the arranged (N*K−
1) block data in the write buffer, and generating and writing the logical address tag block in the write buffer.
-
-
13. The method according to claim 9, further comprising:
-
reading the write block data and the logical address tag blocks from a plurality of stripes written in the N disk storages;
detecting only effective write block data from the logical address tag blocks; and
allocating the data whose logical addresses are contiguous to the contiguous blocks of the write buffer when the effective write block data is written in the (N*K−
1) blocks of the write buffer.
-
-
14. The method according to claim 13, further comprising:
-
rearranging and writing in the remaining one block of the write buffer the logical address tag blocks in conformity to the write arrangement of the write block data; and
arranging the rearranged logical address tag blocks and the (N*K−
1) write block data into a single stripe of data and contiguously storing the single stripe of data in other empty areas of the N disk storages.
-
-
15. The method according to claim 9, further comprising the steps of:
-
reading logical address tag blocks of all the stripes from the N disk storages when a system is powered;
forming a conversion map for converting a logical address to a physical address by using the logical address as a hash key; and
executing a read operation by accessing a disk storage storing an effective write block data by using the conversion map in response to a read request from a host system.
-
-
16. The method according to claim 9, further comprising the steps of:
-
reading logical address tag blocks of all the stripes from the N disk storages when a system is powered;
forming a conversion map for converting a logical address to a physical address having a tree structure in which the logical address is two-branched; and
executing a read operation by accessing a disk storage storing an effective write block data by using the conversion map in response to a read request from a host system.
-
-
17. A data update method applied to a disk storage system constituted by (N+1) (N is a positive integer of two or more) disks storages, comprising the steps of:
-
writing (N*K−
1) write block data in (N*K−
1) blocks of a write buffer having a storage capacity corresponding to N*K (K is an integer indicating the number of blocks), the writing step rearranging, when a plurality of block data whose logical addresses are contiguous is detected by a buffer management means managing logical addresses that the write block data have, the plurality of block data into contiguous blocks of the write buffer and writing the rearranged block data in the write buffer;
generating a logical address tag block corresponding to the write block data from the logical addresses, of the (N*K−
1) write blocks and time stamps indicating the write time, and writing the generated logical address tag block into the remaining one block in the write buffer;
generating K parity blocks corresponding to K stripe data consisting of the (N*K−
1) write block data and the logical address tag block by using an exclusive OR operation; and
contiguously storing, as a single stripe, the (N*K−
1) write block data, the logical address tag block and the K parity blocks into empty areas of the (N+1) disk storages.
-
Specification