Storage Upgrade Integration Points
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data storage systems face challenges in efficiently coordinating and orchestrating software upgrades across multiple appliances, leading to complex dependencies and potential runtime errors, especially during non-disruptive upgrades (NDUs).
Innovation Solution
The implementation of defined upgrade integration points provides a structured approach to guide upgrades, allowing for the sequential upgrading of appliances and nodes while managing software clusters and rollback processes. This involves associating code entities with integration points to perform specific tasks, such as determining which appliances have certain software components running, and executing rollback processes if necessary.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If software upgrades are performed across multiple storage appliances, then the data storage system can be updated to new versions, but complex dependencies and runtime errors occur during the upgrade process
Solution Approach 1:
The upgrade process is divided into discrete workflow processing points (integration points) that can be independently managed and executed. Each integration point represents a specific stage in the upgrade workflow where particular tasks must be completed, allowing the complex upgrade process to be segmented into manageable, ordered steps that reduce coordination complexity and prevent runtime errors.
Solution Approach 2:
Code entities are associated with integration points in advance of the actual upgrade execution. This preliminary association establishes the upgrade workflow structure and dependencies before the upgrade begins, allowing the system to pre-validate configurations and prepare necessary actions, thereby reducing runtime errors and simplifying the actual upgrade execution.
2Productivity
If multiple software clusters are upgraded simultaneously, then upgrade time is reduced, but coordination complexity and potential for errors increase
Solution Approach 1:
The upgrade workflow allows for dynamic execution of code entities at different integration points based on the specific state and configuration of each storage appliance. The system can adaptively determine which code entities to execute and in what order, allowing simultaneous upgrading of multiple software clusters while maintaining manageable coordination complexity through flexible, state-dependent workflow execution.
3Reliability
If rollback processes are implemented for failed upgrades, then system reliability is improved, but the upgrade workflow becomes more complex
Solution Approach 1:
Rollback capabilities are built into the upgrade workflow structure in advance, with code entities associated with integration points that can trigger rollback actions if failures occur. This beforehand cushioning ensures that if an upgrade fails at any integration point, the system can automatically initiate rollback procedures to restore the previous state, improving reliability while the structured workflow keeps the complexity manageable.
Data Source
AI summary
Upgrading a cluster can include: defining integration points associated with workflow processing points of an upgrade workflow; associating a code entity with an integration point; and performing processing that executes the upgrade workflow to upgrade storage appliances, wherein first and second software clusters are installed on the storage appliances, wherein upgrading the storage appliances includes upgrading the first and second software clusters, wherein the processing includes: prior to upgrading a first storage appliance, executing first code corresponding to the integration point; in response to executing the first code, invoking the code entity to perform a first task in connection with the second cluster software prior to upgrading the first storage appliance; and upgrading the first storage appliance including upgrading a first component of the first software cluster and upgrading a second component of the second software cluster, wherein the first and second components are installed on the first storage appliance.


