Storage handling for fault tolerance in virtual machines
First Claim
1. A computer readable storage medium for providing shared storage architecture in a fault-tolerant virtualized computer system, the fault-tolerant virtualized computer system comprising a primary host executing a primary virtual machine (VM) and a backup host executing a backup VM, the computer readable storage medium embodying machine instructions causing the backup host to implement a method, the method comprising:
- receiving a virtual disk IO request from the backup VM, the virtual disk IO request being identical to a corresponding virtual disk IO request issued by the primary VM;
when the virtual disk IO request is a read request, mapping the virtual disk IO request to a physical read IO request of a virtual disk image stored on a physical disk, and issuing the physical read IO request to the physical disk;
when the virtual disk IO request is a write request, assuming a completed status of the disk IO request without mapping the virtual disk IO request or issuing a mapped physical IO request to the physical disk;
receiving a log entry from a primary host, the log entry containing a completion interrupt and execution point for the corresponding virtual disk IO request issued by the primary VM; and
replaying the completion interrupt in the backup VM at an execution point in execution of the backup VM, the execution point corresponding to the execution point identified in the log entry.
2 Assignments
0 Petitions
Accused Products
Abstract
A fault-tolerant virtualized computer system comprises a primary host executing a primary virtual machine (VM) and a backup host executing a backup VM. In one embodiment, each VM includes a virtual disk mapped to a shared disk image on physical disk accessible to both hosts. A virtual disk IO request is received by virtualization software executing on the backup host from a backup VM. When the virtual disk IO request is a read request, the virtual disk IO request is mapped to a physical read IO request of a virtual disk image stored on a physical disk, the physical read IO request is issued to the physical disk. However, when the virtual disk IO request is a write request, it is assumed to be completed without mapping the virtual disk IO request or issuing a mapped physical IO request to the physical disk.
39 Citations
18 Claims
-
1. A computer readable storage medium for providing shared storage architecture in a fault-tolerant virtualized computer system, the fault-tolerant virtualized computer system comprising a primary host executing a primary virtual machine (VM) and a backup host executing a backup VM, the computer readable storage medium embodying machine instructions causing the backup host to implement a method, the method comprising:
-
receiving a virtual disk IO request from the backup VM, the virtual disk IO request being identical to a corresponding virtual disk IO request issued by the primary VM; when the virtual disk IO request is a read request, mapping the virtual disk IO request to a physical read IO request of a virtual disk image stored on a physical disk, and issuing the physical read IO request to the physical disk; when the virtual disk IO request is a write request, assuming a completed status of the disk IO request without mapping the virtual disk IO request or issuing a mapped physical IO request to the physical disk; receiving a log entry from a primary host, the log entry containing a completion interrupt and execution point for the corresponding virtual disk IO request issued by the primary VM; and replaying the completion interrupt in the backup VM at an execution point in execution of the backup VM, the execution point corresponding to the execution point identified in the log entry. - View Dependent Claims (2, 3)
-
-
4. A computer readable storage medium for providing a fault-tolerant virtualized computer system, the fault-tolerant virtualized computer system comprising a primary host executing a primary virtual machine (VM) and a backup host executing a backup VM, the computer readable storage medium embodying machine instructions causing the backup host to implement a method, the method comprising:
-
receiving a virtual IO request from the backup VM, the virtual IO request being identical to a corresponding virtual IO request issued by the primary VM; receiving a log entry from a primary host, the log entry containing a completion interrupt and execution point for the corresponding virtual IO request issued by the primary VM, determining whether the log entry received from the primary host indicates that an error status was returned when processing the corresponding virtual IO request; in response to a determination that the log entry indicates that the error status was returned, modifying virtual memory of the backup VM or a second virtual disk of the backup VM with the current state of a first virtual memory or a first virtual disk provided by the primary virtual machine in the log entry. - View Dependent Claims (5, 6, 7)
-
-
8. A computer readable storage medium for providing shared storage architecture in a fault-tolerant virtualized computer system, the fault-tolerant virtualized computer system comprising a primary host executing a primary virtual machine (VM) and a backup host executing a backup VM, wherein the primary VM has a virtual disk mapped to a disk image on a physical disk by virtualization software executing on the primary host and the backup VM has a virtual disk mapped to the disk image on the physical disk by virtualization software executing on the backup host, the computer readable storage medium embodying machine instructions causing the primary host to implement a method, the method comprising:
-
for each disk read IO request received from the primary VM, entering an accessed range of a virtual disk supported by the shared storage device in a disk range data structure, the accessed range defining a set of locations on the virtual disk of the primary VM that are targeted by the disk read IO request; and for each disk write IO request received from the primary VM, determining if the disk write IO request is directed to the disk range entered in the disk range data structure and if so, delaying the disk write operation until the disk read operation is completed by the backup virtual machine and the accessed range is removed from the disk range data structure. - View Dependent Claims (9)
-
-
10. A computer readable storage medium for providing a fault-tolerant virtualized computer system, the fault-tolerant virtualized computer system comprising a primary host executing a primary virtual machine (VM) and a backup host executing a backup VM, the computer readable medium embodying machine instructions causing the primary host to implement a method, the method comprising:
-
receiving a first virtual device IO request from the primary VM, the first virtual device IO request being at least one of a read or a write to addressable memory of the virtual device; in response to the receiving, entering an accessed range of the device in a range data structure, the accessed range being an identification of the portions of the addressable memory identified by the first virtual device IO request; mapping the first virtual device IO request from the primary VM to a physical device IO request and issuing the physical device IO request to a physical device that is mapped to the virtual device; receiving a second virtual device IO request form the primary VM, the second virtual device IO request being received after the receipt of the first virtual device IO request; determining whether the second virtual device IO request is directed to the accessed range of the device entered in the range data structure; and delaying issuing a physical IO operation mapped from the second virtual device IO request until the first physical IO request is completed. - View Dependent Claims (11, 12, 13)
-
-
14. A method for deterministically accessing storage resources in a fault-tolerant system wherein a first virtual machine (VM) executes on a first host and a second VM executes on a second host, the second VM providing fault tolerance for the first VM, the storage resources comprising a first virtual disk accessible by the first VM and a second virtual disk accessible by the second VM, the method comprising:
executing virtualization software on the first host, the virtualization software being logically interposed between and interfacing with the first VM and the first host, wherein the virtualization software; receives a virtual disk IO request issued by the first VM to the virtual disk; maps the virtual disk IO request to a corresponding physical disk IO request, the physical disk IO request defining an IO access of a physical disk, the physical disk being accessible by the first host; enters an accessed range of the physical disk IO request in a range data structure; determines from the range data structure whether the physical disk IO request is directed to a conflicting accessed range of a pending physical disk IO request; delays issuing the physical disk IO request when the physical disk IO request is directed to the conflicting accessed range, the physical disk IO request being delayed until the pending physical disk IO request is completed and the accessed range of the device is removed from the range data structure; and issues the physical disk IO request to a first physical disk when the physical disk IO request is not directed to a conflicting accessed range; sends the log entries containing information regarding each nondeterministic event associated with the first VM to the second host so that the second host can inject corresponding nondeterministic events into the VM machine and the second VM can replicate the execution of the first VM. - View Dependent Claims (15, 16, 17, 18)
Specification