US2006212625A1PendingUtilityA1

Storage system

Assignee: NAKAGAWA YUTAKAPriority: Mar 16, 2005Filed: May 16, 2005Published: Sep 21, 2006
Est. expiryMar 16, 2025(expired)· nominal 20-yr term from priority
G06F 3/064G06F 3/0608G06F 3/0623G06F 3/0689G06F 11/1435G06F 2201/84
47
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

Data transfer is performed to and from a host computer using a first block as the minimum unit. Data transfer is performed to and from a storage area using a second block as the minimum unit. A second block set of the storage area stores data obtained from performing data conversion processes that change the size of the data itself, with a first block set as the unit. Here a correspondence relationship is generated between the first block set and the second block set. In response to a read request from the host computer, a second block set, which corresponds to the first block set that includes the first block that is requested, is read, a reverse-conversion process is performed, and the data is sent to the host computer.

Claims

exact text as granted — not AI-modified
1 . A storage system for providing a storage area that stores data to a host computer, comprising: 
 a data storage unit having a storage area for storing data; and    a control unit configured to control data transfer between the host computer and the storage area, wherein    the control unit performs: 
 receiving data from and sending data to the host computer according to a logical storage location expressed in units of first blocks of a specific size, the logical storage location being specified by the host computer; and  
 storing data to and reading data from the storage area in units of second blocks of a specific size, and  
   the control unit has a conversion storage mode for performing a data conversion process on data of interest for each first block set in the data-of interest to generate a second block set corresponding to each first block set, and storing the second block set in the storage area, the data conversion process changing size of the data of interest, the first block set including N first blocks where N is an integer greater than or equal to 1, the second block set including one or more second blocks, and wherein,    the storage system further comprises:    a correspondence relationship memory unit configured to store a block correspondence relationship that indicates correspondence relationship between a plurality of the first block sets and a plurality of the second block sets, and wherein    when the control unit has received a data read request for a specific first block from the host computer, the control unit executes: 
 referencing the block correspondence relationship to identify a second block set to be read associated with a particular first block set that includes the requested first block;  
 reading out the second block set to be read;  
 performing a reverse conversion process of the data conversion process on the readout second block set; and  
 sending data of the requested first block to the host computer.  
   
   
   
       2 . A storage system according to  claim 1 , wherein 
 the control unit further performs an update process for a first block set to be updated including a specific first block when the control unit has received a data update storage request regarding the specific first block from the host computer, wherein    in the update process, the control unit references the block correspondence relationship to determine whether or not updating has been requested for all of the first blocks included in the first block set to be updated, wherein    when the updating is not requested for all of the first blocks in the first block set to be updated, the control unit performs: 
 reading a second block set associated with the first block set to be updated,  
 performing the reverse conversion process on the second block set that has been read,  
 overwriting the requested first block on the data that is reverse-converted from the second block set, thereby generating an updated first block set,  
 generating an updated second block set by performing the conversion process on the updated first block set, and  
 storing the updated second block set in the storage area, and  
   the control unit writes the correspondence relationship between the first block set to be updated and the updated second block set to the block correspondence relationship.    
   
   
       3 . A storage system according to  claim 1 , wherein: 
 the storage area is capable of storing a plurality of different-version second block sets, the plurality of different-version second block sets being associated with a common first block set with an identical logical storage location; wherein    the block correspondence relationships include correspondence relationships between a logical storage location of the first block set associated with the plurality of different-version second block sets, and physical storage locations and versions of the plurality of different-version second block sets; wherein    the control unit performs a version readout process when the control unit has received a request for reading data regarding a specific first block and a specific version from the host computer, the version readout process including: 
 referencing the block correspondence relationship to identify a second block set associated with both a first block set that contains the requested first block and the requested version,  
 reading out the identified second block set,  
 performing the reverse conversion process on the identified second block set, and  
 sending data of the requested first block to the host computer.  
   
   
   
       4 . A storage system according to  claim 3 , wherein: 
 the control unit has a non-conversion storage mode for generating a non-converted block set comprising one or more second blocks from a first block set without performing the data conversion process, and storing the non-converted block set in the storage area; wherein    the control unit performs a conversion update process when the control unit has received a data update request regarding a specific first block from the host computer after storing the non-converted block set, the conversion update process including: 
 (i) storing updated data concerning a particular first block set including the requested first block in the storage area according to a selected one of the conversion storage mode and the non-conversion storage mode; and  
 (ii) reading out a non-converted block set that is equivalent to the particular first block set before the updating, and performing the data conversion process on the non-converted block set to generate a non-updated second block set, then storing the non-updated second block set to the storage area, and adding in the block correspondence relationship a three-way correspondence relationship between the particular first block set, the non-updated second block set, and a version of the non-updated second block set established according to specific rules.  
   
   
   
       5 . A storage system according to  claim 4;  wherein 
 in the conversion update process, the control unit generates a post-update non-converted block set including one or more second blocks without performing the data conversion process on the updated data of the particular first block set, and stores the post-update non-converted block set in the storage area, and    when the control unit has received a data read request without version specification from the host computer, the control unit reads out the post-update non-converted block set and sends requested first block data to the host computer.    
   
   
       6 . A storage system according to  claim 1;  wherein 
 the storage area is capable of storing a plurality of different-version second block sets, the plurality of different-version second block sets being associated with a common first block with an identical logical storage location, wherein    the block correspondence relationships include correspondence relationships between a logical storage location of a first block set including the first block associated with the plurality of different-version second block sets, and a physical storage location and a version of a different-version second block set, for each of the plurality of different-version second block sets; wherein,    the control unit performs a log update process when the control unit has received a data update request regarding one or more specific first blocks from the host computer, the log update process including: 
 performing the data conversion process on updated data of a first block set to be updated structured from the requested first blocks thereby generating a updated second block set;  
 storing the a updated second block set in the storage area; and  
 adding in the block correspondence relationship a three-way correspondence relationship between the first block set to be updated, the updated second block set, and a version of the updated second block set established according to specific rules, wherein  
   the control unit performs a version readout process when the control unit has received a data readout request regarding a specific first block and a specific version from the host computer, the version readout process including: 
 referencing the block correspondence relationship to identify a second block set associated with both a first block set that includes the requested first block and the requested version;  
 reading out the identified second block set;  
 performing the reverse conversion process on the second block set that has been read; and  
 sending data of the requested first block to the host computer.  
   
   
   
       7 . A storage system according to  claim 1 , wherein 
 the first block set block number N is a variable value.    
   
   
       8 . A storage system according to claims  1 , wherein 
 the data size of the second block is smaller than the data size of the first block.    
   
   
       9 . A method of providing a storage area that stores data to a host computer, the storage area which a storage system has, comprising the steps of: 
 (A) receiving data and sending data between the host computer and the storage system according to a logical storage location expressed in units of first blocks of a specific size, the logical storage location being specified by the host computer; and    (B) storing data to and reading data from the storage area in units of second blocks of a specific size, and    the step (B) includes the steps of    performing a process of a conversion storage mode for performing a data conversion process on data of interest for each first block set in the data-of interest to generate a second block set corresponding to each first block set, and storing the second block set in the storage area, the data conversion process changing size of the data of interest, the first block set including N first blocks where N is an integer greater than or equal to 1, the second block set including one or more second blocks, and wherein,    the providing method further comprises the step of    (C) generating a block correspondence relationship that indicates correspondence relationship between a plurality of the first block sets and a plurality of the second block sets, and wherein    the step (B) includes the steps of    responsive to a data read request for a specific first block from the host computer: 
 referencing the block correspondence relationship to identify a second block set to be read associated with a particular first block set that includes the requested first block;  
 reading out the second block set to be read;  
 performing a reverse conversion process of the data conversion process on the readout second block set; and  
 sending data of the requested first block to the host computer.  
   
   
   
       10 . A providing method according to  claim 9 , wherein 
 the step (B) includes the step of    performing an update process for a first block set to be updated including a specific first block responsive to a data update storage request regarding the specific first block from the host computer, the update process including: 
 referencing the block correspondence relationship to determine whether or not updating has been requested for all of the first blocks included in the first block set to be updated;  
 when the updating is not requested for all of the first blocks in the first block set to be updated: 
 reading a second block set associated with the first block set to be updated,  
 performing the reverse conversion process on the second block set that has been read,  
 overwriting the requested first block on the data that is reverse-converted from the second block set, thereby generating an updated first block set,  
 generating an updated second block set by performing the conversion process on the updated first block set,  
 storing the updated second block set in the storage area, and  
 writing the correspondence relationship between the first block set to be updated and the updated second block set to the block correspondence relationship.  
 
   
   
   
       11 . A providing method according to  claim 9 , wherein 
 the storage area is capable of storing a plurality of different-version second block sets, the plurality of different-version second block sets being associated with a common first block set with an identical logical storage location; wherein    the block correspondence relationships include correspondence relationships between a logical storage location of the first block set associated with the plurality of different-version second block sets, and physical storage locations and versions of the plurality of different-version second block sets; wherein    the step (B) includes the step of performing a version readout process responsive to a request for reading data regarding a specific first block and a specific version from the host computer, the version readout process including: 
 referencing the block correspondence relationship to identify a second block set associated with both a first block set that contains the requested first block and the requested version,  
 reading out the identified second block set,  
 performing the reverse conversion process on the identified second block set, and  
 sending data of the requested first block to the host computer.  
   
   
   
       12 . A providing method according to  claim 11 , wherein: 
 the step (B) includes the steps of 
 performing a process of a non-conversion storage mode for generating a non-converted block set comprising one or more second blocks from a first block set without performing the data conversion process, and storing the non-converted block set in the storage area; and  
 performing a conversion update process responsive to a data update request regarding a specific first block from the host computer after storing the non-converted block set, the conversion update process including: 
 (i) storing updated data concerning a particular first block set including the requested first block in the storage area according to a selected one of the conversion storage mode and the non-conversion storage mode; and  
 (ii) reading out a non-converted block set that is equivalent to the particular first block set before the updating, and performing the data conversion process on the non-converted block set to generate a non-updated second block set, then storing the non-updated second block set to the storage area, and adding in the block correspondence relationship a three-way correspondence relationship between the particular first block set, the non-updated second block set, and a version of the non-updated second block set established according to specific rules.  
 
   
   
   
       13 . A providing method according to  claim 12 , wherein 
 the conversion update process includes the steps of: 
 generating a post-update non-converted block set including one or more second blocks without performing the data conversion process on the updated data of the particular first block set; and  
 storing the post-update non-converted block set in the storage area, and  
   the step (B) includes the steps of 
 responsive to a data read request without version specification from the host computer: 
 reading out the post-update non-converted block set, and  
 sending requested first block data to the host computer.  
 
   
   
   
       14 . A providing method according to  claim 9 , wherein 
 the storage area is capable of storing a plurality of different-version second block sets, the plurality of different-version second block sets being associated with a common first block with an identical logical storage location, wherein    the block correspondence relationships include correspondence relationships between a logical storage location of a first block set including the first block associated with the plurality of different-version second block sets, and a physical storage location and a version of a different-version second block set, for each of the plurality of different-version second block sets; wherein,    the step (B) includes the step of 
 performing a log update process responsive to a data update request regarding one or more specific first blocks from the host computer, the log update process including: 
 performing the data conversion process on updated data of a first block set to be updated structured from the requested first blocks, thereby generating a updated second block set;  
 storing the a updated second block set in the storage area; and  
 adding in the block correspondence relationship a three-way correspondence relationship between the first block set to be updated, the updated second block set, and a version of the updated second block set established according to specific rules, wherein  
 
   the step (B) includes the step of 
 performing a version readout process responsive to a data readout request regarding a specific first block and a specific version from the host computer, the version readout process including: 
 referencing the block correspondence relationship to identify a second block set associated with both a first block set that includes the requested first block and the requested version;  
 reading out the identified second block set;  
 performing the reverse conversion process on the second block set that has been read; and  
 sending data of the requested first block to the host computer.  
 
   
   
   
       15 . A providing method according to  claim 9 , wherein 
 the first block set block number N is a variable value.    
   
   
       16 . A providing method according to  claim 9 , wherein 
 the data size of the second block is smaller than the data size of the first block.

Join the waitlist — get patent alerts

Track US2006212625A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.