| CPC G06F 3/0659 (2013.01) [G06F 3/0604 (2013.01); G06F 3/0631 (2013.01); G06F 3/0664 (2013.01); G06F 3/0673 (2013.01); G06F 12/0238 (2013.01); G06F 2212/7201 (2013.01)] | 12 Claims |

|
1. A storage system comprising a storage device and a storage controller and providing volumes into which storage areas of the storage device are virtualized to a plurality of hosts by the storage controller, wherein
the storage controller records history of data updates to data in the volumes made by the hosts as update history information with information that can identify each of the hosts; wherein
when having been requested to restore data in a particular volume of the volumes with specifications of a host for which to invalidate data updates and a date and time to do so, based on the update history information, the storage controller invalidates data updates made by the specified host in the particular volume after the specified date and time, whereas keeping data updates valid made by a host different from the specified host in the particular volume after the specified date and time, and restores the particular volume; wherein
the storage controller records a mapping relationship between a logical address allocated to each piece of data in a latest state in the volumes and a physical address where the each piece of data has been stored in the storage device as logical-physical mapping information with information that can identify each of the hosts that registered each piece of data; wherein
when data in one of the volumes is updated, the storage controller stores data after being updated at a physical address in the storage areas different from a physical address where data before being updated was stored, updates the logical-physical mapping information, and, for at least a data update made by an access source host changed from another host, records a history record in the update history information in a form in which it is possible to trace access source hosts that changed from one to another and logical and physical address pairs for each of data before being updated and data after being updated; wherein
when having been requested to restore data in the particular volume, the storage controller identifies data of a first category written as an update by the specified host after the specified date and time from among the data in the particular volume, based on the update history information; wherein
in relation to a logical address allocated to each piece of data of the first category, the storage controller identifies a most recent physical address allocated to data after being updated by a data update performed before the specified date and time, based on the update history information; and wherein
the storage controller maps the identified physical address allocated to the data after being updated to the logical address and restores the data of the first category.
|