Patent ID: 8229894

Claim:
A storage system, comprising: a storage device that stores data; and a controller that has the storage device as an access target, the controller comprising a snapshot processing unit that manages data stored in logical units, which are formed from among the data stored in the storage device, by linking the data to plural generations of snapshots, the snapshot processing unit managing the data in the logical units of the plural generations as a set of common data that each of the generations have in common and difference data, which is variations between each of the generations of logical units, and selects, when updating data in the logical units in accordance with the snapshot of each generation, a forward differential method for writing update data that is newer than the data stored in the set of common data in accordance with said updating to a forward differential data storage area, or a backward differential method for copying pre-update data as old data that is older than the data stored in the set of common data to a backward differential data storage area, wherein the logical units are formed from a combination of a baseline and common logical unit for the set of common data in a base volume, and, from among the difference data, one of forward differential data for managing the update data written using the forward differential method and backward differential data for managing the old data using the backward differential method; and wherein difference conversion that converts forward differential data to backward differential data for the snapshot of each generation is carried out by the snapshot processing unit writing the forward differential data, which is based on update data generated in an original logical unit where original data exists and the snapshot that together with the said original logical unit forms the data of the snapshot according to the forward differential method, to the base volume, saving the old data that existed in the base volume before that update data was written as backward differential data in the backward differential data storage area, and then deleting the forward differential data after completion of writing the forward differential data to the base volume.