N_Port ID虚拟化(NPIV)是光纤信道中的一个协议,目的在于让一个实体的N端口可以虚拟出数个N_Port ID。如果主机HBA卡以及后端的光纤交换机支持NPIV功能,那么物理主机上的每个虚拟主机就能够对应单一的N_Port ID和WWN(world wide number),这样就可以像物理主机一样给虚拟机分配存储资源了。而且即使虚拟机在主机间进行迁移,虚拟机和存储LUN之间的对应关系也不会发生变化。
目前NPIV只支持裸设备映射(RDM),不支持VMware文件系统VMFS。在vSphere 4.1下配置NPIV包括以下几个步骤:
给主机分配LUN
登录vSphere Client,选定集群中特定的主机配置选项卡下的存储适配器,如下图所示,可以看到该物理主机有一个双口的HBA卡,共对应了两个WWN号,每个WWN号的后半部分为WWPN号,在SAN存储系统中配置此WWPN号,然后就可以将指定大小的LUN分配给该集群的所有主机。
为虚拟机添加RDM
选择ESXi主机下处于运行状态的某个虚拟机,在弹出的右键菜单中选择“编辑设置”,如下图所示,在弹出的虚拟机属性对话框中选择“添加”按钮。
在“添加硬件”对话框中选择“硬盘”然后选择“下一步”,如下图所示,选择“裸机映射”磁盘类型,然后选择“下一步”。
在“选择和配置裸LUN”步骤选择SAN存储系统划分给虚拟机所在物理主机的一个LUN。如下图所示,有大小分别为50GB和10GB的LUN可供选择。选择10GB的LUN后,单击“下一步”
创建RDM会在现有的数据存储上创建一个映射文件(mapping file),用于指向上一步我们选择的10GB的LUN。如果要对启用了 NPIV 的虚拟机使用 vMotion,要确保 RDM 文件位于虚拟机配置文件所驻留的同一数据存储。在下图中我们选择将映射文件与虚拟机存储在同一目录,然后选择“下一步”。
在随后的兼容模式中我们选择“物理”模式,也就是允许虚拟机直接访问硬件,并指定一个“虚拟设备节点”,然后点击完成即可。这样我们可以在虚拟机属性对话框中看到新添加的硬盘。
为虚拟机分配WWN
如果虚拟机处于运行状态,需要关闭该虚拟机才能执行如下操作。如下图所示,在虚拟机属性对话框中,选择“选项”中的“光纤通道NPIV”的“生成新的WWN”,并指定WWNN和WWPN的数量,然后选择“确定”即可。配置完成后的效果如下图所示。
向虚拟机分配WWN 后,虚拟机的配置文件 (.vmx) 将包含一个由全球端口名称 (WWPN)和全球节点名称 (WWNN) 组成的WWN 对。远程登录到该虚拟机所在ESXi主机,定位到该虚拟机的vmx文件,可以看到如下两行关于npiv的配置:
wwn.node = "282a000c29000019"
wwn.port = "282a000c2900001a,282a000c2900001b"。
启动该虚拟机,VMkernel 将在物理 HBA卡上实例化一个虚拟端口(VPORT),用于访问 LUN。VPORT 是虚拟 HBA卡,在 FC 架构中显示为物理 HBA卡。
RDM vMotion故障解决
NPIV支持vMotion。使用vMotion迁移虚拟机时,它将保留已分配的 WWN:VPORT 会在***台ESXi主机上关闭,然后在目标ESXi主机上打开。进行vMotion迁移测试时,如果提示如下错误“虚拟磁盘是不可访问的映射的直接存取LUN”。
首先确保该LUN已经映射给目标ESXi主机。如果LUN映射不存在问题,可能需要执行如下操作,重新配置LUN映射,给虚拟机重新添加RDM,解决上述问题:
1. 关闭虚拟机
2. 移除虚拟机的RDM
3. 在存储系统中将LUN从SAN中移除到集群中ESXi主机的映射。
4. 重新在集群中的ESXi主机上扫描存储适配器。
5. 在存储系统上将LUN重新映射给集群中的ESXi主机
6. 在每个ESXi主机上重新扫描存储适配器
7. 在虚拟机上重新添加RDM