US8473462B1ActiveUtility

Change tracking for shared disks

Assignee: BANERJEE AMITRAJITPriority: Apr 21, 2011Filed: Apr 21, 2011Granted: Jun 25, 2013
Est. expiryApr 21, 2031(~4.7 yrs left)· nominal 20-yr term from priority
G06F 16/13G06F 11/1451G06F 16/176
94
PatentIndex Score
88
Cited by
10
References
20
Claims

Abstract

Various systems and methods for tracking changes in a storage device. For example, one method can involve receiving a request to perform an incremental backup of a storage device and backing up locations in the storage device that are identified as having been changed. The method also involves receiving information from each of the nodes, where the information identifies locations that have been changed by the nodes. The locations that have been changed include both data and metadata.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A method utilizing a computer for tracking changes in shared storage devices comprising:
 receiving a request to perform an incremental backup of a storage device, wherein the storage device is accessed by a plurality of nodes; 
 generating a respective set of information by each of the plurality of nodes, wherein the generating comprises
 detecting input/output (I/O) operations, using a disk upper filter driver on a respective node, directed to a portion of the storage device or directed to a host operating system; 
 in response to detecting the I/O operations are directed to the host operating system, passing a subset of the I/O operations to a file system driver stack and then to a storage device driver stack, 
 in response to detecting the I/O operations are directed to a portion of the storage device, passing the subset of the I/O operations to the storage device driver stack and bypassing the file system driver stack, 
 
 receiving the respective set of information from each of the plurality of nodes in response to the request, wherein
 the respective set of information comprises a change list that identifies locations in the storage device that have been modified by the respective node, and 
 the locations comprise change data and metadata of the change data; and 
 
 performing a backup operation comprising copying, to a backup device, change data from each of the locations identified in each of the sets of information, wherein the change data only occurs after a last backup operation is performed. 
 
     
     
       2. The method of  claim 1 , wherein
 the storage device driver stack is a group of related drivers that cooperate to handle I/O operations of the storage device, and 
 the file system driver stack is a group of related drivers that cooperate to handle I/O operations of the file system. 
 
     
     
       3. The method of  claim 1 , wherein
 the storage device comprises a plurality of virtual hard disks (VHDs), wherein 
 each VHD of the plurality of VHDs corresponds to a respective virtual machine of a plurality of virtual machines, and 
 the plurality of virtual machines is implemented on the nodes. 
 
     
     
       4. The method of  claim 1 , further comprising:
 collating all sets of information received from the nodes, wherein the collating is performed by a coordinator node, and 
 the coordinator node has exclusive rights to modify the metadata for the storage device. 
 
     
     
       5. The method of  claim 1 , wherein:
 the storage device driver stack is maintained by the host operating system, and the file system driver stack is maintained by the file system. 
 
     
     
       6. The method of  claim 1 , wherein
 the plurality of nodes comprises a coordinator node and a non-coordinator node, and 
 the metadata is directly accessible only by the coordinator node. 
 
     
     
       7. The method of  claim 1 , wherein
 a first node implements a plurality of virtual machines, and 
 the first node collates information identifying I/O requests generated by each virtual machine of the plurality of virtual machines. 
 
     
     
       8. A non-transitory computer readable storage medium storing program instructions executable to track changes in shared storage devices, wherein the program instructions are configured to:
 receive a request to perform an incremental backup of a storage device, wherein the storage device is accessed by a plurality of nodes; 
 generate a respective set of information by each of the plurality of nodes, wherein the program instructions are further configured to:
 detect input/output (I/O) operations, using a disk upper filter driver on a respective node, directed to a portion of the storage device or directed to a host operating system; 
 in response to detecting the I/O operations are directed to the host operating system, pass a subset of the I/O operations to a file system driver stack and then to a storage device driver stack, 
 in response to detecting the I/O operations are directed to a portion of the storage device, pass the subset of the I/O operations to the storage device driver stack and bypass the file system driver stack, 
 
 receive the respective set of information from each of the plurality of nodes in response to the request, wherein
 the respective set of information comprises a change list that identifies locations in the storage device that have been modified by the respective node, and 
 the locations comprise change data and metadata of the change data; and 
 
 perform a backup operation comprising copying, to a backup device, change data from each of the locations identified in each of the sets of information, wherein the change data only occurs after a last backup operation is performed. 
 
     
     
       9. The non-transitory computer readable storage medium of  claim 8 , wherein
 the storage device driver stack is a group of related drivers that cooperate to handle I/O operations of the storage device, and 
 the file system driver stack is a group of related drivers that cooperate to handle I/O operations of the file system. 
 
     
     
       10. The non-transitory computer readable storage medium of  claim 8 , wherein the storage device comprises a plurality of virtual hard disks (VHDs), wherein
 each VHD of the plurality of VHDs corresponds to a respective virtual machine of a plurality of virtual machines, and 
 the plurality of virtual machines is implemented on the nodes. 
 
     
     
       11. The non-transitory computer readable storage medium of  claim 8 , wherein the program instructions are further configured to:
 collate all sets of information received from the nodes, wherein
 collating the information is performed by a coordinator node, and 
 the coordinator node has exclusive rights to modify the metadata for the storage device. 
 
 
     
     
       12. The non-transitory computer readable storage medium of  claim 8 , wherein
 the storage device driver stack is maintained by the host operating system, and the file system driver stack is maintained by the file system. 
 
     
     
       13. The non-transitory computer readable storage medium of  claim 8 , wherein
 the plurality of nodes comprises a coordinator node and a non-coordinator node, and 
 the metadata is directly accessible only by the coordinator node. 
 
     
     
       14. The computer readable storage medium of  claim 8 , wherein
 a first node implements a plurality of virtual machines, and 
 the first node collates information identifying I/O requests generated by each virtual machine of the plurality of virtual machines. 
 
     
     
       15. A system for tracking changes in shared storage devices comprising:
 one or more computer processors; and 
 a computer memory coupled to the one or more computer processors, wherein the computer memory stores program instructions executable by the one or more computer processors to: 
 receive a request to perform an incremental backup of a storage device, wherein the storage device is accessed by a plurality of nodes; 
 generate a respective set of information by each of the plurality of nodes, wherein the program instructions are further configured to:
 detect input/output (I/O) operations, using a disk upper filter driver on a respective node, directed to a portion of the storage device or directed to a host operating system; 
 in response to detecting the I/O operations are directed to the host operating system, pass a subset of the I/O operations to a file system driver stack and then to a storage device driver stack, 
 in response to detecting the I/O operations are directed to a portion of the storage device, pass the subset of the I/O operations to the storage device driver stack and bypass the file system driver stack, 
 
 receive the respective set of information from each of the plurality of nodes in response to the request, wherein
 the respective set of information comprises a change list that identifies locations in the storage device that have been modified by the respective node, and 
 the locations comprise change data and metadata of the change data; and 
 
 perform a backup operation comprising copying, to a backup device, change data from each of the locations identified in each of the sets of information, wherein the change data only occurs after a last backup operation is performed. 
 
     
     
       16. The system of  claim 15 , wherein
 the storage device driver stack is a group of related drivers that cooperate to handle I/O operations of the storage device, and 
 the file system driver stack is a group of related drivers that cooperate to handle I/O operations of the file system. 
 
     
     
       17. The system of  claim 15 , wherein
 the storage device comprises a plurality of virtual hard disks (VHDs), wherein
 each VHD of the plurality of VHDs corresponds to a respective virtual machine of a plurality of virtual machines, and 
 the plurality of virtual machines is implemented on the nodes. 
 
 
     
     
       18. The system of  claim 15 , wherein the program instructions are further configured to:
 collate the information received from the nodes, wherein
 collating all sets of information is performed by a coordinator node, and 
 the coordinator node has exclusive rights to modify the metadata for the storage device. 
 
 
     
     
       19. The system of  claim 15 , wherein
 the storage device driver stack is maintained by the host operating system, and the file system driver stack is maintained by the file system. 
 
     
     
       20. The system of  claim 15 , wherein
 the plurality of nodes comprises a coordinator node and a non-coordinator node, and 
 the metadata is directly accessible only by the coordinator node.

Join the waitlist — get patent alerts

Track US8473462B1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.