In-Service Kernel Module Upgrade via Dual Container Handoff
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Software upgrades in network devices often result in significant downtime, impacting network availability, and existing methods for in-service software upgrades are limited in their ability to manage Kernel Loadable Modules (KLMs) during dual Linux container operations.
Innovation Solution
The implementation of dual instances of each upgradable KLM, with auto-generated code to prevent symbol clashes, allows for in-service software upgrades by creating containment mechanisms that enable stateful handoff between active and standby containers, facilitating upgrades with minimal disruption to data traffic.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If software upgrades are performed in network devices, then new features and fixes are implemented, but network device availability and service continuity are significantly impacted
Solution Approach 1:
The system is segmented into multiple virtual machine instances (first VM and second VM) that can operate independently. The management system divides software upgrade operations across these segments, allowing one VM to be upgraded while another continues to provide network services, thus maintaining availability during upgrades
Solution Approach 2:
The system performs preliminary actions by creating a second virtual machine instance before executing the software upgrade. This second VM is prepared in advance with the necessary resources and configuration, so that when the upgrade is needed, the transition can occur smoothly without service interruption
2Adaptability or versatility
If traditional software upgrade methods are used, then complete software replacement is achieved, but downtime and service disruption occur
Solution Approach 1:
The system ensures continuity of useful action by maintaining network service operations throughout the software upgrade process. The first VM continues to provide network management services while the second VM undergoes software upgrade, and vice versa, ensuring that network services are never interrupted
Solution Approach 2:
The virtualization layer acts as an intermediary between the physical hardware and the software instances. This intermediary enables seamless switching between different VM instances during software upgrades, allowing the system to transition from one software version to another without direct disruption to network services
3Reliability
If dual instances of KLMs are created for in-service upgrade, then software upgrades with minimal disruption are enabled, but system complexity and resource requirements increase
Solution Approach 1:
The virtual machine instances are designed with multi-functionality, capable of serving both as active network management platforms and as upgrade targets. Each VM can assume multiple roles (active/standby, old version/new version), reducing the need for dedicated hardware for each function and managing complexity through software flexibility
Data Source
Figure 1
Figure 2
Figure 3
AI summary
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.