IP Library Granted Patent US 8,607,011
Granted Patent B2
US 8,607,011 · App. 13/185,225 · Granted Dec 10, 2013

Method and system for generating consistent snapshots for a group of data objects

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 8,607,011
App. No.
13/185,225
Granted
Dec 10, 2013
Kind
B2
Abstract

Snapshots that are consistent across a group of data objects are generated. The snapshots are initiated by a coordinator, which transmits a sequence of commands to each storage node hosting a data object within a group of data objects. The first command prepares a data object for a snapshot. After a data object has been successfully prepared, an acknowledgment is sent to the coordinator. Once all appropriate acknowledgments are received, the coordinator sends a command to confirm that a snapshot has been created for each data object in the respective group. After receiving this confirmation, the coordinator takes action to confirm or record the successful completion of the group-consistent snapshot.

Claims (19)

1. A method for coordinating snapshots for multiple data objects that are included on at least one storage node in order to achieve group-consistency among the snapshots, comprising:

issuing a first command to block new I/O operations issued to the data objects, the first command being cooperative with each storage node such that the storage node is enabled to complete currently pending I/O operations associated with a particular data object of the data objects on the storage node and then create a snapshot of said particular data object, wherein the first command calls an action that blocks any new I/O operations for each of the data objects issued after the action from reaching the data objects from an originator and allows the currently pending I/O operations to be completed before the snapshot is created, the currently pending I/O operations being I/O operations that were issued before the first command was received;

receiving a response to the first command, the response being indicative that blocking of new I/O operations is implemented; and

after the response to the first command has been received from each storage node, issuing a second command to unblock new I/O operations issued to the data objects.

2. The method according to claim 1 , wherein the first command is issued for each of the data objects, such that a plurality of first commands are issued to a specific storage node if the specific storage node includes a plurality of the data objects.

3. The method according to claim 2 , wherein the second command is issued only after the response to the first command has been received for each of the data objects.

4. The method according to claim 1 , wherein the multiple data objects are managed by at least one storage node, and the first command is received by the at least one storage node, in response to which the at least one storage node blocks new I/O operations issued to the data objects.

5. The method according to claim 1 , wherein the multiple data objects are included on a single storage node.

6. A system for generating group-consistent snapshots, comprising a storage node managing at least a first data object and a second data object, wherein the storage node is configured to block new I/O operations issued to the first and second data objects but to complete currently pending I/O operations associated with the first and second data objects, and then create snapshots of the first and second data objects, as a direct response to receiving commands to generate group-consistent snapshots, wherein a separate command is received for the first data object and the second data object, wherein each of the commands calls an action that blocks any new I/O operations for a corresponding data object of the first and second data objects issued after the action from reaching the corresponding data object from an originator and allows the currently pending I/O operations for the corresponding data object to be completed before a snapshot of the corresponding data object is created, the currently pending I/O operations being I/O operations that were issued before the commands were received.

7. The system according to claim 6 , wherein the storage node is further programmed to generate an acknowledgment signals after it has blocked new I/O operations to the first and second data objects, such that separate acknowledgment signals are generated for the first and second data objects.

8. The system according to claim 7 , wherein the storage node to further programmed to unblock new I/O operations issued to the first and second data objects upon receiving a commit command.

9. A non-transitory computer readable medium having programming for executing a method comprising steps of:

issuing a first command to block new I/O operations issued to the data objects, the first command being cooperative with each storage node such that the storage node is enabled to complete currently pending I/O operations associated with a particular data object of the data objects on the storage node and then create a snapshot of said particular data object, wherein the first command calls an action that blocks any new I/O operations for each of the data objects issued after the action from reaching the data objects from an originator and allows the currently pending I/O operations to be completed before the snapshot is created, the currently pending I/O operations being I/O operations that were issued before the first command was received;

receiving a response to the first command, the response being indicative that blocking of new I/O operations is implemented; and

after the response to the first command has been received from each storage node, issuing a second command to unblock new I/O operations issued to the data objects.

10. The non-transitory computer readable medium as recited in claim 9 including programming such that the first command is issued for each of the data objects, such that a plurality of first commands are issued to a specific storage node if the specific storage node includes a plurality of the data objects.

11. The non-transitory computer readable medium as recited in claim 10 , wherein the second command is issued only after the response to the first command has been received for each of the data objects.

12. The non-transitory computer readable medium as recited in claim 9 , wherein the multiple data objects are managed by at least one storage node, and the first command is received by the at least one storage node, in response to which the at least one storage node blocks new I/O operations issued to the data objects.

13. The non-transitory computer readable medium as recited in claim 9 , wherein the multiple data objects are included on a single storage node.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0314 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 21, 2011
From: KARAMANOLIS, CHRISTOS; AMDUR, MATTHEW BENJAMIN; DIRKS, PATRICK WILLIAM PENZIAS
To: VMWARE, INC.
Reel/Frame 026942/0526 →