Non-disruptive Distributed File System Upgrade with Rollback Hooks
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Distributed file systems face disruptions during node upgrades, as simultaneous upgrades can cause incompatibilities between nodes running different software versions, and rolling back to a previous version is challenging, necessitating non-disruptive upgrade and rollback capabilities to maintain continuous availability.
Innovation Solution
A supervisor is initiated on one node, with agents on each node executing a sequential upgrade process involving tracking states, hook executables, and reboots, allowing piecemeal upgrades and rollbacks while maintaining access for clients, using pre-upgrade, upgrade, and post-upgrade hooks to manage the process.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If nodes are upgraded simultaneously, then upgrade speed is improved, but system compatibility and reliability deteriorate due to nodes running different software versions
Solution Approach 1:
The upgrade process is segmented into discrete phases (pre-upgrade hooks, upgrade hooks, post-upgrade hooks) that are executed sequentially across nodes. Each node progresses through these segments independently, allowing the system to maintain version compatibility while enabling parallel upgrade execution across multiple nodes.
Solution Approach 2:
Pre-upgrade hooks are executed before the actual upgrade to prepare the system state, ensuring that necessary conditions are met before nodes transition to new software versions. This preliminary action prevents compatibility issues by validating the upgrade path beforehand.
2Reliability
If nodes are upgraded one-by-one sequentially, then system compatibility is maintained, but upgrade time increases and productivity decreases
Solution Approach 1:
The system employs periodic action by executing upgrade operations in controlled waves or batches rather than strictly sequentially or all-at-once. Nodes are upgraded in periodic cycles through coordinated hook execution, maintaining compatibility while reducing total upgrade time compared to pure sequential processing.
3Reliability
If rollback capability is added to handle upgrade failures, then reliability is improved, but system complexity increases
Solution Approach 1:
The hook mechanism provides feedback loops that monitor upgrade progress and system state at each phase. If failures are detected during or after upgrade, the feedback triggers rollback procedures that revert nodes to their previous state, ensuring reliability while managing complexity through automated state tracking and recovery.
Solution Approach 2:
The system prepares rollback capability in advance by maintaining previous version states and implementing pre-configured rollback hooks. This beforehand cushioning ensures that if upgrades fail, the system can automatically recover without manual intervention, improving reliability while containing complexity through pre-planned recovery paths.
Data Source
AI summary
Implementations are provided herein for non-disruptive upgrade including rollback capabilities for a distributed file system within a cluster of nodes. To continue availability of the file system to external clients during the upgrade process, nodes can be upgraded piecemeal, for example, in one implementation, one node at a time. When a node is undergoing certain stages of the upgrade process, external clients can be directed toward the remaining nodes of the file system that are not currently being upgraded, including already upgraded nodes, to perform client activity. During the upgrade process, a first subset of nodes can be running in an upgraded state while a second subset of nodes can be in a non-upgraded state, both providing access to external clients in a seamless manner. During the upgrade process, an administrator can decide to rollback any upgrades and return the distributed file system to its previous version (e.g., the version of the file system prior to starting the non-disruptive upgrade process). Hooks can be provided prior to, during, and after various stages of the upgrade or rollback process that can allow services of the distributed file system to be notified of certain events of the upgrade process, or execute service specific processes at distinct times during the upgrade process. At the conclusion of an upgrade or rollback process, the distributed file system can enter a committed state that finalizes the process and cements an upgrade or a rollback to a more permanent state.


