Blog Archive

N_Port ID virtualization (NPIV)

Before starting with NPIV, it's important to understand the different types of ports used in a typical FC fabric.

  • N_Port: The end node of your FC fabric. For example, the port on an HBA.
  • F_Port: It's on FC switch and connects FC switch with the HBA. Essentially, it’s a connection between the N_Port on an HBA and the F_Port on a Fibre Channel switch.
  • E_Port: It connects one Fibre Channel switch in the SAN fabric to another Fibre Channel switch.
During the FLOGI process, the Fabric Login Server gives a 24-bit address to the N_Port of HBA. This 24 bit address is the N_Port_ID. So, in this scenario, this N_Port has only one N_Port_ID associated with it.

Note that there is another unique identifier for the port referred to as the WWPN and there is a one-to-one mapping between WWPN and N_Port_ID.
In summary, we can say that for this particular physical N_Port, we have ONLY ONE WWPN and ONLY ONE N_Port_ID.

Now, if this physical N_Port is NPIV enabled, it has the capability to have multiple WWPNs and multiple corresponding N_Port_IDs associated with them.

After the completion of FLOGI process, the NPIV-enabled physical N_Port issues additional commands to register more WWPNs and receive more N_Port_IDs. So, now we have multiple WWPNs for my single physical N_Port Node.

With NPIV, the physical N_Port can register additional WWPNs (and N_Port_IDs), and as a result, only required VMs will be able to see the required LUNs. Not all VMs can see all LUNs.

In a nutshell: NPIV feature provides the ability to your normal physical N_Port switch to create multiple WWPNs and N port IDs.

Take a look at the following diagram to understand N, F, and E type ports: