Inline load balancing

US10320679B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10320679-B2
Application numberUS-201414557287-A
CountryUS
Kind codeB2
Filing dateDec 1, 2014
Priority dateSep 30, 2014
Publication dateJun 11, 2019
Grant dateJun 11, 2019

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Some embodiments provide a novel method for load balancing data messages that are sent by a source compute node (SCN) to one or more different groups of destination compute nodes (DCNs). In some embodiments, the method deploys a load balancer in the source compute node's egress datapath. This load balancer receives each data message sent from the source compute node, and determines whether the data message is addressed to one of the DCN groups for which the load balancer spreads the data traffic to balance the load across (e.g., data traffic directed to) the DCNs in the group. When the received data message is not addressed to one of the load balanced DCN groups, the load balancer forwards the received data message to its addressed destination. On the other hand, when the received data message is addressed to one of load balancer's DCN groups, the load balancer identifies a DCN in the addressed DCN group that should receive the data message, and directs the data message to the identified DCN. To direct the data message to the identified DCN, the load balancer in some embodiments changes the destination address (e.g., the destination IP address, destination port, destination MAC address, etc.) in the data message from the address of the identified DCN group to the address (e.g., the destination IP address) of the identified DCN.

First claim

Opening claim text (preview).

We claim: 1. A non-transitory machine readable medium of a host computing device storing a program for load balancing data messages that are sent by a software source compute node (SCN) executing on the host computing device to a group of destination compute nodes (DCNs), the program comprising sets of instructions for: intercepting a data message sent by the SCN before it reaches a software forwarding element executing on the host computing device and determining whether the data message is addressed to the DCN group; when the data message is addressed to the DCN group, identifying a DCN in the DCN group that should receive the data message; and sending the data message to the identified DCN, wherein the program executes on the host computing device. 2. The machine readable medium of claim 1 , wherein the set of instructions for sending the data message to the identified DCN comprises a set of instructions for changing a destination address in the data message from an address of the DCN group to an address of the identified DCN. 3. The machine readable medium of claim 2 , wherein the addresses of the DCN group and the identified DCN used to change the destination address include Internet Protocol (IP) addresses. 4. The machine readable medium of claim 2 , wherein the addresses of the DCN group and the identified DCN used to change the destination address include media access control (MAC) addresses. 5. The machine readable medium of claim 2 , wherein the addresses of the DCN group and the identified DCN used to change the destination address include Internet Protocol (IP) port addresses. 6. The machine readable medium of claim 2 , wherein the set of instructions for sending the data message to the identified DCN further comprises a set of instructions for supplying the data message, after the destination address has been changed, to the software forwarding element (SFE) that executes on the host computing device, in order to have the SFE forward the data message to the identified DCN. 7. The machine readable medium of claim 6 , wherein the SFE forwards the data message to the identified DCN through a set of intermediate forwarding elements that operate outside of the host computing device. 8. The machine readable medium of claim 6 , wherein the identified DCN is a software DCN that executes on the host computing device, and the SFE forwards the data message directly to the identified DCN. 9. The machine readable medium of claim 1 , wherein the program further comprising a set of instructions for forwarding the data message to a DCN that is not in the DCN group when the data message is not addressed to the DCN group. 10. The machine readable medium of claim 9 , wherein the set of instructions for forwarding the data message to a DCN that is not in the DCN group comprises a set of instructions for supplying the data message to the software forwarding element (SFE) that executes on the host computing device, in order to have the SFE forward the data message to the DCN that is not in the DCN group. 11. The machine readable medium of claim 1 , wherein the program is a load balancer that executes in a hypervisor of the host computing device in an egress datapath of the SCN. 12. The machine readable medium of claim 11 , wherein the SCN's egress datapath comprises a datapath along which data messages that are sent by the SCN are sent out of the host computing device. 13. The machine readable medium of claim 11 , wherein the SCN is not configured to send the data message to the load balancer, the SCN does not address the data message to the load balancer, data messages sent from the SCN to the DCN group are load balanced among the DCNs in the group as the data messages specify a DCN group address. 14. The machine readable medium of claim 1 , wherein the DCN group is a first DCN group, the program further comprises sets of instructions for: determining whether the data message is addressed to a second DCN group; and when the data message is addressed to the second DCN group, identifying a DCN in the second DCN group that should receive the data message; and sending the data message to the identified DCN in the second DCN group. 15. The machine readable medium of claim 1 , wherein DCNs include data compute end nodes or middle box service nodes. 16. The machine readable medium of claim 1 , wherein the SCN is a virtual machine. 17. The machine readable medium of claim 1 , wherein the SCN is a container. 18. The machine readable medium of claim 1 , wherein identifying the DCN comprises selecting the DCN from the group of DCNs based on a set of load balancing criteria that is specified in order to spread data messages that are sent to the DCN group among the DCNs in the group. 19. The machine readable medium of claim 18 , wherein the set of load balancing criteria is specified to evenly spread data messages that are sent to the DCN group among the DCNs in the group. 20. A method for load balancing data messages that are sent to a group of destination compute nodes (DCNs) from a source compute node (SCN) executing on a host computing device, the method comprising on the host computing device, intercepting data messages sent by the SCN that are addressed to the DCN group as the data messages traverse along an egress datapath of the host computing device before the data messages reach a software forwarding element executing on the host computing device; for each intercepted data message, identifying one DCN in the DCN group that should receive the intercepted data message; and sending each intercepted data message to the DCN that is identified for that intercepted data message. 21. The method of claim 20 , wherein sending the data message comprises sending at least one data message out of the host computing device. 22. The method of claim 20 , wherein the software forwarding element executes in a hypervisor of the host computing device. 23. The method of claim 20 , wherein intercepting each data message comprises intercepting each data message in a network interface card of the host computing device. 24. The method of claim 20 , wherein the DCNs for the different data messages are identified based on a set of load balancing criteria that distributes the data messages across the DCNs of the DCN group. 25. The method of claim 20 , wherein the DCN group is a first DCN group, wherein the method further comprises: on the host computing device, intercepting data messages that are addressed to a second DCN group; for each intercepted data message addressed to the second DCN group, identifying one DCN in the second DCN group that should receive the intercepted data message; and sending each intercepted data message that was addressed to the second DCN group to the DCN in the second group that is identified for that intercepted data message. 26. The method of claim 20 , wherein identifying DCNs for the data messages comprises: when a data message is a first data message intercepted from a new data message flow, identifying the DCN by examining a set of load balancing rules that specify how to redirect data messages sent to the DCN group; and storing the identified DCN for the data message flow in a connection data store; when an intercepted data message is part of a data message flow that has had a prior data message intercepted, identifying the DCN by examining the connection data store.

Assignees

Inventors

Classifications

  • Distribution of virtual machine instances; Migration and load balancing · CPC title

  • Hypervisor-specific management and integration aspects · CPC title

  • based on a round robin mechanism · CPC title

  • H04L47/125Primary

    by balancing the load, e.g. traffic engineering · CPC title

  • Multipath · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10320679B2 cover?
Some embodiments provide a novel method for load balancing data messages that are sent by a source compute node (SCN) to one or more different groups of destination compute nodes (DCNs). In some embodiments, the method deploys a load balancer in the source compute node's egress datapath. This load balancer receives each data message sent from the source compute node, and determines whether the …
Who is the assignee on this patent?
Nicira Inc
What technology area does this patent fall under?
Primary CPC classification H04L47/125. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Jun 11 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).