Version upgrade method, server and controller

By acquiring and utilizing upgrade packages and device information in a single transaction through the controller, the system can upgrade multiple types of components in the server, solving the problem of the cumbersome CPLD upgrade process in existing technologies and improving the speed of component upgrades.

CN116009914BActive Publication Date: 2026-03-27XFUSION DIGITAL TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-12-27
Publication Date
2026-03-27

AI Technical Summary

Technical Problem

In existing technologies, the version upgrade process of CPLD in servers is complicated, resulting in a slow upgrade speed.

Method used

The controller can acquire upgrade packages containing multiple types of components at once, obtain component information, and upgrade the versions of multiple types of components based on the upgrade packages and component information.

Benefits of technology

It simplifies the component version upgrade process and improves the upgrade speed of components.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116009914B_ABST
    Figure CN116009914B_ABST
Patent Text Reader

Abstract

The application provides a version upgrade method, a server and a controller. The method is applied to a controller in a server, and a plurality of components are arranged in the server. The method comprises the following steps: obtaining upgrade packages corresponding to the plurality of components. The upgrade packages comprise upgrade files of at least two target components in the plurality of components. The device types of the at least two target components are different. Device information corresponding to the plurality of components is obtained. The device information comprises the device type and the device identifier of each component. The at least two target components are upgraded according to the upgrade packages and the device information. Through the above method, the upgrade files required by the plurality of components in the server can be obtained at one time. The acquisition process of the component upgrade files is relatively simple, and the upgrade speed of the components in the server is relatively high.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of computer, and particularly relates to a version upgrade method, a server and a controller. BACKGROUND

[0002] A complex programmable logic device (CPLD) can realize the management function of a board card in a server. For example, the voltage of each component can be collected through the CPLD, or the component reset can be realized through the CPLD. The function of the CPLD in the server can be continuously upgraded, and therefore, the CPLD has a version upgrade requirement.

[0003] In the related art, a baseboard management controller (BMC) can be used to control the version upgrade of a plurality of CPLDs produced by different manufacturers in a server. However, the upgrade process is complicated, and the upgrade speed is low. SUMMARY

[0004] The present application provides a version upgrade method, a server and a controller. Through the method, the upgrade files required by a plurality of types of components in the server can be acquired at one time, so that the acquisition process of the component upgrade files is relatively simple, and the upgrade speed of the components in the server is relatively high.

[0005] In a first aspect, the present application provides a version upgrade method applied to a controller in a server, wherein the server further comprises a plurality of components, and the method comprises the following steps.

[0006] Acquiring an upgrade package corresponding to the plurality of components, wherein the upgrade package comprises upgrade files of at least two target components in the plurality of components, and the at least two target components are of different types;

[0007] Acquiring component information corresponding to the plurality of components, wherein the component information comprises the type and the identifier of each component;

[0008] Upgrading the at least two target components according to the upgrade package and the component information.

[0009] Through the above technical solution, the controller can acquire an upgrade package comprising upgrade files of a plurality of types of components at one time, so as to upgrade the plurality of types of components in the server according to the upgrade files in the upgrade package, and the upgrade process of the components is relatively simple, and the upgrade speed is relatively high.

[0010] In a possible implementation manner, the step of upgrading the at least two target components according to the upgrade package and the component information comprises the following steps.

[0011] decompressing the upgrade package to obtain at least two software packages, the software packages including upgrade files of at least one component, the at least one component being of the same component type, and the different software packages corresponding to different component types;

[0012] upgrading the at least two target components according to the at least two software packages and the component information.

[0013] By the technical solution, at least two types of upgrade files in the upgrade package can be obtained, so as to upgrade the corresponding target components according to the upgrade files.

[0014] In a possible implementation manner, the upgrading the at least two target components according to the at least two software packages and the component information comprises:

[0015] performing parsing processing on each software package respectively to obtain package header information of each software package and at least one upgrade file in each software package, the package header information including a component type corresponding to the software package and component identifiers corresponding to the upgrade files in the software package;

[0016] upgrading the at least two target components according to the package header information of each software package, the at least one upgrade file in each software package, and the component information.

[0017] By the technical solution, the component type of the component corresponding to each software package and the component identifiers of the components corresponding to the upgrade files in the upgrade package can be obtained, so as to determine the component corresponding to each upgrade file according to the component type and the component identifiers.

[0018] In a possible implementation manner, the upgrading the at least two target components according to the package header information of each software package, the at least one upgrade file in each software package, and the component information comprises:

[0019] determining the target component corresponding to each upgrade file according to the package header information of each software package and the component information;

[0020] upgrading the corresponding target component according to the upgrade file for any one upgrade file.

[0021] By the technical solution, the target component that needs to be upgraded can be determined according to the package header information of each software package and the component information of each component in the server, and the corresponding target component can be upgraded according to the upgrade file, so as to achieve the purpose of upgrading the component that needs to be upgraded in the server.

[0022] In a possible implementation, the target component corresponding to each upgrade file is determined according to the package header information of the software package and the device information, for any one software package, including:

[0023] The candidate component is determined from the plurality of components according to the first component type in the package header information of the software package and the device information, and the device type of the candidate component is the first component type.

[0024] The target component corresponding to the software package is determined from the candidate components according to the device identifiers corresponding to the upgrade files in the software package.

[0025] Through the above technical solution, for any one software package, the target component corresponding to the software package can be determined according to the first component type included in the software package and the device identifiers of the components corresponding to the upgrade files included in the software package, thereby achieving the purpose of determining the target component.

[0026] In a possible implementation, the target component corresponding to each upgrade file is determined according to the package header information of the software package and the device information, for any one software package, including:

[0027] The upgrade program included in the upgrade file is read.

[0028] The program location of the original program in the target component is determined.

[0029] The upgrade program is stored in the program location of the target component to overwrite the original program.

[0030] Through the above technical solution, the upgrade program in the upgrade file can be used to overwrite the original program of the target component, thereby achieving the purpose of version upgrade of the target component.

[0031] In a possible implementation, the upgrade package corresponding to the plurality of components is obtained, including:

[0032] The upgrade request is sent to the software upgrade device.

[0033] The upgrade package sent by the software upgrade device is received.

[0034] Through the above technical solution, the controller can obtain the upgrade package from the software upgrade device, and the upgrade package can include upgrade files corresponding to components of multiple types, thereby achieving the purpose of obtaining multiple types of upgrade files at one time.

[0035] In a second aspect, the application provides a server, including a controller and a plurality of components, the controller is connected with the plurality of components respectively, wherein,

[0036] The controller is configured to obtain an upgrade package corresponding to the plurality of components, the upgrade package comprising upgrade files of at least two target components in the plurality of components, the at least two target components being of different types.

[0037] The controller is further configured to obtain device information corresponding to the plurality of components, the device information comprising a device type and a device identifier of each component.

[0038] The controller is further configured to upgrade the at least two target components according to the upgrade package and the device information.

[0039] According to the above technical solution, the controller can obtain an upgrade package comprising upgrade files of components of multiple types at one time, so as to upgrade components of multiple types in the server according to the upgrade files in the upgrade package, and the upgrade process of the components is relatively simple and the upgrade speed is relatively high.

[0040] In a possible implementation, the controller is a BMC.

[0041] In the above technical solution, the BMC can be used to upgrade components, and the purpose of upgrading the components is achieved.

[0042] In a third aspect, the present application provides a controller, comprising an obtaining module and an upgrading module, wherein,

[0043] The obtaining module is configured to obtain an upgrade package corresponding to the plurality of components, the upgrade package comprising upgrade files of at least two target components in the plurality of components, the at least two target components being of different types.

[0044] The obtaining module is further configured to obtain device information corresponding to the plurality of components, the device information comprising a device type and a device identifier of each component.

[0045] The upgrading module is configured to upgrade the at least two target components according to the upgrade package and the device information.

[0046] According to the above technical solution, the obtaining module can obtain an upgrade package comprising upgrade files of components of multiple types at one time, so as to upgrade components of multiple types in the server according to the upgrade files in the upgrade package by the upgrading module, and the upgrade process of the components is relatively simple and the upgrade speed is relatively high.

[0047] In a fourth aspect, the present application provides a computer-readable storage medium, the computer-readable storage medium storing a computer program, the computer program being executed by a computer to implement the method according to any one of the first aspect.

[0048] Through the technical solution, the upgrade package containing the upgrade files of the multiple types of components can be obtained at one time, so that the multiple types of components in the server are upgraded according to the upgrade files in the upgrade package, and the upgrade process of the components is relatively simple and the upgrade speed is relatively high.

[0049] In a fifth aspect, the present application provides a computer program product comprising a computer program which, when executed by a computer, implements the method according to any one of the first aspect.

[0050] Through the technical solution, the upgrade package containing the upgrade files of the multiple types of components can be obtained at one time, so that the multiple types of components in the server are upgraded according to the upgrade files in the upgrade package, and the upgrade process of the components is relatively simple and the upgrade speed is relatively high. BRIEF DESCRIPTION OF DRAWINGS

[0051] In order to more clearly illustrate the technical solutions in the embodiments of the present application or the prior art, the drawings needed to be used in the embodiments or prior art description will be briefly introduced. Obviously, the drawings in the following description are only some embodiments of the present application, and other drawings can be obtained by those skilled in the art without creative labor.

[0052] Figure 1 A system architecture schematic diagram of a version upgrade method provided by the embodiments of the present application;

[0053] Figure 2 A schematic diagram of a version upgrade method in related art provided by the embodiments of the present application;

[0054] Figure 3 A schematic diagram of a version upgrade method provided by the embodiments of the present application;

[0055] Figure 4 A flowchart of a version upgrade method provided by the embodiments of the present application;

[0056] Figure 5 A flowchart of another version upgrade method provided by the embodiments of the present application;

[0057] Figure 6 A schematic diagram of an upgrade package provided by the embodiments of the present application;

[0058] Figure 7 A software package header schematic diagram provided by the embodiments of the present application;

[0059] Figure 8 A structure schematic diagram of a server provided by the embodiments of the present application;

[0060] Figure 9 A structural schematic diagram of a controller according to an embodiment of the present application is provided. DETAILED DESCRIPTION

[0061] The exemplary embodiments will be described in detail herein with reference to the attached drawings. In the following description, unless otherwise indicated, like numbers in the attached drawings refer to the same or similar elements. The following detailed description includes specific details for the purpose of providing a thorough understanding of the exemplary embodiments. However, it will be apparent to those skilled in the art that the exemplary embodiments can be practiced without these specific details. In some instances, well-known structures and components are not described in detail in order to avoid obscuring the understanding of the exemplary embodiments.

[0062] It should be noted that, in this document, the terms "comprises", "comprising", or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but can include other elements not expressly listed or inherent to such process, method, article, or apparatus. An element proceeded by "comprises... a" does not, without more constraints, exclude the existence of additional identical elements in the process, method, article, or apparatus that comprises the element.

[0063] For the purpose of facilitating understanding, the following will be described in combination with Figure 1 A system architecture of a version upgrade method according to an embodiment of the present application is described.

[0064] Figure 1 A system architecture of a version upgrade method according to an embodiment of the present application is provided. Please refer to Figure 1 The server 100 comprises a controller 101 and a CPLD 102. The controller 101 and the CPLD 102 can be connected (communicate) through wired or wireless manner.

[0065] In the embodiment of the present application, the number of the CPLD 102 can be multiple. The types of the multiple CPLD 102 (for example, the type of the CPLD can be used to indicate the manufacturer of the CPLD) can be different. The multiple CPLD can be located on the same board card in the server 101, or the multiple CPLD can be located on different board cards in the server 101. For example, the board card in the server 101 can be a mainboard, or a backboard, etc.

[0066] It should be understood that the controller 101 can communicate with the multiple CPLD respectively.

[0067] The server 100 includes, but is not limited to, a stand-alone physical server, can also be a server cluster composed of multiple physical servers, or can be a cloud server providing basic cloud computing services such as cloud service, cloud database, cloud computing, cloud function, cloud storage, network service, cloud communication, middleware service, domain name service, security service, content delivery network (CDN), and big data and artificial intelligence platform.

[0068] The structure of the server 100 illustrated in the embodiments of the present application does not constitute a specific limitation on the server 100. In some embodiments, the server 100 can include more or fewer components than illustrated, or combine certain components, or split certain components, or different arrangement of components. The illustrated components can be implemented in hardware, software, or a combination of software and hardware.

[0069] The controller 101 can be a management module in the server 100. For example, the controller 101 can be a baseboard management controller (BMC) in the server 100, a monitoring management device in the server 100, or a system management module (SMM) in the server 100, etc. The specific form of the controller 101 is not limited in the embodiments of the present application, and the above is only an exemplary description. In the following embodiments, the controller 101 is taken as an example of the BMC for description.

[0070] It should be noted that different manufacturers of servers have different names for BMC. For software / hardware with different names that have the same or similar functions as BMC, they can all be understood as BMC in the embodiments of the present application.

[0071] In the above system, if part or all of the CPLDs in the server need to be upgraded, the controller can obtain the upgrade file of the CPLD, and use the obtained upgrade file to upgrade the version of each CPLD. For example, the CPLD can obtain the upgrade file from the supply device of the upgrade file.

[0072] It should be noted that one CPLD in the server corresponds to one upgrade file, that is, the CPLD and the upgrade file are one-to-one.

[0073] Next, an exemplary version upgrade method in the related art is shown. Figure 2

[0074] Figure 2 A schematic diagram of a version upgrade method in the related art provided by the embodiments of the present application. Please refer to Figure 2 ​The server 100 comprises a controller 101 and a plurality of types of CPLDs. For example, the types of CPLDs can be Type A, Type B or Type N.

[0075] The Type A CPLDs can comprise CPLD A1, …, and CPLD Am, and the number of Type A CPLDs can be m, where m can be an integer greater than or equal to 1. The Type B CPLDs can comprise CPLD B1, …, and CPLD Bn, and the number of Type B CPLDs can be n, where n can be an integer greater than or equal to 1. The Type N CPLDs can comprise CPLD N1, …, and CPLD Ns, and the number of Type N CPLDs can be s, where s can be an integer greater than or equal to 1.

[0076] It should be understood that m, n and s can be the same or different.

[0077] If some of the CPLDs in the server need to be upgraded or all of the CPLDs in the server need to be upgraded, the controller 101 can obtain the upgrade files of different types of CPLDs respectively and use the obtained upgrade files to upgrade the corresponding CPLDs in the server 100. Referring to Figure 2 , the controller 101 can obtain Type A upgrade files, Type B upgrade files and Type N upgrade files respectively, and can use the Type A upgrade files to upgrade the corresponding Type A CPLDs, use the Type B upgrade files to upgrade the corresponding Type B CPLDs, and use the Type N upgrade files to upgrade the corresponding Type N CPLDs.

[0078] As shown in Figure 2 , the Type A upgrade files obtained by the controller 101 can comprise upgrade file A1, …, and upgrade file Ai, and the number of Type A upgrade files can be i, where i can be an integer greater than or equal to 1 and less than or equal to m. The Type B upgrade files obtained by the controller 101 can comprise upgrade file B1, …, and upgrade file Bj, and the number of Type B upgrade files can be j, where j can be an integer greater than or equal to 1 and less than or equal to n. The Type N upgrade files obtained by the controller 101 can comprise upgrade file N1, …, and upgrade file Nk, and the number of Type N upgrade files can be k, where k can be an integer greater than or equal to 1 and less than or equal to s.

[0079] For any upgrade file, the controller 101 can use the upgrade file to upgrade the corresponding CPLD. For example, the controller can use upgrade file A1 to upgrade CPLD A1, and the controller can use upgrade file B1 to upgrade CPLD B1.

[0080] In the above-described upgrade method, the controller needs to obtain different types of upgrade files multiple times for different types of CPLDs. This cumbersome process of obtaining CPLD upgrade files leads to a complex upgrade process for CPLDs, resulting in a slower upgrade speed for CPLDs on the server.

[0081] In view of this, embodiments of this application provide a version upgrade method. Below, in conjunction with... Figure 3 The version upgrade method provided in the embodiments of this application will be described.

[0082] Figure 3 This is a schematic diagram illustrating a version upgrade method provided in an embodiment of this application. Please refer to [link / reference]. Figure 3 Please see Figure 3 The server 100 includes a controller 101 and various types of CPLDs. For example, the CPLD can be of type A, type B, or type N.

[0083] Type A CPLDs can include CPLD A1, ..., and CPLD Am, with a maximum quantity of m, where m can be an integer greater than or equal to 1. Type B CPLDs can include CPLD B1, ..., and CPLD Bn, with a maximum quantity of n, where n can be an integer greater than or equal to 1. Type N CPLDs can include CPLD N1, ..., and CPLD Ns, with a maximum quantity of s, where s can be an integer greater than or equal to 1.

[0084] It should be understood that m, n, and s can be the same, or m, n, and s can be different.

[0085] If some CPLDs on the server need to be upgraded, or if all CPLDs on the server need to be upgraded, controller 101 can obtain an upgrade package that includes multiple types of upgrade files. For example, the upgrade package may include type A upgrade files, type B upgrade files, and type N upgrade files.

[0086] Please see Figure 2 The upgrade package contains several types of upgrade files. Type A upgrade files can include upgrade files A1, ..., and Ai, with a maximum of i files, where i is an integer greater than or equal to 1 and less than or equal to m. Type B upgrade files can include upgrade files B1, ..., and Bj, with a maximum of j files, where j is an integer greater than or equal to 1 and less than or equal to n. Type N upgrade files can include upgrade files N1, ..., and Nk, with a maximum of k files, where k is an integer greater than or equal to 1 and less than or equal to s.

[0087] For any one of the upgrade files in the upgrade package, the controller 101 can use the upgrade file to perform version upgrade on the corresponding CPLD. For example, the controller can use the upgrade file N1 to perform version upgrade on the CPLD N1, and the controller can use the upgrade file B1 to perform version upgrade on the CPLD B1.

[0088] In the above version upgrade method, the controller can obtain the upgrade files required by the CPLDs of multiple types in the server at one time. This makes the process of obtaining the CPLD upgrade files relatively simple, and the upgrade speed of the CPLDs in the server is relatively fast.

[0089] The technical solutions of the present application will be described in detail below with specific embodiments. The following specific embodiments can be combined with each other, and the same or similar concepts or processes can not be described in some embodiments.

[0090] Figure 4 A flowchart of a version upgrade method provided by an embodiment of the present application is shown. Please refer to Figure 4 The method can include the following steps.

[0091] S401, obtaining an upgrade package corresponding to multiple components.

[0092] The execution subject of the embodiment can be a server or a controller in the server. Optionally, the controller can be implemented by software or by a combination of software and hardware.

[0093] The components can be CPLDs in the server.

[0094] In the embodiment, the component types of the multiple components are different.

[0095] The component type can be used to indicate the manufacturer information of the component. For example, the component type can be the manufacturer identification of the component.

[0096] For example, if the component type of a component is A, the component can be a CPLD produced by the manufacturer A.

[0097] The upgrade package can be a file package including multiple upgrade files. The upgrade files in the file package are used to perform version upgrade on the CPLD.

[0098] In the embodiment, the upgrade package includes the upgrade files of at least two target components in the multiple components, and the component types of the at least two target components are different.

[0099] The target component can be a component in the multiple components that needs to be upgraded.

[0100] The target component corresponds to the upgrade file in the upgrade package one by one.

[0101] Specifically, the upgrade package includes upgrade files of at least two different types of target components.

[0102] In this embodiment, the upgrade package can be obtained from a software upgrade device.

[0103] Optionally, the software upgrade device can be a physical device. For example, the software upgrade device can be a device used by a server manufacturer to edit the upgrade files.

[0104] Optionally, the software upgrade device can also be a software device. For example, the software upgrade device can be software used to edit the upgrade files.

[0105] Optionally, the software upgrade device can also be a website or a storage device that can store the upgrade files.

[0106] In this embodiment, before obtaining the upgrade packages corresponding to the plurality of components, the controller can send an upgrade request to the software upgrade device to trigger the software upgrade device to send the upgrade package to the controller, so that the controller can receive the upgrade package sent by the software upgrade device.

[0107] The upgrade request can include the component identifier of the component that needs to be upgraded.

[0108] The component identifier can be used to indicate the identity of the component. It should be understood that each component has a unique component identifier corresponding thereto, i.e., the component identifier corresponds to the component one-to-one.

[0109] It should be noted that in other embodiments, the user can input the upgrade request through the input interface of the client and trigger the client to send the upgrade request to the software upgrade device, so that the software upgrade device sends the upgrade package to the corresponding controller according to the upgrade request.

[0110] S402, obtain component information corresponding to a plurality of components.

[0111] The component information can include the component type and the component identifier of each component.

[0112] In this embodiment, the component information corresponding to the plurality of components can be obtained in at least the following two ways:

[0113] Method 1: Obtain the component information corresponding to the plurality of components from the upgrade package.

[0114] In this embodiment, the upgrade package can include at least two software packages. Each software package can include at least one upgrade file, and the component type of the at least one component is the same. The upgrade files included in different software packages correspond to different component types.

[0115] For example, it is assumed that the upgrade package includes two software packages. The two software packages can be software package A and software package B. The software package A can include upgrade files corresponding to components of device type A, and the number of upgrade files in the software package A can be one or more. The software package B can include upgrade files corresponding to components of device type B, and the number of upgrade files in the software package B can be one or more.

[0116] In a possible implementation, the header information of each software package can include the device type corresponding to the software package and the device identifier of the component corresponding to each upgrade file in the software package. It should be understood that the device type corresponding to the software package is the same as the device type corresponding to the upgrade file in the software package.

[0117] In this way, the controller can obtain the device types and device identifiers of the plurality of components from the header of each software package.

[0118] In another possible implementation, the header information of each software package can include the device type corresponding to the software package. Each upgrade file can include the device identifier of the component corresponding to the upgrade file.

[0119] In this way, the controller can obtain the device types of the plurality of components from the header of each software package, and can obtain the device identifier of the component corresponding to each upgrade file from the upgrade file.

[0120] Option 2: Obtain device information of the plurality of components from the server.

[0121] In this embodiment, the server can store configuration information of the components in the server. The configuration information can include the device type and the device identifier of each component.

[0122] The controller can obtain the device types and device identifiers of the plurality of components from the server.

[0123] Optionally, the configuration file can be stored in the memory of the server, and the controller can obtain the configuration information from the memory of the server to obtain the device types and device identifiers of the plurality of components.

[0124] S403: Upgrade at least two target components according to the upgrade package and the device information.

[0125] In a possible implementation, if the controller obtains the device information from the upgrade package, the controller can search for corresponding target components in the server according to the device types and device identifiers in the device information, and can upgrade the found target components by using the upgrade files in the upgrade package.

[0126] For example, assuming that the device type included in the package header information of a software package in the upgrade package is A, and the device identifier corresponding to the upgrade file 1 in the software is 010. The controller can search for the component device with the device type A and the device identifier 010 in the server, and upgrade the component device through the upgrade file 1.

[0127] In another possible implementation, if the controller obtains the device information from the server. For the device type and the device identifier of any component device in the device information, the controller can search, according to the device type and the device information, whether the upgrade package includes a corresponding upgrade file. If the upgrade package includes the corresponding upgrade file, the component device is a target component device. The controller can upgrade the target component device through the corresponding upgrade file.

[0128] For example, assuming that the device type of a component device in the configuration information is C, and the device identifier is 001. The controller can search, according to the package header information of each software package in the upgrade package, whether the upgrade package includes an upgrade file corresponding to the component device. If the upgrade package includes the corresponding upgrade file, the component device is a target component device, and the controller can upgrade the component device through the corresponding upgrade file. If the upgrade package does not include the corresponding upgrade file, the component device is not a target component device, and the component device has no version upgrade requirement.

[0129] The version upgrade method provided in this embodiment can enable the controller to obtain upgrade packages corresponding to multiple types of component devices at a time, can obtain the device types and device identifiers of multiple component devices, and can upgrade target component devices of at least two types in the server according to the upgrade package and the device types and device identifiers of the multiple component devices. Through the method, the process of obtaining upgrade files by the controller can be simplified, and the controller is prevented from obtaining upgrade files corresponding to component devices of different types multiple times. The version upgrade process of the component devices is relatively simple, and the upgrade speed of the component devices is relatively fast.

[0130] On the basis of any of the above embodiments, the controller can also decompress the obtained upgrade package to obtain multiple software packages. Each software package can include at least one upgrade file. The controller can perform version upgrade on the corresponding component device according to the upgrade file included in the software package. In the following, the above solution is described in detail. Figure 5 The above solution is described in detail.

[0131] Figure 5 Another version upgrade method provided in this embodiment is described in detail. Figure 5 The method can include the following steps.

[0132] S501, obtaining upgrade packages corresponding to multiple component devices.

[0133] It should be noted that the specific implementation of S501 can refer to S401, which will not be repeated here.

[0134] S502, obtain device information corresponding to the plurality of components.

[0135] In this embodiment, the controller can obtain device information corresponding to the plurality of components from the server. The method that the controller obtains device information corresponding to the plurality of components from the server can refer to S402, which will not be repeated here.

[0136] S503, decompress the upgrade package to obtain at least two software packages, and the software package includes an upgrade file of at least one component.

[0137] In this embodiment, the controller can obtain the upgrade package in the form of a compressed package to improve the speed of obtaining the upgrade package by the controller. After obtaining the upgrade package, the controller can decompress the upgrade package to obtain the files in the upgrade package.

[0138] In this embodiment, each software package obtained by decompressing the upgrade package can include an upgrade file of at least one component. The upgrade file included in each software package corresponds to a component of the same type. Different software packages correspond to different component types.

[0139] Next, the upgrade package will be described in combination with Figure 6

[0140] Figure 6 A schematic diagram of an upgrade package provided by an embodiment of the present application. Please refer to Figure 6 The upgrade package can include two software packages. The two software packages can be software package A and software package B.

[0141] The software package A can include a package header, an upgrade file A1, …, and an upgrade file Ax. The software package B can include a package header, an upgrade file B1, …, and an upgrade file By. x and y can be integers greater than or equal to 1. x can be equal to y, or x can also be not equal to y.

[0142] All upgrade files included in the software package A correspond to at least one component of the same type. All upgrade files included in the software package B correspond to at least one component of the same type. The component type corresponding to the component of the software package A is different from the component type corresponding to the component of the software package B.

[0143] S504, respectively analyze each software package to obtain the package header information of each software package and at least one upgrade file in each software package.

[0144] The package header information includes the component type corresponding to the software package and the component identifier corresponding to each upgrade file in the software package.​

[0145] Specifically, each software package may include header information in its header. This header information may include the device type of the target component corresponding to the software package, and the device identifier of the target component corresponding to each upgrade file within the software package.

[0146] Optionally, the device identifier of the target component corresponding to each upgrade file can be recorded in the package header information in an indexed manner.

[0147] Below, we will take software package A, which includes two upgrade files, namely upgrade file A1 and upgrade file A2, as an example. Figure 7 This describes the header information of the software package.

[0148] Figure 7 This is a schematic diagram of a software package header provided for an embodiment of this application. Please refer to [link / reference]. Figure 7 The header information of software package A may include the device type (device type A) of the target component corresponding to software package A. The header information may also include the device identifier of the target component corresponding to each upgrade file in the software package. Specifically, the device identifier of the target component corresponding to upgrade file A1 is 010, and the device identifier of the target component corresponding to upgrade file A2 is 001. That is, the device identifier of the target component corresponding to upgrade file A1 is 001, and the device identifier of the target component corresponding to upgrade file A2 is 001.

[0149] S505. Based on the header information and device information of each software package, determine the target components corresponding to each upgrade file.

[0150] In this embodiment, the method by which the controller determines the corresponding target component is consistent for each software package. Below, we will use only one software package as an example to illustrate the method for determining the target component.

[0151] In this embodiment, the target component corresponding to each upgrade file can be determined in the following way: the candidate component can be determined from multiple components based on the first component type and component information in the package header information of the software package, and the component type of the candidate component is the first component type; the target component corresponding to the software package can be determined from the candidate components based on the component identifier corresponding to each upgrade file in the software package.

[0152] For any given software package, the first device type can be the type of the component corresponding to that software package. The candidate components can be all components in the server whose device type is the same as the first device type.

[0153] Specifically, the controller can identify all components in the device information that are of the same type as the first device as candidate components.

[0154] For example, it is assumed that 9 components are included in the component information. Among them, 3 components are of type A, 2 components are of type B, and 4 components are of type C. The first component type is C. Then the controller can determine the 4 components of type C in the server as the candidate components.

[0155] After determining the candidate components for any one software package, the controller can determine the target components from the candidate components according to the component identifiers of the components corresponding to the upgrade files included in the software package.

[0156] It should be understood that the number of target components is less than or equal to the number of candidate components.

[0157] For example, it is assumed that the first component type is C, and 2 upgrade files are included in the software package. The component types of the components corresponding to the 2 upgrade files included in the package header information of the software package are: upgrade file C1-001 and upgrade file C2-010.

[0158] It is assumed that there are 4 candidate components in the server, and the 4 candidate components are component 001, component 003, component 010, and component 011.

[0159] Then the controller can determine the target components as component 001 and component 010.

[0160] S506, for any one upgrade file, upgrade the corresponding target component according to the upgrade file.

[0161] In this embodiment, the controller upgrades the version of the corresponding target component according to each upgrade file. Hereinafter, only one upgrade file is taken as an example to illustrate the method of upgrading the version of the target component.

[0162] In this embodiment, the target component can be upgraded by the following method: reading the upgrade program included in the upgrade file; determining the program location of the original program in the target component; storing the upgrade program in the program location of the target component to overwrite the original program.

[0163] The upgrade program can be a software program for upgrading the version of the corresponding target component.

[0164] The original program can be a program that needs to be replaced in the target component.

[0165] In the embodiment, for any one upgrade file, the upgrade file can further include a program location of an original program in a corresponding component.

[0166] Specifically, the controller can determine the program location of the original program according to the upgrade file, replace the original program at the program location with an upgrade program in the upgrade file, and thus achieve version upgrade of the target component.

[0167] The version upgrade method provided in the embodiment can enable the controller to obtain upgrade packages corresponding to multiple types of components at one time, obtain component information of multiple components, decompress the upgrade packages to obtain at least two software packages, and obtain, from the header information of each software package, a component type corresponding to the software package and component identifiers corresponding to upgrade files in the software package. The controller can determine target components corresponding to each upgrade file according to the header information of each software package and the component information, and perform version upgrade on the target components according to the upgrade files included in the software packages. Through the above method, the controller can simplify the process of obtaining upgrade files, avoid obtaining upgrade files corresponding to different types of components at multiple times, enable one upgrade package to be compatible with upgrade files corresponding to multiple types of components, and thus simplify the version upgrade process of the components and accelerate the upgrade speed of the components.

[0168] Figure 8 A structural diagram of a server provided in the embodiment is shown in Figure 8 The server 10 includes a controller and multiple components, the controller is connected with the multiple components respectively, and the controller is configured to perform the following operations.

[0169] The controller is configured to obtain upgrade packages corresponding to the multiple components, the upgrade packages include upgrade files of at least two target components in the multiple components, and the at least two target components are of different types.

[0170] The controller is further configured to obtain component information corresponding to the multiple components, the component information includes a component type and a component identifier of each component.

[0171] The controller is further configured to upgrade the at least two target components according to the upgrade packages and the component information.

[0172] The server provided in the embodiment can be used to execute the technical solutions shown in any method embodiment, and has similar implementation principles and technical effects, which will not be described herein.

[0173] Figure 9 A structural diagram of a controller provided in the embodiment is shown inFigure 7 The controller 20 comprises an acquisition module 21 and an upgrade module 22, wherein

[0174] The acquisition module 21 is configured to acquire an upgrade package corresponding to the plurality of components, the upgrade package comprising upgrade files of at least two target components in the plurality of components, the at least two target components being of different types.

[0175] The acquisition module 21 is further configured to acquire device information corresponding to the plurality of components, the device information comprising a device type and a device identifier of each component.

[0176] The upgrade module 22 is configured to upgrade the at least two target components according to the upgrade package and the device information.

[0177] The controller provided in the embodiment can be used to implement the technical solutions shown in any of the method embodiments described above, and has similar implementation principles and technical effects, which will not be described here in detail.

[0178] In a possible implementation, the upgrade module 22 is specifically configured to

[0179] decompress the upgrade package to obtain at least two software packages, the software package comprising upgrade files of at least one component, the at least one component being of the same type, and the different software packages being of different types.

[0180] upgrade the at least two target components according to the at least two software packages and the device information.

[0181] In a possible implementation, the upgrade module 22 is specifically configured to

[0182] perform parsing processing on each software package to obtain package header information of each software package and at least one upgrade file in each software package, the package header information comprising a device type corresponding to the software package and device identifiers corresponding to the upgrade files in the software package.

[0183] upgrade the at least two target components according to the package header information of each software package, the at least one upgrade file in each software package, and the device information.

[0184] In a possible implementation, according to the package header information of each software package, the at least one upgrade file in each software package, and the device information, the upgrade module 22 is specifically configured to

[0185] determine target components corresponding to each upgrade file according to the package header information of each software package and the device information.

[0186] According to the upgrade file, a corresponding target component is upgraded.

[0187] In a possible implementation, the upgrade module 22 is specifically configured to,

[0188] According to the first component type in the package header information of the software package and the component information, a candidate component is determined from the plurality of components, and the component type of the candidate component is the first component type;

[0189] According to the component identifier corresponding to each upgrade file in the software package, the target component corresponding to the software package is determined from the candidate components.

[0190] In a possible implementation, the upgrade module 22 is specifically configured to,

[0191] The upgrade program included in the upgrade file is read;

[0192] The program position where the original program in the target component is located is determined;

[0193] The upgrade program is stored in the program position of the target component to overwrite the original program.

[0194] In a possible implementation, the acquisition module 21 is specifically configured to,

[0195] An upgrade request is sent to a software upgrade device;

[0196] The upgrade package sent by the software upgrade device is received.

[0197] The controller provided in the embodiment can be used to execute the technical solutions shown in any of the method embodiments, and has similar implementation principles and technical effects, which will not be described herein.

[0198] The embodiment of the present application further provides a computer readable storage medium, which stores a computer program, and the computer program is executed by a computer to implement a version upgrade method executed by any of the above method embodiments, and has similar implementation principles and technical effects, which will not be described herein.

[0199] The embodiment of the present application further provides a computer program product, which includes a computer program, and the computer program is executed by a computer to implement a version upgrade method executed by any of the above method embodiments, and has similar implementation principles and technical effects, which will not be described herein.

[0200] All or part of the steps of the above-mentioned method embodiments can be completed by program instruction related hardware. The aforementioned program can be stored in a readable memory. The program, when executed, performs steps including the above-mentioned method embodiments; and the aforementioned memory (storage medium) includes: a read-only memory (English: read-only memory, abbreviation: ROM), a RAM, a flash memory, a hard disk, a solid state disk, a magnetic tape, a floppy disk (English: floppy disk), an optical disc (English: optical disc), and any combination thereof.

[0201] The embodiments of the present application are described with reference to flowcharts and / or block diagrams according to the methods, devices (systems), and computer program products of the embodiments of the present application. It should be understood that each flow and / or block in the flowcharts and / or block diagrams, and the combination of flows and / or blocks in the flowcharts and / or block diagrams can be implemented by computer program instructions. These computer program instructions can be provided to a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable terminal equipment processing unit to produce a machine, so that the instructions executed by the computer or other programmable terminal equipment processing unit produce a device implemented in the flowcharts and / or block diagrams. Figure 1 The device that implements the function specified in one flow or multiple flows and / or blocks. Figure 1 The device that implements the function specified in one flow or multiple flows and / or blocks.

[0202] These computer program instructions can also be stored in a computer readable memory that can guide the computer or other programmable terminal equipment to work in a specific way, so that the instructions stored in the computer readable memory produce a product including instruction devices that implement the flowcharts and / or block diagrams. Figure 1 The device that implements the function specified in one flow or multiple flows and / or blocks. Figure 1 The device that implements the function specified in one flow or multiple flows and / or blocks.

[0203] These computer program instructions can also be loaded into a computer or other programmable terminal equipment, so that a series of operation steps are performed on the computer or other programmable equipment to produce a computer implemented process, so that the instructions executed on the computer or other programmable equipment provide a process for implementing the flowcharts and / or block diagrams. Figure 1 The device that implements the function specified in one flow or multiple flows and / or blocks. Figure 1 Figure 1 The device that implements the function specified in one flow or multiple flows and / or blocks.

[0204] Obviously, those skilled in the art can make various modifications and variations to the embodiments of the present application without departing from the spirit and scope of the present application. Thus, if these modifications and variations of the embodiments of the present application fall within the scope of the claims of the present application and their equivalent technologies, the present application also intends to include these modifications and variations.

[0205] In the present application, the term "comprising" and its variants can refer to non-limiting inclusion; the term "or" and its variants can refer to "and / or". In the present application, the terms "first", "second", etc. are used to distinguish similar objects, and do not necessarily describe a specific order or sequence. In the present application, "multiple" refers to two or more. "And / or", which describes the relationship between the associated objects, means that there can be three relationships, for example, A and / or B can represent: A exists alone, A and B exist together, and B exists alone. The character " / " generally represents a "or" relationship between the front and rear associated objects.

Claims

1. A version upgrade method, characterized in that, A controller used in a server, wherein the server also contains multiple components, the method includes: Obtain upgrade packages corresponding to the plurality of components, wherein the upgrade packages include upgrade files for at least two target components among the plurality of components, and the at least two target components are of different device types; Obtain the device information corresponding to the multiple components, wherein the device information includes the device type and device identifier of each component; Decompress the upgrade package to obtain at least two software packages. Each software package includes an upgrade file for at least one component. The at least one component has the same component type, but the component types corresponding to different software packages are different. Each software package is parsed to obtain the package header information of each software package and at least one upgrade file in each software package. The package header information includes the device type corresponding to the software package and the device identifier corresponding to each upgrade file in the software package. For any software package, based on the first device type and the device information in the package header information of the software package, a candidate device is determined from the plurality of components, wherein the device type of the candidate device is the first device type; based on the device identifier corresponding to each upgrade file in the software package, the target device corresponding to the software package is determined from the candidate devices; For any given upgrade file, upgrade the corresponding target component according to the upgrade file.

2. The method according to claim 1, characterized in that, Upgrade the corresponding target components according to the upgrade file, including: Read the upgrade program included in the upgrade file; Determine the location of the existing program in the target component; The upgrade program is stored in the program location of the target component to overwrite the original program.

3. The method according to claim 1 or 2, characterized in that, Obtain the upgrade packages corresponding to the multiple components, including: Send an upgrade request to the software upgrade device; Receive the upgrade package sent by the software upgrade device.

4. A server, characterized in that, The server includes a controller and multiple components, wherein the controller is connected to each of the multiple components. The controller is used to obtain upgrade packages corresponding to the plurality of components, wherein the upgrade package includes upgrade files for at least two target components among the plurality of components, and the at least two target components are of different types; The controller is also configured to acquire device information corresponding to the plurality of components, wherein the device information includes the device type and device identifier of each component; The controller is also configured to decompress the upgrade package to obtain at least two software packages, each software package including an upgrade file for at least one component, wherein the at least one component has the same component type, and the different software packages correspond to different component types; The controller is also configured to parse each software package to obtain the header information of each software package and at least one upgrade file in each software package. The header information includes the device type corresponding to the software package and the device identifier corresponding to each upgrade file in the software package. The controller is further configured to, for any software package, determine candidate components from among the plurality of components based on a first device type in the package header information of the software package and the device information, wherein the device type of the candidate components is the first device type; and determine the target component corresponding to the software package from among the candidate components based on the device identifier corresponding to each upgrade file in the software package. The controller is also used to upgrade the corresponding target components according to any given upgrade file.

5. The server according to claim 4, characterized in that, The controller is a baseboard controller (BMC).

6. A controller, characterized in that, The controller is located in a server, which also includes multiple components. The controller is connected to each of these components. The controller includes an acquisition module and an upgrade module. The acquisition module is used to acquire upgrade packages corresponding to the plurality of components, wherein the upgrade package includes upgrade files for at least two target components among the plurality of components, and the at least two target components are of different device types; The acquisition module is further configured to acquire device information corresponding to the plurality of components, wherein the device information includes the device type and device identifier of each component; The upgrade module is used to decompress the upgrade package to obtain at least two software packages. Each software package includes an upgrade file for at least one component. The at least one component has the same component type, and the component types corresponding to different software packages are different. The upgrade module is also used to parse each software package to obtain the header information of each software package and at least one upgrade file in each software package. The header information includes the device type corresponding to the software package and the device identifier corresponding to each upgrade file in the software package. The upgrade module is further configured to, for any software package, determine candidate components from among the plurality of components based on the first device type in the header information of the software package and the device information, wherein the device type of the candidate components is the first device type; and determine the target component corresponding to the software package from among the candidate components based on the device identifier corresponding to each upgrade file in the software package. The upgrade module is also used to upgrade the corresponding target component according to any given upgrade file.

Citation Information

Patent Citations

  • Firmware upgrading method and device and shelf management module (SMM)

    CN107632846A

  • Software upgrading method and device

    CN114090048A