Non-disruptive Firmware Upgrade for Storage I/O Modules

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current storage systems lack a mechanism to upgrade I/O module firmware without disrupting the processing of I/O requests, making it difficult to update multiple I/O modules in a large system without affecting data access and traffic.

Innovation Solution

A firmware upgrade architecture that allows the storage subsystem to receive and store new firmware for the I/O module, reboot the CPU to load the new firmware, and initialize the I/O module without resetting the I/O routing hardware, ensuring continuous processing of I/O requests and non-disruptive data traffic.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the I/O module firmware is upgraded by rebooting the CPU, then the firmware version is updated to new features and bug fixes, but the processing of I/O requests is disrupted

Engineering Contradiction:
Improvefirmware versionVSAvoidI/O request processing
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The I/O module is segmented into two independent CPU instances: CPU 0 and CPU 1. Each CPU can independently execute firmware and process I/O requests. This segmentation allows one CPU to be rebooted for firmware updates while the other continues handling I/O requests, eliminating service disruption during firmware upgrades.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary actions by maintaining a standby CPU that is pre-configured and ready to take over I/O processing immediately when the active CPU is rebooted for firmware updates. The standby CPU remains in a ready state with necessary resources allocated, enabling seamless transition without I/O disruption.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If multiple I/O modules are upgraded in a large storage system, then system-wide firmware consistency is improved, but the time required for upgrades and disruption to data access increases

Engineering Contradiction:
Improvefirmware consistencyVSAvoidupgrade time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

Each I/O module contains segmented CPU instances (CPU 0 and CPU 1) that can be independently updated. This allows parallel firmware upgrading across multiple I/O modules without requiring sequential updates, significantly reducing total upgrade time while maintaining firmware consistency through coordinated update management.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The dual-CPU architecture enables continuous I/O processing during firmware transitions. While one CPU is being updated, the other maintains uninterrupted data access and traffic handling. This continuity allows multiple I/O modules to be upgraded in parallel without causing system-wide I/O pauses or extended downtime.

Inventive Principle:
Principle #20Continuity of useful action

3Reliability

If the I/O module is initialized after firmware update, then the new firmware is properly configured, but the I/O routing hardware is reset causing traffic disruption

Engineering Contradiction:
Improvefirmware configurationVSAvoiddata traffic
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The initialization process is extracted and differentiated into two paths: full initialization (including I/O routing hardware reset) and partial initialization (excluding routing hardware). After firmware updates, only partial initialization is performed, leaving the I/O routing hardware untouched and operational. This selective approach maintains firmware configuration integrity while preventing traffic disruption.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The I/O routing hardware is pre-configured and maintained in a stable state before and during firmware updates. By preserving the routing hardware configuration and avoiding resets during the update process, the system maintains continuous data traffic flow while still completing necessary firmware configuration tasks through alternative initialization methods.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8219794B1Non-disruptive firmware upgrade of a storage shelf
Publication Date: 2012.07.10 NETAPP INC
  • US8219794B1 patent drawing
  • US8219794B1 patent drawing
  • US8219794B1 patent drawing

AI summary

A storage system includes a storage server and a storage subsystem having an I/O module coupled to disks. The storage subsystem receives new firmware from the storage server for an I/O module in the storage subsystem. The storage subsystem stores state data for the I/O module. The storage subsystem reboots a CPU for the I/O module to load the new firmware and determines after reboot that the reboot was for loading the new firmware based on the stored state data. The storage subsystem initializes the I/O module to use the new firmware. The initialization of the I/O module is based on the stored state data, does not reset I/O routing hardware on the I/O module, and is independent of the I/O module processing a request to access data stored on disks coupled to the I/O module.