What is NPIV and why do we need it?
NPIV stands for N_Port ID Virtualization. As you already know, physical server has it’s own HBA card with it’s own private WWN. This WWN can be logged into the Fabric, and (for example) storage array can mask some LUNs only to this WWN. This gives the possibility to provide independent storage access. But what about Virtual Machines? Those doesn’t have their own, dedicated, physical HBA ports. Here NPIV becomes handy. Without NPIV all storage ports and LUNs are exposed to all virtual machines (in given environment).
As mentioned already, virtual machines shares the same physical HBA card (in single “vm environment” – for example ESX cluster). With NPIV, a HBA can present up to 255 unique World Wide (Port) Names (pWWNs) to a switch. If Fabric Switch supports NPIV, then it can assign uniq fabric port IDs to each virtual server (if you want to more know – Shared Area Addressing post).
How does it work from the storage point of view?
Now this is getting interesting. Since single HBA can have up to 255 unique pWWNs you (or VM admin) can assign a unique pWWN to each Virtual Machine (of course with above 255 limitation). With that possible, you can create a seperate zone between this VM pWWN(s) and Storage. As a consequence, standard fabric zoning and storage LUN masking can be used. No additional configuration is needed from Storage point of view. A standard zoning/masking mechanisms can be used to isolate storage ports and LUNs to the appropriate virtual server – the same way, as you already do with your physical servers.