IP Library › Granted Patent US 11,113,001
Granted Patent B2
US 11,113,001 · App. 16/557,562 · Granted Sep 7, 2021

Fabric driven non-volatile memory express subsystem zoning

Inventors: Asutosh Satapathy (Bangalore, IN); Komateswar Dhanadevan (Bangalore, IN); Krishna Babu Puttagunta (Roseville, CA); Vivek Agarwal (Andover, MA); Rupin T. Mohan (Andover, MA); Govind Chandru Rathod (Bangalore, IN)
Assignee: Hewlett Packard Enterprise Development LP
G06F3/0659G06F3/0607G06F3/067G06F3/0679
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,113,001
App. No.
16/557,562
Granted
Sep 7, 2021
Kind
B2
Abstract

In some examples, fabric driven NVMe subsystem zoning may include receiving, from a non-volatile memory express (NVMe) Name Server (NNS), a zoning specification that includes an indication of a host that is to communicate with a given NVMe subsystem of an NVMe storage domain. Based on the zoning specification, the host may be designated as being permitted to connect to the given NVMe subsystem of the NVMe storage domain. An NVMe connect command may be received from the host. Based on the designation and an analysis of the NVMe connect command, a connection may be established between the given NVMe subsystem of the NVMe storage domain and the host.

Claims (77)

1. An apparatus comprising:

at least one processor; and

a non-transitory computer readable medium storing machine readable instructions that when executed by the at least one processor cause the at least one processor to:

receive, from a non-volatile memory express (NVMe) Name Server (NNS), a zoning specification that includes an indication of a host that is to communicate with a given NVMe subsystem of an NVMe storage domain;

designate, based on the zoning specification, the host as being permitted to connect to the given NVMe subsystem of the NVMe storage domain;

receive, from the host, an NVMe connect command;

establish, based on the designation and an analysis of the NVMe connect command, a connection between the given NVMe subsystem of the NVMe storage domain and the host;

receive, prior to receiving the NVMe connect command, a discovery command from the host; and

forward, in response to the discovery command, a payload to the host, the payload;

masking NVMe subsystems of the NVMe storage domain that are different from the given NVMe subsystem of the NVMe storage domain, and

including an Internet Protocol (IP) address associated with an NVMe qualified name (NQN) for the given NVMe subsystem of the NVMe storage domain.

2. The apparatus according to claim 1 , wherein the zoning specification includes an indication of:

an NVMe qualified name (NQN) for the host and an Internet Protocol (IP) address associated with the NQN for the host; and

an NQN for the given NVMe subsystem of the NVMe storage domain and an IP address associated with the NQN for the given NVMe subsystem of the NVMe storage domain.

3. The apparatus according to claim 1 , wherein the NVMe storage domain includes a plurality of NVMe subsystems including the given NVMe subsystem of the NVMe storage domain.

4. The apparatus according to claim 1 , wherein the NVMe connect command includes an indication of:

an Internet Protocol (IP) address associated with an NVMe qualified name (NQN) for the host; and

an NQN for the given NVMe subsystem of the NVMe storage domain and an IP address associated with the NQN for the given NVMe subsystem of the NVMe storage domain.

5. The apparatus according to claim 1 , wherein the instructions to establish, based on the designation and the analysis of the NVMe connect command, the connection between the given NVMe subsystem of the NVMe storage domain and the host are further to cause the processor to:

determine whether the NVMe connect command is from the designated host;

based on a determination that the NVMe connect command is from the designated host, determine whether an Internet Protocol (IP) address of the given NVMe subsystem of the NVMe storage domain is associated with the designated host; and

based on a determination that the IP address of the given NVMe subsystem of the NVMe storage domain is associated with the designated host, establish the connection between the given NVMe subsystem of the NVMe storage domain and the designated host.

6. The apparatus according to claim 1 , wherein the instructions to receive, from the NNS, the zoning specification that includes the indication of the host that is to communicate with the given NVMe subsystem of the NVMe storage domain are further to cause the processor to:

receive, from the NNS, the zoning specification that includes the indication of a port of the host that is to communicate with the given NVMe subsystem of the NVMe storage domain.

7. The apparatus according to claim 6 , wherein the instructions are further to cause the processor to:

receive, from the NNS, another zoning specification that includes an indication of another port of the host that is to communicate with another given NVMe subsystem of the NVMe storage domain;

further designate, based on the another zoning specification, the another port of the host as being permitted to connect to the another given NVMe subsystem of the NVMe storage domain;

receive, from the host, another NVMe connect command; and

establish, based on the further designation and an analysis of the another NVMe connect command, a connection between the another given NVMe subsystem of the NVMe storage domain and the another port of the host.

8. A computer implemented method comprising:

receiving, from a non-volatile memory express (NVMe) Name Server (NNS), a zoning specification that includes an indication of a host that is to communicate with a given NVMe subsystem of an NVMe storage domain that includes a plurality of NVMe subsystems;

designating, based on the zoning specification, the host as being permitted to connect to the given NVMe subsystem of the NVMe storage domain;

receiving, from the host, an NVMe connect command; and

establishing, based on the designation and an analysis of the NVMe connect command, a connection between the given NVMe subsystem and the NVMe storage domain to the host;

receiving, prior to receiving the NVMe connect command, a discovery command from the host; and

forwarding, in response to the discovery command, a payload to the host, the payload;

masking the plurality of NVMe subsystems of the NVMe storage domain that are different from the given NVMe subsystem of the NVMe storage domain, and

including an Internet Protocol (IP) address associated with an NVMe qualified name (NQN) for the given NVMe subsystem of the NVMe storage domain.

9. The method according to claim 8 , wherein the zoning specification includes an indication of:

an NVMe qualified name (NQN) for the host and an Internet Protocol (IP) address associated with the NQN for the host; and

an NQN for the given NVMe subsystem of the NVMe storage domain and an IP address associated with the NQN for the given NVMe subsystem of the NVMe storage domain.

10. The method according to claim 8 , wherein the NVMe connect command includes an indication of:

an Internet Protocol (IP) address associated with an NVMe qualified name (NQN) for the host; and

an NQN for the given NVMe subsystem of the NVMe storage domain and an IP address associated with the NQN for the given NVMe subsystem of the NVMe storage domain.

11. The method according to claim 8 , wherein establishing, based on the designation and the analysis of the NVMe connect command, the connection between the given NVMe subsystem of the NVMe storage domain and the host further comprises:

determining whether the NVMe connect command is from the designated host;

based on a determination that the NVMe connect command is from the designated host, determining whether an Internet Protocol (IP) address of the given NVMe subsystem of the NVMe storage domain is associated with the designated host; and

based on a determination that the IP address of the given NVMe subsystem of the NVMe storage domain is associated with the designated host, establishing the connection between the given NVMe subsystem of the NVMe storage domain and the designated host.

12. The method according to claim 8 , wherein receiving, from the NNS, the zoning specification that includes the indication of the host that is to communicate with the given NVMe subsystem of the NVMe storage domain further comprises:

receiving, from the NNS, the zoning specification that includes the indication of a port of the host that is to communicate with the given NVMe subsystem of the NVMe storage domain.

13. The method according to claim 12 , further comprising:

receiving, from the NNS, another zoning specification that includes an indication of another port of the host that is to communicate with another given NVMe subsystem of the NVMe storage domain;

further designating, based on the another zoning specification, the another port of the host as being permitted to connect to the another given NVMe subsystem of the NVMe storage domain;

receiving, from the host, another NVMe connect command; and

establishing, based on the further designation and an analysis of the another NVMe connect command, a connection between the another given NVMe subsystem of the NVMe storage domain and the another port of the host.

14. A non-transitory computer readable medium having stored thereon machine readable instructions, the machine readable instructions, when executed, cause a processor to:

receive, from a non-volatile memory express (NVMe) Name Server (NNS), a zoning specification that includes an indication of a host that is to communicate with a given NVMe subsystem of an NVMe storage domain;

designate, based on the zoning specification, the host as being permitted to connect to the given NVMe subsystem of the NVMe storage domain;

receive a discovery command from the host;

forward, in response to the discovery command, a payload to the host, the payload;

masking NVMe subsystems of the NVMe storage domain that are different from the given NVMe subsystem of the NVMe storage domain, and

including an Internet Protocol (IP) address associated with an NVMe qualified name (NQN) for the given NVMe subsystem of the NVMe storage domain;

receive, from the host, in response to the payload, an NVMe connect command; and

establish, based on the designation and an analysis of the NVMe connect command, a connection between the given NVMe subsystem of the NVMe storage domain and the host.

15. The non-transitory computer readable medium according to claim 14 , wherein the zoning specification includes an indication of:

an NQN for the host and an IP address associated with the NQN for the host; and

the NQN for the given NVMe subsystem of the NVMe storage domain and the IP address associated with the NQN for the given NVMe subsystem of the NVMe storage domain.

16. The non-transitory computer readable medium according to claim 14 , wherein the NVMe connect command includes an indication of:

an IP address associated with an NQN for the host; and

the NQN for the given NVMe subsystem of the NVMe storage domain and the IP address associated with the NQN for the given NVMe subsystem of the NVMe storage domain.

17. The non-transitory computer readable medium according to claim 14 , wherein the machine readable instructions to receive, from the NNS, the zoning specification that includes the indication of the host that is to communicate with the given NVMe subsystem of the NVMe storage domain, when executed, further cause the processor to:

receive, from the NNS, the zoning specification that includes the indication of a port of the host that is to communicate with the given NVMe subsystem of the NVMe storage domain.

18. The non-transitory computer readable medium according to claim 14 , wherein the machine readable instructions, when executed, further cause the processor to:

receive, from the NNS, another zoning specification that includes an indication of another port of the host that is to communicate with another given NVMe subsystem of the NVMe storage domain;

further designate, based on the another zoning specification, the another port of the host as being permitted to connect to the another given NVMe subsystem of the NVMe storage domain;

receive, from the host, another NVMe connect command; and

establish, based on the further designation and an analysis of the another NVMe connect command, a connection between the another given NVMe subsystem of the NVMe storage domain and the another port of the host.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 30, 2019
From: SATAPATHY, ASUTOSH; DHANADEVAN, KOMATESWAR; PUTTAGUNTA, KRISHNA BABU; AGARWAL, VIVEK; MOHAN, RUPIN T.; RATHOD, GOVIND CHANDRU
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 050226/0553 →
Continuity (1)
Related Publication 20210064281A1 · Mar 4, 2021