IP Library Granted Patent US 12,314,596
Granted Patent B2
US 12,314,596 · App. 17/092,640 · Granted May 27, 2025

End-to-end data plane offloading for distributed storage using protocol hardware and PISA devices

Inventors: Shaopeng He (Shanghai, CN); Yadong Li (Portland, OR); Ziye Yang (Shanghai, CN); Changpeng Liu (Shanghai, CN); Haitao Kang (Shanghai, CN); Cunming Liang (Shanghai, CN); Gang Cao (Shanghai, CN); Scott Peterson (Beaverton, OR); Sujoy Sen (Beaverton, OR); Yi Zou (Portland, OR); Arun Raghunath (Portland, OR)
Assignee: Intel Corporation
G06F3/0655G06F3/0604G06F3/067
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 12,314,596
App. No.
17/092,640
Granted
May 27, 2025
Kind
B2
Abstract

Methods and apparatus for end-to-end data plane offloading for distributed storage using protocol hardware and Protocol Independent Switch Architecture (PISA) devices. Hardware-based data plane forwarding is implemented in compute and storage switches that comprise smart server switches running software executing in a kernel and user space. The compute switch is coupled to one or more compute servers/nodes and the storage server is coupled to one or more storage servers or storage arrays. The hardware-based data plane forwarding facilitates an end-to-end data plane between the computer server(s) and storage server(s)/array(s) that is offloaded to hardware. In one example the software comprises Ceph components used to implement control plane operations in connection with hardware offloaded data plane operations, and storage traffic employs the NVMe-oF protocol and the kernels include NVMe-oF modules. In one aspect the hardware-based data plane forwarding is implemented using programmable P4switch chips. In one aspect the storage and server switches are Top of Rack (ToR) switches.

Claims (49)

1. A method implemented in a distributed environment including one or more compute servers in a first rack and one or more storage servers or storage arrays in a second rack, comprising:

receiving, at a first switch, a storage access request originating from a compute server to access a logical storage unit residing on a target storage device in a storage server or storage array;

determining, at the first switch, the target storage device; and

forwarding the storage access request via a forwarding path traversing the first switch to the target storage device;

wherein:

the first switch comprises a processor to execute software that is to receive write data from an application associated with the compute server;

execution of the software by the processor is to result in distributed replicating of the data in the one or more storage servers or storage arrays; and

the first switch also comprises programmable hardware to detect failure of the target storage device and to notify the software of the failure.

2. The method of claim 1 , wherein the forwarding path is implemented in a data plane offloaded to hardware.

3. The method of claim 2 , wherein the compute server is connected to the first switch via a second link, the first switch is connected to a second switch via a second link, and the second switch is connected to the storage server or storage array via a third link, and wherein the forwarding path in the data plane offloaded to hardware traverses the first link, the first switch, the second link, the second switch, and the third link.

4. The method of claim 1 , wherein the first switch comprises a server switch including hardware comprising a switch chip and one or more processors coupled to memory in which software components are executed, the switch chip programmed to implement hardware-based data plane operations.

5. The method of claim 4 , wherein the switch chip comprises a programmable switch chip that is programmed using the P4 programming language.

6. The method of claim 4 , wherein the software components include software modules configured to implement control plane operations in connection with the offloaded hardware data plane.

7. The method of claim 4 , wherein:

the first switch comprises a Ceph RBD (Reliable Autonomic Distributed Object Store (RADOS) Block Device) module; and

the Ceph RBD module is to be executed on the processor in the first switch.

8. The method of claim 1 , wherein the data transfers between the compute server and the storage server or storage array are facilitated using an NVMe-oF (Non-volatile Memory Express over Fabric) protocol.

9. The method of claim 8 , wherein the data transfers between the compute server and the storage server or storage array are facilitated using a Remote Direct Memory Access (RDMA) protocol in combination with the NVMe-oF protocol.

10. The method of claim 1 , wherein the logical storage unit comprises one of a storage object, storage block or file.

11. A system, comprising:

a compute server, installed in a first rack, including memory connected to one or more processors on which software components are executed including an operating system and software executing in a user space including a first virtual compute host;

a storage server or storage array, including a plurality of storage devices, installed in a second rack;

a compute Top of Rack (ToR) switch installed in the first rack, communicatively coupled to the compute server and including one or more processors on which software instructions are executed for implementing control plane operations and including hardware configured to support data plane forwarding operations; and

a storage Top of Rack (ToR) switch installed in the second rack, communicatively coupled with the compute ToR switch and the storage server or storage array, including one or more processors on which software instructions are executed for implementing control plane operations and including hardware configured to support data plane forwarding operations,

wherein the system is configured to enable the first virtual compute host to access one or more of the plurality of storage devices in the storage server or storage array using an end-to-end data plane offloaded to hardware; and

also wherein:

the one or more processors of the compute ToR switch are to execute other software that is to receive write data from an application associated with the compute server;

execution of the other software by the one or more processors of the compute ToR switch is to result in distributed replicating of the data in the storage server or storage array; and

the compute ToR switch also comprises programmable hardware to detect failure of a target storage device and to notify the other software of the failure.

12. The system of claim 11 , wherein each of the compute ToR switch and the storage ToR switch comprises a server switch including hardware comprising a hardware-programmable switch chip programmed to implement hardware-based data plane forwarding operations.

13. The system of claim 11 , wherein the software components are configured to implement control plane operations in connection with the offloaded hardware data plane operations to support end-to-end data transfers between the first virtual compute host and the one or more of the plurality of storage devices.

14. The system of claim 13 , wherein:

the compute ToR switch includes and executes, at least in part, a Ceph RBD (Reliable Autonomic Distributed Object Store (RADOS) Block Device) module; and

the storage ToR switch includes and executes, at least in part, a Ceph Object Storage Daemon (OSD) module.

15. The system of claim 11 , wherein the data transfers between the first virtual compute host and the one or more of the plurality of storage devices employ a NVMe-oF (Non-volatile Memory Express over Fabric) protocol.

16. A server switch, comprising:

a network interface controller (NIC);

a first central processing unit (CPU);

memory coupled to the first CPU, having an address space logically partitioned to include a kernel space and a user space; and

a programmable switch chip, operatively coupled to the first CPU, the memory, and the NIC,

wherein the programmable switch chip is programmed using a hardware programming language to implement hardware-based data plane operations under which packets associated with storage traffic originating from or destined to virtual compute hosts running on one or more compute servers are forwarded via hardware-based data plane operations implemented in the programmable switch chip when the one or more compute servers are communicatively coupled to the NIC either directly or via a second server switch; and

also wherein:

the programmable switch chip is to execute software that is to receive write data from an application associated with the one or more compute servers;

execution of the software by the programmable switch chip is to result in distributed replicating of the data in a storage server or storage array; and

the programmable switch chip comprises hardware to detect failure of a target storage device and to notify the software of the failure.

17. The server switch of claim 16 , further comprising user space software implementing control plane operations that are performed in connection with forwarding the storage traffic originating from the virtual compute hosts running on the one or more compute servers.

18. The server switch of claim 16 , further comprising a compute Top of Rack (ToR) switch configured to be communicatively coupled to the one or more compute servers, and also further comprising Ceph RBD (Reliable Autonomic Distributed Object Store (RADOS) Block Device) module configured to be executed in the user space of the address space of the memory coupled to the first CPU.

19. The server switch of claim 16 , wherein the second server switch comprises a storage Top of Rack (ToR) switch configured to be communicatively coupled to the one or more storage servers or to one or more storage arrays, and also further comprising a Ceph Object Storage Daemon (OSD) module configured to be executed by the second server switch.

20. The server switch of claim 16 , wherein the storage traffic comprising Non-Volatile Memory Express over Fabric (NVMe-oF) traffic.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 18, 2021
From: HE, SHAOPENG; LI, YADONG; YANG, ZIYE; LIU, CHANGPENG; KANG, HAITAO; LIANG, CUNMING; CAO, GANG; PETERSON, SCOTT; SEN, SUJOY; ZOU, YI; RAGHUNATH, ARUN
To: INTEL CORPORATION
Reel/Frame 056271/0967 →
Continuity (1)
Related Publication 20210103403A1 · Apr 8, 2021
References Cited (62)
US 10972503B1 · Mohan et al. · 2021 [cited by applicant]
US 11159366B1 · Gawade et al. · 2021 [cited by applicant]
US 20120106333A1 · Lee et al. · 2012 [cited by applicant]
US 20140344532A1 · Lazier · 2014 [cited by examiner]
US 20150281128A1 · Sindhu · 2015 [cited by applicant]
US 20160191392A1 · Liu et al. · 2016 [cited by applicant]
US 20170085501A1 · Utgikar et al. · 2017 [cited by applicant]
US 20170111274A1 · Bays et al. · 2017 [cited by applicant]
US 20170195257A1 · Annaluru et al. · 2017 [cited by applicant]
US 20170359217A1 · Ahuja et al. · 2017 [cited by applicant]
US 20180024739A1 · Schmisseur · 2018 [cited by applicant]
US 20180063018A1 · Bosch et al. · 2018 [cited by applicant]
US 20190123984A1 · Nainar et al. · 2019 [cited by applicant]
US 20190230039A1 · Wang et al. · 2019 [cited by applicant]
US 20190305985A1 · Liu · 2019 [cited by applicant]
US 20190334770A1 · Xiang et al. · 2019 [cited by applicant]
US 20190354386A1 · Cahana et al. · 2019 [cited by applicant]
US 20190384580A1 · Martini · 2019 [cited by examiner]
US 20200026425A1 · Memon et al. · 2020 [cited by applicant]
US 20200052982A1 · Nainar et al. · 2020 [cited by applicant]
US 20200067818A1 · Jeuk et al. · 2020 [cited by applicant]
US 20200120168A1 · Nainar et al. · 2020 [cited by applicant]
US 20200151035A1 · Hall · 2020 [cited by applicant]
US 20200162380A1 · Pilkington et al. · 2020 [cited by applicant]
US 20200169494A1 · K et al. · 2020 [cited by applicant]
US 20200220848A1 · Patwardhan · 2020 [cited by applicant]
US 20200236055A1 · Warnicke et al. · 2020 [cited by applicant]
US 20200236064A1 · Frankel et al. · 2020 [cited by applicant]
US 20200310857A1 · Sharma · 2020 [cited by applicant]
US 20200313955A1 · Kodeboyina et al. · 2020 [cited by applicant]
US 20200314015A1 · Mariappan et al. · 2020 [cited by applicant]
US 20200344143A1 · K et al. · 2020 [cited by applicant]
US 20200351332A1 · Palladino et al. · 2020 [cited by applicant]
US 20210019194A1 · Bahl et al. · 2021 [cited by applicant]
US 20210064430A1 · Srivastava et al. · 2021 [cited by applicant]
US 20210075746A1 · Frankel · 2021 [cited by applicant]
US 20210103403A1 · He et al. · 2021 [cited by applicant]
US 20210409506A1 · Radi et al. · 2021 [cited by applicant]
US 20220035689A1 · Raheja et al. · 2022 [cited by applicant]
US 20220060569A1 · Wang et al. · 2022 [cited by applicant]
US 20220142007A1 · Heydari · 2022 [cited by applicant]
US 20220172037A1 · Kang et al. · 2022 [cited by applicant]
US 20220225065A1 · Doken · 2022 [cited by applicant]
US 20220294732A1 · Hart et al. · 2022 [cited by applicant]
US 20240155024A1 · Palladino et al. · 2024 [cited by applicant]
KR 20190058992A · 2019 [cited by applicant]
WO 2020251828A1 · 2020 [cited by applicant]
International Search Report and Written Opinion for PCT Patent Application No. PCT/US21/51514, Mailed Jan. 14, 2022, 11 pages. [cited by applicant]
“Architecture”, Architecture—Ceph Documentation, https://docs.ceph.com/en/mimic/architecture, Jun. 1, 2018. 45 pgs. [cited by applicant]
“Architecture”, Architecture—Ceph Documentation, https://docs.ceph.com/en/octopus/architecture, Mar. 23, 2020. 44 pgs. [cited by applicant]
“Architecture”, Architecture—Ceph Documentation, https:/docs.ceph.com/en/nautilus/architecture, Mar. 19, 2019. 45 pgs. [cited by applicant]
“Ceph (software)”, https://en.wikepedia.org/wiki/Ceph_(software), Jan. 25, 2024. 15 pgs. [cited by applicant]
Non-Final Office Action from U.S. Appl. No. 17/114,304 notified Jun. 4, 2024, 40 pgs. [cited by applicant]
Non-Final Office Action from U.S. Appl. No. 17/238,960 notified Jun. 25, 2024, 19 pgs. [cited by applicant]
Non-Final Office Action from U.S. Appl. No. 17/239,329 notified Jun. 17, 2024, 11 pgs. [cited by applicant]
Extended European Search Report from European Patent Application No. 21904046.6 notified Sep. 23, 2024, 11 pgs. [cited by applicant]
Extended European Search Report from European Patent Application No. 22792172.3 notified Dec. 3, 2024, 9 pgs. [cited by applicant]
Final Office Action from U.S. Appl. No. 17/114,304 notified Oct. 16, 2024, 41 pgs. [cited by applicant]
Final Office Action from U.S. Appl. No. 17/238,960 notified Nov. 26, 2024, 27 pgs. [cited by applicant]
Final Office Action from U.S. Appl. No. 17/239,329 notified Dec. 19, 2024, 23 pgs. [cited by applicant]
Notice of Allowance from U.S. Appl. No. 17/238,960 notified Feb. 12, 2025, 11 pgs. [cited by applicant]
Notice of Allowance from U.S. Appl. No. 17/239,329 notified Mar. 5, 2025, 13 pgs. [cited by applicant]