Client Software Upgrade via I/O Suspension in Storage Nodes
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional client software upgrades in distributed storage systems cause service interruptions and inefficiencies due to I/O exceptions or high scheduling costs.
Innovation Solution
A method and apparatus for upgrading client software that involves suspending I/O operations during the upgrade process, allowing buffered data to be transmitted to storage nodes for persistent storage, and resuming I/O operations after the upgrade is complete, ensuring service continuity and efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If client software is upgraded by manually disabling service, then upgrade can be performed, but service interruption occurs and user experience is affected
Solution Approach 1:
The system performs preliminary actions by saving the current running status and suspending I/O operations before the upgrade process begins. This preparation ensures that the service can be quickly restored after upgrade by resuming the saved status, thereby maintaining service continuity and avoiding user-facing interruptions.
Solution Approach 2:
The upgrade management module acts as an intermediary between the upgrade process and the service operations. It coordinates the suspension and resumption of I/O operations, manages the upgrade execution, and ensures that service requests are properly handled during the transition, preventing service interruption while enabling the upgrade.
2Reliability
If service is scheduled to another unupgraded client by using scheduler, then service continuity is maintained, but scheduling costs increase and upgrade efficiency decreases
Solution Approach 1:
The system extracts the service processing capability from the individual client being upgraded and temporarily holds it at the upgrade management module. This allows the client to be upgraded in place without requiring complex inter-client scheduling, thereby improving upgrade efficiency while maintaining service continuity through the suspension and resumption mechanism.
Solution Approach 2:
The client performs self-upgrade by suspending its own I/O operations, upgrading its local software, and then resuming operations. This eliminates the need for external scheduling to other clients, reducing scheduling overhead and improving upgrade efficiency while maintaining service continuity through the self-managed suspension-resumption cycle.
3Adaptability or versatility
If I/O operations are suspended during upgrade, then client software can be upgraded online, but I/O operations are blocked during the process
Solution Approach 1:
The I/O suspension is applied periodically and temporarily only during the actual software upgrade execution, not continuously. The system suspends I/O operations for the brief upgrade duration and then resumes them, allowing online upgrade capability while minimizing the impact on I/O processing throughput by limiting suspension to necessary periods only.
4Productivity
If buffered data is not transmitted before I/O suspension, then upgrade process is faster, but data loss occurs
Solution Approach 1:
The system performs preliminary action by transmitting buffered data to storage nodes before suspending I/O operations. This ensures data integrity is maintained while minimizing the impact on upgrade speed, as the data transmission occurs in advance during a controlled phase rather than blocking the entire upgrade process.
Data Source
Figure 1
Figure 2~3
Figure 4~5
AI summary
A method and an apparatus for upgrading client software are provided, to provide a technical solution of online upgrade, and avoid service interruption caused by upgrade of a client deployed on a computing node in a storage system. Alternatively, compared with a manner in which a service processed by client software is scheduled by using a scheduler during upgrade, this application does not increase scheduling time costs, thereby improving upgrade efficiency. The method includes: The computing node in the storage system receives an upgrade instruction for client software deployed on the computing node, where the client software is used to access one or more storage nodes in the storage system based on a received input/output I/O instruction; performs I/O suspension on the received I/O instruction in response to the upgrade instruction; and upgrades the client software based on the upgrade instruction.