Service request routing method, related device, cloud network system and storage medium
By deploying ECS servers and physical servers in the cloud network and dynamically adjusting the mapping between ENI addresses and server addresses, the problem of limited processing performance of ECS servers is solved, and efficient and stable service request routing and processing are achieved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- ALIBABA (CHINA) CO LTD
- Filing Date
- 2023-03-28
- Publication Date
- 2026-04-14
AI Technical Summary
In existing technologies, service requests from VPC users are all routed to ECS servers for processing, which limits processing performance to the bandwidth and processor capabilities of the ECS servers, resulting in cost pressures and stability issues.
Deploy ECS servers and physical servers in the cloud network, and dynamically adjust the mapping between ENI addresses and server addresses through routing and control devices to enable service requests to be routed between ECS servers and physical servers, and utilize the high bandwidth processing capabilities of physical servers to match traffic changes.
It enriches the service request processing methods, improves processing performance and stability, reduces cost pressure, and adapts to the service request routing needs under different traffic conditions.
Smart Images

Figure CN116436983B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of network technology, specifically to a service request routing method, related devices, a cloud network system, and a storage medium. Background Technology
[0002] In cloud networks, a Virtual Private Cloud (VPC) serves as a dynamically configured pool of public cloud computing resources. It can utilize encryption protocols, tunneling protocols, and other security measures to enable data transfer between users and cloud servers. VPCs allow users to build isolated, user-configurable, and managed virtual network environments for their servers, thereby enhancing the security of cloud resources and simplifying network deployment.
[0003] In NFV (Network Function Virtualization) platforms, servers can utilize ECS (Elastic Compute Service) to provide services to VPC users; for example, service requests from VPC users can be routed to ECS servers for processing. However, the above method of routing all VPC user service requests to ECS servers for processing is relatively simplistic. Summary of the Invention
[0004] In view of this, embodiments of this application provide a service request routing method, related devices, a cloud network system, and a storage medium. By deploying ECS servers and physical servers in the cloud network, user service requests are processed, and a routing scheme for service requests to ECS servers and physical servers is provided, thereby enriching the service request processing methods for VPC users to match changing service request traffic.
[0005] To achieve the above objectives, the embodiments of this application provide the following technical solutions.
[0006] In a first aspect, embodiments of this application provide a service request routing method, including:
[0007] A service request to obtain the target ENI, the service request carrying the target ENI address indicating the target ENI;
[0008] Based on the routing table, the target server address corresponding to the target ENI address is determined; wherein, the routing table records the correspondence between ENI addresses and server addresses, and the server address corresponding to the ENI address recorded in the routing table is adjusted between the ECS server address and the physical machine server address;
[0009] If the target server address is an ECS server address, the service request will be routed to the ECS server corresponding to the target server address for processing.
[0010] If the target server address is a physical machine server address, the service request is routed to the physical machine server corresponding to the target server address for processing.
[0011] Secondly, embodiments of this application provide a service request routing method, including:
[0012] Obtain the traffic monitoring results from ENI;
[0013] Based on the traffic monitoring results of ENI, adjust the server address corresponding to the ENI address between the ECS server address and the physical machine server address.
[0014] The mapping between ENI addresses and server addresses is sent to the routing table for recording;
[0015] The routing table is used to: indicate that when the server address corresponding to the ENI address is an ECS server address, the ENI service request is routed to the corresponding ECS server for processing; and when the server address corresponding to the ENI address is a physical machine server address, the ENI service request is routed to the corresponding physical machine server for processing.
[0016] Thirdly, embodiments of this application provide a routing device, including at least one processor and at least one memory, wherein the memory stores one or more computer-executable instructions, and the processor invokes the one or more computer-executable instructions to execute the service request routing method as described in the first aspect above.
[0017] Fourthly, embodiments of this application provide a control device, including at least one processor and at least one memory, the memory storing one or more computer-executable instructions, the processor invoking the one or more computer-executable instructions to execute the service request routing method as described in the second aspect above.
[0018] Fifthly, embodiments of this application provide a cloud network system, which includes: multiple ECS servers, multiple physical machine servers, routing devices, and control devices;
[0019] The ECS server is virtualized into multiple virtual machines to handle ENI service requests, and each virtual machine runs a handler to process the service requests.
[0020] The physical machine server uses FPGA resources to process ENI service requests, and the FPGA resources run a processing program to process the service requests.
[0021] The server that handles ENI service requests is determined based on the server address corresponding to the ENI address, which is adjusted between the ECS server address and the physical machine server address.
[0022] The routing device is the routing device described in the third aspect above;
[0023] The control device is the control device described in the fourth aspect above.
[0024] In a sixth aspect, embodiments of this application provide a storage medium storing one or more computer-executable instructions, which, when executed, implement the service request routing method as described in the first aspect above, or the service request routing method as described in the second aspect above.
[0025] In a seventh aspect, embodiments of this application provide a computer program that, when executed, implements the service request routing method as described in the first aspect above, or the service request routing method as described in the second aspect above.
[0026] In the service request routing method provided in this application embodiment, the routing device can set a routing table, which records the correspondence between ENI addresses and server addresses. The server address corresponding to the ENI address recorded in the routing table is adjusted between the ECS server address and the physical machine server address. Therefore, when a user uses a service from a target ENI, the routing device can obtain the service request from the target ENI, and the service request carries the target ENI address. Based on the correspondence between the ENI address and server address recorded in the routing table, this application embodiment can determine the target server address corresponding to the target ENI address, thereby determining the server that processes the service request (i.e., the target ENI). (The server providing the service); Since the server address corresponding to the ENI address is adjusted between the ECS server address and the physical machine server address, the target server address corresponding to the target ENI address may be either the ECS server address or the physical machine server address; Therefore, in this embodiment, when the target server address is confirmed to be an ECS server address, the service request can be routed to the ECS server corresponding to the target server address for processing, and when the target server address is confirmed to be a physical machine server address, the service request can be routed to the physical machine server corresponding to the target server address for processing, so as to realize the routing of the service request of the target ENI to the corresponding server for processing.
[0027] The service request routing method provided in this application embodiment can support adjusting the server routed for ENI service requests between ECS servers and physical servers in a heterogeneous architecture of ECS servers and physical servers. Since the bandwidth processing capacity of physical servers is higher than that of ECS servers, this application embodiment can match changes in service request traffic by using servers with different bandwidth processing capabilities. Therefore, the service request routing method provided in this application embodiment can enrich the processing methods of service requests, support adjusting the server routed for ENI service requests between ECS servers and physical servers, thereby matching changes in service request traffic. Attached Figure Description
[0028] To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only embodiments of this application. For those skilled in the art, other drawings can be obtained based on the provided drawings without creative effort.
[0029] Figure 1 Example diagram for routing service requests.
[0030] Figure 2 This is an architectural block diagram of the cloud network system provided in the embodiments of this application.
[0031] Figure 3 A flowchart of a service request routing method provided in an embodiment of this application.
[0032] Figure 4 A flowchart illustrating the method for adjusting routing table records provided in this application embodiment.
[0033] Figure 5 Another flowchart of the service request routing method provided in the embodiments of this application.
[0034] Figure 6 An example diagram illustrating the implementation of the service request routing method provided in this application embodiment.
[0035] Figure 7 A block diagram of a service request routing apparatus provided in an embodiment of this application.
[0036] Figure 8 Another block diagram of the service request routing apparatus provided in the embodiments of this application. Detailed Implementation
[0037] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.
[0038] ENI (Elastic Network Interface), as a logical network component of VPC, can be considered a virtual network interface card (NIC). ENI can be bound to an ECS (Elastic Compute Service) server, which then provides services to the ENI. Therefore, when a VPC user requests services from the ENI, the VPC client can route the service request to the ECS server to which the ENI is bound. The ECS server then processes the service request and provides the user with the ENI's services. For ease of understanding, Figure 1 An example diagram of service request routing is shown, such as... Figure 1 As shown, client 110 can configure ENI 111 and virtual switch 112. When a user requests to use ENI services, client 110 can generate an ENI service request, and virtual switch 112 can route the service request to ECS server 120 bound to ENI. In the NFV platform, ECS server 120 can virtualize multiple virtual machines 121; thus, after receiving a service request, ECS server 120 can use the virtualized virtual machines to process the service request and provide ENI services to the user.
[0039] It should be noted that the NFV platform, as the underlying foundation for network element forwarding, can provide network element services with highly elastic, high-concurrency, high-instance, and low-latency forwarding capabilities. The forwarding capability of the NFV platform can be viewed as the ability of the ECS server within the NFV platform to process ENI service requests.
[0040] In one example, forwarding capabilities such as PT (Packet Transformation) can be viewed as abstract logic for forwarding match-action packets.
[0041] However, in NFV platforms, all user service requests are routed to ECS servers for processing (e.g., forwarding capabilities are all implemented by ECS servers). Therefore, the processing performance of service requests (e.g., forwarding performance) is limited by the bandwidth and processor (e.g., CPU) capabilities of the ECS servers. The processors of ECS servers can be used to virtualize multiple virtual machines. For example, when network traffic bandwidth is high, multiple ECS servers need to be used because the bandwidth of a single ECS server is insufficient, leading to significant cost pressure. Similarly, when the traffic of a single service request is high, the virtual machines within the ECS server need to handle the large volume of service requests, resulting in high processor (e.g., CPU core) utilization on the ECS server. This will affect the normal and stable processing performance of service requests (e.g., affecting the normal and stable implementation of forwarding capabilities).
[0042] As can be seen, routing all service requests from VPC users to ECS servers for processing is not only simplistic but also has many limitations. Therefore, this application provides an NFV platform that supports the elasticity of network element scale-out (horizontal scaling) while using a hardware-software integrated service request processing solution to support scale-up (vertical scaling), thereby solving the cost and stability issues associated with solely using ECS servers to process service requests. It should be noted that horizontal scaling can be viewed as adding more logical units and making them work together as a whole to achieve stronger processing capabilities; vertical scaling can be viewed as adding resources within the same logical unit to expand processing capabilities, such as increasing the number of server processors, memory, and hard drives.
[0043] Based on the hardware-software integrated service request processing scheme provided in this application, this application can further utilize a physical machine server to process service requests, in addition to using an ECS server. The physical machine server can be considered a server that processes data using hardware resources such as FPGAs. For example, the physical machine server can be an FPGA (Field Programmable Gate Array) based server. In an optional implementation example, taking the processing of service requests through packet forwarding (e.g., match action packets) via a PT program as an example, the ECS server can run the PT program through a virtual machine to perform packet forwarding, thereby processing the service request; while the physical machine server can run the PT program through hardware resources such as FPGAs to perform packet forwarding, thereby processing the service request.
[0044] In a cloud network where ECS servers and physical servers are deployed to handle user service requests (e.g., using a heterogeneous architecture of ECS servers and physical servers for packet forwarding), this application embodiment provides a routing scheme for service requests to the ECS servers and physical servers. For ease of explanation, a cloud network system with a heterogeneous architecture of ECS servers and physical servers is described below as an optional implementation. Figure 2 An exemplary architectural block diagram of a cloud network system provided in an embodiment of this application is shown, such as... Figure 2 As shown, the cloud network system may include: ECS server 120, physical machine server 210, routing device 220 and control device 230.
[0045] ECS server 120 can be virtualized into multiple virtual machines 121 based on NFV to handle service requests routed to ECS server 120. For example, virtual machines 121 in ECS server 120 can be used to forward packets routed to ECS server 120. The cloud network system can have multiple ECS servers, and each ECS server can virtualize multiple virtual machines.
[0046] Physical server 210 may have hardware resources such as FPGA to process service requests routed to it. For example, the FPGA or other hardware resources in physical server 210 can be used to forward packets routed to it. A cloud network system may have multiple physical servers.
[0047] Routing device 220 can be used to route service requests sent by client 110 and determine whether the service request should be routed to the ECS server or the physical machine server for processing. For a description of client 110, please refer to the corresponding section above.
[0048] In an optional implementation, the routing device 220 can record the correspondence between ENI addresses and server addresses, thereby determining the corresponding server address based on the ENI address carried in the service request. If the determined server address indicates a physical machine server, the service request can be routed to the physical machine server corresponding to the determined server address for processing. If the determined server address indicates an ECS server, the service request can be routed to the ECS server corresponding to the determined server address for processing.
[0049] In an optional implementation, the routing device 220 can be a Virtual Gateway (VGW) in a cloud network system, or a virtual gateway and an NFV gateway (NFV-GW). Of course, any device or component with traffic routing capabilities in the cloud network system can be used as a routing device, and this application embodiment is not limited in this regard. In an optional implementation example, if the routing device 220 is a virtual gateway, optionally, a virtual gateway can connect to an ENI or a Bonding ENI; if the routing device 220 is a virtual gateway and an NFV gateway, optionally, a virtual gateway can connect to an ENI or a Bonding ENI, and the virtual gateway can connect to the NFV gateway, which in turn connects to the ECS server and the physical machine server.
[0050] It's important to note that Bonding ENI refers to an ENI that aggregates ENIs bound to multiple servers (e.g., multiple ECS servers) using ENI Bonding technology. In other words, ENI Bonding is a technique that combines different ENIs bound to multiple servers and presents a single logical ENI externally; this externally presented logical ENI is called a Bonding ENI. Optionally, an ENI can be bound to one server (e.g., one ENI bound to one ECS server). Optionally, an ENI can also be bound to multiple servers; for example, in the case of Bonding ENI, one ENI (the logical ENI presented externally by ENI Bonding technology) can be bound to multiple servers.
[0051] Optionally, embodiments of this application can modify the mapping between ENI addresses and server addresses to change the server corresponding to the ENI (e.g., Bonding ENI), thereby dynamically scheduling whether service requests are routed to an ECS server or a physical machine server for processing. Optionally, embodiments of this application can dynamically modify the mapping between ENI addresses and server addresses based on the traffic patterns of the ENI (e.g., Bonding ENI).
[0052] In this embodiment, the control device 230, as a device or component at the control decision level in the cloud network system, can dynamically modify the mapping between ENI addresses and server addresses based on traffic conditions using ENI (e.g., Bonding ENI). Optionally, the control device 230 may also have other functions, such as issuing service request processing strategies to servers (ECS servers and physical machine servers). In one example, when a server (ECS server or physical machine server) receives a match action message and needs to forward it, the server can determine the action matched by the match action message according to the action strategy, and then execute the corresponding action; in the above process, the action strategy recorded by the server can be decided by the control device and issued to the server.
[0053] As an optional implementation, based on Figure 2 The cloud network system architecture shown is as follows: Figure 3 An exemplary flowchart of an optional service request routing method provided in an embodiment of this application is shown, with reference to... Figure 3 The method process may include the following steps.
[0054] In step S310, the client generates a service request for the target ENI, the service request carrying the target ENI address.
[0055] For ease of explanation, in this embodiment, the ENI requesting the use of a service is referred to as the target ENI. When a user requests the use of a service from the target ENI, the client can generate a service request for the target ENI. The service request for the target ENI can carry the target ENI address (the target ENI address can be considered as the address of the target ENI, such as the IP address of the target ENI). In an optional implementation, the address of the ENI can be recorded in the ENI and carried in the corresponding service request when the user requests the use of the ENI's service.
[0056] In an optional implementation, the target ENI address can be the destination address of the service request or the next-hop address of a route. In one implementation example, when a user requests to use a service with a target ENI, the service for that target ENI needs to be provided by the server. The client can then access the server and generate a service request, which can carry the target ENI address (e.g., the destination address or the next-hop address of a route) corresponding to the target ENI for which the service is requested.
[0057] In an optional implementation, the address can be in the form of an IP (Internet Protocol) address; correspondingly, the destination IP address or next-hop IP address of the service request can be the destination ENI IP address. When the destination ENI is a Bonding ENI, the destination IP address or next-hop IP address of the service request can be the IP address of the Bonding ENI.
[0058] In step S311, the client queries the local routing table. If the local routing table does not have a routing record for the target ENI address, the client sends the service request to the routing device.
[0059] In an optional implementation, the client can configure a virtual switch for routing service requests. After generating a service request, the client's virtual switch can query the local routing table to determine whether the local routing table contains a route record corresponding to the target ENI address.
[0060] If the local routing table contains a routing record corresponding to the destination ENI address, the client's virtual switch can route the service request to the server recorded in the routing record for processing. Based on the heterogeneous architecture of the ECS server and physical server in this embodiment, the routing record in the client's local routing table may record either the ECS server address or the physical server address. In an optional implementation, the client's local routing table can determine whether it contains a routing record for the ENI address and the server address routed by the ENI address based on whether the service request for the ENI has been historically routed to that server.
[0061] If the local routing table does not contain a routing record for the destination ENI address, the client's virtual switch can send the service request to the routing device.
[0062] In an optional implementation, after generating a service request, the client can directly send the service request to the routing device without first checking the local routing table for a routing record of the target ENI address.
[0063] In a further optional implementation, the client can send service requests to the routing device through the user's target VXLAN (Virtual Extensible Local Area Network). Accordingly, the service request sent to the routing device carries not only the target ENI address but also the target VXLAN address (called the target VXLAN address). In one example, the VXLAN address can be in the form of an IP address, and the target VXLAN address is, for example, the target VXLAN IP address. The target VXLAN can be considered as the VXLAN used by the user's VPC. It should be noted that VXLAN is a tunneling technology that can establish a Layer 2 Ethernet network tunnel on top of a Layer 3 network. For example, VXLAN can penetrate a Layer 3 network to extend Layer 2, encapsulating traffic and extending it to a Layer 3 gateway, thereby overcoming the portability limitations of virtual memory systems and enabling access to servers on external IP subnets.
[0064] The client sends a service request for the target ENI to the routing device, and the routing device can then retrieve the service request for the target ENI. For example, the routing device can retrieve the service request for the target ENI through the target VXLAN.
[0065] In step S312, the routing device determines the target server address corresponding to the target ENI address based on the routing table.
[0066] The routing table records the mapping between ENI addresses and server addresses. The server addresses corresponding to the ENI addresses recorded in the routing table are adjusted between ECS server addresses and physical machine server addresses.
[0067] Optionally, the routing device can route service requests for the target ENI address when there is no routing record for the target ENI address in the client's local routing table, and determine whether the service request is routed to the ECS server or the physical machine server.
[0068] In an optional implementation, the routing device can configure a routing table that records the mapping between ENI addresses and server addresses, thereby identifying the server that handles ENI service requests. For example, the routing table can record the mapping between ENI IP addresses (such as Bonding ENI IP addresses) and server IP addresses, thus determining which server handles the service requests for each Bonding ENI IP address.
[0069] Furthermore, the server address corresponding to the ENI address recorded in the routing table can be adjusted between the ECS server address and the physical machine server address. In other words, for any ENI address (e.g., any Bonding ENI IP address), the server address corresponding to that ENI address in the routing table can be adjusted between the ECS server address and the physical machine server address; for example, for any ENI address, the server address at one time might be the ECS server address, while at another time it might be adjusted to the physical machine server address.
[0070] In an optional implementation, for any ENI, embodiments of this application can adjust the server address corresponding to the ENI address between the ECS server address and the physical machine server address based on the traffic changes of the ENI. For example, if the bandwidth processing capacity of the physical machine server is higher than that of the ECS server (e.g., the bandwidth processing capacity of the physical machine server's FPGA is higher than that of the ECS server's virtual machine bandwidth processing capacity), embodiments of this application can configure service requests for ENIs with higher traffic to be processed by the physical machine server, and configure service requests for ENIs with lower traffic to be processed by the ECS server, and record the corresponding routing relationships through a routing table.
[0071] In one implementation example, for any ENI address, if the ENI traffic to that address is an "elephant flow" or exceeds a traffic threshold, it is considered that the ENI service request traffic has experienced an elephant flow or excessively high traffic. In this case, the ENI service request traffic is high, and it can be configured to be handled by a physical server. Thus, the routing table can record the mapping between the ENI address and the physical server address. Conversely, for any ENI address, if the ENI traffic to that address is not an elephant flow or is below a traffic threshold, it is considered that the ENI service request traffic has not experienced an elephant flow or excessively high traffic. In this case, the ENI service request traffic is low, and it can be configured to be handled by an ECS server. Thus, the routing table can record the mapping between the ENI address and the ECS server address.
[0072] In an optional implementation, the traffic status of an ENI can be monitored (e.g., real-time monitoring) by the server currently handling the service request for that ENI. When the server detects that the ENI traffic is an elephant flow or the traffic exceeds a traffic threshold, it can transmit the monitoring result to the control device at the control layer. The control device can then set the server address corresponding to the ENI's ENI address to the physical machine address and record it in the routing table of the routing device. When the server detects that the ENI traffic is not an elephant flow or the traffic is below the traffic threshold, it can transmit the monitoring result to the control device at the control layer. The control device can then adjust the server address corresponding to the ENI's ENI address to the ECS server address and record it in the routing table of the routing device.
[0073] As can be seen, in a heterogeneous architecture of ECS servers and physical servers, the target server address corresponding to the target ENI address determined in this embodiment may be either an ECS server address or a physical server address, depending on the mapping relationship of the target ENI address in the routing table. The server address corresponding to a certain ENI address in the routing table can be adjusted between ECS server addresses and physical server addresses. For example, depending on changes in ENI traffic, the server address corresponding to the ENI address can be dynamically adjusted between ECS server addresses and physical server addresses.
[0074] In a further optional implementation, if the routing device obtains the service request for the target ENI through the target VXLAN, the service request can carry the target ENI address and the target VXLAN address. In this case, as an optional implementation, the routing table can record the correspondence between the ENI address, the VXLAN address, and the server address, so that the routing device can determine the target server address based on the target ENI address and the target VXLAN address carried in the service request. Of course, embodiments of this application can also support not recording the VXLAN address in the routing table; for example, using the ENI address and the server address, the server corresponding to the ENI service request can be set, and the server can be adjusted between the ECS server address and the physical machine server address.
[0075] In step S313, if the target server address is an ECS server address, the service request is routed to the ECS server corresponding to the target server address for processing.
[0076] In step S314, if the target server address is the physical machine server address, the service request is routed to the physical machine server corresponding to the target server address for processing.
[0077] After determining the target server address, which could be an ECS server address or a physical machine server address, this embodiment of the application can route the service request for the target ENI to the ECS server corresponding to that target server address for processing. For example, when the service request is in message form, the virtual machine on the ECS server corresponding to the target server address can run a PT program to forward the message.
[0078] When the target server address is a physical machine server address, this embodiment of the application can route the service request of the target ENI to the physical machine server corresponding to the target server address for processing. For example, when the service request is in the form of a message, the hardware resources such as the FPGA in the physical machine server corresponding to the target server address can run a PT program to forward the message.
[0079] In the service request routing method provided in this application embodiment, the routing device can set a routing table, which records the correspondence between ENI addresses and server addresses. The server address corresponding to the ENI address recorded in the routing table is adjusted between the ECS server address and the physical machine server address. Therefore, when a user uses a service from a target ENI, the routing device can obtain the service request from the target ENI, and the service request carries the target ENI address. Based on the correspondence between the ENI address and server address recorded in the routing table, this application embodiment can determine the target server address corresponding to the target ENI address, thereby determining the server that processes the service request (i.e., the target ENI). (The server providing the service); Since the server address corresponding to the ENI address is adjusted between the ECS server address and the physical machine server address, the target server address corresponding to the target ENI address may be either the ECS server address or the physical machine server address; Therefore, in this embodiment, when the target server address is confirmed to be an ECS server address, the service request can be routed to the ECS server corresponding to the target server address for processing, and when the target server address is confirmed to be a physical machine server address, the service request can be routed to the physical machine server corresponding to the target server address for processing, so as to realize the routing of the service request of the target ENI to the corresponding server for processing.
[0080] The service request routing method provided in this application embodiment can support adjusting the server routed for ENI service requests between ECS servers and physical servers in a heterogeneous architecture of ECS servers and physical servers. Since the bandwidth processing capacity of physical servers is higher than that of ECS servers, this application embodiment can match changes in service request traffic by using servers with different bandwidth processing capabilities. Therefore, the service request routing method provided in this application embodiment can enrich the processing methods of service requests, support adjusting the server routed for ENI service requests between ECS servers and physical servers, thereby matching changes in service request traffic.
[0081] As an optional implementation, the mapping between ENI addresses and server addresses recorded in the routing table can be adjusted based on ENI traffic patterns. Optionally, Figure 4 An exemplary flowchart of a method for adjusting routing table records provided in an embodiment of this application is shown, such as... Figure 4 As shown, the method flow may include the following steps.
[0082] In step S410, the server monitors the traffic of ENI.
[0083] The server referred to here can be the server currently handling ENI service requests. This server could be an ECS server or a physical machine server. The server can monitor ENI traffic; for example, the server currently handling ENI service requests can monitor ENI traffic in real time.
[0084] In step S411, if the ENI traffic is an elephant flow or the traffic is higher than the traffic threshold, the server sends the first monitoring result to the control device.
[0085] An "elephant flow" refers to traffic that accounts for more than a preset percentage of the total traffic. For example, traffic accounting for 90% of the total traffic is considered an elephant flow. The specific percentage of the preset percentage can be determined according to the actual situation, and this application embodiment does not impose a limitation. The traffic threshold is a predefined high traffic value (e.g., a predefined traffic value for extremely high traffic). When the traffic of the ENI is an elephant flow, or the traffic exceeds the traffic threshold, the server processing the ENI service request can consider the ENI traffic to be high. At this time, the server can send a first monitoring result to the control device (the first monitoring result can indicate that the ENI traffic has an elephant flow or extremely high traffic), so that the control device sets the server address corresponding to the ENI address to the physical machine server address, so that the service request of the high-traffic ENI can be routed to the physical machine server for processing.
[0086] In step S412, the control device sets the server address corresponding to the ENI address of the ENI to the physical machine server address.
[0087] In step S413, the control device sends the physical machine server address corresponding to the configured ENI address to the routing device.
[0088] After the control device obtains the first monitoring result from the server, it can set the server address corresponding to the ENI address as the physical server address. Furthermore, the control device can send the set physical server address corresponding to the ENI address to the routing device, allowing the routing device to record or update the server address corresponding to the ENI address in its routing table.
[0089] In step S414, if the ENI traffic is not an elephant flow, or the traffic is below the traffic threshold, the server sends a second monitoring result to the control device.
[0090] When the traffic of ENI is not an elephant flow or is below the traffic threshold, the server handling the service request of ENI can consider the traffic of ENI to be low. At this time, the server can send a second monitoring result to the control device (the second monitoring result can indicate that the traffic of ENI does not show an elephant flow or an extremely large flow), so that the control device sets the server address corresponding to the ENI address to the ECS server address, so that the service request of ENI with low traffic can be routed to the ECS server for processing.
[0091] In step S415, the control device sets the server address corresponding to the ENI address of the ENI to the ECS server address.
[0092] In step S416, the control device sends the ECS server address corresponding to the configured ENI address to the routing device.
[0093] After the control device obtains the second monitoring result from the server, it can set the server address corresponding to the ENI address as the ECS server address. Furthermore, the control device can send the set ENI address to the routing device, allowing the routing device to record or update the server address corresponding to the ENI address in its routing table.
[0094] For any ENI, the embodiments of this application can be followed Figure 4The process shown records or updates the server address corresponding to the ENI address, allowing the server address to be adjusted between the ECS server address and the physical machine server address based on changes in ENI traffic. In other words, for any ENI, the ENI traffic is monitored by the server currently handling the ENI service request, and the monitoring results are sent to the control device. The control device then dynamically sets the server address corresponding to the ENI address at the control layer based on changes in ENI traffic, between the ECS server address and the physical machine server address. The server address set by the control device for the ENI address can be distributed to the routing device, enabling the routing device to record or update the mapping between ENI addresses and server addresses in its routing table.
[0095] As can be seen, for any ENI, the server address corresponding to the ENI's ENI address can be adjusted between the ECS server address and the physical machine server address based on changes in the ENI's traffic. For example, for any ENI, if the ENI's traffic is an elephant flow or the traffic exceeds the traffic threshold, then the server address corresponding to the ENI's ENI address is the physical machine server address; if the ENI's traffic is not an elephant flow or the traffic is below the traffic threshold, then the server address corresponding to the ENI's ENI address is the ECS server address.
[0096] It should be noted that steps S411 to S413 and steps S414 to S416 are parallel steps under different flow monitoring results.
[0097] As an optional implementation, from the perspective of the control device... Figure 5 An exemplary flowchart of another optional service request routing method provided in an embodiment of this application is shown. This method can be applied to a control device. Figure 5 The method process may include the following steps.
[0098] In step S510, the flow monitoring results of ENI are obtained.
[0099] In step S511, based on the traffic monitoring results of ENI, the server address corresponding to the ENI address is adjusted between the ECS server address and the physical machine server address.
[0100] In step S512, the mapping between ENI addresses and server addresses is sent to the routing table for recording.
[0101] The routing table is used to: indicate that when the server address corresponding to the ENI address is an ECS server address, the ENI service request should be routed to the corresponding ECS server for processing; and when the server address corresponding to the ENI address is a physical machine server address, the ENI service request should be routed to the corresponding physical machine server for processing.
[0102] In an optional implementation, for any ENI, the server currently handling the service request for the ENI can monitor the traffic monitoring results of the ENI and send these results to the control device, thereby enabling the control device to obtain the traffic monitoring results of the ENI. Furthermore, based on the traffic monitoring results of the ENI, the control device can adjust the server address corresponding to the ENI address between the ECS server address and the physical machine server address. After determining the server address corresponding to the ENI address, the control device can distribute the mapping between the ENI address and the server address to the routing table for recording. For example, the control device can distribute the mapping between the ENI address and the server address to the routing device, so that the routing device can record the mapping between the ENI address and the server address in the routing table.
[0103] Furthermore, when a service request is received via an ENI, the routing device can determine the server to which the service request should be routed based on the routing table. For example, if the server address corresponding to the ENI address is an ECS server address, the service request will be routed to the ECS server indicated by the server address corresponding to the ENI address for processing; if the server address corresponding to the ENI address is a physical machine server address, the service request will be routed to the physical machine server indicated by the server address corresponding to the ENI address for processing.
[0104] This application embodiment utilizes a heterogeneous hybrid architecture of ECS servers and physical servers (e.g., ECS servers run PT programs using virtual machines, while physical servers run PT programs using hardware resources such as FPGAs) to handle ENI service requests and route service requests to servers. This maintains the high elasticity and flexibility of ECS servers while possessing the ultra-high processing power of physical servers. Furthermore, the NFV platform's control device manages and adjusts the servers corresponding to the BondingENI, recording this in the routing table. This allows the servers providing services to the ENI to dynamically adjust between ECS servers and physical servers based on changes in ENI traffic, making ENI traffic scheduling more flexible and adaptable to changes in ENI traffic. For example, for any ENI, when the NFV platform's control device detects a large or extremely large ENI flow through the ECS server, it can adjust the server address corresponding to the ENI address to the physical server service address, enabling the ENI traffic to be scheduled for processing by physical servers, thus completing the automatic migration and scheduling of ENI service processing for large or extremely large flows.
[0105] In a further optional implementation, the NFV platform's control device can use the VPC API (Application Programming Interface) to adjust the mapping between the ENI address and the server address recorded in the routing table of the routing device, thereby enabling the server address corresponding to the ENI address to switch between the ECS server address and the physical machine server address.
[0106] As an optional implementation, when the cloud network is configured with multiple ECS servers and multiple physical machine servers, the service request flow for the same ENI can be routed to the same ECS server or the same physical machine server for processing. For example, for any ENI, if this embodiment determines that the service request for the ENI is routed to an ECS server, then the service request flow for that ENI can be routed to the same ECS server for processing; as another example, for any ENI, if this embodiment determines that the service request for the ENI is routed to a physical machine server, then the service request flow for that ENI can be routed to the same physical machine server for processing. The service request flow can be considered as a streaming service request, such as a streaming message (e.g., a streaming matchaction message), which can be called a message flow.
[0107] The above scenario can be applied when the server corresponding to an ENI is adjusted between an ECS server and a physical server. For example, for any ENI, if the service request for that ENI is first routed to the physical server for processing, and as the traffic of the ENI changes, the service request for that ENI is adjusted to be processed by the ECS physical server, then when the service request for that ENI is subsequently adjusted to be processed by the physical server, the service request for that ENI can be routed to the same physical server as before for processing.
[0108] Taking ENI service requests as an example (e.g., match action messages), Figure 6 An exemplary diagram illustrating the implementation example of the service request routing method provided in this application embodiment is shown, in conjunction with... Figure 6 As shown, when a user needs to use the target ENI, they can request the server to provide the target ENI service, and the client can then generate a message.
[0109] When the client's virtual switch does not find a routing record for the destination ENI IP address in its local routing table, it can send a packet to the virtual gateway (a virtual gateway is an optional form of routing device) via the destination VXLAN. The packet sent to the virtual gateway carries the destination ENI IP address and the destination VXLAN address.
[0110] A virtual gateway can determine the target ENI IP address and the target server address corresponding to the target VXLAN address based on the mapping between ENI IP addresses, VXLAN addresses and server addresses recorded in the routing table.
[0111] If the virtual gateway determines that the target server address is an ECS server address, it can route the packet to the corresponding ECS server for processing. If the virtual gateway determines that the target server address is a physical machine server address, it can route the packet to the corresponding physical machine server for processing.
[0112] Furthermore, in combination Figure 6 The physical server and ECS server can monitor the traffic of the processed ENI separately, and then send the ENI traffic monitoring results to the control device. The control device can then adjust the server address corresponding to the ENI address based on the ENI traffic monitoring results (i.e., adjust the correspondence between the ENI address and the server address); for details, please refer to the description in the corresponding section above.
[0113] In a further optional implementation, the ECS server can perform packet forwarding for packets obtained by the ECS server. For example, a virtual machine running a PT program on the ECS server can determine the IP 5-tuple information of the packet (source IP address, source port, destination IP address, destination port, and transport layer protocol), use the packet's IP 5-tuple information as a key (input), and match the action corresponding to the key in the action policy. If an action corresponding to the key is matched, the ECS server can execute the action corresponding to the key; if no action corresponding to the key is matched, the ECS server can upload the key to the control device of the cloud network system, so that the control device can decide the action corresponding to the key and issue it to the ECS server, thereby allowing the ECS server to execute based on the action issued by the control device.
[0114] Similarly, for packets obtained by the physical server, the physical server can perform packet forwarding. For example, the FPGA running the PT program on the physical server can determine the IP 5-tuple information of the packet, use the IP 5-tuple information as a key (input), and match the action corresponding to the key in the action policy. If an action corresponding to the key is matched, the physical server can execute the action corresponding to the key. If no action corresponding to the key is matched, the physical server can upload the key to the control device of the cloud network system, so that the control device can decide the action corresponding to the key and send it to the physical server, so that the physical server can execute based on the action sent by the control device.
[0115] In other words, for the server that receives the message, the server can perform key-action matching and execute the matched action, thereby handling the ENI service request.
[0116] In one example, a service request could be a load balancing service request for ENI, for example, requesting ENI's load balancing service in the form of a key matchaction message. The load balancing service can be viewed as a service that distributes traffic on demand. By distributing traffic to different servers, the traffic load can be evenly distributed, thereby eliminating single points of failure of the servers and improving reliability.
[0117] In a further optional implementation, to reduce the occurrence of action matching failures between ECS servers and physical servers when ENI services migrate between ECS servers and physical servers, this application embodiment can migrate the action policy recorded on a server to which the ENI service is migrated when the ENI service is migrated out of the server. This reduces the occurrence of action matching failures when the ENI service performs key matching action operations on the server to which the ENI service is migrated.
[0118] For example, when the server address corresponding to the ENI address of any ENI is changed from an ECS server to a physical machine server, this embodiment of the application can migrate the action policy of the ECS server to the physical machine server to reduce the occurrence of action matching failures when the physical machine server performs key matching action operations. As another example, when the server address corresponding to the ENI address of any ENI is changed from a physical machine server to an ECS server, this embodiment of the application can migrate the action policy of the physical machine server to the ECS server to reduce the occurrence of action matching failures when the ECS server performs key matching action operations.
[0119] Furthermore, since this application embodiment migrates the action policy recorded on a server to the server to which the ENI service is migrated when the ENI service is migrated out, it can reduce the occurrence of server action matching failures and make the ENI service processing smoother. Therefore, from the user's perspective, the migration of the ENI service will not cause users to feel that the service processing is delayed.
[0120] This application also provides a service request routing apparatus, which can be considered as a functional module required by a routing device to implement the service request routing method provided in this application. The apparatus described below can be referred to in correspondence with the description above.
[0121] As an optional implementation Figure 7 An exemplary block diagram of an optional service request routing apparatus provided in an embodiment of this application is shown. This apparatus can be applied to a routing device (e.g., a virtual gateway). (Refer to...) Figure 7 The device may include:
[0122] The request acquisition module 710 is used to acquire a service request for the target ENI, wherein the service request carries a target ENI address indicating the target ENI;
[0123] The target address determination module 711 is used to determine the target server address corresponding to the target ENI address according to the routing table; wherein, the routing table records the correspondence between ENI addresses and server addresses, and the server address corresponding to the ENI address recorded in the routing table is adjusted between the ECS server address and the physical machine server address;
[0124] The request routing module 712 is used to route the service request to the ECS server corresponding to the target server address for processing if the target server address is an ECS server address; and to route the service request to the physical machine server corresponding to the target server address for processing if the target server address is a physical machine server address.
[0125] Optionally, for any ENI, the server address corresponding to the ENI's ENI address can be adjusted between the ECS server address and the physical machine server address based on the ENI's traffic changes.
[0126] Optionally, for any ENI, if the traffic of the ENI is an elephant flow, or the traffic is higher than the traffic threshold, then the server address corresponding to the ENI address of the ENI is the physical machine server address; if the traffic of the ENI is not an elephant flow, or the traffic is lower than the traffic threshold, then the server address corresponding to the ENI address of the ENI is the ECS server address; where elephant flow is defined as traffic whose proportion in the total traffic exceeds a preset proportion.
[0127] Optionally, the request acquisition module 710, used to acquire the service request of the target ENI, includes: acquiring the service request of the target ENI through the target VXLAN; the service request also carries the target VXLAN address, wherein the target VXLAN is the VXLAN used by the user's VPC.
[0128] Optionally, the routing table records the correspondence between ENI addresses, VXLAN addresses, and server addresses.
[0129] Optionally, the ENI is a Bonding ENI, which is bound to multiple servers.
[0130] This application also provides a routing device that can implement the service request routing method provided in this application by configuring the service request routing apparatus described above. Optionally, the routing device may include at least one memory and at least one processor. The memory stores one or more computer-executable instructions, and the processor invokes the one or more computer-executable instructions to execute the service request routing method provided in this application by the routing device.
[0131] This application also provides a service request routing apparatus, which can be considered as a functional module required by the control device to implement the service request routing method provided in this application. The apparatus described below can be referred to in correspondence with the description above.
[0132] As an optional implementation Figure 8 An exemplary diagram illustrates another optional block diagram of the service request routing apparatus provided in this application embodiment. This apparatus can be applied to a control device, as shown below. Figure 8 The device may include:
[0133] The monitoring result acquisition module 810 is used to acquire the traffic monitoring results of ENI;
[0134] The correspondence adjustment module 811 is used to adjust the server address corresponding to the ENI address between the ECS server address and the physical machine server address based on the traffic monitoring results of ENI.
[0135] The mapping relationship distribution module 812 is used to distribute the mapping relationship between ENI address and server address to the routing table for recording;
[0136] The routing table is used to: indicate that when the server address corresponding to the ENI address is an ECS server address, the ENI service request is routed to the corresponding ECS server for processing; and when the server address corresponding to the ENI address is a physical machine server address, the ENI service request is routed to the corresponding physical machine server for processing.
[0137] Optionally, the correspondence adjustment module 811 is used to adjust the server address corresponding to the ENI address between the ECS server address and the physical machine server address based on the ENI traffic monitoring results.
[0138] For any ENI, if the traffic of the ENI is an elephant flow or the traffic is higher than the traffic threshold, then the server address corresponding to the ENI address of the ENI is set to the physical machine server address; if the traffic of the ENI is not an elephant flow or the traffic is lower than the traffic threshold, then the server address corresponding to the ENI address of the ENI is set to the ECS server address.
[0139] This application also provides a control device that can implement the service request routing method provided in this application by setting the service request routing apparatus described above. Optionally, the control device may include at least one memory and at least one processor. The memory stores one or more computer-executable instructions, and the processor calls the one or more computer-executable instructions to execute the service request routing method provided in this application by the control device.
[0140] This application also provides a cloud network system, combined with... Figure 2 As shown, the cloud network system may include: multiple ECS servers, multiple physical machine servers, routing devices, and control devices;
[0141] The ECS server virtualization consists of multiple virtual machines to handle ENI service requests. The virtual machines run handlers (such as PT programs) to process service requests.
[0142] The physical machine server uses FPGA resources to process ENI service requests. The FPGA resources run a handler (such as a PT program) to process the service requests.
[0143] In this embodiment of the application, the server that processes the ENI service request can be determined based on the server address corresponding to the ENI address, which can be adjusted between the ECS server address and the physical machine server address.
[0144] As an optional implementation, the routing device provided in this application embodiment can implement a mapping between ENI addresses and server addresses based on ENI, and route ENI service requests to the corresponding servers for processing. For details regarding the routing device provided in this application embodiment, please refer to the descriptions in the corresponding sections above.
[0145] As an optional implementation, the control device provided in this application embodiment can adjust the corresponding server address for the ENI address based on the traffic monitoring results of the ENI. The server address corresponding to the ENI address is adjusted between the ECS server address and the physical machine server address. For details regarding the control device provided in this application embodiment, please refer to the description in the corresponding sections above.
[0146] In a further optional implementation, the ENI service request can be an ENI message; either the ECS server or the physical machine server, when processing the ENI service request, can determine the IP 5-tuple information of the message, use the IP 5-tuple information of the message as a key, and match the action corresponding to the key in the action policy; if the action corresponding to the key is matched, the action corresponding to the key is executed; if the action corresponding to the key is not matched, the key is uploaded to the control device so that the control device can decide the action corresponding to the key, obtain the action issued by the control device, and execute the action issued by the control device.
[0147] Optionally, for any ENI, when the server address corresponding to the ENI's ENI address is changed from an ECS server to a physical machine server, the control device will migrate the action policy of the ECS server to the physical machine server; or, for any ENI, when the server address corresponding to the ENI's ENI address is changed from a physical machine server to an ECS server, the control device will migrate the action policy of the physical machine server to the ECS server.
[0148] This application also provides a storage medium storing one or more computer-executable instructions. When the one or more computer-executable instructions are executed, they implement the service request routing method executed by a routing device provided in this application, or the service request routing method executed by a control device provided in this application.
[0149] This application also provides a computer program that, when executed, implements the service request routing method executed by a routing device provided in this application embodiment, or the service request routing method executed by a control device provided in this application embodiment.
[0150] The foregoing describes multiple embodiment schemes provided by the embodiments of this application. The optional methods described in each embodiment scheme can be combined and cross-referenced with each other without conflict, thereby extending to a variety of possible embodiment schemes. These can all be considered as the embodiment schemes disclosed and published by the embodiments of this application.
[0151] While the embodiments disclosed above are described in this application, this application is not limited thereto. Any person skilled in the art can make various modifications and alterations without departing from the spirit and scope of this application; therefore, the scope of protection of this application should be determined by the scope defined in the claims.
Claims
1. A service request routing method, wherein, include: A service request to obtain the target ENI, the service request carrying the target ENI address indicating the target ENI; Based on the routing table, the target server address corresponding to the target ENI address is determined. The routing table records the correspondence between ENI addresses and server addresses. The server address corresponding to the ENI address recorded in the routing table is adjusted between ECS server address and physical machine server address, including: for any ENI, if the traffic of the ENI is an "elephant flow" or the traffic exceeds a traffic threshold, then the server address corresponding to the ENI address is the physical machine server address; if the traffic of the ENI is not an "elephant flow" or the traffic is below a traffic threshold, then the server address corresponding to the ENI address is the ECS server address; where an "elephant flow" is defined as traffic whose proportion of total traffic exceeds a preset percentage. If the target server address is an ECS server address, the service request will be routed to the ECS server corresponding to the target server address for processing. If the target server address is a physical machine server address, the service request is routed to the physical machine server corresponding to the target server address for processing.
2. The method according to claim 1, wherein, The service request to obtain the target ENI includes: obtaining the target ENI through the target VXLAN; the service request also carries the target VXLAN address, where the target VXLAN is the VXLAN used by the user's VPC; The routing table records the correspondence between ENI addresses and server addresses, including: the routing table records the correspondence between ENI addresses, VXLAN addresses, and server addresses; Here, ENI stands for Bonding ENI, and Bonding ENI is bound to multiple servers.
3. A service request routing method, wherein, include: Obtain the traffic monitoring results from ENI; Based on the traffic monitoring results of ENI, the server address corresponding to the ENI address is adjusted between the ECS server address and the physical machine server address. This includes: for any ENI, if the traffic of the ENI is an "elephant flow" or the traffic exceeds the traffic threshold, the server address corresponding to the ENI address is set to the physical machine server address; if the traffic of the ENI is not an "elephant flow" or the traffic is below the traffic threshold, the server address corresponding to the ENI address is set to the ECS server address. Here, an "elephant flow" is defined as traffic whose proportion of total traffic exceeds a preset proportion. The mapping between ENI addresses and server addresses is sent to the routing table for recording; The routing table is used to: indicate that when the server address corresponding to the ENI address is an ECS server address, the ENI service request is routed to the corresponding ECS server for processing; and when the server address corresponding to the ENI address is a physical machine server address, the ENI service request is routed to the corresponding physical machine server for processing.
4. A routing device, wherein, It includes at least one processor and at least one memory, the memory storing one or more computer-executable instructions, the processor invoking the one or more computer-executable instructions to execute the service request routing method as described in any one of claims 1-2.
5. A control device, wherein, It includes at least one processor and at least one memory, the memory storing one or more computer-executable instructions, the processor invoking the one or more computer-executable instructions to execute the service request routing method as described in claim 3.
6. A cloud network system, wherein, include: Multiple ECS servers, multiple physical servers, routing equipment, and control equipment; The ECS server is virtualized into multiple virtual machines to handle ENI service requests, and each virtual machine runs a handler to process the service requests. The physical machine server uses FPGA resources to process ENI service requests, and the FPGA resources run a processing program to process the service requests. The server that handles ENI service requests is determined based on the server address corresponding to the ENI address, which is adjusted between the ECS server address and the physical machine server address. The routing device is the routing device as described in claim 4; The control device is the control device as described in claim 5.
7. The cloud network system according to claim 6, wherein, The ENI service request includes the ENI message; The ECS server and the physical machine server, when handling ENI service requests, include: The IP 5-tuple information of the packet is determined, and the IP 5-tuple information of the packet is used as the key. The action corresponding to the key is matched in the action policy. If the action corresponding to the key is matched, the action corresponding to the key is executed. If the action corresponding to the key is not matched, the key is uploaded to the control device so that the control device can decide the action corresponding to the key, and the action issued by the control device is obtained and executed. Specifically, for any ENI, when the server address corresponding to the ENI's ENI address is changed from an ECS server to a physical machine server, the control device will migrate the action policy of the ECS server to the physical machine server; or, for any ENI, when the server address corresponding to the ENI's ENI address is changed from a physical machine server to an ECS server, the control device will migrate the action policy of the physical machine server to the ECS server.
8. A storage medium, wherein, The storage medium stores one or more computer-executable instructions, which, when executed, implement the service request routing method as described in any one of claims 1-2, or the service request routing method as described in claim 3.
Citation Information
Patent Citations
Message processing method, device, storage medium and computer program product
CN113472900A
Method and device for acquiring information
CN114175600A