IP Library Granted Patent US 10,693,801
Granted Patent B2
US 10,693,801 · App. 15/900,396 · Granted Jun 23, 2020

Packet drop reduction in virtual machine migration

Inventor: Michael Tsirkin (Lexington, MA)
Assignee: Red Hat, Inc.
H04L47/627G06F9/45558H04L41/5009H04L43/0882H04L47/6255H04L49/901G06F2009/4557G06F2009/45595
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,693,801
App. No.
15/900,396
Granted
Jun 23, 2020
Kind
B2
Abstract

Implementations of the disclosure provide for queuing portions of the network traffic directed to a migrated guest for both receiving and transmitting at a source of the migration. In one implementation, a method is provided. The method comprises receiving, by a processing device via a network interface card (NIC), a first data packet. The first data packet includes a network address associated with a virtual machine (VM) that migrates from a first host to a second host. The first data packet is queued in a memory buffer at the first host in view of the network address. An indication that the network address of the VM is associated with the second host is received. Thereupon, the method causes the NIC to transmit the first data packet from the memory buffer over a network associated with the VM at the second host.

Claims (42)

1. A method comprising:

receiving, by a processing device, a first data packet directed to a virtual machine (VM) that has migrated from a first host to a second host, wherein the first data packet comprises a first network address of the VM, wherein the first network address of the VM is associated with the first host;

queuing, by the processing device, the first data packet in a memory buffer at the first host, wherein the memory buffer is to store one or more incoming data packets directed to the VM;

receiving, by the processing device via a first network interface card (NIC) of the first host, an indication of a second network address of the VM, wherein the second network address of the VM is associated with the second host; and

causing the first NIC of the first host to transmit the first data packet from the memory buffer at the first host to a second NIC of the second host, wherein the first data packet is transmitted over a network associated with the VM at the second host.

2. The method of claim 1 , further comprising forwarding data packets of the memory buffer to the first NIC.

3. The method of claim 1 , the queuing comprises determining that the first data packet specifies the first network address of the VM as a destination address.

4. The method of claim 1 , wherein receiving the indication comprises receiving a second data packet specifying the second network address of the VM as a source address.

5. The method of claim 1 , wherein the memory buffer comprises a first-in first-out (FIFO) buffer stored in memory of the first host.

6. The method of claim 1 , further comprising:

determining whether a bandwidth level of the network satisfies a threshold level; and

adjusting an amount of data packets to queue at a data structure of the memory buffer in view of the determination.

7. The method of claim 6 , further comprising:

responsive to detecting that the bandwidth level does not satisfy the threshold level, increasing an amount of space for queuing data packets at the data structure.

8. An apparatus comprising:

a memory to store information for data packets; and

a processing device, operatively coupled to the memory, to:

receive a first data packet directed to a virtual machine (VM) that has migrated from a first host to a second host, wherein the first data packet comprises a first network address of the VM, wherein the first network address of the VM is associated with the first host;

queue the first data packet in a memory buffer, wherein the memory buffer is to store one or more incoming data packets directed to the VM;

receive, via a first network interface card (NIC) of the first host, an indication of a second network address of the VM, wherein the second network address of the VM is associated with the second host; and

cause the first NIC of the first host to transmit the first data packet from the memory buffer at the first host to a second NIC of the second host, wherein the first data packet is transmitted over a network associated with the VM at the second host.

9. The apparatus of claim 8 , wherein the processing device is further to forward data packets of the memory buffer to the first NIC.

10. The apparatus of claim 8 , wherein to queue, the processing device is further to determine that the first data packet specifies the first network address of the VM as a destination address.

11. The apparatus of claim 8 , wherein to receive the indication, the processing device is further to receive a second data packet specifying the second network address of the VM as a source address.

12. The apparatus of claim 8 , wherein the memory buffer comprises a first-in first-out (FIFO) buffer stored in memory of the first host.

13. The apparatus of claim 8 , wherein the processing device is further to:

determine whether a bandwidth level of the network satisfies a threshold level; and

adjust an amount of data packets to queue at a data structure of the memory buffer in view of the determination.

14. The apparatus of claim 13 , wherein the processing device is further to:

responsive to detecting that the bandwidth level does not satisfy the threshold level, increase an amount of space for queuing data packets at the data structure.

15. A non-transitory computer-readable medium comprising instructions that, when executed by a processing device, cause the processing device to:

receive, by the processing device, a first data packet directed to a virtual machine (VM) that has migrated from a first host to a second host, wherein the first data packet comprises a first network address of the VM, wherein the first network address of the VM is associated with the first host;

queue the first data packet in a memory buffer at the first host, wherein the memory buffer is to store one or more incoming data packets directed to the VM;

receive, via a first network interface card (NIC) of the first host, an indication of a second network address of the VM, wherein the second network address of the VM is associated with the second host; and

cause the first NIC of the first host to transmit the first data packet from the memory buffer at the first host to a second NIC of the second host, wherein the first data packet is transmitted over a network associated with the VM at the second host.

16. The non-transitory computer-readable medium of claim 15 , wherein the processing device is further to forward data packets of the memory buffer to the first NIC.

17. The non-transitory computer-readable medium of claim 15 , wherein to queue, the processing device is further to determine that the first data packet specifies the first network address of the VM as a destination address.

18. The non-transitory computer-readable medium of claim 15 , wherein to receive the indication, the processing device is further to receive a second data packet specifying the second network address of the VM as a source address.

19. The non-transitory computer-readable medium of claim 15 , wherein the memory buffer comprises a first-in first-out (FIFO) buffer stored in memory of the first host.

20. The non-transitory computer-readable medium of claim 15 , wherein the processing device is further to:

determine whether a bandwidth level of the network satisfies a threshold level; and

adjust an amount of data packets to queue at a data structure in view of the determination.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 8, 2018
From: TSIRKIN, MICHAEL
To: RED HAT, INC.
Reel/Frame 045743/0510 →
Continuity (1)
Related Publication 20190260685A1 · Aug 22, 2019
Cited By (2)
US 12,244,500 US 12,301,455