Chassis board, cluster system, software deployment method and storage medium
By setting up multiple software deployment servers in the cluster system, selecting the target server for software version file download, the problem of slow startup speed of the cluster system is solved, and faster startup time and higher business efficiency are achieved.
Patent Information
- Application Number
- CN202010592519.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2020-06-24
- Publication Date
- 2025-08-22
- Estimated Expiration
- 2040-06-24
AI Technical Summary
The physical cluster system takes a long time to reach a serviceable state when it is started, and the startup speed is slow.
Set up at least two software deployment servers that can provide services at the same time in the cluster system, and deploy them on different main control boards respectively. The chassis board sends software version requests and selects the target software deployment server to download and deploy software version files.
By distributing software deployment requests, the pressure on a single main control board is reduced, the efficiency of software version file acquisition is improved, the time for cluster system startup is shortened, and the user's business experience is improved.
Smart Images

Figure CN113835715B_ABST
Abstract
Description
Technical Field
[0001] The embodiments of the present invention relate to, but are not limited to, the field of communication technology, and specifically, to, but are not limited to, a chassis board, a cluster system, a software deployment method, and a storage medium. Background Art
[0002] With the rapid growth of internet services, communication networks such as telecom operators' backbone networks, mobile core networks, and metropolitan area networks (MANs) are facing a rapid increase in the amount of service data traffic they must handle. This necessitates the use of high-throughput, high-availability, carrier-grade forwarding and switching equipment. Multi-chassis physical cluster systems (also referred to as physical cluster system equipment), such as carrier-grade cluster routers and switches, offer high service throughput and high availability, making them a core component of these critical communication networks. However, these physical cluster systems can be slow to boot up and require a long time to reach a serviceable state. Summary of the Invention
[0003] The chassis board, cluster system, software deployment method and storage medium provided by the embodiments of the present invention mainly solve the technical problem that the physical cluster system in the related art takes a long time to reach a serviceable state during startup, resulting in a slow startup speed.
[0004] To solve the above technical problems, an embodiment of the present invention provides a cluster system software deployment method, including:
[0005] The chassis board sends a software version request containing software group information within the cluster system to which it belongs. The software group information is used to indicate the target software group that the chassis board needs to deploy. The cluster system has at least two software deployment servers that can provide services simultaneously, and different software deployment servers are respectively deployed on different main control boards of the cluster system.
[0006] The chassis board receives a download instruction message sent by at least two software deployment servers in the cluster system according to the software version request, wherein the download instruction message is used to instruct how to obtain the software version file of the target software group from the corresponding software deployment server;
[0007] The chassis board selects a software deployment server as a target software deployment server according to the download instruction message;
[0008] The chassis board downloads the software version file from the target software deployment server and performs software deployment according to the software version file.
[0009] An embodiment of the present invention further provides a cluster system software deployment method, comprising:
[0010] The main control board receives a software version request including software group information sent by a chassis board in the cluster system, wherein the software group information is used to indicate a target software group to be deployed by the chassis board; the cluster system has at least two software deployment servers capable of providing services simultaneously, and different software deployment servers are respectively deployed on different main control boards in the cluster system;
[0011] The main control board sends a download instruction message to the chassis board according to the software version request, wherein the download instruction message is used to instruct the chassis board how to obtain the software version file of the target software group from the corresponding software deployment server;
[0012] After receiving the download request from the chassis board, the main control board controls the software deployment server to send the software version file of the target software group to the chassis board, so that the chassis board can perform software deployment according to the software version file.
[0013] An embodiment of the present invention further provides a chassis board, the chassis board including a processor, a memory and a communication bus;
[0014] The communication bus is used to realize the connection and communication between the processor and the memory;
[0015] The processor is used to execute the first cluster system software deployment program stored in the memory to implement the steps of the first cluster system software deployment method mentioned above; or, the processor is used to execute the second cluster system software deployment program stored in the memory to implement the steps of the second cluster system software deployment method mentioned above.
[0016] An embodiment of the present invention also provides a cluster system, characterized in that it includes multiple chassis boards, the chassis boards are communicatively connected to each other, and each chassis board is a chassis board with the above-mentioned processor capable of executing the first cluster system software deployment program; some of the multiple chassis boards are main control boards, and at least two main control boards in the cluster system are deployed with software deployment servers that can provide services simultaneously, and the main control boards deployed with the software deployment servers are chassis boards with the above-mentioned processor capable of executing the second cluster system software deployment program.
[0017] An embodiment of the present invention also provides a storage medium, which stores at least one of a first cluster system software deployment program and a second cluster system software deployment program. The first cluster system software deployment program can be executed by one or more processors to implement the steps of the above-mentioned first cluster system software deployment method; the second cluster system software deployment program can be executed by one or more processors to implement the steps of the above-mentioned second cluster system software deployment method.
[0018] According to the chassis board, cluster system, software deployment method and storage medium provided by the embodiments of the present invention, when the cluster system is started, a chassis board can send a software version request containing software group information within the cluster system, and indicate the target software group that the board needs to deploy through the software group information. Subsequently, the chassis board receives a download instruction message sent by at least two software deployment servers in the cluster system based on the software version request. The download instruction message can be used to indicate how to obtain the software version file of the target software group from the corresponding software deployment server. The chassis board can select a software deployment server as the target software deployment server of the board based on each received download instruction message, and then download the software version file from the target software deployment server, and perform software deployment based on the obtained software version file. In an embodiment of the present invention, since there are at least two software deployment servers that can provide services simultaneously in the cluster system, each software deployment server is deployed on a different main control board of the cluster system. Therefore, during the startup phase of the cluster system, each chassis board in the cluster system can select one of these software deployment servers to obtain the software version file corresponding to the target software group. This avoids the problem that all chassis boards in the cluster system obtain software version files from a single software deployment server, which causes a large pressure on the deployment server and the software version requests of each chassis board to remain unanswered for a long time. By setting at least two software deployment servers that can provide services simultaneously in the cluster system, the request objects of each chassis board are dispersed, which not only reduces the pressure on a single main control board, but more importantly, improves the efficiency of each chassis board in obtaining software version files, shortening the startup time of the cluster system. On the other hand, since there is more than one main control board deployed with software deployment servers that can provide services, a main control board does not need to provide corresponding software version files to all chassis boards in the cluster system. Therefore, the main control board can have more time to synchronously forward table entry data to the chassis board that has been started first, further shortening the time it takes for the cluster system to reach a serviceable state.
[0019] Other features and corresponding beneficial effects of the present invention are described in the latter part of the specification, and it should be understood that at least some of the beneficial effects become obvious from the description in the specification of the present invention. BRIEF DESCRIPTION OF THE DRAWINGS
[0020] Figure 1 A flowchart of the cluster system software deployment method provided in the first embodiment of the present invention;
[0021] Figure 2 A schematic diagram of a star-type cluster system shown in the first embodiment of the present invention;
[0022] Figure 3 A schematic diagram of a linear cluster system shown in the first embodiment of the present invention;
[0023] Figure 4 A flow chart of sending a software version request and selecting a target software deployment server for a chassis board shown in the first embodiment of the present invention;
[0024] Figure 5 A flow chart of the main control board negotiation to create a primary deployment software group in the cluster system provided in the second embodiment of the present invention;
[0025] Figure 6 This is an optional flowchart of the software deployment server upgrade process in the cluster system provided in the second embodiment of the present invention;
[0026] Figure 7 This is a hardware structure diagram of the chassis board provided in the third embodiment of the present invention. DETAILED DESCRIPTION
[0027] In order to make the purpose, technical solutions and advantages of the present invention more clearly understood, the following is a further detailed description of the embodiments of the present invention through specific implementation methods in conjunction with the accompanying drawings. It should be understood that the specific embodiments described herein are only used to explain the present invention and are not intended to limit the present invention.
[0028] Example 1:
[0029] The cluster system in this embodiment mainly refers to a physical cluster system. Each chassis of the physical cluster system usually includes two main control boards and multiple forwarding boards. In some chassis, there may also be auxiliary management boards. The main control board mainly deploys software services for business control functions, server-side software for device management functions, and client software for device management functions. The server-side software for device management functions includes software deployment servers, etc., and the client software includes software deployment client software, etc. The local storage device of the main control unit board stores the software versions to be executed by the main control board, forwarding board, and other boards. The forwarding board mainly deploys software services for business forwarding functions and client software for device management functions. The client software includes software deployment client software, etc.
[0030] The software running in a cluster system consists of multiple software processes. These processes can be divided into multiple software groups based on their functionality. Each software group has multiple attributes, one of which is whether it is active or standby. Typically, only the active software group provides services; the standby software group does not provide external services during normal service periods. Some software groups are configured on a per-chassis basis, based on the deployment requirements of each chassis. For example, for a software group with function a, a primary software group a and a backup software group a are configured within a chassis. In this case, multiple primary software groups a exist within the cluster system, each providing services to the chassis cards in its chassis. However, some software groups are configured per-cluster system. For example, for a software group with function b, only a primary software group b and a backup software group b are configured within a cluster system. In this case, the primary software group b is required to provide services to the cluster system. Software group b, which is set up per cluster system, can be called a "software group in the sole active software state," while software group a, which is set up per chassis, can be called a "software group in the non-sole active software state."
[0031] In the related art, the software group to which the corresponding process of the software deployment server belongs is the only software group in the active state. Therefore, in the cluster system, there is only one software deployment server providing services at the same time. This seriously restricts the startup speed of the cluster system after equipment downtime or system upgrade, affecting the user's service experience. In this regard, the present embodiment provides a cluster system software deployment method, which is applied to the cluster system. In the present embodiment, software deployment servers are deployed on at least two main control boards in the cluster system, and at least two software deployment servers in the cluster system can provide services at the same time. Therefore, software deployment servers providing services are deployed on at least two main control boards in the cluster system. It can be understood that although software deployment servers are also deployed on two main control boards in the cluster system in the related art, the software deployment servers on these two main control boards cannot provide services at the same time. At the same time, only the software deployment server whose current software group is in the active state can provide services to the outside world.
[0032] See below Figure 1 An interactive flow chart of a cluster system software deployment method is shown below:
[0033] S102: The chassis board sends a software version request including software group information within the cluster system to which the board belongs.
[0034] During the process of deploying a software group, the chassis board may send a software version request to the software deployment server. The software version request includes software group information, which may indicate which software group or groups the chassis board needs to deploy. In this embodiment, the software group that a chassis board needs to deploy is referred to as the target software group of the chassis board. Therefore, the software group information carried in the software version request is actually the target software group of the chassis board to which the software version request is sent to indicate to the software deployment server. Normally, a chassis board needs to deploy a resource management software group, which is a basic software group. In addition, some main control boards need to deploy additional software groups in addition to the resource management software group, but these additional software groups are not required to be deployed on every chassis board, or even on every main control board. Which software groups a chassis board needs to deploy is determined by the software deployment server.
[0035] It is understandable that, because the cluster system of this embodiment simultaneously has at least two software deployment servers providing services, the chassis board does not specifically send the software version request to a specific software deployment server. The chassis board can send the software version request within the scope of the cluster system in which it is located, that is, the software version request can be sent to all software deployment servers deployed with provisioning servers in the cluster system. Figure 1 In the example, the software version request sent by the chassis board will be transmitted to the first software deployment server and the second software deployment server. It can be understood that because the software deployment server is deployed on the main control board, the chassis board sends the software version request to the software deployment server, which is actually sending the software version request to the main control board where the software deployment server is deployed. Figure 1 The first main control board is used to deploy the first software deployment server, and the second main control board is used to deploy the second software deployment server. Figure 1 Although only the interaction between the chassis board and the first software deployment server and the second software deployment server is shown, in fact, if more software deployment servers that can provide services to the outside world at the same time are deployed in the cluster system, the chassis board will also interact with more software deployment servers, that is, more main control boards of deployed software deployment servers.
[0036] Generally, physical cluster systems can be divided into star cluster systems and linear cluster systems based on different connection methods. In a star cluster system, the connection method of each chassis is a star topology structure, while in a linear cluster system, the connection method of each chassis is a linear topology structure. A star cluster system includes a central switch chassis and a forwarding chassis, wherein the forwarding chassis is used to implement the message forwarding function, and the central switch chassis can realize the interconnection between the forwarding chassis. In some examples of this embodiment, a star cluster system may include at least two central switch chassis and multiple forwarding chassis, for example, see Figure 2 Shows a connection diagram of a star cluster system: Figure 2 In the example, the star cluster system 2 includes a first central switch chassis 21, a second central switch chassis 22, and four forwarding chassis (respectively, a first forwarding chassis 23a, a second forwarding chassis 23b, a third forwarding chassis 23c, and a fourth forwarding chassis 23d). The first central switch chassis 21 is connected to the second central switch chassis 22 for communication, and each forwarding chassis is connected to two central switch chassis. Figure 3 A linear cluster system 3 is shown, which includes a plurality of forwarding chassis for message forwarding (eg Figure 3 In the embodiment, the first forwarding chassis 30a, the second forwarding chassis 30b, and the third forwarding chassis 30c are connected to each other, enabling intercommunication between the forwarding chassis. In other examples of this embodiment, a linear cluster system includes only two forwarding chassis. In this embodiment, whether in a star cluster system or a linear cluster system, the chassis are connected using hardware connections, which can be network cables, optical fibers, or other hardware connection cables.
[0037] S104: At least two software deployment servers in the cluster system send download instruction messages to the chassis board according to the software version request.
[0038] After receiving a software version request, the software deployment server in the cluster system can send a download instruction message as a response to the chassis board that sent the software version request. The download instruction message is used to instruct the chassis board on how to download the software version file corresponding to the target software group from the software deployment server. In this embodiment, the download instruction message includes the download address for downloading the software version file corresponding to the target software group from the corresponding software deployment server. In this way, when the chassis board receives a response corresponding to the software version request, if it chooses to download the software version file from the corresponding software deployment server, it can obtain the software version file for the target software group based on the download address in the download instruction message.
[0039] In some examples of this embodiment, each software deployment server providing services in the cluster system will respond after receiving a software version request. Therefore, after a chassis board sends a software version request, it can receive at least two download indication messages.
[0040] S106: The chassis board selects a software deployment server as the target software deployment server of the board according to each download instruction message.
[0041] In this embodiment, after receiving the download indication message fed back by each software deployment server, the chassis board can select a software deployment server from each software deployment server as the target software deployment server based on the download indication message. The target software deployment server is the software deployment server from which the chassis board subsequently obtains the target software group software version file.
[0042] In some examples of this embodiment, the chassis board can randomly select one from each software deployment server as the target software deployment server based on the download indication message. In other examples of this embodiment, the chassis board can select the target software deployment server based on the deployment location of the software deployment server: for example, the chassis board can determine the chassis where the software deployment server is located, and then give priority to selecting the software deployment server in the same chassis as this board as the target software deployment server. In other examples, the chassis board can determine the slot of the main control board where the software deployment server is located, and then give priority to selecting the software deployment server deployed on this board as the target software deployment server. If a chassis board determines that there is no software deployment server in the chassis where it is located, it can randomly select the target software deployment server from each software deployment server.
[0043] Figure 4 A flowchart showing a chassis board sending a software version request and selecting a target software deployment server is shown:
[0044] S402: The chassis board sends a software version request and starts a receiving timer.
[0045] Understandably, since the chassis board sends software version requests without a specific recipient—it's a generalized sending behavior—it's difficult for the board to accurately predict how many responses it will receive and when it will receive responses from all software deployment servers in the cluster system. However, the board can't wait indefinitely. Therefore, starting the receive timer on the board effectively sets a time window for receiving download indication messages. During this time window, the board can continue to receive download indication messages, but after the time window expires, the board will no longer download the indication messages.
[0046] S404: The chassis board determines whether the current message receiving timer has expired.
[0047] If the judgment result is no, execute S406; otherwise, execute S420.
[0048] S406: The chassis board receives the download instruction information.
[0049] S408: The chassis board determines whether the download instruction message is valid.
[0050] If the judgment result is yes, then execute S410; otherwise, discard the download instruction message and continue to execute S404.
[0051] S410: The chassis board determines the deployment location information of the software deployment server that sends the download instruction message.
[0052] S412: The chassis board determines whether the software deployment server is located on the chassis board according to the deployment location information.
[0053] If the judgment result is yes, execute S414, otherwise execute S416.
[0054] S414: Select the software deployment server as the target software server.
[0055] S416: The chassis board determines whether the software deployment server is located in the chassis according to the deployment location information.
[0056] If the judgment result is yes, execute S414, otherwise execute S418.
[0057] S418: Record the information of the software deployment server.
[0058] S420: Randomly select one from the recorded software deployment servers as a target software deployment server.
[0059] In some examples of this embodiment, the download instruction message sent by the software deployment server to the chassis board carries the deployment location information of the software deployment server. The deployment location information may include at least one of chassis identification information of the chassis where the software deployment server is located and slot identification information of the board where the software deployment server is located. It is understood that the chassis identification information may be the chassis number, and the slot identification information may be the slot number. In some examples of this embodiment, the information content of the download instruction message includes specific deployment location information; for example, the download instruction message is a software version response message sent by the software deployment server to the chassis board in response to a software version request, and the message content of the response message includes the deployment location information.
[0060] In some other examples of this embodiment, there is no specific deployment location information in the download indication message, but after receiving the download indication message, the chassis board can determine the deployment location information of the software deployment server based on the source IP address and / or source MAC address in the download indication message. For example, in one example of this embodiment, the last three digits of the IP address of each chassis board in the cluster system can represent its chassis number, and the first three digits can represent the slot number corresponding to the chassis board. In this way, when the chassis board receives a software version response message sent by a software deployment server, it can extract information from the corresponding position of the message header of the response message, thereby determining the deployment location information of the software deployment server according to the preset rules. It should be understood that if at least one of the source IP address, source MAC address, etc. of the chassis board is to be used to reflect the deployment location information of the chassis board, then when allocating IP addresses or MAC addresses to each chassis board in the cluster system, an IP address or MAC address should be generated for it based on the chassis number (or slot number) of each chassis board in combination with a preset rule, and the preset rule should be a rule agreed in advance with other chassis boards in the cluster system. After receiving the download indication message, the cluster system determines the chassis number based on the source IP address and source MAC address carried in the download indication message and determines the chassis number (or slot number) where the software deployment server is located based on the same preset rule.
[0061] In some other examples of this embodiment, the download indication message sent by the software deployment server to the chassis board does not carry information that can represent the deployment location information, but in the cluster system, each chassis board can save the mapping relationship between the deployment location information of each chassis board in the cluster system and the IP address (or MAC address) of each chassis board. In this way, when a chassis board receives a download indication message fed back by the software deployment server, it can extract the IP address (or MAC address) in the download indication message, and then determine the deployment location information of the software deployment server that sent the download indication message based on the pre-saved mapping relationship.
[0062] It can be understood that the second and third methods of determining the deployment location information of the software deployment server are relatively similar. Both are determined based on the mapping relationship between the IP address (or MAC address) of the chassis board where the software deployment server is located and the deployment location information of the software deployment server. However, in the second method, the mapping relationship saved by each chassis board is a preset rule, while the third method requires saving a specific corresponding relationship. Usually, there are more chassis boards in the cluster system, so relatively speaking, the second method occupies less chassis board storage resources.
[0063] S108: The chassis board downloads the software version file from the target software deployment server and performs software deployment according to the software version file.
[0064] After the chassis board determines the target software deployment server, it can send a software version download request to the target software deployment server according to the download instruction information sent by the target software deployment server, and then receive the software version file of the target software group sent by the target software deployment server. Figure 1 The target software deployment server identified by the chassis board is the first software deployment server. The software version file indicates the software processes corresponding to the target software group and the storage location of each software process in the cluster system. Therefore, after the chassis board obtains the software version file of the target software group, it can download the corresponding software process from the corresponding location according to the instructions in the software version file, complete the deployment and startup of the software process, and thus realize the deployment and startup of the target software group.
[0065] In some examples of this embodiment, each chassis in a cluster system has a main control board with a software deployment server that can provide services deployed on it. Figure 2 The star cluster system 2 shown has a total of six chassis. In each of the six chassis, at least one main control board is deployed with a software deployment server that can provide services. Therefore, in the star cluster system 2, there are at least six software deployment servers that can provide services simultaneously. Figure 3 The star cluster system 3 shown has three chassis in total. In the star cluster system 3, there are at least three software deployment servers that can provide services simultaneously. In other examples of this embodiment, for the star cluster system, it is required that each main control board in the central switch chassis is deployed with a software deployment server that can provide services. Figure 2 For example, in the star cluster system 2, there are two central switch boxes in the star cluster system 2, and each central switch box has two main control boards. Figure 2 In the star cluster system 2 shown, there should be at least four software deployment servers that can provide services simultaneously.
[0066] In some examples of this embodiment, each main control board in the cluster system is deployed with a software deployment server that can provide services. In this case, there are as many software deployment servers that can provide services to the outside world as there are main control boards in the cluster system. The main control board of the cluster system can directly obtain the software version file of the target software group from the software deployment server where the main control board is located, while the non-main control board can obtain the software version file of the target software group from the software deployment server in the local chassis. In this way, when the cluster system is restarted due to shutdown or upgrade, the pressure on a single main control board can be greatly reduced, the efficiency of each chassis board in obtaining software version files can be improved, and each main control board can complete the synchronization of forwarding table item data more quickly, thereby allowing the entire cluster system to reach a serviceable state in a shorter time, enhancing the user's business experience.
[0067] Example 2:
[0068] In order to make the advantages and details of the cluster system software deployment method provided by the embodiment of the present invention more clear to those skilled in the art, this embodiment will further explain the cluster system software deployment method based on the above embodiment:
[0069] It's understandable that a software deployment server is actually a software process, which is also assigned to a software group based on its functionality. Deploying a software deployment server on a main control board (SBC) essentially involves creating a software group to which the software deployment server will be deployed. Typically, during cluster system startup, the SBCs within the cluster negotiate for a period of time before determining which SBCs will create the software group to which the software deployment server belongs, as well as the active / standby status of each SBC. After the software group to which the software deployment server belongs is created on a SBC, the corresponding process for the software deployment server is started within that software group, initiating the software deployment service.
[0070] In the related art, the software group to which the software deployment server belongs (for the sake of ease of introduction, the "software group to which the software deployment server belongs" is referred to as the "deployment software group") includes not only the software deployment server process, but also other processes. Therefore, when each main control board negotiates the creation of the deployment software group and the master-slave status attributes, the negotiation content is relatively large, and the negotiation time will naturally be relatively long. However, in this embodiment, the deployment software group only includes the process corresponding to the software deployment server, and for other processes in the original deployment software group, a separate software group is set. In this case, when the cluster system is restarted, when each main control board negotiates the deployment software group, it can only negotiate the content related to the software deployment server, thereby completing the negotiation on the deployment software group and the deployment of the software deployment server as soon as possible, so that the software deployment server can be put into use as soon as possible.
[0071] It should be understood that the deployment software group only includes the process corresponding to the software deployment server. This is merely an optional implementation in this embodiment and is not necessary. In other examples, the deployment software group can be the same as the deployment software group in the related technology, or it can include other processes in addition to the software deployment server process.
[0072] In some examples of this embodiment, when each main control board negotiates for a deployment software group, it will negotiate a primary deployment software group and at least one backup deployment software group. It is worth noting that although in related art, each main control board also negotiates a primary deployment software group and a backup deployment software group for a deployment software group, in related art, the software deployment servers in the backup deployment software group cannot provide external services while the software deployment servers in the primary deployment software group are normally providing services. In this embodiment, however, the software deployment servers in the primary deployment software group and the software deployment servers in the backup deployment software group can provide external services simultaneously.
[0073] It is understandable that when the main control boards negotiate for the deployment software group, they can negotiate based on some rules. For example, in some examples, the main control boards pre-agree to elect the main control board with the smallest chassis number and the smallest slot number to deploy the main deployment software group. In this case, each main control board can send its own chassis number and slot number in the cluster system in a broadcast manner, and then compare the chassis number and slot number in the received broadcast message with its own chassis number and slot number, and decide whether it is eligible to continue the election based on the comparison result. For example, in other examples, the main control boards in the star cluster system agree that the main deployment software group should be deployed on the main control board of the central switch chassis.
[0074] The following combination Figure 5 The following example describes the negotiation process between the control boards for deploying software groups:
[0075] S502: The main control board determines whether the chassis is a central switch chassis.
[0076] If the judgment result is yes, execute S504, otherwise execute S514.
[0077] In this embodiment, the cluster system is a star-shaped cluster system, and each main control board in the star-shaped cluster system stipulates that only the main control board in the central switch box can deploy the main deployment software group.
[0078] S504: The main control board publishes its own election information in the cluster system through broadcast messages.
[0079] In this embodiment, the election information includes the chassis ID and slot ID of the MPU, as well as the software version information of the software running on the MPU. Within a star-shaped cluster system, the MPUs agree that only the MPU with the largest chassis ID and slot ID can deploy the primary deployment software group. Furthermore, if a MPU's software version information is not up to date, it cannot create a deployment software group.
[0080] S506: The main control board receives election information sent by other main control boards.
[0081] S508: The main control board determines whether its chassis number is smaller than the chassis number in the received election information.
[0082] If the judgment result is yes, it means that the main control board is definitely not the main control board with the largest chassis number in the cluster system, so the main control board executes S514; otherwise, the main control board executes S510.
[0083] S510: The main control board determines whether its slot number is smaller than the slot number in the received election information.
[0084] If the judgment result is yes, it means that the main control board is definitely not the main control board with the largest slot number in the cluster system, and the main control board executes S514; otherwise, the main control board executes S512.
[0085] S512: The main control board determines whether its own software version information is smaller than the software version information in the received election information.
[0086] If the judgment result is yes, it means that the main control board is not qualified to create a deployment software group, let alone create a primary deployment software group, so the main control board executes S514 to withdraw from the election. Otherwise, the main control board executes S516.
[0087] It is understandable that the timing of the three judgment processes in S508-S512 can be interchanged arbitrarily and is not limited to Figure 5 This kind of.
[0088] S514: The main control board exits the creation election of the primary deployment software group.
[0089] S516: The main control board determines whether other election information has been received.
[0090] If the judgment result is yes, then continue to S508. Otherwise, it means that the main control board has compared with all other main control boards in the cluster system and the result is that its own main control board has the largest chassis number, the largest slot number and runs the latest software version.
[0091] S518: The main control board determines itself as the main control board for deploying the master deployment software group and notifies each chassis card in the cluster system.
[0092] After a main control board determines that it is the main control board that can create the master deployment software group, it can notify each chassis card in the cluster system that it has become the main control board of the master deployment software group.
[0093] In some other examples of this embodiment, after the main deployment software group is created, the software deployment server in the software group will notify each main control board in the cluster system of the additional software groups that need to be deployed.
[0094] In some examples of this embodiment, although the software deployment servers in the backup deployment software group and the primary deployment software group can both provide services, there are slight functional differences between the software deployment servers in the primary deployment software group and the backup deployment software group. For example, in some examples of this embodiment, when an administrator needs to upgrade a software deployment server, he or she can only upgrade the software deployment servers in the primary deployment software group. For other software deployment servers in the cluster system, the software deployment servers in the primary deployment software group can synchronously upgrade them after their own upgrades are completed. See Figure 6 An optional flowchart of a software deployment server upgrade process in a cluster system is shown:
[0095] S602: The main control board receives a software upgrade instruction from the software deployment server on the chassis board.
[0096] In this embodiment, the software upgrade instruction received by the main control board can be manually issued by the administrator, and the software upgrade instruction is used to instruct the software deployment server deployed on the main control board to upgrade. Figure 6 The control board in the middle process should be the one on which the deployed software group is in the active state.
[0097] S604: The main control board upgrades the software deployment server on the local chassis board according to the software upgrade instruction.
[0098] After receiving the software upgrade command, the main control board can upgrade the software deployment server on the local card. In the software upgrade command, the administrator will indicate to the main control board the first mapping relationship between each chassis card and the target software group after the upgrade, the second mapping relationship between each software group and the software process, and the third mapping relationship between each software process and the storage location.
[0099] S606: The main control board synchronizes the upgrade information with the main control boards of other software deployment servers in the cluster system.
[0100] After the main control board completes the upgrade of the software deployment server on its own board, it can synchronize the upgrade information to the main control boards where other software deployment servers are located in the cluster system. It can be understood that the upgrade information synchronized by the main control board to other main control boards may include all the information in the software upgrade instruction, or may only include the second mapping relationship and the third mapping relationship in the software upgrade instruction, because only the software deployment server in the active deployment software group needs to indicate the software group it needs to deploy to other main control boards according to the first mapping relationship, and the software deployment servers in each backup software group can generate download indication information based only on the second mapping relationship and the third mapping relationship after receiving the software version request of each chassis board. Therefore, these main control boards that deploy the backup deployment software groups may not need the first mapping relationship.
[0101] Of course, those skilled in the art will appreciate that, when the number of software deployment servers in a cluster system is small, administrators can also manually upgrade these software deployment servers separately, without relying on the software deployment servers in the active deployment software group to synchronously upgrade the software deployment servers in the standby deployment software group. However, relatively speaking, Figure 6 The upgrade solution shown in can significantly reduce the upgrade burden on administrators.
[0102] The cluster system software deployment method provided in this embodiment, on the one hand, improves the efficiency of each chassis board in obtaining software version files by setting up two or more software deployment servers that provide services simultaneously within the cluster system, reducing the burden on individual main control boards, allowing the main control board that deploys the software deployment server to quickly synchronize forwarding table entry data with the chassis board that started first, thereby enabling the entire cluster system to complete startup as quickly as possible and reach a serviceable state. On the other hand, the cluster system separately sets the process corresponding to the software deployment server within a deployment software group, reducing the negotiation content when each main control board negotiates with the deployment software group, accelerating the deployment of the software deployment server, and further shortening the time required for the cluster system to reach a serviceable state from the initial startup.
[0103] Moreover, when it is necessary to upgrade the software deployment servers in the cluster system, the administrator can only send software upgrade instructions to the software deployment servers in the main deployment software group to complete the upgrade of the software deployment servers in the main deployment software group, while the upgrade of other software deployment servers in the cluster system can be automatically completed by the software deployment servers in the main deployment software group, which reduces the burden on administrators.
[0104] Example 3:
[0105] The present embodiment provides a storage medium comprising a volatile or non-volatile, removable or non-removable medium implemented in any method or technology for storing information (such as computer-readable instructions, data structures, computer program modules, or other data). Computer-readable storage media include, but are not limited to, RAM (Random Access Memory), ROM (Read-Only Memory), EEPROM (Electrically Erasable Programmable Read Only Memory), flash memory or other memory technology, CD-ROM (Compact Disc Read-Only Memory), digital versatile disk (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store the desired information and can be accessed by a computer.
[0106] This embodiment also provides two computer programs (or computer software), namely a first cluster system software deployment program and a second cluster system software deployment program. The first cluster system software deployment program can be distributed on the aforementioned storage medium and executed by a computing device to implement at least one step of the cluster system software deployment method on the chassis board (hereinafter referred to as the "requesting-end chassis board") side that requests the software version file in the aforementioned embodiments; the second cluster system software deployment program can be distributed on the aforementioned storage medium and executed by a computing device to implement at least one step of the cluster system software deployment method on the main control board (hereinafter referred to as the "responding-end main control board") side that is deployed with the software deployment server in the aforementioned embodiments. In addition, in some cases, at least one of the steps shown or described can be executed in an order different from that described in the aforementioned embodiments.
[0107] This embodiment further provides a computer program product, including a computer readable device, on which the computer program as shown above is stored. In this embodiment, the computer readable device may include the computer readable storage medium as shown above.
[0108] In some examples of this embodiment, the computer-readable device is a chassis board, which can be a main control board, a forwarding board, or an auxiliary management board in a cluster system chassis. In this embodiment, software deployment servers are deployed on at least two main control boards in the cluster system, and at least two software deployment servers in the cluster system can provide services simultaneously. Therefore, software deployment servers that provide services are deployed on at least two main control boards in the cluster system. Figure 7A schematic diagram of the hardware structure of a chassis board is shown: the chassis board 70 includes a processor 71, a memory 72, and a communication bus 73, wherein the communication bus 73 is used to connect and communicate between the processor 71 and the memory 72. In some examples of this embodiment, the memory 72 stores at least one of the first cluster system software deployment program and the second cluster system software deployment program. For example, in some examples, the chassis board 70 is a requesting-side chassis board. The processor 71 can execute the first cluster system software deployment program stored in the memory 72 to implement the steps of the cluster system software deployment method on the requesting-side chassis board side described in the aforementioned embodiments:
[0109] Processor 71 sends a software version request containing software group information within the cluster system to which chassis board 70 belongs. This software group information indicates the target software group to be deployed on chassis board 70. Subsequently, processor 71 receives download instruction messages from at least two software deployment servers in the cluster system in response to the software version request. These download instruction messages indicate how to obtain the software version file for the target software group from the corresponding software deployment servers. Processor 71 then selects a software deployment server as the target software deployment server for chassis board 70 based on each download instruction message, downloads the software version file from the target software deployment server, and performs software deployment based on the software version file.
[0110] In some examples of this embodiment, the download indication message includes the deployment location information of the software deployment server, which is used to indicate the deployment location of the software deployment server that sends the download indication message; when the processor 71 selects a software deployment server as the target software deployment server of the chassis board 70 according to each download indication message, the deployment location information of each software deployment server can be obtained from each download indication message, and then the processor 71 selects the target software deployment server according to the deployment location information of each software deployment server.
[0111] In some examples of this embodiment, the deployment location information includes chassis identification information of the chassis where the software deployment server is located. When the processor 71 selects a target software deployment server according to the location information of each software deployment server, it can preferentially select a software deployment server in the same chassis as the chassis board 70 as the target software deployment server according to the chassis identification information corresponding to each software deployment server.
[0112] In some other examples of this embodiment, the deployment location information includes the slot identification information of the board where the software deployment server is located. When the processor 71 selects the target software deployment server based on the location information of each software deployment server, it can prioritize the software deployment server on the same board as the chassis board 70 as the target software deployment server based on the slot identification information corresponding to each software deployment server.
[0113] Optionally, a software deployment server is deployed on each main control board in the cluster system, and the software deployment server on each main control board can provide services simultaneously.
[0114] In some examples of this embodiment, the chassis board 70 is a responding end main control board, and its processor 71 can execute the second cluster system software deployment program stored in the memory 72 to implement the steps of the responding end main control board side cluster system software deployment method in the aforementioned embodiments:
[0115] Processor 71 receives a software version request containing software group information from a requesting chassis board in a cluster system. The software group information indicates the target software group that the requesting chassis board needs to deploy. Processor 71 then sends a download instruction message to the requesting chassis board based on the software version request. The download instruction message instructs the requesting chassis board on how to obtain the software version file for the target software group from the software deployment server on chassis board 70. If processor 71 receives a download request from the requesting chassis board, processor 71 controls the software deployment server on chassis board 70 to send the software version file for the target software group to the requesting chassis board, so that the requesting chassis board can perform software deployment based on the software version file.
[0116] In some examples of this embodiment, the download indication message includes deployment location information, and the deployment location information includes chassis identification information and / or slot identification information corresponding to the chassis board 70. The deployment location information is used by the requesting end chassis board to determine whether to download the software version file of the target software group from the software deployment server on the chassis board 70.
[0117] If the deployment software group to which the process corresponding to the software deployment server on chassis board 70 belongs is in the active state, processor 71 may also receive a software upgrade instruction for the software deployment server on chassis board 70, and then upgrade the software deployment server on chassis board 70 according to the software upgrade instruction. After upgrading the software deployment server on chassis board 70, processor 71 synchronizes the upgrade information to the main control board where other software deployment servers in the cluster system are located, so that other software deployment servers in the cluster system can be upgraded.
[0118] In some examples of this embodiment, the process corresponding to the software deployment server belongs to a deployment software group, and the deployment software group only includes the process corresponding to the software deployment server; before the processor 71 receives the software version request containing software group information sent by the board in the cluster system, it can also negotiate with each main control board in the cluster system to determine a main control board for deploying the main deployment software group and at least one main control board for deploying the backup deployment software group. The software deployment server in the main deployment software group and the software deployment server in the backup deployment software group can provide services at the same time.
[0119] In addition, this embodiment further provides a cluster system comprising multiple chassis boards. These multiple chassis boards can be divided into main control boards and forwarding boards. In some examples of this embodiment, these multiple chassis boards also include some service management boards. Each chassis board can be directly or indirectly connected to each other. Indirect communication refers to two chassis boards being connected to each other through other chassis boards.
[0120] In this embodiment, the processor of each chassis board in the cluster system is capable of executing the first cluster system software deployment program to implement the steps of the cluster system software deployment method on the requesting-end chassis board side in the aforementioned embodiments. In addition, at least two main control boards in the cluster system are deployed with software deployment servers that can provide services simultaneously, that is, there are at least two responding-end main control boards in the cluster system, and the processor of the responding-end main control board is capable of executing the second cluster system software deployment program to implement the steps of the cluster system software deployment method on the responding-end main control board side in the aforementioned embodiments. In some examples of this embodiment, a software deployment server is deployed on each main control board in the cluster system, and the software deployment server on each main control board can provide services simultaneously.
[0121] The chassis board, cluster system, and storage medium provided in this embodiment have at least two software deployment servers that can provide services simultaneously in the cluster system, and each software deployment server is deployed on a different main control board of the cluster system. Therefore, during the startup phase of the cluster system, each chassis board in the cluster system can select one of these software deployment servers to obtain the software version file corresponding to the target software group. This avoids the problem that all chassis boards in the cluster system obtain software version files from one software deployment server, which puts a lot of pressure on the software deployment server and causes the software version requests of each chassis board to remain unanswered for a long time. By setting at least two software deployment servers that can provide services simultaneously in the cluster system, the request objects of each chassis board are dispersed, which not only reduces the pressure on a single main control board, but more importantly, improves the efficiency of each chassis board in obtaining software version files, thereby shortening the startup time of the cluster system. On the other hand, since there is more than one main control board deployed to provide service software deployment servers, one main control board does not need to provide the corresponding software version file to all chassis boards in the cluster system, so the main control board can have more time to synchronize the forwarding table entry data to the chassis boards that are started first, further shortening the time it takes for the cluster system to reach a serviceable state.
[0122] It can be seen that those skilled in the art should understand that all or some of the steps, systems, and functional modules / units in the methods disclosed above can be implemented as software (which can be implemented using computer program code executable by a computing device), firmware, hardware, and appropriate combinations thereof. In hardware implementations, the division between the functional modules / units mentioned in the above description does not necessarily correspond to the division of physical components; for example, a physical component can have multiple functions, or a function or step can be performed by several physical components in cooperation. Some or all physical components can be implemented as software executed by a processor, such as a central processing unit, a digital signal processor, or a microprocessor, or as hardware, or as an integrated circuit, such as an application-specific integrated circuit.
[0123] In addition, it is well known to those skilled in the art that communication media generally contain computer-readable instructions, data structures, computer program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism, and may include any information delivery media. Therefore, the present invention is not limited to any specific hardware and software combination.
[0124] The above content is a further detailed description of the embodiments of the present invention in conjunction with specific implementation methods, and the specific implementation of the present invention cannot be considered to be limited to these descriptions. For those skilled in the art of the present invention, without departing from the concept of the present invention, several simple deductions or substitutions can be made, which should be considered to fall within the scope of protection of the present invention.
Claims
1. A cluster system software deployment method, comprising: The chassis board sends a software version request containing software group information within the cluster system to which it belongs. The software group information is used to indicate the target software group that the chassis board needs to deploy. The cluster system has at least two software deployment servers that can provide services simultaneously, and different software deployment servers are respectively deployed on different main control boards of the cluster system. The chassis board receives a download instruction message sent by at least two software deployment servers in the cluster system according to the software version request, wherein the download instruction message is used to instruct how to obtain the software version file of the target software group from the corresponding software deployment server; The chassis board selects a software deployment server as a target software deployment server according to the download instruction message; wherein the chassis board selects the target software deployment server according to the deployment location of the software deployment server; The chassis board downloads the software version file from the target software deployment server and performs software deployment according to the software version file.
2. The cluster system software deployment method according to claim 1, wherein: The download instruction message includes deployment location information, and the deployment location information is used to indicate the deployment location of the software deployment server that sends the download instruction message; The chassis board selects a software deployment server as a target software deployment server according to the download instruction message, including: The chassis board obtains the deployment location information corresponding to the software deployment server from the received download instruction message; The chassis board selects a target software deployment server according to the acquired deployment location information.
3. The cluster system software deployment method according to claim 2, wherein: The deployment location information includes chassis identification information of the chassis where the software deployment server is located, and the chassis board selects the target software deployment server according to the obtained deployment location information, comprising: the chassis board preferentially selects a software deployment server in the same chassis as the chassis board as the target software deployment server according to the obtained chassis identification information corresponding to the software deployment server; or, The deployment location information includes the slot identification information of the board where the software deployment server is located. The chassis board selects the target software deployment server based on the obtained deployment location information of the software deployment server, including: the chassis board preferentially selects the software deployment server on the same board as itself as the target software deployment server based on the obtained slot identification information corresponding to the software deployment server.
4. The cluster system software deployment method according to any one of claims 1 to 3, characterized in that: A software deployment server is deployed on each main control board in the cluster system, and the software deployment server on each main control board can provide services simultaneously.
5. A cluster system software deployment method, comprising: Different main control boards receive software version requests containing software group information sent by chassis boards in the cluster system, where the software group information is used to indicate a target software group that the chassis boards need to deploy; There are at least two software deployment servers in the cluster system that can provide services simultaneously, and different software deployment servers are respectively deployed on different main control boards of the cluster system; The different main control boards send a download instruction message to the chassis board according to the software version request, wherein the download instruction message is used to instruct the chassis board how to obtain the software version file of the target software group from the corresponding software deployment server; the download instruction message is also used by the chassis board to select a software deployment server as a target software deployment server according to the download instruction message; wherein, the chassis board selects the target software deployment server according to the deployment location of the software deployment server, and downloads the software version file from the target software deployment server; After receiving the download request from the chassis board, the main control board where the target software deployment server is located controls the target software deployment server to send the software version file of the target software group to the chassis board so that the chassis board can perform software deployment according to the software version file.
6. The cluster system software deployment method according to claim 5, wherein: The download indication message includes deployment location information, which includes chassis identification information and / or slot identification information of the main control board. The deployment location information is used to enable the chassis board to determine whether to download the software version file of the target software group from the software deployment server on the main control board.
7. The cluster system software deployment method according to claim 5 or 6, characterized in that: A software deployment server is deployed on each main control board in the cluster system, and the software deployment server on each main control board can provide services simultaneously.
8. The cluster system software deployment method according to claim 5 or 6, characterized in that: The process corresponding to the software deployment server belongs to a deployment software group. If the deployment software group on the main control board is in the active state, the cluster system software deployment method further includes: The main control board receives a software upgrade instruction for the software deployment server; The main control board upgrades the software deployment server according to the software upgrade instruction; The main control board synchronizes upgrade information to the main control boards where other software deployment servers in the cluster system are located, so that the other software deployment servers in the cluster system can be upgraded.
9. The cluster system software deployment method according to claim 5 or 6, characterized in that: The process corresponding to the software deployment server belongs to a deployment software group, and the deployment software group only includes the process corresponding to the software deployment server; Before the main control board receives the software version request containing software group information sent by the chassis board in the cluster system, the method further includes: The main control board negotiates with other main control boards in the cluster system to determine a main control board for deploying the primary deployment software group and at least one main control board for deploying the backup deployment software group. The software deployment servers in the primary deployment software group and the software deployment servers in the backup deployment software group can provide services simultaneously.
10. A chassis board, comprising a processor, a memory and a communication bus; The communication bus is used to realize the connection and communication between the processor and the memory; The processor is used to execute a first cluster system software deployment program stored in the memory to implement the steps of the cluster system software deployment method as described in any one of claims 1 to 4; or, the processor is used to execute a second cluster system software deployment program stored in the memory to implement the steps of the cluster system software deployment method as described in any one of claims 5 to 9.
11. A cluster system, characterized in that: comprising a plurality of chassis boards, the chassis boards being communicatively connected to each other, and the chassis boards being the chassis boards in claim 10 in which the processor is capable of executing the first cluster system software deployment program; Some of the multiple chassis boards are main control boards, and at least two main control boards in the cluster system are deployed with software deployment servers that can provide services simultaneously. The main control board deployed with the software deployment server is the chassis board in claim 10 whose processor can execute the second cluster system software deployment program.
12. A storage medium, characterized in that: The storage medium stores at least one of a first cluster system software deployment program and a second cluster system software deployment program. The first cluster system software deployment program can be executed by one or more processors to implement the steps of the cluster system software deployment method as described in any one of claims 1 to 4; the second cluster system software deployment program can be executed by one or more processors to implement the steps of the cluster system software deployment method as described in any one of claims 5 to 9.
Citation Information
Patent Citations
Method for realizing configuration of main and auxiliary board cards as well as board cards
CN101938417A
Software updating method, system and device
CN104378391A
Method and device for software version upgrading
CN105024839A