Firmware management method, system and equipment based on storage system and medium

By integrating firmware functions into plug-ins and forming a plug-in pool, the problem of complex upgrade of solid-state drive functions and high maintenance costs is solved, and flexibility in maintenance of storage system performance and efficient firmware upgrades are achieved.

CN119829107APending Publication Date: 2025-04-15INSPUR SUZHOU INTELLIGENT TECH CO LTD
View PDF 0 Cites 2 Cited by

Patent Information

Application Number
CN202411979879.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-12-31
Publication Date
2025-04-15

Smart Images

  • Figure CN119829107A_ABST
    Figure CN119829107A_ABST
Patent Text Reader

Abstract

The invention discloses a firmware management method, system and device based on a storage system and a medium, and relates to the technical field of storage systems. Comprising the steps of obtaining function configuration of firmware, and generating a plug-in file according to the function configuration of the firmware; importing the plug-in files into the storage system, wherein a plurality of plug-in files form a plug-in pool; and in response to a requirement that the storage system needs to be configured to execute a preset function, loading a target plug-in matched with the preset requirement from the plug-in pool, and executing a task in the preset function requirement by adopting the target plug-in. According to the method, the firmware function in the storage system is integrated into the plug-in, when the firmware is updated, only the to-be-processed firmware is updated and maintained, and the firmware does not need to be integrally updated and maintained, so that the flexibility of maintaining and configuring the overall performance of the storage system is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the technical field of storage systems, and in particular to a firmware management method, system, device and medium based on a storage system. Background Art

[0002] Storage systems, such as solid-state drives, have become one of the key components for improving overall performance through the design of their internal controllers, flash chip types, and interfaces. Their fast read and write speeds can not only improve the efficiency of the operating system, but also speed up data processing and improve system stability.

[0003] In some related technologies, when a new function needs to be added to a solid-state drive, it is necessary to first obtain a file with relevant functions that is compatible with the hard disk, then upload and install the relevant file to the hard disk, and after the upload is completed, it is also necessary to ensure that the changes are saved and the computer system is restarted to achieve the installation of the new functional module. The whole process is complicated and cumbersome. At the same time, the functional modules in the solid-state drive are usually formed in a hard-coded form, and the coupling degree between the functional modules is high. The function upgrade process is complicated and the maintenance cost is high. Summary of the invention

[0004] In order to solve at least one of the problems mentioned in the above background technology, the present application provides a firmware management method, system, device and medium based on a storage system. By integrating the firmware functions in the storage system into a plug-in, when the firmware is updated, only the firmware to be processed is updated and maintained, without updating and maintaining the firmware as a whole, thereby improving the flexibility of maintaining and configuring the overall performance of the storage system.

[0005] The specific technical solutions provided by the embodiments of this application are as follows:

[0006] In a first aspect, a firmware management method based on a storage system is provided, wherein the storage system includes one or more firmwares, and the method includes:

[0007] Acquire the functional configuration of the firmware, and generate a plug-in file according to the functional configuration of the firmware;

[0008] Importing the plug-in file into the storage system, wherein a plurality of the plug-in files form a plug-in pool;

[0009] In response to the need to configure the storage system to execute a preset functional requirement, a target plug-in matching the preset requirement is loaded from the plug-in pool, and the target plug-in is used to execute the task in the preset functional requirement.

[0010] In a specific embodiment,

[0011] The method comprises the steps of: obtaining a firmware that meets a preset condition, setting a functional configuration of the firmware that meets the preset condition to form a software code, integrating the software code to form a plug-in file, and using the plug-in file to replace the firmware to form a plug-in, wherein a plurality of the plug-ins form the plug-in pool; and configuring a plug-in manager in the storage system, and confirming through the plug-in manager that the plug-in file is compatible with the firmware replaced by the plug-in file.

[0012] In a specific embodiment, before importing the plug-in file into the storage system, the method also includes: encrypting the plug-in file through an encryption algorithm to form plug-in encryption information; after importing the plug-in file into the storage system, verifying the plug-in encryption information through the plug-in manager and decrypting the plug-in encryption information.

[0013] In a specific embodiment, after importing the plug-in file into the storage system, the method further includes: obtaining a specified location in the plug-in manager and configuring the plug-in file to be stored in the specified location; in response to the firmware startup, reading the location information of the specified location through the plug-in manager and loading the plug-in file.

[0014] In a specific embodiment, a first function identifier of the preset function requirement is obtained, a second function identifier in a plug-in file in the plug-in pool is read, and a similarity between the first function identifier and the second function identifier is calculated; a plug-in associated with the second function identifier with the highest similarity is obtained as the target plug-in matching the function requirement; a preset interface associated with the target plug-in is obtained according to a field in the plug-in file using the plug-in manager; an execution function of the target plug-in is called according to the preset interface; a sub-function associated with the preset function requirement is obtained, and the number of target plug-ins matching the preset function requirement is confirmed according to the sub-function; it is determined whether the number of target plug-ins is greater than 1, and if the number of target plug-ins is greater than 1, the running status information of all target plug-ins matching the function requirement is obtained; all the running status information is combined through the execution function, and all target plug-ins are controlled to run to obtain an execution result; or, if the number of target plug-ins is not greater than 1, the task in the preset function requirement is executed through the execution function to obtain an execution result; and the execution result is sent to the storage system.

[0015] In a specific embodiment, the method also includes: in response to the plug-in manager being started, reading the plug-in configuration file in the plug-in pool through the plug-in manager, loading and running the target plug-in according to the plug-in configuration file; configuring a run log associated with the plug-in manager, and recording the execution operations of the plug-in manager through the run log; in response to an exception in one or more of the target plug-ins, analyzing the cause of the exception of the abnormal target plug-in through the run log.

[0016] In a specific embodiment, the method further includes: setting a shared memory configured in the firmware, and the shared memory has a memory address; the first target plug-in writes preset information into the shared memory, and the second target plug-in reads the preset information in the shared memory according to the memory address.

[0017] In a second aspect, a firmware management system based on a storage system is provided, the system being used to implement the firmware management method based on the storage system as described above, wherein the storage system includes one or more firmwares, and the system includes:

[0018] A first configuration unit, configured to obtain a functional configuration of the firmware and generate a plug-in file according to the functional configuration of the firmware;

[0019] A second configuration unit is used to import the plug-in file into the storage system, and a plurality of the plug-in files form a plug-in pool;

[0020] The execution unit is used to load a target plug-in matching the preset requirement from the plug-in pool in response to the need to configure the storage system to execute the preset functional requirement, and use the target plug-in to execute the task in the preset functional requirement.

[0021] In a third aspect, a computer device is provided, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein when the processor executes the computer program, the following steps are implemented:

[0022] Step A: obtaining the functional configuration of the firmware, and generating a plug-in file according to the functional configuration of the firmware;

[0023] Step B: importing the plug-in file into the storage system, and forming a plug-in pool with a plurality of the plug-in files;

[0024] Step C: In response to the need to configure the storage system to perform preset functional requirements, a target plug-in matching the preset requirements is loaded from the plug-in pool, and the target plug-in is used to perform tasks in the preset functional requirements.

[0025] In a fourth aspect, a computer-readable storage medium is provided, on which a computer program is stored, and when the computer program is executed by a processor, the following steps are implemented:

[0026] Step A: obtaining the functional configuration of the firmware, and generating a plug-in file according to the functional configuration of the firmware;

[0027] Step B: importing the plug-in file into the storage system, and forming a plug-in pool with a plurality of the plug-in files;

[0028] Step C: In response to the need to configure the storage system to perform preset functional requirements, a target plug-in matching the preset requirements is loaded from the plug-in pool, and the target plug-in is used to perform tasks in the preset functional requirements.

[0029] The embodiments of the present application have the following beneficial effects:

[0030] 1. The solution provided in the embodiment of the present application can generate a plug-in file for the function of the firmware in the storage system through its function configuration information, and import the plug-in file into the storage system to realize the function of replacing the original firmware through the plug-in. When the corresponding task needs to be executed, after obtaining the target plug-in matching the requirement in the plug-in pool through query, the target plug-in is used to execute the task corresponding to the requirement. By integrating the firmware function in the storage system into the plug-in, when updating the firmware, only the firmware to be processed is updated and maintained, without updating and maintaining the firmware as a whole, thereby improving the flexibility of maintaining and configuring the overall performance of the storage system. BRIEF DESCRIPTION OF THE DRAWINGS

[0031] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings required for use in the description of the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without creative work.

[0032] Figure 1 A schematic diagram of the application environment according to the present application is shown;

[0033] Figure 2 A schematic diagram showing the architecture of a storage system according to the present application is shown;

[0034] Figure 3 A schematic diagram of a firmware management method based on a storage system according to the present application is shown;

[0035] Figure 4 A schematic diagram of a firmware management system based on a storage system according to the present application is shown;

[0036] Figure 5A schematic diagram of a computer device according to the present application is shown. DETAILED DESCRIPTION

[0037] In order to make the purpose, technical solutions and advantages of this application clearer, the technical solutions in the embodiments of this application will be clearly and completely described below in conjunction with the drawings in the embodiments of this application. Obviously, the described embodiments are only part of the embodiments of this application, not all of them. Based on the embodiments in this application, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.

[0038] The firmware management method based on the storage system provided in this application can be applied to Figure 1 In the application environment shown. Among them, the terminal 102 communicates with the server 104 through the network. The terminal is configured with a storage system. In this embodiment, the storage system is selected as a solid-state hard disk for illustration. The solid-state hard disk is configured with multiple firmware with different functions. By obtaining the functional configuration of the firmware, a plug-in file is generated according to the functional configuration of the firmware; the plug-in file is imported into the storage system, and several plug-in files form a plug-in pool; in response to the need to configure the storage system to perform preset functional requirements, a target plug-in matching the preset requirements is loaded from the plug-in pool, and the target plug-in is used to perform the tasks in the preset functional requirements. Among them, the terminal 102 can be, but is not limited to, various personal computers, laptops, smart phones, tablet computers and portable wearable devices, and the server 104 can be implemented with an independent server or a server cluster consisting of multiple servers.

[0039] In one embodiment, Figure 3 As shown, a firmware management method based on a storage system is provided, and the method is applied to Figure 1 The terminal in is used as an example to illustrate. Figure 2 As shown, the terminal is configured with a storage system. In this embodiment, the storage system is a solid-state hard disk. The solid-state hard disk is configured with multiple firmwares with different functions, including but not limited to bad block management firmware, address conversion firmware, garbage collection firmware, and wear leveling firmware located in the flash conversion layer of the solid-state hard disk. At the same time, in this embodiment, the solid-state hard disk is connected to the operating system for communication, and also includes a hard disk interface and a plug-in framework placed in the solid-state hard disk. The following steps are included:

[0040] Step 101: Obtain the function configuration of the firmware, and generate a plug-in file according to the function configuration of the firmware.

[0041] Specifically, the method includes: obtaining firmware that meets preset conditions, setting the functional configuration of the firmware that meets the preset conditions to form software code, integrating the software code to form a plug-in file, and using the plug-in file to replace the firmware to form a plug-in, and a plurality of the plug-ins form the plug-in pool; a plug-in manager is configured in the storage system, and the plug-in manager is used to confirm that the plug-in file is compatible with the firmware replaced by the plug-in file.

[0042] Among them, several firmwares with different functions are configured in the solid-state drive, and in order to achieve flexible management of the firmware, some of the firmware that meets the preset conditions are generated as plug-in files; the specific preset conditions for selecting the firmware to be configured include: the firmware to be configured includes: firmware that needs to be configured with specific conditions to be triggered, the logic in its function, firmware with a high frequency of algorithm update or firmware that is prone to failure, and also includes some firmware with interface functions, such as sensors or flash memory chips.

[0043] The plug-in includes a plug-in configuration file and a plug-in interface. The plug-in configuration file includes the version information, name, dependent library, etc. of the plug-in. The plug-in interface includes basic functions such as creation, start, run, stop, and destruction, and it is necessary to ensure that all plug-ins follow a unified interface specification. A plug-in is composed of a configuration file and a library file that implements the plug-in interface. The plug-in framework in this embodiment is configured as a combined framework of a plug-in and a plug-in manager. The plug-in manager is configured to design some key functional modules such as the front-end, algorithm, and back-end of the firmware in the solid-state drive as plug-in forms. Each plug-in file contains independent code and data structures, and interacts with the firmware core through a predefined interface. That is, when the firmware is running in the storage system, the corresponding plug-in will be automatically loaded according to the configuration.

[0044] The plugin manager is configured with a plugin list, which records the information of the plugins that have been loaded and run, including the plugin name, plugin version, and plugin status. The plugin manager can obtain the specific status of the plugin based on the content in the plugin list to achieve precise management of the plugin.

[0045] Step 102: Encrypt the plug-in file using an encryption algorithm to form plug-in encryption information.

[0046] In order to ensure the reliability and integrity of the plug-in during the generation process, the plug-in file is encrypted by an encryption algorithm. After the plug-in file is encrypted by the encryption algorithm and the plug-in encryption information is formed, the plug-in file is imported into the storage system, and the plug-in encryption information is verified and decrypted by the plug-in manager to prevent the plug-in file information from being leaked or tampered with during the transmission process.

[0047] Exemplarily, the generated plug-in file is sent via the NVMe protocol and imported into the solid-state drive, and the plug-in manager completes the loading and replacement process of the plug-in.

[0048] Step 103: Import the plug-in file into the storage system, and a plurality of plug-in files form a plug-in pool.

[0049] Furthermore, since other functional modules are configured in the storage system, in order to facilitate efficient management of the subsequently formed plug-ins, after the plug-in file is imported into the storage system, the designated location in the plug-in manager is obtained, and the plug-in file is configured to be stored in the designated location; in response to the firmware startup, the location information of the designated location is read through the plug-in manager, and the plug-in file is loaded. By deploying the plug-in file in the designated location in the plug-in manager, where the designated location refers to the location in the solid-state drive for storing plug-in files, and the space in the designated location is used to persist the plug-in, after the firmware is started, the plug-in manager automatically reads the designated location and loads all available plug-ins.

[0050] In a specific embodiment, a plug-in pool is formed by importing several plug-in files into a storage system, wherein the plug-in pool includes plug-ins corresponding to several plug-in files, and each plug-in is used to implement different functions; when it is necessary to upgrade the relevant functional modules in the firmware, the updated plug-in file is obtained, and the updated plug-in file is sent to the solid-state drive through the NVMe protocol, and the updated plug-in file is replaced with the previous plug-in file through the plug-in manager, thereby implementing the update and upgrade of the relevant functions of the plug-ins in the plug-in pool. The above scheme improves the efficiency and security of firmware upgrades, and reduces the impact of upgrade operations on users.

[0051] Step 104: In response to the need to configure the storage system to perform a preset functional requirement, a target plug-in matching the preset requirement is loaded from a plug-in pool, and the target plug-in is used to perform tasks in the preset functional requirement.

[0052] In a specific embodiment, loading a target plug-in matching a preset requirement from a plug-in pool specifically includes: obtaining a first function identifier of the preset function requirement, reading a second function identifier in a plug-in file in the plug-in pool, and calculating a similarity between the first function identifier and the second function identifier; and obtaining a plug-in associated with the second function identifier having the highest similarity as the target plug-in matching the function requirement.

[0053] In this embodiment, the first function identifier configured in the preset function requirement is a keyword field, and the preset function type is reflected through the key field. The second function identifier of the super plug-in in the plug-in pool is a keyword field, and the function corresponding to each plug-in in the plug-in pool is reflected through the keyword field. The similarity parameter of the two is calculated to obtain the second function identifier in the plug-in pool that has a high similarity with the first function identifier in the preset function requirement. The function of the plug-in associated with the second function identifier is the function that the target plug-in must have, thereby obtaining the target plug-in.

[0054] After loading the target plug-in that matches the functional requirements from the plug-in pool, use the plug-in manager to obtain the preset interface associated with the target plug-in according to the field in the plug-in file; call the execution function of the target plug-in according to the preset interface; obtain the sub-function associated with the preset functional requirements, and confirm the number of target plug-ins that match the preset functional requirements according to the sub-functions; determine whether the number of target plug-ins is greater than 1. If the number of target plug-ins is greater than 1, obtain the running status information of all target plug-ins that match the functional requirements; combine all the running status information through the execution function, and control the operation of all target plug-ins to obtain the execution result; or, if the number of target plug-ins is not greater than 1, execute the task in the preset functional requirements through the execution function to obtain the execution result; send the execution result to the storage system.

[0055] It should be noted that in this embodiment, the target plug-in replaces the firmware with a single function, such as a temperature control algorithm, which combines parameters and then outputs results. When the firmware program runs to the point where the temperature control logic needs to be executed, the temperature control algorithm interface in the target plug-in is called to implement it. When this function only requires one target plug-in to implement, the RUN function in the target plug-in is directly obtained, and the tasks in the preset functional requirements are implemented through the RUN function to obtain the execution result; when the preset functional requirements need to be implemented by the integration of multiple functions or multiple businesses, it is necessary to obtain the above-mentioned related sub-functions and interfaces, and integrate them into one or more plug-ins, and then combine them all through the RUN function to implement and run them to obtain the execution result.

[0056] Furthermore, the plug-in manager provides a log to record the running status information of the plug-in, including responding to the startup of the plug-in manager, reading the plug-in configuration file in the plug-in pool through the plug-in manager, loading and running the target plug-in according to the plug-in configuration file; configuring the running log associated with the plug-in manager, and recording the execution operation of the plug-in manager through the running log; responding to an abnormality in one or more target plug-ins, analyzing the abnormal cause of the abnormal target plug-in through the running log. When maintaining the plug-ins in the plug-in pool in the storage system, the plug-in log can be viewed through the nvme command to track problems and perform performance analysis. For plug-ins with serious problems, the nvme command can be used to manually uninstall and replace them with other versions of the plug-in.

[0057] For example, when the firmware starts to power on, the plug-in manager starts, first reads the configuration files of each plug-in, then loads the corresponding target plug-in according to the plug-in configuration file, and controls the target plug-in to start running. During the entire running process, the running information of the plug-in manager will be saved in the running log, that is, saved in the running text file. When the plug-in stops running or an error occurs, the cause of the abnormality can be confirmed by analyzing the running log.

[0058] In a specific embodiment, each plug-in in the plug-in pool needs to exchange information through the shared memory provided by the firmware, so as to facilitate information sharing between the plug-ins. Specifically, the shared memory is configured in the firmware, and the shared memory has a memory address; the first target plug-in writes the preset information into the shared memory, and the second target plug-in reads the preset information in the shared memory according to the memory address.

[0059] It should be noted that shared memory is a general mechanism and a section of memory. For example, the shared memory address is set to 0xa, plug-in A writes information "abcd" in the shared memory, plug-in B can read the information "abcd" from the shared memory, and other plug-ins in the plug-in pool can access the address and obtain the information in the shared memory.

[0060] In this embodiment, before loading the target plug-in that matches the preset requirements in the plug-in pool, a compatibility check is also included for the target plug-in. The plug-in manager in the firmware will perform a compatibility check on the plug-in version to ensure that the target plug-in to be loaded is compatible with the current firmware version and other loaded plug-ins; if the target plug-in is not compatible, the plug-in manager will control the target plug-in to roll back to the last stable pile to ensure the integrity of the data and the reliability of the storage system.

[0061] Through the solution of this embodiment, by integrating the firmware functions in the storage system into the plug-in, when updating the firmware, only the firmware to be processed is updated and maintained, without updating and maintaining the firmware as a whole, thereby improving the flexibility of maintaining and configuring the overall performance of the storage system. 3. The introduction of security mechanisms such as plug-in encryption and digital signature verification improves the security and reliability of firmware upgrades, reduces the frequency and demand for complete firmware upgrades, and reduces security risks.

[0062] Embodiment 2

[0063] Corresponding to the above embodiment, the present application provides a firmware management system based on a storage system, the system is used to implement the above firmware management method based on a storage system, wherein the storage system includes one or more firmware, such as Figure 4 As shown, the system includes:

[0064] A first configuration unit, used to obtain a function configuration of the firmware and generate a plug-in file according to the function configuration of the firmware;

[0065] The second configuration unit is used to import the plug-in file into the storage system, and the plurality of plug-in files form a plug-in pool;

[0066] The execution unit is used to load a target plug-in matching the preset requirement from a plug-in pool in response to the need to configure the storage system to execute the preset functional requirement, and use the target plug-in to execute the task in the preset functional requirement.

[0067] In a specific embodiment, the first configuration unit is also used to obtain firmware that meets preset conditions, set the functional configuration of the firmware that meets the preset conditions to form software code, integrate the software code to form a plug-in file, and use the plug-in file to replace the firmware to form a plug-in, and several plug-ins form a plug-in pool; a plug-in manager is configured in the storage system, and the plug-in manager confirms that the plug-in file is compatible with the firmware replaced by the plug-in file.

[0068] In a specific embodiment, the second configuration unit is also used to encrypt the plug-in file by an encryption algorithm to form plug-in encryption information before importing the plug-in file into the storage system; after importing the plug-in file into the storage system, verify the plug-in encryption information by the plug-in manager and decrypt the plug-in encryption information.

[0069] In a specific embodiment, the second configuration unit is also used to obtain a specified location in the plug-in manager after importing the plug-in file into the storage system, and configure the plug-in file to be stored in the specified location; in response to firmware startup, read the location information of the specified location through the plug-in manager and load the plug-in file.

[0070] In a specific embodiment, the execution unit is also used to obtain a first function identifier of a preset function requirement, read a second function identifier in a plug-in file in a plug-in pool, and calculate the similarity between the first function identifier and the second function identifier; obtain a plug-in associated with the second function identifier with the highest similarity as a target plug-in that matches the function requirement; use a plug-in manager to obtain a preset interface associated with the target plug-in according to a field in the plug-in file; call an execution function of the target plug-in according to the preset interface; obtain a sub-function associated with the preset function requirement, and confirm the number of target plug-ins that match the preset function requirement according to the sub-function; determine whether the number of target plug-ins is greater than 1, and if the number of target plug-ins is greater than 1, obtain the running status information of all target plug-ins that match the function requirement; combine all the running status information through the execution function, and control the operation of all target plug-ins to obtain an execution result; or, if the number of target plug-ins is not greater than 1, execute the task in the preset function requirement through the execution function to obtain an execution result; and send the execution result to the storage system.

[0071] In a specific embodiment, it also includes a recording unit, which is used to respond to the startup of the plug-in manager, read the plug-in configuration file in the plug-in pool through the plug-in manager, load and run the target plug-in according to the plug-in configuration file; configure a running log associated with the plug-in manager, and record the execution operation of the plug-in manager through the running log; in response to an abnormality in one or more target plug-ins, analyze the abnormal cause of the abnormal target plug-in through the running log.

[0072] In a specific embodiment, the execution unit is further used to configure a shared memory in the firmware, and the shared memory has a memory address; the first target plug-in writes the preset information into the shared memory, and the second target plug-in reads the preset information in the shared memory according to the memory address.

[0073] Embodiment 3

[0074] A computer device is provided, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements the following steps when executing the computer program:

[0075] Step 201: Obtain the function configuration of the firmware, and generate a plug-in file according to the function configuration of the firmware;

[0076] Step 202: Import the plug-in file into the storage system, and a plurality of plug-in files form a plug-in pool;

[0077] Step 203: In response to the need to configure the storage system to perform a preset functional requirement, a target plug-in matching the preset requirement is loaded from a plug-in pool, and the target plug-in is used to perform tasks in the preset functional requirement.

[0078] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:

[0079] The firmware that meets the preset conditions is obtained, the functional configuration of the firmware that meets the preset conditions is set to form a software code, the software code is integrated to form a plug-in file, and the plug-in file is used to replace the firmware to form a plug-in, and several plug-ins form a plug-in pool; a plug-in manager is configured in the storage system, and the plug-in manager is used to confirm that the plug-in file is compatible with the firmware replaced by the plug-in file.

[0080] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:

[0081] The plug-in file is encrypted by an encryption algorithm to form plug-in encryption information; after the plug-in file is imported into the storage system, the plug-in encryption information is verified by the plug-in manager and the plug-in encryption information is decrypted.

[0082] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:

[0083] Obtain a specified location in the plug-in manager, and configure the plug-in file to be stored in the specified location; in response to firmware startup, read the location information of the specified location through the plug-in manager, and load the plug-in file.

[0084] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:

[0085] Obtain a first function identifier of a preset function requirement, read a second function identifier in a plug-in file in a plug-in pool, and calculate the similarity between the first function identifier and the second function identifier; obtain a plug-in associated with the second function identifier with the highest similarity as a target plug-in that matches the function requirement; use a plug-in manager to obtain a preset interface associated with the target plug-in according to a field in the plug-in file; call an execution function of the target plug-in according to the preset interface; obtain a sub-function associated with the preset function requirement, and confirm the number of target plug-ins that match the preset function requirement according to the sub-function; determine whether the number of target plug-ins is greater than 1, and if so, obtain the running status information of all target plug-ins that match the function requirement; combine all the running status information through an execution function, and control the operation of all target plug-ins to obtain an execution result; or, if the number of target plug-ins is not greater than 1, execute the task in the preset function requirement through an execution function to obtain an execution result; and send the execution result to a storage system.

[0086] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:

[0087] In response to the plug-in manager being started, the plug-in configuration file in the plug-in pool is read by the plug-in manager, and the target plug-in is loaded and run according to the plug-in configuration file; a running log associated with the plug-in manager is configured, and the execution operation of the plug-in manager is recorded through the running log; in response to an abnormality in one or more target plug-ins, the abnormal cause of the abnormal target plug-in is analyzed through the running log.

[0088] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:

[0089] A shared memory is configured in the setting firmware, and the shared memory has a memory address; the first target plug-in writes the preset information into the shared memory, and the second target plug-in reads the preset information in the shared memory according to the memory address.

[0090] In one embodiment, a computer device is provided. The computer device may be a server, and its internal structure diagram may be as follows: Figure 5As shown. The computer device includes a processor, a memory, a network interface and a database connected through a system bus. Among them, the processor of the computer device is used to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system, a computer program and a database. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The database of the computer device is used to store plug-in pool data. The network interface of the computer device is used to communicate with an external terminal through a network connection. When the computer program is executed by the processor, a firmware management method based on a storage system is implemented.

[0091] Those skilled in the art will understand that Figure 5 The structure shown in the figure is only a block diagram of a part of the structure related to the solution of the present application, and does not constitute a limitation on the computer device to which the solution of the present application is applied. The specific computer device may include more or fewer components than those shown in the figure, or combine certain components, or have a different arrangement of components.

[0092] Embodiment 4

[0093] In one embodiment, a computer-readable storage medium is provided, on which a computer program is stored, and when the computer program is executed by a processor, the following steps are implemented:

[0094] Step 301: Obtain the function configuration of the firmware, and generate a plug-in file according to the function configuration of the firmware;

[0095] Step 302: Import the plug-in file into the storage system, and a plurality of plug-in files form a plug-in pool;

[0096] Step 303: In response to the need to configure the storage system to perform a preset functional requirement, a target plug-in matching the preset requirement is loaded from a plug-in pool, and the target plug-in is used to perform tasks in the preset functional requirement.

[0097] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0098] The firmware that meets the preset conditions is obtained, the functional configuration of the firmware that meets the preset conditions is set to form a software code, the software code is integrated to form a plug-in file, and the plug-in file is used to replace the firmware to form a plug-in, and several plug-ins form a plug-in pool; a plug-in manager is configured in the storage system, and the plug-in manager is used to confirm that the plug-in file is compatible with the firmware replaced by the plug-in file.

[0099] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0100] The plug-in file is encrypted by an encryption algorithm to form plug-in encryption information; after the plug-in file is imported into the storage system, the plug-in encryption information is verified by the plug-in manager and the plug-in encryption information is decrypted.

[0101] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0102] Obtain a specified location in the plug-in manager, and configure the plug-in file to be stored in the specified location; in response to firmware startup, read the location information of the specified location through the plug-in manager, and load the plug-in file.

[0103] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0104] Obtain a first function identifier of a preset function requirement, read a second function identifier in a plug-in file in a plug-in pool, and calculate the similarity between the first function identifier and the second function identifier; obtain a plug-in associated with the second function identifier with the highest similarity as a target plug-in that matches the function requirement; use a plug-in manager to obtain a preset interface associated with the target plug-in according to a field in the plug-in file; call an execution function of the target plug-in according to the preset interface; obtain a sub-function associated with the preset function requirement, and confirm the number of target plug-ins that match the preset function requirement according to the sub-function; determine whether the number of target plug-ins is greater than 1, and if so, obtain the running status information of all target plug-ins that match the function requirement; combine all the running status information through an execution function, and control the operation of all target plug-ins to obtain an execution result; or, if the number of target plug-ins is not greater than 1, execute the task in the preset function requirement through an execution function to obtain an execution result; and send the execution result to a storage system.

[0105] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0106] In response to the plug-in manager being started, the plug-in configuration file in the plug-in pool is read by the plug-in manager, and the target plug-in is loaded and run according to the plug-in configuration file; a running log associated with the plug-in manager is configured, and the execution operation of the plug-in manager is recorded through the running log; in response to an abnormality in one or more target plug-ins, the abnormal cause of the abnormal target plug-in is analyzed through the running log.

[0107] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0108] A shared memory is configured in the setting firmware, and the shared memory has a memory address; the first target plug-in writes the preset information into the shared memory, and the second target plug-in reads the preset information in the shared memory according to the memory address.

[0109] Those skilled in the art can understand that all or part of the processes in the above-mentioned embodiment methods can be completed by instructing the relevant hardware through a computer program, and the computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above-mentioned methods. Among them, any reference to memory, storage, database or other media used in the embodiments provided in this application can include non-volatile and / or volatile memory. Non-volatile memory can include read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM) or flash memory. Volatile memory can include random access memory (RAM) or external cache memory. As an illustration and not limitation, RAM is available in many forms, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), synchronous link (Synchlink) DRAM (SLDRAM), memory bus (Rambus) direct RAM (RDRAM), direct memory bus dynamic RAM (DRDRAM), and memory bus dynamic RAM (RDRAM).

[0110] Although the preferred embodiments of the present application have been described, those skilled in the art may make additional changes and modifications to these embodiments once they have learned the basic creative concept. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments and all changes and modifications falling within the scope of the embodiments of the present application.

[0111] Obviously, those skilled in the art can make various changes and modifications to the present application without departing from the spirit and scope of the present application. Thus, if these modifications and variations of the present application fall within the scope of the claims of the present application and their equivalents, the present application is also intended to include these modifications and variations.

Claims

1. A firmware management method based on a storage system, characterized in that: The storage system includes one or more firmwares, and the method includes: Acquire the functional configuration of the firmware, and generate a plug-in file according to the functional configuration of the firmware; Importing the plug-in file into the storage system, wherein a plurality of the plug-in files form a plug-in pool; In response to the need to configure the storage system to execute a preset functional requirement, a target plug-in matching the preset requirement is loaded from the plug-in pool, and the target plug-in is used to execute the task in the preset functional requirement.

2. The storage system-based firmware management method according to claim 1, characterized in that: The method further comprises: Acquire firmware that meets preset conditions, and set the functional configuration of the firmware that meets the preset conditions to form software code; Integrate the software code to form a plug-in file, and use the plug-in file to replace the firmware to form a plug-in, and a plurality of the plug-ins form the plug-in pool; The storage system is configured with a plug-in manager, and the plug-in manager is used to confirm that the plug-in file is compatible with the firmware replaced by the plug-in file.

3. The storage system-based firmware management method according to claim 2, characterized in that: Before importing the plug-in file into the storage system, the method further includes: Encrypting the plug-in file by using an encryption algorithm to form plug-in encryption information; After the plug-in file is imported into the storage system, the plug-in encryption information is verified and decrypted by the plug-in manager.

4. The storage system-based firmware management method according to claim 2, characterized in that: After importing the plug-in file into the storage system, the method further includes: Obtain a specified location in the plug-in manager, and configure the plug-in file to be stored in the specified location; In response to the firmware starting, the location information of the designated location is read through the plug-in manager, and the plug-in file is loaded.

5. The storage system-based firmware management method according to claim 4, characterized in that The method further comprises: Obtaining a first function identifier of the preset function requirement, reading a second function identifier in a plug-in file in the plug-in pool, and calculating a similarity between the first function identifier and the second function identifier; Acquire a plug-in associated with the second function identifier with the highest similarity as the target plug-in matching the function requirement; and use the plug-in manager to acquire a preset interface associated with the target plug-in according to a field in the plug-in file; Calling the execution function of the target plug-in according to the preset interface; Obtaining sub-functions associated with the preset functional requirements, and determining the number of target plug-ins matching the preset functional requirements according to the sub-functions; Determine whether the number of the target plug-ins is greater than 1, and if the number of the target plug-ins is greater than 1, obtain the running status information of all target plug-ins matching the functional requirement; Combining all the running status information through the execution function and controlling the running of all target plug-ins to obtain the execution result; Alternatively, if the number of the target plug-ins is not greater than 1, the tasks in the preset functional requirements are executed through the execution function to obtain an execution result; The execution result is sent to the storage system.

6. The storage system-based firmware management method according to claim 2, characterized in that: The method further comprises: In response to the plug-in manager being started, reading a plug-in configuration file in the plug-in pool through the plug-in manager, and loading and running the target plug-in according to the plug-in configuration file; Configuring an operation log associated with the plug-in manager, and recording execution operations of the plug-in manager through the operation log; In response to an exception occurring in one or more of the target plug-ins, the cause of the exception of the abnormal target plug-in is analyzed through the operation log.

7. The storage system-based firmware management method according to claim 1 or 2, characterized in that: The method further comprises: A shared memory is configured in the firmware, and the shared memory has a memory address; The first target plug-in writes the preset information into the shared memory, and the second target plug-in reads the preset information in the shared memory according to the memory address.

8. A firmware management system based on a storage system, characterized in that: The system is used to implement the firmware management method based on the storage system according to any one of claims 1 to 7, the storage system includes one or more firmwares, and the system includes: A first configuration unit, configured to obtain a functional configuration of the firmware and generate a plug-in file according to the functional configuration of the firmware; A second configuration unit is used to import the plug-in file into the storage system, and a plurality of the plug-in files form a plug-in pool; The execution unit is used to load a target plug-in matching the preset requirement from the plug-in pool in response to the need to configure the storage system to execute the preset functional requirement, and use the target plug-in to execute the task in the preset functional requirement.

9. A computer 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 according to any one of claims 1 to 7 are implemented.

10. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 7 are implemented.

Citation Information

Cited By

  • Firmware management method and device, equipment, storage medium and program product

    CN120780296A

  • A firmware management method, device, equipment, storage medium and program product

    CN120780296B