In-Service Software Upgrade via Dual Stack Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Traditional software upgrades for network devices often require downtime and are not easily reversible, as they involve modifying the existing software stack and may force the device to shut down and reboot, leading to undesirable downtime.
Innovation Solution
The method involves constructing a new software stack for an upgraded operating system version while the old stack is active, sharing some filesystem components but differing in others, and transitioning management of active processes without rebooting the device, allowing seamless and reversible in-service software upgrades.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional software upgrade methods are used, then the operating system can be updated to fix bugs and improve performance, but the device must shut down and reboot, resulting in downtime
Solution Approach 1:
The software system is divided into multiple independent software stacks (first software stack and second software stack), each capable of running independently. This segmentation allows the device to maintain one operational stack while another stack is being upgraded, eliminating the need for complete system shutdown and enabling seamless transitions between stacks.
Solution Approach 2:
The second software stack is constructed and prepared in advance while the first software stack remains active and operational. This preliminary action allows the upgraded stack to be ready for immediate activation without interrupting the current operations, thus avoiding downtime during the upgrade process.
2Reliability
If traditional software upgrade methods are used, then the operating system can be upgraded, but the upgrade process is not easily reversible
Solution Approach 1:
By maintaining separate, independent software stacks rather than modifying the existing stack in place, the system enables easy rollback by simply switching back to the previous stack. Each stack remains intact and can be activated independently, making the upgrade process reversible without complex modification tracking.
Solution Approach 2:
A complete copy of the operating system (second software stack) is created with all necessary modifications, while the original (first software stack) remains unchanged. This copying approach allows the system to switch between versions by activating different stacks, making rollback as simple as switching back to the original copy.
3Reliability
If traditional software upgrade methods are used, then the operating system can be updated, but the process involves modifying the existing software stack which complicates the upgrade process
Solution Approach 1:
The software system is segmented into distinct, independent stacks that can be managed separately. This segmentation simplifies upgrade management by allowing each stack to be treated as an independent unit, reducing the complexity of tracking modifications and enabling straightforward switching between versions without managing complex interdependencies.
Data Source
AI summary
A disclosed method may include (1) detecting an in-service software upgrade that is to upgrade a first version of an operating system to a second version of the operating system and (2) performing the in-service software upgrade by (A) constructing a second software stack for the second version while a first software stack for the first version is active, wherein the first software stack and the second software stack (I) share one or more filesystem components in common and (II) differ from one another with respect to at least one filesystem component, (B) identifying one or more active processes that are currently managed by the first version, and (C) deactivating the first version and activating the second version such that management of the active processes is transitioned from the first version to the second version without rebooting. Various other apparatuses, systems, and methods are also disclosed.


