Non-disruptive Distributed File System Upgrade with Rollback Hooks

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveupgrade speedVSAvoidsystem compatibility
Core Design Contradiction:
ProductivityVSReliability

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If nodes are upgraded one-by-one sequentially, then system compatibility is maintained, but upgrade time increases and productivity decreases

Engineering Contradiction:
Improvesystem compatibilityVSAvoidupgrade time
Core Design Contradiction:
ReliabilityVSProductivity

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.

Inventive Principle:
Principle #19Periodic action

3Reliability

If rollback capability is added to handle upgrade failures, then reliability is improved, but system complexity increases

Engineering Contradiction:
Improveupgrade failure recoveryVSAvoidupgrade management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

Inventive Principle:
Principle #23Feedback

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.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

Data Source

PatentUS9753718B1Non-disruptive upgrade including rollback capabilities for a distributed file system operating within a cluster of nodes
Publication Date: 2017.09.05 EMC IP HLDG CO LLC
  • US9753718B1 patent drawing
  • US9753718B1 patent drawing
  • US9753718B1 patent drawing

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.