IP Library Granted Patent US 9,383,942
Granted Patent B2
US 9,383,942 · App. 14/092,208 · Granted Jul 5, 2016

Storage system capable of managing a plurality of snapshot families and method of operating thereof

Inventors: Josef Ezra (Even Yehuda, IL); Yechiel Yochai (Moshav Aviel, IL); Ido Ben-Tsion (Ramat Gan, IL); Efraim Zeidner (Haifa, IL)
Assignee: INFINIDAT LTD.
G06F3/065G06F3/0604G06F3/0605G06F3/0614G06F3/0683G06F3/0689G06F11/1446G06F11/1458G06F12/0864G06F17/30088G06F2201/84
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 9,383,942
App. No.
14/092,208
Granted
Jul 5, 2016
Kind
B2
Abstract

There is provided a storage system comprising a control layer operable to manage a snapshot family (SF) constituted by SF members having hierarchical relations represented by a SF relationship data structure and a method of operating thereof. Upon receiving a command for restoring a writable SF member from a read-only snapshot thereof, the control layer provides a foreground atomic operation. The atomic operation comprises generating a new writable snapshot of the read-only snapshot (a destination SF member), modifying the SF relationship data structure, and re-assigning all logical unit numbers (LUNs) from the writable SF member to be restored to the destination SF member. Upon successful completion of the atomic operation, the control layer sends acknowledgement indicative of successful restoring the writable SF member. The control layer further provides a background process comprising modifying, in correspondence with the provided atomic operation, a SF mapping data structure comprising mappings between logical and physical addresses corresponding to SF members.

Claims (41)

1. A method of operating a storage system comprising a control layer operable to manage a snapshot family (SF) constituted by SF members having hierarchical relations represented by an initial SF relationship data structure, the method comprising:

upon receiving a command for restoring a writable SF member from a read-only snapshot thereof, the control layer providing an atomic operation comprising:

generating a new writable snapshot of the read-only snapshot to yield a destination SF member;

generating a definitive SF relationship data structure corresponding to the initial SF relationship data structure, wherein the initial SF relationship data structure characterizes the SF when the atomic operation started and wherein the definitive SF relationship data structure is a modified copy of the initial SF relationship data structure;

re-assigning all logical unit numbers (LUNs) from the writable SF member to be restored to the destination SF member; and

upon successful completion of the atomic operation, the control layer sending acknowledgement indicative of successful restoring the writable SF member;

modifying, during a background process provided by the control layer and in correspondence with the atomic operation, a SF mapping data structure, the SF mapping data structure comprises mappings between logical and physical addresses corresponding to SF members, wherein the modifying includes successively modifying the mappings in the SF mapping data structure whilst keeping data informative of mappings which have been already modified;

handling the initial and the definitive SF relationship data structures till the end of the background process; and

serving an I/O request addressed to an LBA range corresponding to already modified mappings of the SF mapping data structure using the SF mapping data structure and the definitive SF relationship data structure, and serving an I/O request addressed to an LBA range corresponding to unmodified mappings of the SF mapping data structure using the SF mapping data structure and the initial SF relationship data structure.

2. The method of claim 1 , wherein modifying the SF mapping data structure is provided with further correspondence with one or more write requests received during the background process and addressed to SF members.

3. The method of claim 1 , wherein modifying the SF mapping data structure is provided with further correspondence with one or more modifications of the definitive SF relationship data structure during the background process.

4. The method of claim 1 wherein the writable SF member to be restored is a master volume of the snapshot family.

5. The method of claim 1 , wherein the control layer starts the background process in accordance with at least one condition selected from a group constituted by a scheduled time, one or more predefined events and one or more predefined storage system states.

6. The method of claim 1 , wherein the SF mapping data structure is configured as a mapping tree, wherein successively modifying the mappings comprises traversing the mapping tree; wherein the data informative of mappings which have been already modified is a value of a counter indicative of a currently traversed LBA, the method further comprising comparing, by the control layer, the LBA range addressed in the I/O request with a current counter's value, and serving the I/O request accordingly.

7. The method of claim 1 further comprising modifying the definitive SF relationship data structure responsive to generating a new snapshot from the destination snapshot before completion of the background process, and serving the I/O request using the definitive SF relationship data structure.

8. The method of claim 1 wherein the definitive SF relationship data structure is derived from the initial SF relationship data structure by replacing the writable SF member to be restored by the destination SF member.

9. A storage system comprising a control layer configured to manage a plurality of snapshot families, each family constituted by snapshot family (SF) members having hierarchical relations represented by an initial SF relationship data structure, wherein the control layer comprises hardware and is further configured:

upon receiving a command for restoring a writable SF member from a read-only snapshot thereof, to provide an atomic operation comprising:

generating a new writable snapshot of the read-only snapshot to yield a destination SF member;

generating a definitive SF relationship data structure corresponding to the initial SF relationship data structure, wherein the initial SF relationship data structure characterizes the SF when the atomic operation started and wherein the definitive SF relationship data structure is a modified copy of the initial SF relationship data structure;

re-assigning all logical unit numbers (LUNs) from the writable SF member to be restored to the destination SF member; and

upon successful completion of the atomic operation, to send acknowledgement indicative of successful restoring the writable SF member;

wherein the control layer is further configured to:

provide a background process comprising modifying, in correspondence with the atomic operation, a SF mapping data structure, the SF mapping data structure comprises mappings between logical and physical addresses corresponding to SF members, wherein the modifying includes successively modifying the mappings in the SF mapping data structure whilst keeping data informative of mappings which have been already modified;

handle the initial and the definitive SF relationship data structures till the end of the background process; and

serve, during the background process, an I/O request addressed to an LBA range corresponding to already modified mappings of SF mapping data structure using the SF mapping data structure and the definitive SF relationship data structure, and serve, during the background process, an I/O request addressed to an LBA range corresponding to unmodified mappings of SF mapping data structure using the SF mapping data structure and the initial SF relationship data structure.

10. The storage system of claim 9 , wherein the control layer is configured to modify the SF mapping data structure with further correspondence with one or more write requests received during the background process and addressed to SF members.

11. The storage system of claim 9 , wherein the control layer is configured to modify the SF mapping data structure with further correspondence with one or more modifications of the definitive SF relationship data structure during the background process.

12. The storage system of claim 9 , wherein the control layer is configured to start the background process in accordance with at least one condition selected from a group constituted by a scheduled time, one or more predefined events and one or more predefined storage system states.

13. The storage system of claim 9 , wherein the SF mapping data structure is configured as a mapping tree, wherein successively modifying the mappings comprises traversing the mapping tree; wherein the data informative of mappings which have been already modified is a value of a counter indicative of a currently traversed LBA, the control layer is further configured to compare the LBA range addressed in the I/O request with a current counter's value, and to serve the I/O request accordingly.

14. The storage system of claim 9 , wherein the control layer is further configured to modify the definitive SF relationship data structure responsive to generating a new snapshot from the destination snapshot before completion of the background process, and to serve the I/O request using the modified definitive SF relationship data structure.

15. The storage system of claim 9 , wherein the control layer is further configured to derive the definitive SF relationship data structure from the initial SF relationship data structure by replacing the writable SF member to be restored by the destination SF member.

16. A non-transitory computer readable storage medium comprising computer readable program code embodied therein for operating a storage system comprising a control layer with a cache memory, the control layer operable to manage a plurality of snapshot families, each family constituted by snapshot family (SF) members having hierarchical relations represented by an initial SF relationship data structure, the computer readable program code causing the control layer:

upon receiving a command for restoring a writable SF member from a read-only snapshot thereof, to provide an atomic operation comprising:

generating a new writable snapshot of the read-only snapshot thereby giving rise to a destination SF member;

generating a definitive SF relationship data structure corresponding to the initial SF relationship data structure, wherein the initial SF relationship data structure characterizes the SF when the atomic operation started and wherein the definitive SF relationship data structure is a modified copy of the initial SF relationship data structure;

re-assigning all logical unit numbers (LUNs) from the writable SF member to be restored to the destination SF member; and

upon successful completion of the atomic operation, to send acknowledgement indicative of successful restoring the writable SF member;

modifying, during a background process provided by the control layer and in correspondence with the atomic operation, a SF mapping data structure, the SF mapping data structure comprises mappings between logical and physical addresses corresponding to SF members, wherein the modifying includes successively modifying the mappings in the SF mapping data structure whilst keeping data informative of mappings which have been already modified;

handling the initial and the definitive SF relationship data structures till the end of the background process; and

serving an I/O request addressed to an LBA range corresponding to already modified mappings of the SF mapping data structure using the SF mapping data structure and the definitive SF relationship data structure, and serving an I/O request addressed to an LBA range corresponding to unmodified mappings of the SF mapping data structure using the SF mapping data structure and the initial SF relationship data structure.

Assignments (10)
SECURITY INTEREST Recorded Jan 30, 2025
From: INFINIDAT LTD
To: KREOS CAPITAL VII AGGREGATOR SCSP,
Reel/Frame 070056/0458 →
RELEASE OF SECURITY INTEREST IN IP RECORDED AT R/F 55653/0854 Recorded Jan 18, 2024
From: SILICON VALLEY BANK
To: INFINIDAT LTD.
Reel/Frame 066344/0064 →
SECURITY INTEREST Recorded Jan 11, 2024
From: INFINIDAT LTD
To: KREOS CAPITAL VI (EXPERT FUND) L.P.; KREOS CAPITAL 2020 OPPORTUNITY L.P.
Reel/Frame 066270/0359 →
SECURITY INTEREST Recorded Jan 10, 2024
From: INFINIDAT LTD
To: HSBC BANK PLC
Reel/Frame 066268/0584 →
RELEASE OF SECURITY INTEREST Recorded Mar 30, 2021
From: BANK LEUMI LE-ISRAEL B.M.
To: INFINIDAT LTD.
Reel/Frame 055776/0526 →
RELEASE OF SECURITY INTEREST Recorded Mar 30, 2021
From: BANK LEUMI LE-ISRAEL B.M.
To: INFINIDAT LTD.
Reel/Frame 055776/0597 →
SECURITY INTEREST Recorded Mar 18, 2021
From: INFINIDAT LTD.
To: SILICON VALLEY BANK
Reel/Frame 055653/0854 →
SECURITY INTEREST Recorded Apr 12, 2018
From: INFINIDAT LTD.
To: BANK LEUMI LE-ISRAEL B.M.
Reel/Frame 045914/0276 →
LIEN Recorded Jul 18, 2016
From: INFINIDAT LTD.
To: BANK LEUMI LE-ISRAEL B.M.
Reel/Frame 039361/0161 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 19, 2014
From: EZRA, JOSEF; YOCHAI, YECHIEL; BEN-TSION, IDO; ZEIDNER, EFRAIM
To: INFINIDAT ISRAEL LTD.
Reel/Frame 032240/0700 →
Continuity (2)
Provisional Application 61730988 · Nov 29, 2012
Related Publication 20140149665A1 · May 29, 2014