Storage system
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-modified1 . 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.