Configure Windows Server 2012 R2 with NVMe/FC for ONTAP
You can configure NVMe over Fibre Channel (NVMe/FC) on hosts running Windows Server 2012 R2 for operation with ONTAP LUNs.
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.
|
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.
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.
-
Install OneCommand Manager utility on the Windows host.
-
On each of the HBA initiator ports, set the following HBA driver parameters:
-
EnableNVMe = 1
-
NVMEMode = 0
-
-
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.
-
Install Windows Host Utility Kit 7.1 to set the driver parameters that are common to both FC and NVMe.
-
Open the MPIO properties.
-
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.
-
Open Disk Management and go to Disk Properties.
-
From the MPIO tab, select Details.
-
Set the following Microsoft DSM settings:
-
PathVerifiedPeriod: 10
-
PathVerifyEnabled: Enable
-
RetryCount: 6
-
RetryInterval: 1
-
PDORemovedPeriod: 130
-
-
Select the MPIO Policy Round Robin with Subset.
-
Change the registry values:
HKLM\SYSTEM\CurrentControlSet\Services\mpio\Parameters\PathRecoveryInterval DWORD -> 30 HKLM\SYSTEM\CurrentControlSet\Services\mpio \Parameters\ UseCustomPathRecoveryInterval DWORD-> 1
-
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.
-
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
-
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.
-
-
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