Skip to main content
SAN hosts and cloud clients

Configure Windows Server 2012 R2 with NVMe/FC for ONTAP

Contributors netapp-ranuk netapp-pcarriga netapp-cplumer

You can configure NVMe over Fibre Channel (NVMe/FC) on hosts running Windows Server 2012 R2 for operation with ONTAP LUNs.

About this task

You can use the following support with the NVMe/FC host configuration for Windows 2012 R2. You should also review the known limitations before starting the configuration process.

Note You can use the configuration settings provided in this procedure to configure cloud clients connected to Cloud Volumes ONTAP and Amazon FSx for ONTAP.
  • Support available:

    Beginning with ONTAP 9.7, NVMe/FC is supported for Windows Server 2012 R2.

    For a list of supported FC adapters and controllers, see the Hardware Universe. For the current list of supported configurations and versions, see the Interoperability Matrix Tool.

  • Known limitations:

    Windows Failover Cluster isn't supported with NVMe/FC because ONTAP doesn't currently support persistent reservations with NVMe/FC.

    Note Broadcom ships an external driver for Windows NVMe/FC that is a translational SCSI ⇄ NVMe driver and not a true NVMe/FC driver. The translational overhead doesn't necessarily impact performance, but it does negate the performance benefits of NVMe/FC. As a result, NVMe/FC and FCP performance is the same on Windows servers, unlike other operating systems such as Linux, where NVMe/FC performance is significantly better than that of FCP.

Enable NVMe/FC

Enable FC/NVMe on the Windows initiator host.

Steps
  1. Install OneCommand Manager utility on the Windows host.

  2. On each of the HBA initiator ports, set the following HBA driver parameters:

    • EnableNVMe = 1

    • NVMEMode = 0

  3. Reboot the host.

Configure the Broadcom FC adapter

The Broadcom initiator can serve both NVMe/FC and FCP traffic through the same 32G FC adapter ports. For FCP and FC/NVMe, you should use the Microsft device-specific module (DSM) as the Microsoft Multipath I/O (MPIO) option.

A hostnqn is associated with each host bus adapter (HBA) port for the Broadcom adapter with FC/NVMe in a Windows environment. The hostnqn is formatted as shown in the following example:

nqn.2017-01.com.broadcom:ecd:nvmf:fc:100000109b1b9765
nqn.2017-01.com.broadcom:ecd:nvmf:fc:100000109b1b9766

Enable MPIO for NVMe devices

You need to enable MPIO for NVMe devices to complete the NVMe configuration on the Windows host.

Steps
  1. Install Windows Host Utility Kit 7.1 to set the driver parameters that are common to both FC and NVMe.

  2. Open the MPIO properties.

  3. From the Discover Multi-Paths tab, add the device ID listed for NVMe.

    MPIO becomes aware of the NVMe devices, which are visible under disk management.

  4. Open Disk Management and go to Disk Properties.

  5. From the MPIO tab, select Details.

  6. Set the following Microsoft DSM settings:

    • PathVerifiedPeriod: 10

    • PathVerifyEnabled: Enable

    • RetryCount: 6

    • RetryInterval: 1

    • PDORemovedPeriod: 130

  7. Select the MPIO Policy Round Robin with Subset.

  8. Change the registry values:

    HKLM\SYSTEM\CurrentControlSet\Services\mpio\Parameters\PathRecoveryInterval DWORD -> 30
    
    HKLM\SYSTEM\CurrentControlSet\Services\mpio \Parameters\ UseCustomPathRecoveryInterval  DWORD-> 1
  9. Reboot the host.

Validate NVMe/FC

Verify that the NVMe subsystems have been discovered and the ONTAP namespaces are correct for the NVMe-oF configuration.

Steps
  1. Verify that "Port Type" is FC+NVMe:

    listhba

    Show example
    Port WWN       : 10:00:00:10:9b:1b:97:65
    Node WWN       : 20:00:00:10:9b:1b:97:65
    Fabric Name    : 10:00:c4:f5:7c:a5:32:e0
    Flags          : 8000e300
    Host Name      : INTEROP-57-159
    Mfg            : Emulex Corporation
    Serial No.     : FC71367217
    Port Number    : 0
    Mode           : Initiator
    PCI Bus Number : 94
    PCI Function   : 0
    Port Type      : FC+NVMe
    Model          : LPe32002-M2
    
    Port WWN       : 10:00:00:10:9b:1b:97:66
    Node WWN       : 20:00:00:10:9b:1b:97:66
    Fabric Name    : 10:00:c4:f5:7c:a5:32:e0
    Flags          : 8000e300
    Host Name      : INTEROP-57-159
    Mfg            : Emulex Corporation
    Serial No.     : FC71367217
    Port Number    : 1
    Mode           : Initiator
    PCI Bus Number : 94
    PCI Function   : 1
    Port Type      : FC+NVMe
    Model          : LPe32002-M2
  2. Verify that the NVMe/FC subsystems have been discovered:

    • nvme-list

      Show example
      NVMe Qualified Name     :  nqn.1992-08.com.netapp:sn.a3b74c32db2911eab229d039ea141105:subsystem.win_nvme_interop-57-159
      Port WWN                :  20:09:d0:39:ea:14:11:04
      Node WWN                :  20:05:d0:39:ea:14:11:04
      Controller ID           :  0x0180
      Model Number            :  NetApp ONTAP Controller
      Serial Number           :  81CGZBPU5T/uAAAAAAAB
      Firmware Version        :  FFFFFFFF
      Total Capacity          :  Not Available
      Unallocated Capacity    :  Not Available
      
      NVMe Qualified Name     :  nqn.1992-08.com.netapp:sn.a3b74c32db2911eab229d039ea141105:subsystem.win_nvme_interop-57-159
      Port WWN                :  20:06:d0:39:ea:14:11:04
      Node WWN                :  20:05:d0:39:ea:14:11:04
      Controller ID           :  0x0181
      Model Number            :  NetApp ONTAP Controller
      Serial Number           :  81CGZBPU5T/uAAAAAAAB
      Firmware Version        :  FFFFFFFF
      Total Capacity          :  Not Available
      Unallocated Capacity    :  Not Available
      Note: At present Namespace Management is not supported by NetApp Arrays.
    • nvme-list

      Show example
      NVMe Qualified Name     :  nqn.1992-08.com.netapp:sn.a3b74c32db2911eab229d039ea141105:subsystem.win_nvme_interop-57-159
      Port WWN                :  20:07:d0:39:ea:14:11:04
      Node WWN                :  20:05:d0:39:ea:14:11:04
      Controller ID           :  0x0140
      Model Number            :  NetApp ONTAP Controller
      Serial Number           :  81CGZBPU5T/uAAAAAAAB
      Firmware Version        :  FFFFFFFF
      Total Capacity          :  Not Available
      Unallocated Capacity    :  Not Available
      
      NVMe Qualified Name     :  nqn.1992-08.com.netapp:sn.a3b74c32db2911eab229d039ea141105:subsystem.win_nvme_interop-57-159
      Port WWN                :  20:08:d0:39:ea:14:11:04
      Node WWN                :  20:05:d0:39:ea:14:11:04
      Controller ID           :  0x0141
      Model Number            :  NetApp ONTAP Controller
      Serial Number           :  81CGZBPU5T/uAAAAAAAB
      Firmware Version        :  FFFFFFFF
      Total Capacity          :  Not Available
      Unallocated Capacity    :  Not Available
      
      Note: At present Namespace Management is not supported by NetApp Arrays.
  3. Verify that the namespaces have been created:

    nvme-list-ns

    Show example
    Active Namespaces (attached to controller 0x0141):
    
                                           SCSI           SCSI           SCSI
       NSID           DeviceName        Bus Number    Target Number     OS LUN
    -----------  --------------------  ------------  ---------------   ---------
    0x00000001   \\.\PHYSICALDRIVE9         0               1              0
    0x00000002   \\.\PHYSICALDRIVE10        0               1              1
    0x00000003   \\.\PHYSICALDRIVE11        0               1              2
    0x00000004   \\.\PHYSICALDRIVE12        0               1              3
    0x00000005   \\.\PHYSICALDRIVE13        0               1              4
    0x00000006   \\.\PHYSICALDRIVE14        0               1              5
    0x00000007   \\.\PHYSICALDRIVE15        0               1              6
    0x00000008   \\.\PHYSICALDRIVE16        0               1              7