IP Library Granted Patent US 11,079,939
Granted Patent B1
US 11,079,939 · App. 16/947,397 · Granted Aug 3, 2021

Distributing I/O Q-connections of subsytems among hosts

Inventors: Krishna Babu Puttagunta (Rocklin, CA); Rupin Tashi Mohan (Northborough, MA)
Assignee: Hewlett Packard Enterprise Development LP
G06F3/061G06F3/0607G06F3/0679G06F13/4022G06F2213/0026
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,079,939
App. No.
16/947,397
Granted
Aug 3, 2021
Kind
B1
Abstract

Examples include distribution of I/O Q-connections of an NVMe™ subsystem among hosts that are to communicate with the NVMe™ subsystem in an NVMe™ zone of a system. Some examples receive information including a number of I/O Q-connections available at the NVMe™ subsystem, register the number of available I/O Q-connections of the NVMe™ subsystem with an NVMe™ fabric controller, determine a number of I/O Q-connections of the NVMe™ subsystem allowed to be used by each host and send to, each host, a first notification including the number of allowed I/O Q-connections of the NVMe™ subsystem to be used by the host.

Claims (48)

1. A non-volatile memory express (NVMe™) fabric controller, comprising:

at least one processing resource and a non-transitory machine-readable storage medium comprising instructions executable by the at least one processing resource to:

receive, from an NVMe™ subsystem of an NVMe™ zone, information comprising a number of I/O Q-connections available at the NVMe™ subsystem at a point in time;

based on a number of hosts to communicate with the NVMe™ subsystem in the NVMe™ zone and the number of available I/O Q-connections at the point in time, determine a number of I/O Q-connections of the NVMe™ subsystem allowed to be used by each host; and

send, to each host, a first notification comprising the number of allowed I/O Q-connections to be used by the host.

2. The NVMe™ fabric controller of claim 1 , wherein the information further comprises an indication of:

an NVMe™ qualified name (NQN) for the NVMe™ subsystem; and

an IP address associated with the NQN for the NVMe™ subsystem.

3. The NVMe™′ fabric controller of claim 1 , wherein the instructions comprise instructions executable by the at least one processing resource to:

register the number of available I/O Q-connections of the NVMe™ subsystem with the NVMe™ fabric controller.

4. The NVMe™ fabric controller of claim 1 , wherein the instructions to determine the number of I/O Q-connections of the NVMe™ subsystem allowed to be used by each host comprise instructions to distribute the number of available I/O Q-connections among the hosts.

5. The NVMe™ fabric controller of claim 1 , wherein the first notification comprises an indication of an NQN for the NVMe™ subsystem.

6. The NVMe™ fabric controller of claim 1 , wherein the instructions comprise instructions executable by the at least one processing resource to:

send, to the NVMe™ subsystem, a notification comprising the number of allowed I/O Q-connections to be used by each host.

7. The NVMe™ fabric controller of claim 6 , wherein the notification comprises an indication of an NQN for each host.

8. The NVMe™ fabric controller of claim 1 , wherein the instructions comprise instructions executable by the at least one processing resource to:

in response to sending the first notification, receive, from each host, a first response notification comprising a number of I/O Q-connections of the NVMe™ subsystem identified to be used by the host based on the number of allowed I/O Q-connections to be used by the host.

9. The NVMe™ fabric controller of claim 8 , wherein the instructions comprise instructions executable by the at least one processing resource to:

upon receiving the first response notification, determine whether the number of identified I/O Q-connections to be used by a given host is less than the number of allowed I/O Q-connections to be used by the given host to determine a number of excess I/O Q-connections available at the NVMe™ subsystem;

upon determining the number of excess I/O Q-connections available at the NVMe™ subsystem, determine a number of additional I/O Q-connections allowed to be used by each of other hosts of the hosts based on the number of excess I/O Q-connections available at the NVMe™ subsystem;

send, to each of other hosts, a second notification comprising the number of additional allowed I/O connections to be used by the host; and

in response to the second notification, receive, from one or more hosts of the other hosts, a second response notification comprising a number of additional I/O Q-connections identified to be used by each of the one or more hosts based on the number of additional allowed I/O Q-connections to be used by the host.

10. A non-transitory machine readable medium comprising instructions executable by at least one processing resource to:

register a number of I/O Q-connections available at an NVMe™ subsystem of an NVMe™ zone with an NVMe™ fabric controller based on information received from the NVMe™ subsystem, wherein the information comprises the number of available I/O Q-connections of the NVMe™ subsystem at a point in time;

based on a number of hosts to communicate with the NVMe™ subsystem in the NVMe™ zone and the number of available I/O Q-connections at the point in time, determine a number of I/O Q-connections of the NVMe™ subsystem allowed to be used by each host; and

send, to each host, a first notification comprising the number of owed I/O Q-connections to be used by the host.

11. A method, comprising:

with an NVMe™ fabric controller, receiving, from an NVMe™ subsystem of an NVMe™ zone, information comprising a number of I/O Q-connections available at the NVMe™ at a point in time;

with the NVMe™ fabric controller, determining a number of hosts to communicate with the NVMe™′ subsystem in the NVMe™ zone; and

with the NVMe™ fabric controller, based on the number of hosts to communicate with the NVMe™ subsystem in the NVMe™ zone, sending, to each host, a first notification comprising information related to distribution of the number of available I/O Q-connections of the NVMe™ subsystem among the hosts.

12. The method of claim 11 , wherein the information further comprises an indication of:

an NVMe™ qualified name (NQN) for the NVMe™ subsystem; and

an IP address associated with the NQN for the NVMe™ subsystem.

13. The method of claim 11 , further comprising:

registering the number of available I/O Q-connections of the NVMe™ subsystem with the NVMe™ fabric controller.

14. The method of claim 11 , wherein the first notification comprises the number of available I/O Q-connections of the NVMe™ subsystem and the number of hosts to communicate with the NVMe™ subsystem in the NVMe™ zone.

15. The method of claim 11 , further comprising determining a number of I/O Q-connections of the NVMe™ subsystem allowed to be used by each host by distributing the available I/O Q-connections of the NVMe™ subsystem among the hosts, and wherein the first notification comprises the number of allowed I/O (Q)-connections of the NVMe™ subsystem to be used by the host.

16. The method of claim 11 , wherein the first notification further comprises an indication of an NQN for the NVMe™ subsystem.

17. The method of claim 11 , further comprising:

with the NVMe™ fabric controller, sending, to the NVMe™ subsystem, a notification comprising the number of allowed I/O Q-connections to be used by each host.

18. The method of claim 17 , wherein the notification comprises an indication of an NQN for each host.

19. The method of claim 11 , further comprising:

with the NVMe™ fabric controller, receiving, from each host, a first response notification in response to sending the first notification, wherein the first response notification comprises a number of I/O Q-connections of the NVMe™ subsystem identified to be used by the host based on the number of allowed I/O Q-connections of the NVMe™ subsystem to be used by the host.

20. The method of claim 19 , further comprising:

upon receiving the first response notification, determining, with the NVMe™ fabric controller, whether the number of identified I/O Q-connections to be used by a given host of the hosts is less than the number of allowed I/O Q-connections to be used by the given host to determine a number of excess I/O Q-connections available at the NVMe™ subsystem;

upon determining the number of excess I/O Q-connections available at the NVMe™ subsystem, determining, with the NVMe™ fabric controller, a number of additional I/O Q-connections allowed to be used by each of other hosts of the hosts based on the number of excess I/O Q-connections available at the NVMe™ subsystem;

with the NVMe™ fabric controller, sending, to each of the other hosts, a second notification comprising the number of additional allowed I/O Q-connections to be used by the host; and

with the NVMe™ fabric controller, receiving, from one or more hosts of the other hosts, a second response notification comprising a number of additional I/O Q-connections identified to be used by each of the one or more hosts based on the number of additional allowed I/O Q-connections to be used by the host.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 30, 2020
From: PUTTAGUNTA, KRISHNA BABU; MOHAN, RUPIN TASHI
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 053359/0531 →
Cited By (2)
US 12,282,661 US 12,717,709