IP Library Granted Patent US 11,704,062
Granted Patent B2
US 11,704,062 · App. 17/314,805 · Granted Jul 18, 2023

Method for processing input/output (I/O) requests of a RAID system having a protection pool of storage units

Inventors: Paul Nehse (Livermore, CA); Michael Thiels (San Martin, CA); Devendra Kulkarni (Santa Clara, CA)
Assignee: EMC IP HOLDING COMPANY LLC
G06F3/0659G06F3/0611G06F3/0656G06F3/0689
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,704,062
App. No.
17/314,805
Granted
Jul 18, 2023
Kind
B2
Abstract

A method, apparatus, and system for processing Redundant Array of Independent Disks (RAID) Input/Output (I/O) requests for a plurality of nodes in a cluster is disclosed. A file system request including a byte offset is received. Then, a Physical Extent (PE) row that matches the file system request and a RAID stripe within the identified PE row based on the byte offset is identified. Next, a plurality of RAID I/O requests to be routed to a physical disk is generated. Each of the plurality of the RAID I/O requests includes information associated with the PE and a type of operation. Thereafter, each of the RAID I/O requests is processed based on the information associated with the PE and the type of operation.

Claims (61)

1. A computer-implemented method for processing Redundant Array of Independent Disks (RAID) Input/Output (I/O) requests for a plurality of nodes in a cluster, comprising:

receiving a file system request including a byte offset;

identifying a Physical Extent (PE) row that matches the file system request and a RAID stripe within the identified PE row based on the byte offset;

generating a plurality of RAID I/O requests to be routed to a physical disk, wherein each of the plurality of the RAID I/O requests comprises information associated with the PE and a type of operation; and

processing each of the RAID I/O requests based on the information associated with the PE and the type of operation, comprising:

identifying a node to receive the plurality of the RAID I/O requests;

locating disk objects using a PE universally unique identifier (UUID) comprising a Local Disk Manager (LDM) UUID and a disk UUID;

generating a PE base sector offset by shifting the PE UUID by a predefined number of bits;

issuing a read I/O request to the disk objects based on the PE base sector offset for a processing; and

returning data to the identified node.

2. The method of claim 1 , wherein the information associated with the PE comprises a PE UUID identifying a PE location, a stripe offset within the PE, and a data buffer.

3. The method of claim 1 , wherein the processing of each of the RAID I/O requests further comprises:

adding the generated PE base sector offset to the PE stripe offset.

4. The method of claim 3 further comprising:

identifying the node to receive the plurality of the RAID I/O requests and write data;

issuing a write I/O request to the disk objects for a processing; and

returning an I/O completion status to the identified node.

5. The method of claim 3 , wherein the data is provided to the file system once all of the plurality of the RAID I/O requests are processed.

6. The method of claim 4 , wherein the I/O completion status is transmitted to the file system once all of the plurality of the RAID I/O requests are processed.

7. The method of claim 1 , wherein the type of operation comprises a read or write operation.

8. A non-transitory machine-readable medium having instructions stored therein, which when executed by a processor, cause the processor to perform operations of processing Redundant Array of Independent Disks (RAID) Input/Output (I/O) requests for a plurality of nodes in a cluster, the operations comprising:

receiving a file system request including a byte offset;

identifying a Physical Extent (PE) row that matches the file system request and a RAID stripe within the identified PE row based on the byte offset;

generating a plurality of RAID I/O requests to be routed to a physical disk, wherein each of the plurality of the RAID I/O requests comprises information associated with the PE and a type of operation; and

processing each of the RAID I/O requests based on the information associated with the PE and the type of operation, comprising:

identifying a node to receive the plurality of the RAID I/O requests;

locating disk objects using a PE universally unique identifier (UUID) comprising a Local Disk Manager (LDM) UUID and a disk UUID;

generating a PE base sector offset by shifting the PE UUID by a predefined number of bits;

issuing a read I/O request to the disk objects based on the PE base sector offset for a processing; and

returning data to the identified node.

9. The machine-readable medium of claim 8 , wherein the information associated with the PE comprises a PE UUID identifying a PE location, a stripe offset within the PE, and a data buffer.

10. The machine-readable medium of claim 8 , wherein the processing of each of the RAID I/O requests further comprises:

adding the generated PE base sector offset to the PE stripe offset.

11. The machine-readable medium of claim 10 , wherein the operations further comprise:

identifying the node to receive the plurality of the RAID I/O requests and write data;

issuing a write I/O request to the disk objects for a processing; and

returning an I/O completion status to the identified node.

12. The machine-readable medium of claim 10 , wherein the data is provided to the file system once all of the plurality of the RAID I/O requests are processed.

13. The machine-readable medium of claim 11 , wherein the I/O completion status is transmitted to the file system once all of the plurality of the RAID I/O requests are processed.

14. The machine-readable medium of claim 8 , wherein the type of operation comprises a read or write operation.

15. A data processing system, comprising:

a processor; and

a memory to store instructions, which when executed by the processor, cause the processor to perform operations of processing Redundant Array of Independent Disks (RAID) Input/Output (I/O) requests for a plurality of nodes in a cluster, the operations including:

receiving a file system request including a byte offset;

identifying a Physical Extent (PE) row that matches the file system request and a RAID stripe within the identified PE row based on the byte offset;

generating a plurality of RAID I/O requests to be routed to a physical disk, wherein each of the plurality of the RAID I/O requests comprises information associated with the PE and a type of operation; and

processing each of the RAID I/O requests based on the information associated with the PE and the type of operation, comprising:

identifying a node to receive the plurality of the RAID I/O requests;

locating disk objects using a PE universally unique identifier (UUID) comprising a Local Disk Manager (LDM) UUID and a disk UUID;

generating a PE base sector offset by shifting the PE UUID by a predefined number of bits;

issuing a read I/O request to the disk objects based on the PE base sector offset for a processing; and

returning data to the identified node.

16. The data processing system of claim 15 , wherein the information associated with the PE comprises a PE UUID identifying a PE location, a stripe offset within the PE, and a data buffer.

17. The data processing system of claim 15 , wherein the processing of each of the RAID I/O requests further comprises:

adding the generated PE base sector offset to the PE stripe offset.

18. The data processing system of claim 17 , wherein the operations further comprise:

identifying the node to receive the plurality of the RAID I/O requests and write data;

issuing a write I/O request to the disk objects for a processing; and

returning an I/O completion status to the identified node.

19. The data processing system of claim 17 , wherein the data is provided to the file system once all of the plurality of the RAID I/O requests are processed.

20. The data processing system of claim 18 , wherein the I/O completion status is transmitted to the file system once all of the plurality of the RAID I/O requests are processed.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (058014/0560) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0473 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057931/0392) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0382 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057758/0286) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 061654/0064 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 058014/0560 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 057758/0286 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 057931/0392 →
SECURITY AGREEMENT Recorded Oct 1, 2021
From: DELL PRODUCTS, L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 057682/0830 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 7, 2021
From: NEHSE, PAUL; THIELS, MICHAEL; KULKARNI, DEVENDRA
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 056174/0471 →
Continuity (1)
Related Publication 20220357883A1 · Nov 10, 2022