There is a lot of information about NPIV out there on the internet (What it is, how it works, what are the prerequisites of NPIV etc)
In this blog I am only focusing on the Implementation of NPIV in Windows Server 2012
For the Simplicity of configuration and Demonstration I have not Clustered the Physical Host Machines, instead made use of the HyperV replication feature to Failover the VM from one node to another node.
Equipment Used
Servers: Two Dell PowerEdge 860's
OS: Windows Server 2012 Datacenter (RTM)
HBA's: Emulex A8003A Dual Port
HBA Firmware:2.82A4
HBA Driver version: 2.72.012.001
Fabric Switch: Brocade 300
Fabric OS: v6.4.2a
Storage: HDS HUS110
Naming Convention Followed
Physical Hosts: Contoso76, Contoso77
Virtual Machine:Contoso80
Domain Name:contoso7x.local
Brocade Switch: HDS_Switch1 & HDS_Switch2
Design
Configuration Steps
1. Open the Emulex One command utility and enable NPIV feature as shown below on both the Host Machines
2. On Both the HyperV Nodes create a Virtual Fibre Channel SAN ( I named it VFC1) and select the WWPN which is connected to the fabric switch like shown below
3. Create a Fibre channel Adapter and assign it to the Virtual Fibre Channel SAN (VFC1) as shown below and boot the VM
4. The Next step is to do zoning in the Fabric switch (Brocade Switch1)
4.1 Create an Alias like shown below and add the wwpn to it.
4.2 Create a Zone and add the above alias (contoso80) as well as the alias created for the SAN to it
4.3 Navigate to the zone config tab and add the zone to the zone config
4.4 Enable & Save the configuration.
5. Create a Hyperv Replica of the above VM on the other Hyperv Node and run through the wizard
6. Repeat Steps 4.1 to 4.4 for the second Fabric switch (Brocade Switch2)
7. Create a Host group for Contoso80 (VM) in the SAN
8. Assign a LUN to the Host Group
9. In the VM(Contoso80) Rescan the disk, you may also have to reboot the vm at times to see the LUN
10. You can Failover the VM to the Replica Server and you should be able to see the LUN after the VM replicates to the other Node