Server system and communication method based on server system

By using heterogeneous cards and multiple network cards to go directly to the cloud instance in the cloud server system, the problem of limited bandwidth of a single network card is solved, the bandwidth and service quality of the cloud instance are improved, and the reliability and stability of the service are ensured. .

CN119420749APending Publication Date: 2025-02-11HUAWEI CLOUD COMPUTING TECHNOLOGIES CO LTD
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202411345909.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-09-25
Publication Date
2025-02-11

AI Technical Summary

Technical Problem

In cloud scenarios, the performance improvement of a single network card is limited, resulting in limited bandwidth available to cloud instances on physical servers, which in turn affects the quality of service provided by cloud instances to tenants.

Method used

By introducing heterogeneous cards into the server system, multiple network cards pass directly to the first virtualization device in the cloud instance of the physical server, and selecting the appropriate network card from the multiple network cards for communication using the binding relationship, thereby increasing the bandwidth of the cloud instance .

Benefits of technology

Improves the bandwidth that the server can use, improves the quality of service provided to tenants, and maintains service reliability and stability through other network cards in the event of network card failure.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119420749A_ABST
    Figure CN119420749A_ABST
Patent Text Reader

Abstract

The invention discloses a server system and a communication method based on the server system, which can improve the bandwidth capable of being used by a server and further improve the quality of services provided for tenants. The server system comprises a physical server and heterogeneous cards, wherein a plurality of network cards in the heterogeneous cards are directly connected to a first virtualization device in a cloud instance of the physical server. Since the first virtualization device records the binding relationship between the cloud instance and the plurality of network cards, the first virtualization device can utilize the binding relationship between the plurality of network cards and the cloud instance to forward the message to the destination end after receiving the message sent by the cloud instance and to be forwarded to the destination end. And selecting a first network card from the plurality of network cards, and sending the messages to the first network card, so that the first network card sends the messages to a destination end.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments of the present application relate to the field of cloud technology, and in particular, to a server system and a communication method based on the server system. Background Art

[0002] In cloud scenarios, cloud vendors can set up a large number of physical servers in data centers to use these physical servers to provide tenants with various cloud services. In data centers, physical servers often need to communicate with each other, so cloud vendors can set up network cards with certain performance in each physical server and build a network between the network cards of the physical servers so that the network cards of the physical servers can communicate with each other.

[0003] In related technologies, cloud vendors usually configure a network card for each physical server in a data center to enable the cloud instances on each physical server to communicate over the network. That is to say, for any physical server in a data center, the cloud instance on the physical server can send messages to the network card of another physical server through the network card of the physical server, so that the cloud instance of the other physical server receives the message, thereby realizing communication between the two cloud instances.

[0004] In the above process, since each physical server is only configured with one network card, there is a certain bottleneck in the performance improvement of a single network card under various circumstances such as limited manufacturing process of the network card or slow iteration and evolution of the network card. That is, the bandwidth that a single network card can provide is limited, resulting in the inability to improve the bandwidth that can be used by the cloud instance on the physical server, which also results in the inability to further improve the quality of services provided by the cloud instance to tenants. Summary of the invention

[0005] The embodiments of the present application provide a server system and a communication method based on the server system, which can increase the bandwidth that can be used by the server, thereby improving the quality of services provided to tenants.

[0006] A first aspect of an embodiment of the present application provides a server system, which includes a physical server and heterogeneous cards, and the physical server is communicatively connected with the heterogeneous cards.

[0007] In the server system, since multiple network cards among these heterogeneous cards are directly connected to the first virtualization device in the cloud instance of the physical server, the first virtualization device can generate a binding relationship between these multiple network cards and the cloud instance, and the binding relationship is used to indicate that these multiple network cards can be used exclusively for the cloud instance.

[0008] When the cloud instance as a source needs to send a message to a destination, the cloud instance can first send the message to the first virtualization device. Then, the first virtualization device can use the binding relationship to select the first network card from the multiple network cards and send the message to the first network card, so that the first network card sends the message to the destination. It can be seen that the first virtualization device can realize the communication between the cloud instance and the first network card based on the binding relationship, and then realize the communication between the first network card and the destination.

[0009] It can be seen from the above server system that: in this server system, the heterogeneous cards connected to the physical server include multiple network cards, and these multiple network cards are bound to the cloud instance of the physical server (through the first virtualization device in the cloud instance), which is equivalent to that the cloud instance can use any one of the multiple network cards (that is, the first network card) to communicate with the outside world. Since the overall performance of these multiple network cards is strong, that is, the overall bandwidth provided by these multiple network cards is large, the bandwidth that can be used by the cloud instance can be increased, thereby improving the quality of services that the cloud instance can provide to tenants.

[0010] In a possible implementation, the binding relationship includes the identifiers of multiple network cards, and the first virtualization device is used to: receive a message sent by a cloud instance to be forwarded to a destination; determine the first identifier based on the information carried by the message, and select a first network card with the first identifier from multiple network cards; send the message to the first network card, and the first network card is used to send the message to the destination. In the aforementioned implementation, when the cloud instance needs to send a message to the destination as a source, the cloud instance can first send these messages to the first virtualization device. Then, the first virtualization device can perform a series of processing on the information carried by these messages to obtain the first identifier. Since the aforementioned binding relationship can include the identifiers of these multiple network cards, the first virtualization device can traverse the identifiers of these multiple network cards, and after determining that the identifier of a certain network card matches the first identifier, the network card can be determined as the first network card, and the messages can be sent to the first network card, so that the first network card sends these messages to the destination. It can be seen that the first virtualization device can use the information carried in the message sent by the cloud instance to randomly select a network card from multiple network cards available for the cloud instance to complete the forwarding of the message.

[0011] In one possible implementation, the second virtualization device in the heterogeneous card is used to: after detecting that the second network card among the multiple network cards is in a faulty state, control the second network card to disconnect from the first virtualization device, wherein the second network card is any one of the multiple network cards; and notify the first virtualization device to release the binding relationship between the cloud instance and the second network card. In the aforementioned implementation, in the server system, the second virtualization device in the heterogeneous card can monitor in real time whether the multiple network cards in the heterogeneous card are faulty. If the second virtualization device detects that the second network card among the multiple network cards is in a faulty state, the second virtualization device can control the second network card to disconnect from the first virtualization device in the cloud instance in the physical server, and notify the first virtualization device to release the binding relationship between the cloud instance and the second network card, so that the second network card can no longer be used by the cloud instance. It can be seen that in this server system, the heterogeneous card connected to the physical server includes multiple network cards, and these multiple network cards can all be used as paths for the cloud instance of the physical server to communicate with the outside world. Therefore, when a network card among these multiple network cards (i.e., the second network card) fails, the cloud instance (under the operation of the second virtualization device of the heterogeneous card) can communicate with the outside world through the remaining network cards, thereby maintaining the cloud instance to continue to provide services to tenants, thereby ensuring the reliability and stability of the services provided by the cloud instance to tenants.

[0012] In one possible implementation, the second virtualization device is further used to control the sum of the message sending speeds of the multiple network cards to be less than or equal to a preset message sending speed threshold. In the aforementioned implementation, in the server system, the second virtualization device can also control the sum of the message sending speeds of the multiple network cards to be less than or equal to the preset message sending speed threshold in a certain manner, thereby controlling the traffic of each of the multiple network cards.

[0013] In a possible implementation, multiple network cards manage multiple first token buckets, and a second virtualization device manages a second token bucket. The number of tokens owned by the multiple first token buckets per unit time is equal to the number of messages that can be sent by the multiple network cards per unit time. The second virtualization device is used to control the sum of the multiple first token replenishment speeds to be less than or equal to the second token replenishment speed. The multiple first token replenishment speeds are the number of tokens that multiple network cards migrate from the second token bucket to the multiple first token buckets per unit time. The second token replenishment speed is the number of tokens added to the second token bucket by the second virtualization device per unit time, wherein the second token replenishment speed is used as a message sending speed threshold. In the aforementioned implementation, among the multiple network cards of the server system, each network card includes a first token bucket, and the second virtualization device includes a second token bucket. For any one of the multiple network cards, sending a message to the outside will consume a token of its first token bucket, so the number of tokens owned by the first token bucket of the network card per unit time is the message sending speed of the network card. The second virtualization device can control the sum of multiple first token replenishment speeds to be less than or equal to the second token replenishment speed. These multiple first token replenishment speeds correspond to these multiple network cards one by one. A certain first token replenishment speed among these multiple first token replenishment speeds is the number of tokens that migrate from the second token bucket to the first token bucket of this network card in a unit time by a certain network card among these multiple network cards. The second token replenishment speed is the number of tokens added to the second token bucket by the second virtualization device in a unit time. Then, since the number of tokens added to the second token bucket by the second virtualization device in a unit time is limited, the number of tokens added to the first token bucket of these multiple network cards in a unit time is also limited. In this way, the number of tokens owned by the first token bucket of these multiple network cards in a unit time is also limited, which also limits the message sending speed of these multiple network cards. It can be seen from this that the second virtualization device can control the message sending speed of multiple network cards to the outside through token consumption and token replenishment, thereby managing the traffic of these multiple network cards.

[0014] In one possible implementation, multiple network cards and the second virtualization device are combined into a heterogeneous card. In the aforementioned implementation, the server system may include only one heterogeneous card, so multiple network cards and the second virtualization device may be combined into the heterogeneous card. It can be seen that the server system provided in the embodiment of the present application has multiple product modes, with a certain degree of flexibility and selectivity.

[0015] In one possible implementation, the number of heterogeneous cards and second virtualization devices is multiple, and multiple network cards correspond one-to-one to multiple second virtualization devices, and multiple network cards correspond one-to-one to multiple heterogeneous cards, wherein any one of the multiple network cards and one second virtualization device corresponding to the network card in the multiple second virtualization devices are sealed in one heterogeneous card corresponding to the network card in the multiple heterogeneous cards. In the aforementioned implementation, the server system may only include multiple heterogeneous cards, and each heterogeneous card is sealed with one of the multiple network cards and one of the multiple second virtualization devices. It can be seen that the server system provided in the embodiment of the present application has multiple product modes and has a certain degree of flexibility and selectivity.

[0016] In one possible implementation, multiple second virtualization devices are directly connected to a shared memory corresponding to the multiple second virtualization devices, and the shared memory is used to support the multiple second virtualization devices to control the sum of the message sending speeds of multiple network cards to be less than or equal to a preset message sending speed threshold.

[0017] In one possible implementation, the cloud instance is any one of the following: a virtual machine, a container, and a micro virtual machine.

[0018] A second aspect of an embodiment of the present application provides a communication method based on a server system, wherein the server system includes a physical server and a heterogeneous card, wherein the physical server is connected to the heterogeneous card, and multiple network cards in the heterogeneous card are directly connected to a first virtualized device in a cloud instance of the physical server; the method includes: the first virtualized device records a binding relationship between the cloud instance and multiple network cards; the first virtualized device selects a first network card from multiple network cards based on the binding relationship, and realizes communication between the cloud instance and the first network card, wherein the first network card is any one of the multiple network cards.

[0019] In one possible implementation, the binding relationship includes identifiers of multiple network cards, and the first virtualization device selects the first network card from the multiple network cards based on the binding relationship, and implements communication between the cloud instance and the first network card, including: the first virtualization device receives a message sent by the cloud instance to be forwarded to a destination; the first virtualization device determines the first identifier based on information carried in the message, and selects the first network card with the first identifier from the multiple network cards; the first virtualization device sends the message to the first network card, and the first network card is used to send the message to the destination.

[0020] In one possible implementation, the method also includes: after detecting that a second network card among multiple network cards is in a faulty state, the second virtualization device in the heterogeneous card controls the second network card to disconnect from the first virtualization device, wherein the second network card is any one of the multiple network cards; and the second virtualization device notifies the first virtualization device to release the binding relationship between the cloud instance and the second network card.

[0021] In a possible implementation, the method further includes: the second virtualization device controls the sum of message sending speeds of the plurality of network cards to be less than or equal to a preset message sending speed threshold.

[0022] In one possible implementation, multiple network cards manage multiple first token buckets, and a second virtualization device manages a second token bucket. The number of tokens owned by the multiple first token buckets per unit time is equal to the number of messages that can be sent by the multiple network cards per unit time. The second virtualization device controls the sum of the message sending speeds of the multiple network cards to be less than or equal to a preset message sending speed threshold, including: the second virtualization device controls the sum of the multiple first token replenishment speeds to be less than or equal to the second token replenishment speed, the multiple first token replenishment speeds are the number of tokens migrated from the second token bucket to the multiple first token buckets by the multiple network cards per unit time, and the second token replenishment speed is the number of tokens added to the second token bucket by the second virtualization device per unit time, wherein the second token replenishment speed is used as the message sending speed threshold.

[0023] In a possible implementation, multiple network cards and the second virtualization device are combined into a heterogeneous card.

[0024] In one possible implementation, there are multiple heterogeneous cards and multiple second virtualization devices, multiple network cards correspond one-to-one to multiple second virtualization devices, and multiple network cards correspond one-to-one to multiple heterogeneous cards, wherein any one of the multiple network cards and one second virtualization device corresponding to the network card among the multiple second virtualization devices are combined into one heterogeneous card corresponding to the network card among the multiple heterogeneous cards.

[0025] In one possible implementation, multiple second virtualization devices are directly connected to a shared memory corresponding to the multiple second virtualization devices, and the shared memory is used to support the multiple second virtualization devices to control the sum of the message sending speeds of multiple network cards to be less than or equal to a preset message sending speed threshold.

[0026] In one possible implementation, the cloud instance is any one of the following: a virtual machine, a container, and a micro virtual machine.

[0027] A third aspect of an embodiment of the present application provides a cloud service system, which includes infrastructure and a cloud management platform for managing these infrastructures, and these infrastructures include multiple server systems as described in the first aspect or any possible implementation method of the first aspect.

[0028] A fourth aspect of an embodiment of the present application provides a computing device cluster, the computing device cluster includes at least one computing device, each computing device includes a processor and a memory: the memory is used to store instructions; the processor is used to enable the computing device cluster to execute the method described in the second aspect or any possible implementation method of the second aspect according to the instructions.

[0029] A fifth aspect of an embodiment of the present application provides a computer storage medium, which stores one or more instructions. When the instructions are executed by one or more computers, the one or more computers implement the method described in the second aspect or any possible implementation method of the second aspect.

[0030] A sixth aspect of the embodiments of the present application provides a computer program product, which stores instructions. When the instructions are executed by a computer, the computer implements the method described in the second aspect or any possible implementation method of the second aspect.

[0031] In an embodiment of the present application, a server system may include a physical server and a heterogeneous card, and multiple network cards in these heterogeneous cards are directly connected to the first virtualized device in the cloud instance of the physical server. Since the first virtualized device records the binding relationship between the cloud instance and the multiple network cards, after the first virtualized device receives the message to be forwarded to the destination sent from the cloud instance, the first virtualized device can use the binding relationship between the multiple network cards and the cloud instance to select the first network card from the multiple network cards, and send these messages to the first network card, so that the first network card sends these messages to the destination. It can be seen that in the server system, the heterogeneous card connected to the physical server includes multiple network cards, and these multiple network cards are bound to the cloud instance of the physical server (through the first virtualized device in the cloud instance), which is equivalent to the cloud instance using these multiple network cards to communicate with the outside world. Since the overall performance of these multiple network cards is strong, that is, the overall bandwidth provided by these multiple network cards is large, the bandwidth that can be used by the cloud instance can be increased, thereby improving the quality of service that the cloud instance can provide to tenants. BRIEF DESCRIPTION OF THE DRAWINGS

[0032] Figure 1 A schematic diagram of the structure of a cloud service system provided in an embodiment of the present application;

[0033] Figure 2 A schematic diagram of the structure of a server system provided in an embodiment of the present application;

[0034] Figure 3 Another structural diagram of the server system provided in the embodiment of the present application;

[0035] Figure 4A flow chart of a communication method based on a server system provided in an embodiment of the present application;

[0036] Figure 5 Another structural diagram of the server system provided in the embodiment of the present application;

[0037] Figure 6 Another structural diagram of the server system provided in the embodiment of the present application;

[0038] Figure 7 Another structural diagram of the server system provided in the embodiment of the present application;

[0039] Figure 8 Another structural diagram of the server system provided in the embodiment of the present application;

[0040] Fig. 9 A schematic diagram of a structure of a computing device provided in an embodiment of the present application;

[0041] Fig.10 A schematic diagram of the structure of a computing device cluster provided in an embodiment of the present application;

[0042] Fig.11 A schematic diagram of computer devices in a computer cluster provided in an embodiment of the present application being connected via a network. DETAILED DESCRIPTION

[0043] The embodiments of the present application provide a server system and a communication method based on the server system, which can increase the bandwidth that can be used by the server, thereby improving the quality of services provided to tenants.

[0044] The terms "first", "second", etc. in the specification and claims of the present application and the above-mentioned drawings are used to distinguish similar objects, and need not be used to describe a specific order or sequential order. It should be understood that the terms used in this way can be interchangeable under appropriate circumstances, which is only to describe the distinction mode adopted by the objects of the same attributes when describing in the embodiments of the present application. In addition, the terms "including" and "having" and any of their variations are intended to cover non-exclusive inclusions, so that the process, method, system, product or equipment comprising a series of units need not be limited to those units, but may include other units that are not clearly listed or inherent to these processes, methods, products or equipment.

[0045] In cloud scenarios, cloud vendors can set up a large number of physical servers in data centers to use these physical servers to provide tenants with various cloud services. In data centers, physical servers often need to communicate with each other, so cloud vendors can set up network cards with certain performance in each physical server and build a network between the network cards of the physical servers so that the network cards of the physical servers can communicate with each other.

[0046] In related technologies, cloud vendors usually configure a network card for each physical server in a data center to enable the cloud instances on each physical server to communicate over the network. That is to say, for any physical server in a data center, the cloud instance on the physical server can send messages to the network card of another physical server through the network card of the physical server, so that the cloud instance of the other physical server receives the message, thereby realizing communication between the two cloud instances.

[0047] In the above process, since each physical server is only configured with one network card, there is a certain bottleneck in the performance improvement of a single network card under various circumstances such as limited manufacturing process of the network card or slow iteration and evolution of the network card. That is, the bandwidth that a single network card can provide is limited, resulting in the inability to improve the bandwidth that can be used by the cloud instance on the physical server, which also results in the inability to further improve the quality of services provided by the cloud instance to tenants.

[0048] Furthermore, since each physical server is only configured with one network card, for any physical server, the network card of the physical server is the only path for the cloud instance of the physical server to communicate with the outside world. When the network card of the physical server fails or is upgraded, the cloud instance of the physical server will be unable to communicate with the outside world, and the reliability and stability of the services it provides to tenants cannot be guaranteed.

[0049] In order to solve the above problems, the embodiment of the present application provides a communication method based on a server system, which can be implemented through a cloud service system. Figure 1 A schematic diagram of the structure of the cloud service system provided in the embodiment of the present application is as follows: Figure 1 As shown in the figure, the cloud service system includes the infrastructure that can provide cloud services and the cloud management platform that manages these infrastructures. The following introduces the cloud management platform and the infrastructure respectively:

[0050] The cloud management platform can coordinate the management of the infrastructure in the entire cloud service system (for example, in the infrastructure, according to the instructions of a tenant, one or more cloud instances serving the tenant are created for the tenant, and these cloud instances are used to execute the tenant's business, thereby meeting the tenant's business needs, etc.). The cloud management platform can also be open to tenants outside the cloud service system and respond to their requests. For example, the cloud management platform can provide various interfaces such as login interfaces and creation interfaces for tenants' clients (for example, terminal devices used by tenants or browsers on terminal devices, etc.) to access. Among them, the cloud management platform can authenticate the identity of a tenant's client through the login interface, and after successful authentication, the tenant's client can be allowed to log in to the cloud management platform. For another example, the cloud management platform can also set up an interface to allow the tenant's client to send a cloud instance creation request for the tenant to the cloud management platform. Therefore, the cloud management platform can select at least one server system that meets the specifications and is idle from multiple candidate server systems based on the cloud instance creation request, because the request is used to indicate the specifications of the tenant's cloud instance, and create the tenant's cloud instance on these server systems, so that these cloud instances can complete the tenant's business and thus meet the tenant's business needs.

[0051] The infrastructure includes multiple server systems. For any of the multiple server systems, the server system may include a physical server and at least one heterogeneous card. The physical server and the heterogeneous cards may be connected to each other through a high-speed serial computer expansion bus (peripheral component interconnect express, PCIE). Of course, the physical server and the heterogeneous cards may also be connected to each other through other methods, which are not limited here. In the server system, since the number of heterogeneous cards can be one or more, the internal structure of the server system is introduced below from different ways of presenting the server system:

[0052] (1) Figure 2 As shown ( Figure 2A structural diagram of a server system provided in an embodiment of the present application) When the server system includes only one physical server and one heterogeneous card, the physical server may include various types of hardware devices, such as a central processing unit (CPU), memory, and disk, etc. The cloud management platform may create a cloud instance of the tenant on the CPU through virtualization technology. The cloud instance may include the tenant's application and a first virtualization device, which may also be called a bonding device. The heterogeneous card contains multiple (physical) network cards and an extension processor. The cloud management platform may create a second virtualization device on the extension processor through virtualization technology. The second virtualization device may also be called a virtual switch (vswitch).

[0053] It is worth noting that for any one of the multiple network cards of the heterogeneous card, the network card can create a virtual function (VF), so the network card can directly connect to the first virtualization device in the cloud instance of the physical server through the VF it created, so the first virtualization device will generate and record the binding relationship between the network card and the cloud instance. The same is true for the remaining network cards in the heterogeneous card, so the first virtualization device records the binding relationship between these multiple network cards and the cloud instance. Due to the existence of these binding relationships, when the first virtualization device faces the application of the cloud instance, the first virtualization device can be presented as multiple virtual network cards corresponding to these multiple network cards. Therefore, when the application of the cloud instance generates messages to be forwarded, it will call the first virtualization device (that is, these multiple virtual network cards) to forward these messages.

[0054] It is also worth noting that after the first virtualization device receives the message to be forwarded to the destination from the cloud instance (application), the first virtualization device can use the binding relationship between the multiple network cards and the cloud instance to select a network card from the multiple network cards (i.e., the aforementioned first network card), and send the messages to the network card, so that the network card sends the messages to the destination. Specifically, the binding relationship between the multiple network cards and the cloud instance can be presented as a mapping table, and the mapping table records the identifiers of the multiple network cards. Therefore, after receiving the messages, the first virtualization device can use the information of the messages to determine a certain identifier in the mapping table (i.e., the aforementioned first identifier). Since the identifier is the identifier of a certain network card, the first virtualization device can select the network card as the network card for forwarding the messages, and send the messages to the network card, so that the network card sends the messages to the destination.

[0055] It is also worth noting that the second virtualization device of the heterogeneous card can manage the multiple network cards. For example, the second virtualization device can set a message forwarding strategy for the multiple network cards. When a network card among the multiple network cards receives a message from the cloud instance (source end) forwarded by the second virtualization device, the network card can determine whether the messages meet the requirements of the forwarding strategy (for example, whether the source end generating the messages and the destination end receiving the messages are legal, etc.). If they meet the requirements, the network card can send the messages to the destination end. For another example, the second virtualization device can also monitor the multiple network cards in real time. Once a network card among the multiple network cards (i.e., the aforementioned second network card) fails, the second virtualization device can disconnect the connection between the network card and the first virtualization device in time, and notify the first virtualization device to release the binding relationship between the network card and the cloud instance. For another example, the second virtualization device can also control the sum of the message sending speeds of the multiple network cards to be less than or equal to the preset message sending speed threshold, etc., through a specific method (for example, token consumption and replenishment, etc.).

[0056] (2) Figure 3 As shown ( Figure 3 Another structural diagram of the server system provided in the embodiment of the present application), when the server system includes only one physical server and multiple heterogeneous cards, the physical server may include various types of hardware devices, such as CPU, memory, disk, etc. The cloud management platform may create a cloud instance of the tenant on the CPU through virtualization technology, and the cloud instance may include the tenant's application and a first virtualized device. For any one of the multiple heterogeneous cards, the heterogeneous card may contain a (physical) network card and an extended processor, and the cloud management platform may create a second virtualized device on the extended processor through virtualization technology. The same is true for the remaining heterogeneous cards. It can be seen that the multiple heterogeneous cards may include multiple network cards and multiple second virtualized devices, and a heterogeneous card may contain a network card and a second virtualized device, that is, the multiple heterogeneous cards, the multiple network cards, and the multiple second virtualized devices are one-to-one corresponding.

[0057] It is worth noting that for any one of the multiple heterogeneous cards, the network card in the heterogeneous card can create a VF, so the network card can be directly connected to the first virtualized device in the cloud instance of the physical server through the VF it created, so the first virtualized device will generate and record the binding relationship between the network card and the cloud instance. The same is true for the network cards in the remaining heterogeneous cards, so the first virtualized device records the binding relationship between the multiple network cards and the cloud instance. Due to the existence of these binding relationships, when the first virtualized device faces the application of the cloud instance, the first virtualized device can be presented as multiple virtual network cards corresponding to the multiple network cards. Therefore, when the application of the cloud instance generates messages to be forwarded, it will call the first virtualized device (that is, the multiple virtual network cards) to forward these messages.

[0058] It is also worth noting that after the first virtualization device receives the message to be forwarded to the destination from the cloud instance (application), the first virtualization device can use the binding relationship between the multiple network cards and the cloud instance to select a network card from the multiple network cards (i.e., the aforementioned first network card), and send the messages to the network card, so that the network card sends the messages to the destination. Specifically, the binding relationship between the multiple network cards and the cloud instance can be presented as a mapping table, and the mapping table records the identifiers of the multiple network cards. Therefore, after receiving the messages, the first virtualization device can use the information of the messages to determine a certain identifier in the mapping table (i.e., the aforementioned first identifier). Since the identifier is the identifier of a certain network card, the first virtualization device can select the network card as the network card for forwarding the messages, and send the messages to the network card, so that the network card sends the messages to the destination.

[0059] It is also worth noting that for any one of the multiple heterogeneous cards, the second virtualization device of the heterogeneous card can manage the network card of the heterogeneous card. For example, the second virtualization device of the heterogeneous card can set a message forwarding strategy for the network card of the heterogeneous card. When the network card of the heterogeneous card receives the message from the cloud instance (source end) forwarded by the second virtualization device, the network card of the heterogeneous card can determine whether these messages meet the requirements of the forwarding strategy (for example, whether the source end generating these messages and the destination end receiving the message are legal, etc.). If they meet the requirements, the network card of the heterogeneous card can send these messages to the destination end. For another example, the second virtualization device of the heterogeneous card can also monitor the network card of the heterogeneous card in real time. Once the network card of the heterogeneous card (i.e., the aforementioned second network card) fails, the second virtualization device of the heterogeneous card can promptly disconnect the connection between the network card of the heterogeneous card and the first virtualization device, and notify the first virtualization device to release the binding relationship between the network card of the heterogeneous card and the cloud instance. For another example, the second virtualization device of the heterogeneous card may also control the sum of the message sending speeds of the network cards of the heterogeneous card to be less than or equal to a preset message sending speed threshold through a specific method (eg, token consumption and replenishment method, etc.).

[0060] It is also worth noting that a storage device can be set for the multiple heterogeneous cards, and the storage device is connected to the multiple heterogeneous cards. For any one of the multiple heterogeneous cards, the second virtualization device of the heterogeneous card can be directly connected to the shared memory of the storage device, and the shared memory can assist the second virtualization device of the heterogeneous card to control the message sending speed of the network card of the heterogeneous card to be less than or equal to the preset message sending speed threshold through a specific method (for example, the aforementioned token supplement, etc.).

[0061] Furthermore, for any server system among the multiple server systems serving tenants, the cloud instance created on the physical server in the server system can be presented in various forms. For example, the cloud instance can be the physical server selected by the cloud management platform. In another example, the cloud instance can also be a virtual machine (VM) created by the cloud management platform on the physical server through virtualization technology. In another example, the cloud instance can also be a container (docker) created by the cloud management platform on the physical server through virtualization technology. In another example, the cloud instance can also be a micro virtual machine (microVM) created by the cloud management platform on the physical server through virtualization technology, and so on.

[0062] Furthermore, for multiple server systems serving tenants, these multiple server systems can be deployed in the same site or different sites. The site can be presented in various forms. For example, the site can be a region in the infrastructure, or an availability zone in the infrastructure, or a data center (DC) in the infrastructure, or a room in the infrastructure, or a cabinet in the infrastructure, and so on.

[0063] Furthermore, the above-mentioned heterogeneous card may be a service driven infrastructure (SDI) card, etc., and the extended processor in the heterogeneous card may be a micro CPU and DPU, etc.

[0064] Based on the above cloud service system, it can be known that the cloud service system may include multiple server systems serving tenants. For any one of the multiple server systems, the server system may include a physical server and a heterogeneous card, and multiple network cards among these heterogeneous cards are directly connected to the first virtualization device in the cloud instance of the physical server. Since the first virtualization device records the binding relationship between the cloud instance and the multiple network cards, after the first virtualization device receives the message to be forwarded to the destination from the cloud instance, the first virtualization device can use the binding relationship between the multiple network cards and the cloud instance to select a network card from the multiple network cards and send the messages to the network card, so that the network card sends the messages to the destination. It can be seen that in this server system, the heterogeneous cards connected to the physical server include multiple network cards, and these multiple network cards are bound to the cloud instance of the physical server (through the first virtualized device in the cloud instance), which is equivalent to the cloud instance being able to use these multiple network cards to communicate with the outside world. Since the overall performance of these multiple network cards is relatively strong, that is, the overall bandwidth provided by these multiple network cards is relatively large, the bandwidth that can be used by the cloud instance can be increased, thereby improving the quality of service that the cloud instance can provide to tenants. In order to further understand the internal workflow of the server system, the following text combines Figure 4 To further introduce the workflow, Figure 4 A flow chart of a communication method based on a server system provided in an embodiment of the present application, such as Figure 4 As shown, the method can be implemented by a server system, the server system includes a physical server and heterogeneous cards, and the physical server is communicatively connected with the heterogeneous cards. The method includes:

[0065] 401. In a server system, a first virtualization device in a cloud instance of a physical server is used to record a binding relationship between the cloud instance and multiple network cards of a heterogeneous card.

[0066] In this embodiment, for the physical server and heterogeneous cards included in the server system, since multiple network cards among these heterogeneous cards are directly connected to the first virtualization device in the cloud instance of the physical server, the first virtualization device can generate a binding relationship between these multiple network cards and the cloud instance, and the binding relationship is used to indicate that these multiple network cards can be used exclusively for the cloud instance.

[0067] Specifically, the server system can be presented in a variety of ways:

[0068] (1) The server system includes a physical server and a heterogeneous card. A cloud instance can be created in the physical server, and a first virtualization device is set in the cloud instance. The heterogeneous card includes multiple network cards and a second virtualization device, that is, the multiple network cards and the second virtualization device are sealed in the heterogeneous card.

[0069] For example, Figure 5 As shown ( Figure 5 Another structural diagram of the server system provided in the embodiment of the present application), the server system 1 may include a physical server 1 and an SDI card 1, and the virtual machine 1 of the physical server 1 includes a bonding device. The SDI card 1 includes a physical network card 1, a physical network card 2, and a vswitch, and the physical network card 1 and the physical network card 2 are both directly connected to the bonding device through their own VFs, so the bonding device records the binding relationship between the two physical network cards and the virtual machine 1, and the bonding device can be presented to the virtual machine 1 as a virtual network card 1 corresponding to the physical network card 1 and a virtual network card 2 corresponding to the physical network card 2, so the inside of the virtual machine 1 (for example, the application deployed in the virtual machine 1, etc.) can see the two virtual network cards, and it is determined that it can communicate with the outside through the two virtual network cards.

[0070] (2) The server system includes a physical server and a plurality of heterogeneous cards. A cloud instance may be created in the physical server, and a first virtualized device is provided in the cloud instance. Each of the plurality of heterogeneous cards includes a network card and a second virtualized device, that is, the plurality of heterogeneous cards, the plurality of network cards, and the plurality of second virtualized devices are in one-to-one correspondence.

[0071] For example, Figure 6 As shown ( Figure 6Another structural diagram of the server system provided in the embodiment of the present application), the server system 1 may include a physical server 1, an SDI card 1 and an SDI card 2, and the virtual machine 1 of the physical server 1 includes a bonding device. SDI card 1 includes a physical network card 1 and a vswitch 1, and SDI card 2 may include a physical network card 2 and a vswitch. Both the physical network card 1 and the physical network card 2 are directly connected to the bonding device through their own VFs, so the bonding device records the binding relationship between the two physical network cards and the virtual machine 1, and the bonding device can be presented to the virtual machine 1 as a virtual network card 1 corresponding to the physical network card 1 and a virtual network card 2 corresponding to the physical network card 2, so the inside of the virtual machine 1 (for example, the application deployed in the virtual machine 1, etc.) can see the two virtual network cards, and it is determined that it can communicate with the outside through the two virtual network cards.

[0072] More specifically, the binding relationship between the multiple network cards recorded by the first virtual device and the cloud instance can be presented as a mapping table, which can include identifiers of the multiple network cards, indicating that the multiple network cards with these identifiers can be used exclusively by the cloud instance.

[0073] Still as in the above example, the bonding device records the binding relationship between physical network card 1 and physical network card 2 and the virtual machine. The binding relationship can be a mapping table, which includes the identity document (ID) of physical network card 1 and the ID of physical network card 2, wherein the ID of physical network card 1 is 1 and the ID of physical network card 2 is 2. These two IDs indicate that physical network card 1 and physical network card 2 are exclusively used by the virtual machine.

[0074] 402. The first virtualization device selects a first network card from multiple network cards based on a binding relationship, and implements communication between the cloud instance and the first network card, wherein the first network card is any one of the multiple network cards.

[0075] When the cloud instance as a source needs to send messages to a destination (for example, a cloud instance in a physical server of another server system), the cloud instance can first send these messages to the first virtualization device. Then, the first virtualization device can use the binding relationship between the cloud instance and the multiple network cards to select the first network card (that is, one of the multiple network cards) from the multiple network cards, and send these messages to the first network card, so that the first network card sends these messages to the destination. It can be seen that the first virtualization device can realize the communication between the cloud instance and the first network card based on the binding relationship, and then realize the communication between the first network card and the destination, which is equivalent to realizing the communication between the cloud instance and the destination.

[0076] Specifically, the first virtualization device can complete the communication between the cloud instance and the first network card in the following manner:

[0077] When the cloud instance needs to send messages to the destination as the source, the cloud instance can first send these messages to the first virtualization device. Then, the first virtualization device can perform a series of processing on the information carried by these messages to obtain the first identifier (for example, perform a hash calculation on the five-tuple (including the source and destination information) carried by these messages, and then perform a modulo calculation on the result of the hash calculation, and the remainder obtained is the first identifier). Since the first virtualization device stores a mapping table that contains the identifiers of these multiple network cards, the first virtualization device can traverse the identifiers of these multiple network cards to determine which network card identifier matches the first identifier, and determine the network card as the first network card. Then, the first virtualization device can send these messages to the first network card, so that the first network card sends these messages to the destination.

[0078] Still like the above example, when virtual machine 1 (application) needs to send messages to virtual machine 2 (application) in server system 2, virtual machine 1 can first send these messages to the bonding device. Since the bonding device stores a mapping table, which includes the ID of physical network card 1 and the ID of physical network card 2, the bonding device can perform hash calculation on the five-tuple of these messages, and then perform modulus calculation on the obtained hash value. Assuming the obtained modulus is 1, the bonding device can send these messages to physical network card 1 (i.e., the first network card mentioned above), so that physical network card 1 sends these messages to the physical switch, and then the physical switch sends these messages to virtual machine 2 of server system 2.

[0079] More specifically, the second virtualized device in the heterogeneous card may also perform the following operations:

[0080] (1) When the server system includes only one physical server and one heterogeneous card, the second virtualization device in the heterogeneous card can monitor in real time whether multiple network cards in the heterogeneous card fail. If the second virtualization device detects that a second network card (one of the multiple network cards) among the multiple network cards is in a failed state, the second virtualization device can control the second network card to disconnect from the first virtualization device in the cloud instance in the physical server, and notify the first virtualization device to release the binding relationship between the cloud instance and the second network card. For example, the second virtualization device can notify the first virtualization device to clear the second identifier of the second network card from the mapping table, that is, the second network card can no longer be used by the cloud instance.

[0081] Still like Figure 5In the example shown, the vswitch can detect physical network card 1 and physical network card 2 in real time. If it is detected that physical network card 2 (i.e., the second network card mentioned above) fails, the vswitch can disconnect the connection between physical network card 2 and the bonding device, and notify the bonding device to clear the identifier of physical network card 2 from its mapping table. At this time, the bonding device only appears as virtual network card 1 to virtual machine 1, indicating that virtual machine 1 can only use virtual network card 1 for communication.

[0082] (2) When the server system includes only one physical server and multiple heterogeneous cards, the second virtualization device in each heterogeneous card can monitor in real time whether the network card in each heterogeneous card fails. If the second virtualization device of a heterogeneous card detects that the second network card of the heterogeneous card (i.e., the network card included in the heterogeneous card itself) is in a faulty state, the second virtualization device of the heterogeneous card can control the second network card to disconnect from the first virtualization device in the cloud instance in the physical server, and notify the first virtualization device to release the binding relationship between the cloud instance and the second network card. For example, the second virtualization device of the heterogeneous card can notify the first virtualization device to clear the second identifier of the second network card from the mapping table, i.e., the second network card can no longer be used by the cloud instance.

[0083] Still like Figure 6 In the example shown, vswitch1 can detect physical network card 1 in real time, and vswitch2 can detect physical network card 2 in real time. If vswitch2 detects that physical network card 2 (i.e., the second network card mentioned above) has a fault, vswitch2 can disconnect the connection between physical network card 2 and the bonding device, and notify the bonding device to clear the identifier of physical network card 2 from its mapping table. At this time, the bonding device only appears as virtual network card 1 to virtual machine 1, indicating that virtual machine 1 can only use virtual network card 1 for communication.

[0084] More specifically, the second virtualized device in the heterogeneous card may also perform the following operations:

[0085] (1) When the server system includes only one physical server and one heterogeneous card, the second virtualization device in the heterogeneous card can control the sum of the message sending speeds of multiple network cards in the heterogeneous card to be less than or equal to a preset message sending speed threshold (the threshold can be sent to the second virtualization device by the tenant through the cloud management platform, or by the cloud management platform itself, which is not limited here).

[0086] Furthermore, among the multiple network cards, each network card includes a first token bucket (small token bucket), and the second virtualization device includes a second token bucket (large token bucket). For any network card among the multiple network cards, when the network card sends a message to the outside, a token of its first token bucket will be consumed. Therefore, the number of tokens owned by the first token bucket of the network card in a unit time is the number of messages that the network card can send in a unit time, that is, the message sending speed of the network card.

[0087] Since the network card will consume the tokens in its first token bucket when sending messages, the network card will periodically (for example, the length of each cycle is equal to the length of the aforementioned unit time) obtain tokens from the second token bucket of the second virtualization device to add to the first token bucket of the network card, and the same is true for the remaining network cards, so that these multiple network cards can maintain the ability to send messages. It can be seen that the tokens in the second token bucket will also be consumed by these multiple network cards, so the second virtualization device also needs to periodically (for example, the length of each cycle is equal to the length of the aforementioned unit time) add tokens to the second token bucket.

[0088] Based on this, the second virtualization device can control the sum of multiple first token replenishment speeds to be less than or equal to the second token replenishment speed. These multiple first token replenishment speeds correspond to these multiple network cards one by one. A certain first token replenishment speed among these multiple first token replenishment speeds is the number of tokens that migrate from the second token bucket to the first token bucket of a certain network card among these multiple network cards within a unit time. The second token replenishment speed (i.e., the aforementioned message sending speed threshold) is the number of tokens added to the second token bucket by the second virtualization device within a unit time. Then, since the number of tokens added to the second token bucket by the second virtualization device within a unit time is limited, the number of tokens added to the first token bucket of these multiple network cards within a unit time is also limited. In this way, the number of tokens owned by the first token buckets of these multiple network cards within a unit time is also limited, which also limits the message sending speed of these multiple network cards.

[0089] It is worth noting that for any one of these multiple network cards, the first token replenishment speed of the network card is usually less than the number of free token slots in the first token bucket of the network card (the number of free token slots in the first token bucket is equal to the total number of token slots in the first token bucket minus the number of non-free token slots, the total number of token slots is the total number of tokens that the first token bucket can have, the number of non-free token slots is the number of unconsumed tokens in the first token bucket, and the number of free token slots is the number of consumed tokens in the first token bucket).

[0090] Still as in the above example, Figure 7 As shown ( Figure 7Another structural diagram of the server system provided in the embodiment of the present application) is shown in Figure 1. Physical network card 1 is provided with a small token bucket 1, physical network card 2 is provided with a small token bucket 2, and a vswitch is provided with a large token bucket. Since physical network card 1 and physical network card 2 often send messages to the outside, the tokens in small token bucket 1 and small token bucket 2 are often consumed, so physical network card 1 and physical network card 2 will periodically take tokens from the large token bucket to replenish them in small token bucket 1 and small token bucket 2. Moreover, vswitch will also periodically replenish tokens to the large token bucket.

[0091] The number of tokens migrated from the large token bucket to the small token bucket 1 by physical network card 1 per unit time can be set as token replenishment speed 1 (the first token replenishment speed mentioned above), the number of tokens migrated from the large token bucket to the small token bucket 2 by physical network card 2 per unit time can be set as token replenishment speed 2 (the first token replenishment speed mentioned above), and the number of tokens added to the large token bucket by vswitch per unit time can be set as token replenishment speed 3 (the second token replenishment speed mentioned above). Therefore, vswitch can control the sum of token replenishment speed 1 and token replenishment speed 2 to be less than token replenishment speed 3, so as to control the number of tokens owned by small token bucket 1 and small token bucket 2 per unit time, which is equivalent to controlling the number of messages that can be sent by physical network card 1 and physical network card 2 per unit time, that is, the message sending speed of the two.

[0092] For example, since the token replenishment rate 3 is set to 100 per second (i.e., the vswitch replenishes 100 tokens to the large token bucket per second), and the sum of the token replenishment rate 1 and the token replenishment rate 2 must be less than or equal to 100 tokens per second (i.e., the number of tokens replenished by physical network card 1 and physical network card 2 to small token bucket 1 and small token bucket 2 per second is less than or equal to 100). Then, starting from the first second, the number of tokens in small token bucket 1 and small token bucket 2 will not be greater than 100. Assuming that the total number of token slots in small token bucket 1 and small token bucket 2 is 50, after the first second, after the two network cards replenish tokens from the large token bucket, small token bucket 1 will have 50 tokens and small token bucket 2 will have 50 tokens. That is to say, after physical network card 1 and physical network card 2 enter the second second, the number of messages that can be sent by both in the second second is 50, that is, the message sending speed of both is 50 per second.

[0093] In addition, suppose that physical network card 1 only sends 30 messages in the second second, that is, there are 20 free token slots in small token bucket 1, so after entering the third second, the token replenishment rate 1 of physical network card 1 will become 20 per second. Similarly, the token replenishment rate 2 of physical network card 2 is also the same.

[0094] (2) When the server system includes only one physical server and multiple heterogeneous cards, multiple second virtualization devices in the multiple heterogeneous cards can jointly control the sum of the message sending speeds of multiple network cards in the multiple heterogeneous cards to be less than or equal to a preset message sending speed threshold.

[0095] Furthermore, among the multiple network cards, each network card includes a first token bucket (small token bucket). Since the multiple second virtualized devices are directly connected to the shared memory, the shared memory may include a second token bucket (large token bucket). For any of the multiple network cards, when the network card sends a message to the outside, a token of its first token bucket will be consumed. Therefore, the number of tokens owned by the first token bucket of the network card per unit time is the number of messages that the network card can send per unit time, that is, the message sending speed of the network card.

[0096] Since the network card will consume the tokens in its first token bucket when sending messages, the network card (through the second virtualization device that manages the network card) will periodically (for example, the length of each cycle is equal to the length of the aforementioned unit time) obtain tokens from the second token bucket in the shared memory to add to the multiple first token buckets of the network card, and the same is true for the remaining network cards, so that these multiple network cards can maintain the ability to send messages. It can be seen that the tokens in the second token bucket will also be consumed by these multiple network cards, so for these multiple second virtualization devices, a second virtualization device can be appointed as the main device, and the remaining virtualization devices can be appointed as slave devices. The main device can manage the second token bucket, that is, the main device also needs to periodically (for example, the length of each cycle is equal to the length of the aforementioned unit time) add tokens to the second token bucket in the shared memory.

[0097] Based on this, the master device can control the sum of multiple first token replenishment speeds to be less than or equal to the second token replenishment speed. These multiple first token replenishment speeds correspond to these multiple network cards one by one. A certain first token replenishment speed among these multiple first token replenishment speeds is the number of tokens that migrate from the second token bucket to the first token bucket of this network card in a unit time by a certain network card among these multiple network cards. The second token replenishment speed (i.e. the aforementioned message sending speed threshold) is the number of tokens that the master device adds to the second token bucket in a unit time. Then, since the number of tokens that the master device adds to the second token bucket in a unit time is limited, the number of tokens that these multiple network cards replenish to their first token buckets in a unit time is also limited. In this way, the number of tokens that the first token buckets of these multiple network cards have in a unit time is also limited, which also limits the message sending speed of these multiple network cards.

[0098] It is worth noting that for any one of these multiple network cards, the first token replenishment speed of the network card is usually less than the number of free token slots in the first token bucket of the network card (the number of free token slots in the first token bucket is equal to the total number of token slots in the first token bucket minus the number of non-free token slots, the total number of token slots is the total number of tokens that the first token bucket can have, the number of non-free token slots is the number of unconsumed tokens in the first token bucket, and the number of free token slots is the number of consumed tokens in the first token bucket).

[0099] Still as in the above example, Figure 8 As shown ( Figure 8 Another structural diagram of the server system provided in the embodiment of the present application), the physical network card 1 is provided with a small token bucket 1, the physical network card 2 is provided with a small token bucket 2, and the shared memory directly connected to vswitch1 and vswitch2 is provided with a large token bucket. Since the physical network card 1 and the physical network card 2 often send messages to the outside, the tokens in the small token bucket 1 and the small token bucket 2 are often consumed, so the physical network card 1 and the physical network card 2 will periodically take tokens from the large token bucket to replenish the small token bucket 1 and the small token bucket 2. Moreover, vswitch1 is the main device and vswitch2 is the slave device, so vswitch1 can periodically replenish tokens to the large token bucket.

[0100] The number of tokens migrated from the large token bucket to the small token bucket 1 by physical network card 1 (through vswitch1) per unit time can be set as token replenishment speed 1 (the first token replenishment speed mentioned above), the number of tokens migrated from the large token bucket to the small token bucket 2 by physical network card 2 (through vswitch2) per unit time can be set as token replenishment speed 2 (the first token replenishment speed mentioned above), and the number of tokens added to the large token bucket by vswitch1 per unit time can be set as token replenishment speed 3 (the second token replenishment speed mentioned above). Therefore, vswitch1 can control the sum of token replenishment speed 1 and token replenishment speed 2 to be less than token replenishment speed 3, so as to control the number of tokens owned by small token bucket 1 and small token bucket 2 per unit time, which is equivalent to controlling the number of messages that can be sent by physical network card 1 and physical network card 2 per unit time, that is, the message sending speed of the two.

[0101] For example, since the token replenishment rate 3 is set to 100 per second (i.e. vswitch1 replenishes 100 tokens per second to the large token bucket), and the sum of the token replenishment rate 1 and the token replenishment rate 2 must be less than or equal to 100 tokens per second (i.e. the number of tokens replenished by physical network card 1 and physical network card 2 to small token bucket 1 and small token bucket 2 per second is less than or equal to 100). Then, starting from the first second, the number of tokens in small token bucket 1 and small token bucket 2 will not be greater than 100. Assuming that the total number of token slots in small token bucket 1 and small token bucket 2 is 50, after the first second, after the two network cards replenish tokens from the large token bucket, small token bucket 1 will have 50 tokens and small token bucket 2 will have 50 tokens. That is to say, after physical network card 1 and physical network card 2 enter the second second, the number of messages that can be sent by both in the second second is 50, that is, the message sending speed of both is 50 per second.

[0102] In addition, suppose that physical network card 1 only sends 30 messages in the second second, that is, there are 20 free token slots in small token bucket 1, so after entering the third second, the token replenishment rate 1 of physical network card 1 will become 20 per second. Similarly, the token replenishment rate 2 of physical network card 2 is also the same.

[0103] More specifically, in the server system, the multiple network cards may share a physical address or use different physical addresses. Since the multiple network cards are usually connected to the same physical switch, when the physical switch needs to send a message from the cloud instance (source end) of the physical server of another server system to the cloud instance of the physical server (destination end) of the server system, if the multiple network cards share a physical address, the message header of the message usually includes the physical address and a five-tuple, so the physical switch can use the five-tuple to perform a hash calculation, and then perform a remainder calculation on the hash calculation. The remainder obtained is the identifier of a network card among the multiple network cards, so the physical switch can send the message to the network card, so that the network card sends the message to the cloud instance of the physical server of the server system. If these multiple network cards use different physical addresses respectively, the message header of the message usually includes the physical address of one of the multiple network cards and a quintuple. Therefore, the physical switch can send the message to the network card based on the physical address of the network card, so that the network card sends the message to the cloud instance of the physical server of the server system.

[0104] In an embodiment of the present application, a server system may include a physical server and a heterogeneous card, and multiple network cards in these heterogeneous cards are directly connected to the first virtualized device in the cloud instance of the physical server. Since the first virtualized device records the binding relationship between the cloud instance and the multiple network cards, after the first virtualized device receives the message to be forwarded to the destination sent from the cloud instance, the first virtualized device can use the binding relationship between the multiple network cards and the cloud instance to select the first network card from the multiple network cards, and send these messages to the first network card, so that the first network card sends these messages to the destination. It can be seen that in the server system, the heterogeneous card connected to the physical server includes multiple network cards, and these multiple network cards are bound to the cloud instance of the physical server (through the first virtualized device in the cloud instance), which is equivalent to the cloud instance using these multiple network cards to communicate with the outside world. Since the overall performance of these multiple network cards is strong, that is, the overall bandwidth provided by these multiple network cards is large, the bandwidth that can be used by the cloud instance can be increased, thereby improving the quality of service that the cloud instance can provide to tenants.

[0105] Furthermore, in the server system, the heterogeneous card connected to the physical server includes multiple network cards, and these multiple network cards can all serve as paths for the cloud instance of the physical server to communicate with the outside world. Therefore, when a network card among these multiple network cards fails, the cloud instance (under the operation of the second virtualization device of the heterogeneous card) can communicate with the outside world through the remaining network cards, thereby maintaining the cloud instance to continue to provide services to tenants, thereby ensuring the reliability and stability of the services provided by the cloud instance to tenants.

[0106] See also Fig. 9 , Fig. 9 A schematic diagram of a computing device provided in an embodiment of the present application. Fig. 9 As shown, the computing device 900 (which can be used to present the aforementioned server system) includes: a processor 901, a memory 902, a communication interface 903 and a bus 904. The processor 901, the memory 902 and the communication interface 903 are coupled via a bus (not marked in the figure). The memory 902 stores instructions. When the execution instructions in the memory 902 are executed, the computing device 900 executes the method executed by the server system in the above method embodiment.

[0107] The computing device 900 may be one or more integrated circuits configured to implement the above method, such as one or more application specific integrated circuits (ASIC), or one or more microprocessors (digital signal processors, DSP), or one or more field programmable gate arrays (FPGA), or a combination of at least two of these integrated circuit forms. For another example, when a unit in the device can be implemented in the form of a processing element scheduler, the processing element may be a general-purpose processor, such as a central processing unit (CPU) or other processor that can call a program. For another example, these units may be integrated together and implemented in the form of a system-on-a-chip (SOC).

[0108] The processor 901 may be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSP), application specific integrated circuits (ASIC), field programmable gate arrays (FPGA) or other programmable logic devices, transistor logic devices, hardware components or any combination thereof. A general-purpose processor may be a microprocessor or any conventional processor.

[0109] The memory 902 may be a volatile memory or a nonvolatile memory, or may include both volatile and nonvolatile memories. Among them, the nonvolatile memory may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory may be a random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of RAM are available, such as static RAM (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM), and direct rambus RAM (DR RAM).

[0110] The memory 902 stores executable program codes, and the processor 901 executes the executable program codes to respectively implement the functions of the first virtualization device and the second virtualization device and other modules, thereby implementing the above-mentioned communication method based on the server system. That is, the memory 902 stores instructions for executing the above-mentioned communication method based on the server system.

[0111] The communication interface 903 uses a transceiver module such as, but not limited to, a network interface card or a transceiver to implement communication between the computing device 900 and other devices or a communication network.

[0112] In addition to the data bus, the bus 904 may also include a power bus, a control bus, a status signal bus, etc. The bus may be a peripheral component interconnect express (PCIe) bus, or an extended industry standard architecture (EISA) bus, a unified bus (Ubus or UB), a compute express link (CXL), a cache coherent interconnect for accelerators (CCIX), etc. The bus may be divided into an address bus, a data bus, a control bus, etc.

[0113] See also Fig.10 , Fig.10 A schematic diagram of the structure of a computing device cluster provided in an embodiment of the present application. Fig.10 As shown, the computing device cluster 1000 includes at least one computing device 900 .

[0114] like Fig.10 As shown, the computing device cluster 1000 includes at least one computing device 900. The memory 902 in one or more computing devices 900 in the computing device cluster 1000 may store the same instructions for executing the above-mentioned communication method based on the server system.

[0115] In some possible implementations, the memory 902 of one or more computing devices 900 in the computing device cluster 1000 may also respectively store some instructions for executing the above-mentioned communication method based on the server system. In other words, the combination of one or more computing devices 900 can jointly execute the above-mentioned communication method based on the server system.

[0116] It should be noted that the memory 902 in different computing devices 900 in the computing device cluster 1000 can store different instructions, which are respectively used to execute part of the functions of the above-mentioned cloud management platform. That is, the instructions stored in the memory 902 in different computing devices 900 can implement the functions of one or more modules in the first virtualization device and the second virtualization device.

[0117] In some possible implementations, one or more computing devices 900 in the computing device cluster 1000 may be connected via a network, which may be a wide area network or a local area network.

[0118] See also Fig.11 , Fig.11 A schematic diagram of computer devices in a computer cluster provided in an embodiment of the present application being connected via a network. Fig.11 As shown, two computing devices 900A and 900B are connected via a network. Specifically, they are connected to the network via a communication interface in each computing device.

[0119] In a possible implementation, the memory in the computing device 900A stores instructions for executing the functions of the first virtualization device and the like modules. Meanwhile, the memory in the computing device 900B stores instructions for executing the functions of the second virtualization device and the like modules.

[0120] It should be understood that Fig.11 The functions of the computing device 900A shown in FIG. 1 may also be completed by multiple computing devices. Similarly, the functions of the computing device 900B may also be completed by multiple computing devices.

[0121] The embodiment of the present application also relates to a computer storage medium, in which a program for signal processing is stored. When the program is run on a computer, the computer executes the following steps: Figure 4 The steps performed by the server system in the illustrated embodiment.

[0122] The present application also relates to a computer program product, which stores instructions, which, when executed by a computer, enable the computer to execute the following Figure 4 The steps performed by the server system in the illustrated embodiment.

[0123] Those skilled in the art can clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.

[0124] In the several embodiments provided in the present application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are only schematic. For example, the division of the units is only a logical function division. There may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interfaces, devices or units, which can be electrical, mechanical or other forms.

[0125] The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.

[0126] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit. The above-mentioned integrated unit may be implemented in the form of hardware or in the form of software functional units.

[0127] If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application is essentially or the part that contributes to the prior art or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including a number of instructions to enable a computer device (which can be a personal computer, a server, or a network device, etc.) to perform all or part of the steps of the method described in each embodiment of the present application. The aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM, read-only memory), random access memory (RAM, random access memory), disk or optical disk and other media that can store program code.

Claims

1. A server system, characterized in that: The server system includes a physical server and a heterogeneous card, wherein the physical server is connected to the heterogeneous card; The plurality of network cards in the heterogeneous card are directly connected to the first virtualized device in the cloud instance of the physical server; The first virtualization device is used to record the binding relationship between the cloud instance and the multiple network cards; The first virtualization device is further used to select a first network card from the multiple network cards based on the binding relationship, and to implement communication between the cloud instance and the first network card, wherein the first network card is any one of the multiple network cards.

2. The server system according to claim 1, characterized in that: The binding relationship includes identifiers of the multiple network cards, and the first virtualization device is used to: Receiving a message sent by the cloud instance to be forwarded to a destination; Determine a first identifier based on the information carried by the message, and select a first network card having the first identifier from the multiple network cards; The message is sent to the first network card, and the first network card is used to send the message to the destination.

3. The server system according to claim 1 or 2, characterized in that: The second virtualization device in the heterogeneous card is used for: After detecting that a second network card among the multiple network cards is in a faulty state, controlling the second network card to be disconnected from the first virtualization device, wherein the second network card is any one of the multiple network cards; Notify the first virtualization device to release the binding relationship between the cloud instance and the second network card.

4. The server system according to claim 3, characterized in that: The second virtualization device is further used to control the sum of the message sending speeds of the multiple network cards to be less than or equal to a preset message sending speed threshold.

5. The server system according to claim 4, characterized in that: The multiple network cards manage multiple first token buckets, the second virtualization device manages a second token bucket, and the number of tokens owned by the multiple first token buckets per unit time is equal to the number of messages that can be sent by the multiple network cards per unit time; The second virtualization device is used to control the sum of multiple first token replenishment speeds to be less than or equal to the second token replenishment speed, the multiple first token replenishment speeds are the number of tokens migrated from the second token bucket to the multiple first token buckets by the multiple network cards within unit time, and the second token replenishment speed is the number of tokens added to the second token bucket by the second virtualization device within unit time, wherein the second token replenishment speed is used as the message sending speed threshold.

6. The server system according to any one of claims 3 to 5, characterized in that: The multiple network cards and the second virtualization device are encapsulated in the heterogeneous card.

7. The server system according to any one of claims 3 to 5, characterized in that: The number of the heterogeneous cards and the second virtualization devices are both multiple, the multiple network cards correspond one-to-one to the multiple second virtualization devices, and the multiple network cards correspond one-to-one to the multiple heterogeneous cards, wherein any one of the multiple network cards and one second virtualization device corresponding to the network card among the multiple second virtualization devices are sealed in one heterogeneous card corresponding to the network card among the multiple heterogeneous cards.

8. The server system according to claim 7, characterized in that: The multiple second virtualization devices are directly connected to the shared memory corresponding to the multiple second virtualization devices, and the shared memory is used to support the multiple second virtualization devices to control the sum of the message sending speeds of the multiple network cards to be less than or equal to a preset message sending speed threshold.

9. The server system according to any one of claims 1 to 8, characterized in that: The cloud instance is any one of the following: a virtual machine, a container, and a micro virtual machine.

10. A communication method based on a server system, characterized in that: The server system includes a physical server and a heterogeneous card, the physical server is connected to the heterogeneous card, and multiple network cards in the heterogeneous card are directly connected to a first virtualized device in a cloud instance of the physical server; the method includes: The first virtualization device records the binding relationship between the cloud instance and the multiple network cards; The first virtualization device selects a first network card from the multiple network cards based on the binding relationship, and implements communication between the cloud instance and the first network card, wherein the first network card is any one of the multiple network cards.

11. The method according to claim 10, characterized in that The binding relationship includes identifiers of the multiple network cards, the first virtualization device selects a first network card from the multiple network cards based on the binding relationship, and implements communication between the cloud instance and the first network card, including: The first virtualization device receives a message sent by the cloud instance to be forwarded to a destination end; The first virtualization device determines a first identifier based on information carried in the message, and selects a first network card having the first identifier from the multiple network cards; The first virtualization device sends the message to the first network card, and the first network card is used to send the message to the destination end.

12. The method according to claim 10 or 11, characterized in that: The method further comprises: After detecting that a second network card among the multiple network cards is in a faulty state, the second virtualization device in the heterogeneous card controls the second network card to be disconnected from the first virtualization device, wherein the second network card is any one of the multiple network cards; The second virtualization device notifies the first virtualization device to release the binding relationship between the cloud instance and the second network card.

13. The method according to claim 12, characterized in that The method further comprises: The second virtualization device controls the sum of the message sending speeds of the multiple network cards to be less than or equal to a preset message sending speed threshold.

14. The method according to claim 13, characterized in that The multiple network cards manage multiple first token buckets, the second virtualization device manages a second token bucket, and the number of tokens owned by the multiple first token buckets per unit time is equal to the number of messages that can be sent by the multiple network cards per unit time; The second virtualization device controls the sum of the message sending speeds of the multiple network cards to be less than or equal to a preset message sending speed threshold, including: The second virtualization device controls the sum of multiple first token replenishment speeds to be less than or equal to the second token replenishment speed, the multiple first token replenishment speeds are the number of tokens migrated from the second token bucket to the multiple first token buckets by the multiple network cards within unit time, and the second token replenishment speed is the number of tokens added to the second token bucket by the second virtualization device within unit time, wherein the second token replenishment speed is used as the message sending speed threshold.

15. The method according to any one of claims 12 to 14, characterized in that: The multiple network cards and the second virtualization device are encapsulated in the heterogeneous card.

16. The method according to any one of claims 12 to 14, characterized in that: The number of the heterogeneous cards and the second virtualization devices are both multiple, the multiple network cards correspond one-to-one to the multiple second virtualization devices, and the multiple network cards correspond one-to-one to the multiple heterogeneous cards, wherein any one of the multiple network cards and one second virtualization device corresponding to the network card among the multiple second virtualization devices are sealed in one heterogeneous card corresponding to the network card among the multiple heterogeneous cards.

17. The method according to claim 16, characterized in that The multiple second virtualization devices are directly connected to the shared memory corresponding to the multiple second virtualization devices, and the shared memory is used to support the multiple second virtualization devices to control the sum of the message sending speeds of the multiple network cards to be less than or equal to a preset message sending speed threshold.

18. The method according to any one of claims 10 to 17, characterized in that: The cloud instance is any one of the following: a virtual machine, a container, and a micro virtual machine.

19. A computing device cluster, characterized in that: The computing device cluster includes at least one computing device, each computing device including a processor and a memory: The memory is used to store instructions; The processor is configured to cause the computing device cluster to execute the method according to any one of claims 10 to 18 according to the instructions.

20. A computer storage medium, characterized in that The computer storage medium stores one or more instructions, which, when executed by one or more computers, cause the one or more computers to implement the method of any one of claims 10 to 18.

21. A computer program product, characterized in that The computer program product stores instructions, which, when executed by a computer, cause the computer to implement the method according to any one of claims 10 to 18.

Citation Information

Cited By

  • Cloud desktop virtual network equipment and network card straight-through on-demand hybrid forwarding method

    CN120750833A