Firmware upgrading method and device of storage system, storage medium and electronic equipment

By using two hardware channels in the storage system, one for running services and the other for firmware upgrade, the problem of operation interruption during firmware upgrade of the storage system is solved, and targeted without affecting the service. Firmware upgrades improve system security and stability.

CN119166189APending Publication Date: 2024-12-20INSPUR SUZHOU INTELLIGENT TECH CO LTD
View PDF 0 Cites 2 Cited by

Patent Information

Application Number
CN202411195341.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-08-28
Publication Date
2024-12-20

AI Technical Summary

Technical Problem

Storage system firmware upgrades often cause system operation interruption and cannot be targeted upgrades without affecting business.

Method used

Using at least two hardware channels, one of which is used to run the service and the other is used as an upgrade channel. By obtaining the firmware patch package for checksum upgrade, ensuring that the upgraded firmware is targeted without interrupting the service. Sexual upgrade.

Benefits of technology

It realizes the upgrade of the firmware of the storage system without interrupting business, improves the security and stability of the system and reduces costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119166189A_ABST
    Figure CN119166189A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a firmware upgrading method and device of a storage system, a computer readable storage medium and electronic equipment, and relates to the field of computers.The method comprises the steps that a firmware service pack is obtained, and the firmware service pack comprises at least one piece of firmware to be upgraded of the storage system; the firmware service pack is verified in response to a received upgrading command, and the upgrading command is used for indicating to upgrade the firmware to be upgraded; and under the condition that the firmware service pack passes verification, the firmware service pack is operated in a second operation channel to upgrade the firmware to be upgraded, and the at least two hardware channels comprise the second operation channel which is a hardware channel which does not operate a service. According to the method and the device, the effect of carrying out targeted upgrading on the firmware needing to be upgraded under the condition of not interrupting the service is realized, the safety and the stability of the storage system are improved, and the cost is reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments of the present application relate to the field of computers, and more specifically, to a method and device for upgrading firmware of a storage system, a computer-readable storage medium, and an electronic device. Background Art

[0002] With the rapid development of technologies such as cloud computing, big data, and artificial intelligence, servers, as important infrastructure, play an important role in the digital economy. A storage server is a computer server used to store large amounts of data. It can support clients from different standard computer systems and provide effective data storage, processing, and management functions. Its main function is to provide file sharing and powerful storage capabilities. It can store text, pictures, videos in various formats, as well as folders and other types of data files. Storage servers are well-known for their reliability and security because they provide comprehensive security mechanisms, including user authentication and secure transmission. Storage system firmware, such as BlOS (Basic Input Output System), BMC (Baseboard Management Controller), CPLD (Complex Programmable Logic Device), Expander, PSU (Power Supply Unit), BBU (Battery Backup Unit), and other firmware, runs on storage servers.

[0003] As technology develops and improves, storage systems will be iterated, and the firmware of storage systems also needs to be upgraded. In related technologies, the firmware upgrade of the storage system is usually achieved by updating the version of the storage system through the MCS (Multiple Controller System) installation package.

[0004] However, upgrading the firmware of the storage system using related technologies may interrupt the normal operation of the storage system. Summary of the invention

[0005] Embodiments of the present application provide a storage system firmware upgrade method and device, a computer-readable storage medium, and an electronic device to at least solve the problem that when the storage system firmware is upgraded, the normal operation of the storage system may be interrupted.

[0006] According to one embodiment of the present application, a firmware upgrade method for a storage system is provided, wherein the storage system includes at least two hardware channels, and the at least two hardware channels include: a first running channel, and the first running channel is used to run a business, and the method includes: obtaining a firmware patch package, wherein the firmware patch package includes at least one firmware to be upgraded of the storage system; in response to a received upgrade command, verifying the firmware patch package, wherein the upgrade command is used to instruct to upgrade the firmware to be upgraded; if the firmware patch package passes the verification, running the firmware patch package on a second running channel to upgrade the firmware to be upgraded, wherein the at least two hardware channels include: the second running channel, and the second running channel is a hardware channel that does not run the business.

[0007] In an exemplary embodiment, in response to a received upgrade command, the firmware patch package is verified, including: performing a preliminary verification on the firmware patch package based on a digital signature generated based on a pre-configured key; if the firmware patch package passes the preliminary verification, running an upgrade verification program in the firmware patch package to verify the firmware patch package, wherein the upgrade verification program is used to verify whether the upgrade environment of the firmware patch package meets preset conditions, and to verify whether the information contained in the firmware patch package matches the storage system.

[0008] In an exemplary embodiment, when the firmware patch package passes the preliminary verification, the upgrade verification program in the firmware patch package is run to verify the firmware patch package, including: running the upgrade verification program in the firmware patch package to obtain an environment verification result fed back by the upgrade verification program, wherein the upgrade verification program is used to feed back an environment verification result indicating that the verification has passed when it is determined that the upgrade environment of the firmware patch package meets a preset condition; when it is determined that the environment verification result is a verification pass, running the upgrade verification program in the firmware patch package to obtain a version verification result fed back by the upgrade verification program, wherein the upgrade verification program is used to feed back a version verification result indicating that the verification has passed when the firmware version information and the system version information of the firmware patch package match the firmware version information and the system version information in the storage system.

[0009] In an exemplary embodiment, the firmware upgrade method of the storage system also includes: when it is determined that the version verification result is a passed verification, determining that the firmware patch package has passed the verification, and using the firmware patch package to replace the firmware package of the storage system, and using the system version information in the firmware patch package to update the expected system version information of the storage system.

[0010] In an exemplary embodiment, when the firmware patch package passes the verification, the firmware patch package is run in the second running channel to upgrade the firmware to be upgraded, including: searching for a node that meets the upgrade conditions in the cluster of the firmware to be upgraded as a target node; when the target node is determined, stopping sending tasks to the target node; determining the tasks to be assigned to the target node; searching for at least one node in the cluster of the firmware to be upgraded as a temporary node, wherein the margin of the business load of the temporary node is greater than the load of the tasks to be assigned, and the temporary node is a node in the cluster of the firmware to be upgraded except the target node; The task to be assigned is sent to the temporary node; the firmware of the target node is upgraded using the firmware patch package; the upgrade result of the target node is determined; when it is determined that the upgrade result of the target node is an upgrade failure, the upgrade process is stopped; when it is determined that the upgrade result of the target node is an upgrade success, the next node that meets the upgrade conditions is searched as a new target node according to a preset strategy until all nodes of the firmware to be upgraded are upgraded; wherein the preset strategy is: searching for a node that meets the upgrade conditions in the cluster of the firmware to be upgraded as a new target node, or searching for multiple nodes that meet the upgrade conditions in the cluster of the firmware to be upgraded as new target nodes.

[0011] In an exemplary embodiment, the firmware upgrade method of the storage system also includes: in a case where no target node satisfying the upgrade condition is found in the cluster of the firmware to be upgraded, determining whether there is a first node satisfying a first condition in the cluster of the firmware to be upgraded, wherein the upgrade condition includes a first condition and a second condition, and determining a node satisfying both the first condition and the second condition as the target node, the first condition being that the cluster can maintain normal operation when the node leaves the cluster, and the second condition being that the business load of the node is lower than a threshold; in a case where it is determined that there is a first node satisfying the first condition in the cluster of the firmware to be upgraded, pausing the upgrade process until the first node satisfies the upgrade condition; in a case where it is determined that there is no first node satisfying the first condition in the cluster of the firmware to be upgraded, stopping the upgrade process.

[0012] In an exemplary embodiment, after determining the upgrade result of the target node, the method further includes: resending the task to the target node.

[0013] According to another embodiment of the embodiment of the present application, a firmware upgrade device for a storage system is further provided, wherein the storage system includes at least two hardware channels, wherein the at least two hardware channels include: a first operation channel, and the first operation channel is used to run a service, and the device includes:

[0014] A firmware acquisition module, used to acquire a firmware patch package, wherein the firmware patch package includes at least one firmware to be upgraded of the storage system;

[0015] A verification module, configured to verify the firmware patch package in response to a received upgrade command, wherein the upgrade command is used to instruct to upgrade the firmware to be upgraded;

[0016] An upgrade module is used to run the firmware patch package in a second running channel to upgrade the firmware to be upgraded when the firmware patch package passes the verification, wherein the at least two hardware channels include: the second running channel, and the second running channel is a hardware channel that does not run the business.

[0017] According to another embodiment of the present application, a computer-readable storage medium is provided, in which a computer program is stored, wherein the computer program is configured to execute the steps of any of the above method embodiments when run.

[0018] According to another embodiment of the present application, an electronic device is provided, including a memory and a processor, wherein the memory stores a computer program, and the processor is configured to run the computer program to execute the steps in any one of the above method embodiments.

[0019] According to the firmware upgrade method of the storage system in the present application, a firmware patch package is first obtained, and the firmware patch package includes at least one firmware to be upgraded. Therefore, when a firmware in the storage system needs to be upgraded, it is only necessary to obtain the firmware patch package required for the firmware upgrade, and the firmware patch package is used to upgrade the firmware alone, without updating the system version of the entire storage system, which is more convenient and flexible, and reduces costs. Then, in response to the received upgrade command, the firmware patch package is verified, and when the firmware patch package passes the verification, the firmware patch package is run in the second operation channel to upgrade the firmware to be upgraded. The storage system includes at least two hardware channels, the first hardware channel is used to run the business, and the second operation channel is a hardware channel that does not run the business. In this way, the redundant capacity of multiple hardware channels of the storage system is fully utilized, one hardware channel is used to maintain the normal operation of the business, and the other hardware channel is used as an upgrade channel to run the firmware patch package, so as to achieve the effect of targeted upgrade of the firmware to be upgraded without interrupting the business, thereby improving the security and stability of the storage system and reducing costs. BRIEF DESCRIPTION OF THE DRAWINGS

[0020] The drawings described herein are used to provide a further understanding of the present application and constitute a part of the present application. The illustrative embodiments of the present application and their descriptions are used to explain the present application and do not constitute an improper limitation on the present application. In the drawings:

[0021] Figure 1 This is an application scenario diagram of a firmware upgrade method for a storage system according to an embodiment of the present application;

[0022] Figure 2 is a flowchart of a firmware upgrade method for a storage system according to an embodiment of the present application;

[0023] Figure 3 is a flowchart of a firmware verification method according to an embodiment of the present application;

[0024] Figure 4 This is a second flowchart of a firmware verification method according to an embodiment of the present application;

[0025] Figure 5 This is a second flowchart of a method for upgrading firmware of a storage system according to an embodiment of the present application;

[0026] Figure 6 is a flowchart of a method for upgrading firmware of a storage system according to an embodiment of the present application;

[0027] Figure 7 is a timing diagram of a firmware upgrade method for a storage system according to an embodiment of the present application;

[0028] Figure 8 is a structural block diagram of a firmware upgrade device for a storage system according to an embodiment of the present application;

[0029] Fig. 9 It is a schematic diagram of the structure of an optional electronic device according to an embodiment of the present application. DETAILED DESCRIPTION

[0030] The embodiments of the present application will be described in detail below with reference to the accompanying drawings and in combination with the embodiments.

[0031] It should be noted that the terms "first", "second", etc. in the specification and claims of this application and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence.

[0032] A cache space allocation method provided in an embodiment of the present application can be applied to Figure 1In the application environment shown. Among them, the terminal 102 communicates with the server 104 through the network. The data storage system can store the data that the server 104 needs to process. The data storage system can be integrated on the server 104, or it can be placed on the cloud or other network servers. The firmware upgrade method of the storage system in the present application can be used to upgrade the firmware of the storage system in a targeted manner while maintaining the normal operation of the storage system. Among them, the terminal 102 can be, but is not limited to, various personal computers, laptops, smart phones, tablet computers, Internet of Things devices and portable wearable devices. The Internet of Things devices can be smart speakers, smart TVs, smart air conditioners, smart car-mounted devices, projection devices, etc. Portable wearable devices can be smart watches, smart bracelets, head-mounted devices, etc. The head-mounted device can be a virtual reality (VR) device, an augmented reality (AR) device, smart glasses, etc. The server 104 can be an independent physical server, a server cluster or distributed system consisting of multiple physical servers, or a cloud server that provides cloud computing services.

[0033] In an exemplary embodiment, Figure 2 As shown, a method for upgrading the firmware of a storage system is provided. Figure 1 The server 104 in the example is used as an example to illustrate, including the following steps S200-S220. Among them:

[0034] Step S200, obtaining a firmware patch package.

[0035] Among them, the firmware patch package includes at least one firmware to be upgraded of the storage system. It should be noted that, after the storage system in the related art is started, the multiple controller system (MCS) on the storage controller will determine whether the current version number of the system is consistent with the expected version number. If it is inconsistent, the firmware upgrade process will be triggered. During the upgrade, it depends on the new version of MCS. Even if only a certain firmware needs to be upgraded, it still needs to rely on MCS to issue a new version upgrade in order to upgrade the firmware. However, the overall development cycle of MCS is long, and it is costly to develop a new MCS version for the upgrade of a certain firmware. The firmware patch package in this embodiment includes the firmware to be upgraded, rather than the entire new version of MCS. Therefore, some firmware can be upgraded in a targeted manner under the current MCS version without the need to develop a new MCS version, which is lower in cost.

[0036] The storage system includes at least two hardware channels, and the at least two hardware channels include: a first operation channel, and the first operation channel is used to run services.

[0037] For example, taking the Baseboard Management Controller (BMC) in the storage system as an example, the hardware channel for actually running the service can be selected as the network channel. The BCM also has a hardware channel which is the Universal Serial Bus (USB) channel, which can be used as an upgrade channel to run the firmware patch package. The BCM reserves the resources required for the firmware patch package to run. This ensures that the firmware patch package is silently executed in the background through the USB channel when it is running, without affecting the business operation of the foreground.

[0038] Step S210: In response to the received upgrade command, verify the firmware patch package.

[0039] The upgrade command is used to instruct to upgrade the firmware to be upgraded.

[0040] For example, an interface for triggering the upgrade of a firmware patch package can be designed on the storage system: for example, a dialog box is designed on a graphical user interface (GUI), through which the firmware patch package can be uploaded to a fixed path of the storage system. After the upload is successful, an upgrade command line is designed. When the upgrade command line is executed, an upgrade command is issued to the storage system, triggering the storage system to start the firmware upgrade process, that is, the storage system will respond to the received upgrade command and start the firmware upgrade process. The upgrade command line can also be implemented by adding a button on the GUI.

[0041] Step S220: When the firmware patch package passes the verification, the firmware patch package is run in the second running channel to upgrade the firmware to be upgraded.

[0042] The at least two hardware channels include: a second operation channel, and the second operation channel is a hardware channel on which no service is running.

[0043] In this embodiment, a firmware patch package is first obtained, and the firmware patch package includes at least one firmware to be upgraded. Therefore, when a firmware in the storage system needs to be upgraded, it is only necessary to obtain the firmware patch package required for the firmware upgrade, and use the firmware patch package to upgrade the firmware alone, without updating the system version of the entire storage system, which is more convenient and flexible, and reduces costs. Then, in response to the received upgrade command, the firmware patch package is verified. If the firmware patch package passes the verification, the firmware patch package is run in the second operation channel to upgrade the firmware to be upgraded. The storage system includes at least two hardware channels, the first hardware channel is used to run the business, and the second operation channel is a hardware channel that does not run the business. In this way, the redundancy capacity of multiple hardware channels of the storage system is fully utilized, one hardware channel is used to maintain the normal operation of the business, and the other hardware channel is used as an upgrade channel to run the firmware patch package, so that the firmware that needs to be upgraded can be upgraded in a targeted manner without interrupting the business, thereby improving the security and stability of the storage system and reducing costs.

[0044] In one embodiment, Figure 3 As shown, step S210, in response to the received upgrade command, verifies the firmware patch package. It includes: steps S300-310. Among them,

[0045] Step S300, performing a preliminary verification on the firmware patch package based on a digital signature generated by a pre-configured key.

[0046] Among them, a pair of public keys and private keys can be pre-generated as a pair of keys. The public key is used to encrypt and verify the signature, and the private key is used to decrypt data. MCS verifies the digital signature of the firmware patch package through the public key to verify the authenticity and integrity of the firmware patch package, that is, preliminary verification. The storage of keys follows the principle of least privilege.

[0047] Among them, in the preliminary verification, if the firmware patch package fails to be verified using the digital signature, MCS will add the firmware patch package to the blacklist, and this firmware patch package can no longer be used to enter the upgrade process.

[0048] Step S310, when the firmware patch package passes the preliminary verification, running the upgrade verification program in the firmware patch package to verify the firmware patch package.

[0049] The upgrade verification program is used to verify whether the upgrade environment of the firmware patch package meets the preset conditions and whether the information included in the firmware patch package matches the storage system.

[0050] The firmware patch package may include the following components: the firmware to be upgraded, the tools required for upgrading the firmware, the firmware version information, and the upgrade verification program.

[0051] In this embodiment, a preliminary check is first performed on the firmware patch package to verify the authenticity and integrity of the firmware patch package. After the firmware patch package passes the preliminary check, a secondary check is performed on the upgrade environment, whether the firmware patch package matches the storage system, and other factors using the upgrade check program in the firmware patch package. This protects the firmware at both the software and hardware levels, ensuring the security of the firmware upgrade. By checking factors such as the upgrade environment and the degree of matching, the availability of the firmware package can be checked, thereby minimizing the occurrence of unexpected situations caused by human operations and ensuring the reliability of the firmware upgrade.

[0052] In one embodiment, Figure 4 As shown, in step S310, when the firmware patch package passes the preliminary verification, the upgrade verification program in the firmware patch package is run to verify the firmware patch package. The process includes steps S400-410.

[0053] Step S400: Run the upgrade verification program in the firmware patch package to obtain the environment verification result fed back by the upgrade verification program.

[0054] The upgrade verification program is used to feed back an environmental verification result indicating that the verification has passed when it is determined that the upgrade environment of the firmware patch package meets preset conditions.

[0055] Among them, the firmware patch package has been verified in advance in which user environments can successfully complete the upgrade, so the software and hardware conditions that the environment in which the firmware patch package can be successfully upgraded are pre-recorded. Therefore, an "upgrade switch" can be designed in the firmware patch package to characterize whether the current upgrade environment of the firmware patch package meets the pre-recorded software and hardware conditions. For example, the upgrade switch is turned off by default. Only when the current upgrade environment of the firmware patch package meets the pre-recorded software and hardware conditions under the current configuration, the upgrade switch under the current configuration will be turned on. Only the firmware patch package with the upgrade switch turned on can be used to upgrade the firmware. The conditions that need to be met for the firmware patch package upgrade can be obtained in advance through calculations. For example, for an upgrade environment that needs to meet n conditions, by performing n-ary Cartesian product operations on these conditions, all environments with different configurations supported by the firmware patch package are obtained, that is, different combinations of environments that meet the conditions can be obtained, and an upgrade switch is set for each configured environment. The upgrade verification program can determine whether the current upgrade environment belongs to one of the pre-recorded environments, thereby judging whether the environmental verification result is passed.

[0056] Step S410: When it is determined that the environmental verification result is passed, the upgrade verification program in the firmware patch package is run to obtain the version verification result fed back by the upgrade verification program.

[0057] The upgrade verification program is used to feedback a version verification result indicating that the verification has passed when the firmware version information and the system version information of the firmware patch package match the firmware version information and the system version information in the storage system.

[0058] Specifically, the upgrade verification program first parses the firmware header in the firmware patch package, and obtains the firmware version number and the whitelist of MCS version numbers supported by the firmware from the firmware header. At the same time, the upgrade verification program also obtains the MCS version number and the whitelist of firmware version numbers supported by MCS from the storage system. Then the upgrade verification program starts a two-way verification. On the one hand, it verifies whether the firmware version number of the firmware patch package is in the whitelist of firmware version numbers supported by MCS. On the other hand, it verifies whether the MCS version number is in the whitelist of MCS version numbers supported by the firmware. Only when the firmware version number of the firmware patch package is in the whitelist of firmware version numbers supported by MCS, and the MCS version number is in the whitelist of MCS version numbers supported by the firmware, is the two-way verification judged to be passed, that is, the version verification result is passed.

[0059] In this embodiment, on the one hand, the upgrade verification program verifies whether the upgrade environment of the firmware patch package has passed, and the upgrade environment can be verified before the firmware patch package is actually run. Only when the upgrade environment passes can the firmware patch package be run, thereby ensuring the availability of the firmware patch package. On the other hand, the upgrade verification program verifies whether the firmware version information and system version information of the firmware patch package match the firmware version information and system version information in the storage system, and can verify the safety and reliability of upgrading using the firmware patch package, fully perform security verification and ensure that the mutual dependence between the firmware and the MCS is correct, thereby ensuring the reliable operation of the MCS.

[0060] In one embodiment, the firmware upgrade method of the storage system also includes: when it is determined that the version verification result is passed, determining that the firmware patch package has passed the verification, and using the firmware patch package to replace the firmware package of the storage system, and using the system version information in the firmware patch package to update the expected system version information of the storage system.

[0061] Specifically, a firmware patch package is used to replace the firmware package of the storage system, so that the firmware patch package can be run to upgrade the firmware, and the expected version number corresponding to the firmware in the MCS system is updated to the version number of the firmware in the firmware patch package. This can prevent the MCS system from rolling back the firmware to the previous version when a failure occurs, even if a system emergency rollback is triggered.

[0062] In this embodiment, by using a firmware patch package to replace the firmware package of the storage system and using the system version information in the firmware patch package to update the expected system version information of the storage system, even if the storage system triggers a system emergency rollback, the firmware version can still be guaranteed to be an updated version, thereby improving the stability of the firmware upgrade.

[0063] In one embodiment, Figure 5 As shown, in step S220, if the firmware patch package passes the verification, the firmware patch package is run in the second running channel to upgrade the firmware to be upgraded.

[0064] Step S501 : searching a node satisfying an upgrade condition in a cluster of firmware to be upgraded as a target node.

[0065] The cluster of the firmware to be upgraded includes multiple nodes, and multiple nodes need to be upgraded before the upgrade of the firmware to be upgraded is completed. First, a node that meets the upgrade conditions is searched in the cluster of the firmware to be upgraded as the target node. The node that has the least impact on the cluster after leaving the cluster can be selected as the target node, and the business load of the target node needs to be lower than a certain threshold.

[0066] Step S502: when the target node is determined, stop sending tasks to the target node.

[0067] Among them, since the target node is the node that is about to be upgraded, it is necessary to stop sending tasks to the target node to avoid data loss or business interruption during the upgrade process.

[0068] Step S503: determine the tasks to be assigned to the target node.

[0069] Among them, the tasks originally planned to be sent to the target node are taken as pending tasks. Because it is necessary to stop sending tasks to the target node, the tasks originally planned to be sent to the target node lose the sending node, and this part of the tasks needs to be reallocated to the node for execution.

[0070] Step S504: search for at least one node in the cluster of firmware to be upgraded as a temporary node.

[0071] Among them, the business load margin of the temporary node is greater than the load of the task to be assigned, so that the temporary node can undertake the task to be assigned, ensuring that the task to be assigned can be executed normally, and the temporary node is a node in the cluster of the firmware to be upgraded except the target node.

[0072] Step S505: sending the to-be-allocated tasks of the target node to the temporary node.

[0073] Step S506: Use the firmware patch package to upgrade the firmware of the target node.

[0074] Among them, the upgrade can be achieved by installing the firmware patch package on the target node.

[0075] Step S507: determine the upgrade result of the target node.

[0076] After the firmware of the target node is upgraded, the upgrade result of the target node can be verified, and it can be checked whether it can run normally.

[0077] Step S508: When it is determined that the upgrade result of the target node is an upgrade failure, the upgrade process is stopped.

[0078] If the upgrade result of the target node is an upgrade failure, the upgrade process needs to be stopped, that is, the installation of the firmware patch package needs to be stopped, and an alarm may also be issued to remind the user.

[0079] Step S509, when the upgrade result of the target node is determined to be successful, search for the next node that meets the upgrade conditions as a new target node according to the preset strategy. After determining the new target node, return to step S502 until all nodes of the firmware to be upgraded are upgraded.

[0080] The preset strategy is: search for a node that meets the upgrade conditions in the cluster of the firmware to be upgraded as the new target node. In this case, only one node is upgraded each time until all nodes are upgraded. Since only one node is upgraded at a time, it is safer. Alternatively, search for multiple nodes that meet the upgrade conditions in the cluster of the firmware to be upgraded as the new target node. The multiple nodes can be all the nodes in the cluster that meet the upgrade conditions. In this case, multiple nodes are upgraded at the same time, and the upgrade speed is faster.

[0081] After step S507, step S510 is executed. In step S510, the task is sent to the target node again.

[0082] After the upgrade result of the target node is determined, it means that the target node has completed the upgrade process, so the task can be sent to the target node again, so that the target node can resume the execution of the task.

[0083] In this embodiment, the target node is first searched, and then the task is stopped from being sent to the target node to avoid data loss. Then the firmware of the target node is upgraded using the firmware patch package. When the target node is successfully upgraded, a new target node is determined and upgraded. When determining the new target node, if the upgrade security needs to be guaranteed, only one node can be selected as the new target node at a time. If the upgrade speed needs to be increased, multiple nodes can be selected as the new target nodes at a time. The firmware upgrade is completed until all nodes of the firmware to be upgraded are upgraded.

[0084] In one embodiment, Figure 6 As shown, the firmware upgrade method of the storage system further includes: steps S600-620. Among them,

[0085] Step S600: when no target node satisfying the upgrade condition is found in the cluster of firmware to be upgraded, it is determined whether there is a first node satisfying the first condition in the cluster of firmware to be upgraded.

[0086] The upgrade condition includes a first condition and a second condition, and a node that satisfies both the first condition and the second condition is determined as a target node. The first condition is that the cluster can maintain normal operation when the node leaves the cluster, and the second condition is that the business load of the node is lower than a threshold.

[0087] Step S610: When it is determined that there is a first node that meets the first condition in the cluster of the firmware to be upgraded, the upgrade process is suspended until the first node meets the upgrade condition.

[0088] Specifically, if the node meets the first condition, it means that the node can be upgraded, but the current load of the node is too high. If the node stops working, it may affect the normal operation of the business. Therefore, it is necessary to suspend the upgrade process and avoid the business peak period before upgrading the first node.

[0089] Step S620: If it is determined that there is no first node satisfying the first condition in the cluster of the firmware to be upgraded, the upgrade process is stopped.

[0090] Specifically, if the node does not meet the first condition, it means that the node cannot leave the cluster, so the node cannot be upgraded, so the upgrade process stops directly.

[0091] In this embodiment, for the situation where the target node that meets the upgrade conditions is not found in the cluster of the firmware to be upgraded, a further judgment method is proposed. If the node cannot be upgraded simply because the current load is too large, the upgrade can be performed until the load of the node is lower than the threshold. If the node cannot leave the cluster, the upgrade cannot be performed, thereby providing a solution when the target node is not found, and ensuring that the upgrade process can continue to the greatest extent.

[0092] Figure 7 A timing diagram of a firmware upgrade method for a storage system provided in an embodiment of the present application is shown. Figure 7 As shown,

[0093] The user inputs an upgrade command to the chassis management module of the storage controller.

[0094] The chassis management module verifies the firmware patch package in response to the received upgrade command and feeds back the verification result to the user.

[0095] When the chassis management module is successfully verified, it searches for the target node through the cluster management module.

[0096] The cluster management module first determines the first node, and then determines with the load management module whether the load of the first node is lower than a threshold.

[0097] The load management module may return the load of the first node.

[0098] The cluster management module determines whether the first node can be used as a target node according to the load of the first node.

[0099] After determining the target node, the cluster management module limits the load of the target node through the load management module, that is, stops sending tasks to the target node.

[0100] The cluster management module returns the target node to the chassis management module.

[0101] The chassis management module uses the firmware patch package to upgrade the firmware of the target node.

[0102] The chassis management module feeds back the upgrade result to the user, and also feeds back the upgrade result to the cluster management module.

[0103] After receiving the upgrade result, the cluster management module controls the load management module to cancel the load restriction of the target node, thereby resuming sending tasks to the target node, so that the target node can resume the execution of tasks.

[0104] Figure 7 The steps and contents included in have been described in detail in the above embodiments. The similarities can be understood by referring to the explanations in the above embodiments and will not be repeated here.

[0105] Through the description of the above implementation methods, those skilled in the art can clearly understand that the method according to the above embodiment can be implemented by means of software plus a necessary general hardware platform, and of course by hardware, but in many cases the former is a better implementation method. Based on such an understanding, the technical solution of the present application, or the part that contributes to the prior art, can be embodied in the form of a software product, which is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disk), and includes a number of instructions for a terminal device (which can be a mobile phone, computer, server, or network device, etc.) to execute the methods of each embodiment of the present application.

[0106] In this embodiment, a firmware upgrade device for a storage system is also provided, which is used to implement the above-mentioned embodiments and preferred implementation modes, and the descriptions that have been made will not be repeated. As used below, the term "module" can implement a combination of software and / or hardware of a predetermined function. Although the modules described in the following embodiments are preferably implemented in software, the implementation of hardware, or a combination of software and hardware, is also possible and conceivable.

[0107] Figure 8 8 is a structural block diagram of a firmware upgrade device for a storage system according to an embodiment of the present application, the device comprising: a firmware acquisition module 801, a verification module 802, and an upgrade module 803, wherein:

[0108] The firmware acquisition module 801 is used to acquire a firmware patch package, wherein the firmware patch package includes at least one firmware to be upgraded of the storage system.

[0109] The verification module 802 is used to verify the firmware patch package in response to a received upgrade command, wherein the upgrade command is used to instruct to upgrade the firmware to be upgraded.

[0110] The upgrade module 803 is used to run the firmware patch package in the second operation channel to upgrade the firmware to be upgraded when the firmware patch package passes the verification, wherein the at least two hardware channels include: the second operation channel, and the second operation channel is a hardware channel that does not run any business.

[0111] The above device first obtains a firmware patch package, which includes at least one firmware to be upgraded. Therefore, when a firmware in the storage system needs to be upgraded, it is only necessary to obtain the firmware patch package required for the firmware upgrade, and use the firmware patch package to upgrade the firmware alone, without updating the system version of the entire storage system, which is more convenient and flexible, and reduces costs. Then, in response to the received upgrade command, the firmware patch package is verified. If the firmware patch package passes the verification, the firmware patch package is run in the second operation channel to upgrade the firmware to be upgraded. The storage system includes at least two hardware channels, the first hardware channel is used to run the business, and the second operation channel is a hardware channel that does not run the business. In this way, the redundant capacity of multiple hardware channels of the storage system is fully utilized, one hardware channel is used to maintain the normal operation of the business, and the other hardware channel is used as an upgrade channel to run the firmware patch package, so as to achieve the effect of targeted upgrade of the firmware to be upgraded without interrupting the business, thereby improving the security and stability of the storage system and reducing costs.

[0112] In an exemplary embodiment, the verification module 802 further includes:

[0113] The preliminary verification unit is used to perform preliminary verification on the firmware patch package based on a digital signature generated by a pre-configured key.

[0114] The secondary verification unit is used to run the upgrade verification program in the firmware patch package to verify the firmware patch package when the firmware patch package passes the preliminary verification, wherein the upgrade verification program is used to verify whether the upgrade environment of the firmware patch package meets the preset conditions and whether the information contained in the firmware patch package matches the storage system.

[0115] In an exemplary embodiment, the secondary verification unit includes:

[0116] The first running subunit is used to run the upgrade verification program in the firmware patch package and obtain the environment verification result fed back by the upgrade verification program, wherein the upgrade verification program is used to feed back the environment verification result indicating that the verification has passed when it is determined that the upgrade environment of the firmware patch package meets preset conditions.

[0117] The second running sub-unit is used to run the upgrade verification program in the firmware patch package when it is determined that the environmental verification result is passed, and obtain the version verification result fed back by the upgrade verification program, wherein the upgrade verification program is used to feed back the version verification result indicating that the verification has passed when the firmware version information and the system version information of the firmware patch package match the firmware version information and the system version information in the storage system.

[0118] In an exemplary embodiment, the above-mentioned device also includes: an update module, which is used to determine that the firmware patch package has passed the verification when the version verification result is determined to be passed, and use the firmware patch package to replace the firmware package of the storage system, and use the system version information in the firmware patch package to update the expected system version information of the storage system.

[0119] In an exemplary embodiment, the upgrade module 803 includes:

[0120] The target node determination unit is used to search for a node that meets the upgrade condition in the cluster of firmware to be upgraded as the target node.

[0121] The task stopping unit is used to stop sending tasks to the target node when the target node is determined.

[0122] The task determination unit is used to determine the tasks to be assigned to the target node.

[0123] A temporary node determination unit is used to search for at least one node in the cluster of firmware to be upgraded as a temporary node, wherein the business load margin of the temporary node is greater than the load of the task to be assigned, and the temporary node is a node in the cluster of firmware to be upgraded except the target node.

[0124] The task allocation unit is used to send the to-be-allocated tasks of the target node to the temporary node.

[0125] The upgrade unit is used to upgrade the firmware of the target node by using the firmware patch package.

[0126] The result determination unit is used to determine the upgrade result of the target node.

[0127] The upgrade stopping unit is used to stop the upgrade process when it is determined that the upgrade result of the target node is an upgrade failure.

[0128] The upgrade cycle unit is used to search for the next node that meets the upgrade condition as a new target node according to a preset strategy when the upgrade result of the target node is determined to be a successful upgrade, until all nodes of the firmware to be upgraded are upgraded. The preset strategy is: searching for a node that meets the upgrade condition in the cluster of the firmware to be upgraded as a new target node, or searching for multiple nodes that meet the upgrade condition in the cluster of the firmware to be upgraded as new target nodes.

[0129] The task recovery unit is used to resend the task to the target node.

[0130] In an exemplary embodiment, the above device further includes:

[0131] A condition determination module is used to determine whether there is a first node that meets a first condition in the cluster of firmware to be upgraded when no target node that meets the upgrade condition is found in the cluster of firmware to be upgraded, wherein the upgrade condition includes a first condition and a second condition, and a node that meets both the first condition and the second condition is determined as a target node, the first condition being that the cluster can maintain normal operation when the node leaves the cluster, and the second condition being that the business load of the node is lower than a threshold.

[0132] The pausing module is used to suspend the upgrading process when it is determined that there is a first node satisfying a first condition in the cluster of the firmware to be upgraded, until the first node satisfies the upgrading condition.

[0133] The stopping module is used to stop the upgrading process when it is determined that there is no first node satisfying the first condition in the cluster of the firmware to be upgraded.

[0134] It should be noted that the above modules can be implemented by software or hardware. For the latter, it can be implemented in the following ways, but not limited to: the above modules are all located in the same processor; or the above modules are located in different processors in any combination.

[0135] An embodiment of the present application further provides a computer-readable storage medium, in which a computer program is stored, wherein the computer program is configured to execute the steps of any of the above method embodiments when running.

[0136] Optionally, in this embodiment, the computer program may be configured to perform the following steps by means of the computer program:

[0137] S1. Obtain a firmware patch package, wherein the firmware patch package includes at least one firmware to be upgraded of a storage system.

[0138] S2, in response to the received upgrade command, verify the firmware patch package, wherein the upgrade command is used to instruct to upgrade the firmware to be upgraded.

[0139] S3, when the firmware patch package passes the verification, run the firmware patch package in the second running channel to upgrade the firmware to be upgraded, wherein the at least two hardware channels include: the second running channel, and the second running channel is a hardware channel that does not run any business.

[0140] In an exemplary embodiment, the computer-readable storage medium may include, but is not limited to, various media that can store computer programs, such as a USB flash drive, a read-only memory (ROM), a random access memory (RAM), a mobile hard disk, a magnetic disk or an optical disk.

[0141] The embodiment of the present application also provides an electronic device, such as Fig. 9 As shown, the electronic device includes a memory 902 and a processor 904. The memory 902 stores a computer program, and the processor 904 is configured to execute the steps in any of the above method embodiments through the computer program.

[0142] Optionally, in this embodiment, the processor 904 may be configured to perform the following steps through a computer program:

[0143] S1. Obtain a firmware patch package, wherein the firmware patch package includes at least one firmware to be upgraded of a storage system.

[0144] S2, in response to the received upgrade command, verify the firmware patch package, wherein the upgrade command is used to instruct to upgrade the firmware to be upgraded.

[0145] S3, when the firmware patch package passes the verification, run the firmware patch package in the second running channel to upgrade the firmware to be upgraded, wherein the at least two hardware channels include: the second running channel, and the second running channel is a hardware channel that does not run any business.

[0146] For specific examples in this embodiment, reference may be made to the examples described in the above embodiments and exemplary implementation modes, and this embodiment will not be described in detail herein.

[0147] Alternatively, a person skilled in the art may understand that: Fig. 9 The structure shown is for illustration only. Fig. 9 The structure of the electronic device is not limited. For example, the electronic device may also include Fig. 9 More or fewer components (such as network interfaces, etc.) as shown in, or with Fig. 9 Different configurations are shown.

[0148] Among them, the memory 902 can be used to store software programs and modules, such as the program instructions / modules corresponding to the firmware upgrade method of the storage system and the firmware upgrade device of the storage system in the embodiment of the present application. The processor 904 executes various functional applications and data processing by running the software programs and modules stored in the memory 902, that is, realizing the firmware upgrade method of the storage system mentioned above. The memory 902 may include a high-speed random access memory, and may also include a non-volatile memory, such as one or more magnetic storage devices, flash memory, or other non-volatile solid-state memory. In some instances, the memory 902 may further include a memory remotely arranged relative to the processor 904, and these remote memories may be connected to the terminal via a network. Examples of the above-mentioned networks include, but are not limited to, the Internet, corporate intranets, local area networks, mobile communication networks, and combinations thereof. Among them, the memory 902 can be specifically, but not limited to, used to store information such as system configuration files. As an example, such as Fig. 9 As shown, the memory 902 may include, but is not limited to, the firmware acquisition module 801, the verification module 802, and the upgrade module 803 in the firmware upgrade device of the storage system. In addition, other module units in the firmware upgrade device of the storage system may also be included but are not limited to, which will not be repeated in this example.

[0149] Optionally, the transmission device 909 is used to receive or send data via a network. Specific examples of the above-mentioned network may include wired networks and wireless networks. In one example, the transmission device 909 includes a network adapter (Network Interface Controller, NIC), which can be connected to other network devices and routers via a network cable so as to communicate with the Internet or a local area network. In one example, the transmission device 909 is a radio frequency (RF) module, which is used to communicate with the Internet wirelessly.

[0150] In addition, the electronic device further includes: a display 908; and a connection bus 910, which is used to connect various module components in the electronic device.

[0151] In other embodiments, the electronic device may be a node in a distributed system, wherein the distributed system may be a blockchain system, and the blockchain system may be a distributed system formed by connecting the multiple nodes in the form of network communication. Among them, the nodes may form a peer-to-peer (P2P) network, and any form of computing device, such as a server, terminal, or other electronic device, may become a node in the blockchain system by joining the peer-to-peer network.

[0152] An embodiment of the present application further provides a computer program product, which includes a computer program. When the computer program is executed by a processor, the steps in any one of the above method embodiments are implemented.

[0153] An embodiment of the present application further provides another computer program product, including a non-volatile computer-readable storage medium, wherein the non-volatile computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the steps in any of the above method embodiments are implemented.

[0154] The embodiments of the present application also provide a computer program, which includes computer instructions, which are stored in a computer-readable storage medium; a processor of a computer device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the computer device performs the steps of any one of the above method embodiments.

[0155] Obviously, those skilled in the art should understand that the above modules or steps of the present application can be implemented by a general computing device, they can be concentrated on a single computing device, or distributed on a network composed of multiple computing devices, they can be implemented by a program code executable by a computing device, so that they can be stored in a storage device and executed by the computing device, and in some cases, the steps shown or described can be executed in a different order from that herein, or they can be made into individual integrated circuit modules, or multiple modules or steps therein can be made into a single integrated circuit module for implementation. Thus, the present application is not limited to any specific combination of hardware and software.

[0156] The above description is only the preferred embodiment of the present application and is not intended to limit the present application. For those skilled in the art, the present application may have various modifications and variations. Any modification, equivalent replacement, improvement, etc. made within the principles of the present application shall be included in the protection scope of the present application.

Claims

1. A method for upgrading firmware of a storage system, characterized in that: The storage system includes at least two hardware channels, the at least two hardware channels include: a first operation channel, and the first operation channel is used to run a service. The method includes: Obtaining a firmware patch package, wherein the firmware patch package includes at least one firmware to be upgraded of the storage system; In response to a received upgrade command, verifying the firmware patch package, wherein the upgrade command is used to instruct to upgrade the firmware to be upgraded; When the firmware patch package passes the verification, the firmware patch package is run on the second running channel to upgrade the firmware to be upgraded, wherein the at least two hardware channels include: the second running channel, and the second running channel is a hardware channel that does not run the service.

2. The method for upgrading the firmware of the storage system according to claim 1, characterized in that: The step of verifying the firmware patch package in response to the received upgrade command includes: Performing preliminary verification on the firmware patch package based on a digital signature generated by a pre-configured key; When the firmware patch package passes the preliminary verification, run the upgrade verification program in the firmware patch package to verify the firmware patch package, wherein the upgrade verification program is used to verify whether the upgrade environment of the firmware patch package meets preset conditions and to verify whether the information contained in the firmware patch package matches the storage system.

3. The method for upgrading the firmware of the storage system according to claim 2, characterized in that: When the firmware patch package passes the preliminary verification, running an upgrade verification program in the firmware patch package to verify the firmware patch package includes: Running the upgrade verification program in the firmware patch package to obtain an environment verification result fed back by the upgrade verification program, wherein the upgrade verification program is used to feed back an environment verification result indicating that the verification has passed when determining that the upgrade environment of the firmware patch package meets a preset condition; When it is determined that the environmental verification result is a passed verification, the upgrade verification program in the firmware patch package is run to obtain a version verification result fed back by the upgrade verification program, wherein the upgrade verification program is used to feed back a version verification result indicating a passed verification when the firmware version information and the system version information of the firmware patch package match the firmware version information and the system version information in the storage system.

4. The method for upgrading the firmware of the storage system according to claim 3, characterized in that: The method also includes: when it is determined that the version verification result is a passed verification, determining that the firmware patch package has passed the verification, using the firmware patch package to replace the firmware package of the storage system, and using the system version information in the firmware patch package to update the expected system version information of the storage system.

5. The method for upgrading the firmware of a storage system according to any one of claims 1 to 4, characterized in that: When the firmware patch package passes the verification, running the firmware patch package in the second running channel to upgrade the firmware to be upgraded includes: Search for a node that meets the upgrade conditions in the cluster of the firmware to be upgraded as the target node; When the target node is determined, stop sending tasks to the target node; Determining the tasks to be assigned to the target node; Searching for at least one node in the cluster of the firmware to be upgraded as a temporary node, wherein the margin of the business load of the temporary node is greater than the load of the task to be assigned, and the temporary node is a node in the cluster of the firmware to be upgraded except the target node; Sending the to-be-assigned tasks of the target node to the temporary node; Using the firmware patch package to upgrade the firmware of the target node; Determining an upgrade result of the target node; When it is determined that the upgrade result of the target node is an upgrade failure, stopping the upgrade process; When it is determined that the upgrade result of the target node is a successful upgrade, searching for the next node that meets the upgrade condition as a new target node according to a preset strategy until all nodes of the firmware to be upgraded are upgraded; The preset strategy is: searching for a node that meets the upgrade condition in the cluster of firmware to be upgraded as a new target node, or searching for multiple nodes that meet the upgrade condition in the cluster of firmware to be upgraded as new target nodes.

6. The method for upgrading the firmware of the storage system according to claim 5, characterized in that: The method further comprises: In the case that no target node satisfying the upgrade condition is found in the cluster of the firmware to be upgraded, determining whether there is a first node satisfying a first condition in the cluster of the firmware to be upgraded, wherein the upgrade condition includes a first condition and a second condition, and determining a node satisfying both the first condition and the second condition as the target node, wherein the first condition is that the cluster can maintain normal operation when the node leaves the cluster, and the second condition is that the service load of the node is lower than a threshold; When it is determined that there is a first node satisfying the first condition in the cluster of the firmware to be upgraded, pausing the upgrade process until the first node satisfies the upgrade condition; If it is determined that there is no first node satisfying the first condition in the cluster of the firmware to be upgraded, the upgrade process is stopped.

7. The method for upgrading the firmware of the storage system according to claim 5, characterized in that: After determining the upgrade result of the target node, the method further includes: Resend the task to the target node.

8. A firmware upgrade device for a storage system, characterized in that: The storage system includes at least two hardware channels, the at least two hardware channels include: a first operation channel, and the first operation channel is used to run a service, and the device includes: A firmware acquisition module, used to acquire a firmware patch package, wherein the firmware patch package includes at least one firmware to be upgraded of the storage system; A verification module, configured to verify the firmware patch package in response to a received upgrade command, wherein the upgrade command is used to instruct to upgrade the firmware to be upgraded; An upgrade module is used to run the firmware patch package in a second running channel to upgrade the firmware to be upgraded when the firmware patch package passes the verification, wherein the at least two hardware channels include: the second running channel, and the second running channel is a hardware channel that does not run the business.

9. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, wherein the computer program implements the steps of the method described in any one of claims 1 to 7 when executed by a processor.

10. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that: When the processor executes the computer program, the steps of the method described in any one of claims 1 to 7 are implemented.

Citation Information

Cited By

  • Platform firmware upgrade verification method and cluster management system based on out-of-band management

    CN119987811A

  • Firmware upgrading method and device, electronic equipment and storage medium

    CN122653657A