Patent ID: 8285953
Filing Date: 2012-10-09
Classification: G06F

Abstract:
1. A storage system that receives a write command and a write data element, which is one unit of write data, from a computer, comprising: a physical storage device that constitutes the basis of a journal area and one or more logical volumes comprising a first logical volume; a controller that receives the write command and the write data element from the computer, and writes the write data element to the first logical volume specified from the write command; and a memory, wherein the journal area is a storage area in which is stored a journal data element, which is a data element that is stored in any block of a plurality of blocks configuring a logical volume, or a data element that is written to the block, wherein the controller comprises: a size receiver that receives a write unit size, which is the size of the write data element received from the computer; and a size setting unit that sets the received write unit size in the memory for the one or more logical volumes, wherein the size of a journal data element stored in the journal area and based on the set write unit size is the write unit size, wherein, in addition to the first logical volume, there is a second logical volume that configures a pair with the first logical volume, wherein there is a journal management area that is a storage area based on the physical storage device, wherein first sub-management information is stored in the journal management area for the first logical volume, wherein second sub-management information for each generation is stored in the journal management area for the second logical volume, wherein the first sub-management information comprises first difference management information that has respective information elements corresponding to respective blocks configuring the first logical volume, the respective information elements indicate whether or not an update has occurred in a block corresponding to the information element, and the respective blocks are the set write unit size, wherein the second sub-management information comprises second difference management information that has respective information elements corresponding to respective blocks configuring the second logical volume, and data storage address information, the respective information elements indicate whether or not an update has occurred in the storage area corresponding to the information element, the respective blocks are the set write unit size, and the data storage address information indicates an address of a segment of the journal area, wherein the memory stores management information indicating locations of both the first sub-management information and the second sub-management information for each generation, and wherein the controller comprises: a write processor that receives the write command and the write data element from the computer, writes the write data element to a write-destination block inside the first logical volume specified from the write command, and if the information element corresponding to the write-destination block in the first difference management information is indicated as not updated, updates the information element to be updated; and a generation definition unit that executes (2-1) and (2-2) below when generation (i) of the first logical volume has been defined by the occurrence of a generation definition event: (2-1) adding, to the inside of the journal management area, the second sub-management information (j−1) comprising the second difference management information (j−1) corresponding to the generation (j−1) of the second logical volume, based on the write unit size for the second logical volume; and (2-2) executing (2-2-1) through (2-2-4) below for the respective information elements indicating that updating has been completed in the first difference management information: (2-2-1) updating an information element inside the second difference management information (j−1), which corresponds to an information element indicating that updating has been completed in the first difference management information, to an information element indicating that updating has been completed; (2-2-2) adding data storage address information to the second sub-management information, the added data storage address information indicating a save-destination segment address in the journal area of a data element stored in the block inside the second logical volume that is in the same location as the block corresponding to the information element indicating that updating has been completed in the first difference management information; (2-2-3) saving the data element stored in the block inside the second logical volume that is in the same location as the block corresponding to the information element indicating that updating has been completed in the first difference management information, to a segment inside the journal area indicated by the added data storage address information; and (2-2-4) writing, to a segment inside the second logical volume which is a save-source of the data element, the data element that corresponds to the information element indicating that updating has been completed in the first difference management information, and that is associated to the first logical volume, wherein an aggregate of data elements saved to the journal area in the (2-2-3) is inter-generational difference data (j−1) indicating the difference between the second logical volume of generation (j−1) and the second logical volume of generation (j−2), wherein a save-destination segment of the journal area in the (2-2-2) is a segment that is contiguous with a segment used as the save destination at a previous time, and wherein the generation definition unit executes the (2-2-1) through (2-2-4) in the address order of the blocks of the first logical volume.