IP Library Granted Patent US 10,033,637
Granted Patent B2
US 10,033,637 · App. 14/683,131 · Granted Jul 24, 2018

Method and apparatus for switching data between virtual machines, and communications system

Inventors: Chuanyu Qin (Hangzhou, CN); Yunsong Lu (Santa Clara, CA)
Assignee: HUAWEI TECHNOLOGIES CO., LTD.
H04L45/745H04L12/4625H04L49/70H04L45/586H04L45/74
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,033,637
App. No.
14/683,131
Granted
Jul 24, 2018
Kind
B2
Abstract

A method for switching data between virtual machines is provided, the method includes acquiring data that is inside a physical host and needs to be sent to a destination node; determining, according to the data, whether the destination node is a node inside the physical host or a node outside the physical host; and when the destination node is a node inside the physical host, determining a destination virtual network interface card (NIC) port, and sending the data to a corresponding destination virtual machine using a virtual NIC corresponding to the destination virtual NIC port; or when the destination node is a node outside the physical host, determining a physical NIC port, and sending the data outside the physical host using a physical NIC corresponding to the physical NIC port. A corresponding apparatus and system are also provided.

Claims (95)

1. A method for switching data between virtual machines comprising:

acquiring data that is inside a physical host and needs to be sent to a destination node, wherein a destination media access control (MAC) address of the destination node is carried in the data;

determining, by a switch in a kernel of the physical host, whether the destination node is internal to the physical host or external to the physical host based on a first mapping table, wherein the switch comprises the first mapping table, wherein the first mapping table comprises one or more entries, wherein each entry comprises a correspondence between a MAC address and a destination virtual network interface card (NIC) port;

determining a receiving destination virtual NIC port when the destination node is internal to the physical host;

sending the data to a corresponding destination virtual machine using a destination virtual NIC corresponding to the receiving destination virtual NIC port when the destination node is internal to the physical host;

determining a physical NIC port when the destination node is external to the physical host; and

sending the data outside the physical host using a physical NIC corresponding to the physical NIC port when the destination node is external to the physical host,

wherein determining the physical NIC port, and sending the data outside the physical host using the physical NIC corresponding to the physical NIC port comprises:

acquiring a sending virtual NIC port used to receive the data;

searching a second mapping table according to the sending virtual NIC port for a physical NIC port corresponding to the sending virtual NIC port, wherein the second mapping table comprises a correspondence between virtual NIC ports and physical NIC ports; and

sending the data outside the physical host using the physical NIC corresponding to the physical NIC port.

2. The method according to claim 1 , wherein determining whether the destination node is internal to the physical host or external to the physical host comprises:

determining whether the destination MAC address exists in the first mapping table;

determining that the destination node is internal to the physical host when the destination MAC address exists in the first mapping table; and

determining that the destination node is external to the physical host when the destination MAC address does not exist in the first mapping table.

3. The method according to claim 2 , wherein determining the receiving destination virtual NIC port, and sending the data to the corresponding destination virtual machine using the destination virtual NIC corresponding to the receiving destination virtual NIC port comprises:

searching, according to the destination MAC address, the first mapping table for a virtual NIC port corresponding to the destination MAC address, wherein the virtual NIC port corresponding to the destination MAC address is the receiving destination virtual NIC port; and

sending the data to the corresponding destination virtual machine using the destination virtual NIC corresponding to the receiving destination virtual NIC port.

4. The method according to claim 2 further comprising:

generating a new virtual NIC port when it is detected that a back-end virtual NIC is connected to the physical host;

adding, to the first mapping table, the new virtual NIC port corresponding to a designated MAC address of the back-end virtual NIC; and

deleting, from the first mapping table, the new virtual NIC port corresponding to the designated MAC address when the back-end virtual NIC is removed from the physical host.

5. The method according to claim 1 , wherein determining whether the destination node is internal to the physical host or external to the physical host comprises:

searching the first mapping table for a virtual NIC port corresponding to the destination MAC address;

determining that the destination node is internal to the physical host when the virtual NIC port corresponding to the destination MAC address is found; and

determining that the destination node is external to the physical host when the virtual NIC port corresponding to the destination MAC address is not found, wherein when the virtual NIC port corresponding to the MAC address is the receiving destination virtual NIC port when the virtual NIC port corresponding to the destination MAC address is found.

6. The method according to claim 1 further comprising:

receiving data from outside of the physical host using a physical NIC comprising a recipient MAC address of a receiving node;

determining, according to the recipient MAC address, a recipient destination virtual NIC port; and

sending, to a recipient destination virtual machine, the data from outside of the physical host using the recipient destination virtual NIC corresponding to the recipient destination virtual NIC port.

7. The method according to claim 6 , wherein determining the recipient destination virtual NIC port comprises searching the first mapping table for a virtual NIC port corresponding to the recipient MAC address, wherein the virtual NIC port corresponding to the recipient MAC address is the recipient destination virtual NIC port.

8. The method according to claim 7 , wherein after receiving the data from outside of the physical host using the physical NIC, the method further comprises discarding the data from outside of the physical host when the recipient MAC address is not found in the first mapping table.

9. A communications system comprising at least two physical hosts, wherein the at least two physical hosts comprise a first physical host and a second physical host, wherein the first physical host is configured to:

acquire data that is inside the physical host and needs to be sent to a destination node, wherein a destination media access control (MAC) address of the destination node is carried in the data;

determine, by a switch in a kernel of the first physical host, whether the destination node is internal to the physical host or external to the physical host based on a first mapping table, wherein the switch comprises the first mapping table, wherein the first mapping table comprises one or more entries, wherein each entry comprises a correspondence between a MAC address and a destination virtual network interface card (NIC) port;

determine a receiving destination virtual NIC port when the destination node is internal to the physical host;

send the data to a corresponding destination virtual machine using a destination virtual NIC corresponding to the receiving destination virtual NIC port when the destination node is internal to the physical host;

determine a physical NIC port when the destination node is external to the physical host; and

send the data to the second physical host using a physical NIC corresponding to the physical NIC port when the destination node is external to the physical host, wherein the second physical host is configured to receive the data sent by the first physical host,

wherein determining the physical NIC port, and sending the data to the second physical host comprises:

acquiring a sending virtual NIC port used to receive the data;

searching a second mapping table according to the sending virtual NIC port for a physical NIC port corresponding to the sending virtual NIC port, wherein the second mapping table comprises a correspondence between virtual NIC ports and physical NIC ports; and

sending the data outside the physical host using the physical NIC corresponding to the physical NIC port.

10. The communications system according to claim 9 , wherein the first physical host is further configured to:

determine whether the destination MAC address exists in the first mapping table;

determine that the destination node is internal to the first physical host when the destination MAC address exists in the first mapping table;

search the first mapping table for a virtual NIC port corresponding to the destination MAC address, wherein the virtual NIC port corresponding to the destination MAC address is the receiving destination virtual NIC port when the destination MAC address exists in the first mapping table; and

determine that the destination node is external to the first physical host when the destination MAC address does not exist in the first mapping table.

11. The communications system according to claim 9 , wherein the first physical host is configured to:

search, according to the destination MAC address, the first mapping table for a virtual NIC port corresponding to the destination MAC address;

determine that the destination node is internal to the first physical host when the virtual NIC port corresponding to the destination MAC address is found;

determine that the virtual NIC port corresponding to the destination MAC address is the receiving destination virtual NIC port; and

determine that the destination node is external to the first physical host when the destination MAC address is not found.

12. The communications system according to claim 9 , wherein the second physical host is further configured to send data to the first physical host, and wherein the first physical host is further configured to:

receive, using a physical NIC, the data sent by the second physical host, wherein the data comprises a recipient MAC address of a receiving node;

determine, according to the recipient MAC address, a recipient destination virtual NIC port; and

send, to a recipient destination virtual machine using the recipient destination virtual NIC corresponding to the destination recipient virtual NIC port, the data from the second physical host.

13. A physical host, comprising:

at least one virtual machine running in a user space of the physical host;

a switch running in a kernel of the physical host;

a processor; and

at least one physical network interface card (NIC) that is located at a hardware layer of the physical host, wherein the processor is configured to:

acquire data that is inside the physical host and needs to be sent to a destination node, wherein a destination media access control (MAC) address of the destination node is carried in the data;

determine, by the switch running in the kernel, whether the destination node is internal to the physical host or external to the physical host based on a first mapping table, wherein the switch comprises the first mapping table, wherein the first mapping table comprises one or more entries, wherein each entry comprises a correspondence between a MAC address and a destination virtual network interface card (NIC) port;

determine a receiving destination virtual NIC port when the destination node is internal to the physical host;

send the data to a corresponding destination virtual machine using a destination virtual NIC corresponding to the receiving destination virtual NIC port when the destination node is internal to the physical host;

determine a physical NIC port when the destination node is external to the physical host; and

send the data to a physical NIC corresponding to the physical NIC port, wherein the physical NIC is configured to receive the data sent by the processor and send the data outside the physical host when the destination node is external to the physical host,

wherein determining the physical NIC port, and sending the data outside the physical host using the physical NIC corresponding to the physical NIC port comprises:

acquiring a sending virtual NIC port used to receive the data;

searching a second mapping table according to the sending virtual NIC port for a physical NIC port corresponding to the sending virtual NIC port, wherein the second mapping table comprises a correspondence between virtual NIC ports and physical NIC ports; and

sending the data outside the physical host using the physical NIC corresponding to the physical NIC port.

14. The physical host according to claim 13 , wherein the processor is further configured to:

determine whether the destination MAC address exists in the first mapping table;

determine that the destination node is internal to the physical host when the destination MAC address exists in the first mapping table;

search, according to the destination MAC address, the first mapping table for a virtual NIC port corresponding to the destination MAC address, wherein the virtual NIC port corresponding to the destination MAC address is the receiving destination virtual NIC port when the destination MAC address exists in the first mapping table; and

determine that the destination node is external to the physical host when the destination MAC address does not exist in the first mapping table.

15. The physical host according to claim 13 , wherein the processor is configured to:

search, according to the destination MAC address, the first mapping table for a virtual NIC port corresponding to the destination MAC address; and

determine that the virtual NIC port corresponding to the destination MAC address is the receiving destination virtual NIC port when the virtual NIC port corresponding to the destination MAC address is found; and

determine that the destination node is external to the physical host when the destination MAC address is not found.

16. The physical host according to claim 14 , wherein the physical NIC is further configured to:

receive data from outside of the physical host comprising a recipient MAC address of a receiving node; and

send, to the processor, the data from outside of the physical host, and

wherein the processor is further configured to:

search, according to the recipient MAC address, the first mapping table for a recipient virtual NIC port corresponding to the recipient MAC address, wherein the recipient virtual NIC port corresponding to the recipient MAC address is a recipient destination virtual NIC port; and

send the data to a recipient destination virtual machine using the recipient destination virtual NIC corresponding to the recipient destination virtual NIC port.

17. The physical host according to claim 15 , wherein the physical NIC is further configured to:

receive data from outside of the physical host comprising a recipient MAC address of a receiving node; and

send, to the processor, the data from outside of the physical host, and

wherein the processor is further configured to:

search, according to the recipient MAC address, the first mapping table for a virtual NIC port corresponding to the recipient MAC address, wherein the virtual NIC port corresponding to the recipient MAC address is a recipient destination virtual NIC port; and

send the data to a recipient destination virtual machine using a recipient destination virtual NIC corresponding to the recipient destination virtual NIC port.

18. The physical host according to claim 16 , wherein the processor is further configured to discard the data from outside of the physical host when the recipient MAC address is not found in the first mapping table.

19. The physical host according to claim 17 , wherein the processor is further configured to discard the data from outside of the physical host when the recipient MAC address is not found in the first mapping table.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2015
From: QIN, CHUANYU; LU, YUNSONG
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 035389/0724 →
Continuity (2)
Continuation PCTCN2013073563 · Apr 1, 2013
Related Publication 20150215207A1 · Jul 30, 2015