IP Library Granted Patent US 11,561,727
Granted Patent B2
US 11,561,727 · App. 16/939,157 · Granted Jan 24, 2023

Hardware virtualization

Inventors: Igor Fradkin (Sharon, MA); Scott Rowlands (Marietta, GA); Ramprasad Shetty (Southborough, MA); David Brown (Natick, MA); Arieh Don (Newton, MA)
Assignee: EMC IP Holding Company LLC
G06F3/0659G06F3/0611G06F3/0613G06F3/0653G06F3/0683
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,561,727
App. No.
16/939,157
Granted
Jan 24, 2023
Kind
B2
Abstract

Embodiments of the present disclosure relate to traffic class management of NVMe (non-volatile memory express) traffic. One or more virtual controllers for at least one host adapter (HA) of a storage device are generated. Each virtual controller is assigned a unique controller identifier (ID) Additionally, one or more input/output (IO) queues for each virtual controller are established. Further, IO workloads are processed via each IO queue.

Claims (44)

1. A method comprising:

generating one or more virtual controllers for at least one host adapter (HA) of a storage array, wherein each virtual controller is assigned a unique controller identifier (ID);

establishing one or more input/output (TO) queues for each virtual controller;

allocating a portion of the one or more virtual controller's resources to the one or more controller's IO queues based on IO service levels (SLs) related to the one or more IO queues, wherein the resources include memory and storage devices;

providing each IO queue with metadata that identifies the IO queue's queue depth, total size, and available memory slots;

based on each IO queue' status, issuing an update IO queue status signal to each remote host corresponding to each IO queue; and

processing IO workloads via the one or more IO queues.

2. The method of claim 1 further comprising:

provisioning each virtual controller with one or more storage array resources.

3. The method of claim 2 further comprising:

providing each IO queue with access to the one or more storage array resources provisioned to the IO queue's respective virtual controller.

4. The method of claim 2 further comprising:

establishing a distinct connection ID for each IO queue.

5. The method of claim 2 further comprising:

associating each IO queue with a service level (SL) that defines one or more expected performance metrics for each IO operation queued in each IO queue.

6. The method of claim 5 , wherein at least one performance metric corresponds to a range of IO operations per second (IOPS).

7. The method of claim 6 further comprising:

provisioning each IO queue with the one or more storage array resources based on each queue's assigned SL.

8. The method of claim 5 further comprising:

establishing communication channels with one or more host devices.

9. The method of claim 5 further comprising:

providing each host device with information corresponding to each virtual controller and the one or more IO queues established for each virtual controller, wherein the information enables the host device to direct each IO operation to one of the virtual controllers and a particular IO queue based on the IO queue's assigned SL.

10. An apparatus configured to at least one processor configured to:

generate one or more virtual controllers for at least one host adapter (HA) of a storage array, wherein each virtual controller is assigned a unique controller identifier (ID);

establish one or more input/output (TO) queues for each virtual controller;

allocate a portion of the one or more virtual controller's resources to the one or more controller's IO queues based on TO service levels (SLs) related to the one or more IO queues, wherein the resources include memory and storage devices;

provide each IO queue with metadata that identifies the IO queue's queue depth, total size, and available memory slots;

based on each IO queue' status, issue an update IO queue status signal to each remote host corresponding to each IO queue; and

process TO workloads via the one or more IO queues.

11. The apparatus of claim 10 further configured to:

provision each virtual controller with one or more storage array resources.

12. The apparatus of claim 11 further configured to:

provide each IO queue with access to the one or more storage array resources provisioned to the IO queue's respective virtual controller.

13. The apparatus of claim 11 further configured to:

establish a distinct connection ID for each IO queue.

14. The apparatus of claim 11 further configured to:

associate each IO queue with a service level (SL) that defines one or more expected performance metrics for each TO operation queued in each IO queue.

15. The apparatus of claim 14 , wherein at least one performance metric corresponds to a range of IO operations per second (IOPS).

16. The apparatus of claim 15 further configured to:

provision each IO queue with the one or more storage array resources based on each queue's assigned SL.

17. The apparatus of claim 14 further configured to:

establish communication channels with one or more host devices.

18. The apparatus of claim 14 further configured to:

provide each host device with information corresponding to each virtual controller and the one or more IO queues established for each virtual controller, wherein the information enables the host device to direct each IO operation to one of the virtual controllers and a particular IO queue based on the IO queue's assigned SL.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053574/0221) 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 060333/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053578/0183) 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 060332/0864 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053573/0535) 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 060333/0106 →
RELEASE OF SECURITY INTEREST AT REEL 053531 FRAME 0108 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0371 →
SECURITY INTEREST Recorded Aug 21, 2020
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 053578/0183 →
SECURITY INTEREST Recorded Aug 21, 2020
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 053573/0535 →
SECURITY INTEREST Recorded Aug 21, 2020
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 053574/0221 →
SECURITY AGREEMENT Recorded Aug 18, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 053531/0108 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 27, 2020
From: FRADKIN, IGOR; ROWLANDS, SCOTT; SHETTY, RAMPRASAD; BROWN, DAVID; DON, ARIEH
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 053314/0836 →