Storage controller and control method for dynamically accomodating increases and decreases in difference data
AssigneeHitachi, Ltd.
InventorsIkuya Yagisawa, Koji Nagata, Shoji Kodama
Life of this patent
Estimating the term…
Abstract
In a storage controller which stores data provided from a host system, creates a snapshot, which is a data image of a production volume at a given point in time, at regular or irregular intervals, and holds difference data of the snapshot in a pool volume, multiple pool volumes are configured and a different pool volume is assigned to each copy pair including a group of production volumes or a single production volume that does not belong to any group of volumes so that difference data of each copy pair can be saved in its associated pool volume.
Claims17
A first storage controller which holds write data provided from a host system and duplexes said data in a second storage controller, comprising:
- a storage device which provides a storage area for storing data;
- and
- a controller,
- wherein said controller:
- configures a production volume and a pool volume on said storage area,
- sequentially stores said data provided from said host system into said production volume,
- sequentially creates a snapshot composed of a data image of said production volume at a given point in time at regular or irregular intervals, and
- when said data is written in said production volume after said snapshot is created, sequentially saves the original data that is contained in said production volume immediately prior to the write of said data into said pool volume as difference data as appropriate, and
- after creating a new version of said snapshot, sequentially reads said difference data of said previously created snapshot from said pool volume and transfers said difference data to said second storage controller, and
- wherein said controller further:
- configures a plurality of said pool volumes,
- assigns a first pool volume out of a plurality of said pool volumes to a first copy pair,
- assigns a second pool volume to both of a second and third copy pairs,
- wherein each of said copy pairs includes a group of related production volumes and its corresponding secondary volume contained in the second storage controller, or includes one of said production volumes that does not belong to the group of related production volumes and its corresponding secondary volume contained in the second storage controller,
- creates said snapshot for each of said copy pairs regularly and changes cycle time as appropriate, said cycle time being a time interval during which said snapshot is created,
- obtains, for each of said copy pairs, a time difference between the time of creation of said snapshot and the time of completion of transfer of said snapshot to said second storage controller, and
- dynamically changes said cycle time for each of said copy pairs in accordance with said time difference,
- wherein when the time difference is greater than a predetermined first threshold value, the controller increases said cycle time for each of said copy pairs, and
- wherein when the time difference is less than a predetermined second threshold value, the controller decreases said cycle time for each of said copy pairs.
A method for controlling a first storage controller which holds write data provided from a host system and duplexes said data in a second storage controller, comprising:
- a first step of configuring a production volume and a pool volume on a storage
- area provided by a storage device;
- and
- a second step of sequentially:
- storing said data provided from said host system into said production volume,
- creating a snapshot composed of an data image of said production volume at a given point in time at regular or irregular intervals, and
- when said data is written in said production volume after said snapshot is created, saving the original data that is contained in said production volume immediately prior to the write of said data into said pool volume as difference data as appropriate, and
- after creating a new version of said snapshot, reading said difference data of said previously created snapshot from said pool volume and transferring said difference data to said second storage controller;
- wherein said first step further comprises:
- configuring a plurality of said pool volumes, and
- assigning each of said pool volumes to a respective one of a plurality of copy pairs,
- wherein each of said copy pairs includes a group of related production volumes and its corresponding secondary volume contained in the second storage controller, or includes one of said production volumes that does not belong to the group of related production volumes and its corresponding secondary volume contained in the second storage controller;
- and
- wherein said second step further comprises:
- saving said difference data of said copy pair into one of said pool volumes that is associated with said copy pair,
- creating said snapshot for each of said copy pairs regularly and changes cycle time as appropriate, said cycle time being a time interval during which said snapshot is created,
- obtaining, for each of said copy pairs, a time difference between the time of creation of said snapshot and the time of completion of transfer of said snapshot to said second storage controller,
- dynamically changing said cycle time for each of said copy pairs in accordance with said time difference,
- when the time difference is greater than a predetermined first threshold value, increasing said cycle time for each of said copy pairs, and
- when the time difference is less than a predetermined second threshold value, decreasing said cycle time for each of said copy pairs.
A first storage controller which holds write data provided from a host system and duplexes said data in a second storage controller, comprising:
- a storage device which provides a storage area for storing data;
- and
- a controller,
- wherein said controller:
- configures a production volume and a pool volume on said storage area,
- sequentially stores said data provided from said host system into said production volume,
- sequentially creates a snapshot composed of a data image of said production volume at a given point in time at regular or irregular intervals, and
- when said data is written in said production volume after said snapshot is created, sequentially saves the original data that is contained in said production volume immediately prior to the write of said data into said pool volume as difference data as appropriate, and
- after creating a new version of said snapshot, sequentially reads said difference data of said previously created snapshot from said pool volume and transfers said difference data to said second storage controller, and
- wherein said controller further:
- configures a plurality of said pool volumes,
- assigns each of said pool volumes to a respective one of a plurality of copy pairs,
- wherein each of said copy pairs includes a group of related production volumes and its corresponding secondary volume contained in the second storage controller, or includes one of said production volumes that does not belong to the group of related production volumes and its corresponding secondary volume contained in the second storage controller,
- saves said difference data of said copy pair into one of said pool volumes that is associated with said copy pair,
- creates said snapshot for each of said copy pairs regularly and changes cycle time as appropriate, said cycle time being a time interval during which said snapshot is created,
- obtains, for each of said copy pairs, a time difference between the time of creation of said snapshot and the time of completion of transfer of said snapshot to said second storage controller, and
- dynamically changes said cycle time for each of said copy pairs in accordance with said time difference,
- wherein when the time difference is greater than a predetermined first threshold value, the controller increases said cycle time for each of said copy pairs, and
- wherein when the time difference is less than a predetermined second threshold value, the controller decreases said cycle time for each of said copy pairs.
Dependencies are inferred from the claim text.