Parallel Firmware Update Coordination for Storage Drives
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data storage systems face challenges in efficiently upgrading firmware on physical drives while maintaining host accessibility, as current methods are often disruptive, time-consuming, and limited by restrictions on parallel updates, especially for RAID groups and mirrored drives.
Innovation Solution
A method involving a drive management object that coordinates firmware updates across multiple physical drives by determining eligible drives, preparing for updates by holding incoming I/O operations, and resuming operations post-update, utilizing provision drive objects to manage and synchronize updates across storage processors, allowing for parallel processing without disrupting host access.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If firmware updates are performed on physical drives, then firmware version is improved, but host accessibility is lost and system downtime increases
Solution Approach 1:
The system segments the firmware update process into independent parallel operations for different physical drives. Each provision drive object manages firmware updates for specific drives independently, allowing multiple drives to be updated simultaneously without affecting the entire system. This segmentation enables continuous host accessibility while performing updates that would traditionally require complete system offline status.
Solution Approach 2:
The system performs preliminary actions by pre-identifying eligible physical drives for firmware updates using drive management objects that evaluate update criteria before initiating updates. Provision drive objects are prepared in advance to manage the update process, and I/O operations are preemptively held or redirected before firmware updates begin, ensuring seamless continuity of host access throughout the update process.
2Productivity
If firmware updates are performed on multiple physical drives in parallel, then update efficiency is improved, but system complexity increases due to coordination requirements
Solution Approach 1:
The system introduces provision drive objects as intermediary components between drive management objects and physical drives. These provision drive objects serve as mediators that coordinate firmware update operations across multiple drives, managing the complexity of parallel updates by handling I/O operation coordination, update timing, and synchronization. This intermediary layer abstracts the coordination complexity from the overall system architecture.
Solution Approach 2:
The system implements dynamic coordination where provision drive objects adaptively manage firmware update processes based on real-time system conditions. The coordination mechanism dynamically adjusts update timing, I/O operation handling, and resource allocation for each physical drive being updated. This dynamic approach allows efficient parallel updates while automatically managing coordination complexity through condition-based decision making.
3Reliability
If I/O operations are held during firmware updates, then data integrity is improved, but processing speed decreases
Solution Approach 1:
The system implements periodic I/O operation resumption during firmware updates. Instead of holding all I/O operations for the entire duration of firmware updates, the system periodically allows I/O operations to proceed by coordinating between multiple provision drive objects. Each provision drive object manages I/O holding and release timing independently, creating a periodic pattern where I/O processing speed is temporarily reduced during update coordination but restored periodically, maintaining both data integrity and acceptable throughput.
Data Source
AI summary
Described are techniques for performing a firmware update. A drive management object determines one or more physical drives matching criteria of a first received request. The drive management object sends to provision drive objects a second request to update firmware on physical drives. Firmware update processing is performed independently for each physical drive. Each provision drive object is associated with one of the physical drives. Firmware update processing for said one physical drive includes determining whether to perform the firmware update at a current point in time; in response to determining to perform the firmware update at the current point in time, performing preparation processing; notifying, upon completion of said preparation processing, a physical drive object associated with said one physical drive to download the firmware update to the one physical drive; and resuming I/O operations to the one physical drive upon successfully completing the firmware update.


