IP Library Granted Patent US 8,352,482
Granted Patent B2
US 8,352,482 · App. 12/506,965 · Granted Jan 8, 2013

System and method for replicating disk images in a cloud computing based virtual machine file system

Assignee: VMware, Inc.
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,352,482
App. No.
12/506,965
Granted
Jan 8, 2013
Kind
B2
Abstract

A replicated decentralized storage system comprises a plurality of servers that locally store disk images for locally running virtual machines as well as disk images, for failover purposes, for remotely running virtual machines. To ensure that disk images stored for failover purposes are properly replicated upon an update of the disk image on the server running the virtual machine, a hash of a unique value known only to the server running the virtual machine is used to verify the origin of update operations that have been transmitted by the server to the other servers storing replications of the disk image for failover purposes. If verified, the update operations are added to such failover disk images.

Claims (37)

1. A computer system configured to replicate a log file stored in a primary server, the computer system comprising:

a local storage unit for storing a replication of the log file;

one or more computer processors; and

a non-transitory computer-readable storage medium comprising instructions for controlling the one or more computer processors to be configured to:

receive an update operation sent from a server, wherein the update operation includes a public unique id and a private unique id from a previous update operation,

obtain a previous public unique id from a last update operation stored in the replication of the log file stored in the local storage unit, wherein the previous public unique id was generated using the private unique id from the previous update operation,

generate a hash of the private unique id,

compare the generated hash of the private unique id to the previous public unique id to confirm the server that sent the received update operation is designated as a primary server,

wherein the private unique id is previously known only to the primary server prior to transmission of the update operation to the computer system, and

append the update operation to the replication of the log file upon confirmation that the generated hash of the private unique id equals the previous public unique id.

2. The computer system of claim 1 , wherein the public unique id is a hash of a new private unique id generated from a master secret value stored in the primary server.

3. The computer system of claim 2 , wherein the new private unique id comprises a hash of a bitwise intersection of the master secret value, the private unique id from the previous update operation, and data corresponding to the update operation.

4. The computer system of claim 1 , wherein the log file comprises a list of update operations.

5. The computer system of claim 4 , wherein the log file and the replication of the log file correspond to a disk image of a virtual machine running on the primary server.

6. The computer system of claim 5 , wherein the update operation further includes a data portion corresponding to a write operation issued by the virtual machine and comprising a logical address of the virtual machine and data to be written to the logical address.

7. The computer system of claim 1 , configured to reject the update operation upon confirmation that the generated hash of the private unique id does not equal the previous public unique id.

8. A method for updating a replication of a log file, wherein the log file is stored in a local storage unit of a primary server and the replication is stored in a local storage unit of a secondary server, the method comprising:

receiving an update operation sent from a server, wherein the update operation includes a public unique id and a private unique id from a previous update operation;

obtaining a previous public unique id from a last update operation stored in the replication of the log file stored in the local storage unit of the secondary server, wherein the previous public unique id was generated using the private unique id from the previous update operation;

generating a hash of the private unique id; comparing the generated hash of the private unique id to the previous public unique id to confirm the server that sent the received update operation is designated as a primary server, wherein the private unique id is previously known only to the primary server prior to transmission of the update operation to the secondary server; and

appending the update operation to the replication of the log file upon confirmation that the generated hash of the private unique id equals the previous public unique id.

9. The method of claim 8 , wherein the public unique id is a hash of a new private unique id generated from a master secret value stored in the primary server.

10. The method of claim 9 , wherein the new private unique id comprises a hash of a bitwise intersection of the master secret value, the private unique id from the previous update operation, and data corresponding to the update operation.

11. The method of claim 8 , wherein the log file comprises a list of update operations.

12. The method of claim 11 , wherein the log file and the replication of the log file correspond to a disk image of a virtual machine running on the primary server.

13. The method of claim 12 , wherein the update operation further includes a data portion corresponding to a write operation issued by the virtual machine and comprising a logical address of the virtual machine and data to be written to the logical address.

14. The method of claim 8 , further comprising rejecting the update operation upon confirmation that the generated hash of the private unique id does not equal the previous public unique id.

15. A non-transitory computer-readable storage medium including instructions that, when executed by a processing unit of a secondary server having a local storage unit storing a replication of a log file stored on in a local storage unit of a primary server, causes the processing unit to update the replication by performing steps of:

receiving an update operation sent from a server, wherein the update operation includes a public unique id and a private unique id from a previous update operation;

obtaining a previous public unique id from a last update operation stored in the replication of the log file stored in the local storage unit of the secondary server, wherein the previous public unique id was generated using the private unique id from the previous update operation;

generating a hash of the private unique id; comparing the generated hash of the private unique id to the previous public unique id to confirm the server that sent the received update operation is designated as a primary server, wherein the private unique id is previously known only to the primary server prior to transmission of the update operation to the secondary server; and appending the update operation to the replication of the log file upon confirmation that the generated hash of the private unique id equals the previous public unique id.

16. The non-transitory computer readable storage medium of claim 15 , wherein the public unique id is a hash of a new private unique id generated from a master secret value stored in the primary server.

17. The non-transitory computer readable storage medium of claim 16 , wherein the new private unique id comprises a hash of a bitwise intersection of the master secret value, the private unique id from the previous update operation, and data corresponding to the update operation.

18. The non-transitory computer readable storage medium of claim 15 , wherein the log file comprises a list of update operations.

19. The non-transitory computer readable storage medium of claim 18 , wherein the log file and the replication of the log file correspond to a disk image of a virtual machine running on the primary server.

20. The non-transitory computer readable storage medium of claim 19 , wherein the update operation further includes a data portion corresponding to a write operation issued by the virtual machine and comprising a logical address of the virtual machine and data to be written to the logical address.

21. The computer system of claim 1 , further configured to store the public unique id included in the update operation for use to confirm a next update operation including a new private ID used to generate the public unique ID.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067103/0030 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 21, 2009
From: HANSEN, JACOB GORM
To: VMWARE, INC.
Reel/Frame 022985/0632 →
Continuity (1)
Related Publication 20110022574A1 · Jan 27, 2011