Skip to main content

Provision NVMe storage

Contributors netapp-aherbin netapp-dbagwell netapp-thomi netapp-aoife netapp-ahibbard

Use these steps to create namespaces and provision storage for any NVMe supported host on an existing storage VM.

About this task

This procedure applies to FAS, AFF, and current ASA systems. If you have an ASA r2 system (ASA A1K, ASA A70, or ASA A90), follow these steps to provision your storage. ASA r2 systems provide a simplified ONTAP experience specific to SAN-only customers.

Beginning with ONTAP 9.8, when you provision storage, QoS is enabled by default. You can disable QoS or choose a custom QoS policy during the provisioning process or at a later time.

Before you begin

Your storage VM must be configured for NVME, and your FC or TCP transport should already be set up.

System Manager

Using ONTAP System Manager (9.7 and later), create namespaces to provide storage using the NVMe protocol.

Steps
  1. In System Manager, click Storage > NVMe Namespaces and then click Add.

    If you need to create a new subsystem, click More Options.

  2. If you are running ONTAP 9.8 or later and you want to disable QoS or choose a custom QoS policy, click More Options and then, under Storage and Optimization select Performance Service Level.

  3. Zone your FC switches by WWPN. Use one zone per initiator and include all target ports in each zone.

  4. On your host, discover the new namespaces.

  5. Initialize the namespace and format it with a file system.

  6. Verify that your host can write and read data on the namespace.

CLI

Using the ONTAP CLI, create namespaces to provide storage using the NVMe protocol.

This procedure creates an NVMe namespace and subsystem on an existing storage VM which has already been configured for the NVMe protocol, then maps the namespace to the subsystem to allow data access from your host system.

If you need to configure the storage VM for NVMe, see Configure an SVM for NVMe.

Steps
  1. Verify that the SVM is configured for NVMe:

    vserver show -vserver <svm_name> -fields allowed-protocols

    NVMe should be displayed under the allowed-protocols column.

  2. Create the NVMe namespace:

    Note The volume you reference with the -path parameter must already exist or you will need to create one before running this command.
    vserver nvme namespace create -vserver <svm_name> -path <path> -size <size_of_namespace> -ostype <OS_type>
  3. Create the NVMe subsystem:

    vserver nvme subsystem create -vserver <svm_name> -subsystem <name_of_subsystem> -ostype <OS_type>

    The NVMe subsystem name is case sensitive. It must contain 1 to 96 characters. Special characters are allowed.

  4. Verify that the subsystem was created:

    vserver nvme subsystem show -vserver <svm_name>

    The nvme subsystem should be displayed under the Subsystem column.

  5. Obtain the NQN from the host.

  6. Add the host NQN to the subsystem:

    vserver nvme subsystem host add -vserver <svm_name> -subsystem <subsystem_name> -host-nqn <Host_NQN>
  7. Map the namespace to the subsystem:

    vserver nvme subsystem map add -vserver <svm_name> -subsystem <subsystem_name> -path <path>

    A namespace can only be mapped to a single subsystem.

  8. Verify that the namespace is mapped to the subsystem:

    vserver nvme namespace show -vserver <svm_name> -instance

    The subsystem should be listed as the Attached subsystem.