IP Library Granted Patent US 9,507,586
Granted Patent B2
US 9,507,586 · App. 13/646,499 · Granted Nov 29, 2016

Virtual machine based controller and upgrade mechanism

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 9,507,586
App. No.
13/646,499
Granted
Nov 29, 2016
Kind
B2
Abstract

High availability for a network may be achieved, for example, during a hitless upgrade by creating a replica controller virtual machine of an operating controller virtual machine (source controller). The replica controller virtual machine may be on a same or different server as the source controller virtual machine. The replica controller virtual machine may be copied with processes present in the source controller virtual machine and synchronized for runtime state. Upgrades or changes to software applications run in the source controller virtual machine may be provided to the replica controller virtual machine. Once enabled, the replica controller virtual machine may be operated without suspension of the source controller virtual machine.

Claims (42)

1. A method comprising:

operating a first controller virtual machine on a server;

if a new software patch is available, replicating the first controller virtual machine into a replica controller virtual machine, the replica controller virtual machine including the new software patch;

transferring system state data from the first controller virtual machine to the replica controller virtual machine including:

determining one or more conversions applicable to the system state data corresponding to one or more differences between the first controller virtual machine and the second controller virtual machine, wherein the one or more conversions comprise one or more of converting to different dynamically linked libraries, conversions between older and new data structures, or conversions between newer and older data structures; and

applying the one or more conversions to the system state data;

transferring execution of one or more processes from the first controller virtual machine to the replica controller virtual machine;

after transferring the system state data and execution of the one or more processes, operating the replica controller virtual machine without suspending the first controller.

2. The method of claim 1 , wherein the replica controller virtual machine is on the same server as the first controller virtual machine.

3. The method of claim 1 , wherein the first controller virtual machine and the replica controller virtual machine are synchronized for runtime state.

4. The method of claim 1 , further comprising providing state update synchronization between the first controller virtual machine and the replica controller virtual machine while both controller virtual machines are running.

5. The method of claim 1 , wherein the first controller virtual machine is operated as a master controller virtual machine and the replica controller virtual machine is operated as a stand-by controller virtual machine.

6. The method of claim 1 further comprising:

in response to completion of the transfer of the execution of the one or more processes from the first controller virtual machine to the second controller virtual machine:

terminate execution of the one or more processes on the first controller virtual machine.

7. A computer program product comprising a non-transitory computer readable storage medium having computer readable program code embodied therewith, the computer readable program code being configured to:

operate a first controller virtual machine on a server;

if a new software patch is available, replicate the first controller virtual machine into a replica controller virtual machine, the replica controller virtual machine including the new software patch;

transfer system state data from the first controller virtual machine to the replica controller virtual machine including:

determine one or more conversions applicable to the system state data corresponding to one or more differences between the first controller virtual machine and the second controller virtual machine, wherein the one or more conversions comprise one or more of converting to different dynamically linked libraries, conversions between older and new data structures, or conversions between newer and older data structures; and

apply the one or more conversions to the system state data;

transfer execution of one or more processes from the first controller virtual machine to the replica controller virtual machine;

after transferring the system state data and execution of the one or more processes, operate the replica controller virtual machine without suspending the first controller.

8. The computer program product of claim 7 , wherein the replica controller virtual machine is on the same server as the first controller virtual machine.

9. The computer program product of claim 7 , wherein the first controller virtual machine and the replica controller virtual machine are synchronized for runtime state.

10. The computer program product of claim 7 , wherein the network is operated under a cell based distributed fabric protocol (CDFP).

11. The computer program product of claim 7 , the computer readable program code being configured to provide state update synchronization between the first controller virtual machine and the replica controller virtual machine while both controller virtual machines are running.

12. The computer program product of claim 7 , wherein the first controller virtual machine is operated as a master controller virtual machine and the replica controller virtual machine is operated as a stand-by controller virtual machine.

13. A network, comprising:

one or more servers comprising memory storing program instructions that when executed by a processor on the one or more servers cause the one or more servers to:

operate a first controller virtual machine on a server;

if a new software patch is available, replicate the first controller virtual machine into a replica controller virtual machine, the replica controller virtual machine including the new software patch;

transfer system state data from the first controller virtual machine to the replica controller virtual machine including:

determine one or more conversions applicable to the system state data corresponding to one or more differences between the first controller virtual machine and the second controller virtual machine, wherein the one or more conversions comprise one or more of converting to different dynamically linked libraries, conversions between older and new data structures, or conversions between newer and older data structures; and

apply the one or more conversions to the system state data;

transfer execution of one or more processes from the first controller virtual machine to the replica controller virtual machine;

after transferring the system state data and execution of the one or more processes, operate the replica controller virtual machine without suspending the first controller.

14. The network of claim 13 , wherein the network is a distributed fabric network operated under a cell based distributed fabric protocol (CDFP).

15. The network of claim 13 , wherein the server includes both the first controller virtual machine and the second controller virtual machine, and wherein the server is part of a multicast group of servers.

16. The network of claim 13 wherein the one or more servers further comprise memory storing program instructions that when executed by a processor on the one or more servers cause the one or more servers to:

in response to completion of the transfer of the execution of the one or more processes from the first controller virtual machine to the second controller virtual machine:

terminate execution of the one or more processes on the first controller virtual machine.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 6, 2019
From: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE LTD.
To: LENOVO INTERNATIONAL LIMITED
Reel/Frame 050298/0505 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2014
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.
Reel/Frame 034194/0353 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 5, 2012
From: KAMBLE, KESHAV G.; LEU, DAR-REN; PANDEY, VIJOY A.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 029086/0780 →