IP Library Granted Patent US 8,874,954
Granted Patent B1
US 8,874,954 · App. 13/655,848 · Granted Oct 28, 2014

Compatibility of high availability clusters supporting application failover with shared storage in a virtualization environment without sacrificing on virtualization features

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,874,954
App. No.
13/655,848
Filed
Oct 19, 2012
Granted
Oct 28, 2014
Kind
B1
Art Unit
2114
USPC
714/4.11
Abstract

Compatibility is provided between a high availability clustering system and a virtualization environment. A hardware level hypervisor runs on each host, and VM(s) run on each hypervisor. A shared virtual storage manager runs on each VM, and facilitates sharing virtual storage between VMs. Sharing virtual storage can be performed in the context of a failed application or VM. A shared virtual storage manager VM detects that the application is being failed over from the source VM to the target VM, detaches the virtual storage from the source VM, and attaches it to the target VM. The shared virtual storage manager can also enable sharing of the virtual storage when a monitored application is failed over in response to the failure of a hypervisor. Virtual storage can additionally act as an arbitrator to resolve an occurrence of split brain, when VMs become disconnected.

Claims (67)

1. A computer implemented method for providing compatibility between a high availability clustering system supporting failover of monitored applications and a virtualization environment utilizing virtual storage, the method comprising the steps of:

providing a high availability cluster comprising at least two nodes, wherein each node comprises a VM (virtual machine);

providing a high availability clustering system supporting failover of monitored applications;

providing a virtualization environment utilizing virtual storage and running in conjunction with the high availability clustering system, wherein a hardware level hypervisor runs on each of at least one physical host computer(s), and wherein at least one VM comprising a node in the high availability cluster runs on each hardware level hypervisor; and

sharing virtual storage of the virtualization environment between multiple VMs, thereby enabling the high availability clustering system to share storage and to failover monitored applications in conjunction with the virtualization environment utilizing virtual storage, without requiring replication of storage media.

2. The method of claim 1 wherein sharing virtual storage of the virtualization environment between multiple VMs further comprises:

detecting that a specific monitored application is being failed over from a source VM to a target VM in response to the specific monitored application failing;

detaching virtual storage that was being accessed by the specific monitored application from the source VM; and

attaching the virtual storage to the target VM, by a component running on the target VM, thereby providing the specific monitored application with access to the virtual storage on the target VM.

3. The method of claim 2 wherein:

the source VM and the target VM are both running on a single hardware level hypervisor, the single hardware level hypervisor running on a single host computer.

4. The method of claim 2 wherein:

the source VM is running on a first hardware level hypervisor, the first hardware level hypervisor running on a first host computer; and

the target VM is running on a second hardware level hypervisor, the second hardware level hypervisor running on a second host computer.

5. The method of claim 1 wherein sharing virtual storage of the virtualization environment between multiple VMs further comprises:

detecting that a specific monitored application is being failed over from a source VM to a target VM in response to the source VM failing;

detaching virtual storage from the source VM; and

attaching the virtual storage to the target VM, by a component running on the target VM, thereby providing the specific monitored application with access to the virtual storage on the target VM.

6. The method of claim 5 wherein:

the source VM and the target VM are both running on a single hardware level hypervisor, the single hardware level hypervisor running on a single host computer.

7. The method of claim 5 wherein:

the source VM is running on a first hardware level hypervisor, the first hardware level hypervisor running on a first host computer; and

the target VM is running on a second hardware level hypervisor, the second hardware level hypervisor running on a second host computer.

8. The method of claim 1 wherein sharing virtual storage of the virtualization environment between multiple VMs further comprises:

attaching virtual storage that was being accessed by the specific monitored application to a VM running on a target hardware level hypervisor, responsive to a failure of a source hardware level hypervisor, wherein the specific monitored application was running on a VM on the source hardware level hypervisor, thereby providing the specific monitored application with access to the virtual storage on the VM on the target hardware level hypervisor.

9. The method of claim 8 wherein the virtualization environment further provides high availability functionality for VMs running on a failed hardware level hypervisor, the method further comprising:

responsive to the failure of the source hardware level hypervisor, allowing the virtualization environment to failover the VM on the source hardware level hypervisor to the target hardware level hypervisor;

detaching virtual storage from the VM on the source hardware level hypervisor; and

attaching the virtual storage to the VM that was failed over to the target hardware level hypervisor.

10. The method of claim 8 wherein the virtualization environment does not further provide high availability functionality for VMs running on a failed hardware level hypervisor, the method further comprising:

responsive to the failure of the source hardware level hypervisor, failing over the specific monitored application from the VM running on the source hardware level hypervisor to a separate VM running on the target hardware level hypervisor;

detaching virtual storage from the VM running on the source hardware level hypervisor; and

attaching the virtual storage to the separate VM running on the target hardware level hypervisor.

11. The method of claim 1 further comprising:

using virtual storage as an arbitrator to resolve an occurrence of split brain in the high availability cluster, wherein the occurrence of split brain further comprises separate VMs having become communicatively disconnected and the high availability clustering system attempting to run a specific monitored application on each one of the separate VMs.

12. The method of claim 11 wherein using virtual storage as an arbitrator to resolve an occurrence of split brain in the high availability cluster further comprises:

maintaining an attachment between a specific one of the VMs on which the specific monitored application is running and the shared storage, such that the other ones of the VMs are unable to attach the virtual storage and run the specific monitored application, thereby enabling the specific monitored application to continue to run on the specific one of the VMs and to remain stable, despite the occurrence of split brain.

13. At least one non-transitory computer readable-storage medium for providing compatibility between a high availability clustering system supporting failover of monitored applications and a virtualization environment utilizing virtual storage, the at least one non-transitory computer readable-storage medium storing computer executable instructions that, when loaded into computer memory and executed by at least one processor of a computing device, cause the computing device to perform the following steps:

providing a high availability cluster comprising at least two nodes, wherein each node comprises a VM (virtual machine);

providing a high availability clustering system supporting failover of monitored applications;

providing a virtualization environment utilizing virtual storage and running in conjunction with the high availability clustering system, wherein a hardware level hypervisor runs on each of at least one physical host computer(s), and wherein at least one VM comprising a node in the high availability cluster runs on each hardware level hypervisor; and

sharing virtual storage of the virtualization environment between multiple VMs, thereby enabling the high availability clustering system to share storage and to failover monitored applications in conjunction with the virtualization environment utilizing virtual storage, without requiring replication of storage media.

14. The at least one non-transitory computer readable-storage medium of claim 13 wherein sharing virtual storage of the virtualization environment between multiple VMs further comprises:

detecting that a specific monitored application is being failed over from a source VM to a target VM in response to the specific monitored application failing;

detaching virtual storage that was being accessed by the specific monitored application from the source VM; and

attaching the virtual storage to the target VM, by a component running on the target VM, thereby providing the specific monitored application with access to the virtual storage on the target VM.

15. The at least one non-transitory computer readable-storage medium of claim 13 wherein sharing virtual storage of the virtualization environment between multiple VMs further comprises:

detecting that a specific monitored application is being failed over from a source VM to a target VM in response to the source VM failing;

detaching virtual storage from the source VM; and

attaching the virtual storage to the target VM, by a component running on the target VM, thereby providing the specific monitored application with access to the virtual storage on the target VM.

16. The at least one non-transitory computer readable-storage medium of claim 13 wherein sharing virtual storage of the virtualization environment between multiple VMs further comprises:

attaching virtual storage that was being accessed by the specific monitored application to a VM running on a target hardware level hypervisor, responsive to a failure of a source hardware level hypervisor, wherein the specific monitored application was running on a VM on the source hardware level hypervisor, thereby providing the specific monitored application with access to the virtual storage on the VM on the target hardware level hypervisor.

17. The at least one non-transitory computer readable-storage medium of claim 16 wherein the virtualization environment further provides high availability functionality for VMs running on a failed hardware level hypervisor, the at least one non-transitory computer readable-storage medium further storing computer executable instructions to perform the following additional steps:

responsive to the failure of the source hardware level hypervisor, allowing the virtualization environment to failover the VM on the source hardware level hypervisor to the target hardware level hypervisor;

detaching virtual storage from the VM on the source hardware level hypervisor; and

attaching the virtual storage to the VM that was failed over to the target hardware level hypervisor.

18. The at least one non-transitory computer readable-storage medium of claim 16 wherein the virtualization environment does not further provide high availability functionality for VMs running on a failed hardware level hypervisor, the at least one non-transitory computer readable-storage medium further storing computer executable instructions to perform the following additional steps:

responsive to the failure of the source hardware level hypervisor, failing over the specific monitored application from the VM running on the source hardware level hypervisor to a separate VM running on the target hardware level hypervisor;

detaching virtual storage from the VM running on the source hardware level hypervisor; and

attaching the virtual storage to the separate VM running on the target hardware level hypervisor.

19. The at least one non-transitory computer readable-storage medium of claim 13 further storing computer executable instructions to perform the following additional step:

using virtual storage as an arbitrator to resolve an occurrence of split brain in the high availability cluster, wherein the occurrence of split brain further comprises separate VMs having become communicatively disconnected and the high availability clustering system attempting to run a specific monitored application on each one of the separate VMs.

20. A computer system for providing compatibility between a high availability clustering system supporting failover of monitored applications and a virtualization environment utilizing virtual storage, the computer system comprising:

a high availability cluster comprising at least two nodes, wherein each node comprises a VM (virtual machine);

a high availability clustering system supporting failover of monitored applications;

a virtualization environment utilizing virtual storage and running in conjunction with the high availability clustering system, wherein a hardware level hypervisor runs in system memory of each of at least one physical host computer(s), and wherein at least one VM runs on each hardware level hypervisor, in the system memory of the corresponding physical host computer; and

a shared virtual storage manager running on each VM (virtual machine), each shared virtual storage manager being programmed to share virtual storage of the virtualization environment between multiple VMs, thereby enabling the high availability clustering system to share storage and to failover monitored applications in conjunction with the virtualization environment utilizing virtual storage, without requiring replication of storage media.

Assignments (16)
SECURITY INTEREST Recorded Dec 12, 2025
From: ARCTERA US LLC
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 073951/0470 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 070530/0497 Recorded Dec 1, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0730 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 069585/0150 Recorded Dec 1, 2025
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0848 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
SECURITY INTEREST Recorded Dec 10, 2024
From: ARCTERA US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 069563/0243 →
PATENT SECURITY AGREEMENT Recorded Dec 10, 2024
From: ARCTERA US LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069585/0150 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC
To: ARCTERA US LLC
Reel/Frame 069548/0468 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 25, 2012
From: GUPTE, AMIT; AHMAD, JAHANGIR; GALELLI, LORENZO; RAHALKAR, MOHINI
To: SYMANTEC CORPORATION
Reel/Frame 029192/0380 →