The present disclosure relates to the field of communications technologies, and in particular, to a pool element status information synchronization method, a pool register, and a pool element.
In a conventional data center, service nodes generally exist in a physical form, have a limited quantity and fixed locations, and are manually configured. However, network functions virtualization (NFV) brings about new requirements:
1. A virtualized multi-tenant requirement: Service separation of tenants requires each tenant network to have a different type and quantity of pool elements (PE).
2. Cloud and interconnection of data centers: Multiple data centers are interconnected to form a virtual cloud data center, resulting in a large increase in a quantity of PEs, and moreover, a PE may be deployed at any place.
3. After original service nodes supported by dedicated hardware are virtualized, independent high performance of the service nodes are replaced by virtual machines, and a decrease in relative performance leads to a decrease in PE efficiency. Load also becomes heavier as a quantity of tenants increases, resulting in that a fault or overload easily occurs.
In conclusion, after a network function is virtualized, how a large quantity of PEs in a pool of network functions virtualization provide a virtual service becomes more complex, and especially in aspects of achieving reliability, high availability, and scalability of the virtual service, an existing pool of network functions virtualization provides no method for achieving reliability, high availability, and scalability of the virtual service.
To meet an increasingly strong requirement for network functions virtualization, embodiments of the present disclosure provide a PE status information synchronization method and a pool register.
According to a first aspect, a PE status information synchronization method is provided, including:
According to a second aspect, a pool register (PR) is provided, including:
According to a third aspect, a PE is provided, where the PE is a first PE, including:
According to the embodiments of the present disclosure, a flexible high availability (HA) mechanism is achieved. An HA role, a status synchronization source, and a status synchronization method are dynamically bound with a pool element role, leading to good expansibility, and more pool elements are added to a pool element pool to obtain high reliability. Moreover, synchronization links can be reduced, so that costs are greatly reduced, and a large-scale deployment of network functions virtualization can be better achieved.
To make the objectives, technical solutions, and advantages of the embodiments of the present disclosure clearer, the following clearly describes the technical solutions in the embodiments of the present disclosure with reference to the accompanying drawings in the embodiments of the present disclosure. The following further describes the embodiments of the present disclosure in detail with reference to the accompanying drawings in the specification.
A PE status information synchronization method is designed in an embodiment of the present disclosure. Referring to
101: A pool register PR receives a first registration message sent by a first PE, where the first registration message is used to add the first PE to a pool, and the first registration message carries an identifier of the first PE.
102: The PR receives a second registration message sent by a second PE, where the second registration message is used to add the second PE to the pool, and the second registration message carries an identifier of the second PE.
103: The PR determines a role of the first PE in the pool according to the identifier of the first PE and the identifier of the second PE, where the role is an active PE or a standby PE.
104: The PR sends a status synchronization manner, the identifier of the first PE, and information about the role of the first PE in the pool to the second PE.
According to this embodiment of the present disclosure, a flexible high availability (HA) mechanism is achieved. An HA role, a status synchronization source, and a status synchronization method are dynamically bound with a pool element role, leading to good expansibility, and it can be supported that more pool elements are added to a pool element pool to obtain high reliability. Moreover, synchronization links can be reduced, so that costs are greatly reduced, and a large-scale deployment of network functions virtualization can be better achieved.
Optionally, the status synchronization manner is:
Optionally, the first registration message further carries capability information of the first PE, and the second registration message further carries capability information of the second PE;
Optionally, the capability information of the first PE includes at least one of a throughput, performance, load, and a service related capability of the first PE, and the capability information of the second PE includes at least one of a throughput, performance, load, and a service related capability of the second PE.
Optionally, the identifier of the first PE includes at least one of address information, serial number information, and priority level information of the first PE, and the identifier of the second PE includes at least one of address information, serial number information, and priority level information of the second PE.
Optionally, the status synchronization manner, the identifier of the first PE, and the information about the role of the first PE are sent by extending an ASAP protocol message or by defining a new message.
Optionally, the status synchronization manner is:
Optionally, the pool element may be a server, or may be a virtualized network function; and includes, but is not limited to, a virtual firewall device (vFW), a virtual access router (vAR), a virtual load balance device (vLB), a virtual wide area network optimization controller (vWoC), a virtual intrusion detection system/intrusion protection system (vIDS/IPS), or virtual network address translation (vNAT).
Optionally, the pool register may be a device independent of the pool element, or may be a functional module distributed and embedded in all or some of pool elements or a pool element. There may also be multiple pool registers, and the multiple pool registers synchronize registered pool element information to each other, thereby implementing redundant backup for each other.
Optionally, after being created, each pool element needs to register with a pool register in time, so as to be registered in a pool of network functions virtualization, and after de-registration and update of an attribute, a status, and the like, the pool register also needs to be notified in time. The registration message includes an identifier, for example, address information, serial number information, priority level information, of a pool element, where the identifier may be used to determine the pool element. The registration message may also include capability information of the pool element. The capability information includes at least one of a throughput, performance, load, and a service related capability of the pool element. The service related capability refers to a capability related to a specific service of a pool element. For example, the service related capability of a vFW refers to a flow processing quantity, a working mode, a route quantity, and the like that are related to a firewall.
These information may be carried by using a pool element parameter in an ASAP_REGISTRATION message of the IETF Rserpool ASAP protocol, and a format of the ASAP_REGISTRATION message is shown in
Location information is a type of parameter information and may be carried by using IPv4 address parameter information (as shown in
Capability information may be carried by defining capability parameter information, as shown in
A service type (Service Code) field is used to define a type of a virtual network function. For example, 0 is reserved, 1 is a virtual firewall, and 2 is a virtual wide area network accelerating device.
A capability (Capability) field is used to define performance of a virtual network function. For example, 0 is reserved, 1 is a processing capability of 130 Mbps, and 2 is a processing capability of 200 Mbps.
The pool register determines a role of a pool element according to an identifier included in registration information reported by each pool element, where the role being an active PE or a standby PE. Generally, there is only one determined standby PE, and multiple active PEs share a same standby PE. A specific determining method may be determining the active PE or the standby PE by comprehensively considering at least one of address information, serial number information, and priority level information of each PE, or determining the active PE or the standby PE by more comprehensively considering at least one of address information, serial number information, priority level information, a throughput, performance, load, and a service related capability of each PE.
Certainly, the active PE or the standby PE may also be configured by a network controller or manually specified by a network administrator. Specific determining methods are not limited in this embodiment of the present disclosure and all fall within the protection scope of this embodiment of the present disclosure.
The following provides a method for determining, by a PR, an active PE or a standby PE by using a specific embodiment:
A PR receives a registration message sent by a pool element A and learns, according to the registration message, that the pool element A is a virtual firewall and an identifier, that is, an IP address, of the pool element A is 10.10.10.10.
The PR receives a registration message sent by a pool element B and learns, according to the registration message, that the pool element B is a virtual firewall and an identifier, that is, an IP address, of the pool element B is 10.10.10.20. The PR selects, according to the identifier of the pool element A and the identifier of the pool element B, a pool element having a smaller IP address as a standby role, and therefore, the PR may select A as a standby PE.
The PR sends a status synchronization manner, the identifier of the pool element A, and information about a role of the pool element A in a pool to the pool element B.
In this embodiment of the present disclosure, the PR may send a status synchronization manner and the information about the role of the pool element A in the pool to the pool element A.
If a registration message is subsequently received from a pool element C, after receiving the registration message, the PR learns, by using the registration message, that the pool element C is a virtual firewall and has a processing capability of 200 Mbps and an IP address is 10.10.10.1, and the PR may select a pool element having a strongest processing capability as a standby role, and therefore, the PR may select C as a standby PE. In another embodiment, after determining an active and standby relationship between B and A, to avoid that a service is affected by a change in a standby role, the PR may keep a standby role element unchanged, that is, keep A as a standby PE.
After a standby PE is determined, a status synchronization manner in this embodiment of the present disclosure may include, but is not limited to, the following manners:
First, a synchronization link is established between an active pool element and a pool register to transfer status information, and the active pool element periodically reports the status information to the pool register or a third-party device; and a synchronization link is also established between the pool register or the third-party device and a standby pool element to transfer status information, and the pool register or the third-party device periodically pushes the status information to the standby pool element.
Second, a synchronization link is established between an active pool element and a pool register to transfer status information, and the active pool element periodically reports the status information to the pool register or a third-party device; and the pool register or the third-party device saves the status information, and when the pool register or the third-party device finds through monitoring that the active pool element may be faulty, where a specific monitoring method may be live detection, and specific monitoring methods are not limited in this embodiment of the present disclosure and all fall within the protection scope of this embodiment of the present disclosure, a TCP link or a UDP link is established between the pool register or the third-party device and a standby pool element to send the saved status information to the standby pool element.
Third, a synchronization link is established between an active pool element and a pool register to transfer status information, the active pool element periodically reports the status information to the pool register or a third-party device, a synchronization link is also established between a standby PE and the PR or the third-party device, to request to acquire the status information from the PR or the third-party device, and the PR or the third-party device sends the status information to the standby PE by using the synchronization link between the PR or the third-party device and the standby PE.
Fourth, when a pool register finds through monitoring that an active pool element may be faulty, the pool register commands a standby pool element to request status information from the active pool element, a TCP link or a UDP link is established between the standby pool element and the active pool element to send a status information request message to the active pool element, so as to request status information of the active pool element, and after receiving the status information request message, the active pool element synchronizes the status information to the standby pool element by using the TCP link or the UDP link.
Specific status information may be varied with a type of a pool element. For example, a vFW may include an NAT Translation Table, TCP Connection States, UDP Connection States, and an ARP Table; and a vAR may include a routing table, an ARP Table, and an NAT Translation Table.
These information may be carried by defining a new message, and the following provides various newly-defined message content formats by using a vFW service node as an example.
1. General Format
A registration message, a status message, and a de-registration message mentioned in this embodiment of the present disclosure are all located at the application layer, what is carried below may be the TCP protocol, a default port may be 30012, and a message body is in a json format and is transmitted in a text form.
After determining a standby PE, a PR sends an identifier of the PE for functioning as a standby role and role information of the PE to a pool element in a pool.
The PR sends an identifier and role information of a standby PE to the pool element in the pool by using a registration response message, for example, may be carried by using a pool element parameter in an ASAP_REGISTRATION_RESPONSE message of the IETF Rserpool ASAP protocol, and a format of the ASAP_REGISTRATION_RESPONSE message is shown in
According to this embodiment of the present disclosure, an identifier and/or role information of a determined active PE may also be sent to a PE in a pool, and a sending manner and a sent message are similar to those for sending an identifier and/or role information of a standby PE to a PE in a pool. Details are not described herein again.
Further, the PR may further send a status synchronization manner to the pool element in the pool, and sent information may also be carried by using a pool element parameter in an ASAP_REGISTRATION_RESPONSE message of the IETF Rserpool ASAP protocol. As shown in
A process example according to an embodiment of the present disclosure is shown in
Step 1: PE1 carries an identifier of PE1 and registers with a PR (ASAP_REGISTRATION).
Step 2: PE2 carries an identifier of PE2 and registers with the PR (ASAP_REGISTRATION).
The PR determines, according to the identifier of each PE, that a role of PE1 is a standby PE.
Step 3: The PR sends a registration response (ASAP_REGISTRATION_RESPONSE) to PE2, to notify PE2 of an identifier and the role of PE1 and a status synchronization manner.
Step 4: The PR sends a registration response (ASAP_REGISTRATION_RESPONSE) to PE1, to notify PE1 of the role of PE1 and the status synchronization manner.
The following describes, with a specific embodiment, an active/standby switching scenario.
In actual running, an active role and a standby role dynamically change. As shown in
Upon receiving ASAP_UPDATE, the pool register learns that the pool element has changed from a standby role to an active role; and in this case, there is no standby role in the pool, the pool register may additionally select a standby role according to an identifier and/or capability information of each PE in the pool and then notify all pool elements of information about the new standby role by using a specific notification message ASAP_UPDATE (whose format is shown in
Further, the PR may further send the status synchronization manner to the pool element.
According to this embodiment of the present disclosure, a flexible high availability (HA) mechanism is achieved. An HA role, a status synchronization source, and a status synchronization method are dynamically bound with a pool element role, leading to good expansibility, and it can be supported that more pool elements are added to a pool element pool to obtain high reliability. Moreover, synchronization links can be reduced, so that costs are greatly reduced, and a large-scale deployment of network functions virtualization can be better achieved.
Based on a same design concept, an embodiment of the present disclosure further provides a PR. Referring to
Optionally, the status synchronization manner is:
Optionally, the first registration message further carries capability information of the first PE, and the second registration message further carries capability information of the second PE; and the determining module 1302 is configured to determine the role of the first PE in the pool according to the identifier of the first PE, the capability information of the first PE, the identifier of the second PE, and the capability information of the second PE, where the role is an active PE or a standby PE.
Optionally, the identifier of the first PE includes at least one of address information, serial number information, and priority level information of the first PE, and the identifier of the second PE includes at least one of address information, serial number information, and priority level information of the second PE.
Optionally, the sending module 1302 is configured to send the status synchronization manner, the identifier of the first PE, and the information about the role of the first PE by extending an ASAP protocol message or by defining a new message.
Optionally, the status synchronization manner is:
An embodiment of the present disclosure further provides a PR. Referring to
The bus 1404 may be an industry standard architecture (ISA) bus, a peripheral component interconnect (PCI) bus, an extended industry standard architecture (EISA) bus, or the like. The bus 1404 may be divided into an address bus, a data bus, a control bus, and the like. For convenience of representation, only one line is used for representation in the figure, but it does not indicate that there is only one bus or one type of buses.
The memory 1403 is configured to store program code, and the program code includes an operation instruction. The memory 1403 may include a high-speed random access memory (RAM), or may also include a non-volatile memory, for example, a magnetic disk storage.
The processor 1402 may be a central processing unit (CPU) or an application-specific integrated circuit (ASIC), or may be configured as one or more integrated circuits that implement the embodiments of the present disclosure.
The transceiver 1401 is configured to receive a first registration message sent by a first PE, where the first registration message is used to add the first PE to a pool, and the first registration message carries an identifier of the first PE; and configured to receive a second registration message sent by a second PE, where the second registration message is used to add the second PE to the pool, and the second registration message carries an identifier of the second PE.
The processor 1402 is configured to invoke the program code that is in the memory 1403, to perform the following operations:
The transceiver 1401 is further configured to send a status synchronization manner, the identifier of the first PE, and information about the role of the first PE in the pool to the second PE.
As shown in
Optionally, the status synchronization manner is:
An embodiment of the present disclosure further provides a PE. Referring to
The bus 1604 may be an ISA bus, a PCI bus, an EISA bus, or the like. The bus 1604 may be divided into an address bus, a data bus, a control bus, and the like. For convenience of representation, only one line is used for representation in the figure, but it does not indicate that there is only one bus or one type of buses.
The memory 1603 is configured to store program code, and the program code includes an operation instruction. The memory 1603 may include a high-speed random access memory RAM, or may also include a non-volatile memory, for example, a magnetic disk storage.
The transmitter 1601 is configured to send a registration message to a PR, where the registration message is used to add the PE to a pool, and the registration message carries an identifier of the PE.
The receiver 1602 is configured to receive a status synchronization manner, an identifier of a second PE, and information about a role of the second PE in the pool that are sent by the PR, where the information about the role is information that the second PE is an active PE or a standby PE.
Because functional implementation of the apparatus according to this embodiment of the present disclosure and that of the method both belong to a same inventive concept, reference may be made to the method, and details are not described herein again.
According to the embodiments of the present disclosure, a flexible high availability mechanism is achieved. An HA role, a status synchronization source, and a status synchronization method are dynamically bound with a pool element role, leading to good expansibility, and it can be supported that more pool elements are added to a pool element pool to obtain high reliability. Moreover, synchronization links can be reduced, so that costs are greatly reduced, and a large-scale deployment of network functions virtualization can be better achieved.
A person of ordinary skill in the art may be aware that, in combination with the examples described in the embodiments disclosed in this specification, modules and algorithm steps may be implemented by electronic hardware or a combination of computer software and electronic hardware. Whether the functions are performed by hardware or software depends on particular disclosures and design constraint conditions of the technical solutions. A person skilled in the art may use different methods to implement the described functions for each particular disclosure, but it should not be considered that the implementation goes beyond the scope of the present disclosure.
It may be clearly understood by a person skilled in the art that, for the purpose of convenient and brief description, for a detailed working process of the foregoing system, apparatus, and module, reference may be made to a corresponding process in the foregoing method embodiments, and details are not described herein again.
In the several embodiments provided in the present disclosure, it should be understood that the disclosed system, apparatus, and method may be implemented in other manners For example, the described apparatus embodiment is merely exemplary. For example, the module division is merely logical function division and may be other division in actual implementation. For example, a plurality of modules or components may be combined or integrated into another system, or some features may be ignored or not performed. In addition, the displayed or discussed mutual couplings or direct couplings or communication connections may be implemented through some interfaces. The indirect couplings or communication connections between the apparatuses or modules may be implemented in electronic, mechanical, or other forms.
The modules described as separate parts may or may not be physically separate, and parts displayed as modules may or may not be physical modules, may be located in one position, or may be distributed on a plurality of network modules. Some or all of the modules may be selected according to actual needs to achieve the objectives of the solutions of the embodiments.
In addition, functional modules in the embodiments of the present disclosure may be integrated into one processing module, or each of the modules may exist alone physically, or two or more modules are integrated into one module.
When the functions are implemented in the form of a software functional module and sold or used as an independent product, the functions may be stored in a computer-readable storage medium. Based on such an understanding, the technical solutions of the present disclosure essentially, or the part contributing to the prior art, or some of the technical solutions may be implemented in a form of a software product. The software product is stored in a storage medium, and includes several instructions for instructing a computer device (which may be a personal computer, a server, or a network device) to perform all or some of the steps of the methods described in the embodiments of the present disclosure. The foregoing storage medium includes: any medium that can store program code, such as a USB flash drive, a removable hard disk, a ROM, a RAM, a magnetic disk, or an optical disc.
The foregoing descriptions are merely specific implementation manners of the present disclosure, but are not intended to limit the protection scope of the present disclosure. Any variation or replacement readily figured out by a person skilled in the art within the technical scope disclosed in the present disclosure shall fall within the protection scope of the present disclosure. Therefore, the protection scope of the present disclosure shall be subject to the protection scope of the claims.
Number | Date | Country | Kind |
---|---|---|---|
201310436540.X | Sep 2013 | CN | national |
This application is a continuation of International Patent Application No. PCT/CN2014/084412, filed on Aug. 14, 2014, which claims priority to Chinese Patent Application No. 201310436540.X, filed on Sep. 22, 2013, both of which are hereby incorporated by reference in their entireties.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/CN2014/084412 | Aug 2014 | US |
Child | 15076334 | US |