WO2017053810A1 - In-service upgrade of kernel loadable modules - Google Patents

In-service upgrade of kernel loadable modules Download PDF

Info

Publication number
WO2017053810A1
WO2017053810A1 PCT/US2016/053462 US2016053462W WO2017053810A1 WO 2017053810 A1 WO2017053810 A1 WO 2017053810A1 US 2016053462 W US2016053462 W US 2016053462W WO 2017053810 A1 WO2017053810 A1 WO 2017053810A1
Authority
WO
WIPO (PCT)
Prior art keywords
container
active
standby
klms
operating system
Prior art date
Application number
PCT/US2016/053462
Other languages
French (fr)
Inventor
Srinivas VEERESHWARA
Senthilkumar PANDIAN
Akshya Kumar SINGH
Ravinandan ARAKALI
Original Assignee
Cisco Technology, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cisco Technology, Inc. filed Critical Cisco Technology, Inc.
Priority to EP16778594.8A priority Critical patent/EP3353651B1/en
Priority to CN201680052521.9A priority patent/CN108027724B/en
Publication of WO2017053810A1 publication Critical patent/WO2017053810A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Definitions

  • the present disclosure relates generally to communication networks, and more particularly, to in-service upgrade of software in network devices.
  • Figure 1 depicts an example of a computer system in which embodiments described herein may be implemented.
  • Figure 2 illustrates an example of a system for in-service upgrade of kernel loadable modules, in accordance with one embodiment.
  • Figure 3 is a flowchart illustrating an overview of a process for in-service upgrade of kernel loadable modules, in accordance with one embodiment.
  • FIG. 4 is a sequence diagram for in-service upgrade of kernel loadable modules, in accordance with one embodiment.
  • a method generally comprises creating an active container and a standby container for a single supervisor of an operating system at a network device, instantiating instances for active Kernel Loadable Modules (KLMs) for servicing the active container, instantiating instances for standby KLMs for servicing the standby container, wherein one or more of the standby KLMs comprise upgraded versions of the active KLMs, and switching over from the active container to the standby container to perform an in-service upgrade of the KLMs for the operating system.
  • KLMs Kernel Loadable Modules
  • an apparatus generally comprises a host operating system comprising an active kernel name space associated with an active container and a standby kernel name space associated with a standby container, the active and standby containers defining a single supervisor for the host operating system, and a processor operable to instantiate instances for active Kernel Loadable Modules (KLMs) for servicing the active container, instantiate instances for standby KLMs for servicing the standby container, wherein one or more of the standby KLMs comprise upgraded versions of the active KLMs, and switch over from the active container to the standby container to perform an in-service upgrade of the active KLMs for the host operating system.
  • KLMs Kernel Loadable Modules
  • ISSU In-Service Software Upgrade
  • ISSU on network devices may be performed using redundant router processor/supervisor physical cards on a modular chassis.
  • a route processor may be active in slot-X, while RP2 is in standby mode on slot-Y.
  • the route processor physical card (RP2) in the role of standby is first upgraded with new software.
  • the switch over is then triggered for the current standby card (RP2) with the new software to become active.
  • the route processor physical card (RP1) may then be upgraded with the new software and come up in the role of standby.
  • KLMs Kernel Loadable Modules
  • GPLs General Public Licenses
  • KLMs also referred to as loadable kernel modules, kernel extensions, kernel modules, or kernel-mode drivers
  • kernel-mode drivers are pieces of code that are loaded into the kernel, as opposed to being a separate user process.
  • the embodiments described herein provide for the upgrade of KLMs to realize container based in-service software upgrades.
  • dual instances of each upgradable KLM are used, with each instance servicing a container. Containment may be achieved by having dual instances of each KLM such that an instance of a KLM is servicing only one container at any given time.
  • the dual instances of KLMs are created by auto-generating code to prevent symbol clashes when installing the kernel module.
  • the embodiments facilitate in-service software upgrades on single supervisor based network devices and improve the capabilities and reliability of single supervisor based network devices.
  • the embodiments allow for the upgrade of software for new functionality while the network device is still in service with little or no disruption to data traffic.
  • One or more embodiments may allow for a reduced control plane down time with a single physical supervisor model, similar to the control plane down time with a dual physical supervisor model.
  • the network device 10 may comprise, for example, a router, switch (e.g., ToR (Top of Rack) switch), server, hub, firewall, gateway, router/switch, workstation, mainframe, appliance, host, and the like.
  • the network device 10 may operate in a network comprising any number of network devices in communication via any number of nodes (e.g., routers, switches, controllers, gateways, access layer devices, aggregation layer devices, edge devices, core devices, or other network devices), which facilitate passage of data within the network.
  • nodes e.g., routers, switches, controllers, gateways, access layer devices, aggregation layer devices, edge devices, core devices, or other network devices
  • the network device 10 may communicate over one or more networks (e.g., local area network (LAN), metropolitan area network (MAN), wide area network (WAN), virtual private network (VPN), virtual local area network (VLAN), wireless network, enterprise network, Internet, intranet, radio access network, public switched network, or any other network).
  • networks e.g., local area network (LAN), metropolitan area network (MAN), wide area network (WAN), virtual private network (VPN), virtual local area network (VLAN), wireless network, enterprise network, Internet, intranet, radio access network, public switched network, or any other network.
  • the network device 10 is a programmable machine that may be implemented in hardware, software, or any combination thereof.
  • the network device 10 includes one or more processor 12, memory 14, network interfaces 16, and host OS (Operating System) 15.
  • Memory 14 may be a volatile memory or non-volatile storage, which stores various applications, operating systems, modules, and data for execution and use by the processor 12.
  • components of the host operating system 15 e.g., code, logic, software, firmware, etc.
  • Logic may be encoded in one or more tangible media for execution by the processor 12.
  • the processor 12 may execute codes stored in a computer-readable medium such as memory 14.
  • the computer-readable medium may be, for example, electronic (e.g., RAM (random access memory), ROM (read-only memory), EPROM (erasable programmable read-only memory)), magnetic, optical (e.g., CD, DVD), electromagnetic, semiconductor technology, or any other suitable medium.
  • logic may be encoded in non-transitory computer- readable media.
  • the network interfaces 16 may comprise any number of interfaces (linecards, ports) for receiving data or transmitting data to other devices.
  • the network interface 16 may include, for example, an Ethernet interface for connection to a computer or network.
  • the network interfaces 16 may be configured to transmit or receive data using a variety of different communication protocols.
  • the interfaces 16 may include mechanical, electrical, and signaling circuitry for communicating data over physical links coupled to the network.
  • the host operating system 15 includes a host kernel 16 in communication with a supervisor comprising an active container 17A and standby container 17B, and a linecard comprising linecard container 17C.
  • the containers (software containers) 17A, 17B, 17C effectively partition the resources managed by a single operating system into isolated groups to better balance conflicting demands on resource usage between the isolated groups.
  • the containers 17 A, 17B, 17C are Linux containers (LXCs), which are part of an operating system-level virtualization environment for running multiple isolated Linux systems (containers) on a single Linux control host 16.
  • Each software container 17A, 17B, 17C comprises a plurality of KLMs
  • dual instances of KLMs 19 A, 19B are created with stateful handoff between the active and standby containers 17 A. 17B. Containment is achieved by having dual instances of each KLM such that an instance of a KLM is servicing only one container at a given time.
  • the embodiments allow the KLMs 19A, 19B to run as multiple instances and share the hardware devices between the virtual instances so that multiple instances of KLMs can be loaded in the same kernel 16.
  • the dual instances of KLMs 19 A, 19B are created by auto- generating code such that there will be no symbol clashes when installing the kernel module, as described in detail below.
  • Each active and standby supervisor container 11 A, 17B may include, for example, a system manager linked to one or more semces, an installer, CLI (Command Line Interface), object store, persistent storage service (pss), or any other components that may be used to implement the embodiments described herein.
  • the linecard container 17C may also be provided with a system manager linked to one or more linecard services. As described below, the linecard container services may be restarted and LC KLMs 19C unloaded and loaded after switchover from active to standby supervisor container.
  • the host may also include one or more host KLMs that are not upgradable.
  • the host KLMs are associated with administrative services, which may include host based services, an install agent, and a container provisioning and management module, for example.
  • network device 10 shown in Figure I and described above is only an example and that different configurations of network devices may be used.
  • the network device 10 may further include any suitable combination of hardware, software, algorithms, processors, devices, components, modules, or elements operable to facilitate the capabilities described herein.
  • FIG. 2 illustrates an example of a computer system 20 operable to implement in-service upgrade of KLMs, in accordance with one embodiment.
  • host OS Operating System
  • LXC Local Containers
  • the host OS 21 and containers 26, 27 operate as virtual nodes. For simplification only the host OS 21, supervisor containers 26, 27, and hardware 22 are shown.
  • the system 20 may also include a linecard container or other components.
  • the system 20 may include a collection of processes (administration semces) running the host OS natively, which help manage the LXCs and orchestrate a SSO (Stateful Switchover) based upgrade.
  • Hardware 22 may include 10 (input/output) FPGA (Field-Programmable
  • hardware 22 may comprise one or more ASICs (Application- Specific Integrated Circuits).
  • the system software may run directly on the hardware 22 and inside a separate LXC for the supervisor (active container 26 or standby container 27) and linecard.
  • the supervisor active container 26 or standby container 27
  • linecard As described further below, the standby supervisor container 27 is spawned as part of the KLM upgrade procedure and brought up as a standby supervisor.
  • the supervisor containers 26, 27 may communicate with each other over an emulated physical connection 31 using a virtual Ethernet link (or virtual Ethernet (veth) pair ).
  • the standby container 27 may communicate with the active container 26 over MTS (Message and Transaction Service) for version checking, syncing, etc.
  • MTS Message and Transaction Service
  • the containers 26, 27 may also communicate via a management interface at the host OS 21.
  • an active sysmgr and standby sysmgr may communicate via
  • KLMs are created at the supervisor containers.
  • a first plurality of active KLMs 29 are instantiated at active container 26 in an active role and a second group of standby KLMs 30 are instantiated at the standby container 27 in a standby role.
  • these include klm mts (message and transaction service), klm_pss (persistent storage sendee), klm_sysmgr_hb (system manager), klm_aipc, klm rwsem, klm_sdwrap, and klm utaker.
  • the KLMs 29 are associated with an active kernel name space on the host OS (Linux kernel) 21 and the KLMs 30 are associated with a standby kernel name space on the host OS.
  • One or more instances of the standby KLMs 30 may be upgraded versions of the
  • the KLMs 29, 30 service only one container at a time. Thus, even though there are dual instances of a KLM, only one instance is active at one time.
  • Modules 28 associated with LC processes e.g., klm_knsa,
  • a linecard container (as shown in Figure 1 ) provides for cleaner isolation for LC applications.
  • the linecard container itself is not virtiialized as active/standby because the linecard applications and install infrastructure were not designed to work in active/standby mode.
  • a four container model would require more memory/CPU resources.
  • a rolling upgrade model is utilized across the supervisor and linecard. In this model, the supervisor is upgraded first (as described below) and the LCs upgraded either one at a time or as a batch of LCs. During the upgrade window, the supervisor would be running a different version of software (code) than the LC.
  • KLMs such as klm_mts (message and transaction service), klm_pss (persistent storage service), klm_sysmgr_hb (system manager), and the like, will be instantiated separately for the linecard container.
  • the LC container may also need to instantiate its own klm_sse_lc module to get any of the hardware/platform information serviced from the single hardware/platform KLM modules.
  • These KLMs may be initialized in the host OS 21.
  • an installer may orchestrate the supemsor control plane upgrade using a hot standby.
  • S SO Stateful Switchover
  • the linecard application would still ran older versions during the supervisor control plane upgrade.
  • the installer may perform a hitless upgrade with the help of a linecard manager, which will orchestrate the LC upgrade sequence.
  • the LC container may then go through a stateful reboot with the newer software.
  • FIG. 3 is a flowchart illustrating an overview of a process for in- service KLM upgrade, in accordance with one embodiment.
  • the system brings up (creates) the active supervisor software container 26 for a single supervisor of an operating system at a network device ( Figures 2 and 3).
  • Instances for KLMs 29 servicing the active supervisor container 27 are instantiated (step 35).
  • the standby container 27 is then brought up (created) (step 36).
  • An in-service software upgrade can then be performed by instantiating KLM instances 30 for servicing the standby container 27 (step 37).
  • These KLMs 30 are in standby mode along with the container 27.
  • One or more of the standby KLMs (instances of KLMs at standby container) comprise upgraded versions of the active KLMs.
  • the standby container 27 communicates with the active container 26 to get the current running state of the active container.
  • the standby container 27 is then switched to active and the upgraded KLMs 30 are now operational (step 38).
  • the previous active container 26 can then be deleted or changed to the new standby container (step 39).
  • an in-service upgrade of the active KLMs can be performed for the operating system 21.
  • the linecard may still be running an older software version during the supervisor control plane upgrade. After upgrade of the supervisor, the linecard container can go through a stateful reboot with the upgraded software.
  • the supervisor control plane may send and receive protocol packets during the LC upgrade window.
  • FIG. 4 is a sequence diagram illustrating an example of a process flow between a host OS 40, VMM (Virtual Machine Manager/Monitor (e.g., Hypervisor)) 42, VRT API (Virtualization Application Programming Interface) 44, active supervisor container 46, and standby supervisor container 48.
  • VMM Virtual Machine Manager/Monitor
  • VRT API Virtualization Application Programming Interface
  • active supervisor container 46 active supervisor container 46
  • standby supervisor container 48 standby supervisor container 48.
  • the host OS 40 initiates the process with VMM
  • the VMM 42 may interact with code block (not shown) to setup a directory hierarchy and perform other activities (e.g., set up groups, rules, etc.).
  • the VMM 42 may, for example, setup a file system for the primary supervisor instance, unpack system software and local system KLMs from a system image, run host initialization for the container, including installing the KLMs, and boot up the primary container for the supervisor.
  • the local system KLM/init scripts may be organized as a separate package, with these KLMs installed in the host before spawning of the supervisor container.
  • the VMM 42 spawns the active container 46, the container is created by the VRT API 44.
  • the KLMs are installed and a container template may be dynamically generated so that device numbers are exposed to the container.
  • the VMM 42 sets up the container for LC applications by first setting up a file system for the LC instance.
  • the VMM 42 may then unpack LC KLMs (e.g., MTS, PSS, sysmgr_hb, klm_sse_lc, BCM) from the system image and install the LC KLMs and bootup the LC container.
  • LC KLMs e.g., MTS, PSS, sysmgr_hb, klm_sse_lc, BCM
  • the VMM 42 then works with the VRT API 44 to spawn and create the backup container 48.
  • the VMM 42 receives a request to bring up the standby container 48 with a newer image (one or more upgraded KLMs).
  • the standby container 48 then becomes a hot standby and triggers the switchover sequence in which the standby supervisor container becomes the active supervisor container. After the standby container 48 is switched to the active container, the old KLMs can be uninstalled.
  • the previously active container 46 may be killed or changed to a standby container.
  • the installer may then request the LCM (Linecard Manager) to perform an upgrade sequence.
  • the LCM invokes the host API to restart the LC LXC with a newer software version.
  • the LCM may then trigger an LC upgrade over handshake to the supervisor after successful restart of the LC applications.
  • KLMs 29, 30 are used (one set per LXC instance 26, 27), which are loaded with the context of active and standby LXCs. This results in sharing of the hardware devices between the virtual instances and the need to load multiple instances of KLMs in the same kernel.
  • Linux kernel module loader subsystems do not allow the same KLM to be loaded twice as the module name and exported functions would conflict with the already loaded instance.
  • a solution to this conflict is to prefix the module name and exported functions with a prefix identifier (VM identifier) so that the namespace can be introduced in the module build time.
  • VM identifier prefix identifier
  • the modules that are packaged as part of "nxos system klms.rpm" may be packaged as shown in the following example:
  • the LC KLMs may be packaged with LC prefix:
  • LC KLMs (klm sysmgr-hb lc.ko/klm sse lc.ko) do not need to be prefixed and may be used as is from the original source:
  • a new code generator tool may be used to re-generate source files with module name and exported symbols prefixed with " 0" and " 1".
  • the build tools may be used to generate two KLM module object codes for each of the KLM to be virtualized.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)
  • Hardware Redundancy (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

In one embodiment, a method includes creating an active container and a standby container for a single supervisor of an operating system at a network device, instantiating instances for active Kernel Loadable Modules (KLMs) for servicing the active container, instantiating instances for standby KLMs for servicing the standby container, wherein one or more of the standby KLMs comprise upgraded versions of the active KLMs, and switching over from the active container to the standby container to perform an in-service upgrade of the KLMs for the operating system. An apparatus and logic are also disclosed herein.

Description

IN-SERVICE UPGRADE OF KERNEL LOADABLE MODULES
TECHNICAL FIELD
[0001] The present disclosure relates generally to communication networks, and more particularly, to in-service upgrade of software in network devices.
BACKGROUND
[0002] Software upgrades that are used to implement specific features or services provided by a network device are often needed to capture new features, enhancements, or fixes to programming errors. For example, software upgrades may be implemented when customers want new or additional features or when solutions to specific programming errors require an upgrade to software. However, a significant impact on the availability of a network device may occur when upgrading software. As a result, downtime of a particular network device may impact the capability of an associated network.
BRIEF DESCRIPTION OF THE DRAWINGS
[0003] Figure 1 depicts an example of a computer system in which embodiments described herein may be implemented.
[0004] Figure 2 illustrates an example of a system for in-service upgrade of kernel loadable modules, in accordance with one embodiment.
[0005] Figure 3 is a flowchart illustrating an overview of a process for in-service upgrade of kernel loadable modules, in accordance with one embodiment.
[0006] Figure 4 is a sequence diagram for in-service upgrade of kernel loadable modules, in accordance with one embodiment.
[0007] Corresponding reference characters indicate corresponding parts throughout the several views of the drawings. DESCRIPTION OF EXAMPLE EMBODIMENTS
Overview
[0008] In one embodiment, a method generally comprises creating an active container and a standby container for a single supervisor of an operating system at a network device, instantiating instances for active Kernel Loadable Modules (KLMs) for servicing the active container, instantiating instances for standby KLMs for servicing the standby container, wherein one or more of the standby KLMs comprise upgraded versions of the active KLMs, and switching over from the active container to the standby container to perform an in-service upgrade of the KLMs for the operating system.
[0009] In yet another embodiment, an apparatus generally comprises a host operating system comprising an active kernel name space associated with an active container and a standby kernel name space associated with a standby container, the active and standby containers defining a single supervisor for the host operating system, and a processor operable to instantiate instances for active Kernel Loadable Modules (KLMs) for servicing the active container, instantiate instances for standby KLMs for servicing the standby container, wherein one or more of the standby KLMs comprise upgraded versions of the active KLMs, and switch over from the active container to the standby container to perform an in-service upgrade of the active KLMs for the host operating system.
Example Embodiments
[0010] The following description is presented to enable one of ordinary' skill in the art to make and use the embodiments. Descriptions of specific embodiments and applications are provided only as examples, and various modifications will be readily apparent to those skilled in the art. The general principles described herein may be applied to other applications without departing from the scope of the embodiments. Thus, the embodiments are not to be limited to those shown, but are to be accorded the widest scope consistent with the principles and features described herein. For purpose of clarity, details relating to technical material that is known in the technical fields related to the embodiments have not been described in detail.
[0011] As network devices function within a communications network, there may be a need to upgrade software. In most networks, a significant portion of downtime is due to software upgrade or maintenance. For example, software upgrades to implement new features or capabilities, or apply maintenance are often primary causes for system inaccessibility. Performing an In-Service Software Upgrade (ISSU) as opposed to a device reload significantly reduces the impact and downtime by upgrading software while the network device remains in sendee in the network.
[0012] In one example, ISSU on network devices (e.g., routers, switches, or other network elements) may be performed using redundant router processor/supervisor physical cards on a modular chassis. For example, a route processor (RP1) may be active in slot-X, while RP2 is in standby mode on slot-Y. In this example, during in- service software upgrade, the route processor physical card (RP2) in the role of standby is first upgraded with new software. The switch over is then triggered for the current standby card (RP2) with the new software to become active. The route processor physical card (RP1) may then be upgraded with the new software and come up in the role of standby. There may be a physical Ethernet connection between RPi and RP2 for use by software running on the two physical cards to communicate with each other for any syncing purposes.
[0013] Many companies that use a base operating system such as Linux use
Kernel Loadable Modules (KLMs) to provide performance and other benefits of KLMs, while at the same time not violating GPLs (General Public Licenses) and protecting their intellectual property. KLMs (also referred to as loadable kernel modules, kernel extensions, kernel modules, or kernel-mode drivers) are pieces of code that are loaded into the kernel, as opposed to being a separate user process.
[0014] With advancements in software developments in the field of Linux containers, there is a need for in-service software upgrade with dual Linux containers operating in active or standby roles on a single physical card. While the containers provide containment of user processes, with the kernel being the same for both the Linux containers, a mechanism is needed to contain the KLMs as well as to be able to upgrade the KLMs.
[0015] The embodiments described herein provide for the upgrade of KLMs to realize container based in-service software upgrades. In certain embodiments, dual instances of each upgradable KLM are used, with each instance servicing a container. Containment may be achieved by having dual instances of each KLM such that an instance of a KLM is servicing only one container at any given time. In one embodiment, the dual instances of KLMs are created by auto-generating code to prevent symbol clashes when installing the kernel module. As described in detail below, the embodiments facilitate in-service software upgrades on single supervisor based network devices and improve the capabilities and reliability of single supervisor based network devices. The embodiments allow for the upgrade of software for new functionality while the network device is still in service with little or no disruption to data traffic. One or more embodiments may allow for a reduced control plane down time with a single physical supervisor model, similar to the control plane down time with a dual physical supervisor model.
[0016] Referring now to the drawings and first to Figure I, an example of a network device 10 that is capable of in-service upgrade of KLMs is shown. The network device 10 may comprise, for example, a router, switch (e.g., ToR (Top of Rack) switch), server, hub, firewall, gateway, router/switch, workstation, mainframe, appliance, host, and the like. The network device 10 may operate in a network comprising any number of network devices in communication via any number of nodes (e.g., routers, switches, controllers, gateways, access layer devices, aggregation layer devices, edge devices, core devices, or other network devices), which facilitate passage of data within the network. The network device 10 may communicate over one or more networks (e.g., local area network (LAN), metropolitan area network (MAN), wide area network (WAN), virtual private network (VPN), virtual local area network (VLAN), wireless network, enterprise network, Internet, intranet, radio access network, public switched network, or any other network).
[0017] In one embodiment, the network device 10 is a programmable machine that may be implemented in hardware, software, or any combination thereof. The network device 10 includes one or more processor 12, memory 14, network interfaces 16, and host OS (Operating System) 15.
[0018] Memory 14 may be a volatile memory or non-volatile storage, which stores various applications, operating systems, modules, and data for execution and use by the processor 12. For example, components of the host operating system 15 (e.g., code, logic, software, firmware, etc.) may be stored in memor' 14. [0019] Logic may be encoded in one or more tangible media for execution by the processor 12. For example, the processor 12 may execute codes stored in a computer-readable medium such as memory 14. The computer-readable medium may be, for example, electronic (e.g., RAM (random access memory), ROM (read-only memory), EPROM (erasable programmable read-only memory)), magnetic, optical (e.g., CD, DVD), electromagnetic, semiconductor technology, or any other suitable medium. In certain embodiments, logic may be encoded in non-transitory computer- readable media.
[0020] The network interfaces 16 may comprise any number of interfaces (linecards, ports) for receiving data or transmitting data to other devices. The network interface 16 may include, for example, an Ethernet interface for connection to a computer or network. The network interfaces 16 may be configured to transmit or receive data using a variety of different communication protocols. The interfaces 16 may include mechanical, electrical, and signaling circuitry for communicating data over physical links coupled to the network.
[0021] In the example shown in Figure 1 , the host operating system 15 includes a host kernel 16 in communication with a supervisor comprising an active container 17A and standby container 17B, and a linecard comprising linecard container 17C. The containers (software containers) 17A, 17B, 17C effectively partition the resources managed by a single operating system into isolated groups to better balance conflicting demands on resource usage between the isolated groups. In one example, the containers 17 A, 17B, 17C are Linux containers (LXCs), which are part of an operating system-level virtualization environment for running multiple isolated Linux systems (containers) on a single Linux control host 16.
[0022] Each software container 17A, 17B, 17C comprises a plurality of KLMs
19A, 19B, 19C having an associated name space 18A, 18B, 18C in the host kernel 16. As described in detail below, dual instances of KLMs 19 A, 19B are created with stateful handoff between the active and standby containers 17 A. 17B. Containment is achieved by having dual instances of each KLM such that an instance of a KLM is servicing only one container at a given time. The embodiments allow the KLMs 19A, 19B to run as multiple instances and share the hardware devices between the virtual instances so that multiple instances of KLMs can be loaded in the same kernel 16. In one or more embodiments, the dual instances of KLMs 19 A, 19B are created by auto- generating code such that there will be no symbol clashes when installing the kernel module, as described in detail below.
[0023] Each active and standby supervisor container 11 A, 17B may include, for example, a system manager linked to one or more semces, an installer, CLI (Command Line Interface), object store, persistent storage service (pss), or any other components that may be used to implement the embodiments described herein. The linecard container 17C may also be provided with a system manager linked to one or more linecard services. As described below, the linecard container services may be restarted and LC KLMs 19C unloaded and loaded after switchover from active to standby supervisor container.
[0024] The host may also include one or more host KLMs that are not upgradable. The host KLMs are associated with administrative services, which may include host based services, an install agent, and a container provisioning and management module, for example.
[0025] It is to be understood that the network device 10 shown in Figure I and described above is only an example and that different configurations of network devices may be used. The network device 10 may further include any suitable combination of hardware, software, algorithms, processors, devices, components, modules, or elements operable to facilitate the capabilities described herein.
[0026] Figure 2 illustrates an example of a computer system 20 operable to implement in-service upgrade of KLMs, in accordance with one embodiment. In this example, host OS (Operating System) 21 is a Linux distribution providing the virtualization tools and basic sendees needed to create LXC (Linux Containers) 26, 27 on the network device. The host OS 21 and containers 26, 27 operate as virtual nodes. For simplification only the host OS 21, supervisor containers 26, 27, and hardware 22 are shown. As described above with respect to Figure 1, the system 20 may also include a linecard container or other components. For example, the system 20 may include a collection of processes (administration semces) running the host OS natively, which help manage the LXCs and orchestrate a SSO (Stateful Switchover) based upgrade. [0027] Hardware 22 may include 10 (input/output) FPGA (Field-Programmable
Gate Array) 23, controller hub 24, CPU (Central Processing Unit) 25, or any combination of these or other components. For example, hardware 22 may comprise one or more ASICs (Application- Specific Integrated Circuits).
[002S] The system software may run directly on the hardware 22 and inside a separate LXC for the supervisor (active container 26 or standby container 27) and linecard. As described further below, the standby supervisor container 27 is spawned as part of the KLM upgrade procedure and brought up as a standby supervisor.
[0029] The supervisor containers 26, 27 may communicate with each other over an emulated physical connection 31 using a virtual Ethernet link (or virtual Ethernet (veth) pair ). The standby container 27 may communicate with the active container 26 over MTS (Message and Transaction Service) for version checking, syncing, etc. The containers 26, 27 may also communicate via a management interface at the host OS 21. In one example, an active sysmgr and standby sysmgr may communicate via
MTS/AIPC.
[0030] As previously described with respect to Figure 1 , dual instances of
KLMs are created at the supervisor containers. As shown in Figure 2, a first plurality of active KLMs 29 are instantiated at active container 26 in an active role and a second group of standby KLMs 30 are instantiated at the standby container 27 in a standby role. In the example shown in Figure 2, these include klm mts (message and transaction service), klm_pss (persistent storage sendee), klm_sysmgr_hb (system manager), klm_aipc, klm rwsem, klm_sdwrap, and klm utaker. The KLMs 29 are associated with an active kernel name space on the host OS (Linux kernel) 21 and the KLMs 30 are associated with a standby kernel name space on the host OS. One or more instances of the standby KLMs 30 may be upgraded versions of the
corresponding instances of the active KLMs 29. As noted above, the KLMs 29, 30 service only one container at a time. Thus, even though there are dual instances of a KLM, only one instance is active at one time.
[0031] Modules 28 associated with LC processes (e.g., klm_knsa,
linux_bcm_kne, linux_kernel_bd, linux user bde, and klm_sysmgr_hb_lc) are associated to only one container at a time. [0032] The addition of a linecard container (as shown in Figure 1 ) provides for cleaner isolation for LC applications. However, the linecard container itself is not virtiialized as active/standby because the linecard applications and install infrastructure were not designed to work in active/standby mode. Also, a four container model would require more memory/CPU resources. In one embodiment, a rolling upgrade model is utilized across the supervisor and linecard. In this model, the supervisor is upgraded first (as described below) and the LCs upgraded either one at a time or as a batch of LCs. During the upgrade window, the supervisor would be running a different version of software (code) than the LC.
[0033] In order to employ a rolling upgrade, KLMs such as klm_mts (message and transaction service), klm_pss (persistent storage service), klm_sysmgr_hb (system manager), and the like, will be instantiated separately for the linecard container. The LC container may also need to instantiate its own klm_sse_lc module to get any of the hardware/platform information serviced from the single hardware/platform KLM modules. These KLMs may be initialized in the host OS 21. In one example, an installer may orchestrate the supemsor control plane upgrade using a hot standby. S SO (Stateful Switchover) mechanism. The linecard application would still ran older versions during the supervisor control plane upgrade. The installer may perform a hitless upgrade with the help of a linecard manager, which will orchestrate the LC upgrade sequence. The LC container may then go through a stateful reboot with the newer software.
[0034] An overview of the KLM in-service upgrade process is described below with respect to the flowchart of Figure 3 and sequence diagram of Figure 4.
[0035] It is to be understood that the components and architecture shown in Figure 2 are only examples and that other components or architectures may be used, wdthout departing from the scope of the embodiments.
[0036] Figure 3 is a flowchart illustrating an overview of a process for in- service KLM upgrade, in accordance with one embodiment. At step 34, the system brings up (creates) the active supervisor software container 26 for a single supervisor of an operating system at a network device (Figures 2 and 3). Instances for KLMs 29 servicing the active supervisor container 27 are instantiated (step 35). The standby container 27 is then brought up (created) (step 36). An in-service software upgrade can then be performed by instantiating KLM instances 30 for servicing the standby container 27 (step 37). These KLMs 30 are in standby mode along with the container 27. One or more of the standby KLMs (instances of KLMs at standby container) comprise upgraded versions of the active KLMs. The standby container 27 communicates with the active container 26 to get the current running state of the active container. The standby container 27 is then switched to active and the upgraded KLMs 30 are now operational (step 38). The previous active container 26 can then be deleted or changed to the new standby container (step 39). By switching over from the active container 26 to the standby container 27, an in-service upgrade of the active KLMs can be performed for the operating system 21.
[0037] The linecard may still be running an older software version during the supervisor control plane upgrade. After upgrade of the supervisor, the linecard container can go through a stateful reboot with the upgraded software. The supervisor control plane may send and receive protocol packets during the LC upgrade window.
[0038] It is to be understood that the process shown in Figure 3 and described above is only an example and steps may be added, modified, reordered, or combined, without departing from the scope of the embodiments. Also, it may be noted that the processor 12 or host OS 15 shown in Figure I (or a combination thereof) may implement one or more of the steps shown in Figure 3 and described herein. For example, logic encoded on computer readable media and executed by the processor 12 may be operable to perform one or more steps shown in Figure 3 and described above.
[0039] Figure 4 is a sequence diagram illustrating an example of a process flow between a host OS 40, VMM (Virtual Machine Manager/Monitor (e.g., Hypervisor)) 42, VRT API (Virtualization Application Programming Interface) 44, active supervisor container 46, and standby supervisor container 48. Once the kernel boots up, it can run init scripts that are related to host OS bring up. Host OS bring up triggers bring up of the main host service VMM 42. As described below, the VMM boot code brings up the primary LXC for active supervisor 46, and once the primary supervisor is up, the VMM boot code can bring up bring the LC container (not shown) and standb container 48.
[0040] As shown in Figure 4, the host OS 40 initiates the process with VMM
42. The VMM 42 may interact with code block (not shown) to setup a directory hierarchy and perform other activities (e.g., set up groups, rules, etc.). The VMM 42 may, for example, setup a file system for the primary supervisor instance, unpack system software and local system KLMs from a system image, run host initialization for the container, including installing the KLMs, and boot up the primary container for the supervisor. The local system KLM/init scripts may be organized as a separate package, with these KLMs installed in the host before spawning of the supervisor container. After the VMM 42 spawns the active container 46, the container is created by the VRT API 44. The KLMs are installed and a container template may be dynamically generated so that device numbers are exposed to the container.
[0041] The VMM 42 sets up the container for LC applications by first setting up a file system for the LC instance. The VMM 42 may then unpack LC KLMs (e.g., MTS, PSS, sysmgr_hb, klm_sse_lc, BCM) from the system image and install the LC KLMs and bootup the LC container.
[0042] The VMM 42 then works with the VRT API 44 to spawn and create the backup container 48. When it is time to upgrade one or more of the KLMs, the VMM 42 receives a request to bring up the standby container 48 with a newer image (one or more upgraded KLMs). The standby container 48 then becomes a hot standby and triggers the switchover sequence in which the standby supervisor container becomes the active supervisor container. After the standby container 48 is switched to the active container, the old KLMs can be uninstalled. The previously active container 46 may be killed or changed to a standby container.
[0043] The installer may then request the LCM (Linecard Manager) to perform an upgrade sequence. In one example, the LCM invokes the host API to restart the LC LXC with a newer software version. The LCM may then trigger an LC upgrade over handshake to the supervisor after successful restart of the LC applications.
[0044] As previously described with respect to Figure 2, dual instances of
KLMs 29, 30 are used (one set per LXC instance 26, 27), which are loaded with the context of active and standby LXCs. This results in sharing of the hardware devices between the virtual instances and the need to load multiple instances of KLMs in the same kernel. Linux kernel module loader subsystems do not allow the same KLM to be loaded twice as the module name and exported functions would conflict with the already loaded instance. In one embodiment, a solution to this conflict is to prefix the module name and exported functions with a prefix identifier (VM identifier) so that the namespace can be introduced in the module build time. For example, the modules that are packaged as part of "nxos system klms.rpm" may be packaged as shown in the following example:
/isan/lib/modules/0/klm_mts_0.ko
/isan/lib/modules/0/klm_sse_0.ko
/isan/lib/modules/0/klm_nvram_0.ko
/isan/lib/modules/1 /klm_mts_ 1.ko
/isan/lib/modules/l/klm_sse_l .ko
/isan/iib/modules/l/ldm_nvram_l .ko
[0045] Similarly, the LC KLMs may be packaged with LC prefix:
/lc/isan lib/modules/klm_mts_lc.ko
/lc/isan/lib hiodules/klm_aipc_lc.ko
/lc/isan/lib/modules/klm_pss_lc.ko
[0046] However, some of the LC KLMs (klm sysmgr-hb lc.ko/klm sse lc.ko) do not need to be prefixed and may be used as is from the original source:
/lc/isan''lib/modules/lclm_sysmgr-hb_lc.ko
/lc/isan/lib/modules/klm_sse_lc.ko
[0047] A new code generator tool may be used to re-generate source files with module name and exported symbols prefixed with " 0" and " 1". The build tools may be used to generate two KLM module object codes for each of the KLM to be virtualized.
[0048] It is to be understood that the prefixes, module names, and KLMs described above are only examples and that different formats may be used to distinguish between instances of active and standby KLMs, or different types of KLMs may be used without departing from the scope of the embodiments.
[0049] Although the method and apparatus have been described in accordance with the embodiments shown, one of ordinary skill in the art will readily recognize that there could be variations made to the embodiments without departing from the scope of the invention. Accordingly, it is intended that all matter contained in the above description and shown in the accompanying drawings shall be interpreted as illustrative and not in a limiting sense.

Claims

CLAIMS WHAT IS CLAIMED IS:
1. A method comprising:
creating an active container and a standby container for a single supervisor of an operating system at a network device;
instantiating instances for active Kernel Loadable Modules (KLMs) for servicing said active container;
instantiating instances for standby KLMs for servicing said standby container, wherein one or more of said standby KLMs comprise upgraded versions of said active KLMs; and
switching over from said active container to said standby container to perform an in-service upgrade of said active KLMs for the operating system at the network device.
2. The method of claim I wherein the operating system comprises an active kernel name space associated with said active KLMs and a standby kernel name space associated with said standby KLMs.
3. The method of claim 1 further comprising inserting a prefix identifier into active and standby KLM names to distinguish between said active KLMs and said standby KLMs.
4. The method of claim 3 further comprising automatically generating said prefix identifier to prevent symbol clashes between said active KLMs and said standby KLMs.
5. The method of claim 1 wherein said standby container communicates with said active container over a virtual Ethernet link to obtain current running state of said active container.
6. The method of claim 1 further comprising changing said active container to a standby container after switching over from said active container to said standby container.
7. The method of claim 1 further comprising restarting a linecard container with a new version of linecard KLMs after switching to said standby container.
8. An apparatus comprising:
a host operating system comprising an active kernel name space associated with an active container and a standby kernel name space associated with a standby container, said active and standby containers defining a single supervisor for the host operating system; and
a processor operable to instantiate instances for active Kernel Loadable Modules (KLMs) for servicing said active container, instantiate instances for standby KLMs for servicing said standby container, wherein one or more of said standby KLMs comprise upgraded versions of said active KLMs, and switch over from said active container to said standby container to perform an in-service upgrade of said active KLMs for the host operating system.
9. The apparatus of claim 8 wherein the processor inserts a prefix identifier into active and standby KLM names to distinguish between said active KLMs and said standby KLMs.
10. The apparatus of claim 9 further comprising a code generator, when operating at the apparatus automatically generates said KLM names to prevent symbol clashes between said active KLMs and said standby KLMs.
1 1. The apparatus of claim 8 wherein said standby container communicates with said active container over a virtual Ethernet link to obtain current running state of said active container.
12. The apparatus of claim 8 wherein said active container is changed to a standby container after switching over from said active container to said standby container.
13. The apparatus of claim 8 further comprising memory for storing two KLM code versions, one for said active KLMs and one for said standby KLMs.
14. Logic encoded on one or more non-transitory computer readable media for execution and when executed operable to:
create an active container and a standby container for a single supervisor of an operating system at a network device;
instantiate instances for active Kernel Loadable Modules (KLMs) for servicing said active container;
instantiate instances for standby KLMs for servicing said standby container, wherein one or more of said standby KLMs comprise upgraded versions of said active KLMs; and
switchover from said active container to said standby container to perform an in-service upgrade of said active KLMs for the operating system.
15. The logic of claim 14 wherein the operating system comprises an active kernel name space associated with said active KLMs and a standby kernel name space associated with said standby KLMs.
16. The logic of claim 14 when executed operable to insert a prefix identifier into active and standby KLM names to distinguish between said active KLMs and said standby KLMs.
17. The logic of claim 16 when executed operable to automatically generate code to prevent symbol clashes between said active KLMs and said standby KLMs.
18. The logic of claim 14 wherein said standby container communicates with said active container over a virtual Ethernet link to obtain current running state of said active container.
19. The logic of claim 14 when executed operable to change said acti ve container to a standby container after switching over from said active container to said standby container.
20. The logic of claim 14 when executed operable to restart a linecard container with new version of linecard KLMs after switching to said standby container.
PCT/US2016/053462 2015-09-26 2016-09-23 In-service upgrade of kernel loadable modules WO2017053810A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP16778594.8A EP3353651B1 (en) 2015-09-26 2016-09-23 In-service upgrade of kernel loadable modules
CN201680052521.9A CN108027724B (en) 2015-09-26 2016-09-23 Method and device for upgrading in service of kernel loadable module

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/866,952 2015-09-26
US14/866,952 US10289398B2 (en) 2015-09-26 2015-09-26 In-service upgrade of kernel loadable modules

Publications (1)

Publication Number Publication Date
WO2017053810A1 true WO2017053810A1 (en) 2017-03-30

Family

ID=57113754

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2016/053462 WO2017053810A1 (en) 2015-09-26 2016-09-23 In-service upgrade of kernel loadable modules

Country Status (4)

Country Link
US (1) US10289398B2 (en)
EP (1) EP3353651B1 (en)
CN (1) CN108027724B (en)
WO (1) WO2017053810A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108984195A (en) * 2018-06-27 2018-12-11 新华三技术有限公司 A kind of method for upgrading software and device
EP3761564A4 (en) * 2018-06-29 2021-05-12 New H3C Technologies Co., Ltd. Master/standby container system switch

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10007509B1 (en) * 2015-12-08 2018-06-26 Amazon Technologies, Inc. Container handover for device updates
US10027351B1 (en) 2015-12-08 2018-07-17 Amazon Technologies, Inc. Virtualized hardware support for mobile devices
US9870219B1 (en) * 2016-07-06 2018-01-16 Cisco Technology, Inc. Mechanisms for performing switch upgrades using remote containers
US11403086B2 (en) * 2016-10-28 2022-08-02 Virtuozzo International Gmbh System and method for upgrading operating system of a container using an auxiliary host
US10261780B2 (en) * 2017-05-01 2019-04-16 Google Llc Transparent upgrade of a system service or application
US10917496B2 (en) * 2017-09-05 2021-02-09 Amazon Technologies, Inc. Networked storage architecture
CN109728886A (en) * 2017-10-27 2019-05-07 中兴通讯股份有限公司 A kind of method of data synchronization, device, equipment and storage medium suitable for cross-version upgrading
CN107896163B (en) * 2017-11-10 2020-11-24 中国银行股份有限公司 Method and device for upgrading internet bank system and internet bank service system
JP7069672B2 (en) * 2017-12-05 2022-05-18 コニカミノルタ株式会社 Application update method and program
US11137992B2 (en) * 2019-06-05 2021-10-05 Arista Networks, Inc. Framework for checking the compatibility of new software images
US11385923B2 (en) 2019-07-16 2022-07-12 International Business Machines Corporation Container-based virtualization system extending kernel functionality using kernel modules compiled by a compiling container and loaded by an application container
US20210117859A1 (en) * 2019-10-20 2021-04-22 Nvidia Corporation Live updating of machine learning models
US20220137997A1 (en) * 2020-11-04 2022-05-05 Citrix Systems, Inc. Platform update using self-installing containerized microservice
US11474807B1 (en) * 2021-03-31 2022-10-18 American Megatrends International, Llc Firmware update method and computer program product for updating firmware
CN114389951B (en) * 2022-03-02 2024-06-18 深圳震有科技股份有限公司 Seamless upgrading method, network equipment and storage medium under 5G network
US20240028322A1 (en) * 2022-07-21 2024-01-25 Vmware, Inc. Coordinated upgrade workflow for remote sites of a distributed container orchestration system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8782632B1 (en) * 2012-06-18 2014-07-15 Tellabs Operations, Inc. Methods and apparatus for performing in-service software upgrade for a network device using system virtualization

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7415710B1 (en) * 2003-07-07 2008-08-19 Hewlett-Packard Development Company, L.P. Method and system for maintaining a module type definition table
US7814481B1 (en) 2003-08-21 2010-10-12 Cisco Technology, Inc. Method and system for minimal disruption during software upgrade or reload of a network device
US8190720B1 (en) 2006-06-01 2012-05-29 Cisco Technology, Inc. Performing an in-service software reload on a network device
CN101102219B (en) * 2007-07-30 2010-06-23 华为技术有限公司 Software update system and software update method
US8402453B2 (en) * 2010-09-22 2013-03-19 Telefonaktiebolaget L M Ericsson (Publ) In-service software upgrade of control and line cards of network element
US8402454B2 (en) * 2010-09-22 2013-03-19 Telefonaktiebolaget L M Ericsson (Publ) In-service software upgrade on cards of virtual partition of network element that includes directing traffic away from cards of virtual partition
US8578376B2 (en) * 2011-01-04 2013-11-05 International Business Machines Corporation Automatically and securely configuring and updating virtual machines
JP5569424B2 (en) * 2011-02-14 2014-08-13 富士通株式会社 Update apparatus, update method, and update program
US9311119B2 (en) * 2012-05-30 2016-04-12 Red Hat, Inc. Reconfiguring virtual machines
CN103581008B (en) * 2012-08-07 2017-04-12 杭州华三通信技术有限公司 Router and software upgrading method thereof
US9507586B2 (en) * 2012-10-05 2016-11-29 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Virtual machine based controller and upgrade mechanism
US9030947B2 (en) * 2012-10-12 2015-05-12 Futurewei Technologies, Inc. Methods for zero loss and nonstop packet processing during system software upgrades
US9170834B2 (en) * 2012-10-31 2015-10-27 Google Inc. Metadata-based virtual machine configuration
US9558010B2 (en) * 2013-03-14 2017-01-31 International Business Machines Corporation Fast hot boot of a computer system
US9338055B2 (en) * 2013-03-15 2016-05-10 Cisco Technology, Inc. Virtual router upgrade via graceful restart
US9706016B2 (en) 2013-10-11 2017-07-11 Cisco Technology, Inc. Unconstrained supervisor switch upgrade
CN104679532B (en) * 2013-11-27 2018-12-11 腾讯科技(深圳)有限公司 kernel module loading method and device
US20150347170A1 (en) * 2014-05-27 2015-12-03 Vmware, Inc. Grouping virtual machines in a cloud application
US9430223B2 (en) * 2014-09-25 2016-08-30 International Business Machines Corporation Live operating system update mechanisms
US20160364231A1 (en) * 2015-06-10 2016-12-15 Telefonaktiebolaget L M Ericsson (Publ) Method for minimal service impact during software upgrade in network elements (nes)
CN108351773B (en) * 2015-10-26 2021-11-05 惠普发展公司,有限责任合伙企业 Cloud platform OS management
US10169027B2 (en) * 2016-05-05 2019-01-01 International Business Machines Corporation Upgrade of an operating system of a virtual machine
US10318486B2 (en) * 2016-07-08 2019-06-11 International Business Machines Corporation Virtual machine base image upgrade based on virtual machine updates
US10289400B2 (en) * 2016-09-07 2019-05-14 Amplidata N.V. Outdated resource handling and multiple-version upgrade of cloud software
US9841988B1 (en) * 2016-11-16 2017-12-12 Red Hat Israel, Ltd. Updating service virtual machines using a new image that is certified

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8782632B1 (en) * 2012-06-18 2014-07-15 Tellabs Operations, Inc. Methods and apparatus for performing in-service software upgrade for a network device using system virtualization

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108984195A (en) * 2018-06-27 2018-12-11 新华三技术有限公司 A kind of method for upgrading software and device
CN108984195B (en) * 2018-06-27 2022-05-31 新华三技术有限公司 Software upgrading method and device
EP3761564A4 (en) * 2018-06-29 2021-05-12 New H3C Technologies Co., Ltd. Master/standby container system switch

Also Published As

Publication number Publication date
EP3353651B1 (en) 2022-04-06
CN108027724A (en) 2018-05-11
US10289398B2 (en) 2019-05-14
CN108027724B (en) 2021-11-02
EP3353651A1 (en) 2018-08-01
US20170090897A1 (en) 2017-03-30

Similar Documents

Publication Publication Date Title
EP3353651B1 (en) In-service upgrade of kernel loadable modules
US11301280B2 (en) System and method for managing a monitoring agent in an operating system of a virtual computing instance
US10545750B2 (en) Distributed upgrade in virtualized computing environments
US8607225B2 (en) Managed upgrades of components in an integrated software and hardware system
EP3065055B1 (en) Healing cloud services during upgrades
US9201704B2 (en) System and method for migrating application virtual machines in a network environment
EP2831732B1 (en) System and method for supporting live migration of virtual machines in an infiniband network
EP2043320B1 (en) Method and system for automatic and remote server provisioning using virtual machine appliances
CN109861839B (en) Method for upgrading virtual switch without service interruption and related equipment
US11836542B1 (en) Instantiating VNFs which include VNFCs that are composed of independently manageable software modules
US11860776B2 (en) Concurrent memory recycling for collection of servers
US11307842B2 (en) Method and system for virtual agent upgrade using upgrade proxy service
US20230315505A1 (en) System and method for deploying a software-defined data center based on desired state specification from virtualization software
US20220350632A1 (en) Automated referencing and resolution of properties across virtual network functions and network service
US10382585B2 (en) Concurrent code application in a stateful computing environment
US20230168912A1 (en) System and method for upgrading a management component of a computing environment using high availability features
US20240020145A1 (en) Updating device firmwares on hosts in a distributed container orchestration system
US11645158B2 (en) Automated rollback in virtualized computing environments
JP7184097B2 (en) Network function virtualization system and operating system update method
US20230315574A1 (en) System and method for restoring management components of a software-defined data center from virtualization software
WO2024008066A1 (en) Cloud computing technology-based server and cloud system

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16778594

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2016778594

Country of ref document: EP