IP Library Granted Patent US 7,650,475
Granted Patent B2
US 7,650,475 · App. 11/512,250 · Granted Jan 19, 2010

Storage system and method for managing data using the same

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,650,475
App. No.
11/512,250
Granted
Jan 19, 2010
Kind
B2
Abstract

A storage apparatus enables efficient data restoration even if restoration is attempted using several different restoration points. The storage system is connected to a host apparatus, and includes a storage unit having various logical volumes formed therein and a controller configured to control I/O processing with respect to the storage unit. The controller stores journal data for a data volume in a journal volume, and also stores snapshot data for the data volume in a snapshot volume. In accordance with a restoration request designating a restore point, the controller restores the data volume to the state it was in as of the designated restore point, by applying the snapshot data stored in the snapshot volume and subsequently applying the journal data stored in the journal volume. During that process, the controller saves the data in the data volume to which certain journal data is going to be applied, in a journal backup volume.

Claims (83)

1. A storage apparatus connected to a host apparatus, comprising:

a storage unit forming at least a data volume, a journal volume, a snapshot volume, and a journal backup volume therein; and

a controller configured to control I/O processing with respect to the storage unit,

wherein the controller

generates, in response to an I/O request from the host apparatus, first journal data that includes write data for the data volume, and its serial number and time, and stores the first journal data in the journal volume,

generates snapshot data for the data volume and stores the generated snapshot data in the snapshot volume;

wherein, upon receiving a first restoration request designating a first restore point, the controller performs a first data restoration including

storing, in a base volume, the snapshot data of a first snapshot stored in the snapshot volume,

restoring the data as of the first restore point, by applying the snapshot data of the first snapshot stored in the base volume and the first journal data stored in the journal volume sequentially, the first journal data to be applied being any journal data made after the time of the first snapshot but not after said first restore point,

generating snapshot data of the data restored to the state in the first restore point, and

storing, in the journal backup volume, second journal data that includes the data stored in the base volume before the first snapshot data is applied in the restoration, and its serial number and time;

wherein, if the controller receives, after the first data restoration, a second restoration request designating a second restore point that is between the time of the first snapshot and the first restore point, the controller restores the data as of the second restore point, by applying the snapshot data of the first snapshot stored in the base volume and the second journal data stored in the journal backup volume, the second journal data being applied sequentially from newer data in descending order of serial numbers;

wherein, if the controller receives, after the first data restoration, a second restoration request designating a second restore point that is not between the time of the first snapshot and the first restore point, the controller restores the data as of the second restore point, by applying the snapshot data of the first snapshot stored in the base volume and the first journal data stored in the journal volume in a period up until the second restore point.

2. The storage apparatus according to claim 1 , further comprising a journal backup management table for storing management information for managing data stored in the journal backup volume.

3. The storage apparatus according to claim 1 , wherein the data volume is defined as a virtual logical volume having an area exceeding the actual storage area provided by the storage unit,

wherein the storage unit has a pool volume formed therein configured to store data to be stored in an area other than the actual storage area,

wherein the controller has a pool volume management table for associating the area other than the actual storage area with the pool volume, and

wherein the controller stores, in the journal backup volume, data in the pool volume to which the journal data is applied.

4. The storage apparatus according to claim 3 , wherein the controller refers to the pool volume management table, and if the area other than the actual storage area in the data volume to which the snapshot data has been applied is determined as not having been associated with an area in the pool volume, stores an initial value in the journal backup volume.

5. A method for managing data in a storage apparatus connected to a host apparatus, the method comprising:

forming a data volume, a journal volume, a snapshot volume, and a journal backup volume in a storage unit;

storing journal data for the data volume in the journal volume, and storing first snapshot data for the data volume in the snapshot volume;

generating, in response to an I/O request from the host apparatus, first journal data that includes write data for the data volume, and its serial number and time, and stores the first journal data in the journal volume;

generating snapshot data for the data volume and storing the generated snapshot data in the snapshot volume;

receiving a first restoration request designating a first restore point and in response thereto performing a first data restoration including

storing, in a base volume, the snapshot data of a first snapshot stored in the snapshot volume,

restoring the data as of the first restore point, by applying the snapshot data of the first snapshot stored in the base volume and the first journal data stored in the journal volume sequentially, the first journal data to be applied being any journal data made after the time of the first snapshot but not after said first restore point,

generating snapshot data of the data restored to the state in the first restore point, and

storing, in the journal backup volume, second journal data that includes the data stored in the base volume before the first snapshot data is applied in the restoration, and its serial number and time;

if, after the first data restoration, a second restoration request is received designating a second restore point that is between the time of the first snapshot and the first restore point, restoring the data as of the second restore point, by applying the snapshot data of the first snapshot stored in the base volume and the second journal data stored in the journal backup volume, the second journal data being applied sequentially from newer data in descending order of serial numbers; and

if, after the first data restoration, a second restoration request is received designating a second restore point that is not between the time of the first snapshot and the first restore point, restoring the data as of the second restore point, by applying the snapshot data of the first snapshot stored in the base volume and the first journal data stored in the journal volume in a period un until the second restore point.

6. The method according to claim 5 , further comprising

defining the data volume as a virtual logical volume having an area exceeding the actual storage area provided by the storage unit,

wherein the forming includes forming a pool volume for storing data to be stored in an area other than the actual storage area, and

wherein the applying the journal data includes storing, in the journal backup volume, data in the pool volume to which the journal data is going to be applied.

7. The method according to claim 6 , further comprising:

referring to a pool volume management table for associating the area other than the actual storage area with the pool volume,

wherein the storing data in the journal backup volume includes storing an initial value in the journal backup volume if the area other than the actual storage area in the data volume to which the snapshot data has been applied is determined as not having been associated with an area in the pool volume.

8. A storage apparatus connected to a host apparatus, comprising:

a storage unit forming at least a data volume, a journal volume, a snapshot volume, and a journal backup volume therein; and

a controller configured to control I/O processing with respect to the storage unit,

wherein the controller

generates, in response to an I/O request from the host apparatus, first journal data that includes write data for the data volume, and its serial number and time, and stores the first journal data in the journal volume,

generates snapshot data for the data volume and stores the generated snapshot data in the snapshot volume;

wherein, upon receiving a first restoration request designating a first restore point, the controller performs a first data restoration including

storing, in a base volume, the snapshot data of a first snapshot stored in the snapshot volume,

restoring the data as of the first restore point, by applying the snapshot data of the first snapshot stored in the base volume and the first journal data stored in the journal volume sequentially, the first journal data to be applied being any journal data made after the time of the first snapshot but not after said first restore point,

generating snapshot data of the data restored to the state in the first restore point, and

storing, in the journal backup volume, second journal data that includes the data stored in the base volume before the first snapshot data is applied in the restoration, and its serial number and time;

wherein the controller receives, after the first data restoration, a second restoration request designating a second restore point, and performs different data restoration processes depending on whether the second restore point is between the time of the first snapshot and the first restore point or not.

9. The storage apparatus according to claim 8 ,

wherein the second restore point is between the time of the first snapshot and the first restore point, and the controller restores the data as of the second restore point, by applying the snapshot data of the first snapshot stored in the base volume and the second journal data stored in the journal backup volume, the second journal data being applied sequentially from newer data in descending order of serial numbers.

10. The storage apparatus according to claim 8 ,

wherein the second restore point is not between the time of the first snapshot and the first restore point, and the controller restores the data as of the second restore point, by applying the snapshot data of the first snapshot stored in the base volume and the first journal data stored in the journal volume in a period up until the second restore point.

11. The storage apparatus according to claim 8 , further comprising a journal backup management table for storing management information for managing data stored in the journal backup volume.

12. The storage apparatus according to claim 8 , wherein the data volume is defined as a virtual logical volume having an area exceeding the actual storage area provided by the storage unit,

wherein the storage unit has a pool volume formed therein configured to store data to be stored in an area other than the actual storage area,

wherein the controller has a pool volume management table for associating the area other than the actual storage area with the pool volume, and

wherein the controller stores, in the journal backup volume, data in the pool volume to which the journal data is applied.

13. The storage apparatus according to claim 12 , wherein the controller refers to the pool volume management table, and if the area other than the actual storage area in the data volume to which the snapshot data has been applied is determined as not having been associated with an area in the pool volume, stores an initial value in the journal backup volume.

14. A method for managing data in a storage apparatus connected to a host apparatus, the method comprising:

forming a data volume, a journal volume, a snapshot volume, and a journal backup volume in a storage unit;

storing journal data for the data volume in the journal volume, and storing first snapshot data for the data volume in the snapshot volume;

generating, in response to an I/O request from the host apparatus, first journal data that includes write data for the data volume, and its serial number and time, and stores the first journal data in the journal volume;

generating snapshot data for the data volume and storing the generated snapshot data in the snapshot volume;

receiving a first restoration request designating a first restore point and in response thereto performing a first data restoration including,

storing, in a base volume, the snapshot data of a first snapshot stored in the snapshot volume,

restoring the data as of the first restore point, by applying the snapshot data of the first snapshot stored in the base volume and the first journal data stored in the journal volume sequentially, the first journal data to be applied being any journal data made after the time of the first snapshot but not after said first restore point,

generating snapshot data of the data restored to the state in the first restore point, and

storing, in the journal backup volume, second journal data that includes the data stored in the base volume before the first snapshot data is applied in the restoration, and its serial number and time;

receiving, after the first data restoration, a second restoration request designating a second restore point; and

performing different data restoration processes depending on whether the second restore point is between the time of the first snapshot and the first restore point or not.

15. The method according to claim 14 , wherein the second restore point is between the time of the first snapshot and the first restore point, the method further comprising:

restoring the data as of the second restore point, by applying the snapshot data of the first snapshot stored in the base volume and the second journal data stored in the journal backup volume, the second journal data being applied sequentially from newer data in descending order of serial numbers.

16. The method according to claim 14 , wherein the second restore point is not between the time of the first snapshot and the first restore point, the method further comprising:

restoring the data as of the second restore point, by applying the snapshot data of the first snapshot stored in the base volume and the first journal data stored in the journal volume in a period up until the second restore point.

17. The method according to claim 14 , further comprising

defining the data volume as a virtual logical volume having an exceeding the actual storage area provided by the storage unit,

wherein the forming includes forming a pool volume for storing data to be Stored in an other than the actual storage area, and

wherein the applying the journal data includes storing, in the journal backup volume, data in the pool volume to which the journal data is going to be applied.

18. The method according to claim 17 , further comprising:

referring to a pool volume management table for associating the area other than the actual storage area with the pool volume,

wherein the storing data in the journal backup volume includes storing an initial value in the journal backup volume if the area other than the actual storage in the data volume to which the snapshot data has been applied is determined as not having been associated with an area in the pool volume.

Assignments (6)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT NUMBERS 10342096;10671117; 10716375; 10716376;10795407;10795408; AND 10827591 PREVIOUSLY RECORDED AT REEL: 58314 FRAME: 657. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Feb 29, 2024
From: RAKUTEN, INC.
To: RAKUTEN GROUP, INC.
Reel/Frame 068066/0103 →
CHANGE OF NAME Recorded Dec 6, 2021
From: RAKUTEN, INC.
To: RAKUTEN GROUP, INC.
Reel/Frame 058314/0657 →
CHANGE OF ADDRESS Recorded Dec 17, 2015
From: RAKUTEN, INC.
To: RAKUTEN, INC.
Reel/Frame 037751/0006 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 22, 2014
From: GLOBAL D, LLC.
To: RAKUTEN, INC.
Reel/Frame 032503/0237 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 13, 2014
From: HITACHI, LTD.
To: GLOBAL D, LLC
Reel/Frame 032446/0285 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 30, 2006
From: SUZUKI, HIDENORI; SANO, KAZUHIDE
To: HITACHI, LTD.
Reel/Frame 018237/0283 →