IP Library › Granted Patent US 8,886,609
Granted Patent B2
US 8,886,609 · App. 12/971,981 · Granted Nov 11, 2014

Backup and restore of data from any cluster node

Inventors: Joydeep Buragohain (Issaquah, WA); Andrea D'Amato (Kirkland, WA); Vinod R. Shankar (Woodinville, WA)
Assignee: Microsoft Corporation
G06F11/1461G06F11/1464G06F2201/84G06F2201/82H04L67/28H04L69/40H04L67/1097
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,886,609
App. No.
12/971,981
Granted
Nov 11, 2014
Kind
B2
Abstract

Implementing point in time back-up. A method that may be practiced in a distributed computing environment. The distributed computing environment includes a number of computing system nodes. The method includes at a first node in the computing environment, taking a snapshot of a cluster volume. The cluster volume stores data items (e.g. files/blocks). Taking a snapshot includes marking a point in time for data items in the volume. The method further includes receiving a notification that a different node in the computing environment than the first node, has determined to change a data item in the cluster volume at a point after the marked point in time from an old version of the data item to a new version of the data item. The method further includes at the first node, saving the old version of the data item prior to modification.

Claims (28)

1. In a distributed computing environment comprising a plurality of computing system nodes, a method of implementing point in time back-up, the method comprising:

at a first node in the computing environment, wherein the computing environment comprises a plurality of nodes, each of the nodes being able to communicate with a cluster volume mounted at one of the nodes, but not mounted at the other nodes, the nodes able to communicate with the cluster volume using a proxy cluster volume which allows the nodes to modify data items in the cluster volume without needing to request modification from the node on which the cluster volume is mounted, taking a snapshot of the cluster volume through the proxy cluster volume and a backup application or infrastructure at the first node, the backup application or infrastructure configured to perform backup operations on volumes locally mounted at the first node, the cluster volume storing data items, wherein taking snapshot comprises marking a point in time, wherein the first node is an owner node and thus has the cluster volume mounted to it, such that the first node is able to use the backup application or infrastructure configured to perform backup operations of volumes locally mounted, to directly take the snapshot rather than needing to cause a different system to perform the snapshot;

receiving, at the first node, a notification, through the proxy cluster volume, that a different node in the computing environment than the first node, has determined to change a data item in the cluster volume via the proxy cluster volume, rather than requesting that a data item be changed by the first node, and that the data item is about to be changed, at a point after the marked point in time from an old version of the data item to a new version of the data item; and

as a result of receiving, at the first node, a notification, through the proxy cluster volume, that a different node in the computing environment than the first node, has determined to change a data item in the cluster volume via the proxy cluster volume, rather than requesting that a data item be changed by the first node, and that the data item is about to be changed, at the first node, saving the old version of the data item to create a snapshot image via a copy-on-write algorithm to present a point-in-time image of the cluster volume without making a full copy of the volume, such that the copy-on-write algorithm is performed by the first node, even though the different node than the first node in the computing environment has determined to change a data item in the cluster volume.

2. The method of claim 1 , wherein receiving a notification that a different node in the computing environment than the first node, has determined to change a data item in the cluster volume comprises receiving a notification from the proxy cluster volume at the different node, the proxy cluster volume serving as an interface between an application and the cluster volume to allow the application to write directly to the cluster volume even though the cluster volume is not mounted to the different node.

3. The method of claim 1 , wherein a plug-in at one or more of the nodes is configured to implement transparency for back-up applications or infrastructure that do not natively have clustering functionality in that the backup applications or infrastructure perform backup operations of volumes locally mounted by appearing to the back-up applications or infrastructure as local storage.

4. The method of claim 3 , wherein the plug-in comprises a front end and a back end, wherein the front-end is an entry point for a back-up application or infrastructure to call into locally at a given node and the back-end is a service that runs in the first node so as to provide backup functionality to nodes not having the cluster volume locally mounted to them.

5. The method of claim 4 , wherein the back-end uses the infrastructure native to the first node to save the old version of the data item.

6. The method of claim 1 , wherein at a first node in the computing environment, taking a snapshot of a cluster volume is performed in response to a backup application or infrastructure at another node indicating that a snapshot should be taken on the proxy cluster volume, and a message being sent from the another node to the first node to indicate that the first node should take a snapshot of the cluster volume.

7. A computer readable physical storage media comprising computer executable instructions that when executed by one or more processors causes the following to be performed:

at a first node in the computing environment, wherein the computing environment comprises a plurality of nodes, each of the nodes being able to communicate with a cluster volume mounted at one of the nodes, but not mounted at the other nodes, the nodes able to communicate with the cluster volume using a proxy cluster volume which allows the nodes to modify data items in the cluster volume without needing to request modification from the node on which the cluster volume is mounted, taking a snapshot of the cluster volume through the proxy cluster volume and a backup application or infrastructure at the first node, the backup application or infrastructure configured to perform backup operations on volumes locally mounted at the first node, the cluster volume storing data items, wherein taking snapshot comprises marking a point in time, wherein the first node is an owner node and thus has the cluster volume mounted to it, such that the first node is able to use the backup application or infrastructure configured to perform backup operations of volumes locally mounted, to directly take the snapshot rather than needing to cause a different system to perform the snapshot;

receiving, at the first node, a notification, through the proxy cluster volume, that a different node in the computing environment than the first node, has determined to change a data item in the cluster volume via the proxy cluster volume, rather than requesting that a data item be changed by the first node, and that the data item is about to be changed, at a point after the marked point in time from an old version of the data item to a new version of the data item; and

as a result of receiving, at the first node, a notification, through the proxy cluster volume, that a different node in the computing environment than the first node, has determined to change a data item in the cluster volume via the proxy cluster volume, rather than requesting that a data item be changed by the first node, and that the data item is about to be changed, at the first node, saving the old version of the data item to create a snapshot image via a copy-on-write algorithm to present a point-in-time image of the cluster volume without making a full copy of the volume, such that the copy-on-write algorithm is performed by the first node, even though the different node than the first node in the computing environment has determined to change a data item in the cluster volume.

8. The computer readable memory of claim 7 , wherein receiving a notification that a different node in the computing environment than the first node, has determined to change a data item in the cluster volume comprises receiving a notification from the proxy cluster volume at the different node, the proxy cluster volume serving as an interface between an application and the cluster volume to allow the application to write directly to the cluster volume even though the cluster volume is not mounted to the different node.

9. The computer readable memory of claim 7 , wherein a plug-in at one or more of the nodes is configured to implement transparency for back-up applications or infrastructure that do not natively have clustering functionality in that the backup applications or infrastructure perform backup operations of volumes locally mounted by appearing to the back-up applications or infrastructure as local storage.

10. The computer readable memory of claim 9 , wherein the plug-in comprises a front end and a back end, wherein the front-end is an entry point for a back-up application or infrastructure to call into locally at a given node and the back-end is a service that runs in the first node so as to provide backup functionality to nodes not having the cluster volume locally mounted to them.

11. The computer readable memory of claim 10 , wherein the back-end uses a infrastructure native to the first node to save the old version of the data item.

12. The computer readable memory of claim 7 , wherein at a first node in the computing environment, taking a snapshot of a cluster volume is performed in response to a backup application or infrastructure at another node indicating that a snapshot should be taken on the proxy cluster volume, and a message being sent from the another node to the first node to indicate that the first node should take a snapshot of the cluster volume.

13. In a computing environment, a computing system for implementing point in time back-up, the computing system comprising:

one or more processors;

one or more computer readable media coupled to the one or more processors, the one or more computer readable comprising computer executable instructions that when executed by a processor cause the following to be performed:

at a first node in the computing environment, wherein the computing environment comprises a plurality of nodes, each of the nodes being able to communicate with a cluster volume mounted at one of the nodes, but not mounted at the other nodes, the nodes able to communicate with the cluster volume using a proxy cluster volume which allows the nodes to modify data items in the cluster volume without needing to request modification from the node on which the cluster volume is mounted, taking a snapshot of the cluster volume through the proxy cluster volume and a backup application or infrastructure at the first node, the backup application or infrastructure configured to perform backup operations on volumes locally mounted at the first node, the cluster volume storing data items, wherein taking snapshot comprises marking a point in time, wherein the first node is an owner node and thus has the cluster volume mounted to it, such that the first node is able to use the backup application or infrastructure configured to perform backup operations of volumes locally mounted, to directly take the snapshot rather than needing to cause a different system to perform the snapshot;

receiving, at the first node, a notification, through the proxy cluster volume, that a different node in the computing environment than the first node, has determined to change a data item in the cluster volume via the proxy cluster volume, rather than requesting that a data item be changed by the first node, and that the data item is about to be changed, at a point after the marked point in time from an old version of the data item to a new version of the data item; and

as a result of receiving, at the first node, a notification, through the proxy cluster volume, that a different node in the computing environment than the first node, has determined to change a data item in the cluster volume via the proxy cluster volume, rather than requesting that a data item be changed by the first node, and that the data item is about to be changed, at the first node, saving the old version of the data item to create a snapshot image via a copy-on-write algorithm to present a point-in-time image of the cluster volume without making a full copy of the volume, such that the copy-on-write algorithm is performed by the first node, even though the different node than the first node in the computing environment has determined to change a data item in the cluster volume.

14. The computing system of claim 13 , wherein receiving a notification that a different node in the computing environment than the first node, has determined to change a data item in the cluster volume comprises receiving a notification from the proxy cluster volume at the different node, the proxy cluster volume serving as an interface between an application and the cluster volume to allow the application to write directly to the cluster volume even though the cluster volume is not mounted to the different node.

15. The computing system of claim 13 , wherein a plug-in at one or more of the nodes is configured to implement transparency for back-up applications or infrastructure that do not natively have clustering functionality in that the backup applications or infrastructure perform backup operations of volumes locally mounted by appearing to the back-up applications or infrastructure as local storage.

16. The computing system of claim 15 , wherein the plug-in comprises a front end and a back end, wherein the front-end is an entry point for a back-up application or infrastructure to call into locally at a given node and the back-end is a service that runs in the first node so as to provide backup functionality to nodes not having the cluster volume locally mounted to them.

17. The computing system of claim 16 , wherein the back-end uses a back-up application or infrastructure native to the first node to save the old version of the data item prior to modifying it.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2010
From: BURAGOHAIN, JOYDEEP; D'AMATO, ANDREA; SHANKAR, VINOD R.
To: MICROSOFT CORPORATION
Reel/Frame 025533/0867 →
Continuity (1)
Related Publication 20120158662A1 · Jun 21, 2012