WO2021003677A1 - Service upgrade method and apparatus in distributed system, and distributed system - Google Patents

Service upgrade method and apparatus in distributed system, and distributed system Download PDF

Info

Publication number
WO2021003677A1
WO2021003677A1 PCT/CN2019/095312 CN2019095312W WO2021003677A1 WO 2021003677 A1 WO2021003677 A1 WO 2021003677A1 CN 2019095312 W CN2019095312 W CN 2019095312W WO 2021003677 A1 WO2021003677 A1 WO 2021003677A1
Authority
WO
WIPO (PCT)
Prior art keywords
upgraded
nodes
upgrade
node
batch
Prior art date
Application number
PCT/CN2019/095312
Other languages
French (fr)
Chinese (zh)
Inventor
杨阳
董如良
余思
张进毅
龚骏辉
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to PCT/CN2019/095312 priority Critical patent/WO2021003677A1/en
Priority to CN201980030054.3A priority patent/CN112470119B/en
Publication of WO2021003677A1 publication Critical patent/WO2021003677A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates

Definitions

  • the embodiments of the present invention relate to the field of computer technology, and in particular to a method, device and distributed system for service upgrade in a distributed system.
  • the system software of the distributed system includes multiple services, which are deployed on multiple nodes of the distributed system.
  • each service of the system software can be deployed on one or more nodes.
  • the system software includes service 1, service 2, service 3, and service 4.
  • Service 1 is deployed on node 0 to node 2
  • service 2 is deployed on node 1
  • service 3 is deployed on On node 3 to node 6
  • service 4 is deployed on node 7 to node 9.
  • the method for upgrading the system software in a distributed system is: all nodes where the system software is deployed are arranged in order of memory quota (memory quota is used to limit the amount of data storage on the node) in descending order Sorting; migrate all data on the node with the largest memory quota in the sort to other nodes, and use the node with the largest memory quota in the sort as the current node to be upgraded; upgrade the business on the current node to be upgraded, and after the upgrade is completed, Migrate the data on the node whose ranking is next to the current node to be upgraded to the current node to be upgraded, and the node whose ranking is next to the current node to be upgraded as the current node to be upgraded, and so on, until the last node in the ranking The business on the company has been upgraded.
  • memory quota is used to limit the amount of data storage on the node
  • the above methods can smoothly realize business upgrades, and can also ensure data integrity without interrupting external services. However, it is necessary to upgrade the nodes on which the system software is deployed one by one, resulting in low upgrade efficiency.
  • This application provides a service upgrade method, device and distributed system in a distributed system, which solves the problem of low upgrade efficiency in a distributed system that can only upgrade the service in one node at the same time.
  • this application provides a service upgrade method in a distributed system, which is applied to a management node used to upgrade multiple services to be upgraded deployed in multiple nodes to be upgraded in a distributed system.
  • the upgrade method Including: the management node obtains the upgrade constraint relationship between multiple nodes to be upgraded, and determines the parallel upgrade among the multiple nodes to be upgraded based on the upgrade constraint relationship and the minimum number of online nodes for each of the multiple services to be upgraded And upgrade multiple nodes to be upgraded according to the determined nodes to be upgraded in parallel.
  • the aforementioned upgrade constraint relationship is determined by the upgrade sequence of multiple services to be upgraded, and the minimum number of online nodes is the minimum number of nodes that provide the same service to be upgraded at the same time.
  • the management node determines the nodes to be upgraded for parallel upgrade, and can upgrade the nodes to be upgraded in parallel in one batch, which effectively reduces the time for upgrading multiple nodes to be upgraded and improves the upgrade efficiency.
  • the above-mentioned "management node determines the node to be upgraded in parallel among the multiple nodes to be upgraded based on the upgrade constraint relationship and the minimum number of online nodes for each of the multiple services to be upgraded” Including: The management node determines the maximum number of parallel upgrade nodes allowed for each service to be upgraded according to the minimum number of online nodes for each service to be upgraded and the service to be upgraded deployed in each of the multiple nodes to be upgraded. Subsequently, the management node determines the node to be upgraded among the multiple nodes to be upgraded according to the maximum number of nodes to be upgraded in parallel and the upgrade constraint relationship allowed for each service to be upgraded.
  • the maximum number of nodes for parallel upgrade is the maximum number of nodes that are upgraded and deployed with the same service to be upgraded at the same time.
  • the management node In order to ensure the continuity of the service to be upgraded deployed in each node to be upgraded, the management node needs to be based on the minimum number of online nodes for each service to be upgraded and the service to be upgraded deployed in each of the multiple nodes to be upgraded , Determine the maximum number of nodes to be upgraded in parallel for each service to be upgraded, so that when determining the nodes to be upgraded in parallel, for each service to be upgraded, the number of nodes to be upgraded in parallel will not exceed each The maximum number of parallel nodes allowed for each service to be upgraded.
  • the above-mentioned upgrade constraint relationship is represented by a directed graph, so that the “management node” determines the parallel among the multiple nodes to be upgraded according to the maximum number of nodes to be upgraded in parallel and the upgrade constraint relationship allowed by each service to be upgraded.
  • the method of "upgrading nodes to be upgraded” includes: the management node obtains the in-degree of each node to be upgraded in the directed graph, and performs a first operation, which is: determining the in-degree to be upgraded in the directed graph is zero Nodes, and according to the maximum number of parallel upgrade nodes allowed for each service to be upgraded deployed in the nodes to be upgraded with zero indegree, determine the current batch of nodes to be upgraded from the nodes to be upgraded with zero indegree, and from Remove the current batch of nodes to be upgraded in the directed graph, and update the in-degree of the remaining nodes to be upgraded in the directed graph; after that, the management node determines whether there is a node to be upgraded with zero in-degree among the remaining nodes to be upgraded; if If it exists, return to perform the first operation; if it does not exist, get multiple batches of upgrading multiple nodes to be upgraded and the nodes to be upgraded included in each batch.
  • a first operation which is: determining the in-degree to be upgraded in the directed graph is
  • the above method of "the management node upgrades the multiple nodes to be upgraded according to the determined nodes to be upgraded in parallel” includes: the management node determines the multiple batches according to the determined batches and the batches included in each batch The upgrade node upgrades multiple nodes to be upgraded.
  • the management node uses the nodes in each node combination as the nodes to be upgraded in the current batch to obtain At least two upgrade options.
  • the upgrade scheme is to upgrade multiple batches of nodes to be upgraded, and the nodes to be upgraded included in each batch.
  • Each of the at least two types of node combinations includes at least one node to be upgraded.
  • the management node selects one upgrade plan from at least two upgrade plans, and upgrades multiple nodes to be upgraded according to the selected upgrade plan.
  • the management node can determine to upgrade one or some nodes to be upgraded in the batch, or determine whether to upgrade in the batch Upgrade other nodes to be upgraded, so that different node combinations appear. For each node combination, the management node can determine the batch to upgrade all nodes to be upgraded, that is, generate an upgrade plan. In this way, the management node will eventually generate multiple upgrade solutions.
  • the above method of “the management node upgrades the multiple nodes to be upgraded according to multiple batches and the nodes to be upgraded included in each batch” includes: the management node performs a second operation, and the first The second operation includes: determining the target node corresponding to the node to be upgraded in the current upgrade batch, and sending an upgrade instruction to the node to be upgraded in the current upgrade batch.
  • the upgrade instruction includes the identifier of the target node and is used to indicate that the current upgrade batch
  • the business to be upgraded in the node to be upgraded is migrated to the target node, and the node to be upgraded in the current upgrade batch is upgraded; after that, the management node determines whether the current upgrade batch belongs to the last batch of multiple batches; if the current upgrade If the batch does not belong to the last batch to be upgraded among multiple batches, when it is determined that the nodes to be upgraded in the current upgrade batch have completed the upgrade, the next batch of the current upgrade batch will be regarded as the current upgrade batch and return to execution The second operation.
  • the management node can determine the current upgrade batch according to the determined batch and the reliability of the data of the service to be upgraded The target node corresponding to the node to be upgraded.
  • the above method of "the management node determining the target node corresponding to the node to be upgraded in the current upgrade batch" includes: the management node determines whether the nodes to be upgraded included in the first batch can guarantee the current upgrade batch The reliability of the data of the business to be upgraded in the node to be upgraded.
  • the first batch here is the batch that is the last to be upgraded among the batches other than the current upgrade batch; if it can be guaranteed ,
  • the node to be upgraded included in the first batch is determined to be the target node corresponding to the node to be upgraded in the current upgrade batch; if none of the guarantees are available, then other batches except the first batch and the current upgrade batch are determined
  • whether the nodes to be upgraded included in the last batch to be upgraded can guarantee the reliability of the data of the services to be upgraded in the nodes to be upgraded in the current batch of upgrades; this is repeated until the target node is determined.
  • the above upgrade constraint relationship is represented by a directed graph.
  • the upgrade method provided in this application further includes: the management node determines whether there is a deadlock interconnection node to be upgraded in the upgrade constraint relationship, and the deadlock interconnection
  • the node to be upgraded is a node to be upgraded that forms a ring in the directed graph. Due to the formation of a ring, the deadlocked interconnected nodes to be upgraded cannot be upgraded.
  • the above method of "the management node determines the nodes to be upgraded in parallel among the multiple nodes to be upgraded based on the upgrade constraint relationship and the minimum number of online nodes for each of the multiple services to be upgraded” includes: When there are no deadlocked interconnected nodes to be upgraded in the upgrade constraint relationship between the nodes to be upgraded, the management node determines multiple nodes to be upgraded according to the upgrade constraint relationship and the minimum number of online nodes for each of the multiple services to be upgraded. The node to be upgraded that is upgraded in parallel among the upgraded nodes.
  • the management node when there are deadlocked interconnected nodes to be upgraded in the upgrade constraint relationship, the management node sends an alarm message to inform the administrator/operation and maintenance personnel that there are deadlocked interconnected nodes to be upgraded and cannot be performed upgrade.
  • the alarm information is used to inform the administrators/operations and maintenance personnel that there are deadlocked interconnected nodes to be upgraded and cannot be upgraded, so that the administrators/operations and maintenance personnel can adjust or reconfigure the upgrade constraints on the deadlocked interconnected nodes to be upgraded .
  • the deadlocked interconnected nodes to be upgraded are the nodes to be upgraded that form a ring in the directed graph. Due to the formation of a ring, the deadlocked interconnected nodes to be upgraded cannot be upgraded. In order to ensure the smooth upgrade of multiple nodes to be upgraded, the management node needs to ensure that there are no deadlocked interconnected nodes to be upgraded in the upgrade constraint relationship.
  • the above method of "the management node judging whether there are deadlocked interconnected nodes to be upgraded in the upgrade constraint relationship" includes: the management node obtains the in-degree of each node to be upgraded in the directed graph, and executes The third operation, the third operation is: determine the node to be upgraded with zero indegree in the directed graph, remove the node to be upgraded with zero indegree from the directed graph, and update the remaining nodes to be upgraded in the directed graph In degree; after that, the management node determines whether there is a node to be upgraded with zero in degree among the remaining nodes to be upgraded; if it exists, it returns to perform the third operation; if it does not exist, it determines that there is a deadlock interconnection in the upgrade constraint relationship The node to be upgraded.
  • the node to be upgraded whose entry degree is zero in the directed graph can be upgraded and is not restricted by other nodes during the upgrade. Therefore, if the in-degree of a certain/certain node to be upgraded is zero, it means that the node to be upgraded does not form a ring, and it is not a deadlocked interconnected node to be upgraded. If there is no node to be upgraded with a zero entry degree in the directed graph, and the number of nodes to be upgraded is not zero, it means that these nodes to be upgraded form a ring and cannot be upgraded, which means that these nodes to be upgraded are dead. Lock the interconnected nodes to be upgraded. Based on this, the management node determines whether there are deadlocked interconnected nodes to be upgraded in the upgrade constraint relationship.
  • this application provides a management node for executing each module of the first aspect or any one of the possible design methods in the first aspect.
  • the present application provides an upgrade device.
  • the upgrade device includes a memory and a processor.
  • the memory is used to store computer execution instructions.
  • the processor executes the computer execution instructions in the memory to use the
  • the hardware resources in the upgrade device execute the operation steps of the first aspect or any one of the possible designs in the first aspect.
  • the device may specifically be a management node or a chip.
  • the present application also provides a computer-readable storage medium, including instructions, which when run on a computer, cause the computer to execute any of the above-mentioned first aspect or any of the possible designs of the first aspect The steps of a possible method.
  • this application also provides a computer program product, including instructions, which when run on a computer, cause the computer to execute any of the above-mentioned first aspect or any of the possible designs of the first aspect Possible method steps.
  • any of the management nodes, upgrade devices, computer-readable storage media, or computer program products provided above are all used to execute the corresponding methods provided above. Therefore, the beneficial effects that can be achieved can be referred to The beneficial effects of the corresponding method will not be repeated here.
  • Figure 1 is a schematic diagram of service deployment in a distributed system in an embodiment of the present invention
  • Figure 2 is a structural schematic diagram 1 of a distributed system in an embodiment of the present invention.
  • FIG. 3 is a schematic diagram of the hardware structure of a management node in an embodiment of the present invention.
  • FIG. 4 is a schematic flowchart of a service upgrade method in a distributed system in an embodiment of the present invention.
  • FIG. 5 is a schematic diagram of a flow of generating a directed graph in an embodiment of the present invention.
  • FIG. 6 is a schematic diagram of a directed graph of nodes to be upgraded with deadlock interconnection in an embodiment of the present invention
  • FIG. 7 is a schematic diagram of a process of determining the maximum number of nodes that are allowed to be upgraded in parallel in an embodiment of the present invention.
  • FIG. 8 is a schematic diagram of generating a first scheme in an embodiment of the present invention.
  • FIG. 9 is a schematic diagram of generating a second solution in an embodiment of the present invention.
  • Fig. 10 is a schematic structural diagram of a management node in an embodiment of the present invention.
  • the system software in a distributed system usually includes multiple services, which are distributed on multiple nodes of the distributed system.
  • each business of the system software needs to be upgraded.
  • there is a sequence of upgrades for each service in the system software For example, service A must be upgraded after service B is upgraded. This makes the nodes deployed with services in the system software have a sequence during upgrade.
  • the sequence of nodes during upgrade is referred to as an upgrade constraint relationship.
  • the embodiment of the present invention provides a method for upgrading services in a distributed system.
  • the method determines the nodes that can be upgraded in parallel among the multiple nodes on the premise that the upgrade constraint relationship between the multiple nodes is satisfied, so as to reduce the upgrade time and improve the upgrade efficiency.
  • the distributed systems provided by the embodiments of the present invention include, but are not limited to, distributed storage systems and distributed file systems.
  • Figure 2 shows a structure of a distributed system provided by an embodiment of the present invention.
  • the distributed system includes a management node 20 and multiple nodes 21 to be upgraded.
  • the service included in the system software that needs to be upgraded is called the service to be upgraded, and the node where one or more services to be upgraded are deployed is called the node to be upgraded.
  • the node 21 to be upgraded may be a physical machine (such as a server), or a virtual machine (virtual machine, VM) deployed on the physical machine.
  • a physical machine such as a server
  • VM virtual machine
  • the management node 20 is used to manage each node 21 to be upgraded, for example: upgrade the service to be upgraded run by each node 21 to be upgraded.
  • the management node 20 is an independent physical machine or virtual machine.
  • the management node 20 may also be any node to be upgraded in the distributed system.
  • Fig. 3 shows a hardware structure of the management node 20 in the embodiment of the present invention.
  • the management node 20 includes a processor 31, a memory 32, a communication interface 33, and a bus 34.
  • the processor 31, the memory 32, and the communication interface 33 may be connected by a bus 34.
  • the processor 31 is the control center of the management node 20, and may be a general-purpose central processing unit (central processing unit, CPU), or other general-purpose processors. Among them, the general-purpose processor may be a microprocessor or any conventional processor.
  • the processor 31 may include one or more CPUs, such as CPU 0 and CPU 1 shown in FIG. 3.
  • the memory 32 may be a read-only memory (ROM) or other types of static storage devices that can store static information and instructions, random access memory (RAM), or other types that can store information and instructions
  • ROM read-only memory
  • RAM random access memory
  • EEPROM electrically erasable programmable read-only memory
  • magnetic disk storage media or other magnetic storage devices, or can be used to carry or store instructions or data structures
  • the desired program code and any other medium that can be accessed by the computer but not limited to this.
  • the memory 32 may exist independently of the processor 31.
  • the memory 32 may be connected to the processor 31 through a bus 34, and is used to store instructions or program codes.
  • the processor 31 calls and executes the instructions or program codes stored in the memory 32, it can implement the service upgrade method in the distributed system provided by the embodiment of the present invention.
  • the memory 32 may also be integrated with the processor 31.
  • the communication interface 33 is used to connect the management node 20 with other devices (such as the node 21 to be upgraded) through a communication network.
  • the communication network may be Ethernet, radio access network (RAN), or wireless local area network (RAN). area networks, WLAN), etc.
  • the communication interface 33 may include a receiving unit for receiving data, and a sending unit for sending data.
  • the bus 34 may be an Industry Standard Architecture (ISA) bus, Peripheral Component Interconnect (PCI) bus, or Extended Industry Standard Architecture (EISA) bus, etc.
  • ISA Industry Standard Architecture
  • PCI Peripheral Component Interconnect
  • EISA Extended Industry Standard Architecture
  • the bus can be divided into address bus, data bus, control bus, etc. For ease of representation, only one thick line is used in FIG. 3 to represent, but it does not mean that there is only one bus or one type of bus.
  • the structure shown in FIG. 3 does not constitute a limitation on the management node.
  • the management node 20 may include more or less components than those shown in the figure, or a combination Certain components, or different component arrangements.
  • the node 21 to be upgraded also includes components such as a processor, a memory, a communication interface, and a bus.
  • the processor in the node 21 to be upgraded is used to complete the functions of the node 21 to be upgraded when calling and executing instructions or program codes stored in the memory, such as executing the service to be upgraded, or according to management Node commands, upgrades to be upgraded, etc.
  • the processor in the management node 20 calls and executes instructions or program codes stored in the memory, it is used to complete the functions of the management node 20, for example: determining the nodes to be upgraded for parallel upgrades.
  • FIG. 4 is a schematic flowchart of a service upgrade method in a distributed system provided by an embodiment of the present invention. As shown in Figure 4, the service upgrade method includes:
  • the management node 20 obtains the upgrade constraint relationship among multiple nodes 21 to be upgraded.
  • the upgrade constraint relationship in the embodiment of the present invention is used to indicate the sequence of multiple nodes 21 to be upgraded during the upgrade.
  • a service to be upgraded deployed in a node 21 to be upgraded can only be upgraded after the service to be upgraded deployed in other nodes to be upgraded 21 is upgraded.
  • a certain node 21 to be upgraded can only be upgraded after the upgrade of other nodes 21 to be upgraded is completed.
  • node 1 is deployed with service 1 and node 2 is deployed with service 1 and service 2, and service 1 must be upgraded after service 2 is upgraded. In this way, node 1 must be upgraded after node 2 is upgraded. This forms the upgrade constraint relationship between node 1 and node 2.
  • the management node 20 uses a directed graph to represent the upgrade constraint relationship among the multiple nodes 21 to be upgraded.
  • the nodes 21 to be upgraded are connected by directed edges, and the node 21 to be upgraded at the arrow end must be upgraded after the node 21 to be upgraded at the non-arrow end is upgraded.
  • node 1 needs to be between node 2 and node 2.
  • Node 6 can be upgraded after the upgrade is completed (constraint relationship 1)
  • node 2 can be upgraded after node 5 is upgraded (constraint relationship 2)
  • node 3 can be upgraded after node 4 and node 5 are upgraded (constraint relationship 3);
  • the node 4 needs to be upgraded after the node 5 is upgraded (constraint relationship 4); then the management node 20 uses the process shown in FIG. 5 to generate a directed graph according to the upgrade constraint relationship.
  • the directed graph can reflect constraint relationship 1 to constraint relationship 4.
  • S402 The management node 20 judges whether there are deadlocked interconnected nodes 21 to be upgraded in the upgrade constraint relationship between the multiple nodes 21 to be upgraded.
  • the deadlocked interconnected nodes to be upgraded means that the constraint relationship between multiple nodes to be upgraded 21 forms a ring. Each node 21 to be upgraded that forms a deadlock interconnection cannot be upgraded.
  • node 3, node 4, and node 5 form a ring.
  • Node 5 can be upgraded after node 3 is upgraded, and node 4 can be upgraded after node 5 is upgraded.
  • Node 3 needs to be upgraded after node 4 is upgraded. That is, node 3, node 4, and node 5 form a deadlock interconnection, and node 3, node 4, and node 5 are all deadlock interconnected nodes.
  • the way for the management node 20 to determine whether there are deadlocked interconnected nodes 21 to be upgraded in the upgrade constraint relationship among the multiple nodes 21 to be upgraded is to obtain the in-degree of each node 21 to be upgraded in the directed graph (with The number of arrows pointing to the node 21 to be upgraded in the figure), and the node 21 to be upgraded whose current in-degree is zero is determined.
  • the node 21 to be upgraded with an entry degree of zero indicates that the node 21 to be upgraded is not restricted by other nodes when it is upgraded.
  • the node 21 to be upgraded whose current in-degree is zero is removed from the directed graph.
  • the directed edges related to the node to be upgraded 21 with a current indegree of zero are also removed at the same time.
  • the management node 20 updates the in degrees of the remaining nodes to be upgraded in the directed graph, determines the nodes to be upgraded 21 whose current in degrees in the remaining nodes to be upgraded is zero, and removes the current in degrees of the remaining nodes to be upgraded from the directed graph as Zero node 21 to be upgraded, so, repeat execution.
  • the management node 20 determines that there are no deadlocked interconnected nodes 21 to be upgraded in the directed graph; if the number of remaining nodes to be upgraded in the directed graph is not zero, but does not exist If the node 21 to be upgraded has an in-degree of zero, the management node 20 determines that there are deadlocked interconnected nodes in the directed graph.
  • the in-degrees of node 5 and node 6 are both 0, the in-degrees of node 2 and node 4 are both 1, and the in-degrees of node 1 and node 3 are 2. It can be seen that the nodes whose current in-degree is 0 are node 5 and node 6.
  • the management node 20 removes nodes 5 and 6 from the directed graph shown in Figure 5, and updates the in-degrees of the remaining nodes (node 1, node 2, node 3, and node 4).
  • the updated in-degrees of the remaining nodes are :
  • the in-degree of node 2 and node 4 are both 0, and the in-degree of node 1 and node 3 is 1.
  • the nodes with a current indegree of 0 are node 2 and node 4, and the management node 20 removes the nodes with a current indegree of 0 from the remaining nodes (node 1, node 2, node 3, and node 4) from the directed graph, That is, node 2 and node 4 are removed from node 1, node 2, node 3, and node 4.
  • the management node 20 updates the in degrees of the remaining nodes (node 1 and node 3).
  • the updated in degrees of the remaining nodes are: The in-degree of node 1 and node 3 is 0.
  • the nodes whose current in-degree is 0 are node 1 and node 3, and the management node 20 removes node 1 and node 3.
  • the number of remaining nodes is 0. Therefore, the management node 20 determines that There are no deadlocked interconnected nodes in the directed graph.
  • the management node 20 first removes node 6 from the directed graph and updates the in-degree of the remaining nodes (node 1 to node 5). At this time, the updated in-degrees of the remaining nodes are all 1, and the number of remaining nodes is not zero. Therefore, the management node 20 determines that there are deadlocked interconnected nodes in the directed graph shown in FIG. 6.
  • management node 20 determines that there are deadlocked interconnected nodes 21 to be upgraded in the upgrade constraint relationship between the multiple nodes to be upgraded 21, S403 is executed. If the management node 20 determines that there is no deadlocked interconnected node 21 to be upgraded in the upgrade constraint relationship between the plurality of nodes to be upgraded 21, S404 is executed.
  • the management node 20 sends an alarm message to inform the administrator/operation and maintenance personnel that there are deadlocked interconnected nodes to be upgraded, and the upgrade cannot be performed.
  • the alarm information can be text, audio, etc.
  • the alarm message is "There are deadlocked interconnected nodes to be upgraded and cannot be upgraded". If the alarm information is text, the management node 20 can display the alarm information. If the alarm information is audio, the management node 20 broadcasts the alarm information.
  • the alarm information includes the identification of the deadlocked interconnected node to be upgraded.
  • the alarm message is "Node 3, Node 4, and Node 5 are deadlocked interconnected nodes to be upgraded and cannot be upgraded”.
  • the management node 20 sends out an alarm message to inform the administrator/operation and maintenance personnel that there are deadlocked interconnected nodes to be upgraded and cannot be upgraded, so that the administrator/operations and maintenance personnel can adjust or reconfigure the deadlocked interconnected nodes to be upgraded. Upgrade the constraint relationship. If there are no deadlocked interconnected nodes to be upgraded in the adjusted upgrade constraint relationship or the reconfigured upgrade constraint relationship, S404 is executed.
  • the management node 20 obtains the service to be upgraded deployed in each node 21 to be upgraded and the maximum number of nodes that are allowed to be upgraded in parallel for each service to be upgraded.
  • one or more nodes on which the service to be upgraded is deployed need to be reserved, and these nodes are not upgraded temporarily.
  • the number of nodes that will not be upgraded temporarily is called the minimum number of online nodes required by the service to be upgraded.
  • the minimum number of online nodes required by the service to be upgraded is pre-configured.
  • the management node 20 After determining the minimum number of online nodes required by the service to be upgraded, the management node 20 determines the maximum number of parallel upgrade nodes allowed for the service to be upgraded according to the number of nodes on which the service to be upgraded is deployed in the distributed system. That is, under the condition that the minimum number of online nodes required by the service to be upgraded is met, the maximum number of nodes on which the service to be upgraded is deployed that can be upgraded in parallel is determined.
  • the management node 20 obtains the minimum number of online nodes required by each service to be upgraded and the distribution information of each service to be upgraded in the distributed system from the configuration file of the service to be upgraded (for example, service 1 to be upgraded is distributed in the node to be upgraded) 1), and according to the minimum number of online nodes required by each service to be upgraded and the distribution information of each service to be upgraded in the distributed system, determine the service to be upgraded deployed in each node 21 to be upgraded and each service to be upgraded The maximum number of concurrent upgrade nodes allowed for the upgrade business.
  • the management node 20 obtains the minimum number of online nodes required by each service to be upgraded and the distribution information of each service to be upgraded in the distributed system: Service 1 is deployed in node 5 and node 6. The minimum number of online nodes required for the service to be upgraded is 1; service 2 is deployed in node 1 and node 2, and the minimum number of online nodes required for the service to be upgraded is 1; Service 3 to be upgraded is deployed in node 3 and node 4, and the minimum number of online nodes required by the service to be upgraded is 1.
  • the management node 20 determines the service to be upgraded deployed in each of the nodes 1 to 6 (refer to (B) in Figure 7): the service to be upgraded is deployed in node 1, and the service to be upgraded is deployed in node 2 to be upgraded.
  • Service 2 Node 3 is deployed with service 3 to be upgraded, node 4 is deployed with service 3 to be upgraded, node 5 is deployed with service 1 to be upgraded, and node 6 is deployed with service 1 to be upgraded.
  • the management node 20 determines the batch to upgrade the multiple nodes 21 to be upgraded according to the constraint relationship between the multiple nodes 21 to be upgraded and the maximum number of nodes that are allowed to be upgraded in parallel for the services to be upgraded deployed in each node 21 to be upgraded. .
  • the management node 20 may choose to first upgrade the node 21 to be upgraded whose in-degree is zero.
  • the management node 20 In order to ensure the continuity of the service to be upgraded deployed in the node 21 to be upgraded with an in-degree of zero, the management node 20 also needs to be based on "the service to be upgraded deployed in the node to be upgraded 21 with an in-degree of zero" and "the in-degree is zero.
  • the maximum number of parallel upgrade nodes allowed for each service to be upgraded deployed in the nodes 21 to be upgraded the nodes to be upgraded 21 for the first batch of upgrades are determined from the nodes to be upgraded 21 whose in-degree is zero.
  • the nodes to be upgraded whose in-degree is zero in Fig. 5 are node 5 and node 6.
  • the maximum number of concurrent upgrade nodes allowed for service 1 is 1, and it can be determined that the first batch of upgraded nodes is node 5 or node 6.
  • the node to be upgraded for the first batch of upgrade is node 5 as an upgrade plan (this plan is called the first plan), and the node to be upgraded for the first batch of upgrade is node 6 as another upgrade plan (the This program is called the second program).
  • the management node 20 determines the batches required for each upgrade plan to upgrade all the nodes 21 to be upgraded.
  • the method for the management node 20 to determine the batches required to upgrade all the nodes 21 to be upgraded for each upgrade scheme is: the management node 20 removes the nodes 21 to be upgraded in the first batch of upgrades from the directed graph, for example, as shown in FIG. 8 As shown, when the first scheme is adopted, node 5 is first removed from the directed graph. After removing the nodes 21 to be upgraded in the first batch of upgrades, the management node 20 updates the in-degree of the remaining nodes to be upgraded in the directed graph, and determines the node to-be-upgraded 21 whose in-degree is zero among the remaining nodes to be upgraded. As shown in FIG.
  • the nodes with zero in-degree of node 1, node 2, node 3, node 4, and node 6 include node 2, node 4, and node 6.
  • the management node 20 according to "the service to be upgraded deployed in the node 21 to be upgraded with zero in-degree of the remaining nodes to be upgraded" and “the service to be upgraded deployed in the node to be upgraded 21 with zero in-degree is allowed Maximum number of nodes to be upgraded in parallel", the nodes to be upgraded 21 for the second batch of upgrades are determined from the nodes to be upgraded 21 whose in-degree is zero among the remaining nodes to be upgraded.
  • the node 2 deploys service 2 to be upgraded
  • the node 4 deploys the service 3 to be upgraded
  • the node 6 deploys the service 1 to be upgraded
  • the maximum number of concurrent upgrade nodes allowed by the service 1 to be upgraded the service 2 to be upgraded
  • the maximum number of parallel upgrade nodes allowed and the maximum number of parallel upgrade nodes allowed for service 3 to be upgraded are both 1. Therefore, parallel upgrade of node 2, node 4, and node 6 will not upgrade service 1, service 2 and service to be upgraded.
  • the continuity of the upgrade service 3 is affected. In this way, the management node 20 determines that the nodes to be upgraded in the second batch of upgrades are node 2, node 4, and node 6.
  • the management node 20 also needs to separately determine the batches required for each upgrade scheme to upgrade the remaining nodes 21 to be upgraded.
  • the management node 20 After determining the nodes to be upgraded 21 for the second batch of upgrades, the management node 20 continues to remove the nodes to be upgraded for the second batch of upgrades from the directed graph, and determines the nodes to be upgraded 21 and the first batch of upgrades.
  • the method of upgrading the nodes 21 to be upgraded in the second batch determines the batches of the remaining nodes 21 to be upgraded until there is no node 21 to be upgraded in the directed graph. As shown in Figure 8, after removing node 2, node 4, and node 6, the in-degrees of node 1 and node 3 are both 0, and the management node 20 determines that node 1 and node 3 can be upgraded in parallel, taking node 1 and node 3 as The node to be upgraded for the third batch of upgrades.
  • the management node 20 determines that the first solution needs to be upgraded in 3 batches to complete the upgrade of all nodes to be upgraded, specifically: the first batch: node 5 ⁇ The second batch: node 2, node 4, node 6 ⁇ the third batch: node 1, node 3.
  • FIG. 9 shows a process in which the management node 20 determines the batches required to upgrade all the nodes 21 to be upgraded using the second scheme.
  • the management node 20 removes the node to be upgraded in the first batch of upgrades: node 6, and updates the in-degree of the remaining nodes (node 1 to node 5).
  • the updated in-degree of the remaining nodes are: the in-degree of node 5 is 0, the in-degree of node 1, node 2, and node 4 are all 1, and the in-degree of node 3 is 2. Since the node 5 with an entry degree of 0 is deployed with service 1 to be upgraded, and the maximum number of concurrent upgrade nodes allowed for service 1 to be upgraded is 1, the management node 20 determines that the node to be upgraded for the second batch of upgrades is node 5. After determining that the node to be upgraded for the second batch of upgrade is node 5, the management node 20 removes node 5 and updates the in-degrees of the remaining nodes (node 1 to node 4).
  • the updated in-degrees of the remaining nodes are: node 2 And the in-degree of node 4 is 0, and the in-degree of node 1 and node 3 is 1. Since service 2 to be upgraded is deployed in node 2 and service 3 to be upgraded is deployed in node 4, the maximum number of concurrent upgrade nodes allowed for service 2 to be upgraded and the maximum number of concurrent upgrade nodes allowed for service 3 to be upgraded are both 1, so The parallel upgrade of node 2 and node 4 will not affect the continuity of the service to be upgraded 2 and the service to be upgraded 3. In this way, the management node 20 determines that the nodes to be upgraded in the third batch of upgrades are node 2 and node 4.
  • management node 20 After determining that the nodes to be upgraded for the third batch of upgrades are node 2 and node 4, management node 20 removes node 2 and node 4, and the in-degrees of node 1 and node 3 in the remaining nodes are both 0, and management node 20 determines node 1 And node 3 can be upgraded in parallel, and node 1 and node 3 are used as the nodes to be upgraded in the fourth batch of upgrades.
  • the management node 20 determines that the second solution needs to be upgraded in 4 batches to complete the upgrade of all nodes to be upgraded, specifically: the first batch: node 6 ⁇
  • the management node 20 can determine a variety of upgrade schemes according to the maximum number of concurrent upgrade nodes allowed by the service to be upgraded and the constraint relationship between the nodes 21 to be upgraded. After determining multiple upgrade solutions, the management node 20 can select one upgrade solution from the multiple upgrade solutions according to actual needs, and perform the upgrade according to the selected upgrade solution.
  • the management node 20 can select an upgrade solution with the fewest batches from a variety of upgrade solutions.
  • the first solution shown in FIG. 8 includes 3 batches (the first batch to the third batch), and the second solution shown in FIG. 9 includes 4 upgrade batches (the first batch to the third batch).
  • the batches included in the first solution are smaller than the batches included in the second solution. Therefore, the management node 20 can choose to use the first solution to upgrade the node to be upgraded.
  • management node 20 selecting the upgrade solution with the fewest batches from the multiple upgrade solutions is only a possible example, and is not intended as a limitation to the embodiment of the present invention.
  • the management node can also consider factors such as system reliability, system load, idle resources, etc., to more specifically select an upgrade plan that adapts to current needs. This is no longer in the embodiment of the present invention. Go into details one by one.
  • the management node 20 sequentially instructs the nodes 21 to be upgraded in each batch to upgrade according to the determined batches.
  • the management node 20 sends an upgrade instruction to the nodes 21 to be upgraded in the first batch to instruct the nodes 21 to be upgraded in the first batch to upgrade.
  • the management node 20 sends an upgrade instruction to the nodes 21 to be upgraded in the second batch to instruct the nodes 21 to be upgraded in the second batch to upgrade. In this way, the execution is repeated until all the nodes 21 to be upgraded are upgraded.
  • node 5 migrates the data of service 1 in node 5 to node 1; after the upgrade of node 5 is completed, the data of service 1 is migrated back from node 1 Go to node 5.
  • the management node 20 sends an upgrade instruction to the node 21 to be upgraded in the second batch after the upgrade of the node 21 to be upgraded in the first batch is completed, so as to realize "the node to be upgraded in the second batch Synchronization of "21 upgrade” and "data migration of node 21 to be upgraded in the first batch".
  • the solution provided by the embodiment of the present invention realizes the synchronization of "the upgrade of the node 21 to be upgraded in the i-th batch” and the “data back migration of the node 21 to be upgraded in the i-1th batch", which effectively improves Upgrade efficiency.
  • the management node 20 may determine a data migration destination node for the node 21 to be upgraded according to the determined batch and the reliability of the data of the service to be upgraded. In this way, the management node 20 can send an upgrade instruction including the identifier of the destination node to the node 21 to be upgraded to instruct to complete the upgrade of the service to be upgraded after migrating the data of the service to be upgraded to the destination node.
  • the data of a certain service is often stored on different nodes in a strip or multiple copies.
  • the management node 20 determines the destination node, it needs to consider that the reliability of the service data can be guaranteed after the service data is migrated.
  • the management node 20 cannot determine node 2 as the destination node for node 1 to perform data migration. If the data of business 1 in node 1 is migrated to node 2, only node 2 in the distributed system stores the data of business 1. Once node 2 fails, or the data of business 1 in node 2 is destroyed, then business 1 Will not be able to run in this distributed system.
  • the management node 20 can first determine the batch to be upgraded in the batches other than batch b (take batch b as an example). Step a is an example) When the included node 21 to be upgraded serves as the destination node, can the reliability of the data be guaranteed. If the data reliability can be guaranteed when the node 21 to be upgraded in batch a serves as the destination node, the management node 20 determines the node 21 to be upgraded in batch a as the destination node.
  • the management node 20 determines the final batch to be upgraded among other batches except batch b and batch a When the included node 21 to be upgraded serves as the destination node, can the reliability of the data be guaranteed. In this way, repeat the execution until the destination node is determined.
  • the management node 20 selects the first solution from the first solution shown in FIG. 8 and the second solution shown in FIG. 9, and upgrades the node to be upgraded according to the first solution.
  • the management node 20 first judges the nodes 1 and 3 in the third batch (except for the first batch, the last batch to be upgraded) as the destination nodes, Whether it can meet the reliability of the data of service 1 to be upgraded in node 5.
  • the management node 20 judges the second batch (except for the first batch and the third batch, the final upgrade When node 2, node 4, and node 6 in the batch) are used as destination nodes, can they satisfy the reliability of the data of the service 1 to be upgraded? If one or more of node 2, node 4, and node 6 as the destination node can meet the reliability of the data of the service 1 to be upgraded, the management node 20 will take it as the destination node of node 5 and send the destination node including the destination node to node 5. Upgrade instructions for the node's identity.
  • the management node 20 determines to upgrade the multiple nodes 21 to be upgraded in batches, that is, it is determined that the multiple nodes 21 to be upgraded can be upgraded in parallel.
  • the number of nodes to be upgraded effectively reduces the time for upgrading multiple nodes 21 to be upgraded, and improves the upgrade efficiency.
  • the management node may be divided into functional modules according to the foregoing method examples.
  • each functional module may be divided corresponding to each function, or two or more functions may be integrated into one processing module.
  • the above-mentioned integrated modules can be implemented in the form of hardware or software functional modules. It should be noted that the division of modules in the embodiment of the present invention is illustrative, and is only a logical function division, and there may be other division methods in actual implementation.
  • FIG. 10 it is a schematic structural diagram of a management node 100 provided by an embodiment of the present invention.
  • the management node 100 is used to manage the upgrade of multiple nodes to be upgraded in the distributed system, for example, to execute the service upgrade method in the distributed system shown in FIG. 4.
  • the management node 100 may include an acquisition unit 1001, a determination unit 1002, and an upgrade management unit 1003.
  • the obtaining unit 1001 is configured to obtain the upgrade constraint relationship between multiple nodes to be upgraded, and the upgrade constraint relationship is determined by the upgrade sequence of the multiple services to be upgraded.
  • the acquiring unit 1001 may be used to execute S401.
  • the determining unit 1002 is configured to determine the nodes to be upgraded that are upgraded in parallel among the multiple nodes to be upgraded according to the upgrade constraint relationship obtained by the obtaining unit 1001 and the minimum number of online nodes for each of the multiple services to be upgraded.
  • the number of online nodes is the minimum number of nodes that provide the same service to be upgraded at the same time.
  • the upgrade management unit 1003 is configured to upgrade multiple nodes to be upgraded according to the nodes to be upgraded that are determined in parallel by the determining unit 1002.
  • the determining unit 1002 is specifically configured to: determine the allowable service for each service to be upgraded according to the minimum number of online nodes for each service to be upgraded and the service to be upgraded deployed in each of the multiple nodes to be upgraded
  • the maximum number of parallel upgrade nodes is the maximum number of nodes that are upgraded and deployed at the same time with the same service to be upgraded; according to the maximum number of concurrent upgrade nodes allowed for each service to be upgraded and the upgrade constraint relationship, determine multiple The node to be upgraded that is upgraded in parallel among the upgraded nodes.
  • the determining unit 1002 may be used to execute S404 and S405.
  • the aforementioned upgrade constraint relationship is represented by a directed graph;
  • the determining unit 1002 is specifically configured to: obtain the in-degree of each node to be upgraded in the directed graph; perform the first operation: determine that the in-degree in the directed graph is zero Nodes to be upgraded, and according to the maximum number of parallel upgrade nodes allowed for each service to be upgraded deployed in the nodes to be upgraded with zero in-degree, determine the current batch of nodes to be upgraded from the nodes to be upgraded with zero in-degree, And remove the current batch of nodes to be upgraded from the directed graph, and update the in-degree of the remaining nodes to be upgraded in the directed graph; determine whether there are still nodes to be upgraded with zero in-degree in the remaining nodes to be upgraded; if it exists, Return to perform the first operation; if it does not exist, obtain multiple batches for upgrading multiple nodes to be upgraded and the nodes to be upgraded included in each batch.
  • the upgrade management unit 1003 is specifically configured to: upgrade multiple nodes to be upgraded according to the multiple batches determined by the
  • the determining unit 1002 is specifically configured to: when it is determined that the nodes to be upgraded in the current batch include at least two kinds of node combinations, each node in each node combination is used as the nodes to be upgraded in the current batch to obtain at least There are two upgrade schemes.
  • the upgrade scheme is to upgrade multiple batches of nodes to be upgraded, and the nodes to be upgraded included in each batch, and each of the at least two node combinations includes at least one node to be upgraded.
  • the determining unit 1002 is also used to select one upgrade solution from at least two upgrade solutions.
  • the upgrade management unit 1003 is specifically configured to: perform a second operation: determine the target node corresponding to the node to be upgraded in the current upgrade batch, and send an upgrade instruction to the node to be upgraded in the current upgrade batch, the upgrade instruction including the target The identification of the node, the upgrade instruction is used to instruct to migrate the business to be upgraded in the node to be upgraded in the current upgrade batch to the target node, and to upgrade the node to be upgraded in the current upgrade batch; determine whether the current upgrade batch belongs to multiple batches If the current upgrade batch does not belong to the last upgrade batch among multiple batches, when it is determined that the nodes to be upgraded in the current upgrade batch have completed the upgrade, the next upgrade batch The batch is used as the current upgrade batch and returns to perform the second operation.
  • the aforementioned upgrade constraint relationship is represented by a directed graph
  • the management node 100 further includes a judgment unit 1004.
  • the determining unit 1004 is used to determine whether there are deadlocked interconnected nodes to be upgraded in the upgrade constraint relationship, and the deadlocked interconnected nodes to be upgraded are nodes to be upgraded that form a ring in the directed graph.
  • the determining unit 1002 is specifically configured to: when the determining unit 1004 determines that there are no deadlocked interconnected nodes to be upgraded in the upgrade constraint relationship between the multiple nodes to be upgraded, according to the upgrade constraint relationship and each of the multiple services to be upgraded
  • the minimum number of online nodes for the business determines the node to be upgraded among multiple nodes to be upgraded in parallel.
  • the judging unit 1004 may be used to execute S402.
  • the management node 100 provided in the embodiment of the present invention includes but is not limited to the above-mentioned modules.
  • the management node 100 may also include a storage unit 1005.
  • the storage unit 1005 can be used to store the program code of the management node 100, and can also be used to store data generated during the operation of the management node 100, such as upgrading multiple batches of nodes to be upgraded.
  • Another embodiment of the present invention also provides a computer-readable storage medium that stores instructions in the computer-readable storage medium.
  • the computer executes the management node in the method flow shown in the foregoing method embodiment. The various steps performed.
  • a computer program product includes computer instructions.
  • the instructions run on a computer, the computer executes the operations performed by the management node in the method flow shown in the foregoing method embodiments. Various steps.
  • the distributed system may include a management node 100 and multiple nodes to be upgraded.
  • the above embodiments it may be implemented in whole or in part by software, hardware, firmware or any combination thereof.
  • a software program it may be implemented in the form of a computer program product in whole or in part.
  • the computer program product includes one or more computer instructions.
  • the computer execution instructions When the computer execution instructions are loaded and executed on the computer, the process or function according to the embodiment of the present invention is generated in whole or in part.
  • the computer can be a general-purpose computer, a dedicated computer, a computer network, or other programmable devices.
  • Computer instructions may be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium.
  • computer instructions may be transmitted from a website, computer, server, or data center through a cable (such as Coaxial cable, optical fiber, digital subscriber line (digital subscriber line, DSL) or wireless (such as infrared, wireless, microwave, etc.) transmission to another website site, computer, server, or data center.
  • the computer-readable storage medium may be any available medium that can be accessed by a computer or may include one or more data storage devices such as a server or a data center that can be integrated with the medium.
  • the usable medium may be a magnetic medium (for example, a floppy disk, a hard disk, and a magnetic tape), an optical medium (for example, a DVD), or a semiconductor medium (for example, a solid state disk (SSD)).

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

A service upgrade method and apparatus in a distributed system, and the distributed system, wherein same relate to the technical field of computers, and can solve the problem of a low upgrade efficiency caused by services in only one node being able to be simultaneously upgraded in a distributed system. A management node in a distributed system acquires an upgrade constraint relationship between a plurality of nodes to be upgraded, determines, according to the upgrade constraint relationship and the minimum number of online nodes of each service to be upgraded from among the plurality of services to be upgraded, nodes to be upgraded, that are upgraded in parallel, from among the plurality of nodes to be upgraded, and upgrades, according to the determined nodes to be upgraded that are upgraded in parallel, the plurality of nodes to be upgraded. The duration for upgrading the plurality of nodes to be upgraded is effectively shortened, and the upgrade efficiency is improved. The upgrade constraint relationship is determined by means of the upgrade order of the plurality of services to be upgraded, and the minimum number of online nodes is the minimum number of nodes simultaneously supplying the same services to be upgraded.

Description

一种分布式系统中的业务升级方法、装置及分布式系统Method, device and distributed system for business upgrade in distributed system 技术领域Technical field
本发明实施例涉及计算机技术领域,尤其涉及一种分布式系统中的业务升级方法、装置及分布式系统。The embodiments of the present invention relate to the field of computer technology, and in particular to a method, device and distributed system for service upgrade in a distributed system.
背景技术Background technique
分布式系统的系统软件包括多个业务,这些业务部署在分布式系统的多个节点上。在实践中,系统软件的每一业务可以部署在一个或多个节点上。如图1所示,系统软件包括业务1、业务2、业务3和业务4,业务1部署在节点0~节点2上,业务2部署在节点1、节点2和节点4上,业务3部署在节点3~节点6上,业务4部署在节点7~节点9上。在系统软件有新特性上线或者版本更新时,需要对该系统软件中的每个业务进行升级。The system software of the distributed system includes multiple services, which are deployed on multiple nodes of the distributed system. In practice, each service of the system software can be deployed on one or more nodes. As shown in Figure 1, the system software includes service 1, service 2, service 3, and service 4. Service 1 is deployed on node 0 to node 2, service 2 is deployed on node 1, node 2 and node 4, and service 3 is deployed on On node 3 to node 6, service 4 is deployed on node 7 to node 9. When new features of the system software are launched or the version is updated, each business in the system software needs to be upgraded.
目前,对分布式系统中的系统软件进行升级的方法为:将部署有该系统软件的业务的所有节点按照内存配额(内存配额用于限定节点上的数据存储量)由大到小的顺序依次排序;将排序中内存配额最大的节点上的所有数据迁移到其他节点上,并将排序中内存配额最大的节点作为当前待升级节点;将当前待升级节点上的业务进行升级,升级完成后,将排序仅次于当前待升级节点的节点上的数据迁移到当前待升级节点上,以及将排序仅次于当前待升级节点的节点作为当前待升级节点,依此类推,直到排序中最后一个节点上的业务完成升级。At present, the method for upgrading the system software in a distributed system is: all nodes where the system software is deployed are arranged in order of memory quota (memory quota is used to limit the amount of data storage on the node) in descending order Sorting; migrate all data on the node with the largest memory quota in the sort to other nodes, and use the node with the largest memory quota in the sort as the current node to be upgraded; upgrade the business on the current node to be upgraded, and after the upgrade is completed, Migrate the data on the node whose ranking is next to the current node to be upgraded to the current node to be upgraded, and the node whose ranking is next to the current node to be upgraded as the current node to be upgraded, and so on, until the last node in the ranking The business on the company has been upgraded.
上述方法能够平稳的实现业务升级,也能保证数据的完整性、不中断对外部的服务。但是,需要逐个对部署有系统软件的业务的节点进行升级,导致升级效率较低。The above methods can smoothly realize business upgrades, and can also ensure data integrity without interrupting external services. However, it is necessary to upgrade the nodes on which the system software is deployed one by one, resulting in low upgrade efficiency.
发明内容Summary of the invention
本申请提供了一种分布式系统中的业务升级方法、装置及分布式系统,解决了分布式系统中,同时只能升级一个节点中的业务,导致的升级效率低的问题。This application provides a service upgrade method, device and distributed system in a distributed system, which solves the problem of low upgrade efficiency in a distributed system that can only upgrade the service in one node at the same time.
第一方面,本申请提供了一种分布式系统中的业务升级方法,应用于分布式系统中用于对多个待升级节点中部署的多个待升级业务进行升级的管理节点,该升级方法包括:管理节点获取多个待升级节点之间的升级约束关系,并根据该升级约束关系及多个待升级业务中每个待升级业务的最小在线节点数,确定多个待升级节点中并行升级的待升级节点,以及根据所确定的并行升级的待升级节点对多个待升级节点进行升级。上述升级约束关系由多个待升级业务的升级先后顺序确定,最小在线节点数为同时提供相同的待升级业务的节点的最小数量。管理节点确定出并行升级的待升级节点,即可在一个批次中对并行升级的待升级节点进行升级,有效地减少了升级多个待升级节点的时长,提升了升级效率。In the first aspect, this application provides a service upgrade method in a distributed system, which is applied to a management node used to upgrade multiple services to be upgraded deployed in multiple nodes to be upgraded in a distributed system. The upgrade method Including: the management node obtains the upgrade constraint relationship between multiple nodes to be upgraded, and determines the parallel upgrade among the multiple nodes to be upgraded based on the upgrade constraint relationship and the minimum number of online nodes for each of the multiple services to be upgraded And upgrade multiple nodes to be upgraded according to the determined nodes to be upgraded in parallel. The aforementioned upgrade constraint relationship is determined by the upgrade sequence of multiple services to be upgraded, and the minimum number of online nodes is the minimum number of nodes that provide the same service to be upgraded at the same time. The management node determines the nodes to be upgraded for parallel upgrade, and can upgrade the nodes to be upgraded in parallel in one batch, which effectively reduces the time for upgrading multiple nodes to be upgraded and improves the upgrade efficiency.
在一种可能的设计中,上述“管理节点根据升级约束关系及多个待升级业务中每个待升级业务的最小在线节点数,确定多个待升级节点中并行升级的待升级节点”的方法包括:管理节点根据每个待升级业务的最小在线节点数和多个待升级节点中的每个待升级节点中部署的待升级业务,确定每个待升级业务所允许的并行升级最大节点 数,后续,管理节点根据每个待升级业务所允许的并行升级最大节点数和升级约束关系,确定多个待升级节点中并行升级的待升级节点。这里,并行升级最大节点数为同时升级部署有相同待升级业务的节点的最大数量。In a possible design, the above-mentioned "management node determines the node to be upgraded in parallel among the multiple nodes to be upgraded based on the upgrade constraint relationship and the minimum number of online nodes for each of the multiple services to be upgraded" Including: The management node determines the maximum number of parallel upgrade nodes allowed for each service to be upgraded according to the minimum number of online nodes for each service to be upgraded and the service to be upgraded deployed in each of the multiple nodes to be upgraded. Subsequently, the management node determines the node to be upgraded among the multiple nodes to be upgraded according to the maximum number of nodes to be upgraded in parallel and the upgrade constraint relationship allowed for each service to be upgraded. Here, the maximum number of nodes for parallel upgrade is the maximum number of nodes that are upgraded and deployed with the same service to be upgraded at the same time.
为了保证每个待升级节点中部署的待升级业务的连续性,管理节点需要根据每个待升级业务的最小在线节点数和多个待升级节点中的每个待升级节点中部署的待升级业务,确定每个待升级业务所允许的并行升级最大节点数,以便于后续在确定并行升级的待升级节点时,对于每个待升级业务而言,并行升级的待升级节点的数量不会超过每个待升级业务所允许的并行最大节点数。In order to ensure the continuity of the service to be upgraded deployed in each node to be upgraded, the management node needs to be based on the minimum number of online nodes for each service to be upgraded and the service to be upgraded deployed in each of the multiple nodes to be upgraded , Determine the maximum number of nodes to be upgraded in parallel for each service to be upgraded, so that when determining the nodes to be upgraded in parallel, for each service to be upgraded, the number of nodes to be upgraded in parallel will not exceed each The maximum number of parallel nodes allowed for each service to be upgraded.
在一种可能的设计中,上述升级约束关系通过有向图表示,这样上述“管理节点根据每个待升级业务所允许的并行升级最大节点数和升级约束关系,确定多个待升级节点中并行升级的待升级节点”的方法包括:管理节点获取有向图中每个待升级节点的入度,并执行第一操作,该第一操作为:确定有向图中入度为零的待升级节点,并根据入度为零的待升级节点中部署的每一待升级业务所允许的并行升级最大节点数,从入度为零的待升级节点中确定当前批次的待升级节点,以及从有向图中去除当前批次的待升级节点,并更新有向图中剩余待升级节点的入度;之后,管理节点判断剩余待升级节点中是否还存在入度为零的待升级节点;如果存在,则返回执行第一操作;如果不存在,则得到升级多个待升级节点的多个批次及每个批次所包括的待升级节点。这样,上述“管理节点根据所确定的并行升级的待升级节点对所述多个待升级节点进行升级”的方法包括:管理节点根据确定出的多个批次及每个批次所包括的待升级节点对多个待升级节点进行升级。In a possible design, the above-mentioned upgrade constraint relationship is represented by a directed graph, so that the “management node” determines the parallel among the multiple nodes to be upgraded according to the maximum number of nodes to be upgraded in parallel and the upgrade constraint relationship allowed by each service to be upgraded. The method of "upgrading nodes to be upgraded" includes: the management node obtains the in-degree of each node to be upgraded in the directed graph, and performs a first operation, which is: determining the in-degree to be upgraded in the directed graph is zero Nodes, and according to the maximum number of parallel upgrade nodes allowed for each service to be upgraded deployed in the nodes to be upgraded with zero indegree, determine the current batch of nodes to be upgraded from the nodes to be upgraded with zero indegree, and from Remove the current batch of nodes to be upgraded in the directed graph, and update the in-degree of the remaining nodes to be upgraded in the directed graph; after that, the management node determines whether there is a node to be upgraded with zero in-degree among the remaining nodes to be upgraded; if If it exists, return to perform the first operation; if it does not exist, get multiple batches of upgrading multiple nodes to be upgraded and the nodes to be upgraded included in each batch. In this way, the above method of "the management node upgrades the multiple nodes to be upgraded according to the determined nodes to be upgraded in parallel" includes: the management node determines the multiple batches according to the determined batches and the batches included in each batch The upgrade node upgrades multiple nodes to be upgraded.
在一种可能的设计中,当确定当前批次的待升级节点包括至少两种节点组合时,则管理节点分别以每一种节点组合中的节点作为所述当前批次的待升级节点,得到至少两种升级方案。这里的升级方案为升级多个待升级节点的批次,及每个批次所包括的待升级节点。至少两种节点组合中的每个节点组合包括至少一个待升级节点。在这种情况下,管理节点从至少两种升级方案中选取一个种升级方案,并根据选取出的升级方案,对多个待升级节点进行升级。In a possible design, when it is determined that the nodes to be upgraded in the current batch include at least two types of node combinations, the management node uses the nodes in each node combination as the nodes to be upgraded in the current batch to obtain At least two upgrade options. The upgrade scheme here is to upgrade multiple batches of nodes to be upgraded, and the nodes to be upgraded included in each batch. Each of the at least two types of node combinations includes at least one node to be upgraded. In this case, the management node selects one upgrade plan from at least two upgrade plans, and upgrades multiple nodes to be upgraded according to the selected upgrade plan.
在确定升级多个待升级节点的批次的过程中,对于某一批次而言,管理节点可以确定在该批次中升级某一/某些待升级节点,也可以确定在该批次中升级其他待升级节点,这样,就出现了不同的节点组合。对于每一节点组合,管理节点均可确定出升级所有待升级节点的批次,即生成升级方案。这样,管理节点最终会生成多种升级方案。In the process of determining the batch to upgrade multiple nodes to be upgraded, for a certain batch, the management node can determine to upgrade one or some nodes to be upgraded in the batch, or determine whether to upgrade in the batch Upgrade other nodes to be upgraded, so that different node combinations appear. For each node combination, the management node can determine the batch to upgrade all nodes to be upgraded, that is, generate an upgrade plan. In this way, the management node will eventually generate multiple upgrade solutions.
在一种可能的设计中,上述“管理节点根据多个批次及每个批次所包括的待升级节点对多个待升级节点进行升级”的方法包括:管理节点执行第二操作,该第二操作包括:确定当前升级批次的待升级节点对应的目标节点,并向当前升级批次的待升级节点发送升级指示,该升级指示包括目标节点的标识,用于指示将当前升级批次的待升级节点中的待升级业务迁移到目标节点,并升级当前升级批次的待升级节点;之后,管理节点判断当前升级批次是否属于多个批次中最后进行升级的批次;若当前升级批次不属于多个批次中最后进行升级的批次,则在确定当前升级批次的待升级节点完成升级时,将当前升级批次的下一批次作为当前升级批次,并返回执行第二操作。In a possible design, the above method of “the management node upgrades the multiple nodes to be upgraded according to multiple batches and the nodes to be upgraded included in each batch” includes: the management node performs a second operation, and the first The second operation includes: determining the target node corresponding to the node to be upgraded in the current upgrade batch, and sending an upgrade instruction to the node to be upgraded in the current upgrade batch. The upgrade instruction includes the identifier of the target node and is used to indicate that the current upgrade batch The business to be upgraded in the node to be upgraded is migrated to the target node, and the node to be upgraded in the current upgrade batch is upgraded; after that, the management node determines whether the current upgrade batch belongs to the last batch of multiple batches; if the current upgrade If the batch does not belong to the last batch to be upgraded among multiple batches, when it is determined that the nodes to be upgraded in the current upgrade batch have completed the upgrade, the next batch of the current upgrade batch will be regarded as the current upgrade batch and return to execution The second operation.
为了保证待升级业务的数据的完整性和可靠性,在对当前升级的待升级节点进行 升级时,管理节点可以根据确定出的批次和待升级业务的数据的可靠性,确定当前升级批次的待升级节点对应的目标节点。In order to ensure the integrity and reliability of the data of the service to be upgraded, when upgrading the currently upgraded node to be upgraded, the management node can determine the current upgrade batch according to the determined batch and the reliability of the data of the service to be upgraded The target node corresponding to the node to be upgraded.
在一种可能的设计中,上述“管理节点确定当前升级批次的待升级节点对应的目标节点”的方法包括:管理节点判断第一批次所包括的待升级节点能否保证当前升级批次的待升级节点中待升级业务的数据的可靠性,这里的第一批次为多个批次中,除当前升级批次之外的其他批次中,最后进行升级的批次;若能保证,则将第一批次所包括的待升级节点确定为当前升级批次的待升级节点对应的目标节点;若均不能保证,则判断除第一批次和当前升级批次之外的其他批次中,最后进行升级的批次所包括的待升级节点能否保证当前升级批次的待升级节点中待升级业务的数据的可靠性;如此重复,直到确定目标节点。In a possible design, the above method of "the management node determining the target node corresponding to the node to be upgraded in the current upgrade batch" includes: the management node determines whether the nodes to be upgraded included in the first batch can guarantee the current upgrade batch The reliability of the data of the business to be upgraded in the node to be upgraded. The first batch here is the batch that is the last to be upgraded among the batches other than the current upgrade batch; if it can be guaranteed , The node to be upgraded included in the first batch is determined to be the target node corresponding to the node to be upgraded in the current upgrade batch; if none of the guarantees are available, then other batches except the first batch and the current upgrade batch are determined In the second step, whether the nodes to be upgraded included in the last batch to be upgraded can guarantee the reliability of the data of the services to be upgraded in the nodes to be upgraded in the current batch of upgrades; this is repeated until the target node is determined.
在一种可能的设计中,上述升级约束关系通过有向图表示,本申请提供的升级方法还包括:管理节点判断升级约束关系中是否存在死锁互连的待升级节点,该死锁互连的待升级节点为在有向图中形成环形的待升级节点。由于形成环形,死锁互连的待升级节点无法进行升级。相应的,上述“管理节点根据升级约束关系及多个待升级业务中每个待升级业务的最小在线节点数,确定多个待升级节点中并行升级的待升级节点”的方法包括:当多个待升级节点之间的升级约束关系中不存在死锁互连的待升级节点时,管理节点根据升级约束关系及多个待升级业务中每个待升级业务的最小在线节点数,确定多个待升级节点中并行升级的待升级节点。In a possible design, the above upgrade constraint relationship is represented by a directed graph. The upgrade method provided in this application further includes: the management node determines whether there is a deadlock interconnection node to be upgraded in the upgrade constraint relationship, and the deadlock interconnection The node to be upgraded is a node to be upgraded that forms a ring in the directed graph. Due to the formation of a ring, the deadlocked interconnected nodes to be upgraded cannot be upgraded. Correspondingly, the above method of "the management node determines the nodes to be upgraded in parallel among the multiple nodes to be upgraded based on the upgrade constraint relationship and the minimum number of online nodes for each of the multiple services to be upgraded" includes: When there are no deadlocked interconnected nodes to be upgraded in the upgrade constraint relationship between the nodes to be upgraded, the management node determines multiple nodes to be upgraded according to the upgrade constraint relationship and the minimum number of online nodes for each of the multiple services to be upgraded. The node to be upgraded that is upgraded in parallel among the upgraded nodes.
在一种可能的设计中,当升级约束关系中存在死锁互连的待升级节点时,管理节点发出报警信息,以告知管理员/运维人员存在死锁互连的待升级节点,无法进行升级。In a possible design, when there are deadlocked interconnected nodes to be upgraded in the upgrade constraint relationship, the management node sends an alarm message to inform the administrator/operation and maintenance personnel that there are deadlocked interconnected nodes to be upgraded and cannot be performed upgrade.
报警信息用于告知管理员/运维人员存在死锁互连的待升级节点,无法进行升级,以便于管理员/运维人员调整或重新配置对死锁互连的待升级节点的升级约束关系。The alarm information is used to inform the administrators/operations and maintenance personnel that there are deadlocked interconnected nodes to be upgraded and cannot be upgraded, so that the administrators/operations and maintenance personnel can adjust or reconfigure the upgrade constraints on the deadlocked interconnected nodes to be upgraded .
死锁互连的待升级节点为在有向图中形成环形的待升级节点。由于形成环形,死锁互连的待升级节点无法进行升级。为了保证多个待升级节点的顺利升级,管理节点需要确保升级约束关系中不存在死锁互连的待升级节点。The deadlocked interconnected nodes to be upgraded are the nodes to be upgraded that form a ring in the directed graph. Due to the formation of a ring, the deadlocked interconnected nodes to be upgraded cannot be upgraded. In order to ensure the smooth upgrade of multiple nodes to be upgraded, the management node needs to ensure that there are no deadlocked interconnected nodes to be upgraded in the upgrade constraint relationship.
在一种可能的设计中,上述“管理节点判断升级约束关系中是否存在死锁互连的待升级节点”的方法包括:管理节点获取有向图中每个待升级节点的入度,并执行第三操作,该第三操作为:确定有向图中入度为零的待升级节点,从有向图中去除入度为零的待升级节点,并更新有向图中剩余待升级节点的入度;之后,管理节点判断剩余待升级节点中是否还存在入度为零的待升级节点;如果存在,则返回执行第三操作;如果不存在,则确定升级约束关系中存在死锁互连的待升级节点。In a possible design, the above method of "the management node judging whether there are deadlocked interconnected nodes to be upgraded in the upgrade constraint relationship" includes: the management node obtains the in-degree of each node to be upgraded in the directed graph, and executes The third operation, the third operation is: determine the node to be upgraded with zero indegree in the directed graph, remove the node to be upgraded with zero indegree from the directed graph, and update the remaining nodes to be upgraded in the directed graph In degree; after that, the management node determines whether there is a node to be upgraded with zero in degree among the remaining nodes to be upgraded; if it exists, it returns to perform the third operation; if it does not exist, it determines that there is a deadlock interconnection in the upgrade constraint relationship The node to be upgraded.
有向图中入度为零的待升级节点可以升级,且升级时不受其他节点的约束。因此,若某一/某些待升级节点的入度为零,则说明该待升级节点没有形成环形,不是死锁互连的待升级节点。若有向图中不存在入度为零的待升级节点,且待升级节点的数量不为零,则说明这些待升级节点形成了环形,均无法进行升级,也就是说这些待升级节点为死锁互连的待升级节点。基于此,管理节点确定升级约束关系中是否存在死锁互连的待升级节点。The node to be upgraded whose entry degree is zero in the directed graph can be upgraded and is not restricted by other nodes during the upgrade. Therefore, if the in-degree of a certain/certain node to be upgraded is zero, it means that the node to be upgraded does not form a ring, and it is not a deadlocked interconnected node to be upgraded. If there is no node to be upgraded with a zero entry degree in the directed graph, and the number of nodes to be upgraded is not zero, it means that these nodes to be upgraded form a ring and cannot be upgraded, which means that these nodes to be upgraded are dead. Lock the interconnected nodes to be upgraded. Based on this, the management node determines whether there are deadlocked interconnected nodes to be upgraded in the upgrade constraint relationship.
第二方面,本申请提供了一种管理节点,用于执行第一方面或第一方面任一种可能的设计中的方法的各个模块。In the second aspect, this application provides a management node for executing each module of the first aspect or any one of the possible design methods in the first aspect.
第三方面,本申请提供了一种升级装置,该升级装置包括存储器和处理器,存储器用于存储计算机执行指令,该升级装置运行时,该处理器执行该存储器中的计算机执行指令以利用该升级装置中的硬件资源执行第一方面或第一方面任一种可能的设计中的方法的操作步骤。该装置具体可以是管理节点或者芯片。In a third aspect, the present application provides an upgrade device. The upgrade device includes a memory and a processor. The memory is used to store computer execution instructions. When the upgrade device is running, the processor executes the computer execution instructions in the memory to use the The hardware resources in the upgrade device execute the operation steps of the first aspect or any one of the possible designs in the first aspect. The device may specifically be a management node or a chip.
第四方面,本申请还提供了一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使得计算机执行上述第一方面或第一方面任一种可能的设计中任一种可能的方法的操作步骤。In a fourth aspect, the present application also provides a computer-readable storage medium, including instructions, which when run on a computer, cause the computer to execute any of the above-mentioned first aspect or any of the possible designs of the first aspect The steps of a possible method.
第五方面,本申请还提供了一种计算机程序产品,包括指令,当所述指令在计算机上运行时,使得计算机执行上述第一方面或第一方面任一种可能的设计中的任一种可能的方法的操作步骤。In the fifth aspect, this application also provides a computer program product, including instructions, which when run on a computer, cause the computer to execute any of the above-mentioned first aspect or any of the possible designs of the first aspect Possible method steps.
可以理解的是,上述提供的任一种管理节点、升级装置、计算机可读存储介质或计算机程序产品均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考对应的方法中的有益效果,此处不再赘述。It can be understood that any of the management nodes, upgrade devices, computer-readable storage media, or computer program products provided above are all used to execute the corresponding methods provided above. Therefore, the beneficial effects that can be achieved can be referred to The beneficial effects of the corresponding method will not be repeated here.
附图说明Description of the drawings
图1为本发明实施例中分布式系统中业务的部署示意图;Figure 1 is a schematic diagram of service deployment in a distributed system in an embodiment of the present invention;
图2为本发明实施例中分布式系统的结构示意图一;Figure 2 is a structural schematic diagram 1 of a distributed system in an embodiment of the present invention;
图3为本发明实施例中管理节点的硬件结构示意图;3 is a schematic diagram of the hardware structure of a management node in an embodiment of the present invention;
图4为本发明实施例中分布式系统中的业务升级方法的流程示意图;4 is a schematic flowchart of a service upgrade method in a distributed system in an embodiment of the present invention;
图5为本发明实施例中生成有向图的流程示意图;FIG. 5 is a schematic diagram of a flow of generating a directed graph in an embodiment of the present invention;
图6为本发明实施例中存在死锁互连的待升级节点的有向图的示意图;6 is a schematic diagram of a directed graph of nodes to be upgraded with deadlock interconnection in an embodiment of the present invention;
图7为本发明实施例中确定待升级业务所允许的并行升级最大节点数的流程示意图;FIG. 7 is a schematic diagram of a process of determining the maximum number of nodes that are allowed to be upgraded in parallel in an embodiment of the present invention;
图8为本发明实施例中生成第一方案的示意图;FIG. 8 is a schematic diagram of generating a first scheme in an embodiment of the present invention;
图9为本发明实施例中生成第二方案的示意图;FIG. 9 is a schematic diagram of generating a second solution in an embodiment of the present invention;
图10为本发明实施例中管理节点的结构示意图。Fig. 10 is a schematic structural diagram of a management node in an embodiment of the present invention.
具体实施方式Detailed ways
分布式系统中的系统软件通常包括多个业务,这些业务分布在分布式系统的多个节点上。在升级系统软件时,需要对该系统软件的各个业务进行升级。实际应用中,系统软件中的各个业务在升级时存在先后顺序,如业务A必须在业务B升级完成后才能升级,这就使得部署有系统软件中业务的节点在升级时也存在先后顺序。本发明实施例将节点在升级时的先后顺序称为升级约束关系。The system software in a distributed system usually includes multiple services, which are distributed on multiple nodes of the distributed system. When upgrading the system software, each business of the system software needs to be upgraded. In actual applications, there is a sequence of upgrades for each service in the system software. For example, service A must be upgraded after service B is upgraded. This makes the nodes deployed with services in the system software have a sequence during upgrade. In the embodiment of the present invention, the sequence of nodes during upgrade is referred to as an upgrade constraint relationship.
本发明实施例提供一种对分布式系统中的业务进行升级的方法。该方法在满足多个节点之间的升级约束关系的前提下,确定多个节点中能够并行升级的节点,以减少升级时长,提升升级效率。The embodiment of the present invention provides a method for upgrading services in a distributed system. The method determines the nodes that can be upgraded in parallel among the multiple nodes on the premise that the upgrade constraint relationship between the multiple nodes is satisfied, so as to reduce the upgrade time and improve the upgrade efficiency.
本发明实施例提供的分布式系统包括但不限于分布式存储系统、分布式文件系统。The distributed systems provided by the embodiments of the present invention include, but are not limited to, distributed storage systems and distributed file systems.
图2示出了本发明实施例提供的分布式系统的一种结构。如图2所示,该分布式系统包括管理节点20和多个待升级节点21。本发明实施例将需要进行升级的系统软件所包括的业务称为待升级业务,将部署有一个或多个待升级业务的节点称为待升级节点。Figure 2 shows a structure of a distributed system provided by an embodiment of the present invention. As shown in FIG. 2, the distributed system includes a management node 20 and multiple nodes 21 to be upgraded. In the embodiment of the present invention, the service included in the system software that needs to be upgraded is called the service to be upgraded, and the node where one or more services to be upgraded are deployed is called the node to be upgraded.
待升级节点21可以为物理机(如服务器),也可以为部署在物理机上的虚拟机(virtual machine,VM)。The node 21 to be upgraded may be a physical machine (such as a server), or a virtual machine (virtual machine, VM) deployed on the physical machine.
管理节点20用于管理各个待升级节点21,例如:对各个待升级节点21所运行的待升级业务进行升级。本实施例中,管理节点20是一个独立的物理机或虚拟机。但在其他实施例中,管理节点20也可以为分布式系统中的任意一个待升级节点。The management node 20 is used to manage each node 21 to be upgraded, for example: upgrade the service to be upgraded run by each node 21 to be upgraded. In this embodiment, the management node 20 is an independent physical machine or virtual machine. However, in other embodiments, the management node 20 may also be any node to be upgraded in the distributed system.
图3示出了本发明实施例中管理节点20的一种硬件结构。如图3所示,管理节点20包括处理器31,存储器32、通信接口33、总线34。处理器31,存储器32以及通信接口33之间可以通过总线34连接。Fig. 3 shows a hardware structure of the management node 20 in the embodiment of the present invention. As shown in FIG. 3, the management node 20 includes a processor 31, a memory 32, a communication interface 33, and a bus 34. The processor 31, the memory 32, and the communication interface 33 may be connected by a bus 34.
处理器31是管理节点20的控制中心,可以是一个通用中央处理单元(central processing unit,CPU),也可以是其他通用处理器等。其中,通用处理器可以是微处理器或者是任何常规的处理器等。The processor 31 is the control center of the management node 20, and may be a general-purpose central processing unit (central processing unit, CPU), or other general-purpose processors. Among them, the general-purpose processor may be a microprocessor or any conventional processor.
作为一个示例,处理器31可以包括一个或多个CPU,例如图3中所示的CPU 0和CPU 1。As an example, the processor 31 may include one or more CPUs, such as CPU 0 and CPU 1 shown in FIG. 3.
存储器32可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。The memory 32 may be a read-only memory (ROM) or other types of static storage devices that can store static information and instructions, random access memory (RAM), or other types that can store information and instructions The dynamic storage device can also be electrically erasable programmable read-only memory (EEPROM), magnetic disk storage media or other magnetic storage devices, or can be used to carry or store instructions or data structures The desired program code and any other medium that can be accessed by the computer, but not limited to this.
一种可能的实现方式中,存储器32可以独立于处理器31存在。存储器32可以通过总线34与处理器31相连接,用于存储指令或者程序代码。处理器31调用并执行存储器32中存储的指令或程序代码时,能够实现本发明实施例提供的分布式系统中的业务升级方法。In a possible implementation manner, the memory 32 may exist independently of the processor 31. The memory 32 may be connected to the processor 31 through a bus 34, and is used to store instructions or program codes. When the processor 31 calls and executes the instructions or program codes stored in the memory 32, it can implement the service upgrade method in the distributed system provided by the embodiment of the present invention.
另一种可能的实现方式中,存储器32也可以和处理器31集成在一起。In another possible implementation manner, the memory 32 may also be integrated with the processor 31.
通信接口33,用于管理节点20与其他设备(如待升级节点21)通过通信网络连接,所述通信网络可以是以太网,无线接入网(radio access network,RAN),无线局域网(wireless local area networks,WLAN)等。通信接口33可以包括用于接收数据的接收单元,以及用于发送数据的发送单元。The communication interface 33 is used to connect the management node 20 with other devices (such as the node 21 to be upgraded) through a communication network. The communication network may be Ethernet, radio access network (RAN), or wireless local area network (RAN). area networks, WLAN), etc. The communication interface 33 may include a receiving unit for receiving data, and a sending unit for sending data.
总线34,可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component Interconnect,PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。The bus 34 may be an Industry Standard Architecture (ISA) bus, Peripheral Component Interconnect (PCI) bus, or Extended Industry Standard Architecture (EISA) bus, etc. The bus can be divided into address bus, data bus, control bus, etc. For ease of representation, only one thick line is used in FIG. 3 to represent, but it does not mean that there is only one bus or one type of bus.
需要指出的是,图3中示出的结构并不构成对该管理节点的限定,除图3所示部件之外,该管理节点20可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。It should be pointed out that the structure shown in FIG. 3 does not constitute a limitation on the management node. In addition to the components shown in FIG. 3, the management node 20 may include more or less components than those shown in the figure, or a combination Certain components, or different component arrangements.
与管理节点20的硬件结构类似,待升级节点21也包括处理器、存储器、通信接口、总线等组件。与管理节点20不同的是,待升级节点21中的处理器在调用并执行存储器中存储的指令或程序代码时,用于完成待升级节点21的功能,例如:执行待升 级业务,或者根据管理节点的命令,对待升级业务进行升级等。而管理节点20中的处理器在调用并执行存储器中存储的指令或程序代码时,用于完成管理节点20的功能,例如:确定并行升级的待升级节点等。Similar to the hardware structure of the management node 20, the node 21 to be upgraded also includes components such as a processor, a memory, a communication interface, and a bus. Different from the management node 20, the processor in the node 21 to be upgraded is used to complete the functions of the node 21 to be upgraded when calling and executing instructions or program codes stored in the memory, such as executing the service to be upgraded, or according to management Node commands, upgrades to be upgraded, etc. When the processor in the management node 20 calls and executes instructions or program codes stored in the memory, it is used to complete the functions of the management node 20, for example: determining the nodes to be upgraded for parallel upgrades.
下面结合附图对本发明实施例提供的分布式系统中的业务升级方法进行描述。The service upgrade method in the distributed system provided by the embodiment of the present invention will be described below with reference to the accompanying drawings.
图4为本发明实施例提供的分布式系统中的业务升级方法的一种流程示意图。如图4所示,该业务升级方法包括:FIG. 4 is a schematic flowchart of a service upgrade method in a distributed system provided by an embodiment of the present invention. As shown in Figure 4, the service upgrade method includes:
S401、管理节点20获取多个待升级节点21之间的升级约束关系。S401: The management node 20 obtains the upgrade constraint relationship among multiple nodes 21 to be upgraded.
本发明实施例中的升级约束关系用于表示多个待升级节点21在升级时的先后顺序。The upgrade constraint relationship in the embodiment of the present invention is used to indicate the sequence of multiple nodes 21 to be upgraded during the upgrade.
某一待升级节点21中部署的待升级业务,必须在其他待升级节点21中部署的待升级业务升级完成后才能升级。也就是说,某一待升级节点21必须在其他待升级节点21升级完成后才能升级。A service to be upgraded deployed in a node 21 to be upgraded can only be upgraded after the service to be upgraded deployed in other nodes to be upgraded 21 is upgraded. In other words, a certain node 21 to be upgraded can only be upgraded after the upgrade of other nodes 21 to be upgraded is completed.
例如,节点1中部署有业务1、节点2中部署有业务1及业务2,而业务1必须在业务2升级后才能升级,这样,节点1必须在节点2升级后才能升级。这就形成了节点1与节点2之间的升级约束关系。For example, node 1 is deployed with service 1 and node 2 is deployed with service 1 and service 2, and service 1 must be upgraded after service 2 is upgraded. In this way, node 1 must be upgraded after node 2 is upgraded. This forms the upgrade constraint relationship between node 1 and node 2.
管理节点20采用有向图表示所述多个待升级节点21之间的升级约束关系。在本发明实施例的有向图中,待升级节点21之间采用有向边连接,箭头端的待升级节点21必须在非箭头端的待升级节点21升级之后升级。The management node 20 uses a directed graph to represent the upgrade constraint relationship among the multiple nodes 21 to be upgraded. In the directed graph of the embodiment of the present invention, the nodes 21 to be upgraded are connected by directed edges, and the node 21 to be upgraded at the arrow end must be upgraded after the node 21 to be upgraded at the non-arrow end is upgraded.
示例性的,若多个待升级节点包括节点1、节点2、节点3、节点4、节点5和节点6,这6个待升级节点之间的升级约束关系为:节点1需要在节点2和节点6完成升级后才能升级(约束关系1),节点2需要在节点5完成升级后才能升级(约束关系2),节点3需要在节点4和节点5完成升级后才能升级(约束关系3);节点4需要在节点5完成升级之后才能升级(约束关系4);则管理节点20根据该升级约束关系,采用图5所示的流程生成有向图。该有向图能够反映出约束关系1~约束关系4。Exemplarily, if multiple nodes to be upgraded include node 1, node 2, node 3, node 4, node 5, and node 6, the upgrade constraint relationship between these 6 nodes to be upgraded is: node 1 needs to be between node 2 and node 2. Node 6 can be upgraded after the upgrade is completed (constraint relationship 1), node 2 can be upgraded after node 5 is upgraded (constraint relationship 2), and node 3 can be upgraded after node 4 and node 5 are upgraded (constraint relationship 3); The node 4 needs to be upgraded after the node 5 is upgraded (constraint relationship 4); then the management node 20 uses the process shown in FIG. 5 to generate a directed graph according to the upgrade constraint relationship. The directed graph can reflect constraint relationship 1 to constraint relationship 4.
S402、管理节点20判断多个待升级节点21之间的升级约束关系中是否存在死锁互连的待升级节点21。S402: The management node 20 judges whether there are deadlocked interconnected nodes 21 to be upgraded in the upgrade constraint relationship between the multiple nodes 21 to be upgraded.
死锁互连的待升级节点是指多个待升级节点21之间的约束关系形成一个环形。形成死锁互连的各个待升级节点21无法进行升级。The deadlocked interconnected nodes to be upgraded means that the constraint relationship between multiple nodes to be upgraded 21 forms a ring. Each node 21 to be upgraded that forms a deadlock interconnection cannot be upgraded.
示例性的,在图6所示的有向图中,节点3、节点4以及节点5形成一个环形,节点5需要在节点3完成升级后才能升级,节点4需要在节点5完成升级后才能升级,节点3需要在节点4完成升级后才能升级。也就是说,节点3、节点4以及节点5形成死锁互连,节点3、节点4以及节点5均为死锁互连的节点。Exemplarily, in the directed graph shown in Figure 6, node 3, node 4, and node 5 form a ring. Node 5 can be upgraded after node 3 is upgraded, and node 4 can be upgraded after node 5 is upgraded. , Node 3 needs to be upgraded after node 4 is upgraded. That is, node 3, node 4, and node 5 form a deadlock interconnection, and node 3, node 4, and node 5 are all deadlock interconnected nodes.
在图5所示的有向图中,没有构成环形的节点,所以不存在死锁互连的节点。In the directed graph shown in Figure 5, there are no nodes forming a ring, so there are no deadlocked interconnected nodes.
具体地,管理节点20确定多个待升级节点21之间升级约束关系中是否存在死锁互连的待升级节点21的方式为:获取有向图中每个待升级节点21的入度(有向图中指向待升级节点21的箭头的数量),并确定当前入度为零的待升级节点21。入度为零的待升级节点21表示该待升级节点21升级时不受其他节点的约束。从有向图中去除当前入度为零的待升级节点21。在去除当前入度为零的待升级节点21时,与当前入度为零的待升级节点21相关的有向边也同时被去除。管理节点20更新有向图中剩 余待升级节点的入度,并确定剩余待升级节点中当前入度为零的待升级节点21,以及从有向图中去除剩余待升级节点中当前入度为零的待升级节点21,如此,重复执行。如果剩余待升级节点的数量为零,则管理节点20确定有向图不存在死锁互连的待升级节点21;如果有向图中的剩余待升级节点的数量不为零,但却不存在入度为零的待升级节点21,则管理节点20确定有向图中存在死锁互连的节点。Specifically, the way for the management node 20 to determine whether there are deadlocked interconnected nodes 21 to be upgraded in the upgrade constraint relationship among the multiple nodes 21 to be upgraded is to obtain the in-degree of each node 21 to be upgraded in the directed graph (with The number of arrows pointing to the node 21 to be upgraded in the figure), and the node 21 to be upgraded whose current in-degree is zero is determined. The node 21 to be upgraded with an entry degree of zero indicates that the node 21 to be upgraded is not restricted by other nodes when it is upgraded. The node 21 to be upgraded whose current in-degree is zero is removed from the directed graph. When removing the node 21 to be upgraded with a current indegree of zero, the directed edges related to the node to be upgraded 21 with a current indegree of zero are also removed at the same time. The management node 20 updates the in degrees of the remaining nodes to be upgraded in the directed graph, determines the nodes to be upgraded 21 whose current in degrees in the remaining nodes to be upgraded is zero, and removes the current in degrees of the remaining nodes to be upgraded from the directed graph as Zero node 21 to be upgraded, so, repeat execution. If the number of remaining nodes to be upgraded is zero, the management node 20 determines that there are no deadlocked interconnected nodes 21 to be upgraded in the directed graph; if the number of remaining nodes to be upgraded in the directed graph is not zero, but does not exist If the node 21 to be upgraded has an in-degree of zero, the management node 20 determines that there are deadlocked interconnected nodes in the directed graph.
示例性的,在图5示出的有向图中,节点5和节点6的入度均为0,节点2和节点4的入度均为1,节点1和节点3的入度为2。可以看出,当前入度为0的节点为节点5和节点6。管理节点20从图5示出的有向图中去除节点5和节点6,并更新剩余节点(节点1、节点2、节点3和节点4)的入度,剩余节点更新后的入度分别为:节点2和节点4的入度均为0,节点1和节点3的入度为1。此时,当前入度为0的节点为节点2和节点4,管理节点20从有向图中去除剩余节点(节点1、节点2、节点3和节点4)中当前入度为0的节点,即从节点1、节点2、节点3和节点4中去除节点2和节点4,之后,管理节点20更新剩余节点(节点1和节点3)的入度,剩余节点更新后的入度分别为:节点1和节点3的入度为0。相应的,此时,当前入度为0的节点为节点1和节点3,管理节点20去除节点1和节点3,这个时候,剩余节点的数量为0,因此,管理节点20确定图5示出的有向图不存在死锁互连的节点。Exemplarily, in the directed graph shown in FIG. 5, the in-degrees of node 5 and node 6 are both 0, the in-degrees of node 2 and node 4 are both 1, and the in-degrees of node 1 and node 3 are 2. It can be seen that the nodes whose current in-degree is 0 are node 5 and node 6. The management node 20 removes nodes 5 and 6 from the directed graph shown in Figure 5, and updates the in-degrees of the remaining nodes (node 1, node 2, node 3, and node 4). The updated in-degrees of the remaining nodes are : The in-degree of node 2 and node 4 are both 0, and the in-degree of node 1 and node 3 is 1. At this time, the nodes with a current indegree of 0 are node 2 and node 4, and the management node 20 removes the nodes with a current indegree of 0 from the remaining nodes (node 1, node 2, node 3, and node 4) from the directed graph, That is, node 2 and node 4 are removed from node 1, node 2, node 3, and node 4. After that, the management node 20 updates the in degrees of the remaining nodes (node 1 and node 3). The updated in degrees of the remaining nodes are: The in-degree of node 1 and node 3 is 0. Correspondingly, at this time, the nodes whose current in-degree is 0 are node 1 and node 3, and the management node 20 removes node 1 and node 3. At this time, the number of remaining nodes is 0. Therefore, the management node 20 determines that There are no deadlocked interconnected nodes in the directed graph.
在图6所示的有向图中,只有节点6的入度为0,则管理节点20首先从有向图中去除节点6,并更新剩余节点(节点1~节点5)的入度。此时,剩余节点更新后的入度均为1,且剩余节点的数量不为零,因此,管理节点20确定图6示出的有向图中存在死锁互连的节点。In the directed graph shown in FIG. 6, only the in-degree of node 6 is 0, and the management node 20 first removes node 6 from the directed graph and updates the in-degree of the remaining nodes (node 1 to node 5). At this time, the updated in-degrees of the remaining nodes are all 1, and the number of remaining nodes is not zero. Therefore, the management node 20 determines that there are deadlocked interconnected nodes in the directed graph shown in FIG. 6.
若管理节点20确定多个待升级节点21之间的升级约束关系中存在死锁互连的待升级节点21,则执行S403。若管理节点20确定多个待升级节点21之间的升级约束关系中不存在死锁互连的待升级节点21,则执行S404。If the management node 20 determines that there are deadlocked interconnected nodes 21 to be upgraded in the upgrade constraint relationship between the multiple nodes to be upgraded 21, S403 is executed. If the management node 20 determines that there is no deadlocked interconnected node 21 to be upgraded in the upgrade constraint relationship between the plurality of nodes to be upgraded 21, S404 is executed.
S403、管理节点20发出报警信息,以告知管理员/运维人员存在死锁互连的待升级节点,无法进行升级。S403. The management node 20 sends an alarm message to inform the administrator/operation and maintenance personnel that there are deadlocked interconnected nodes to be upgraded, and the upgrade cannot be performed.
该报警信息可以是文字,音频等。例如:报警信息为“存在死锁互连的待升级节点,无法进行升级”。若报警信息是文字,则管理节点20可以显示该报警信息。若报警信息是音频,则管理节点20播出该报警信息。The alarm information can be text, audio, etc. For example: the alarm message is "There are deadlocked interconnected nodes to be upgraded and cannot be upgraded". If the alarm information is text, the management node 20 can display the alarm information. If the alarm information is audio, the management node 20 broadcasts the alarm information.
可选的,报警信息包括死锁互连的待升级节点的标识。例如:报警信息为“节点3、节点4和节点5为死锁互连的待升级节点,无法进行升级”。Optionally, the alarm information includes the identification of the deadlocked interconnected node to be upgraded. For example: the alarm message is "Node 3, Node 4, and Node 5 are deadlocked interconnected nodes to be upgraded and cannot be upgraded".
管理节点20发出报警信息,告知管理员/运维人员存在死锁互连的待升级节点,无法进行升级,以便于管理员/运维人员调整或重新配置对死锁互连的待升级节点的升级约束关系。若调整后的升级约束关系或重新配置的升级约束关系中不再存在死锁互连的待升级节点,则执行S404。The management node 20 sends out an alarm message to inform the administrator/operation and maintenance personnel that there are deadlocked interconnected nodes to be upgraded and cannot be upgraded, so that the administrator/operations and maintenance personnel can adjust or reconfigure the deadlocked interconnected nodes to be upgraded. Upgrade the constraint relationship. If there are no deadlocked interconnected nodes to be upgraded in the adjusted upgrade constraint relationship or the reconfigured upgrade constraint relationship, S404 is executed.
S404、管理节点20获取每个待升级节点21中部署的待升级业务以及每个待升级业务所允许的并行升级最大节点数。S404. The management node 20 obtains the service to be upgraded deployed in each node 21 to be upgraded and the maximum number of nodes that are allowed to be upgraded in parallel for each service to be upgraded.
为了保证待升级业务的连续性,在对待升级业务进行升级时,需要保留一个或多个部署有该待升级业务的节点,暂时不对这些节点进行升级。暂时不进行升级的节点的数量称为该待升级业务所要求的最小在线节点数。待升级业务所要求的最小在线节 点数为预先配置的。In order to ensure the continuity of the service to be upgraded, when the service to be upgraded is upgraded, one or more nodes on which the service to be upgraded is deployed need to be reserved, and these nodes are not upgraded temporarily. The number of nodes that will not be upgraded temporarily is called the minimum number of online nodes required by the service to be upgraded. The minimum number of online nodes required by the service to be upgraded is pre-configured.
在确定待升级业务所要求的最小在线节点数后,管理节点20根据分布式系统中部署有该待升级业务的节点的数量,确定出待升级业务所允许的并行升级最大节点数。即在满足待升级业务所要求的最小在线节点数的条件下,确定能够并行升级的部署有该待升级业务的节点的最大数量。After determining the minimum number of online nodes required by the service to be upgraded, the management node 20 determines the maximum number of parallel upgrade nodes allowed for the service to be upgraded according to the number of nodes on which the service to be upgraded is deployed in the distributed system. That is, under the condition that the minimum number of online nodes required by the service to be upgraded is met, the maximum number of nodes on which the service to be upgraded is deployed that can be upgraded in parallel is determined.
管理节点20从待升级业务的配置文件中,获取每一待升级业务所要求的最小在线节点数和每一待升级业务在分布式系统中的分布信息(如待升级业务1分布在待升级节点1中),并根据每一待升级业务所要求的最小在线节点数和每一待升级业务在分布式系统中的分布信息,确定每个待升级节点21中部署的待升级业务以及每个待升级业务所允许的并行升级最大节点数。The management node 20 obtains the minimum number of online nodes required by each service to be upgraded and the distribution information of each service to be upgraded in the distributed system from the configuration file of the service to be upgraded (for example, service 1 to be upgraded is distributed in the node to be upgraded) 1), and according to the minimum number of online nodes required by each service to be upgraded and the distribution information of each service to be upgraded in the distributed system, determine the service to be upgraded deployed in each node 21 to be upgraded and each service to be upgraded The maximum number of concurrent upgrade nodes allowed for the upgrade business.
示例性的,如图7中的(A)所示,管理节点20获取到每一待升级业务所要求的最小在线节点数和每一待升级业务在分布式系统中的分布信息为:待升级业务1部署在节点5和节点6中,该待升级业务所要求的最小在线节点数为1;待升级业务2部署在节点1和节点2中,该待升级业务所要求的最小在线节点数为1;待升级业务3部署在节点3和节点4中,该待升级业务所要求的最小在线节点数为1。根据这些信息,管理节点20确定出节点1~节点6中每一节点中部署的待升级业务(参考图7中的(B)):节点1中部署有待升级业务2,节点2中部署有待升级业务2,节点3中部署有待升级业务3,节点4中部署有待升级业务3,节点5中部署有待升级业务1,节点6中部署有待升级业务1。由于待升级业务1所要求的最小在线节点数为1,而分布式系统中部署有待升级业务1的节点有两个:节点5和节点6,因此,在升级待升级业务1时,最多只能升级一个节点,即待升级业务1所允许的并行升级最大节点数为1。同理,由于待升级业务2所要求的最小在线节点数为1,而分布式系统中部署有待升级业务2的节点有两个:节点1和节点2,因此,在升级待升级业务2时,最多只能升级一个节点,即待升级业务2所允许的并行升级最大节点数为1。由于待升级业务3所要求的最小在线节点数为1,而分布式系统中部署有待升级业务3的节点有两个:节点3和节点4,因此,在升级待升级业务3时,最多只能升级一个节点,即待升级业务3所允许的并行升级最大节点数为1。图7中的(C)示出了该示例中待升级业务1~待升级业务3中每个业务所允许的并行升级最大节点数。Exemplarily, as shown in FIG. 7(A), the management node 20 obtains the minimum number of online nodes required by each service to be upgraded and the distribution information of each service to be upgraded in the distributed system: Service 1 is deployed in node 5 and node 6. The minimum number of online nodes required for the service to be upgraded is 1; service 2 is deployed in node 1 and node 2, and the minimum number of online nodes required for the service to be upgraded is 1; Service 3 to be upgraded is deployed in node 3 and node 4, and the minimum number of online nodes required by the service to be upgraded is 1. Based on this information, the management node 20 determines the service to be upgraded deployed in each of the nodes 1 to 6 (refer to (B) in Figure 7): the service to be upgraded is deployed in node 1, and the service to be upgraded is deployed in node 2 to be upgraded. Service 2, Node 3 is deployed with service 3 to be upgraded, node 4 is deployed with service 3 to be upgraded, node 5 is deployed with service 1 to be upgraded, and node 6 is deployed with service 1 to be upgraded. Since the minimum number of online nodes required for service 1 to be upgraded is 1, and there are two nodes deployed with service 1 to be upgraded in a distributed system: node 5 and node 6, therefore, when upgrading service 1 to be upgraded, at most Upgrade one node, that is, the maximum number of concurrent upgrade nodes allowed for service 1 to be upgraded is 1. Similarly, since the minimum number of online nodes required for service 2 to be upgraded is 1, and there are two nodes deployed with service 2 to be upgraded in the distributed system: node 1 and node 2, therefore, when upgrading service 2 to be upgraded, Only one node can be upgraded at most, that is, the maximum number of concurrent upgrade nodes allowed for service 2 to be upgraded is 1. Since the minimum number of online nodes required for service 3 to be upgraded is 1, and there are two nodes deployed with service 3 to be upgraded in a distributed system: node 3 and node 4, when upgrading service 3 to be upgraded, at most Upgrade one node, that is, the maximum number of concurrent upgrade nodes allowed for service 3 to be upgraded is 1. (C) in FIG. 7 shows the maximum number of nodes that are allowed to be upgraded in parallel for each of the business 1 to business 3 to be upgraded in this example.
S405、管理节点20根据多个待升级节点21之间的约束关系及每个待升级节点21中部署的待升级业务所允许的并行升级最大节点数,确定升级多个待升级节点21的批次。S405. The management node 20 determines the batch to upgrade the multiple nodes 21 to be upgraded according to the constraint relationship between the multiple nodes 21 to be upgraded and the maximum number of nodes that are allowed to be upgraded in parallel for the services to be upgraded deployed in each node 21 to be upgraded. .
从前面描述可知,有向图中入度为零的待升级节点21,在升级时完全不受其他待升级节点21的约束。因此,管理节点20可以选择先对入度为零的待升级节点21进行升级。为了保证入度为零的待升级节点21中部署的待升级业务的连续性,管理节点20还需要根据“入度为零的待升级节点21中部署的待升级业务”以及“入度为零的待升级节点21中部署的每一待升级业务所允许的并行升级最大节点数”,从入度为零的待升级节点21中确定第一批次升级的待升级节点21。例如,图5中入度为零的待升级节点为节点5及节点6。从图7中的(B)中可以查到节点5及节点6中部署的业务均为业务1。另外,从图7中的(C)中可以查到业务1所允许的并行升级最大节点 数为1,则可以确定第一批次升级的节点是节点5或者节点6。这样,第一批次升级的待升级节点是节点5为一种升级方案(将该方案称为第一方案),第一批次升级的待升级节点是节点6为另一种升级方案(将该方案称为第二方案)。From the foregoing description, it can be seen that the node 21 to be upgraded whose in-degree is zero in the directed graph is not restricted by other nodes 21 to be upgraded during the upgrade. Therefore, the management node 20 may choose to first upgrade the node 21 to be upgraded whose in-degree is zero. In order to ensure the continuity of the service to be upgraded deployed in the node 21 to be upgraded with an in-degree of zero, the management node 20 also needs to be based on "the service to be upgraded deployed in the node to be upgraded 21 with an in-degree of zero" and "the in-degree is zero. The maximum number of parallel upgrade nodes allowed for each service to be upgraded deployed in the nodes 21 to be upgraded", the nodes to be upgraded 21 for the first batch of upgrades are determined from the nodes to be upgraded 21 whose in-degree is zero. For example, the nodes to be upgraded whose in-degree is zero in Fig. 5 are node 5 and node 6. From (B) in Figure 7, it can be found that the services deployed in node 5 and node 6 are all service 1. In addition, it can be found from (C) in Fig. 7 that the maximum number of concurrent upgrade nodes allowed for service 1 is 1, and it can be determined that the first batch of upgraded nodes is node 5 or node 6. In this way, the node to be upgraded for the first batch of upgrade is node 5 as an upgrade plan (this plan is called the first plan), and the node to be upgraded for the first batch of upgrade is node 6 as another upgrade plan (the This program is called the second program).
若在确定第一批次升级的待升级节点21时存在多种升级方案,则管理节点20分别确定每种升级方案升级完所有的待升级节点21所需要的批次。If there are multiple upgrade plans when determining the nodes 21 to be upgraded to be upgraded in the first batch, the management node 20 respectively determines the batches required for each upgrade plan to upgrade all the nodes 21 to be upgraded.
管理节点20确定每种升级方案升级完所有的待升级节点21所需要的批次的方法为:管理节点20从有向图中去除第一批次升级的待升级节点21,例如,如图8所示,当采用第一方案时,首先从有向图中去除节点5。在去除第一批次升级的待升级节点21后,管理节点20更新有向图中剩余待升级节点的入度,并确定剩余待升级节点中入度为零的待升级节点21。如图8所示,在去除节点5之后,节点1、节点2、节点3、节点4以及节点6中入度为零的节点有节点2、节点4、节点6。然后,管理节点20根据“剩余待升级节点中入度为零的待升级节点21中部署的待升级业务”和“入度为零的待升级节点21中部署的每一待升级业务所允许的并行升级最大节点数”,从剩余待升级节点中入度为零的待升级节点21中确定第二批次升级的待升级节点21。例如,图8中节点2中部署有待升级业务2,节点4中部署有待升级业务3,节点6中部署有待升级业务1,且待升级业务1所允许的并行升级最大节点数、待升级业务2所允许的并行升级最大节点数和待升级业务3所允许的并行升级最大节点数均为1,因此,并行升级节点2、节点4和节点6不会对待升级业务1、待升级业务2和待升级业务3的连续性造成影响,这样,管理节点20确定第二批次升级的待升级节点为节点2、节点4和节点6。The method for the management node 20 to determine the batches required to upgrade all the nodes 21 to be upgraded for each upgrade scheme is: the management node 20 removes the nodes 21 to be upgraded in the first batch of upgrades from the directed graph, for example, as shown in FIG. 8 As shown, when the first scheme is adopted, node 5 is first removed from the directed graph. After removing the nodes 21 to be upgraded in the first batch of upgrades, the management node 20 updates the in-degree of the remaining nodes to be upgraded in the directed graph, and determines the node to-be-upgraded 21 whose in-degree is zero among the remaining nodes to be upgraded. As shown in FIG. 8, after node 5 is removed, the nodes with zero in-degree of node 1, node 2, node 3, node 4, and node 6 include node 2, node 4, and node 6. Then, the management node 20 according to "the service to be upgraded deployed in the node 21 to be upgraded with zero in-degree of the remaining nodes to be upgraded" and "the service to be upgraded deployed in the node to be upgraded 21 with zero in-degree is allowed Maximum number of nodes to be upgraded in parallel", the nodes to be upgraded 21 for the second batch of upgrades are determined from the nodes to be upgraded 21 whose in-degree is zero among the remaining nodes to be upgraded. For example, in Figure 8, the node 2 deploys service 2 to be upgraded, the node 4 deploys the service 3 to be upgraded, the node 6 deploys the service 1 to be upgraded, and the maximum number of concurrent upgrade nodes allowed by the service 1 to be upgraded, the service 2 to be upgraded The maximum number of parallel upgrade nodes allowed and the maximum number of parallel upgrade nodes allowed for service 3 to be upgraded are both 1. Therefore, parallel upgrade of node 2, node 4, and node 6 will not upgrade service 1, service 2 and service to be upgraded. The continuity of the upgrade service 3 is affected. In this way, the management node 20 determines that the nodes to be upgraded in the second batch of upgrades are node 2, node 4, and node 6.
如果在确定第二批次升级的待升级节点21时也存在多种升级方案,则管理节点20也需要分别确定每种升级方案升级完剩余待升级节点21所需要的批次。If there are multiple upgrade schemes when determining the nodes 21 to be upgraded to be upgraded in the second batch, the management node 20 also needs to separately determine the batches required for each upgrade scheme to upgrade the remaining nodes 21 to be upgraded.
在确定出第二批次升级的待升级节点21后,管理节点20继续从有向图中去除第二批次升级的待升级节点,并以确定第一批次升级的待升级节点21和第二批次升级的待升级节点21的方式确定对剩余待升级节点21的批次,直到有向图中不存在待升级节点21。如图8所示,在去除节点2、节点4和节点6后,节点1和节点3的入度均为0,管理节点20确定节点1及节点3可以并行升级,将节点1及节点3作为第三批次升级的待升级节点。在删除节点1及节点3之后,有向图中不存在节点,则管理节点20确定采用第一方案需要分3个批次完成所有待升级节点的升级,具体为:第一批次:节点5→第二批次:节点2、节点4、节点6→第三批次:节点1、节点3。After determining the nodes to be upgraded 21 for the second batch of upgrades, the management node 20 continues to remove the nodes to be upgraded for the second batch of upgrades from the directed graph, and determines the nodes to be upgraded 21 and the first batch of upgrades. The method of upgrading the nodes 21 to be upgraded in the second batch determines the batches of the remaining nodes 21 to be upgraded until there is no node 21 to be upgraded in the directed graph. As shown in Figure 8, after removing node 2, node 4, and node 6, the in-degrees of node 1 and node 3 are both 0, and the management node 20 determines that node 1 and node 3 can be upgraded in parallel, taking node 1 and node 3 as The node to be upgraded for the third batch of upgrades. After deleting node 1 and node 3, there are no nodes in the directed graph, then the management node 20 determines that the first solution needs to be upgraded in 3 batches to complete the upgrade of all nodes to be upgraded, specifically: the first batch: node 5 →The second batch: node 2, node 4, node 6 → the third batch: node 1, node 3.
结合上述描述,对管理节点20确定采用第二方案升级完所有的待升级节点21所需要的批次的方法进行描述,该方法与上述管理节点20采用第一方案升级完所有的待升级节点21所需要的批次的方法相同。图9示出了管理节点20确定采用第二方案升级完所有的待升级节点21所需要的批次的过程。首先,管理节点20去除第一批次升级的待升级节点:节点6,并更新剩余节点(节点1~节点5)的入度,剩余节点更新后的入度分别为:节点5的入度为0,节点1、节点2和节点4的入度均为1,节点3的入度为2。由于入度为0的节点5部署有待升级业务1,且待升级业务1所允许的并行升级最大节点数为1,因此,管理节点20确定第二批次升级的待升级节点为节点5。在确定第二批次升级的待升级节点为节点5后,管理节点20去除节点5,并更新剩余 节点(节点1~节点4)的入度,剩余节点更新后的入度分别为:节点2和节点4的入度为0,节点1和节点3的入度为1。由于节点2中部署有待升级业务2,节点4中部署有待升级业务3,且待升级业务2所允许的并行升级最大节点数和待升级业务3所允许的并行升级最大节点数均为1,因此,并行升级节点2和节点4不会对待升级业务2和待升级业务3的连续性造成影响,这样,管理节点20确定第三批次升级的待升级节点为节点2和节点4。在确定第三批次升级的待升级节点为节点2和节点4后,管理节点20去除节点2和节点4,剩余节点中节点1和节点3的入度均为0,管理节点20确定节点1及节点3可以并行升级,将节点1及节点3作为第四批次升级的待升级节点。在删除节点1及节点3之后,有向图中不存在节点,则管理节点20确定采用第二方案需要分4个批次完成所有待升级节点的升级,具体为:第一批次:节点6→第二批次:节点5→第三批次:节点2、节点4→第四批次:节点1、节点3。In combination with the above description, the method for the management node 20 to determine the batches required to upgrade all the nodes 21 to be upgraded using the second solution is described. This method is the same as that of the management node 20 using the first solution to upgrade all the nodes 21 to be upgraded. The method for the required batch is the same. FIG. 9 shows a process in which the management node 20 determines the batches required to upgrade all the nodes 21 to be upgraded using the second scheme. First, the management node 20 removes the node to be upgraded in the first batch of upgrades: node 6, and updates the in-degree of the remaining nodes (node 1 to node 5). The updated in-degree of the remaining nodes are: the in-degree of node 5 is 0, the in-degree of node 1, node 2, and node 4 are all 1, and the in-degree of node 3 is 2. Since the node 5 with an entry degree of 0 is deployed with service 1 to be upgraded, and the maximum number of concurrent upgrade nodes allowed for service 1 to be upgraded is 1, the management node 20 determines that the node to be upgraded for the second batch of upgrades is node 5. After determining that the node to be upgraded for the second batch of upgrade is node 5, the management node 20 removes node 5 and updates the in-degrees of the remaining nodes (node 1 to node 4). The updated in-degrees of the remaining nodes are: node 2 And the in-degree of node 4 is 0, and the in-degree of node 1 and node 3 is 1. Since service 2 to be upgraded is deployed in node 2 and service 3 to be upgraded is deployed in node 4, the maximum number of concurrent upgrade nodes allowed for service 2 to be upgraded and the maximum number of concurrent upgrade nodes allowed for service 3 to be upgraded are both 1, so The parallel upgrade of node 2 and node 4 will not affect the continuity of the service to be upgraded 2 and the service to be upgraded 3. In this way, the management node 20 determines that the nodes to be upgraded in the third batch of upgrades are node 2 and node 4. After determining that the nodes to be upgraded for the third batch of upgrades are node 2 and node 4, management node 20 removes node 2 and node 4, and the in-degrees of node 1 and node 3 in the remaining nodes are both 0, and management node 20 determines node 1 And node 3 can be upgraded in parallel, and node 1 and node 3 are used as the nodes to be upgraded in the fourth batch of upgrades. After deleting node 1 and node 3, there are no nodes in the directed graph, and the management node 20 determines that the second solution needs to be upgraded in 4 batches to complete the upgrade of all nodes to be upgraded, specifically: the first batch: node 6 → The second batch: node 5 → the third batch: node 2, node 4 → the fourth batch: node 1, node 3.
综上,管理节点20根据待升级业务允许的并行升级最大节点数以及待升级节点21之间的约束关系,可以确定出多种升级方案。在确定出多种升级方案后,管理节点20可以根据实际需求从多种升级方案中选出一种升级方案,并根据选出的升级方案进行升级。In summary, the management node 20 can determine a variety of upgrade schemes according to the maximum number of concurrent upgrade nodes allowed by the service to be upgraded and the constraint relationship between the nodes 21 to be upgraded. After determining multiple upgrade solutions, the management node 20 can select one upgrade solution from the multiple upgrade solutions according to actual needs, and perform the upgrade according to the selected upgrade solution.
一般的,采用批次越少的升级方案升级时所耗费的时间越少,因此,管理节点20可以从多种升级方案中选取批次最少的升级方案。Generally, an upgrade solution with fewer batches takes less time to upgrade. Therefore, the management node 20 can select an upgrade solution with the fewest batches from a variety of upgrade solutions.
示例性的,图8示出的第一方案包括3个批次(第一批次~第三批次),图9示出的第二方案包括4个升级批次(第一批次~第四批次),第一方案所包括的批次小于第二方案所包括的批次,因此,管理节点20可以选择采用第一方案升级待升级节点。Exemplarily, the first solution shown in FIG. 8 includes 3 batches (the first batch to the third batch), and the second solution shown in FIG. 9 includes 4 upgrade batches (the first batch to the third batch). Four batches), the batches included in the first solution are smaller than the batches included in the second solution. Therefore, the management node 20 can choose to use the first solution to upgrade the node to be upgraded.
需要说明的是,管理节点20从多种升级方案中选取批次最少的升级方案仅为一种可能的示例,并不作为对于本发明实施例的限定。除了考虑升级所耗费的时间之外,管理节点还可以考虑系统的可靠性、系统负载、空闲资源等因素,更有针对性地选择适应于当前需求的升级方案,本发明实施例对此不再一一赘述。It should be noted that the management node 20 selecting the upgrade solution with the fewest batches from the multiple upgrade solutions is only a possible example, and is not intended as a limitation to the embodiment of the present invention. In addition to considering the time consumed for the upgrade, the management node can also consider factors such as system reliability, system load, idle resources, etc., to more specifically select an upgrade plan that adapts to current needs. This is no longer in the embodiment of the present invention. Go into details one by one.
S406、管理节点20根据确定出的批次,依次指示每个批次中的待升级节点21升级。S406: The management node 20 sequentially instructs the nodes 21 to be upgraded in each batch to upgrade according to the determined batches.
在多个批次的场景中,管理节点20向第一批次中的待升级节点21发送升级指示,以指示第一批次中的待升级节点21升级。在第一批次中的待升级节点21升级结束后,管理节点20向第二批次中的待升级节点21发送升级指示,以指示第二批次中的待升级节点21升级。如此,重复执行,直到所有的待升级节点21均升级结束。In a scenario of multiple batches, the management node 20 sends an upgrade instruction to the nodes 21 to be upgraded in the first batch to instruct the nodes 21 to be upgraded in the first batch to upgrade. After the upgrade of the nodes 21 to be upgraded in the first batch is completed, the management node 20 sends an upgrade instruction to the nodes 21 to be upgraded in the second batch to instruct the nodes 21 to be upgraded in the second batch to upgrade. In this way, the execution is repeated until all the nodes 21 to be upgraded are upgraded.
一般的,为了保证业务的顺利执行以及数据的完整性,在升级节点中的某一业务时,需要把节点中该业务的数据迁移到别的节点上。当该业务升级完成后,还需要将别的节点中该业务的数据回迁到该节点上。Generally, in order to ensure the smooth execution of the service and the integrity of the data, when a certain service in the node is upgraded, the data of the service in the node needs to be migrated to another node. When the service upgrade is completed, the data of the service in other nodes needs to be migrated back to the node.
示例性的,在需要对节点5中的业务1进行升级时,节点5将节点5中业务1的数据迁移到节点1上;在节点5升级完成后,将业务1的数据再从节点1回迁到节点5中。Exemplarily, when the service 1 in node 5 needs to be upgraded, node 5 migrates the data of service 1 in node 5 to node 1; after the upgrade of node 5 is completed, the data of service 1 is migrated back from node 1 Go to node 5.
本发明实施例中的管理节点20在第一批次中的待升级节点21升级结束后,向第二批次中的待升级节点21发送升级指示,实现了“第二批次中待升级节点21的升级”和“第一批次中待升级节点21的数据回迁”的同步。In the embodiment of the present invention, the management node 20 sends an upgrade instruction to the node 21 to be upgraded in the second batch after the upgrade of the node 21 to be upgraded in the first batch is completed, so as to realize "the node to be upgraded in the second batch Synchronization of "21 upgrade" and "data migration of node 21 to be upgraded in the first batch".
也就是说,本发明实施例提供的方案实现了“第i批次中待升级节点21的升级”和“第i-1批次中待升级节点21的数据回迁”的同步,有效地提高了升级效率。In other words, the solution provided by the embodiment of the present invention realizes the synchronization of "the upgrade of the node 21 to be upgraded in the i-th batch" and the "data back migration of the node 21 to be upgraded in the i-1th batch", which effectively improves Upgrade efficiency.
对于每一待升级节点21而言,管理节点20可以根据确定出的批次以及待升级业务的数据的可靠性,为该待升级节点21确定数据迁移的目的节点。这样,管理节点20即可向待升级节点21发送包括目的节点的标识的升级指示,以指示将待升级业务的数据迁移到目的节点后,完成该待升级业务的升级。For each node 21 to be upgraded, the management node 20 may determine a data migration destination node for the node 21 to be upgraded according to the determined batch and the reliability of the data of the service to be upgraded. In this way, the management node 20 can send an upgrade instruction including the identifier of the destination node to the node 21 to be upgraded to instruct to complete the upgrade of the service to be upgraded after migrating the data of the service to be upgraded to the destination node.
在分布式系统中,为了提高数据的可靠性,某一业务的数据往往采用条带(strip)或多副本的方式存储于不同的节点上。管理节点20确定目的节点时,需要考虑将业务数据迁移后,能够保证该业务数据的可靠性。In a distributed system, in order to improve the reliability of the data, the data of a certain service is often stored on different nodes in a strip or multiple copies. When the management node 20 determines the destination node, it needs to consider that the reliability of the service data can be guaranteed after the service data is migrated.
例如,业务1的数据采用多副本的方式存储于节点1和节点2,则管理节点20不能将节点2确定为节点1执行数据迁移的目的节点。如果将节点1中业务1的数据迁移到节点2中,则分布式系统中只有节点2存储有业务1的数据,一旦节点2发生故障,或者节点2中业务1的数据发生毁坏,则业务1将无法在该分布式系统中运行。For example, if the data of service 1 is stored in node 1 and node 2 in multiple copies, the management node 20 cannot determine node 2 as the destination node for node 1 to perform data migration. If the data of business 1 in node 1 is migrated to node 2, only node 2 in the distributed system stores the data of business 1. Once node 2 fails, or the data of business 1 in node 2 is destroyed, then business 1 Will not be able to run in this distributed system.
对于某一批次(以批次b为例)中的每一待升级节点而言,管理节点20可以先判断除批次b之外的其他批次中,最后进行升级的批次(以批次a为例)所包括的待升级节点21作为目的节点时,能否保证数据的可靠性。若批次a中的待升级节点21作为目的节点时能保证数据的可靠性,则管理节点20将批次a中的待升级节点21确定为目的节点。若批次a中的每一待升级节点21作为目的节点均不能保证数据的可靠性,则管理节点20判断除批次b和批次a之外的其他批次中,最后进行升级的批次所包括的待升级节点21作为目的节点时,能否保证数据的可靠性。如此,重复执行,直到确定出目的节点。For each node to be upgraded in a certain batch (take batch b as an example), the management node 20 can first determine the batch to be upgraded in the batches other than batch b (take batch b as an example). Step a is an example) When the included node 21 to be upgraded serves as the destination node, can the reliability of the data be guaranteed. If the data reliability can be guaranteed when the node 21 to be upgraded in batch a serves as the destination node, the management node 20 determines the node 21 to be upgraded in batch a as the destination node. If each node 21 to be upgraded in batch a cannot guarantee the reliability of the data as a destination node, the management node 20 determines the final batch to be upgraded among other batches except batch b and batch a When the included node 21 to be upgraded serves as the destination node, can the reliability of the data be guaranteed. In this way, repeat the execution until the destination node is determined.
示例性的,结合上述示例,若管理节点20在图8示出的第一方案和图9示出的第二方案中选择了第一方案,并根据第一方案升级待升级节点。在需要对第一批次中的节点5升级时,管理节点20首先判断第三批次(除第一批次之外,最后进行升级的批次)中的节点1和节点3作为目的节点,能否满足节点5中待升级业务1的数据的可靠性。若节点1和节点3作为目的节点均不能够满足待升级业务1的数据的可靠性,则管理节点20判断第二批次(除第一批次和第三批次之外,最后进行升级的批次)中的节点2、节点4、节点6作为目的节点时,能否满足待升级业务1的数据的可靠性。若节点2、节点4和节点6中的一个或多个作为目的节点能够满足待升级业务1的数据的可靠性,则管理节点20将其作为节点5的目的节点,并向节点5发送包括目的节点的标识的升级指示。Exemplarily, in combination with the foregoing example, if the management node 20 selects the first solution from the first solution shown in FIG. 8 and the second solution shown in FIG. 9, and upgrades the node to be upgraded according to the first solution. When it is necessary to upgrade the node 5 in the first batch, the management node 20 first judges the nodes 1 and 3 in the third batch (except for the first batch, the last batch to be upgraded) as the destination nodes, Whether it can meet the reliability of the data of service 1 to be upgraded in node 5. If neither node 1 nor node 3 as the destination node can meet the reliability of the data of service 1 to be upgraded, the management node 20 judges the second batch (except for the first batch and the third batch, the final upgrade When node 2, node 4, and node 6 in the batch) are used as destination nodes, can they satisfy the reliability of the data of the service 1 to be upgraded? If one or more of node 2, node 4, and node 6 as the destination node can meet the reliability of the data of the service 1 to be upgraded, the management node 20 will take it as the destination node of node 5 and send the destination node including the destination node to node 5. Upgrade instructions for the node's identity.
综上,管理节点20在满足多个待升级节点21之间的升级约束关系的前提下,确定分批次地升级多个待升级节点21,即确定出多个待升级节点21中能够并行升级的待升级节点,有效地减少了升级多个待升级节点21的时长,提升了升级效率。In summary, on the premise that the management node 20 satisfies the upgrade constraint relationship among the multiple nodes 21 to be upgraded, it is determined to upgrade the multiple nodes 21 to be upgraded in batches, that is, it is determined that the multiple nodes 21 to be upgraded can be upgraded in parallel. The number of nodes to be upgraded effectively reduces the time for upgrading multiple nodes 21 to be upgraded, and improves the upgrade efficiency.
上述主要从方法的角度对本发明实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员 可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。The foregoing mainly introduces the solutions provided by the embodiments of the present invention from the perspective of methods. In order to realize the above-mentioned functions, it includes hardware structures and/or software modules corresponding to each function. Those skilled in the art should easily realize that in combination with the units and algorithm steps of the examples described in the embodiments disclosed herein, the present application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a certain function is executed by hardware or computer software-driven hardware depends on the specific application and design constraint conditions of the technical solution. Professionals and technicians can use different methods for each specific application to implement the described functions, but such implementation should not be considered beyond the scope of this application.
本发明实施例可以根据上述方法示例对管理节点进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。In the embodiment of the present invention, the management node may be divided into functional modules according to the foregoing method examples. For example, each functional module may be divided corresponding to each function, or two or more functions may be integrated into one processing module. The above-mentioned integrated modules can be implemented in the form of hardware or software functional modules. It should be noted that the division of modules in the embodiment of the present invention is illustrative, and is only a logical function division, and there may be other division methods in actual implementation.
如图10所示,为本发明实施例提供的一种管理节点100的结构示意图。管理节点100用于管理分布式系统中多个待升级节点的升级,例如用于执行图4所示的分布式系统中的业务升级方法。管理节点100可以包括获取单元1001、确定单元1002和升级管理单元1003。As shown in FIG. 10, it is a schematic structural diagram of a management node 100 provided by an embodiment of the present invention. The management node 100 is used to manage the upgrade of multiple nodes to be upgraded in the distributed system, for example, to execute the service upgrade method in the distributed system shown in FIG. 4. The management node 100 may include an acquisition unit 1001, a determination unit 1002, and an upgrade management unit 1003.
获取单元1001用于获取多个待升级节点之间的升级约束关系,该升级约束关系由多个待升级业务的升级先后顺序确定。例如,结合图4,获取单元1001可以用于执行S401。确定单元1002用于根据获取单元1001获取到的升级约束关系及多个待升级业务中每个待升级业务的最小在线节点数,确定多个待升级节点中并行升级的待升级节点,这里的最小在线节点数为同时提供相同的待升级业务的节点的最小数量。升级管理单元1003用于根据确定单元1002确定的并行升级的待升级节点对多个待升级节点进行升级。The obtaining unit 1001 is configured to obtain the upgrade constraint relationship between multiple nodes to be upgraded, and the upgrade constraint relationship is determined by the upgrade sequence of the multiple services to be upgraded. For example, in conjunction with FIG. 4, the acquiring unit 1001 may be used to execute S401. The determining unit 1002 is configured to determine the nodes to be upgraded that are upgraded in parallel among the multiple nodes to be upgraded according to the upgrade constraint relationship obtained by the obtaining unit 1001 and the minimum number of online nodes for each of the multiple services to be upgraded. The number of online nodes is the minimum number of nodes that provide the same service to be upgraded at the same time. The upgrade management unit 1003 is configured to upgrade multiple nodes to be upgraded according to the nodes to be upgraded that are determined in parallel by the determining unit 1002.
可选的,确定单元1002具体用于:根据每个待升级业务的最小在线节点数和多个待升级节点中的每个待升级节点中部署的待升级业务,确定每个待升级业务所允许的并行升级最大节点数,并行升级最大节点数为同时升级部署有相同待升级业务的节点的最大数量;根据每个待升级业务所允许的并行升级最大节点数和升级约束关系,确定多个待升级节点中并行升级的待升级节点。例如,结合图4,确定单元1002可以用于执行S404、S405。Optionally, the determining unit 1002 is specifically configured to: determine the allowable service for each service to be upgraded according to the minimum number of online nodes for each service to be upgraded and the service to be upgraded deployed in each of the multiple nodes to be upgraded The maximum number of parallel upgrade nodes is the maximum number of nodes that are upgraded and deployed at the same time with the same service to be upgraded; according to the maximum number of concurrent upgrade nodes allowed for each service to be upgraded and the upgrade constraint relationship, determine multiple The node to be upgraded that is upgraded in parallel among the upgraded nodes. For example, with reference to FIG. 4, the determining unit 1002 may be used to execute S404 and S405.
可选的,上述升级约束关系通过有向图表示;确定单元1002具体用于:获取有向图中每个待升级节点的入度;执行第一操作:确定有向图中入度为零的待升级节点,并根据入度为零的待升级节点中部署的每一待升级业务所允许的并行升级最大节点数,从入度为零的待升级节点中确定当前批次的待升级节点,以及从有向图中去除当前批次的待升级节点,并更新有向图中剩余待升级节点的入度;判断剩余待升级节点中是否还存在入度为零的待升级节点;如果存在,则返回执行第一操作;如果不存在,则得到升级多个待升级节点的多个批次及每个批次所包括的待升级节点。升级管理单元1003具体用于:根据确定单元1002确定出的多个批次及每个批次所包括的待升级节点对多个待升级节点进行升级。Optionally, the aforementioned upgrade constraint relationship is represented by a directed graph; the determining unit 1002 is specifically configured to: obtain the in-degree of each node to be upgraded in the directed graph; perform the first operation: determine that the in-degree in the directed graph is zero Nodes to be upgraded, and according to the maximum number of parallel upgrade nodes allowed for each service to be upgraded deployed in the nodes to be upgraded with zero in-degree, determine the current batch of nodes to be upgraded from the nodes to be upgraded with zero in-degree, And remove the current batch of nodes to be upgraded from the directed graph, and update the in-degree of the remaining nodes to be upgraded in the directed graph; determine whether there are still nodes to be upgraded with zero in-degree in the remaining nodes to be upgraded; if it exists, Return to perform the first operation; if it does not exist, obtain multiple batches for upgrading multiple nodes to be upgraded and the nodes to be upgraded included in each batch. The upgrade management unit 1003 is specifically configured to: upgrade multiple nodes to be upgraded according to the multiple batches determined by the determining unit 1002 and the nodes to be upgraded included in each batch.
可选的,确定单元1002具体用于:当确定当前批次的待升级节点包括至少两种节点组合时,则分别以每一种节点组合中的节点作为当前批次的待升级节点,得到至少两种升级方案,升级方案为升级多个待升级节点的批次,及每个批次所包括的待升级节点,至少两种节点组合中的每个节点组合包括至少一个待升级节点。确定单元1002还用于从至少两种升级方案选择一种升级方案。Optionally, the determining unit 1002 is specifically configured to: when it is determined that the nodes to be upgraded in the current batch include at least two kinds of node combinations, each node in each node combination is used as the nodes to be upgraded in the current batch to obtain at least There are two upgrade schemes. The upgrade scheme is to upgrade multiple batches of nodes to be upgraded, and the nodes to be upgraded included in each batch, and each of the at least two node combinations includes at least one node to be upgraded. The determining unit 1002 is also used to select one upgrade solution from at least two upgrade solutions.
可选的,升级管理单元1003具体用于:执行第二操作:确定当前升级批次的待升 级节点对应的目标节点,并向当前升级批次的待升级节点发送升级指示,该升级指示包括目标节点的标识,升级指示用于指示将当前升级批次的待升级节点中的待升级业务迁移到目标节点,并升级当前升级批次的待升级节点;判断当前升级批次是否属于多个批次中最后进行升级的批次;若当前升级批次不属于多个批次中最后进行升级的批次,则在确定当前升级批次的待升级节点完成升级时,将当前升级批次的下一批次作为当前升级批次,并返回执行第二操作。Optionally, the upgrade management unit 1003 is specifically configured to: perform a second operation: determine the target node corresponding to the node to be upgraded in the current upgrade batch, and send an upgrade instruction to the node to be upgraded in the current upgrade batch, the upgrade instruction including the target The identification of the node, the upgrade instruction is used to instruct to migrate the business to be upgraded in the node to be upgraded in the current upgrade batch to the target node, and to upgrade the node to be upgraded in the current upgrade batch; determine whether the current upgrade batch belongs to multiple batches If the current upgrade batch does not belong to the last upgrade batch among multiple batches, when it is determined that the nodes to be upgraded in the current upgrade batch have completed the upgrade, the next upgrade batch The batch is used as the current upgrade batch and returns to perform the second operation.
可选的,上述升级约束关系通过有向图表示,管理节点100还包括判断单元1004。判断单元1004用于判断升级约束关系中是否存在死锁互连的待升级节点,死锁互连的待升级节点为在有向图中形成环形的待升级节点。确定单元1002具体用于当判断单元1004判断多个待升级节点之间的升级约束关系中不存在死锁互连的待升级节点时,根据升级约束关系及多个待升级业务中每个待升级业务的最小在线节点数,确定多个待升级节点中并行升级的待升级节点。例如,结合图4,判断单元1004可以用于执行S402。Optionally, the aforementioned upgrade constraint relationship is represented by a directed graph, and the management node 100 further includes a judgment unit 1004. The determining unit 1004 is used to determine whether there are deadlocked interconnected nodes to be upgraded in the upgrade constraint relationship, and the deadlocked interconnected nodes to be upgraded are nodes to be upgraded that form a ring in the directed graph. The determining unit 1002 is specifically configured to: when the determining unit 1004 determines that there are no deadlocked interconnected nodes to be upgraded in the upgrade constraint relationship between the multiple nodes to be upgraded, according to the upgrade constraint relationship and each of the multiple services to be upgraded The minimum number of online nodes for the business determines the node to be upgraded among multiple nodes to be upgraded in parallel. For example, in conjunction with FIG. 4, the judging unit 1004 may be used to execute S402.
当然,本发明实施例提供的管理节点100包括但不限于上述模块,例如管理节点100还可以包括存储单元1005。存储单元1005可以用于存储该管理节点100的程序代码,还可以用于存储管理节点100在运行过程中生成的数据,如升级多个待升级节点的批次等。Of course, the management node 100 provided in the embodiment of the present invention includes but is not limited to the above-mentioned modules. For example, the management node 100 may also include a storage unit 1005. The storage unit 1005 can be used to store the program code of the management node 100, and can also be used to store data generated during the operation of the management node 100, such as upgrading multiple batches of nodes to be upgraded.
本发明另一实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当指令在计算机上运行时,使得计算机执行上述方法实施例所示的方法流程中管理节点执行的各个步骤。Another embodiment of the present invention also provides a computer-readable storage medium that stores instructions in the computer-readable storage medium. When the instructions run on a computer, the computer executes the management node in the method flow shown in the foregoing method embodiment. The various steps performed.
在本发明另一实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机指令,当指令在计算机上运行时,使得计算机执行上述方法实施例所示的方法流程中管理节点执行的各个步骤。In another embodiment of the present invention, there is also provided a computer program product. The computer program product includes computer instructions. When the instructions run on a computer, the computer executes the operations performed by the management node in the method flow shown in the foregoing method embodiments. Various steps.
本发明另一实施例还提供了一种分布式系统,该分布式系统可以包括管理节点100和多个待升级节点。Another embodiment of the present invention also provides a distributed system. The distributed system may include a management node 100 and multiple nodes to be upgraded.
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机执行指令时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。In the above embodiments, it may be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented using a software program, it may be implemented in the form of a computer program product in whole or in part. The computer program product includes one or more computer instructions. When the computer execution instructions are loaded and executed on the computer, the process or function according to the embodiment of the present invention is generated in whole or in part. The computer can be a general-purpose computer, a dedicated computer, a computer network, or other programmable devices. Computer instructions may be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, computer instructions may be transmitted from a website, computer, server, or data center through a cable (such as Coaxial cable, optical fiber, digital subscriber line (digital subscriber line, DSL) or wireless (such as infrared, wireless, microwave, etc.) transmission to another website site, computer, server, or data center. The computer-readable storage medium may be any available medium that can be accessed by a computer or may include one or more data storage devices such as a server or a data center that can be integrated with the medium. The usable medium may be a magnetic medium (for example, a floppy disk, a hard disk, and a magnetic tape), an optical medium (for example, a DVD), or a semiconductor medium (for example, a solid state disk (SSD)).
以上所述,仅为本申请的具体实施方式。熟悉本技术领域的技术人员根据本申请提供的具体实施方式,可想到变化或替换,都应涵盖在本申请的保护范围之内。The above are only specific implementations of the application. Those skilled in the art can think of changes or substitutions according to the specific implementation manners provided by this application, and they should all be covered by the protection scope of this application.

Claims (13)

  1. 一种分布式系统中的业务升级方法,其特征在于,应用于分布式系统中的管理节点,所述管理节点用于对多个待升级节点中部署的多个待升级业务进行升级,所述升级方法包括:A service upgrade method in a distributed system is characterized in that it is applied to a management node in a distributed system, and the management node is used to upgrade multiple services to be upgraded deployed among multiple nodes to be upgraded. Upgrade methods include:
    获取所述多个待升级节点之间的升级约束关系,所述升级约束关系由所述多个待升级业务的升级先后顺序确定;Acquiring an upgrade constraint relationship between the multiple nodes to be upgraded, where the upgrade constraint relationship is determined by an upgrade sequence of the multiple services to be upgraded;
    根据所述升级约束关系及所述多个待升级业务中每个待升级业务的最小在线节点数,确定所述多个待升级节点中并行升级的待升级节点,所述最小在线节点数为同时提供相同的待升级业务的节点的最小数量;According to the upgrade constraint relationship and the minimum number of online nodes for each service to be upgraded in the multiple services to be upgraded, determine the nodes to be upgraded in parallel among the multiple nodes to be upgraded, and the minimum number of online nodes is the same time The minimum number of nodes that provide the same service to be upgraded;
    根据所确定的并行升级的待升级节点对所述多个待升级节点进行升级。Upgrade the multiple nodes to be upgraded according to the determined nodes to be upgraded in parallel.
  2. 根据权利要求1所述的业务升级方法,其特征在于,所述根据所述升级约束关系及所述多个待升级业务中每个待升级业务的最小在线节点数,确定所述多个待升级节点中并行升级的待升级节点,包括:The service upgrade method according to claim 1, wherein the plurality of services to be upgraded are determined according to the upgrade constraint relationship and the minimum number of online nodes of each service to be upgraded in the multiple services to be upgraded The nodes to be upgraded that are upgraded in parallel, including:
    根据所述每个待升级业务的最小在线节点数和所述多个待升级节点中的每个待升级节点中部署的待升级业务,确定所述每个待升级业务所允许的并行升级最大节点数,所述并行升级最大节点数为同时升级部署有相同待升级业务的节点的最大数量;According to the minimum number of online nodes for each service to be upgraded and the service to be upgraded deployed in each of the multiple nodes to be upgraded, the maximum concurrent upgrade node allowed for each service to be upgraded is determined The maximum number of nodes for parallel upgrade is the maximum number of nodes that are simultaneously upgraded and deployed with the same service to be upgraded;
    根据所述每个待升级业务所允许的并行升级最大节点数和所述升级约束关系,确定所述多个待升级节点中并行升级的待升级节点。According to the maximum number of parallel upgrade nodes allowed for each service to be upgraded and the upgrade constraint relationship, determine the nodes to be upgraded that are to be upgraded in parallel among the multiple nodes to be upgraded.
  3. 根据权利要求2所述的业务升级方法,其特征在于,所述升级约束关系通过有向图表示,所述根据所述每个待升级业务所允许的并行升级最大节点数和所述升级约束关系,确定所述多个待升级节点中并行升级的待升级节点,包括:The service upgrade method according to claim 2, wherein the upgrade constraint relationship is represented by a directed graph, and the maximum number of concurrent upgrade nodes allowed for each service to be upgraded is based on the upgrade constraint relationship , Determining the node to be upgraded that is upgraded in parallel among the plurality of nodes to be upgraded includes:
    获取所述有向图中每个待升级节点的入度;Acquiring the in-degree of each node to be upgraded in the directed graph;
    执行第一操作:确定所述有向图中入度为零的待升级节点;根据所述入度为零的待升级节点中部署的每一待升级业务所允许的并行升级最大节点数,从所述入度为零的待升级节点中确定当前批次的待升级节点;从所述有向图中去除所述当前批次的待升级节点,并更新所述有向图中剩余待升级节点的入度;Perform the first operation: determine the node to be upgraded with zero in-degree in the directed graph; according to the maximum number of concurrent upgrade nodes allowed for each service to be upgraded deployed in the node to be upgraded with zero in-degree, from The nodes to be upgraded in the current batch are determined among the nodes to be upgraded whose entry is zero; the nodes to be upgraded in the current batch are removed from the directed graph, and the remaining nodes to be upgraded in the directed graph are updated In degree
    判断所述剩余待升级节点中是否还存在入度为零的待升级节点;Judging whether there is a node to be upgraded with an indegree of zero among the remaining nodes to be upgraded;
    如果存在,则返回执行所述第一操作;If it exists, return to perform the first operation;
    如果不存在,则得到升级所述多个待升级节点的多个批次及每个批次所包括的待升级节点;If it does not exist, obtain multiple batches of the multiple nodes to be upgraded and the nodes to be upgraded included in each batch;
    所述根据所确定的并行升级的待升级节点对所述多个待升级节点进行升级,包括:The upgrading the plurality of nodes to be upgraded according to the determined nodes to be upgraded for parallel upgrade includes:
    根据所述多个批次及所述每个批次所包括的待升级节点对所述多个待升级节点进行升级。Upgrade the multiple nodes to be upgraded according to the multiple batches and the nodes to be upgraded included in each batch.
  4. 根据权利要求3所述的业务升级方法,其特征在于,所述根据所述入度为零的待升级节点中部署的每一待升级业务所允许的并行升级最大节点数,从所述入度为零的待升级节点中确定当前批次的待升级节点,包括:The service upgrade method according to claim 3, wherein the maximum number of concurrent upgrade nodes allowed for each service to be upgraded deployed in the nodes to be upgraded according to the in-degree is zero, from the in-degree Among the zero nodes to be upgraded, the nodes to be upgraded in the current batch are determined, including:
    当确定当前批次的待升级节点包括至少两种节点组合时,则分别以每一种节点组合中的节点作为所述当前批次的待升级节点,所述至少两种节点组合中的每个节点组合包括至少一个待升级节点;When it is determined that the nodes to be upgraded in the current batch include at least two kinds of node combinations, each node in each node combination is used as the nodes to be upgraded in the current batch, and each of the at least two node combinations The node combination includes at least one node to be upgraded;
    所述根据所述每个待升级业务所允许的并行升级最大节点数和所述升级约束关系,确定所述多个待升级节点中并行升级的待升级节点,还包括:The determining the node to be upgraded in the multiple nodes to be upgraded in parallel according to the maximum number of nodes to be upgraded in parallel allowed for each service to be upgraded and the upgrade constraint relationship further includes:
    当存在至少两种升级方案时,从所述至少两种升级方案选择一种升级方案,所述升级方案为升级所述多个待升级节点的批次,及每个批次所包括的待升级节点。When there are at least two upgrade solutions, one upgrade solution is selected from the at least two upgrade solutions, and the upgrade solution is the batches for upgrading the multiple nodes to be upgraded, and the batches to be upgraded included in each batch node.
  5. 根据权利要求3所述的业务升级方法,其特征在于,所述根据所述多个批次及所述每个批次所包括的待升级节点对所述多个待升级节点进行升级,包括:The service upgrade method according to claim 3, wherein the upgrading the plurality of nodes to be upgraded according to the plurality of batches and the nodes to be upgraded included in each batch comprises:
    执行第二操作:确定当前升级批次的待升级节点对应的目标节点;向所述当前升级批次的待升级节点发送升级指示,所述升级指示包括所述目标节点的标识,所述升级指示用于指示将所述当前升级批次的待升级节点中的待升级业务迁移到所述目标节点,并升级所述当前升级批次的待升级节点;Perform a second operation: determine the target node corresponding to the node to be upgraded in the current upgrade batch; send an upgrade instruction to the node to be upgraded in the current upgrade batch, the upgrade instruction includes the identifier of the target node, and the upgrade instruction For instructing to migrate the services to be upgraded in the nodes to be upgraded in the current upgrade batch to the target node, and to upgrade the nodes to be upgraded in the current upgrade batch;
    判断所述当前升级批次是否属于所述多个批次中最后进行升级的批次;Determining whether the current upgrade batch belongs to the last batch to be upgraded among the multiple batches;
    若所述当前升级批次不属于所述多个批次中最后进行升级的批次,则在确定所述当前升级批次的待升级节点完成升级时,将所述当前升级批次的下一批次作为当前升级批次,并返回执行所述第二操作。If the current upgrade batch does not belong to the last batch to be upgraded among the multiple batches, when it is determined that the nodes to be upgraded in the current upgrade batch have completed the upgrade, the next upgrade batch of the current upgrade batch The batch is regarded as the current upgrade batch, and the second operation is executed back.
  6. 根据权利要求1-5中任意一项所述的业务升级方法,其特征在于,所述升级约束关系通过有向图表示,所述业务升级方法还包括:The service upgrade method according to any one of claims 1-5, wherein the upgrade constraint relationship is represented by a directed graph, and the service upgrade method further comprises:
    判断所述升级约束关系中是否存在死锁互连的待升级节点,所述死锁互连的待升级节点为在有向图中形成环形的待升级节点;Judging whether there are deadlocked interconnected nodes to be upgraded in the upgrade constraint relationship, and the deadlocked interconnected nodes to be upgraded are nodes to be upgraded that form a ring in a directed graph;
    所述根据所述升级约束关系及所述多个待升级业务中每个待升级业务的最小在线节点数,确定所述多个待升级节点中并行升级的待升级节点,包括:According to the upgrade constraint relationship and the minimum number of online nodes for each service to be upgraded in the plurality of services to be upgraded, determining the node to be upgraded in the multiple nodes to be upgraded in parallel includes:
    当所述多个待升级节点之间的升级约束关系中不存在死锁互连的待升级节点时,根据所述升级约束关系及所述多个待升级业务中每个待升级业务的最小在线节点数,确定所述多个待升级节点中并行升级的待升级节点。When there are no deadlocked interconnected nodes to be upgraded in the upgrade constraint relationship between the plurality of nodes to be upgraded, according to the upgrade constraint relationship and the minimum online value of each of the plurality of services to be upgraded The number of nodes determines the nodes to be upgraded that are upgraded in parallel among the multiple nodes to be upgraded.
  7. 一种管理节点,其特征在于,所述管理节点用于对分布式系统中的多个待升级节点中部署的多个待升级业务进行升级,所述管理节点包括:A management node, characterized in that the management node is used to upgrade multiple services to be upgraded deployed among multiple nodes to be upgraded in a distributed system, and the management node includes:
    获取单元,用于获取所述多个待升级节点之间的升级约束关系,所述升级约束关系由所述多个待升级业务的升级先后顺序确定;An obtaining unit, configured to obtain an upgrade constraint relationship between the multiple nodes to be upgraded, where the upgrade constraint relationship is determined by the upgrade sequence of the multiple services to be upgraded;
    确定单元,用于根据所述获取单元获取到的升级约束关系及所述多个待升级业务中每个待升级业务的最小在线节点数,确定所述多个待升级节点中并行升级的待升级节点,所述最小在线节点数为同时提供相同的待升级业务的节点的最小数量;The determining unit is configured to determine, based on the upgrade constraint relationship obtained by the obtaining unit and the minimum number of online nodes of each service to be upgraded in the plurality of services to be upgraded, the to-be-upgraded ones of the multiple nodes to be upgraded in parallel Nodes, the minimum number of online nodes is the minimum number of nodes that simultaneously provide the same service to be upgraded;
    升级管理单元,用于根据所述确定单元确定的并行升级的待升级节点对所述多个待升级节点进行升级。The upgrade management unit is configured to upgrade the multiple nodes to be upgraded according to the nodes to be upgraded that are determined in parallel by the determining unit.
  8. 根据权利要求7所述的管理节点,其特征在于,所述确定单元具体用于:The management node according to claim 7, wherein the determining unit is specifically configured to:
    根据所述每个待升级业务的最小在线节点数和所述多个待升级节点中的每个待升级节点中部署的待升级业务,确定所述每个待升级业务所允许的并行升级最大节点数,所述并行升级最大节点数为同时升级部署有相同待升级业务的节点的最大数量;According to the minimum number of online nodes for each service to be upgraded and the service to be upgraded deployed in each of the multiple nodes to be upgraded, the maximum concurrent upgrade node allowed for each service to be upgraded is determined The maximum number of nodes for parallel upgrade is the maximum number of nodes that are simultaneously upgraded and deployed with the same service to be upgraded;
    根据所述每个待升级业务所允许的并行升级最大节点数和所述升级约束关系,确定所述多个待升级节点中并行升级的待升级节点。According to the maximum number of parallel upgrade nodes allowed for each service to be upgraded and the upgrade constraint relationship, determine the nodes to be upgraded that are to be upgraded in parallel among the multiple nodes to be upgraded.
  9. 根据权利要求8所述的管理节点,其特征在于,所述升级约束关系通过有向图 表示;The management node according to claim 8, wherein the upgrade constraint relationship is represented by a directed graph;
    所述确定单元具体用于:The determining unit is specifically used for:
    获取所述有向图中每个待升级节点的入度;Acquiring the in-degree of each node to be upgraded in the directed graph;
    执行第一操作:确定所述有向图中入度为零的待升级节点;根据所述入度为零的待升级节点中部署的每一待升级业务所允许的并行升级最大节点数,从所述入度为零的待升级节点中确定当前批次的待升级节点;从所述有向图中去除所述当前批次的待升级节点,并更新所述有向图中剩余待升级节点的入度;Perform the first operation: determine the node to be upgraded with zero in-degree in the directed graph; according to the maximum number of parallel upgrade nodes allowed for each service to be upgraded deployed in the node to be upgraded with zero in-degree, from The nodes to be upgraded in the current batch are determined among the nodes to be upgraded whose entry is zero; the nodes to be upgraded in the current batch are removed from the directed graph, and the remaining nodes to be upgraded in the directed graph are updated的入度;
    判断所述剩余待升级节点中是否还存在入度为零的待升级节点;Judging whether there is a node to be upgraded with an indegree of zero among the remaining nodes to be upgraded;
    如果存在,则返回执行所述第一操作;If it exists, return to perform the first operation;
    如果不存在,则得到升级所述多个待升级节点的多个批次及每个批次所包括的待升级节点;If it does not exist, obtain multiple batches of the multiple nodes to be upgraded and the nodes to be upgraded included in each batch;
    所述升级管理单元具体用于:根据所述确定单元确定出的所述多个批次及所述每个批次所包括的待升级节点对所述多个待升级节点进行升级。The upgrade management unit is specifically configured to: upgrade the multiple nodes to be upgraded according to the multiple batches determined by the determining unit and the nodes to be upgraded included in each batch.
  10. 根据权利要求9所述的管理节点,其特征在于,The management node according to claim 9, wherein:
    所述确定单元具体用于:当确定当前批次的待升级节点包括至少两种节点组合时,则分别以每一种节点组合中的节点作为所述当前批次的待升级节点,所述至少两种节点组合中的每个节点组合包括至少一个待升级节点;The determining unit is specifically configured to: when it is determined that the nodes to be upgraded in the current batch include at least two types of node combinations, each node in each node combination is used as the nodes to be upgraded in the current batch, and the at least Each of the two node combinations includes at least one node to be upgraded;
    所述确定单元,还用于当存在至少两种升级方案时,从所述至少两种升级方案选择一种升级方案,所述升级方案为升级所述多个待升级节点的批次,及每个批次所包括的待升级节点。The determining unit is further configured to, when there are at least two upgrade plans, select one upgrade plan from the at least two upgrade plans, where the upgrade plan is a batch for upgrading the plurality of nodes to be upgraded, and each The nodes to be upgraded included in each batch.
  11. 根据权利要求9所述的管理节点,其特征在于,所述升级管理单元具体用于:The management node according to claim 9, wherein the upgrade management unit is specifically configured to:
    执行第二操作:确定当前升级批次的待升级节点对应的目标节点;向所述当前升级批次的待升级节点发送升级指示,所述升级指示包括所述目标节点的标识,所述升级指示用于指示将所述当前升级批次的待升级节点中的待升级业务迁移到所述目标节点,并升级所述当前升级批次的待升级节点;Perform a second operation: determine the target node corresponding to the node to be upgraded in the current upgrade batch; send an upgrade instruction to the node to be upgraded in the current upgrade batch, the upgrade instruction includes the identifier of the target node, and the upgrade instruction For instructing to migrate the services to be upgraded in the nodes to be upgraded in the current upgrade batch to the target node, and to upgrade the nodes to be upgraded in the current upgrade batch;
    判断所述当前升级批次是否属于所述多个批次中最后进行升级的批次;Determining whether the current upgrade batch belongs to the last batch to be upgraded among the multiple batches;
    若所述当前升级批次不属于所述多个批次中最后进行升级的批次,则在确定所述当前升级批次的待升级节点完成升级时,将所述当前升级批次的下一批次作为当前升级批次,并返回执行所述第二操作。If the current upgrade batch does not belong to the last batch to be upgraded among the multiple batches, when it is determined that the nodes to be upgraded in the current upgrade batch have completed the upgrade, the next upgrade batch of the current upgrade batch The batch is regarded as the current upgrade batch, and the second operation is executed back.
  12. 根据权利要求7-11中任意一项所述的管理节点,其特征在于,所述升级约束关系通过有向图表示,所述管理节点还包括判断单元;The management node according to any one of claims 7-11, wherein the upgrade constraint relationship is represented by a directed graph, and the management node further comprises a judgment unit;
    所述判断单元,用于判断所述升级约束关系中是否存在死锁互连的待升级节点,所述死锁互连的待升级节点为在有向图中形成环形的待升级节点;The judgment unit is configured to judge whether there are deadlocked interconnected nodes to be upgraded in the upgrade constraint relationship, and the deadlocked interconnected nodes to be upgraded are nodes to be upgraded that form a ring in a directed graph;
    所述确定单元,具体用于当所述判断单元判断所述多个待升级节点之间的升级约束关系中不存在死锁互连的待升级节点时,根据所述升级约束关系及所述多个待升级业务中每个待升级业务的最小在线节点数,确定所述多个待升级节点中并行升级的待升级节点。The determining unit is specifically configured to: when the determining unit determines that there is no deadlocked interconnected node to be upgraded in the upgrade constraint relationship between the multiple nodes to be upgraded, according to the upgrade constraint relationship and the multiple The minimum number of online nodes for each service to be upgraded in each service to be upgraded is determined to be upgraded in parallel among the multiple nodes to be upgraded.
  13. 一种升级装置,其特征在于,包括存储器和处理器,所述存储器用于存储计算机执行指令,所述处理器用于调用所述计算机执行指令,使得所述升级装置运行时, 执行所述计算机执行指令以实现如权利要求1-6中任意一项所述的业务升级方法。An upgrade device, characterized by comprising a memory and a processor, the memory is used to store computer execution instructions, and the processor is used to call the computer execution instructions so that when the upgrade device is running, execute the computer execution Instructions to implement the service upgrade method according to any one of claims 1-6.
PCT/CN2019/095312 2019-07-09 2019-07-09 Service upgrade method and apparatus in distributed system, and distributed system WO2021003677A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/CN2019/095312 WO2021003677A1 (en) 2019-07-09 2019-07-09 Service upgrade method and apparatus in distributed system, and distributed system
CN201980030054.3A CN112470119B (en) 2019-07-09 2019-07-09 Service upgrading method and device in distributed system and distributed system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/095312 WO2021003677A1 (en) 2019-07-09 2019-07-09 Service upgrade method and apparatus in distributed system, and distributed system

Publications (1)

Publication Number Publication Date
WO2021003677A1 true WO2021003677A1 (en) 2021-01-14

Family

ID=74114924

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/095312 WO2021003677A1 (en) 2019-07-09 2019-07-09 Service upgrade method and apparatus in distributed system, and distributed system

Country Status (2)

Country Link
CN (1) CN112470119B (en)
WO (1) WO2021003677A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113110854A (en) * 2021-03-29 2021-07-13 深圳华锐金融技术股份有限公司 Service upgrading method and device, computer equipment and storage medium
CN116166300A (en) * 2023-04-19 2023-05-26 北京路浩知识产权集团有限公司 Upgrade management method and device for intellectual property system
CN116319712A (en) * 2023-05-23 2023-06-23 北京智芯半导体科技有限公司 Wireless upgrading method and device for slave nodes of power equipment body area network
WO2024099444A1 (en) * 2022-11-11 2024-05-16 苏州元脑智能科技有限公司 Storage cluster upgrade control method and apparatus, device, and storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101741894A (en) * 2008-11-26 2010-06-16 中国移动通信集团公司 Upgrade method for distributed system and upgrade scheduling node and system
US20110029965A1 (en) * 2009-07-31 2011-02-03 Lamba Jaideep S Method and system for distributing an upgrade among nodes in a network
CN108268271A (en) * 2016-12-29 2018-07-10 华为技术服务有限公司 The upgrade method and update device of micro services
CN108958772A (en) * 2018-07-03 2018-12-07 武汉精测电子集团股份有限公司 A kind of batch upgrading method and system of more board equipment
CN109101260A (en) * 2018-08-30 2018-12-28 郑州云海信息技术有限公司 A kind of upgrade method of node software, device and computer readable storage medium

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103327038B (en) * 2012-03-20 2016-06-22 中兴通讯股份有限公司 The method of the batch upgrade network equipment and device
US9578091B2 (en) * 2013-12-30 2017-02-21 Microsoft Technology Licensing, Llc Seamless cluster servicing
US10282187B2 (en) * 2014-07-03 2019-05-07 Oracle International Corporation Efficient application patching in heterogeneous computing environments
CN105005487B (en) * 2015-06-29 2018-06-22 清华大学 A kind of High-Performance Computing Cluster operating system online upgrading method of continuous service
EP3417371A1 (en) * 2016-02-17 2018-12-26 Telefonaktiebolaget LM Ericsson (publ) Model based upgrade campaign generation
CN106354531B (en) * 2016-08-25 2020-03-27 杭州华为数字技术有限公司 Physical node upgrading method and device
CN106886410B (en) * 2017-01-06 2018-06-19 深圳云天励飞技术有限公司 A kind of software version management system
CN109753300B (en) * 2017-11-03 2022-05-06 阿里巴巴集团控股有限公司 Algorithm upgrading method, calculation task sending method and related device
CN108345462B (en) * 2018-01-11 2020-12-22 华为技术有限公司 Method and device for upgrading components

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101741894A (en) * 2008-11-26 2010-06-16 中国移动通信集团公司 Upgrade method for distributed system and upgrade scheduling node and system
US20110029965A1 (en) * 2009-07-31 2011-02-03 Lamba Jaideep S Method and system for distributing an upgrade among nodes in a network
CN108268271A (en) * 2016-12-29 2018-07-10 华为技术服务有限公司 The upgrade method and update device of micro services
CN108958772A (en) * 2018-07-03 2018-12-07 武汉精测电子集团股份有限公司 A kind of batch upgrading method and system of more board equipment
CN109101260A (en) * 2018-08-30 2018-12-28 郑州云海信息技术有限公司 A kind of upgrade method of node software, device and computer readable storage medium

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113110854A (en) * 2021-03-29 2021-07-13 深圳华锐金融技术股份有限公司 Service upgrading method and device, computer equipment and storage medium
WO2024099444A1 (en) * 2022-11-11 2024-05-16 苏州元脑智能科技有限公司 Storage cluster upgrade control method and apparatus, device, and storage medium
CN116166300A (en) * 2023-04-19 2023-05-26 北京路浩知识产权集团有限公司 Upgrade management method and device for intellectual property system
CN116166300B (en) * 2023-04-19 2023-07-18 北京路浩知识产权集团有限公司 Upgrade management method and device for intellectual property system
CN116319712A (en) * 2023-05-23 2023-06-23 北京智芯半导体科技有限公司 Wireless upgrading method and device for slave nodes of power equipment body area network
CN116319712B (en) * 2023-05-23 2023-08-18 北京智芯半导体科技有限公司 Wireless upgrading method and device for slave nodes of power equipment body area network

Also Published As

Publication number Publication date
CN112470119A (en) 2021-03-09
CN112470119B (en) 2022-09-16

Similar Documents

Publication Publication Date Title
WO2021003677A1 (en) Service upgrade method and apparatus in distributed system, and distributed system
US11146453B2 (en) Method and apparatus for creating network slice, and communications system
CN111385114B (en) VNF service instantiation method and device
CN112187545B (en) Network slice deployment method and device
EP3200393B1 (en) Method and device for virtual network function management
US20170141944A1 (en) Verifier for network function virtualization resource allocation
CN108370328B (en) Management method and device of NFV MANO policy descriptor
CN113296792B (en) Storage method, device, equipment, storage medium and system
CN109375933B (en) Method and equipment for upgrading client
CN108628660B (en) Virtual machine capacity expansion and reduction method and virtual management equipment
WO2019062830A1 (en) Method and device for generating example service topology
WO2021109750A1 (en) Node management method, device and apparatus, storage medium, and system
CN107479937A (en) A kind of multi-node cluster intersects the method for upgrading
US20230342183A1 (en) Management method and apparatus for container cluster
CN108737499A (en) server configuration method and device
WO2014078992A1 (en) Method and node device for upgrade
EP4177742A1 (en) Multitenancy management method and apparatus
CN111767126A (en) System and method for distributed batch processing
CN114070889B (en) Configuration method, traffic forwarding device, storage medium, and program product
WO2019052363A1 (en) Method and apparatus for modifying network slice instance
US20230246911A1 (en) Control device, control method, control program and control system
US10868764B2 (en) Route calculation control device and route calculation control method
CN113098705B (en) Authorization method and device for life cycle management of network service
CN112015515B (en) Instantiation method and device of virtual network function
CN105612727A (en) Deployment method and apparatus based on cloud environment system

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19936723

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 19936723

Country of ref document: EP

Kind code of ref document: A1