IP Library › Granted Patent US 12,353,714
Granted Patent B1
US 12,353,714 · App. 18/603,891 · Granted Jul 8, 2025

Dynamic adjustment of network resources based on logical storage volume working set

Inventors: Igor Achkinazi (Northborough, MA); Lev Knopov (Brookline, MA)
Assignee: Dell Products L.P.
G06F3/061G06F3/0644G06F3/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,353,714
App. No.
18/603,891
Filed
Mar 13, 2024
Granted
Jul 8, 2025
Kind
B1
Art Unit
2133
USPC
711/154
Abstract

An apparatus comprises at least one processing device that includes a processor coupled to a memory. The processing device is configured to receive in a host device, for a plurality of targets of a storage system, information characterizing particular sets of one or more logical storage volumes accessible to the host device via respective ones of the targets, to compare the received information to a working set maintained by the host device, the working set identifying one or more logical storage volumes utilized by at least one application deployed on the host device, and to control a number of input-output (IO) queues configured in the storage system for each of one or more of the targets based at least in part on a result of the comparison of the received information to the working set. The targets illustratively comprise NVMe targets, and the logical storage volumes comprise respective NVMe namespaces.

Claims (38)

1. An apparatus comprising:

at least one processing device comprising a processor coupled to a memory;

the at least one processing device being configured:

to receive in a host device, for a plurality of targets of a storage system, information characterizing particular sets of one or more logical storage volumes accessible to the host device via respective ones of the targets;

to compare the received information to a working set maintained by the host device, the working set identifying one or more logical storage volumes utilized by at least one application deployed on the host device; and

to control a number of input-output (IO) queues configured in the storage system for each of one or more of the targets based at least in part on a result of the comparison of the received information to the working set.

2. The apparatus of claim 1 wherein each of the IO queues configured in the storage system for a given one of the targets is associated with a corresponding different Transmission Control Protocol (TCP) connection between the host device and the given target.

3. The apparatus of claim 1 wherein the storage system comprises a distributed storage system that includes a plurality of storage nodes, and wherein different ones of the targets are implemented on respective different ones of the storage nodes.

4. The apparatus of claim 3 wherein the distributed storage system comprises a software-defined storage system and the storage nodes comprise respective software-defined storage server nodes of the software-defined storage system.

5. The apparatus of claim 1 wherein a given one of the targets comprises at least one Non-Volatile Memory Express (NVMe) controller of the storage system.

6. The apparatus of claim 1 wherein the logical storage volumes comprise respective NVMe namespaces.

7. The apparatus of claim 1 wherein controlling a number of IO queues configured in the storage system for each of one or more of the targets based at least in part on a result of the comparison of the received information to the working set comprises:

setting the number of IO queues for a given one of the targets to a first number responsive to the received information indicating that the given target does not provide access to any of the logical storage volumes in the working set;

setting the number of IO queues for the given one of the targets to a second number, the second number being greater than the first number, responsive to the received information indicating that the given target provides access to at least one of the logical storage volumes in the working set.

8. The apparatus of claim 7 wherein the first number is zero and the second number is greater than or equal to one.

9. The apparatus of claim 7 wherein the number of IO queues for the given target is initially set to the first number and is subsequently increased to the second number responsive to an asynchronous event notification received in the host device from the given target, wherein the asynchronous event notification indicates a change in an active list of logical storage volumes accessible via the given target to include at least one of the logical storage volumes in the working set.

10. The apparatus of claim 7 wherein the number of IO queues for the given target is initially set to the second number and is subsequently decreased to the first number responsive to a change in the working set which results in the working set not including any logical storage volume for which access is provided via the given target.

11. The apparatus of claim 10 wherein for each of one or more of the IO queues previously configured for the given target, the host device sends a disconnect IO queue command and disconnects a corresponding TCP connection, in order to reduce the number of IO queues for the given target to the first number.

12. The apparatus of claim 1 wherein the received information comprises, for each of the targets, a corresponding active list of logical storage volumes accessible via that target.

13. The apparatus of claim 12 wherein the active list is reported by a given one of the targets to the host device in conjunction with a TCP association establishment phase in which a TCP association is established between the host device and the given target utilizing an administrative queue of the given target.

14. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device comprising a processor coupled to a memory, causes the at least one processing device:

to receive in a host device, for a plurality of targets of a storage system, information characterizing particular sets of one or more logical storage volumes accessible to the host device via respective ones of the targets;

to compare the received information to a working set maintained by the host device, the working set identifying one or more logical storage volumes utilized by at least one application deployed on the host device; and

to control a number of input-output (IO) queues configured in the storage system for each of one or more of the targets based at least in part on a result of the comparison of the received information to the working set.

15. The computer program product of claim 14 wherein each of the IO queues configured in the storage system for a given one of the targets is associated with a corresponding different Transmission Control Protocol (TCP) connection between the host device and the given target.

16. The computer program product of claim 14 wherein controlling a number of IO queues configured in the storage system for each of one or more of the targets based at least in part on a result of the comparison of the received information to the working set comprises:

setting the number of IO queues for a given one of the targets to a first number responsive to the received information indicating that the given target does not provide access to any of the logical storage volumes in the working set;

setting the number of IO queues for the given one of the targets to a second number, the second number being greater than the first number, responsive to the received information indicating that the given target provides access to at least one of the logical storage volumes in the working set.

17. A method comprising:

receiving in a host device, for a plurality of targets of a storage system, information characterizing particular sets of one or more logical storage volumes accessible to the host device via respective ones of the targets;

comparing the received information to a working set maintained by the host device, the working set identifying one or more logical storage volumes utilized by at least one application deployed on the host device; and

controlling a number of input-output (IO) queues configured in the storage system for each of one or more of the targets based at least in part on a result of the comparison of the received information to the working set;

wherein the method is performed by at least one processing device comprising a processor coupled to a memory.

18. The method of claim 17 wherein each of the IO queues configured in the storage system for a given one of the targets is associated with a corresponding different Transmission Control Protocol (TCP) connection between the host device and the given target.

19. The method of claim 17 wherein controlling a number of IO queues configured in the storage system for each of one or more of the targets based at least in part on a result of the comparison of the received information to the working set comprises:

setting the number of IO queues for a given one of the targets to a first number responsive to the received information indicating that the given target does not provide access to any of the logical storage volumes in the working set;

setting the number of IO queues for the given one of the targets to a second number, the second number being greater than the first number, responsive to the received information indicating that the given target provides access to at least one of the logical storage volumes in the working set.

20. The method of claim 19 wherein the number of IO queues for the given target is initially set to the first number and is subsequently increased to the second number responsive to an asynchronous event notification received in the host device from the given target, wherein the asynchronous event notification indicates a change in an active list of logical storage volumes accessible via the given target to include at least one of the logical storage volumes in the working set.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 13, 2024
From: ACHKINAZI, IGOR; KNOPOV, LEV
To: DELL PRODUCTS L.P.
Reel/Frame 066754/0851 →
References Cited (24)
US 10310760B1 · Dreier et al. · 2019 [cited by applicant]
US 10893105B1 · Bono et al. · 2021 [cited by applicant]
US 11550511B2 · Mallick et al. · 2023 [cited by applicant]
US 20030149773A1 · Harbin et al. · 2003 [cited by applicant]
US 20090154472A1 · Chung et al. · 2009 [cited by applicant]
US 20130198312A1 · Tamir et al. · 2013 [cited by applicant]
US 20130226887A1 · Braam et al. · 2013 [cited by applicant]
US 20150012607A1 · Cayton et al. · 2015 [cited by applicant]
US 20170177222A1 · Singh et al. · 2017 [cited by applicant]
US 20190138244A1 · Singh · 2019 [cited by examiner]
US 20200019521A1 · Solanki et al. · 2020 [cited by applicant]
US 20200026606A1 · Farnum et al. · 2020 [cited by applicant]
US 20210279070A1 · Shaw · 2021 [cited by examiner]
US 20220374167A1 · Mallick et al. · 2022 [cited by applicant]
US 20230229314A1 · Chen et al. · 2023 [cited by applicant]
US 20230297238A1 · Mallick et al. · 2023 [cited by applicant]
US 20230325074A1 · Achkinazi et al. · 2023 [cited by applicant]
US 20230325114A1 · Achkinazi et al. · 2023 [cited by applicant]
EMC Corporation, “EMC ScaleIO Design Considerations and Best Practices,” EMC White Paper, Jun. 2016, 30 pages. [cited by applicant]
VMWARE, “VMware ESX Server,” Product Datasheet, 2007, 4 pages. [cited by applicant]
Dell EMC, “Dell EMC VxFlex OS: Networking Best Practices and Design Considerations,” Dell EMC White Paper, Jul. 2018, 38 pages. [cited by applicant]
EMC Corporation, “EMC ScaleIO Architectural and Functional Overview,” EMC White Paper, Dec. 2013, 13 pages. [cited by applicant]
NVM Express, “NVM Express Base Specification, Revision 2.0c,” NVM Express, Oct. 4, 2022, 458 pages. [cited by applicant]
U.S. Appl. No. 18/586,843 filed in the name of Igor Achkinazi on Feb. 26, 2024, and entitled “Storage System With Dynamic Adjustment of Network Resources.”. [cited by applicant]