IP Library Granted Patent US 11,611,625
Granted Patent B2
US 11,611,625 · App. 17/122,153 · Granted Mar 21, 2023

Providing stateful services in a scalable manner for machines executing on host computers

Inventors: Jayant Jain (Cupertino, CA); Anirban Sengupta (Saratoga, CA); Rick Lund (Livermore, CA)
Assignee: VMWARE, INC.
H04L67/34G06F9/45558H04L67/51G06F2009/45562G06F2009/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 11,611,625
App. No.
17/122,153
Granted
Mar 21, 2023
Kind
B2
Abstract

Some embodiments provide a method for performing services on a host computer that executes several machines in a datacenter. The method configures a first set of one or more service containers for a first machine executing on the host computer, and a second set of one or more service containers for a second machine executing on the host computer. Each configured service container performs a service operation on data messages associated with a particular machine. For each particular machine, the method also configures a module along the particular machine's datapath to identify a subset of service operations to perform on a set of data messages associated with the particular machine, and to direct the set of data messages to a set of service containers configured for the particular machine to perform the identified set of service operations on the set of data messages.

Claims (32)

1. A method for providing services on a host computer that executes a plurality of machines, the method comprising:

configuring, for a first machine executing on the host computer, a first plurality of service containers to perform a first plurality of service operations for the first machine;

configuring, for a second machine executing on the host computer, a second plurality of service containers to perform a second plurality of service operations for the second machine, said first and second pluralities of service containers executing on the host computer;

configuring, for each particular machine of the first and second machines, a module along the particular machine's data path to identify a set of service operations to perform on a set of data messages associated with the particular machine, and to direct the set of data messages to a set of service containers configured for the particular machine to perform the identified set of service operations on the set of data messages.

2. The method of claim 1 , wherein the first and second pluralities of service containers are respectively configured when the first and second machines are configured on the host computers.

3. The method of claim 1 , wherein at least two service containers in the first plurality of service containers are configured on two separate Pods.

4. The method of claim 1 , wherein the first and second machines belong to one logical network implemented over a physical network on which a plurality of logical networks are defined.

5. The method of claim 1 , wherein each particular machine's configured module is a classifier that for a data message that it processes, identifies a set of service operations that have to be performed on the data message, and passes the data message to a set of service containers to perform the identified set of service operations on the data message.

6. The method of claim 5 , wherein the module successively passes the data message to successive service containers in the identified set of service containers after receiving the data message from each service container in the identified set of service containers.

7. The method of claim 5 , wherein the module passes the data message by generating a service identifier that specifies the identified set of service operations that have to be performed on the data message by a set of service containers, and providing the service identifier along with the data message so that the data message can be forwarded to successive service containers in the identified set of service containers.

8. The method of claim 7 , wherein service operations in the set of service operations identified by the classifier have a particular order, and the service identifier specifies the particular order.

9. The method of claim 7 , wherein a forwarding element executing on the host computer processes each generated service identifier in order to identify the set of services that has to be performed on the data message for which the service identifier is generated, and to successively provide the data message to service containers in the set of service containers to perform the identified set of service operations.

10. The method of claim 1 , wherein at least one service container in the first plurality of service containers performs a same middlebox service operation as one service container in the second plurality of service containers, and at least another service container in the first plurality of service containers performs another middlebox service operation that is not performed by any other service container in the second plurality of service containers.

11. A method for providing services on a host computer that executes a plurality of machines, the method comprising:

configuring, for a first machine executing on the host computer, a first plurality of service containers to perform a first plurality of service operations for the first machine, said configuring the first plurality of service containers comprising configuring on the host computer a first Pod on which the first plurality of service containers for the first machine operate;

configuring, for a second machine executing on the host computer, a second plurality of service containers to perform a second plurality of service operations for the second machine, said first and second pluralities of service containers executing on the host computer, said configuring the second plurality of service containers comprising configuring on the host computer a second Pod on which the second plurality of service containers for the second machine operate;

configuring, for each particular machine of the first and second machines, a module along the particular machine's data path to identify a set of service operations to perform on a set of data messages associated with the particular machine, and to direct the set of data messages to a set of service containers configured for the particular machine to perform the identified set of service operations on the set of data messages.

12. A non-transitory machine readable medium storing a program for execution by at least one processing unit of the host computer, the program providing services on the host computer that executes a plurality of machines, the program comprising sets of instructions for:

configuring, for a first machine executing on the host computer, a first plurality of service containers to perform a first plurality of service operations for the first machine;

configuring, for a second machine executing on the host computer, a second plurality of service containers to perform a second plurality of service operations for the second machine, said first and second pluralities of service containers executing on the host computer;

configuring, for each particular machine of the first and second machines, a module along the particular machine's data path to identify a set of service operations to perform on a set of data messages associated with the particular machine, and to direct the set of data messages to a set of service containers configured for the particular machine to perform the identified set of service operations on the set of data messages.

13. The non-transitory machine readable medium of claim 12 , wherein the first and second pluralities of service containers are respectively configured when the first and second machines are configured on the host computers.

14. The non-transitory machine readable medium of claim 12 , wherein the program further comprises sets of instructions for:

configuring a first Pod on which the first plurality of service containers for the first machine are configured;

configuring a second Pod on which the second plurality of service containers for the second machine are configured.

15. The non-transitory machine readable medium of claim 12 , wherein at least two service containers in the first plurality of service containers are configured on two separate Pods.

16. The non-transitory machine readable medium of claim 12 , wherein the first and second machines belong to one logical network implemented over a physical network on which a plurality of logical networks are defined.

17. The non-transitory machine readable medium of claim 12 , wherein each particular machine's configured module is a classifier that for a data message that it processes, identifies a set of service operations that have to be performed on the data message, and passes the data message to a set of service containers to perform the identified set of service operations on the data message.

18. The non-transitory machine readable medium of claim 17 , wherein the module successively passes the data message to successive service containers in the identified set of service containers after receiving the data message from each service container in the identified set of service containers.

19. The non-transitory machine readable medium of claim 17 , wherein the module passes the data message by generating a service identifier that specifies the identified set of service operations that have to be performed on the data message by a set of service containers, and providing the service identifier along with the data message so that the data message can be forwarded to successive service containers in the identified set of service containers.

20. The non-transitory machine readable medium of claim 19 , wherein service operations in the set of service operations identified by the classifier have a particular order, and the service identifier specifies the particular order.

21. The non-transitory machine readable medium of claim 19 , wherein a forwarding element executing on the host computer processes each generated service identifier in order to identify the set of services that has to be performed on the data message for which the service identifier is generated, and to successively provide the data message to service containers in the set of service containers to perform the identified set of service operations.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 15, 2020
From: JAIN, JAYANT; SENGUPTA, ANIRBAN; LUND, RICK
To: VMWARE, INC.
Reel/Frame 054650/0668 →
Continuity (1)
Related Publication 20220191304A1 · Jun 16, 2022
Cited By (3)
US 12,231,252 US 12,254,340 US 12,341,680