IP Library Granted Patent US 8,873,375
Granted Patent B2
US 8,873,375 · App. 12/709,993 · Granted Oct 28, 2014

Method and system for fault tolerance and resilience for virtualized machines in a network

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,873,375
App. No.
12/709,993
Granted
Oct 28, 2014
Kind
B2
Abstract

Hypervisor functions, which may control operations of one or more virtual machines, may be distributed across a plurality of network devices. State information may be stored for the virtual machines on network devices for fault tolerance and resilience. The virtual machines may retrieve stored state information to recover from a fault. The hypervisor may control the storage of the state information. Resources of the network devices may be allocated for fault tolerance and resilience of the virtual machines based on network device parameters, which may include storage capacity, processor usage, access time, communication bandwidth, and/or latency. The state information may include program content, cache content, memory content, and/or register content information, may be stored on a continuous, periodic, or an aperiodic basis, and may be shared among the network devices to enable the processing of data by the virtual machines when a fault occurs, and may be incrementally updated.

Claims (49)

1. A method for communication, the method comprising:

performing by one or more processors or circuits in one or more of a plurality of network devices:

distributing hypervisor functions, which control flow of information among one or more virtual machines, across a plurality of network devices, including

distributing first hypervisor functions for processing the first hypervisor functions on a first network device, and

distributing second hypervisor functions for processing the second hypervisor functions on a second network device;

simultaneously processing data by said plurality of network devices, including

processing respective portions of operations of a first virtual machine on a first plurality of network devices of the plurality of network devices;

simultaneously processing respective portions of operations of a second virtual machine on a second plurality of network devices of the plurality of network devices;

processing the first hypervisor functions on the first network device, and

simultaneously processing the second hypervisor functions on the second network device;

storing state information for each of said one or more virtual machines on at least one other of said plurality of network devices;

detecting failure of a network device of the first network device and the second network device;

retrieving the last stored state information for each of said one or more virtual machines from the at least one other of said plurality of network devices;

reconfiguring the one or more virtual machines on remaining network devices of the plurality of network devices using the retrieved last stored state information.

2. The method according to claim 1 , wherein said hypervisor functions are operable to control or manage said storage of said state information.

3. The method according to claim 2 , comprising allocating resources of said one or more of said plurality of network devices for said fault tolerance and resilience of said one or more virtual machines based on network device parameters.

4. The method according to claim 1 , comprising allocating resources of said one or more of said plurality of network devices for load-balancing of said one or more virtual machines based on network device parameters.

5. The method according to claim 4 , wherein said network device parameters comprise storage capacity, processor usage, access time, communication bandwidth, or latency parameters.

6. The method according to claim 1 , wherein said state information comprises program content, cache content, memory content, or register content information.

7. The method according to claim 1 , comprising storing said state information on a continuous basis, a periodic basis or an aperiodic basis.

8. The method according to claim 1 , comprising sharing information among said plurality of network devices to enable said processing of said data by said one or more virtual machines when said fault occurs.

9. The method according to claim 1 , comprising incrementally updating said stored state information for each of said one or more virtual machines.

10. A system for enabling data processing, the system comprising:

one or more processors or circuits in a plurality of networked devices, said one or more processors or circuits are operable to:

distribute hypervisor functions, which control operations of one or more virtual machines, across a plurality of network devices when processing data by said one or more of said plurality of network devices, including distributing first hypervisor functions for processing on a first network device and distributing second hypervisor functions for processing on a second network device;

simultaneously process respective portions of data by respective network devices of said plurality of network devices, including processing the first hypervisor functions on the first network device during a particular time interval and processing the second hypervisor functions during the particular time interval on the second network device; and

store state information for each of said one or more virtual machines on at least one other of said plurality of network devices;

detect occurrence of a fault by a network device of said plurality of network devices;

recall said stored state information by said distributed hypervisor functions;

reconfigure remaining network devices of the plurality of network devices using the recalled stored state information to reestablish said one or more virtual machines.

11. The system according to claim 10 , wherein said one or more virtual machines recovers from said occurrence of said fault utilizing said retrieved corresponding state information when a fault occurs.

12. The system according to claim 10 , wherein said hypervisor functions are operable to control or manage said storage of said state information.

13. The system according to claim 12 , wherein said one or more processors or circuits are operable to allocate resources of said one or more of said plurality of network devices for said fault tolerance and resilience of said one or more virtual machines based on network device parameters.

14. The system according to claim 10 , wherein said one or more processors or circuits are operable to allocate resources of said one or more of said plurality of network devices for load-balancing of said one or more virtual machines based on network device parameters.

15. The system according to claim 14 , wherein said network device parameters comprise storage capacity, processor usage, access time, communication bandwidth, or latency parameters.

16. The system according to claim 10 , wherein said state information comprise program content, cache content, memory content, and/or register content information.

17. The system according to claim 10 , wherein said one or more processors and/or circuits are operable to store said state information on a continuous basis, a periodic basis or an aperiodic basis.

18. The system according to claim 10 , wherein said one or more processors and/or circuits are operable to share information among said plurality of network devices to enable said processing of said data by said one or more virtual machines when said fault occurs.

19. The system according to claim 10 , wherein said one or more processors and/or circuits are operable to incrementally update said stored state information for each of said one or more virtual machines.

20. A method comprising:

distributing hypervisor functions of a hypervisor across respective network computers of a plurality of network computers;

by the respective network computers implementing the hypervisor, configuring a plurality of virtual machines over the plurality of network computers so that respective portions of each virtual machine are performed on respective network computers of the plurality of network computers;

by the respective network computers implementing the hypervisor, controlling communication among the plurality of virtual machines and the plurality of network computers;

storing state information for each of the plurality of virtual machines on at least one other of said plurality of network computers;

by the respective network computers implementing the hypervisor, detecting a condition requiring reconfiguration of the plurality of virtual machines among the network computers; and

in response to the condition requiring reconfiguration of the plurality of virtual machines, retrieving the last stored state information for each of said plurality of virtual machines from the at least one other of the plurality of network computers; and

reconfiguring the one or more virtual machines on the plurality of network computers using the retrieved last stored state information.

21. The method of claim 20 wherein detecting a condition requiring reconfiguration of the plurality of virtual machines among the network computers comprises detecting failure of a network computer of the plurality of network computers, and wherein reconfiguring the one or more virtual machines comprises reconfiguring the one or more virtual machines on remaining network computers of the plurality of network computers using the retrieved last stored state information.

22. The method of claim 20 wherein configuring a plurality of virtual machines over the plurality of network computers comprises matching a function of a respective portion of a virtual machine with a respective network computer best suited for performing the function of the respective portion of the virtual machine.

Assignments (7)
CORRECTIVE ASSIGNMENT TO CORRECT THE PATENT NUMBER 9,385,856 TO 9,385,756 PREVIOUSLY RECORDED AT REEL: 47349 FRAME: 001. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 22, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 051144/0648 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE PREVIOUSLY RECORDED ON REEL 047229 FRAME 0408. ASSIGNOR(S) HEREBY CONFIRMS THE THE EFFECTIVE DATE IS 09/05/2018. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047349/0001 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047229/0408 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 9, 2012
From: KIM, YONGBUM; CURRIVAN, BRUCE; DIAB, WAEL; KARAOGUZ, JEYHAN; MA, KENNETH; TEENER, MICHAEL JOHAS
To: BROADCOM CORPORATION
Reel/Frame 027680/0004 →