IP Library Granted Patent US 8,989,187
Granted Patent B2
US 8,989,187 · App. 13/153,462 · Granted Mar 24, 2015

Method and system of scaling a cloud computing network

Inventors: Nakul Pratap Saraiya (Palo Alto, CA); Lawrence McGoff Matter (Millbrae, CA); Alok Rishi (Millbrae, CA)
Assignee: Coraid, Inc.
H04L69/16H04L61/2596H04L61/6022H04L69/22H04L69/324
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 8,989,187
App. No.
13/153,462
Granted
Mar 24, 2015
Kind
B2
Abstract

Disclosed are a system, method, and article of manufacture of scaling a cloud computing network are disclosed. A virtual switch receives a data packet from a virtual machine. The virtual machine and the virtual switch can be implemented on the same host device. The virtual switch can remove the virtual MAC address from the data packet. The virtual switch can then include a physical MAC address or a synthetic MAC address of a target host. A synthetic MAC address can be utilized for multicast traffic where want to associate a separate MAC with each tenant of the host. The data packet can be sent to a target host.

Claims (46)

1. A computer-implemented method comprising:

receiving, with a virtual switch associated with a first subnet of a local host device, a first data packet from a virtual machine within the first subnet managed by a hypervisor and implemented in the local host device, the virtual machine also being communicatively coupled to a second virtual switch associated with a second subnet and configured to transmit the first data packet to the virtual switch conditioned on determining a destination of the first data packet is not associated with the second subnet;

conditioned on determining the destination of the first data packet is outside of the first subnet, removing, with the virtual switch of the local host device, a virtual media access control (MAC) address of the virtual machine in the first data packet;

including, with the virtual switch of the local host device, a physical MAC address of the local host device in the first data packet in place of the virtual MAC address of the virtual machine; and

responsive to including the physical MAC address of the local host device in the first data packet in place of the virtual MAC address of the virtual machine, sending the first data packet to a remote host device in a computer network.

2. The method of claim 1 , further comprising:

receiving a second data packet from the remote host device, wherein the second data packet comprises the physical MAC address of the local host device and an internet protocol address of the virtual machine.

3. The method of claim 2 further comprising:

determining the internet protocol address in the second data packet; and

matching the internet protocol address with the virtual MAC address of the virtual machine.

4. The method of claim 3 further comprising:

replacing the physical MAC address of the local host device in the second data packet with the virtual MAC address of the virtual machine.

5. The method of claim 4 further comprising:

sending the second data packet to the virtual machine.

6. The method of claim 4 :

wherein the virtual switch comprises a network switch implemented on the local host device.

7. The method of claim 4 further comprising:

detecting, with the virtual switch, an address resolution protocol (ARP) broadcast data packet from the virtual machine; and

forwarding the ARP broadcast data packet to a remote server via a secure communication protocol.

8. The method of claim 7 further comprising:

generating a list of virtual machines implemented in the local host device, the list comprising of a set of corresponding MAC addresses and a set of corresponding internet protocol addresses of each of the virtual machines implemented in the local host device, and a set of corresponding MAC addresses of the local host device for each of the virtual machines implemented in the local host device; and

constructing a response to the ARP broadcast data packet using the list of virtual machines.

9. A non-transitory computer readable medium comprising computer executable instructions configured to perform the method of claim 1 .

10. A system comprising:

a physical switch communicatively coupled with a computer network;

a first host device comprising a computing device, wherein the first host device is communicatively coupled with the physical switch;

a first virtual machine, wherein the first virtual machine is implemented in the first host device, wherein the first virtual machine has a virtual media access control (MAC) address and an internet protocol address;

a virtual switch implemented in the first host device and communicatively coupled with the first virtual machine, wherein the virtual switch replaces the virtual MAC address of the first virtual machine with a physical MAC address of the first host device in a data packet upon egress of the data packet, and wherein upon ingress of another data packet with the internet protocol address of the first virtual machine and the physical MAC address of the first host device, the virtual switch replaces the physical MAC address of the first host device with the virtual MAC address of the first virtual machine and forwards the another data packet to the first virtual machine;

a control server configured to generate a list of all virtual machines in a subnet of which the first virtual machine is a member and construct a response to an address resolution protocol (ARP) broadcast using the list; and

a hypervisor implemented in the first host device, wherein the hypervisor manages implementation of the first virtual machine and the virtual switch in the first host device,

wherein the virtual switch is configured to refrain from communicating the ARP broadcast to any of the virtual machines implemented in the subnet conditioned on the ARP broadcast being transmitted by the first virtual machine of the same subnet.

11. The system of claim 10 further comprising:

a second virtual machine implemented in the first host device, and wherein if the data packet is addressed to the second virtual machine, the virtual switch does not replace the virtual MAC address of the first virtual machine with the physical MAC address of the first host device in the data packet.

12. The system of claim 10 , wherein the list comprises a set of virtual MAC addresses and a set of internet protocol addresses of each virtual machine in the list and a corresponding set of MAC addresses of each host for each virtual machine in the list; and

wherein the virtual switch communicates the ARP broadcast to the control server.

13. The system of claim 12 :

wherein the virtual switch does not forward the ARP broadcast to the control server if a source of the ARP broadcast is not a member of the subnet, and

wherein the virtual switch does not forward the ARP broadcast to a member virtual machine of the subnet if the source of the ARP broadcast is not a member of the subnet.

14. A computer implemented method comprising:

obtaining, at a source virtual switch, a data packet from a source virtual machine, wherein the source virtual switch and the source virtual machine are associated with a first subnet and reside on a source host, the data packet including a virtual media access control (MAC) address of a destination virtual machine residing on a destination host, the virtual machine also being communicatively coupled to another virtual switch associated with a second subnet and configured to transmit the data packet to the virtual switch conditioned on determining a destination of the data packet is not associated with the second subnet;

conditioned on determining the destination of the data packet is outside of the first subnet, rewriting, at the source virtual switch, the virtual MAC address of the destination virtual machine in the data packet to a physical MAC address of the destination host on which the destination virtual machine resides, wherein the data packet also comprises an internet protocol (IP) address of the destination virtual machine; and

providing the data packet to a physical switch on a computer network responsive to rewriting the virtual MAC address, wherein the virtual MAC address of the destination virtual machine is not available to the physical switch whereas the physical MAC address is available to the physical switch, for data packet forwarding.

15. The method of claim 14 further comprising:

obtaining the data packet at a destination virtual switch on the destination host;

matching, with the destination virtual switch, the internet protocol address of the destination virtual machine with the virtual MAC address of the destination virtual machine; and

rewriting the physical MAC address of the destination host with the destination virtual MAC address of the destination virtual machine.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 12, 2016
From: CORAID, INC.
To: INTERMODAL DATA, INC.
Reel/Frame 038576/0184 →
SECURITY INTEREST Recorded May 12, 2016
From: INTERMODAL DATA, INC.
To: TRIPLEPOINT VENTURE GROWTH BDC CORP.
Reel/Frame 038576/0311 →
SECURED PARTY BILL OF SALE Recorded Jun 4, 2015
From: CORAID, INC.
To: INTERMODAL DATA, INC.
Reel/Frame 035827/0886 →
MERGER Recorded Jul 10, 2014
From: YELLOWTAIL 2 ACQUISITION CORP.
To: CORAID, INC.
Reel/Frame 033287/0557 →
ASSIGNMENT OF SECURITY AGREEMENT (REEL 031869, FRAME 0790) Recorded Mar 7, 2014
From: TRIPLEPOINT CAPITAL LLC
To: TRIPLEPOINT VENTURE GROWTH BDC CORP.
Reel/Frame 032410/0347 →
SECURITY AGREEMENT Recorded Dec 26, 2013
From: CORAID, INC.
To: TRIPLEPOINT CAPITAL LLC
Reel/Frame 031869/0790 →
MERGER Recorded Nov 21, 2012
From: YUNTEQ, INC.
To: YELLOWTAIL 2 ACQUISITION CORP.
Reel/Frame 029342/0343 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 20, 2012
From: SARAIYA, NAKUL; RISHI, ALOK; MATTER, LAWRENCE MCGOFF
To: YUNTEQ, INC.
Reel/Frame 029329/0592 →
Continuity (2)
Provisional Application 61351701 · Jun 4, 2010
Related Publication 20110299537A1 · Dec 8, 2011