A data processing method, device and system

By allocating different network elements in the gateway cluster for different types of services, each network element including at least two virtual machines, the problem of affecting other services when the computing instance is full load is solved, and smaller fault domains and higher service reliability.

CN113703906BActive Publication Date: 2025-02-18ALIBABA GROUP HOLDING LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202010431997.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-05-20
Publication Date
2025-02-18
Estimated Expiration
2040-05-20

AI Technical Summary

Technical Problem

In a gateway cluster, when a computing instance processes new data under full load, it will affect the data processing of other types of services that share the computing instance, resulting in a larger fault domain.

Method used

By allocating different network elements to different types of services, each network element includes at least two different virtual machines, this can isolate different types of services, avoiding the full load or failure of one type of service affecting other types of services.

Benefits of technology

The fault domain is reduced so that when the network element of one type of service fails or is full of load, the data processing of other types of services will not be affected, and the reliability and processing capabilities of the service are improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113703906B_ABST
    Figure CN113703906B_ABST
Patent Text Reader

Abstract

The present application provides a data processing method, device and system. In the present application, different network elements are allocated to different types of services, and the network element includes at least one virtual machine, and each virtual machine includes at least one computing instance. In this way, different types of services can be isolated. If the network element allocated to one type of service fails or is fully loaded, although the network element cannot continue to process new data of the service of this type normally, it does not affect other network elements to process data of other types of services normally. In this way, the present application can reduce the fault domain. Through the present application, when the network element allocated to one type of service fails or is fully loaded, more types of services can be prevented from being affected, thereby increasing the possibility that more types of services can be processed normally.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of Internet, and in particular to a data processing method, device and system. Background Art

[0002] The gateway cluster has the ability to provide data forwarding for a large number of tenants. The gateway cluster can include multiple X86 gateways.

[0003] The received external data may be routed to an X86 gateway in the gateway cluster, and the gateway dispatches the data to a queue of a computing instance in the gateway to wait for the computing instance to process the external data. Summary of the invention

[0004] The gateway cluster acts as a portal or entrance between the inside and outside of the network. The network can provide various types of services to the outside. Multiple types of services can share a computing instance in a gateway. For example, any computing instance can process data of multiple types of services respectively.

[0005] However, for any computing instance in the gateway, if the computing instance is not fully loaded, if the gateway dispatches new data to the computing instance, the computing instance can process the new data normally. However, if the computing instance is fully loaded, if the gateway dispatches new data to the computing instance, the computing instance cannot process the new data normally, that is, all other types of services carried by the computing instance are affected.

[0006] Thus, if the data of one type of service causes the computing instance to be fully loaded, other types of services that share the computing instance will be affected, thus resulting in a larger fault domain.

[0007] like Figure 1 As shown, services of type 1 and services of type 2 share the computing instance core2 in gateway 2 in the gateway cluster. The data of services of type 1 and services of type 2 will both be processed on the computing instance core2 in gateway 2 in the gateway cluster. If the data of services of type 1 is large and the computing instance core2 in gateway 2 is fully loaded, the data of services of type 2 cannot be scheduled to the computing instance core2 in gateway 2, which will cause data packet loss of services of type 2 and cannot be processed normally by the computing instance core2 in gateway 2, which will further affect all data of services of type 2 carried by the computing instance core2 in gateway 2.

[0008] Therefore, in order to reduce the fault domain, the present application shows a data processing method, device and system.

[0009] In a first aspect, the present application shows a data processing system, the system comprising:

[0010] A first gateway and a gateway cluster;

[0011] The gateway cluster includes a plurality of second gateways;

[0012] The second gateway includes a plurality of virtual machines;

[0013] The virtual machine includes at least one computing instance;

[0014] The virtual machines in at least two different second gateways constitute a network element.

[0015] In a second aspect, the present application shows a data processing method, which is applied to a first gateway, and the method includes:

[0016] receiving data to be processed;

[0017] Determine the type of service involved in the data to be processed;

[0018] Determine a target network element that is allocated separately for the type of service, the target network element comprising a virtual machine in at least two different second gateways in the gateway cluster;

[0019] The data to be processed is dispatched to a target virtual machine in the target network element, so that the target virtual machine processes the data to be processed.

[0020] In an optional implementation, the determining of a target network element allocated separately for the type of service includes:

[0021] In the correspondence between the service type and the network element, a network element corresponding to the type is searched and used as the target network element.

[0022] In an optional implementation, scheduling the to-be-processed data to a target virtual machine in the target network element includes:

[0023] Determine a tenant to send the data to be processed;

[0024] Determine, among the multiple virtual machines included in the target network element, a virtual machine that is individually allocated to the tenant and uses it as the target virtual machine;

[0025] The data to be processed is dispatched to the target virtual machine.

[0026] In an optional implementation, determining a virtual machine individually allocated to the tenant from among the multiple virtual machines included in the target network element includes:

[0027] In the correspondence relationship between the tenant and the virtual machine corresponding to the target network element, a virtual machine corresponding to the tenant is searched and used as the target virtual machine.

[0028] In an optional implementation, the method further includes:

[0029] When the gateway cluster needs to be expanded, determine the network element that needs to be expanded;

[0030] Determine at least one idle virtual machine in a preset virtual machine cluster, wherein the preset virtual machine cluster includes a plurality of idle virtual machines;

[0031] The determined idle virtual machines are allocated to the network elements that need to be expanded.

[0032] In an optional implementation, the method further includes:

[0033] The state of the determined idle virtual machine is changed from an idle state to a non-idle state.

[0034] In an optional implementation, the method further includes:

[0035] When the gateway cluster needs to be reduced in capacity, determining the network element that needs to be reduced in capacity;

[0036] Determine at least one virtual machine in the network element that needs to be scaled down;

[0037] At least one determined virtual machine is removed from the network elements that need to be scaled down.

[0038] In an optional implementation, the method further includes:

[0039] The state of the determined at least one virtual machine is changed from a non-idle state to an idle state.

[0040] In an optional implementation, scheduling the data to be processed to a target virtual machine in the target network element so that the target virtual machine processes the data to be processed includes:

[0041] The data to be processed is dispatched to a target virtual machine in the target network element, so that a computing instance in the target virtual machine processes the data to be processed.

[0042] In a third aspect, the present application shows a data processing system, the system comprising:

[0043] A first switch and a switch cluster;

[0044] The switch cluster includes a plurality of second switches;

[0045] The second switch includes a plurality of virtual machines;

[0046] The virtual machine includes at least one computing instance;

[0047] The virtual machines in at least two different second switches constitute a network element.

[0048] In a fourth aspect, the present application provides a data processing method, which is applied to a first switch, and the method includes:

[0049] receiving data to be processed;

[0050] Determine the type of service involved in the data to be processed;

[0051] Determine a target network element that is individually allocated for the type of service, the target network element comprising a virtual machine in at least two different second switches in the switch cluster;

[0052] The data to be processed is dispatched to a target virtual machine in the target network element, so that the target virtual machine processes the data to be processed.

[0053] In a fifth aspect, the present application shows a data processing device, which is applied to a first gateway, and the device includes:

[0054] A first receiving module, used for receiving data to be processed;

[0055] A first determining module, used to determine the type of service involved in the data to be processed;

[0056] A second determining module, configured to determine a target network element that is individually allocated for the type of service, the target network element comprising a virtual machine in at least two different second gateways in the gateway cluster;

[0057] The first scheduling module is used to schedule the data to be processed to the target virtual machine in the target network element, so that the computing instance in the target virtual machine processes the data to be processed.

[0058] In an optional implementation, the second determining module includes:

[0059] The searching unit is used to search for a network element corresponding to the type of service in the corresponding relationship between the type of service and the network element, and use the network element as the target network element.

[0060] In an optional implementation, the scheduling module includes:

[0061] A first determining unit, configured to determine a tenant that sends the data to be processed;

[0062] A second determining unit is used to determine a virtual machine individually allocated to the tenant from among the multiple virtual machines included in the target network element, and use the virtual machine as the target virtual machine;

[0063] A scheduling unit is used to schedule the data to be processed to the target virtual machine.

[0064] In an optional implementation, the second determining unit includes:

[0065] The search subunit is used to search for a virtual machine corresponding to the tenant in the correspondence relationship between the tenant and the virtual machine corresponding to the target network element, and use the virtual machine as the target virtual machine.

[0066] In an optional implementation, the device further includes:

[0067] A third determination module is used to determine the network element that needs to be expanded when the gateway cluster needs to be expanded;

[0068] A fourth determination module, configured to determine at least one idle virtual machine in a preset virtual machine cluster, wherein the preset virtual machine cluster includes a plurality of idle virtual machines;

[0069] The allocation module is used to allocate the determined idle virtual machines to the network elements that need to be expanded.

[0070] In an optional implementation, the device further includes:

[0071] The first changing module is used to change the state of the determined idle virtual machine from an idle state to a non-idle state.

[0072] In an optional implementation, the device further includes:

[0073] A fifth determining module, configured to determine a network element that needs to be shrunk when the gateway cluster needs to be shrunk;

[0074] A sixth determining module, used to determine at least one virtual machine in a network element that needs to be scaled down;

[0075] The elimination module is used to determine at least one virtual machine in the network element that needs to be reduced in capacity.

[0076] In an optional implementation, the device further includes:

[0077] The second changing module is used to change the determined state of at least one virtual machine from a non-idle state to an idle state.

[0078] In an optional implementation, the first scheduling module is specifically used to: schedule the data to be processed to a target virtual machine in the target network element, so that the computing instance in the target virtual machine processes the data to be processed.

[0079] In a sixth aspect, the present application shows a data processing device, which is applied to a first switch, and the device includes:

[0080] A second receiving module, used for receiving data to be processed;

[0081] A seventh determination module, used to determine the type of service involved in the data to be processed;

[0082] An eighth determination module, configured to determine a target network element separately allocated for the type of service, the target network element comprising a virtual machine in at least two different second switches in the switch cluster;

[0083] The second scheduling module is used to schedule the data to be processed to the target virtual machine in the target network element, so that the target virtual machine processes the data to be processed.

[0084] In a seventh aspect, the present application provides an electronic device, the electronic device comprising:

[0085] Processor; and

[0086] A memory having executable code stored thereon, which, when the executable code is executed, enables the processor to execute the data processing method as described in the second aspect.

[0087] In an eighth aspect, the present application illustrates one or more machine-readable media on which executable codes are stored. When the executable codes are executed, the processor executes the data processing method as described in the second aspect.

[0088] In a ninth aspect, the present application provides an electronic device, the electronic device comprising:

[0089] Processor; and

[0090] A memory having executable code stored thereon, which, when the executable code is executed, enables the processor to execute the data processing method as described in the fourth aspect.

[0091] In a tenth aspect, the present application illustrates one or more machine-readable media on which executable codes are stored, and when the executable codes are executed, the processor executes the data processing method as described in the fourth aspect.

[0092] Compared with the prior art, the embodiments of the present application have the following advantages:

[0093] On the one hand, in the present application, different network elements are allocated for different types of services, and the network element includes at least one virtual machine, and each virtual machine includes at least one computing instance. In this way, different types of services can be isolated. If the network element allocated for one type of service fails or is fully loaded, although the network element cannot continue to process new data of the service of this type normally, it does not affect other network elements to process data of other types of services normally. In this way, the present application can reduce the fault domain. Through the present application, when the network element allocated for one type of service fails or is fully loaded, more types of services can be prevented from being affected, thereby increasing the possibility that more types of services can be processed normally.

[0094] On the other hand, in the prior art, the computing instance is directly deployed on the gateway as a physical machine. In this way, the computing instance needs to be configured so that the computing instance can adapt to the hardware facilities of the gateway as a physical machine. In this way, the computing instance can run normally on the gateway as a physical machine and process data. However, in actual scenarios, sometimes some gateways in the gateway cluster may be updated. Among them, sometimes the hardware facilities of the updated gateway are different from the hardware facilities of the gateway before the update, such as changes in the architecture of the CPU (Central Processing Unit), the architecture of the memory, and the architecture of the network card.

[0095] However, since the computing instance is adapted to the hardware facilities of the gateway before the update, the staff who manages the computing instance needs to update the computing instance so that the updated computing instance can adapt to the hardware facilities of the updated gateway, so that the computing instance can run and process data on the updated gateway. However, this will bring additional adaptation work to the computing instance, increase the workload of the staff who manage the computing instance, and increase labor costs.

[0096] In the present application, a virtual machine is deployed on the second gateway, and a computing instance is deployed on the virtual machine. Among them, the virtual machine can abstract the information of the hardware facilities in the second gateway into the information of the hardware facilities that can be presented to the computing instance, and no matter how the hardware facilities in the second gateway change, the information of the hardware facilities that the virtual machine abstracts and can present to the computing instance is the same and will not change. In this way, after the hardware facilities in the second gateway change, the virtual machines can be updated uniformly so that each virtual machine adapts to the updated hardware facilities of the second gateway, but the information of the hardware facilities that the virtual machine abstracts and can present to the computing instance remains unchanged.

[0097] Thus, in the present application, the virtual machine is responsible for adapting the hardware facilities of the second gateway. Therefore, the computing instance only needs to adapt the virtual machine and does not need to adapt the second gateway. The present application can set the virtual machines on each second gateway to be the same virtual machine. In this way, even if the second gateway is updated, the staff who manages the computing instance does not need to perform additional adaptation work on the computing instance, thereby reducing labor costs. BRIEF DESCRIPTION OF THE DRAWINGS

[0098] Figure 1 It is a schematic diagram of a scenario shown in the prior art of this application.

[0099] Figure 2 It is a structural block diagram of a data processing system shown in an exemplary embodiment of the present application.

[0100] Figure 3 It is a flowchart of a data processing method shown in an exemplary embodiment of the present application.

[0101] Figure 4 It is a schematic diagram of a scenario shown in an exemplary embodiment of the present application.

[0102] Figure 5 It is a flowchart of a method for scheduling data shown in an exemplary embodiment of the present application.

[0103] Figure 6 It is a flowchart of a capacity expansion method shown in an exemplary embodiment of the present application.

[0104] Figure 7 It is a flowchart of a capacity reduction method shown in an exemplary embodiment of the present application.

[0105] Figure 8 It is a structural block diagram of a data processing system shown in an exemplary embodiment of the present application.

[0106] Fig. 9 It is a flowchart of a data processing method shown in an exemplary embodiment of the present application.

[0107] Fig.10 It is a structural block diagram of a data processing device shown in an exemplary embodiment of the present application.

[0108] Fig.11 It is a structural block diagram of a data processing device shown in an exemplary embodiment of the present application.

[0109] Fig.12 It is a schematic diagram of the structure of a device provided in one embodiment of the present application. DETAILED DESCRIPTION

[0110] In order to make the above-mentioned objects, features and advantages of the present application more obvious and easy to understand, the present application is further described in detail below in conjunction with the accompanying drawings and specific implementation methods.

[0111] Reference Figure 2 , shows a structural block diagram of a data processing system of the present application, the system may include: a first gateway and a gateway cluster; the first gateway and the gateway cluster are connected in communication. The gateway cluster includes multiple second gateways; each second gateway includes multiple virtual machines VM (Virtual Machine); each virtual machine VM includes at least one computing instance core.

[0112] Some virtual machines VM in at least two different second gateways may form a network element. For example, at least one virtual machine VM in one second gateway and at least one virtual machine VM in another second gateway may form a network element.

[0113] For example, in Figure 2 In the example, the gateway cluster includes n second gateways, namely second gateway 1 to second gateway n.

[0114] The second gateway 1 includes n virtual machines VM, namely VM1 to VMn. Each virtual machine VM includes two computing instances, namely computing instance core1 and computing instance core2. The same is true for the second gateways 2 to n.

[0115] The virtual machine VM1 in the second gateway 1 and the virtual machine VM2 in the second gateway 2 form a network element 1, and the virtual machine VMn in the second gateway 2, the virtual machine VM1 in the second gateway n, and the virtual machine VM2 in the second gateway n form a network element 2.

[0116] The first gateway includes a gateway implemented by a programmable switch. The first gateway can also count the amount of data communicated between the inside and outside of the network, and can also back up the data communicated between the inside and outside of the network for analysis by technical personnel, and also has DDoS (Distributed Denial of Service) capabilities to improve network security.

[0117] Reference Figure 3 , shows a flow chart of a data processing method of the present application, which is applied to Figure 2 In the first gateway of the system shown, the method may include:

[0118] In step S101, receiving data to be processed;

[0119] In this application, Figure 2The data processing system shown can be used as a portal or entry between the inside of the network and the outside of the network. The network includes VPC (Virtual Private Cloud) and the like.

[0120] In a scenario, when a tenant needs to access the internal network, the tenant can send an access request to the internal network, wherein the tenant can first send the access request to a first gateway in the data processing system, the first gateway receives the access request, and then schedules the access request to a virtual machine of a network element, so that the virtual machine can schedule the access request to the internal network based on the computing instance included in the virtual machine, and the internal network then obtains the data that the tenant wants to access according to the access request, and Figure 2 The data processing system shown returns the data that the tenant wants to access to the tenant, thereby achieving the purpose of the tenant accessing the internal network. In the above scenario, the access request can be data to be processed, etc.

[0121] In another scenario, when a tenant needs to upload data to the network, the tenant can send the data to be uploaded to the network internal network, wherein the tenant can first send the data to be uploaded to the first gateway in the data processing system, the first gateway receives the data to be uploaded, and schedules the data to be uploaded to a virtual machine of a network element, so that the virtual machine can schedule the data to be uploaded to the network based on the computing instance included in the virtual machine, thereby enabling the tenant to upload data to the network internally. In the above scenario, the data to be uploaded can be data to be processed, etc.

[0122] In the present application, the data to be processed received by the first gateway may be data sent by the tenant, and the data to be processed needs to be scheduled to the inside of the network. Therefore, in order to be able to schedule the data to be processed to the inside of the network, after the first gateway receives the data to be processed, step S102 can be executed.

[0123] In step S102, the type of service involved in the data to be processed is determined;

[0124] In this application, Figure 2 The architecture of the data processing system shown is: "first gateway-network element-virtual machine-computing instance". The first gateway needs to finally schedule the data to be processed to the virtual machine so that the virtual machine processes the data to be processed based on the computing instance.

[0125] In order to enable the first gateway to dispatch the data to be processed to the virtual machine, the first gateway needs to determine the network element to which the virtual machine belongs. Only after dispatching the data to be processed to the network element can the data to be processed be dispatched to the virtual machine.

[0126] Therefore, after the first gateway receives the data to be processed, it may first determine to which network element the data to be processed needs to be scheduled.

[0127] Among them, in the prior art, different types of services can share a computing instance. However, if the data of one type of service makes the computing instance fully loaded, other types of services sharing the computing instance will be affected, and the failure domain is large.

[0128] Therefore, in order to reduce the fault domain, it is necessary to prevent one type of service from affecting other types of services. For example, even if the data of one type of service makes the computing instance fully loaded, other types of services sharing the computing instance will not be affected. In order to prevent one type of service from affecting other types of services, different network elements can be allocated to different types of services.

[0129] In this application, the types of services that the majority of tenants can request from within the network can be counted in advance, for example, services such as video downloading, account login, audio uploading, instant messaging, and gaming.

[0130] For any network element, it can be set to provide data processing capabilities only for one type of service. The same is true for each other network element.

[0131] Therefore, after the first gateway receives the data to be processed, it can determine the type of service involved in the data to be processed, and then determine the target network element separately allocated for the service of this type. The target network element includes virtual machines in at least two different second gateways in the gateway cluster. The specific method of determining the target network element can be found in step S103 and will not be described in detail here.

[0132] In the present application, data interaction between tenants, the first gateway and network elements needs to be based on a communication protocol. For example, the communication protocol based on which data interaction between tenants, the first gateway and network elements is performed includes VxLAN (Virtual Extensible Local Area Network), which is a network virtualization technology protocol.

[0133] The data exchanged between the tenant, the first gateway and the network element may include a protocol header, and a specific field in the protocol header may be used to record the type of service involved in the data.

[0134] Therefore, in this step, the type of service recorded in the special field in the protocol header of the data to be processed can be obtained and used as the type of service involved in the data to be processed.

[0135] In step S103, a target network element allocated separately for the service of this type is determined, where the target network element includes virtual machines in at least two different second gateways in the gateway cluster;

[0136] In the present application, for any service type, after a network element is allocated to the service of the type in advance, the type and the allocated network element can be stored in the corresponding relationship between the service type and the network element. The same is true for each other service type.

[0137] Therefore, in this step, the network element corresponding to the type of service can be searched in the correspondence between the type of service and the network element, and used as the target network element.

[0138] In step S104, the data to be processed is dispatched to a target virtual machine in a target network element, so that the target virtual machine processes the data to be processed.

[0139] For example, the first gateway can schedule the data to be processed to the target network element, the target network element receives the data to be processed, and then schedules the data to be processed to the target virtual machine, the target virtual machine receives the data to be processed, and schedules the data to be processed to a computing instance in the target virtual machine, the computing instance receives the data to be processed, and then processes the data to be processed, for example, forwards the data to be processed, etc.

[0140] In one embodiment of the present application, if the target virtual network element includes a virtual machine, the virtual machine in the target virtual network element can be used as the target virtual machine.

[0141] Alternatively, in another embodiment of the present application, if the target virtual network element includes at least two virtual machines, a virtual machine may be selected from the at least two virtual machines in the target virtual network element and used as the target virtual machine. In particular, a virtual machine may be randomly selected from the at least two virtual machines in the target virtual network element and used as the target virtual machine, or a virtual machine with the lowest load may be selected from the at least two virtual machines in the target virtual network element according to the principle of load balancing and used as the target virtual machine.

[0142] Of course, a virtual machine may be selected from at least two virtual machines in the target virtual network element by other methods, which will not be described in detail here.

[0143] Among them, for any network element, if the data scale of the service carried by the network element is large, more virtual machines can be deployed in the network element, so that more computing instances can process the data of the service carried by the network element, thereby improving the efficiency of processing the data of the service carried by the network element. If the data scale of the service carried by the network element is small, fewer virtual machines can be deployed in the network element, so that fewer computing instances can process the data of the service carried by the network element, avoiding the waste of computing instances and improving the utilization of computing resources. The same is true for each other network element.

[0144] On the one hand, in the present application, different network elements are allocated for different types of services, and the network element includes at least one virtual machine, and each virtual machine includes at least one computing instance. In this way, different types of services can be isolated. If the network element allocated for one type of service fails or is fully loaded, although the network element cannot continue to process new data of the service of this type normally, it does not affect other network elements to process data of other types of services normally. In this way, the present application can reduce the fault domain. Through the present application, when the network element allocated for one type of service fails or is fully loaded, more types of services can be prevented from being affected, thereby increasing the possibility that more types of services can be processed normally.

[0145] On the other hand, in the prior art, the computing instance is directly deployed on the gateway as a physical machine. In this way, the computing instance needs to be configured so that the computing instance can adapt to the hardware facilities of the gateway as a physical machine. In this way, the computing instance can run normally on the gateway as a physical machine and process data. However, in actual scenarios, sometimes some gateways in the gateway cluster may be updated. Among them, sometimes the hardware facilities of the updated gateway are different from the hardware facilities of the gateway before the update, such as changes in the architecture of the CPU (Central Processing Unit), the architecture of the memory, and the architecture of the network card.

[0146] However, since the computing instance is adapted to the hardware facilities of the gateway before the update, the staff who manages the computing instance needs to update the computing instance so that the updated computing instance can adapt to the hardware facilities of the updated gateway, so that the computing instance can run and process data on the updated gateway. However, this will bring additional adaptation work to the computing instance, increase the workload of the staff who manage the computing instance, and increase labor costs.

[0147] In the present application, a virtual machine is deployed on the second gateway, and a computing instance is deployed on the virtual machine. Among them, the virtual machine can abstract the information of the hardware facilities in the second gateway into the information of the hardware facilities that can be presented to the computing instance, and no matter how the hardware facilities in the second gateway change, the information of the hardware facilities that the virtual machine abstracts and can present to the computing instance is the same and will not change. In this way, after the hardware facilities in the second gateway change, the virtual machines can be updated uniformly so that each virtual machine adapts to the updated hardware facilities of the second gateway, but the information of the hardware facilities that the virtual machine abstracts and can present to the computing instance remains unchanged.

[0148] Thus, in the present application, the virtual machine is responsible for adapting the hardware facilities of the second gateway. Therefore, the computing instance only needs to adapt the virtual machine and does not need to adapt the second gateway. The present application can set the virtual machines on each second gateway to be the same virtual machine. In this way, even if the second gateway is updated, the staff who manages the computing instance does not need to perform additional adaptation work on the computing instance, thereby reducing labor costs.

[0149] In the present application, for any type of service, multiple tenants may use this type of service, wherein at least two tenants can share a computing instance in a virtual machine in a network element that carries this type of service. For example, for any virtual machine in the network element, the computing instance in the virtual machine can process data of this type of service sent by at least two tenants.

[0150] However, for any virtual machine in the network element, when the computing instance in the virtual machine is not fully loaded, if the network element schedules new data to the computing instance in the virtual machine, the computing instance in the virtual machine can process the new data normally.

[0151] However, when the computing instance in the virtual machine is fully loaded, if the network element schedules new data to the computing instance in the virtual machine, the computing instance in the virtual machine cannot process the new data normally, that is, all services carried by the computing instance in the virtual machine are affected.

[0152] In this way, if the data of one tenant causes the computing instance in the virtual machine to be fully loaded, the data of other tenants sharing the computing instance in the virtual machine will be affected, thus resulting in a larger fault domain.

[0153] like Figure 4As shown, tenant 1 and tenant 2 share the computing instance core2 in gateway 2 in the gateway cluster. The data of tenant 1 and tenant 2 will both be processed on the computing instance core2 in gateway 2 in the gateway cluster. If tenant 1 has a lot of data and the computing instance core2 in gateway 2 is fully loaded, tenant 2's data cannot be scheduled to the computing instance core2 in gateway 2, which will cause tenant 2's data to be lost and cannot be processed normally by the computing instance core2 in gateway 2, which will further affect all tenant 2's data carried by the computing instance core2 in gateway 2.

[0154] Therefore, in order to reduce the fault domain, it is necessary to prevent the data of one tenant from affecting the data of other tenants. In order to prevent the data of one tenant from affecting the data of other tenants, different virtual machines can be allocated to different tenants in the one network element.

[0155] In the present application, for any network element, all tenants using the services carried by the network element can be counted in advance, and at least one virtual machine in the network element is allocated to each tenant, and different virtual machines in the network element are allocated to different tenants.

[0156] So, see Figure 5 , when scheduling the data to be processed to the target virtual machine in the target network element, it may include:

[0157] In step S201, a tenant that sends data to be processed is determined;

[0158] The purpose of this step is to determine which tenant sent the to-be-processed data received by the first gateway.

[0159] In the present application, data interaction between tenants, the first gateway and network elements needs to be based on a communication protocol. For example, the communication protocol for data interaction between tenants, the first gateway and network elements includes VxLAN, which is a network virtualization technology protocol.

[0160] The data exchanged between the tenant, the first gateway and the network element may include a protocol header, and a specific field in the protocol header may be used to record the identifier of the tenant sending the data.

[0161] Therefore, in this step, the identifier of the tenant recorded in the special field in the protocol header of the data to be processed can be obtained, so that the tenant who sends the data to be processed can be determined.

[0162] In step S202, a virtual machine individually allocated to the tenant is determined from among the multiple virtual machines included in the target network element, and is used as the target virtual machine;

[0163] In the present application, for any network element, all tenants using the service carried by the network element can be counted, and then for any tenant, after at least one virtual machine in the network element is allocated to the tenant, the tenant and the at least one virtual machine allocated to the tenant can be stored in the correspondence between the tenant and the virtual machine corresponding to the network element. The same is true for each other tenant.

[0164] The same is true for every other network element.

[0165] Therefore, in this step, the virtual machine corresponding to the tenant can be searched in the correspondence relationship between the tenant and the virtual machine corresponding to the target network element, and used as the target virtual machine.

[0166] In step S203, the data to be processed is dispatched to the target virtual machine.

[0167] In an embodiment of the present application, different virtual machines in a network element are allocated to different tenants. Since the computing instances in different virtual machines in the network element are different, different computing instances are allocated to different tenants.

[0168] In this way, different tenants can be isolated in the network element. If the virtual machine allocated to a tenant fails or runs at full capacity, although the virtual machine cannot continue to process new data of this type of service sent by the tenant normally, it does not affect other virtual machines in the network element to process other data of this type of service sent by other tenants normally.

[0169] In this way, the present application can reduce the fault domain. Through the present application, when a virtual machine allocated to a tenant fails or is fully loaded, the data of more tenants' services of this type can be prevented from being affected, thereby increasing the possibility that the data of more tenants' services of this type can be processed normally.

[0170] Among them, in the prior art, any computing instance is shared by at least two different services, or shared by at least two tenants, and the same is true for each other computing instance.

[0171] After a computing instance fails, because the computing instance is shared by at least two different services or at least two tenants, it is usually impossible to quickly determine the cause of the failure of the computing instance. For example, it is impossible to quickly determine which tenant or which type of service caused the failure of the computing instance, which makes it difficult for technicians to determine the cause of the failure.

[0172] In the embodiments of the present application, any computing instance can be allocated to only one type of service for use, or only one tenant for use. Therefore, after a computing instance fails, since the computing instance is used by one tenant or one type of service, the cause of the failure of the computing instance can be determined. For example, it can be determined which tenant or which type of service caused the failure of the computing instance, which reduces the difficulty for technicians to locate the cause of the failure.

[0173] In any network element, when there are at least two computing instances in a virtual machine allocated to a tenant, after the first gateway receives data on the type of service carried by the network element sent by the tenant, the data needs to be scheduled to the computing instance in the virtual machine allocated to the tenant in the network element for processing.

[0174] However, in the case that the first gateway receives a lot of data of this type of service sent by the tenant, load balancing can be achieved for at least two computing instances in the virtual machine, wherein a hash operation can be performed on the five-tuple information contained in the data to obtain a hash value, and then a modulus operation is performed on the hash value according to the number of computing instances in the virtual machine allocated to the tenant in the network element to obtain a Hash modulus value, and then a computing instance corresponding to the Hash modulus value is determined among the at least two computing instances in the virtual machine, and then the tenant's data is processed based on the determined computing instance.

[0175] The five-tuple information includes the destination IP (Internet Protocol) address, destination port, source IP address, source port, and protocol that carries the data.

[0176] Through the present application, the hash value obtained by performing a hash operation on the five-tuple information of the data is randomly distributed. In this way, the Hash modulus value obtained by performing a modulus operation on the hash value is usually randomly distributed, and then the computing instance corresponding to the determined Hash modulus value is often randomly distributed, so that each data of the tenant is processed by a randomly selected computing instance. Since the computing instance is randomly selected, the possibility of load balancing of the computing instances in the virtual machine is improved.

[0177] Sometimes due to business needs, it is necessary to expand the capacity of the gateway cluster to improve the data processing capabilities of the gateway cluster.

[0178] In the prior art, computing instances are directly deployed on X86 physical machines. If a new computing instance needs to be added, a new X86 physical machine often needs to be added to the gateway cluster.

[0179] The usual expansion process is that technicians need to purchase new X86 physical machines in real time, and then connect the new X86 physical machines to the gateway cluster through cables at the hardware level, and then connect the new X86 physical machines to the gateway cluster at the software level, and then create computing instances on the new X86 physical machines.

[0180] However, during the above expansion process, the workload of technical personnel is heavy and the expansion process takes a long time, which results in low expansion efficiency.

[0181] In this application, see Figure 6 The expansion process includes:

[0182] In step S301, when the gateway cluster needs to be expanded, the network element that needs to be expanded is determined;

[0183] In one embodiment of the present application, the network elements that need to be expanded include existing network elements in the gateway cluster. At this time, it is necessary to add a new virtual machine to the existing network element and create a new computing instance on the new virtual machine to improve the data processing capability of this network element.

[0184] In another embodiment of the present application, the network element that needs to be expanded is not an existing network element in the gateway cluster, but a network element that needs to be newly created for a certain type of service.

[0185] In step S302, at least one idle virtual machine is determined in a preset virtual machine cluster, where the preset virtual machine cluster includes a plurality of idle virtual machines;

[0186] In the present application, the preset virtual machine cluster includes virtual machines that have been created in advance. These virtual machines can be deployed on other hardware hosts. The virtual machines in the preset virtual machine cluster are in an idle state and can be called at any time.

[0187] The number of idle virtual machines determined in the preset virtual machine cluster may be a default number corresponding to the capacity expansion scenario, or a number specified in real time by a technician.

[0188] Each idle virtual machine in the preset virtual machine cluster has at least one computing instance.

[0189] In step S303, the determined idle virtual machines are allocated to the network elements that need to be expanded.

[0190] As a result, more computing instances of virtual machines can participate in data processing in the network elements that need to be expanded, thereby achieving the purpose of expanding the capacity of the network elements that need to be expanded.

[0191] Furthermore, the state of the virtual machine determined in the preset virtual machine cluster may be changed from an idle state to a non-idle state.

[0192] In the present application, a very large virtual machine resource pool is maintained by creating a preset virtual machine cluster including a plurality of idle virtual machines in advance. Each virtual machine can be deployed on a hardware host, and the virtual machines in the preset virtual machine cluster can be used for a large number of services.

[0193] At the gateway level, if the gateway cluster needs to be expanded, at least one virtual machine can be directly called from the preset virtual machine cluster, deployed to the network element that needs to be expanded, and a computing instance can be created in the virtual machine to achieve expansion.

[0194] In the present application, the preset virtual machine cluster includes multiple idle virtual machines that can be used for capacity expansion, and each virtual machine in the preset virtual machine cluster has been deployed on the hardware host. In this way, it is not necessary to purchase physical machines in real time every time capacity expansion is performed, and the physical machines are not connected to the gateway cluster at the hardware and software levels, thereby avoiding a large workload for technical personnel every time capacity expansion is performed. Since the virtual machines have been prepared in advance, the prepared virtual machines can be directly called during capacity expansion, thereby reducing the time required for capacity expansion and improving the efficiency of capacity expansion.

[0195] Sometimes, there will be large concurrency of data, and the amount of data after large concurrency exceeds the processing capacity of the gateway cluster, which requires the expansion of the gateway cluster. However, in the existing technology, the expansion takes a long time, making it impossible for the gateway cluster to process the large concurrency data in a short time, resulting in the accumulation of large concurrency data, which may cause the gateway cluster to crash, which will bring great economic losses.

[0196] In order to avoid the collapse of the gateway cluster, the data processing capabilities of the gateways in the gateway cluster can be manually controlled to remain at a low level. That is, through manual control, usually only a small part of the data processing capabilities of the gateways in the gateway cluster are used to process data, and most of the data processing capabilities of the gateways in the gateway cluster are sealed. In this way, in the case of sudden large data concurrency, most of the unenabled data processing capabilities of the gateways in the gateway cluster can also be used to process data, leaving more time for expanding the gateway cluster and reducing the possibility of gateway cluster collapse.

[0197] However, since only a small portion of the data processing capabilities of the gateways in the gateway cluster are used to process data, resources are wasted.

[0198] In the present application, since the time required for capacity expansion is reduced, the capacity expansion of the gateway cluster can be completed quickly according to actual needs to avoid the collapse of the gateway cluster. Therefore, only a small part of the data processing capacity of the gateways in the gateway cluster can be used to process data without manual control, and most of the data processing capacity of the gateways in the gateway cluster does not need to be sealed. Most of the data processing capacity of the gateways in the gateway cluster can be used to process data, thereby making full use of resources and avoiding waste of resources.

[0199] Accordingly, sometimes when the resources of the gateway cluster are redundant, it is necessary to reduce the capacity of the gateway cluster to save resources.

[0200] In this application, see Figure 7 , the scaling down process includes:

[0201] In step S401, when the gateway cluster needs to be scaled down, the network element that needs to be scaled down is determined;

[0202] In step 402, at least one virtual machine in a network element that needs to be scaled down is determined;

[0203] In step S403, at least one determined virtual machine is removed from the network elements that need to be scaled down.

[0204] Furthermore, the computing instance in the determined at least one virtual machine may be uninstalled.

[0205] Furthermore, the state of the virtual machine that needs to be shrunk can be changed from a non-idle state to an idle state, so that the virtual machine can be used for other purposes later.

[0206] In the present application, the external data received by the first gateway includes data from the elephant flow and data from the mouse flow, etc., or includes data with low latency requirements and data with non-low latency requirements, etc., or includes data with complex business logic and data with simple business logic.

[0207] Among them, the data of the elephant flow occupies more bandwidth, and the data of the mouse flow occupies less bandwidth.

[0208] If the data to be processed is elephant flow data or data with low latency requirements, the first gateway can directly schedule the data to be processed to a virtual machine in a second gateway in the gateway cluster, thereby improving the efficiency of responding to data with low latency requirements and avoiding the elephant flow data from being scheduled into the network element and occupying more network resources.

[0209] If the data to be processed is mouse flow data or data that does not require low latency, the first gateway can follow Figure 3The method shown schedules the data to be processed to the network element, so that the network element schedules the data to be processed to the corresponding virtual machine.

[0210] Processing data with complex business logic requires more support from business logic capabilities. If the data to be processed is data with complex business logic, the first gateway can schedule the data to be processed to the network element so that the network element processes the data to be processed and schedules it to the corresponding virtual machine, thereby avoiding increasing the complexity of the first gateway, avoiding frequent updates to the first gateway, and reducing the update workload.

[0211] Reference Figure 8 , shows a structural block diagram of a data processing system of the present application, the system may include: a first switch and a switch cluster; the first switch and the switch cluster are connected in communication. The switch cluster includes multiple second switches; each second switch includes multiple virtual machines VM; each virtual machine VM includes at least one computing instance core.

[0212] Some virtual machines VM in at least two different second switches may form a network element. For example, at least one virtual machine VM in one second switch and at least one virtual machine VM in another second switch may form a network element.

[0213] For example, in Figure 8 In the embodiment, the switch cluster includes n second switches, namely second switch 1 to second switch n.

[0214] The second switch 1 includes n virtual machines VM, namely VM1 to VMn. Each virtual machine VM includes two computing instances, namely computing instance core1 and computing instance core2. The same is true for the second switches 2 to n.

[0215] The virtual machine VM1 in the second switch 1 and the virtual machine VM2 in the second switch 2 form a network element 1, and the virtual machine VMn in the second switch 2, the virtual machine VM1 in the second switch n, and the virtual machine VM2 in the second switch n form a network element 2.

[0216] The first switch includes a switch implemented by a programmable switch. The first switch can also count the amount of data communicated between the inside and outside of the network, and can also back up the data communicated between the inside and outside of the network for analysis by technicians, and also has DDoS capabilities to improve network security.

[0217] Reference Fig. 9 , shows a flow chart of a data processing method of the present application, which is applied to Figure 8 In the first switch of the system shown, the method may include:

[0218] In step S501, receiving data to be processed;

[0219] For this step, reference may be made to the relevant description of step S101 and will not be described in detail here.

[0220] In step S502, the type of service involved in the data to be processed is determined;

[0221] For this step, reference may be made to the relevant description of step S102 and will not be described in detail here.

[0222] In step S503, a target network element separately allocated for the service of this type is determined, where the target network element includes a virtual machine in at least two different second switches in the switch cluster;

[0223] For this step, reference may be made to the relevant description of step S103 and will not be described in detail here.

[0224] In step S504, the data to be processed is dispatched to a target virtual machine in a target network element, so that the target virtual machine processes the data to be processed.

[0225] For this step, reference may be made to the relevant description of step S104 and will not be described in detail here.

[0226] On the one hand, in the present application, different network elements are allocated for different types of services, and the network element includes at least one virtual machine, and each virtual machine includes at least one computing instance. In this way, different types of services can be isolated. If the network element allocated for one type of service fails or is fully loaded, although the network element cannot continue to process new data of the service of this type normally, it does not affect other network elements to process data of other types of services normally. In this way, the present application can reduce the fault domain. Through the present application, when the network element allocated for one type of service fails or is fully loaded, more types of services can be prevented from being affected, thereby increasing the possibility that more types of services can be processed normally.

[0227] On the other hand, in the prior art, the computing instance is directly deployed on the switch as a physical machine. In this way, the computing instance needs to be configured so that the computing instance can adapt to the hardware facilities of the switch as a physical machine. In this way, the computing instance can run normally on the switch as a physical machine and process data. However, in actual scenarios, sometimes some switches in the switch cluster may be updated. Among them, sometimes the hardware facilities of the updated switch are different from the hardware facilities of the switch before the update, such as changes in the architecture of the CPU (Central Processing Unit), the architecture of the memory, and the architecture of the network card.

[0228] However, since the computing instance is adapted to the hardware facilities of the switch before the update, the staff who manages the computing instance needs to update the computing instance so that the updated computing instance can adapt to the hardware facilities of the updated switch, so that the computing instance can run and process data on the updated switch. However, this will bring additional adaptation work for the computing instance, increase the workload of the staff who manage the computing instance, and increase labor costs.

[0229] In the present application, a virtual machine is deployed on the second switch, and a computing instance is deployed on the virtual machine. The virtual machine can abstract the information of the hardware facilities in the second switch into the information of the hardware facilities that can be presented to the computing instance, and no matter how the hardware facilities in the second switch change, the information of the hardware facilities that the virtual machine abstracts and can present to the computing instance is the same and will not change. In this way, after the hardware facilities in the second switch change, the virtual machines can be updated uniformly so that each virtual machine adapts to the updated hardware facilities of the second switch, but the information of the hardware facilities that the virtual machine abstracts and can present to the computing instance remains unchanged.

[0230] Thus, in the present application, the virtual machine undertakes the task of adapting the hardware facilities of the second switch. Therefore, the computing instance only needs to adapt the virtual machine without adapting the second switch. The present application can set the virtual machines on each second switch to be the same virtual machine. In this way, even if the second switch is updated, the staff who manages the computing instance does not need to perform additional adaptation work on the computing instance, thereby reducing labor costs.

[0231] Reference Fig.10 , shows a structural block diagram of an embodiment of a data processing device of the present application, which may specifically include the following modules:

[0232] A first receiving module 11, used for receiving data to be processed;

[0233] A first determining module 12, used to determine the type of service involved in the data to be processed;

[0234] A second determination module 13, configured to determine a target network element that is individually allocated for the type of service, the target network element comprising a virtual machine in at least two different second gateways in the gateway cluster;

[0235] The first scheduling module 14 is used to schedule the data to be processed to the target virtual machine in the target network element, so that the computing instance in the target virtual machine processes the data to be processed.

[0236] In an optional implementation, the second determining module includes:

[0237] The searching unit is used to search for a network element corresponding to the type of service in the corresponding relationship between the type of service and the network element, and use the network element as the target network element.

[0238] In an optional implementation, the scheduling module includes:

[0239] A first determining unit, configured to determine a tenant that sends the data to be processed;

[0240] A second determining unit is used to determine a virtual machine individually allocated to the tenant from among the multiple virtual machines included in the target network element, and use the virtual machine as the target virtual machine;

[0241] A scheduling unit is used to schedule the data to be processed to the target virtual machine.

[0242] In an optional implementation, the second determining unit includes:

[0243] The search subunit is used to search for a virtual machine corresponding to the tenant in the correspondence relationship between the tenant and the virtual machine corresponding to the target network element, and use the virtual machine as the target virtual machine.

[0244] In an optional implementation, the device further includes:

[0245] A third determination module is used to determine the network element that needs to be expanded when the gateway cluster needs to be expanded;

[0246] A fourth determination module, configured to determine at least one idle virtual machine in a preset virtual machine cluster, wherein the preset virtual machine cluster includes a plurality of idle virtual machines;

[0247] The allocation module is used to allocate the determined idle virtual machines to the network elements that need to be expanded.

[0248] In an optional implementation, the device further includes:

[0249] The first changing module is used to change the state of the determined idle virtual machine from an idle state to a non-idle state.

[0250] In an optional implementation, the device further includes:

[0251] A fifth determining module, configured to determine a network element that needs to be shrunk when the gateway cluster needs to be shrunk;

[0252] A sixth determining module, used to determine at least one virtual machine in a network element that needs to be scaled down;

[0253] The elimination module is used to determine at least one virtual machine in the network element that needs to be reduced in capacity.

[0254] In an optional implementation, the device further includes:

[0255] The second changing module is used to change the determined state of at least one virtual machine from a non-idle state to an idle state.

[0256] In an optional implementation, the first scheduling module is specifically used to: schedule the data to be processed to a target virtual machine in the target network element, so that the computing instance in the target virtual machine processes the data to be processed.

[0257] On the one hand, in the present application, different network elements are allocated for different types of services, and the network element includes at least one virtual machine, and each virtual machine includes at least one computing instance. In this way, different types of services can be isolated. If the network element allocated for one type of service fails or is fully loaded, although the network element cannot continue to process new data of the service of this type normally, it does not affect other network elements to process data of other types of services normally. In this way, the present application can reduce the fault domain. Through the present application, when the network element allocated for one type of service fails or is fully loaded, more types of services can be prevented from being affected, thereby increasing the possibility that more types of services can be processed normally.

[0258] On the other hand, in the prior art, the computing instance is directly deployed on the gateway as a physical machine. In this way, the computing instance needs to be configured so that the computing instance can adapt to the hardware facilities of the gateway as a physical machine. In this way, the computing instance can run normally on the gateway as a physical machine and process data. However, in actual scenarios, sometimes some gateways in the gateway cluster may be updated. Among them, sometimes the hardware facilities of the updated gateway are different from the hardware facilities of the gateway before the update, such as changes in the architecture of the CPU (Central Processing Unit), the architecture of the memory, and the architecture of the network card.

[0259] However, since the computing instance is adapted to the hardware facilities of the gateway before the update, the staff who manages the computing instance needs to update the computing instance so that the updated computing instance can adapt to the hardware facilities of the updated gateway, so that the computing instance can run and process data on the updated gateway. However, this will bring additional adaptation work to the computing instance, increase the workload of the staff who manage the computing instance, and increase labor costs.

[0260] In the present application, a virtual machine is deployed on the second gateway, and a computing instance is deployed on the virtual machine. Among them, the virtual machine can abstract the information of the hardware facilities in the second gateway into the information of the hardware facilities that can be presented to the computing instance, and no matter how the hardware facilities in the second gateway change, the information of the hardware facilities that the virtual machine abstracts and can present to the computing instance is the same and will not change. In this way, after the hardware facilities in the second gateway change, the virtual machines can be updated uniformly so that each virtual machine adapts to the updated hardware facilities of the second gateway, but the information of the hardware facilities that the virtual machine abstracts and can present to the computing instance remains unchanged.

[0261] Thus, in the present application, the virtual machine is responsible for adapting the hardware facilities of the second gateway. Therefore, the computing instance only needs to adapt the virtual machine and does not need to adapt the second gateway. The present application can set the virtual machines on each second gateway to be the same virtual machine. In this way, even if the second gateway is updated, the staff who manages the computing instance does not need to perform additional adaptation work on the computing instance, thereby reducing labor costs.

[0262] Reference Fig.11 , shows a structural block diagram of an embodiment of a data processing device of the present application, which may specifically include the following modules:

[0263] A second receiving module 21, used for receiving data to be processed;

[0264] A seventh determination module 22, used to determine the type of service involved in the data to be processed;

[0265] An eighth determination module 23, configured to determine a target network element separately allocated for the type of service, the target network element comprising a virtual machine in at least two different second switches in the switch cluster;

[0266] The second scheduling module 24 is used to schedule the data to be processed to the target virtual machine in the target network element, so that the target virtual machine processes the data to be processed.

[0267] On the one hand, in the present application, different network elements are allocated for different types of services, and the network element includes at least one virtual machine, and each virtual machine includes at least one computing instance. In this way, different types of services can be isolated. If the network element allocated for one type of service fails or is fully loaded, although the network element cannot continue to process new data of the service of this type normally, it does not affect other network elements to process data of other types of services normally. In this way, the present application can reduce the fault domain. Through the present application, when the network element allocated for one type of service fails or is fully loaded, more types of services can be prevented from being affected, thereby increasing the possibility that more types of services can be processed normally.

[0268] On the other hand, in the prior art, the computing instance is directly deployed on the switch as a physical machine. In this way, the computing instance needs to be configured so that the computing instance can adapt to the hardware facilities of the switch as a physical machine. In this way, the computing instance can run normally on the switch as a physical machine and process data. However, in actual scenarios, sometimes some switches in the switch cluster may be updated. Among them, sometimes the hardware facilities of the updated switch are different from the hardware facilities of the switch before the update, such as changes in the architecture of the CPU (Central Processing Unit), the architecture of the memory, and the architecture of the network card.

[0269] However, since the computing instance is adapted to the hardware facilities of the switch before the update, the staff who manages the computing instance needs to update the computing instance so that the updated computing instance can adapt to the hardware facilities of the updated switch, so that the computing instance can run and process data on the updated switch. However, this will bring additional adaptation work for the computing instance, increase the workload of the staff who manage the computing instance, and increase labor costs.

[0270] In the present application, a virtual machine is deployed on the second switch, and a computing instance is deployed on the virtual machine. The virtual machine can abstract the information of the hardware facilities in the second switch into the information of the hardware facilities that can be presented to the computing instance, and no matter how the hardware facilities in the second switch change, the information of the hardware facilities that the virtual machine abstracts and can present to the computing instance is the same and will not change. In this way, after the hardware facilities in the second switch change, the virtual machines can be updated uniformly so that each virtual machine adapts to the updated hardware facilities of the second switch, but the information of the hardware facilities that the virtual machine abstracts and can present to the computing instance remains unchanged.

[0271] Thus, in the present application, the virtual machine undertakes the task of adapting the hardware facilities of the second switch. Therefore, the computing instance only needs to adapt the virtual machine without adapting the second switch. The present application can set the virtual machines on each second switch to be the same virtual machine. In this way, even if the second switch is updated, the staff who manages the computing instance does not need to perform additional adaptation work on the computing instance, thereby reducing labor costs.

[0272] The embodiment of the present application also provides a non-volatile readable storage medium, which stores one or more modules (programs). When the one or more modules are applied to a device, the device can execute instructions (instructions) of each method step in the embodiment of the present application.

[0273] The present application embodiment provides one or more machine-readable media on which instructions are stored, and when executed by one or more processors, the electronic device executes one or more of the methods described in the above embodiments. In the present application embodiment, the electronic device includes a server, a gateway, a sub-device, etc., and the sub-device is an Internet of Things device or other device.

[0274] The embodiments of the present disclosure may be implemented as an apparatus configured as desired using any appropriate hardware, firmware, software, or any combination thereof, and the apparatus may include electronic devices such as servers (clusters), terminal devices such as IoT devices, and the like.

[0275] Fig.12 An exemplary apparatus 1300 that can be used to implement various embodiments described in this application is schematically shown.

[0276] For one embodiment, Fig.12 An exemplary apparatus 1300 is shown having one or more processors 1302, a control module (chip set) 1304 coupled to at least one of the (one or more) processors 1302, a memory 1306 coupled to the control module 1304, a non-volatile memory (NVM) / storage device 1308 coupled to the control module 1304, one or more input / output devices 1310 coupled to the control module 1304, and a network interface 1312 coupled to the control module 1304.

[0277] The processor 1302 may include one or more single-core or multi-core processors, and the processor 1302 may include any combination of general-purpose processors or special-purpose processors (such as graphics processors, application processors, baseband processors, etc.). In some embodiments, the device 1300 can be used as a server device such as a gateway described in the embodiments of the present application.

[0278] In some embodiments, the device 1300 may include one or more computer-readable media (e.g., memory 1306 or NVM / storage device 1308) having instructions 1314 and one or more processors 1302 configured to execute the instructions 1314 in combination with the one or more computer-readable media to implement a module to perform the actions described in the present disclosure.

[0279] For one embodiment, the control module 1304 may include any suitable interface controller to provide any suitable interface to at least one of the processor(s) 1302 and / or any suitable device or component in communication with the control module 1304 .

[0280] The control module 1304 may include a memory controller module to provide an interface to the memory 1306. The memory controller module may be a hardware module, a software module, and / or a firmware module.

[0281] The memory 1306 may be used, for example, to load and store data and / or instructions 1314 for the device 1300. For one embodiment, the memory 1306 may include any suitable volatile memory, such as a suitable DRAM. In some embodiments, the memory 1306 may include double data rate type four synchronous dynamic random access memory (DDR4 SDRAM).

[0282] For one embodiment, control module 1304 may include one or more input / output controllers to provide an interface to NVM / storage device 1308 and input / output device(s) 1310 .

[0283] For example, NVM / storage 1308 may be used to store data and / or instructions 1314. NVM / storage 1308 may include any suitable non-volatile memory (e.g., flash memory) and / or may include any suitable non-volatile storage device(s) (e.g., one or more hard disk drives (HDDs), one or more compact disk (CD) drives, and / or one or more digital versatile disk (DVD) drives).

[0284] NVM / storage device 1308 may include storage resources that are physically part of the device on which apparatus 1300 is installed, or it may be accessible to the device without being part of the device. For example, NVM / storage device 1308 may be accessed via input / output device(s) 1310 over a network.

[0285] (One or more) input / output devices 1310 may provide an interface for the apparatus 1300 to communicate with any other appropriate device, and the input / output device 1310 may include a communication component, a phonetic component, a sensor component, etc. The network interface 1312 may provide an interface for the apparatus 1300 to communicate through one or more networks, and the apparatus 1300 may wirelessly communicate with one or more components of a wireless network according to any of one or more wireless network standards and / or protocols, for example, accessing a wireless network based on a communication standard, such as WiFi, 2G, 3G, 4G, 5G, etc., or a combination thereof for wireless communication.

[0286] For one embodiment, at least one of the processor(s) 1302 may be packaged together with the logic of one or more controllers (e.g., a memory controller module) of the control module 1304. For one embodiment, at least one of the processor(s) 1302 may be packaged together with the logic of one or more controllers of the control module 1304 to form a system-in-package (SiP). For one embodiment, at least one of the processor(s) 1302 may be integrated on the same die with the logic of one or more controllers of the control module 1304. For one embodiment, at least one of the processor(s) 1302 may be integrated on the same die with the logic of one or more controllers of the control module 1304 to form a system-on-chip (SoC).

[0287] In various embodiments, the device 1300 may be, but is not limited to, a terminal device such as a server, a desktop computing device, or a mobile computing device (e.g., a laptop computing device, a handheld computing device, a tablet computer, a netbook, etc.). In various embodiments, the device 1300 may have more or fewer components and / or a different architecture. For example, in some embodiments, the device 1300 includes one or more cameras, a keyboard, a liquid crystal display (LCD) screen (including a touch screen display), a non-volatile memory port, multiple antennas, a graphics chip, an application-specific integrated circuit (ASIC), and a speaker.

[0288] An embodiment of the present application provides an electronic device, comprising: one or more processors; and one or more machine-readable media having instructions stored thereon, which, when executed by the one or more processors, enable the electronic device to perform one or more data processing methods described in the present application.

[0289] As for the device embodiment, since it is basically similar to the method embodiment, the description is relatively simple, and the relevant parts can be referred to the partial description of the method embodiment.

[0290] The various embodiments in this specification are described in a progressive manner, and each embodiment focuses on the differences from other embodiments. The same or similar parts between the various embodiments can be referenced to each other.

[0291] The embodiments of the present application are described with reference to the flowcharts and / or block diagrams of the methods, terminal devices (systems), and computer program products according to the embodiments of the present application. It should be understood that each process and / or box in the flowchart and / or block diagram, as well as the combination of the processes and / or boxes in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing terminal device to generate a machine, so that the instructions executed by the processor of the computer or other programmable data processing terminal device generate instructions for implementing the processes in the flowchart and / or block diagram. Figure 1 A process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.

[0292] These computer program instructions may also be stored in a computer readable memory capable of directing a computer or other programmable data processing terminal device to operate in a specific manner, so that the instructions stored in the computer readable memory produce a manufactured product including an instruction device, which implements the process Figure 1 A process or multiple processes and / or boxes Figure 1 A function specified in one or more boxes.

[0293] These computer program instructions can also be loaded onto a computer or other programmable data processing terminal device so that a series of operating steps are executed on the computer or other programmable terminal device to produce a computer-implemented process, thereby providing instructions for executing on the computer or other programmable terminal device to implement the process. Figure 1 A process or multiple processes and / or boxes Figure 1 The steps for the functions specified in one or more boxes.

[0294] Although the preferred embodiments of the present application have been described, those skilled in the art may make additional changes and modifications to these embodiments once they have learned the basic creative concept. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments and all changes and modifications that fall within the scope of the embodiments of the present application.

[0295] Finally, it should be noted that, in this article, relational terms such as first and second, etc. are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Moreover, the terms "include", "comprise" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or terminal device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or terminal device. In the absence of further restrictions, the elements defined by the sentence "comprise a ..." do not exclude the existence of other identical elements in the process, method, article or terminal device including the elements.

[0296] The above is a detailed introduction to a data processing method, device and system provided by the present application. Specific examples are used in this article to illustrate the principles and implementation methods of the present application. The description of the above embodiments is only used to help understand the method of the present application and its core idea. At the same time, for a person skilled in the art, according to the idea of ​​the present application, there will be changes in the specific implementation method and application scope. In summary, the content of this specification should not be understood as a limitation on the present application.

Claims

1. A data processing system, characterized in that: The system comprises: A first gateway and a gateway cluster; The gateway cluster includes a plurality of second gateways; The second gateway includes a plurality of virtual machines; The virtual machine includes at least one computing instance; The virtual machines in at least two different second gateways constitute a network element; Different network elements are allocated to different types of services.

2. A data processing method, characterized in that: Applied to a first gateway, the method includes: receiving data to be processed; Determine the type of service involved in the data to be processed; Determine a target network element that is allocated separately for the type of service, the target network element comprising a virtual machine in at least two different second gateways in the gateway cluster; the virtual machine comprising at least one computing instance; The data to be processed is dispatched to a target virtual machine in the target network element, so that the target virtual machine processes the data to be processed.

3. The method according to claim 2, characterized in that The determining of the target network element to be allocated separately for the service of the type includes: In the correspondence between the service type and the network element, a network element corresponding to the type is searched and used as the target network element.

4. The method according to claim 2, characterized in that: The step of scheduling the data to be processed to a target virtual machine in the target network element includes: Determine a tenant to send the data to be processed; Determine, among the multiple virtual machines included in the target network element, a virtual machine that is individually allocated to the tenant and uses it as the target virtual machine; The data to be processed is dispatched to the target virtual machine.

5. The method according to claim 4, characterized in that Determining, among the multiple virtual machines included in the target network element, a virtual machine that is individually allocated to the tenant, comprises: In the correspondence relationship between the tenant and the virtual machine corresponding to the target network element, a virtual machine corresponding to the tenant is searched and used as the target virtual machine.

6. The method according to claim 2, characterized in that The method further comprises: When the gateway cluster needs to be expanded, determine the network element that needs to be expanded; Determine at least one idle virtual machine in a preset virtual machine cluster, wherein the preset virtual machine cluster includes a plurality of idle virtual machines; The determined idle virtual machines are allocated to the network elements that need to be expanded.

7. The method according to claim 6, characterized in that The method further comprises: The state of the determined idle virtual machine is changed from an idle state to a non-idle state.

8. The method according to claim 2, characterized in that: The method further comprises: When the gateway cluster needs to be reduced in capacity, determining the network element that needs to be reduced in capacity; Determine at least one virtual machine in the network element that needs to be scaled down; At least one determined virtual machine is removed from the network elements that need to be scaled down.

9. The method according to claim 8, characterized in that The method further comprises: The state of the determined at least one virtual machine is changed from a non-idle state to an idle state.

10. The method according to claim 2, characterized in that The step of dispatching the data to be processed to a target virtual machine in the target network element so that the target virtual machine processes the data to be processed includes: The data to be processed is dispatched to a target virtual machine in the target network element, so that a computing instance in the target virtual machine processes the data to be processed.

11. A data processing system, characterized in that: The system comprises: A first switch and a switch cluster; The switch cluster includes a plurality of second switches; The second switch includes a plurality of virtual machines; The virtual machine includes at least one computing instance; The virtual machines in at least two different second switches constitute a network element; Different network elements are allocated to different types of services.

12. A data processing method, characterized in that: Applied to a first switch, the method includes: receiving data to be processed; Determine the type of service involved in the data to be processed; Determine a target network element that is separately allocated for the type of service, the target network element comprising a virtual machine in at least two different second switches in the switch cluster; the virtual machine comprising at least one computing instance; The data to be processed is dispatched to a target virtual machine in the target network element, so that the target virtual machine processes the data to be processed.

13. A data processing device, characterized in that: Applied to a first gateway, the device comprises: A first receiving module, used for receiving data to be processed; A first determining module, used to determine the type of service involved in the data to be processed; A second determination module is used to determine a target network element that is separately allocated for the type of service, wherein the target network element includes a virtual machine in at least two different second gateways in the gateway cluster; the virtual machine includes at least one computing instance; The first scheduling module is used to schedule the data to be processed to the target virtual machine in the target network element, so that the computing instance in the target virtual machine processes the data to be processed.

14. The device according to claim 13, characterized in that The second determining module comprises: The searching unit is used to search for a network element corresponding to the type of service in the corresponding relationship between the type of service and the network element, and use the network element as the target network element.

15. The device according to claim 13, characterized in that The scheduling module includes: A first determining unit, configured to determine a tenant that sends the data to be processed; A second determining unit is used to determine a virtual machine individually allocated to the tenant from among the multiple virtual machines included in the target network element, and use the virtual machine as the target virtual machine; A scheduling unit is used to schedule the data to be processed to the target virtual machine.

16. The device according to claim 15, characterized in that The second determining unit includes: The search subunit is used to search for a virtual machine corresponding to the tenant in the correspondence relationship between the tenant and the virtual machine corresponding to the target network element, and use the virtual machine as the target virtual machine.

17. The device according to claim 13, characterized in that The device also includes: A third determination module is used to determine the network element that needs to be expanded when the gateway cluster needs to be expanded; A fourth determination module, configured to determine at least one idle virtual machine in a preset virtual machine cluster, wherein the preset virtual machine cluster includes a plurality of idle virtual machines; The allocation module is used to allocate the determined idle virtual machines to the network elements that need to be expanded.

18. The device according to claim 17, characterized in that The device also includes: The first changing module is used to change the state of the determined idle virtual machine from an idle state to a non-idle state.

19. The device according to claim 13, characterized in that The device also includes: A fifth determining module, configured to determine a network element that needs to be shrunk when the gateway cluster needs to be shrunk; A sixth determining module, used to determine at least one virtual machine in a network element that needs to be scaled down; The elimination module is used to determine at least one virtual machine in the network element that needs to be reduced in capacity.

20. The device according to claim 19, characterized in that The device also includes: The second changing module is used to change the determined state of at least one virtual machine from a non-idle state to an idle state.

21. The device according to claim 13, characterized in that The first scheduling module is specifically used to schedule the data to be processed to the target virtual machine in the target network element, so that the computing instance in the target virtual machine processes the data to be processed.

22. A data processing device, characterized in that: Applied to a first switch, the device comprises: A second receiving module, used for receiving data to be processed; A seventh determination module, used to determine the type of service involved in the data to be processed; An eighth determination module is used to determine a target network element that is separately allocated for the type of service, wherein the target network element includes a virtual machine in at least two different second switches in the switch cluster; the virtual machine includes at least one computing instance; The second scheduling module is used to schedule the data to be processed to the target virtual machine in the target network element, so that the target virtual machine processes the data to be processed.

23. An electronic device, characterized in that: The electronic device comprises: Processor; and A memory having executable codes stored thereon, which, when executed, causes the processor to execute the data processing method as described in one or more of claims 2-10.

24. One or more machine-readable media having executable codes stored thereon, which, when executed, cause a processor to perform the data processing method according to one or more of claims 2-10.

25. An electronic device, characterized in that: The electronic device comprises: Processor; and A memory having executable codes stored therein, which, when executed, causes the processor to execute the data processing method according to claim 12.

26. One or more machine-readable media having executable codes stored thereon, which, when executed, cause a processor to perform the data processing method according to claim 12.

Citation Information

Patent Citations

  • Independent and balanced task distribution cluster system based on IP

    CN103533068A

  • Method, device and system for managing virtualized network function network elements

    CN104579732A