High-Availability System Version Modification via Virtual Machine Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Upgrading software in packet switching devices often requires taking the entire device offline, leading to packet loss and reduced network availability, which affects Service Level Agreements with customers.

Innovation Solution

Implementing a high-availability system using virtual machines on different hardware units, where processes are distributed with active and standby roles, allowing for in-service version modification by synchronizing state information between version modified and original processes, enabling seamless role changes and maintaining system availability during upgrades.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the entire packet switching device is taken offline for software upgrades, then the software can be upgraded completely, but packet loss occurs and network availability is reduced

Engineering Contradiction:
Improvenetwork availabilityVSAvoiddowntime during upgrade
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the packet switching device into multiple independent virtual machines (VMs), each running independent instances of the routing software. This allows upgrades to be performed on individual VMs while others continue to handle traffic, eliminating the need to take the entire device offline and thus preventing packet loss while maintaining network availability during the upgrade process

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements a preliminary action by creating standby VMs with the new software version before switching traffic. The standby VMs are pre-configured and synchronized with the active VMs, so when the switch occurs, the new version is already ready to take over immediately, avoiding downtime and ensuring continuous operation during the upgrade

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If the packet switching device is taken offline for upgrades, then software version modification can be performed, but service level agreements with customers are affected

Engineering Contradiction:
Improvesoftware version modificationVSAvoidservice availability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent implements dynamics by enabling the system to dynamically switch between different software versions running on different VMs. The control plane can dynamically redirect traffic from active VMs to standby VMs running new versions, allowing the system to adapt to version changes while maintaining continuous service availability and meeting service level agreements

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent uses a mediator approach where standby VMs act as intermediaries between the active VMs and the new software version. These standby VMs receive traffic during the upgrade process, allowing the new version to be introduced without disrupting the active service, thus maintaining reliability while enabling version modification

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9020894B2Service version modification of a high-availability system
Publication Date: 2015.04.28 CISCO TECHNOLOGY INC
  • US9020894B2 patent drawing
  • US9020894B2 patent drawing
  • US9020894B2 patent drawing

AI summary

In one embodiment, an operating system kernel and/or one or more processes of a high-availability system are modified while the system is operating and providing high-availability service. In accomplishing this, one embodiment uses a second virtual machine to operate a second operating system kernel including a second set of processes in the standby mode, which receive state information from corresponding process(es) in the active mode. Individually, the operating system kernel and processes within the second set of processes may be a same or different version of their counterpart in a first virtual machine and its processes which are being replaced. When the second set of processes have acquired sufficient state information to perform the standby role, the operation of the first virtual machine is typically ceased as the version modified second virtual machine is performing the version modified functionality of the first virtual machine.