A logical or virtual layer is usually developed on top of physical hardware to move beyond the limitations of physical hardware. The most basic forms of virtualization are found at the port, channel and storage level. One type of port level virtualization is known as N_Port_ID Virtualization (NPIV). NPIV allows a physical N_Port to acquire multiple N_Port_IDs. Each N_Port_ID maps to a different operating system or application that runs behind the physical N_Port. Virtual Channels is another virtualization technology that enables data flows to be identified and subjected to different service policies on ISLs. Port and channel virtualization offer the benefits of higher utilization, better flexibility, and finer manageability than their non-virtualized counter-parts.
When most people speak of virtualization in general, they are usually referring to storage virtualization. Virtualization in storage has become a popular and overused term because different products virtualize in different ways. Storage virtualization can be broken down into three basic types that occur in the host computer before it interfaces with the Fabric, within devices in the fabric, or in the storage devices after the frames leave the fabric. This variety of applications of storage virtualization shows how versatile the virtual world can be.
NPIV is similar to arbitrated loop in that it allows one F_Port to be associated with multiple N_Port_IDs. Figure 2-1 shows how NPIV acquires multiple N_Port_IDs for a given F_Port like an FL_Port does for arbitrated loop devices. Instead of having a hub or an arbitrated loop to connect the FL_Ports, NPIV uses a single Fibre Channel link that typically increases utilization on that link. With multiple applications running in a host and using the same physical N_Port, NPIV helps high bandwidth links to be used to their potential through the use of multiple N_Port_IDs.
Figure 2-1: NPIV enables multiple Fibre Channel Addresses to be assigned to the server on the left. Each N_Port_ID is associated with a Permanent Port Name and behaves like an independent device in a similar fashion as the Arbitrated Loop on the right.
To fully utilize a link, N_Ports acquire multiple N_Port_IDs via a simple process. After an N_Port acquires its first N_Port_ID (3 byte FC Address) through the Fabric Login (FLOGI) Extended Link Service (ELS), the N_Port can acquire additional N_Port_IDs by sending a Fabric Discovery (FDISC) ELS with a new Port_Name (World Wide Name) and a Source ID (S_ID) of 00 00 00hex. The blank S_ID and new Port_Name signal the Switch to assign a new N_Port_ID to the N_Port. The application or operating system behind the new N_Port_ID will need to register its Name Server information and follow all of the other Login processes just as if it were a new N_Port logging into the Fabric.
Upon receiving the FDISC, the Switch will usually assign the next consecutive N_Port_ID as shown in Figure 2-1. The Switch does not have to conform to sequential ordering of N_Port_IDs, but this is common practice. Each Switch has 65,536 (216) N_Port_IDs that it can assign in any order that it sees fit. Some Switches can route frames to any physical port that it chooses. While many early implementations of NPIV only support 256 N_Port_IDs per F_Port, many Switches can assign thousands of N_Port_IDs to a physical N_Port.
Having multiple N_Port_IDs behind one physical N_Port allows finer control of processes in the host computer. Each N_Port_ID will have the same set of service parameters as the other N_Port_IDs, but it will probably be Zoned to a different set of N_Ports. The power that is unleashed with NPIV requires tighter control of the resources. Zoning requirements grow as the number of N_Port_IDs grows in the Fabric.
One application of NPIV is to assign users their own N_Port_ID. As a user logs into an application with a unique Port_Name, they will be assigned an N_Port_ID that grants them access to certain other N_Port_IDs through Zoning. Through a combination of NPIV and Zoning, thousands of users can be assigned access to specific resources. When the user logs out of the application, the N_Port_ID will also log out of the fabric and decrease the number of N_Port_IDs in the Fabric. The combination of NPIV and Zoning enable many applications to tightly control the privileges of users.
NPIV was designed so that the logical configuration of the Fabric can change quickly. Many N_Port_IDs can log in and out through the same physical N_Port. To help management of the physical port, the concept of a Permanent Port Name was defined. The Permanent Port Name is the Port Name that was sent in the original FLOGI and is the one constant of the physical N_Port. Even if the original N_Port_ID logs out, the Permanent Port Name remains associated to the N_Port and other N_Port_IDs and Port Names. The Permanent Port Name is usually associated with the physical piece of hardware that is attached to the N_Port.
Source:Extract from Chapter 2 of "Fibre Channel Advances" by Scott Kipp
Back to Article List