Distributed load balancer in a virtual machine environment
First Claim
Patent Images
1. A method comprising:
- receiving a request packet at a flow director in communication with a plurality of servers, each server comprising a virtual load balancer module and one or more virtual machines, the flow director operable to distribute flows to the virtual load balancer modules; and
forwarding the request packet to one of the virtual load balancer modules, the virtual load balancer module configured to select one of the virtual machines to receive the request packet and transmit a response packet;
wherein the virtual load balancers are configured to distribute request packets across a plurality of virtual machines;
wherein the response packet is transmitted without passing through the flow director and wherein the virtual load balancer modules comprise a fast path portion and at least one of the virtual load balancer modules comprises a slow path portion, said fast path portion and said slow path portion located at the server in communication with the flow director, said slow path portion configured to perform load balancing to select one of the virtual machines and said fast path portion configured to create an entry in a flow table to identify the selected virtual machine; and
wherein the flow director is configured to identify new flows and select one of the virtual load balancer modules to process said new flow, and respond to requests from the virtual load balancer modules to direct packets for a flow to a specified virtual load balancer module, wherein the specified virtual load balancer module may be a different module than was initially selected by the flow director.
1 Assignment
0 Petitions
Accused Products
Abstract
In one embodiment, a method includes receiving a request packet at a flow director in communication with a plurality of servers, each server comprising a virtual load balancer module and one or more virtual machines and forwarding the request packet to one of the virtual load balancer modules at one of the servers. The virtual load balancer module is configured to select one of the virtual machines to receive the request packet and transmit a response packet. The response packet is transmitted without passing through the flow director. An apparatus for load balancing in a virtual machine environment is also disclosed.
-
Citations
18 Claims
-
1. A method comprising:
-
receiving a request packet at a flow director in communication with a plurality of servers, each server comprising a virtual load balancer module and one or more virtual machines, the flow director operable to distribute flows to the virtual load balancer modules; and forwarding the request packet to one of the virtual load balancer modules, the virtual load balancer module configured to select one of the virtual machines to receive the request packet and transmit a response packet; wherein the virtual load balancers are configured to distribute request packets across a plurality of virtual machines; wherein the response packet is transmitted without passing through the flow director and wherein the virtual load balancer modules comprise a fast path portion and at least one of the virtual load balancer modules comprises a slow path portion, said fast path portion and said slow path portion located at the server in communication with the flow director, said slow path portion configured to perform load balancing to select one of the virtual machines and said fast path portion configured to create an entry in a flow table to identify the selected virtual machine; and wherein the flow director is configured to identify new flows and select one of the virtual load balancer modules to process said new flow, and respond to requests from the virtual load balancer modules to direct packets for a flow to a specified virtual load balancer module, wherein the specified virtual load balancer module may be a different module than was initially selected by the flow director. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. An apparatus comprising:
-
an ingress interface for receiving a request packet; an egress interface in communication with a plurality of servers, each server comprising a virtual load balancer module and one or more virtual machines, wherein the virtual load balancers are configured to distribute request packets across a plurality of virtual machines; a flow director configured to forward the request packet to one of the virtual load balancer modules, the virtual load balancer module configured to select one of the virtual machines to receive the request packet; and a flow table for use in looking up a flow associated with the request packet; wherein the apparatus is configured such that a response packet is transmitted without passing through the flow director and wherein at least one of the virtual load balancer modules comprises a fast path portion and a slow path portion located at the server, said slow path portion configured to perform load balancing to select one of the virtual machines and said fast path portion configured to create an entry in a flow table to identify the selected virtual machine; and wherein the flow director is configured to identify new flows and select one of the virtual load balancer modules to process said new flow, and respond to requests from the virtual load balancer modules to direct packets for a flow to a specified virtual load balancer module, wherein the specified virtual load balancer module may be a different module than was initially selected by the flow director. - View Dependent Claims (13)
-
-
14. An apparatus comprising:
-
an interface for receiving request packets from a flow director in communication with a plurality of servers comprising a plurality of virtual machines; one or more of said plurality of virtual machines; and a virtual load balancer module configured to load balance said request packets across said plurality of virtual machines and transmit load balancing information to the flow director, the virtual load balancer module comprising a fast path portion located in a path between said ingress interface and said one or more virtual machines and a slow path portion, said slow path portion configured to perform load balancing to select said one of said plurality of virtual machines and said fast path portion configured to create an entry in a flow table to identify the selected virtual machine; wherein the flow director is configured to identify new flows and select one of the virtual load balancer modules to process said new flow, and respond to requests from the virtual load balancer modules to direct packets for a flow to a specified virtual load balancer module, wherein the specified virtual load balancer module may be a different module than was initially selected by the flow director. - View Dependent Claims (15, 16, 17, 18)
-
Specification