FC SAN(Storage Area Networks,存储区域网络)由FC交换机、服务器和存储设备组成。FC交换机互联在一起形成的网络称为Fabric,根据FC交换机在Fabric中部署的位置不同,分为核心交换机和边缘交换机。服务器和存储设备统称为N节点,通过边缘交换机接入到Fabric中。
在FC SAN中,服务器和存储设备通过FC_ID相互访问,FC_ID由FC(Fibre Channel,光纤通道)协议自动生成和分配。FC_ID共24位,分为三段:Domain_ID、Area_ID、Port_ID。
在Fabric中,每台FC交换机(包括核心交换机和边缘交换机)都会分配一个独立的Domain_ID。边缘交换机再基于本机的Domain_ID为其连接的N节点分配FC_ID。
Domain_ID仅有8位,理论上可以有256个Domain_ID,除了知名Domain_ID和保留Domain_ID外,实际上协议规定可用的Domain_ID仅有239个。
由于Fabric中每台FC交换机都要有一个独立的Domain_ID,而可用Domain_ID的数目仅有239个,那么整个Fabric中FC交换机的数目也仅能有239个。因此,FC SAN的规模受到了Domain_ID的限制,从而影响了网络的部署和扩展性。
NPV交换机可以扩展FC SAN的规模,且不需要占用Domain_ID资源,因此,在FC SAN中得到广泛应用。NPV交换机部署在Fabric边缘,位于N节点和核心交换机之间,实现N节点和核心交换机之间的请求代理和数据转发。
图3 NPV交换机组网图
NPV(N_Port Virtualization,N端口虚拟化)交换机上支持两种端口模式:NP模式和F模式。F端口用于连接N节点,也称为下行口,NP端口用于连接核心交换机,也称为上行口。
图4 NPV交换机端口模式
在NPV交换机上,可以配置多个下行F端口映射到一个上行NP端口上,实现FLOGI请求的代理和数据转发。
对于N节点而言,NPV交换机与FC交换机在功能上没有区别,N节点可以向其发送FLOGI报文申请FC_ID并请求加入到Fabric中,可以请求获取名字服务信息。
对于FC交换机而言,NPV交换机虚拟成一台支持NPIV特性的N节点,NPV交换机可以在同一条FC链路上虚拟多个VN节点,向FC交换机申请多个FC_ID并请求加入到Fabric中。
NPV交换机不占用独立的Domain_ID,通过将FLOGI请求代理到FC交换机上实现FC_ID的分配。减小了FC SAN运行的复杂度,扩展了FC交换机的接入能力。
NPV交换机上可以同时支持FCoE功能,可以通过以太网接口连接具有FCoE功能的节点设备,也可以通过上行的以太网接口扩展FCF组成的存储网络。
N端口在同一条物理链路上虚拟多个VN节点,申请多个FC_ID,虚拟多个N端口实体加入到Fabric中的技术称为NPIV(N Port Identifier Virtualization,N端口标识虚拟化)技术。NPIV技术在网络虚拟化中有着广泛的应用。例如一台服务器上运行着不同的应用服务程序,可以在一块物理HBA卡上为每个应用服务程序虚拟一个VN端口,申请不同的FC_ID使用。
图5 NPIV应用
NPV交换机需要在NP端口上支持NPIV,为每个下行F端口连接的N节点在NP端口上创建一个虚拟的VN端口,实现FLOGI请求的代理功能。
NPV交换机在启动以后,首先要加入到Fabric中,然后才能执行后续的FLOGI代理和数据转发。如图6所示。
图6 NPV交换机运行机制
(1) NPV交换机首先通过NP端口向FC交换机进行FLOGI,加入到Fabric中。NP端口通过FLOGI申请到的FC_ID用于NP端口与Fabric中的其他设备通信使用。
(2) NP端口成功加入到Fabric中后,便可以代理下游接口的FLOGI请求,交互过程如下:
a. N节点发送FLOGI请求申请FC_ID并请求加入到Fabric中。
b. NPV交换机从下行F端口收到N节点发送的FLOGI请求后,在NP端口上虚拟一个VN节点模拟下游的N节点,VN节点的相关信息从FLOGI请求报文中获取,然后,NP端口向FC交换机发送FDISC请求。
c. FC交换机收到FDISC请求后,为其分配FC_ID,并记录N节点信息加入到Fabric中,回复FDISC LS_ACC报文。
d. NPV交换机收到FDISC LS_ACC报文,记录FC交换机为VN端口分配的FC_ID,并回复FLOGI LS_ACC给下游的N节点,将FC_ID携带到LS_ACC中。
e. N节点收到FLOGI LS_ACC后,获取FC_ID,加入到Fabric成功。
(3) 下游N节点成功加入到Fabric中后,需要发送一系列的协议报文从Fabric中获取信息,发送协议报文与其他N节点协商,发送数据报文给其他N节点。NPV交换机收到这些协议报文或数据报文都直接从上行NP端口转发给FC交换机,不做任何代理转换。从上行NP端口收到的协议报文或数据报文,根据目的FC_ID转发给相应的下行F端口。
在该组网环境中,通过NPV交换机将FC节点设备接入到FC存储网络中。这种组网应用的情况下,上下行口均为FC接口。这种组网用于FC网络扩容,可以减少Domain_ID占用。
图7 FC节点设备通过NPV接入FC网络组网图
在该组网环境中,通过NPV交换机将FCoE节点设备接入到FC存储网络中。这种组网应用的情况下,上行口为FC接口,下行口为以太网接口。这种组网,在减少Domain_ID占用的同时,还可以在不更换FC核心交换机的情况下,将FCoE服务器或存储设备接入到FC网络中,实现FC技术到FCoE技术的平滑迁移。
图8 FCoE节点设备通过NPV接入FC网络组网图
在该组网环境中,通过NPV交换机将FCoE节点设备接入到FCoE存储网络中。这种组网应用的情况下,上下行口均为以太网接口。这种组网用于FCoE网络扩容,可以减少Domain_ID占用。
图9 FCoE节点设备通过NPV接入FCoE网络组网图