Method, electronic device and computer program product for upgrading a storage system

CN115202678BActive Publication Date: 2026-10-30EMC IP HLDG CO LLC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202110384054.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-04-09
Publication Date
2026-10-30
Estimated Expiration
2041-04-09

AI Technical Summary

Technical Problem

然而,这样的升级操作将可能影响存储系统的性能,进而可能影响其可靠性和数据完整性

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115202678B_ABST
    Figure CN115202678B_ABST
Patent Text Reader

Abstract

Embodiments of the present disclosure provide a method, an electronic device and a computer program product for upgrading a storage system, the method comprising: obtaining information about a set of candidate time periods for a workload of the storage system, the storage system having a workload below a first predetermined threshold during the set of candidate time periods; determining, based on user information of the storage system, a target time period for upgrading from the set of candidate time periods; and performing, during the target time period, an upgrade operation on at least a portion of a plurality of components of the storage system. In this way, the upgrade operation on the storage system can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments of this disclosure relate to the field of computers, and more specifically, to methods for upgrading storage systems, electronic devices, and computer program products. Background Technology

[0002] In the era of big data, storage systems will include numerous components, such as processors, memory, and, in particular, massive amounts of storage disks. To ensure the reliability and data integrity of storage systems, such as those used for data protection, it is advantageous to upgrade the storage system to newer versions, especially to upgrade the firmware of the various components within the storage system to the latest versions. However, such upgrades may impact the performance of the storage system, potentially affecting its reliability and data integrity. In other words, upgrading traditional storage systems carries certain risks. Summary of the Invention

[0003] Embodiments of this disclosure provide solutions for upgrading storage systems.

[0004] In a first aspect of this disclosure, a method for upgrading a storage system is provided, the method comprising: acquiring information about a set of candidate time periods related to the workload of the storage system, wherein the storage system has a workload below a first predetermined threshold during the set of candidate time periods; determining a target time period for upgrading from the set of candidate time periods based on user information of the storage system; and performing an upgrade operation on at least a portion of a plurality of components of the storage system during the target time period.

[0005] In a second aspect of this disclosure, an electronic device is provided, including a processor; and a memory coupled to the processor, the memory having instructions stored therein, the instructions causing the electronic device to perform actions when executed by the processor, the actions including: acquiring information about a set of candidate time periods related to the workload of a storage system, the storage system having a workload below a first predetermined threshold during the set of candidate time periods; determining a target time period for upgrading from the set of candidate time periods based on user information of the storage system; and performing an upgrade operation on at least a portion of a plurality of components of the storage system during the target time period.

[0006] In a third aspect of this disclosure, a computer program product is provided, which is tangibly stored on a computer-readable medium and includes machine-executable instructions that, when executed, cause a machine to perform any step of the method according to the first aspect.

[0007] The summary section is provided to present the chosen concepts in a simplified form, which will be further described in the detailed description below. The summary section is not intended to identify key or principal features of this disclosure, nor is it intended to limit the scope of this disclosure. Attached Figure Description

[0008] The above and other objects, features, and advantages of this disclosure will become more apparent from the accompanying drawings, in which the same or similar reference numerals generally represent the same or similar parts. In the drawings:

[0009] Figure 1 A schematic diagram of an exemplary environment according to an embodiment of the present disclosure is shown;

[0010] Figure 2 A flowchart illustrating a process for upgrading a storage system according to an embodiment of the present disclosure is shown;

[0011] Figure 3 A schematic diagram illustrating a process for upgrading a storage system according to an embodiment of the present disclosure is shown;

[0012] Figure 4 A flowchart of the process for determining the target time period for upgrading according to embodiments of the present disclosure;

[0013] Figure 5 A flowchart illustrating the process of determining the components to be upgraded during a target time period according to embodiments of the present disclosure; and

[0014] Figure 6 A block diagram of an example device that can be used to implement embodiments of the present disclosure is shown. Detailed Implementation

[0015] The principles of this disclosure will now be described with reference to several exemplary embodiments shown in the accompanying drawings.

[0016] The term "comprising" and its variations as used herein signify open inclusion, i.e., "including but not limited to". Unless otherwise stated, the term "or" means "and / or". The term "based on" means "at least partially based on". The terms "one example embodiment" and "one embodiment" mean "a set of example embodiments". The term "another embodiment" means "another set of embodiments". The terms "first", "second", etc., may refer to different or the same objects. Other explicit and implicit definitions may also be included below.

[0017] In this document, the term "component" can refer to any hardware device included in a storage system, including but not limited to one or more processors, one or more memories, and multiple storage disks or arrays of multiple storage disks. In some embodiments, the technical solutions described herein may be implemented only on a portion of the aforementioned hardware devices, particularly on the storage disks. This is because storage disks are the most numerous hardware devices included in a storage system, and therefore, upgrading them (and additional or alternative, subsequent reactivation) will consume significant computing resources and may degrade the performance of the storage system.

[0018] In some embodiments, the term "upgrade" or "upgrade operation" as used herein may refer to upgrading a component, including but not limited to upgrading the firmware of a component, such as performing a firmware upgrade on a storage disk. It will be understood that upgraded components contribute to the reliability and data integrity of the storage system.

[0019] As discussed above, upgrading a storage system can impact its performance. Some solutions involve offline upgrades, performed while the storage system is offline. However, this causes storage service downtime and requires administrator intervention. For example, downloading firmware for a storage disk and activating it on a disk can take approximately 10 seconds, potentially leading to prolonged downtime if the system contains many disks. Other solutions utilize online upgrades, such as the online disk firmware upgrade method described in U.S. Patent Application No. 14 / 789,659, the entire contents of which are incorporated herein by reference. In online upgrades, the disk to be upgraded undergoes a brief service interruption, and upon completion, it is reactivated by the storage system through a series of operations for data storage. During these online upgrades, the storage system experiences performance degradation, and the reactivation of the upgraded disk can take several minutes, resulting in a prolonged period of performance degradation. For example, assuming each storage disk takes 15 minutes to upgrade and reactivate, if the storage system includes 35 disk groups (e.g., Redundant Array of Independent Disks (RAID) 6) with 14 disks per group, the disk upgrade process would take nearly 122.5 hours. Even with maximum parallelism (upgrading all 35 disks simultaneously, one disk per RAID) without compromising data reliability, the upgrade process would still take nearly 3.5 hours. Therefore, it is desirable that the performance degradation of the storage system will not affect its usability.

[0020] To at least partially address the aforementioned drawbacks, embodiments of this disclosure provide a storage system upgrade scheme. This scheme can, based on storage system usage information, select a target time period for upgrades and multiple target components to be upgraded, and perform upgrade operations on the multiple target components of the storage system during the target time period. In this way, even if the storage system experiences performance degradation due to the upgrade operation, it will not affect the storage system's ability to process current tasks.

[0021] Figure 1 A schematic diagram of an exemplary environment 100 according to an embodiment of the present disclosure is shown, in which devices and / or methods according to embodiments of the present disclosure may be implemented. Figure 1 As shown, Figure 1 As shown, the exemplary environment may include storage system 150. Storage system 150 may include computing device 105 for processing various operations on data, including but not limited to at least one of the following: data storage, data deduplication, data backup and recovery, information analysis, information collection, and controlling upgrades to the storage system. The computing device may be any device with computing capabilities. As a non-limiting example, the computing device may be any type of fixed computing device, mobile computing device, or portable computing device, including but not limited to desktop computers, laptop computers, notebook computers, netbook computers, tablet computers, smartphones, etc. All or some components of the computing device may be distributed in the cloud. The computing device may also adopt a cloud-edge architecture.

[0022] Storage system 150 may include multiple components 110 for data storage, which may include processors and memory (not shown) for the various data storage processes described above. The multiple components 110 may also include multiple disk arrays (e.g., RAID), and thus multiple storage disks 1101, 1102, 1103 to 110n (sometimes simply referred to as disks herein). Storage disks can be various types of storage-enabled devices, including but not limited to hard disks (HDDs), solid-state drives (SSDs), removable disks, any other magnetic storage devices, and any other optical storage devices, or any combination thereof. To enable storage system 150 to operate multiple storage disks 1101 to 110n, each storage disk may have firmware.

[0023] Computing device 105 can be configured to selectively perform upgrade operations on multiple components during a target period from among multiple candidate periods, based on information 120 associated with the storage system. The multiple candidate periods can be future periods. The multiple candidate periods can be valley periods of multiple workloads. Additionally or alternatively, computing device 105 can be configured to perform upgrade operations on at least a portion of the multiple components (e.g., storage disk arrays 1102 and 1103) during the aforementioned target period, based on information 120 associated with the storage system, and cancel or postpone upgrade operations on at least another portion of the multiple components (e.g., storage disks 1101 and 110n). In some embodiments, the upgrade operation can be a firmware upgrade operation.

[0024] In some embodiments, the information 120 associated with the storage system includes, but is not limited to, at least one of the following: real-time and / or historical information related to the processor and / or memory for reading and writing, such as capacity and utilization; real-time and / or historical read / write information related to each of the multiple storage disks, such as throughput, utilization, latency, I / O queues; and user information, such as a Service Level Agreement (SLA) between the storage service provider and the user. The SLA may define parameters used to measure the service level and may include parameters such as data storage reliability and storage service availability. The storage system shall meet (e.g., not less than) the various parameters defined by the SLA.

[0025] Based on information 120, the computing device can determine one or more target time periods. During these target time periods, the workload of the storage system is low (e.g., below a first predetermined threshold), and performing an upgrade operation can meet the SLA. Based on information 120, the computing device can also determine a subset of components to be upgraded during the target time periods, where the component workload is low (e.g., below a second predetermined threshold) to further reduce the impact of the upgrade operation on the storage services provided by the storage system. The above determination process can utilize machine learning models trained based on historical information or various workload determination algorithms based on real-time information.

[0026] The following will combine Figures 2 to 6 The process according to embodiments of this disclosure is described in detail. For ease of understanding, the specific data mentioned in the following description are exemplary and not intended to limit the scope of this disclosure. It is understood that the embodiments described below may also include additional actions not shown and / or actions shown may be omitted, and the scope of this disclosure is not limited in this respect.

[0027] Figure 2A flowchart of a process 200 for upgrading a storage system according to an embodiment of the present disclosure is shown. Process 200 can be performed in... Figure 1 The computing device shown in the figure is implemented at location 105. For example... Figure 2 As shown, at 202, the computing device can acquire information about a set of candidate time periods related to the workload of the storage system. During the set of candidate time periods, the storage system has a workload below a first predetermined threshold. In other words, the storage system may be in a relatively idle state during the candidate time periods. In some embodiments, the information for each candidate time period may include the start time of the candidate time period, the end time of the candidate time period, and additionally or alternatively, the duration of the candidate time period. In some embodiments, the first predetermined threshold may be set such that during the upgrade operation, the storage system's processing capacity for other tasks and / or operations is not affected, for example, it meets the processing latency requirements in the SLA.

[0028] In some embodiments, the workload of the storage system can be indicated by the busyness (in percentage) of multiple components (e.g., a disk array), and therefore the first predetermined threshold can also be a predetermined busyness threshold. The predetermined busyness threshold can be set such that the storage system's processing capacity for other tasks and / or operations is not affected during an upgrade operation. Since the amount of work to be performed by the storage system is not exactly the same at different times, the busyness of the storage system will fluctuate, and therefore a set of candidate time periods can be determined based on the busyness of the storage system (in some embodiments, predicted busyness, which can indicate predicted workload). It will be understood that other parameters that can characterize the workload of the storage system are also available, such as processor and / or memory utilization.

[0029] In some embodiments, information about a set of candidate time periods may be predetermined and stored in a storage device for retrieval by a computing device when needed. In some embodiments, the computing device may determine a predicted workload (e.g., predicted activity level) over a future period based on computing resource information of the storage system (e.g., the capacity and / or utilization of one or more processors and / or one or more memories) and read / write information (e.g., throughput, utilization, latency, and / or I / O queues of multiple storage disks). Based on the determined predicted workload, the computing device may determine (e.g., select) a set of candidate time periods over the future period, during which, as previously described, the storage system has a workload below a first predetermined threshold.

[0030] In some embodiments, the predicted workload can be determined using a trained machine learning model. In some embodiments, the machine learning model can be based on a random forest algorithm. In some embodiments, the machine learning model can also be based on a support vector machine (SVM) model, a Bayesian model, or various neural network models such as convolutional neural networks (CNNs), recurrent neural networks (RNNs), deep neural networks (DNNs), etc.

[0031] Now for reference Figure 3 To provide a detailed explanation, Figure 3 A schematic diagram of a process 300 for upgrading a storage system according to an embodiment of the present disclosure is shown. Figure 3 As shown, computing device 105 may include analyzer 325, where a machine learning model (not shown) may be deployed. This model can be trained based on information including historical time information, historical computing resource information (such as the historical capacity and / or historical utilization of one or more processors and / or one or more memories) and / or historical read / write information (such as the historical throughput, historical utilization, historical latency, etc. of multiple storage disks) to describe the relationship between the workload of the storage system and time, computing resource information, and / or read / write information. Therefore, the machine learning model can learn, based on the aforementioned information related to access behavior to the storage system, the time periods during which the workload of the storage system is likely to be high or low, and the computing resource and / or read / write curves after which it may increase or decrease.

[0032] For example, multiple users of a storage system may perform data backups at a fixed time each weekend. Therefore, a machine learning model can learn that during this fixed time, the storage resources (including but not limited to a portion of storage disks) allocated to these users will be relatively busy. As another example, some storage disks in the storage system (e.g., the storage disk array is not activated) may not be used for data storage temporarily. Therefore, the machine learning model can learn that these storage disks will be relatively idle throughout the entire period. Furthermore, a particular user may have specific access behavior characteristics, such as performing data restoration operations after data backup is completed. This is common in virtual machine (VM) backups, as users often want to verify and / or test the backed-up data as soon as possible. In such cases, the storage disk array associated with that particular user will experience a high component-level workload for a period of time due to this task. Based on this, the trained machine learning model can accurately predict the overall workload of the storage system and / or the component workload within the storage system. Testing has shown that the error between the predictions and actual results of the trained machine learning model is small.

[0033] The analyzer 325 can utilize a trained machine learning model to determine a predicted workload (e.g., predicted activity level) based on information 320 such as current time information, current computing resource information, and / or current read / write information. Based on the determined predicted workload, the computing device can identify (e.g., select) a set of candidate periods of relative idle time for the storage system within a future period of time, and thereby determine candidate idle period information 326, including but not limited to the start time, end time, duration, and corresponding predicted workload of these periods.

[0034] It will be understood that determining the predicted workload based on a machine learning model is only one implementation of this disclosure, and other methods for determining the predicted workload are equally applicable. In some embodiments, if the workload schedule of the storage system is known, a set of candidate time periods can be determined based on the workload schedule of the storage system.

[0035] Return to reference Figure 2 In step 204, the computing device can determine a target time period for the upgrade from a set of candidate time periods based on user information of the storage system. Specifically, not every candidate time period in the set is suitable for the upgrade operation. For example, even if the workload of the storage system is relatively low during such a candidate time period, upgrading some components of the storage system will affect the availability of those components, and consequently may affect the use of storage services by users associated with those components. Therefore, in order to at least meet the user's requirements for storage services, further filtering of the candidate time periods is needed to determine one or more preferred target time periods. Some embodiments for determining the target time period for the upgrade will be referenced below. Figure 5 and Figure 3 Let me describe it in detail.

[0036] At 206, the computing device may perform upgrade operations on at least a portion of multiple components of the storage system during a target time period. In some embodiments, the multiple components may include one or more processors, one or more memories, and multiple storage disks. The computing device may perform firmware upgrades on at least a portion of the multiple components (e.g., multiple storage disks) during the target time period. In some embodiments, since not all components require firmware upgrades (e.g., in cases where the upgrade is only for a component with a specific signal), the computing device may preferably obtain a list of components that require firmware upgrades. In some embodiments, the computing device may determine the number of components that can be upgraded during the target time period based on the duration of the target time period, the average time that upgrading each component will take, and / or the degree of upgrade parallelism (i.e., the number of components such as storage disks that can be upgraded simultaneously). In some embodiments, considering that not all components are idle during the target time period, a portion of the relatively idle components can be identified for upgrades to avoid the risks that may result from upgrading more busy components. Some embodiments for determining the components to be upgraded during the target time period will be referenced below. Figure 5 and Figure 3 Let me describe it in detail.

[0037] In this way, the appropriate components can be upgraded at the right time without affecting the storage system's ability to provide storage services to users.

[0038] Figure 4 A flowchart of a process 400 for determining a target time period for an upgrade, according to embodiments of this disclosure. Process 400 can be... Figure 1 The computing device 105 shown is implemented therein. Process 400 can be... Figure 2 A specific embodiment of 204 is described below. It will be understood that process 400 can be performed for each candidate time period to determine one or more optimal target time periods, or it can proceed without further processing the remaining candidate time periods after a suitable candidate time period has been determined as the target time period. The following will combine... Figure 3 Let me explain the process in detail 400.

[0039] In some embodiments, user information 324, together with candidate idle time period information 326 described above, and additional or alternative access modes 328 (to be referenced) Figure 5(A detailed discussion) can be obtained and stored by the information collector 335 of the computing device 105. This information can be provided by the information collector 335 to the component upgrade manager 345 of the computing device 105 for use by the component upgrade manager 345 to determine which components will be upgraded. In some embodiments, user information 324 may include a Service Level Agreement (SLA) associated with a user of the system. As discussed above, the SLA may define parameters used to measure the service level and may include parameters such as data storage reliability and storage service availability. The storage system should meet (e.g., not less than) the various parameters defined by the SLA.

[0040] Return to reference Figure 4 At 402, the computing device can determine the work task to be performed during one of a set of candidate time periods. At 404, the computing device can determine, based on the work task, whether performing an upgrade operation during the candidate time period will allow the SLA to be met. Now refer to... Figure 3 To illustrate, determining whether an SLA can be met can be accomplished by the component upgrade manager 345 based on various received information. In some embodiments, if the workload includes at least one of a data backup task and a data recovery task, the computing device (e.g., the component upgrade manager 345) can determine that the SLA cannot be met and therefore choose not to perform the upgrade during the candidate period. Specifically, when a particular user is performing a data backup task and / or a data recovery task, even if the workload of the storage system is low during the candidate period, performing the upgrade operation will cause the SLA to be unmet. Therefore, any upgrade operation during the candidate period can be disabled; in other words, the candidate period is not determined as the target period.

[0041] In some embodiments, if the workload includes at least one of a data reclamation task, a data cleanup task, and a file system verification task, the computing device (e.g., component upgrade manager 345) can determine the first time such a workload was previously executed and determine the time difference between the first time and the current time. If the time difference is greater than a time difference threshold, it can be determined that the Service Level Agreement (SLA) cannot be met. Specifically, although workloads such as data reclamation, data cleanup, and file system verification tasks do not have particularly high priority and can generally be postponed, if these tasks have not been executed for too long (e.g., exceeding the time difference threshold), the availability and capacity of the storage system may be affected, thus preventing the SLA from being met. Therefore, any upgrade operations during the candidate period can be disabled; in other words, the candidate period is not determined as the target period.

[0042] In some embodiments, the above process can be completed automatically by the component upgrade manager 345. In some embodiments, the above process can be notified to the user administrator by the component upgrade manager 345 through statistics / reports 344, and the user administrator can further evaluate and then, for example, disable and / or enable any upgrade operations during the candidate period through user input 342, such as input via the user interface.

[0043] Return to reference Figure 4 If it is determined that the SLA can be met, the computing device can, at step 406, designate the candidate time period as the target time period. Otherwise, if it is determined that the SLA cannot be met, the computing device can, at step 408, not designate the candidate time period as the target time period.

[0044] In this way, it is possible to further select the target time period with the least impact on users from multiple candidate time periods with low workload for storage system upgrades, thereby reducing the impact of storage system upgrades on users' use of storage services.

[0045] Figure 5 A flowchart illustrating a process 500 for determining components that will perform an upgrade operation during a target time period, according to an embodiment of the present disclosure, is shown. Process 500 can... Figure 1 The computing device 105 shown is implemented therein. Process 500 can be... Figure 2 A specific embodiment of 206. It will be understood that process 500 can be performed for each of a plurality of components to be upgraded, in order to identify at least a subset of the components that will be upgraded during a target time period.

[0046] In 502, a computing device can determine multiple component workloads corresponding to multiple components during a target time period based on multiple access patterns corresponding to multiple components, each of the multiple access patterns indicating first information related to access to the corresponding component. In this document, the term "component workload" refers to workload at the individual component level, which may refer to at least one of the following: the workload of a processor or processor group, the workload of a memory or memory bank, and the workload of a storage disk or storage disk array. The following will combine... Figure 3 Let me explain the process in detail (500).

[0047] Specifically, the analyzer of computing device 105 can determine multiple access patterns 328 based on read / write information associated with multiple components 310 in information 320, each access pattern corresponding to a specific component. Access patterns 328 can be collected by information collector 335 and provided by information collector 335 to component upgrade manager 345 for controlling upgrade operations on a subset of components. In some embodiments, the first information indicated by access pattern 328 includes at least one of the following: the utilization status of the corresponding component and user behavior characteristics information regarding access to the corresponding component. For example, as discussed above, some storage disks in the storage system may not be used for data storage temporarily, and / or specific users may have specific access behavior characteristics, thus affecting the workload of related components. Therefore, such information can be used to determine the access pattern of each component. Access patterns can be determined by the trained machine learning model described above. For example, the computing device can determine whether each storage disk array will be busy or idle during a target time period.

[0048] Return to reference Figure 5 At step 504, the computing device identifies at least a subset of components that have a component workload below a second predetermined threshold. In some embodiments, component workload can be indicated by the busyness (in percentage) of a single storage disk array, and therefore the second predetermined threshold can also be a predetermined busyness threshold. This predetermined busyness threshold can be set such that processing power for other tasks and / or operations is not affected during an upgrade operation on the component. Since the workload to be performed by the component is not exactly the same at different times, the busyness will fluctuate, and therefore, it can be determined whether to upgrade the component based on the component's busyness (in some embodiments, predicted busyness, which can indicate predicted workload).

[0049] Now continue with the reference. Figure 3To illustrate, for example, the component upgrade manager 345 can determine, based on the access patterns associated with each of the plurality of components 310, that at least a portion of the components (e.g., storage disks 3102 and 3103, which may belong to less busy RAIDs) can be upgraded during a target time period, while other components (e.g., storage disks 3101 and 310n, which may belong to busier RAIDs) cannot be upgraded during the target time period. Thus, the computing device can (e.g., via the component upgrade manager 345) perform upgrade operations such as firmware upgrades on the at least a portion of the components (e.g., storage disks 3102 and 3103), and can cancel or postpone upgrade operations on at least another portion of the plurality of components 310 (e.g., storage disks 3101 and 310n), wherein the at least another portion of the components includes components with a component workload not less than a second predetermined threshold. In some embodiments, when to perform upgrade operations on the canceled or postponed at least another portion of the components can be determined again according to the method described herein, until there are no components to be upgraded.

[0050] In this way, relatively idle components can be selected for upgrades during the target time period, further reducing the impact of storage system upgrades on users' use of storage services.

[0051] Figure 6 A schematic block diagram of an example electronic device 600 that can be used to implement embodiments of the present disclosure is shown. For example, the electronic device 600 can be used to implement… Figure 1 The computing device 105 shown Figure 3 The computing device 305 shown is illustrated. As shown, device 600 includes a central processing unit (CPU) 601, which can perform various appropriate actions and processes based on computer program instructions stored in read-only memory (ROM) 602 or loaded from storage unit 608 into random access memory (RAM) 603. RAM 603 may also store various programs and data required for the operation of device 600. CPU 601, ROM 602, and RAM 603 are interconnected via bus 604. Input / output (I / O) interface 605 is also connected to bus 604.

[0052] Multiple components in device 600 are connected to I / O interface 605, including: input unit 606, such as keyboard, mouse, etc.; output unit 607, such as various types of monitors, speakers, etc.; storage unit 608, such as disk, optical disk, etc.; and communication unit 609, such as network card, modem, wireless transceiver, etc. Communication unit 609 allows device 600 to exchange information / data with other devices through computer networks such as the Internet and / or various telecommunications networks.

[0053] Processing unit 601 performs the various methods and processes described above, such as any one of processes 200 to 500. For example, in some embodiments, any one of processes 200 to 500 may be implemented as a computer software program or computer program product tangibly contained in a machine-readable medium, such as storage unit 608. In some embodiments, part or all of the computer program may be loaded and / or installed on device 600 via ROM 602 and / or communication unit 609. When the computer program is loaded into RAM 603 and executed by CPU 601, one or more steps of any of the processes 200 to 500 described above may be performed. Alternatively, in other embodiments, CPU 601 may be configured to execute any one of processes 200 to 500 by any other suitable means (e.g., by means of firmware).

[0054] This disclosure can be a method, apparatus, system, and / or computer program product. A computer program product may include a computer-readable storage medium having computer-readable program instructions loaded thereon for performing various aspects of this disclosure.

[0055] Computer-readable storage media can be tangible devices capable of holding and storing instructions for use by an instruction execution device. Computer-readable storage media can be, for example—but not limited to—electrical storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, any non-transitory storage devices, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of computer-readable storage media include: portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disc read-only memory (CD-ROM), digital multifunction disc (DVD), memory sticks, floppy disks, mechanical encoding devices, such as punch cards or recessed protrusions storing instructions thereon, and any suitable combination of the foregoing. The computer-readable storage media used herein are not to be construed as transient signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., light pulses through fiber optic cables), or electrical signals transmitted through wires.

[0056] The computer-readable program instructions described herein can be downloaded from computer-readable storage media to various computing / processing devices, or downloaded via a network, such as the Internet, local area network, wide area network, and / or wireless network, to an external computer or external storage device. The network may include copper transmission cables, fiber optic transmission, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards them to the computer-readable storage media in the respective computing / processing device.

[0057] Computer program instructions used to perform the operations of this disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, status setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Smalltalk, C++, etc., and conventional procedural programming languages ​​such as the "C" language or similar programming languages. The computer-readable program instructions may execute entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving a remote computer, the remote computer may be connected to the user's computer via any type of network—including a local area network (LAN) or a wide area network (WAN)—or may be connected to an external computer (e.g., via the Internet using an Internet service provider). In some embodiments, electronic circuitry, such as programmable logic circuitry, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs), is personalized by utilizing the status information of the computer-readable program instructions to implement various aspects of this disclosure.

[0058] Various aspects of this disclosure are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this disclosure. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.

[0059] These computer-readable program instructions can be provided to a processing unit of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to produce a machine such that, when executed by the processing unit of the computer or other programmable data processing apparatus, they create means for implementing the functions / actions specified in one or more blocks of the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium that causes a computer, programmable data processing apparatus, and / or other device to operate in a particular manner. Thus, the computer-readable medium storing the instructions comprises an article of manufacture that includes instructions for implementing aspects of the functions / actions specified in one or more blocks of the flowchart and / or block diagram.

[0060] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, thereby causing the instructions executed on the computer, other programmable data processing apparatus, or other device to perform the functions / actions specified in one or more boxes of a flowchart and / or block diagram.

[0061] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of an instruction containing one or more executable instructions for implementing a specified logical function. In some alternative implementations, the functions marked in the blocks may occur in a different order than those shown in the drawings. For example, two consecutive blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented using a dedicated hardware-based system that performs the specified function or action, or using a combination of dedicated hardware and computer instructions.

[0062] Various embodiments of this disclosure have been described above. These descriptions are exemplary and not exhaustive, nor are they limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terminology used herein is chosen to best explain the principles, practical applications, or improvements to the technology in the market, or to enable others skilled in the art to understand the embodiments disclosed herein.

Claims

1. A method for upgrading a storage system, comprising: Acquire information about a set of candidate time periods related to the workload of the storage system, during which the storage system has a workload below a first predetermined threshold. The target time period for the upgrade is determined from the set of candidate time periods by a machine learning model based on user information of the storage system; as well as During the target time period, firmware upgrade operations are performed on at least a portion of the components of the storage system. The user information includes Service Level Agreements (SLAs) associated with users of the storage system, and determining the target time period for the upgrade includes: Determine the tasks to be performed during the candidate time periods in the set of candidate time periods; Based on the task, determine whether the performance impact on the task resulting from performing the firmware upgrade operation during the candidate time period allows the SLA to be met; and If it is determined that the SLA can be met, the candidate time period is determined as the target time period for the firmware upgrade operation.

2. The method of claim 1, wherein the plurality of components includes a plurality of storage disks, and performing the firmware upgrade operation includes: The firmware upgrade operation is performed on at least a portion of the plurality of storage disks.

3. The method according to claim 1, wherein obtaining the information of the set of candidate time periods includes: Based on the computing resource information and read / write information of the storage system, the predicted workload for a future period of time is determined. as well as Based on the predicted workload, the set of candidate time periods is determined from the future period.

4. The method of claim 1, wherein determining whether the performance impact on the task resulting from performing the firmware upgrade operation during the candidate time period allows the SLA to be met includes: If the work task includes at least one of a data backup task and a data recovery task, it is determined that the SLA cannot be met.

5. The method of claim 1, wherein determining whether the performance impact on the task resulting from performing the firmware upgrade operation during the candidate time period allows the SLA to be met includes: If the task includes at least one of a data recycling task, a data cleaning task, and a file system verification task, determine the first time when the task was previously executed. Based on the time difference between the first time and the current time, determine the duration since the work task was previously executed; as well as If the time difference is greater than the time difference threshold, then the SLA is determined to be unsatisfactory.

6. The method of claim 1, wherein performing the firmware upgrade operation on the at least a portion of the components comprises: Based on multiple access patterns corresponding to the multiple components, the workload of multiple components corresponding to the multiple components during the target time period is determined, and each of the multiple access patterns indicates first information related to access to the corresponding component. as well as The components with a workload below a second predetermined threshold among the plurality of components are identified as the at least part of the components.

7. The method according to claim 6, further comprising: Cancel or postpone the firmware upgrade operation of the component among the plurality of components that has a component workload of not less than a second predetermined threshold.

8. The method of claim 6, wherein the plurality of access modes are determined based on read / write information associated with the plurality of components.

9. The method according to claim 6, wherein the first information includes behavioral characteristic information of the user accessing the corresponding component.

10. An electronic device, comprising: processor; as well as A memory coupled to the processor, the memory having instructions stored therein, the instructions which, when executed by the processor, cause the electronic device to perform actions, the actions including: Acquire information about a set of candidate time periods related to the workload of the storage system, during which the storage system has a workload below a first predetermined threshold. The machine learning model determines the target time period for the upgrade from the set of candidate time periods based on user information of the storage system; and During the target time period, firmware upgrade operations are performed on at least a portion of the components of the storage system. The user information includes Service Level Agreements (SLAs) associated with users of the storage system, and determining the target time period for the upgrade includes: Determine the tasks to be performed during the candidate time periods in the set of candidate time periods; Based on the task, determine whether the performance impact on the task resulting from performing the firmware upgrade operation during the candidate time period allows the SLA to be met; and If it is determined that the SLA can be met, the candidate time period is determined as the target time period for the firmware upgrade operation.

11. The device of claim 10, wherein the plurality of components includes a plurality of storage disks, and performing the firmware upgrade operation comprises: The firmware upgrade operation is performed on at least a portion of the plurality of storage disks.

12. The device of claim 10, wherein obtaining the information of the set of candidate time periods includes: Based on the computing resource information and read / write information of the storage system, the predicted workload for a future period of time is determined. as well as Based on the predicted workload, the set of candidate time periods is determined from the future period.

13. The device of claim 10, wherein determining whether the performance impact on the task resulting from performing the firmware upgrade operation during the candidate time period allows the SLA to be met includes: If the work task includes at least one of a data backup task and a data recovery task, it is determined that the SLA cannot be met.

14. The apparatus of claim 10, wherein determining whether the performance impact on the task resulting from performing the firmware upgrade operation during the candidate time period allows the SLA to be met includes: If the task includes at least one of a data recycling task, a data cleaning task, and a file system verification task, determine the first time when the task was previously executed. Based on the time difference between the first time and the current time, determine the duration since the work task was previously executed; as well as If the time difference is greater than the time difference threshold, then the SLA is determined to be unsatisfactory.

15. The device of claim 10, wherein performing the firmware upgrade operation on the at least a portion of the components comprises: Based on multiple access patterns corresponding to the multiple components, the workload of multiple components corresponding to the multiple components during the target time period is determined, and each of the multiple access patterns indicates first information related to access to the corresponding component. as well as The components with a workload below a second predetermined threshold among the plurality of components are identified as the at least part of the components.

16. The device according to claim 15, wherein the action further includes: Cancel or postpone the firmware upgrade operation of the component among the plurality of components that has a component workload of not less than a second predetermined threshold.

17. The device of claim 15, wherein the plurality of access modes are determined based on read / write information associated with the plurality of components.

18. The device according to claim 15, wherein the first information includes behavioral characteristic information of the user accessing the corresponding component.

19. A computer program product tangibly stored on a computer-readable medium and comprising machine-executable instructions that, when executed, cause a machine to perform the method according to any one of claims 1 to 9.

Citation Information

Patent Citations

  • Method and system to perform non-intrusive online disk firmware upgrades

    US9798534B1

  • System upgrade management in distributed computing systems

    CN110325968A

  • System and method for update of firmware of a storage array controller in a storage area network

    US20100229166A1