IP Library Granted Patent US 10,581,962
Granted Patent B2
US 10,581,962 · App. 15/800,815 · Granted Mar 3, 2020

Direct communication between physical server and storage service

Inventors: Gang Cheng (Bellevue, WA); Jiesheng Wu (Redmond, WA)
Assignee: Alibaba Group Holding Limited
H04L67/1023H04L12/4633H04L12/4645H04L61/2564H04L61/2571H04L67/146H04L67/42
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,581,962
App. No.
15/800,815
Granted
Mar 3, 2020
Kind
B2
Abstract

Systems and methods provided herein are directed to allowing a client to access a storage cluster, and the storage cluster to access the client, without having to communicate through the load balancer after an initial communication, or an initial packet from the client to the storage cluster, for packets belonging to the same session as the initial packet based on information included in headers of the packet.

Claims (75)

1. A method comprising:

receiving, by a frontend (FE) server of a storage cluster via a load balance (LB), an initial packet originated from a client;

in response to receiving the initial packet by the FE server:

generating, by the FE server, a response packet comprising an internet protocol (IP) address of the FE server (FE IP address) and an IP address of the client (client IP address),

encapsulating the response packet by the FE server, the encapsulated response packet comprising an outer response source header having the FE IP address and an outer response destination header having the client IP address, and

sending, by the FE server, the encapsulated response packet to the client by bypassing the LB based on the FE IP address and the client IP address;

receiving, by the client, the encapsulated response packet; and

in response to receiving the encapsulated response packet by the client, identifying, by the client, the FE server as a destination for subsequent packets of a corresponding session based on the outer response source header and the outer response destination header of the encapsulated response packet.

2. The method of claim 1 ,

wherein encapsulating the response packet by the FE server includes encapsulating the response packet by an FE virtual switch (VS) of the FE server, and

wherein the encapsulated response packet further comprises an inner response source header having a virtual IP (VIP) address of the storage cluster and an inner response destination header having the client IP address.

3. The method of claim 2 , further comprising:

determining, by the client, a session corresponding to the encapsulated response packet based on the inner response source header and the inner response destination header.

4. The method of claim 3 , further comprising:

sending, from the client, a subsequent packet of the corresponding session to a client VS of the client;

encapsulating, by the client VS, the subsequent packet, the encapsulated subsequent packet comprising an outer source header having the client IP address, an outer destination header having the FE IP address, an inner source header having the client IP address, and an inner destination header having the VIP address of the storage cluster; and

forwarding, by the client VS, the encapsulated subsequent packet to the FE server by bypassing the LB based on the outer source header and the outer destination header of the subsequent packet.

5. The method of claim 4 , wherein encapsulating comprises encapsulating using virtual extensible local area network (VXLAN) encapsulation.

6. The method of claim 3 , wherein determining, by the client, the session corresponding to the encapsulated response packet based on the inner response source header and the inner response destination header comprises:

matching the inner response source header and the inner response destination header to a client session table, the client session table created by a client virtual switch (VS) of the client upon receiving the initial packet destined for the storage cluster from the client, the client session table having information associated with the initial packet.

7. The method of claim 1 , wherein receiving, by the FE server of the storage cluster via the LB, the initial packet originated from the client comprises:

sending, by the client to the LB, the initial packet encapsulated by a client virtual switch of the client, the initial packet destined for the storage cluster, the initial packet comprising an outer source header having the client IP address and an outer destination header having the VIP address of the storage cluster;

selecting the FE server by the LB;

updating, by the LB, the outer destination header with the FE IP address; and

forwarding, by the LB, the initial packet to the FE server.

8. A non-transitory computer-readable storage medium storing computer-readable instructions executable by one or more processors, that when executed by the one or more processors, cause the one or more processors to perform operations comprising:

receiving, by a frontend (FE) server of the storage cluster via a load balancer (LB), an initial packet originated from the client;

in response to receiving the initial packet by the FE server:

generating, by the FE server, a response packet comprising an internet protocol (IP) address of the FE server (FE IP address) and an IP address of the client (client IP address);

encapsulating the response packet by the FE server, the encapsulated response packet comprising an outer response source header having the FE IP address and an outer response destination header having the client IP address;

sending, by the FE server, the encapsulated response packet to the client by bypassing the LB based on the FE IP address and the client IP address; and

identifying, by the client, the FE server as a destination for subsequent packets of the corresponding session based on the outer response source header and the outer response destination header of the encapsulated response packet.

9. The non-transitory computer-readable storage medium of claim 8 ,

wherein encapsulating the response packet by the FE server includes encapsulating the response packet by an FE virtual switch (VS) of the FE server, and

wherein the encapsulated response packet further comprises an inner response source header having a virtual IP (VIP) address of the storage cluster and an inner response destination header having the client IP address.

10. The non-transitory computer-readable storage medium of claim 9 , wherein the operations further comprise:

determining, by the client, a session corresponding to the encapsulated response packet based on the inner response source header and the inner response destination header.

11. The non-transitory computer-readable storage medium of claim 10 , wherein the operations further comprise:

sending, from the client, a subsequent packet of the corresponding session to a client VS of the client;

encapsulating, by the client VS, the subsequent packet, the encapsulated subsequent packet comprising an outer source header having the client IP address, an outer destination header having the FE IP address, an inner source header having the client IP address, and an inner destination header having the VIP address of the storage cluster; and

forwarding, by the client VS, the encapsulated subsequent packet to the FE server by bypassing the LB based on the outer source header and the outer destination header of the subsequent packet.

12. The non-transitory computer-readable storage medium of claim 11 , wherein encapsulating comprises encapsulating using virtual extensible local area network (VXLAN) encapsulation.

13. The non-transitory computer-readable storage medium of claim 10 , wherein determining, by the client, the session corresponding to the encapsulated response packet based on the inner response source header and the inner response destination header comprises:

matching the inner response source header and the inner response destination header to a client session table, the client session table created by a client virtual switch (VS) of the client upon receiving the initial packet destined for the storage cluster from the client, the client session table having information associated with the initial packet.

14. The non-transitory computer-readable storage medium of claim 8 , wherein receiving, by the FE server of the storage cluster via the LB, the initial packet originated from the client comprises:

sending, by the client to the LB, the initial packet encapsulated by a client virtual switch of the client, the initial packet destined for the storage cluster, the initial packet comprising an outer source header having the client IP address and an outer destination header having the VIP address of the storage cluster;

selecting the FE server by the LB;

updating, by the LB, the outer destination header with the FE IP address; and

forwarding, by the LB, the initial packet to the FE server.

15. A storage access system comprising:

a client configured to send an initial packet to a storage cluster via a load balancer (LB), the client having a client internet protocol (IP) address; and

a front end (FE) server of the storage cluster configured to receive the initial packet, the FE server, in response to receiving the initial packet, further configured to:

generate a response packet comprising an internet protocol (IP) address of the FE server (FE IP address) and an IP address of the client (client IP address),

encapsulate the response packet, the encapsulated response packet comprising an outer response source header having the FE IP address, an outer response destination header having the client IP address, and

send the encapsulated response packet to the client by bypassing the LB based on the FE IP address and the client IP address,

wherein the client comprises a client virtual switch (VS), the client VS configured to:

receive the encapsulated response packet; and

in response to receiving the encapsulated response packet, identify the FE server as a destination for subsequent packets of the corresponding session based on the outer response source header and the outer response destination header of the encapsulated response packet.

16. The storage access system of claim 15 ,

wherein the FE server comprises an FE virtual switch (VS) configured to encapsulate the response packet, and

wherein the encapsulated response packet further comprises an inner response source header having a virtual IP (VIP) address of the storage cluster and an inner response destination header having the client IP address.

17. The storage access system of claim 16 , wherein the client VS is further configured to, in response to receiving the encapsulated response packet:

determine a session corresponding to the encapsulated response packet based on the inner response source header and the inner response destination header;

receive a subsequent packet of the corresponding session;

encapsulate the subsequent packet, the encapsulated subsequent packet comprising an outer source header having the client IP address, an outer destination header having the FE IP address, an inner source header having the client IP address, and an inner destination header having the VIP address of the storage cluster; and

forward the encapsulated subsequent packet to the FE server by bypassing the LB based on the outer source header and the outer destination header of the subsequent packet.

18. The storage access system of claim 17 , wherein virtual extensible local area network (VXLAN) encapsulation is used to encapsulate initial and subsequent packets.

19. The storage access system of claim 17 , wherein the client VS is further configured to:

generate a client session table upon receiving the initial packet from the client destined for the storage cluster, the client session table having information associated with the initial packet; and

match the inner response source header and the inner response destination header to the client session table to determine the session corresponding to the encapsulated response packet.

20. The storage access system of claim 15 , wherein the LB is further configured to:

receive, from the client, the initial packet encapsulated by a client virtual switch of the client, the initial packet destined for the storage cluster, the initial packet comprising an outer source header having the client IP address and an outer destination header having the VIP address of the storage cluster;

select the FE server;

update the outer destination header with the FE IP address; and

forward the initial packet to the FE server.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2026
From: ALIBABA GROUP HOLDING LIMITED
To: CLOUD INTELLIGENCE ASSETS HOLDING (SINGAPORE) PRIVATE LIMITED
Reel/Frame 075499/0384 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2017
From: CHENG, GANG; WU, JIESHENG
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 044645/0555 →
Continuity (1)
Related Publication 20190132383A1 · May 2, 2019
Cited By (1)
US 12,341,693