Patent ID: 8046549
Filing Date: 2011-10-25
Classification: G06F

Abstract:
1. A storage controller for storing data that is used by a host device, comprising: a first volume that stores write data sent from the host device; a second volume to which a storage content of the first volume that is obtained at a predetermined time point is copied; a third volume that stores journal data items created based on a write request targeted at the first volume; a plurality of first difference bitmaps, each of which manages, for each of a plurality of predetermined sections, a position at which a difference in storage contents occurs between the first volume and the second volume; and a controller for controlling the first volume, the second volume, the third volume, and each of the first difference bitmaps, wherein the controller executes: (1) an initial copy function for storing, in the second volume, the storage content of the first volume that is obtained at the predetermined time point; (2) a journal generating function for generating the journal data items on the basis of write requests sent from the host device and causing the third volume to store the generated journal data items; (3) a difference management function for causing one of the first difference bitmaps, which is selected for the each predetermined section, to store the position at which a difference is generated between the first volume and the second volume, on the basis of the write request issued from the host device after the predetermined time point; (4) a reflection function for reflecting, in the second volume, predetermined journal data items that are obtained after a lapse of a pre-designated targeted protection period, out of the journal data items stored in the third volume; (5) a journal discarding function for discarding the predetermined journal data items reflected in the second volume; and (6) a reusing function for deleting a storage content of a predetermined first difference bitmap having all corresponding journal data items discarded, out of the first difference bitmaps, and reusing thus obtained first difference bitmap as a new first difference bitmap; wherein the controller further executes a first restoration function, which, (7) when a command is issued to execute a first restoration: (7-2) merges the storage contents of the first difference bitmaps to create a second difference bitmap; (7-3) differentially copies the storage content of the second volume to the first volume on the basis of the created second difference bitmap, to thereby restores the storage content of the first volume to the predetermined time point; and (7-4) reflects, in the first volume, journal data items obtained up to a designated first restoration point, out of the journal data items stored in the third volume, and thereby restores the storage content of the first volume to the storage content obtained at the first restoration point; wherein when a command is issued to execute the first restoration, the first restoration function (7) (7-1) prohibits the write request from being sent from the host device to the first volume, and executes (7-2) through (7-4) after stopping operation of the reflection function (4).