WEB开发网
开发学院操作系统Linux/Unix IBM Power 服务器上动态逻辑分区操作的若干制约因... 阅读

IBM Power 服务器上动态逻辑分区操作的若干制约因素,第 3 部分: 适配器篇

 2010-02-01 00:00:00 来源:WEB开发网   
核心提示:动态逻辑分区(DLPAR)技术是 IBM Power服务器的一项重要的虚拟化特性,可以在分区运行的情况下动态调整逻辑分区资源的分配,IBM Power 服务器上动态逻辑分区操作的若干制约因素,第 3 部分: 适配器篇,从而满足不断变化的业务需求,DLPAR 操作的过程或者结果受到一些因素的制约或影响,读者能够更加全面的

动态逻辑分区(DLPAR)技术是 IBM Power服务器的一项重要的虚拟化特性,可以在分区运行的情况下动态调整逻辑分区资源的分配,从而满足不断变化的业务需求。DLPAR 操作的过程或者结果受到一些因素的制约或影响,用户应该清楚的知道这些因素,才能在 DLPAR 操作出现问题的时候从容应对。本系列文章探讨了 Power 服务器逻辑分区上 DLPAR 操作的各种典型的制约或影响因素,使读者对 DLPAR 操作有更加深入的认识。

IBM Power 服务器上的 DLPAR 操作主要分成三种类型:处理器 DLPAR、内存 DLPAR 和适配器 DLPAR。本系列文章的第一部分和第二部分已经介绍了前两者的各种典型制约因素,本文继续介绍适配器(物理适配器和虚拟适配器)DLPAR 操作的制约因素,包括空闲的适配器、期望和必需属性、固件对适配器的限制、主机以太网适配器、虚拟 SCSI 适配器和虚拟磁盘的添加顺序,以及虚拟光纤通道适配器等等。

空闲的适配器

与处理器或内存 DLPAR 添加操作需要足够的系统空闲处理器或内存类似,适配器 DLPAR 添加操作也需要足够的空闲适配器。空闲的物理适配器不言而喻,这里只讨论虚拟适配器。由于虚拟适配器是逻辑分区的局部资源,因此每个分区都有各自最大的虚拟适配器数和当前空闲的虚拟适配器数量。HMC 所管理的逻辑分区的最大虚拟适配器数量可以通过概要文件修改(如图 1 所示),Power 服务器上每个分区最多允许 1024 个虚拟适配器。该值不可以动态修改,要应用新的最大值,必须先关闭分区,重启并不能使新的值生效。不同分区对虚拟适配器的数量要求不一,比如 VIOS 就需要较多的虚拟适配器,用户在规划系统配置的时候应该合理设置最大虚拟适配器数,使分区拥有足够的虚拟适配器扩展能力,避免虚拟适配器添加过程中由于空闲数量不足而导致的当机时间。虽然 IVM 图形界面不提供修改最大虚拟适配器器数的功能,但是 IVM 用于低端服务器,一般只需要少量的虚拟适配器,因此通常不需要担心超过最大虚拟适配器数的问题。

图 1. 分区的最大虚拟适配器数
IBM Power 服务器上动态逻辑分区操作的若干制约因素,第 3 部分: 适配器篇 

期望和必需属性

在 HMC 上,不论是物理适配器还是虚拟适配器的 DLPAR 删除操作,都要受到“期望”和“必需”属性的约束,适配器只当具有“期望”属性时才能被删除。从参考资料 2 中可知,IVM 上的适配器虽然也有“期望”和“必需”属性,但是 IVM 在 DLPAR 过程中并没有使用这些属性,因此它们对适配器的 DLPAR 操作并不起到限制作用。鉴于此,下面的讨论只针对 HMC 而言。

从处理器和内存 DLPAR 的讨论中可知,最小值和最大值不能动态修改。“期望”和“必需”属性是否也是如此呢?图 2 中,插槽 U789D.001.DQD30BD-P1-C6 中的物理适配器的属性是“必需”,因此不能执行 DLPAR 删除操作。在图中点击“添加为期望插槽”按钮即可将属性修改成“期望”,修改成功之后,图 3 所示的物理适配器 DLPAR 删除操作界面立即显示了该适配器,此时用户可以删掉该设备。这说明对物理适配器的“期望”和“必需”属性的修改是动态生效的,用户无需关闭分区来应用新的属性。虚拟适配器也是如此,用户可以自行验证,这里不再赘述。

图 2. 把适配器的属性修改成“期望”
IBM Power 服务器上动态逻辑分区操作的若干制约因素,第 3 部分: 适配器篇

查看原图(大图)

图 3. “期望”属性马上生效
IBM Power 服务器上动态逻辑分区操作的若干制约因素,第 3 部分: 适配器篇

固件对适配器的限制

由于固件的内存限制,分配给逻辑分区的物理适配器中,只有前 144 个 I/O 插槽中的设备可以用于分区的启动。因此,增加物理适配器的时候,当数量超过 144 时,要确保用于启动分区操作系统的设备应该仍然属于前 144 个物理设备。如果确实不能满足要求,可以考虑调换一下插槽的位置。在 HMC 上,可以通过如下步骤确认哪些设备属于前 144 个设备之一(如图 4 所示):

打开分区属性页面

选择“硬件”标签页面

打开“I/O”标签页面

点击“总线”列,按数字大小升序排列,列表中的前 144 个 I/O 设备就是可启动的设备

图 4. 逻辑分区中按总线顺序排列的物理设备列表
IBM Power 服务器上动态逻辑分区操作的若干制约因素,第 3 部分: 适配器篇

主机以太网适配器

主机以太网适配器即 HEA(Host Ethernet Adapter)是基于 POWER6 的 Power 服务器的新特性,在硬件逻辑上实现了以太网流量的共享和控制,提高了网络吞吐率。HEA 的基本结构主要包括(如图 5 所示):端口组(port group)、物理端口(physical port)、逻辑端口(logical port)和虚拟链路层交换机(virtual layer 2 switch)。每个 HEA 拥有 1 到 2 个端口组,每个端口组有 1 到 2 个物理端口、虚拟链路层交换机和最多 16 个逻辑端口;物理端口是网络接入点,可以插入网线,连接到外部网络;逻辑端口是虚拟的物理端口,可以分配给分区使用,同一个端口组中的所有物理端口共享该端口组中的所有逻辑端口;每个物理端口都拥有一个虚拟的链路层交换机,所有映射到同一物理端口的虚拟端口共享同一个交换机。Power 服务器提供了如下三种类型的 HEA 适配器,图 6 显示了这些接口卡和它们的基本结构。

2 口 1Gbps,一个端口组,每个端口组包含 2 个物理端口,最多包含 16 个逻辑端口,特性代码是 FC 5636

4 口 1Gbps,两个端口组,每个端口组包含 2 个物理端口,最多包含 32 个逻辑端口,特性代码是 FC 5639

2 口 10Gbps,两个端口组,每个端口组包含 1 个物理端口,最多包含 32 个逻辑端口,特性代码是 FC 5637

图 5. HEA 的基本结构
IBM Power 服务器上动态逻辑分区操作的若干制约因素,第 3 部分: 适配器篇

图 6. 三种 HEA 适配器类型
IBM Power 服务器上动态逻辑分区操作的若干制约因素,第 3 部分: 适配器篇

查看原图(大图)

AIX 和 Linux 都支持 HEA 的动态分配,包括增加、删除和移动等操作,表 1 显示了操作系统对 HEA DLPAR 操作的支持情况。除了受操作系统版本的限制之外,HEA DLPAR 还受到空闲 HEA 逻辑端口的数量和逻辑端口与物理端口绑定关系的影响。

表 1. 操作系统对 HEA DLPAR 的支持

版本 对 HEA DLPAR 的支持
AIX5.2 及以上 从 AIX 5.3 5300-07 开始支持
AIX6 从 AIX6.1 6100-00 开始支持
RHEL4 从 RHEL4.5 开始支持
RHEL5 从 RHEL5.1 开始支持
SLES10 从 SLES10.1 开始支持
SLES11 支持

首先来看空闲 HEA 逻辑端口的数量。上面谈到,HEA 适配器最多拥有 16(FC 5636) 或者 32 个逻辑端口(FC 5639 和 FC 5637),逻辑分区所能使用的逻辑端口不能超过该数目。不过,这仅仅是一种可能的最大数量,实际可用的逻辑端口的数量取决于多核心伸缩值(MCS: Multiple Core Scaling)。每个 HEA 端口组有 16 个称为 QP 的收发队列,MCS 表明每个逻辑端口的 QP 数目,因此每个端口组的最大可用逻辑端口数 = 16 / MCS。MCS 越大,可用的逻辑端口越少,但是每个逻辑端口的吞吐量较大;反之,可用的逻辑端口较多,但是每个逻辑端口的吞吐量较小。当 MCS 值是 1 时,端口组可以划分成 16 个逻辑端口;当 MCS 值是 4 时(如图 7 所示),端口组有 4 个可用的逻辑端口(如图 8 所示)。

图 7. 设置 HEA 的 MCS 值
IBM Power 服务器上动态逻辑分区操作的若干制约因素,第 3 部分: 适配器篇

图 8. MCS = 4 时,端口组有 4 个逻辑端口
IBM Power 服务器上动态逻辑分区操作的若干制约因素,第 3 部分: 适配器篇

再来看逻辑端口和物理端口的绑定关系。分配逻辑端口时需要指定相应的物理端口,虽然逻辑端口可以分配给任意分区,但是每个分区在同一物理端口上最多只能分配或者说绑定一个逻辑端口。图 9 中,逻辑分区 spikelp2 已经在某个物理端口上分配了逻辑端口 4,DLPAR 添加操作试图在同一个物理端口上绑定另外一个逻辑端口,从图 10 可见,该操作被拒绝了。由此看来,在同一个 HEA 上,每个逻辑分区最多可以分配与物理端口数量相同的逻辑端口。

图 9. 使用 DLPAR 添加 HEA 逻辑端口
IBM Power 服务器上动态逻辑分区操作的若干制约因素,第 3 部分: 适配器篇

图 10. 同一个分区在同一个物理端口上最多只能分配一个逻辑端口
IBM Power 服务器上动态逻辑分区操作的若干制约因素,第 3 部分: 适配器篇

虚拟 SCSI 适配器和虚拟磁盘的添加顺序

虚拟 SCSI 适配器的一个完整的添加过程包括客户分区端虚拟 SCSI 适配器的添加、VIOS 上的服务器端虚拟 SCSI 适配器的添加和虚拟磁盘的映射。这几个步骤之间是否有固定的先后顺序,不同的添加顺序是否有所差别?事实上,除了虚拟磁盘的映射必须在服务器端虚拟 SCSI 适配器添加之后才能进行之外,下面 3 种顺序中的任何一种都是可行的。通常情况下,服务器端 SCSI 适配器的添加在客户端 SCSI 适配器之前进行,因此顺序 3 不是一种典型的方案,本文就不介绍了,读者可以根据本文的讨论自行分析。下面的讨论是针对 HMC 所管理的 Linux 分区而言的。从参考资料 2 可知,IVM 并不支持虚拟 SCSI 适配器的 DLPAR 操作,不过却可以动态调整虚拟磁盘的分配,这种操作可以看作是第 2 种方案。在 AIX 上,按照方案 1 或者 2 完成操作后,需要运行命令 cfgmgr 来检测新的设备,不管使用何种步骤,结果都是一样的,也就是说 cfgmgr 简化了虚拟磁盘的添加操作。

添加服务器端 SCSI 适配器  建立磁盘映射  添加客户端 SCSI 适配器

添加服务器端 SCSI 适配器  添加客户端 SCSI 适配器  建立磁盘映射

添加客户端 SCSI 适配器  添加服务器端 SCSI 适配器  建立磁盘映射

先来讨论第 1 种方案。清单 1 中,在分区 spikelp2 上添加客户端 SCSI 适配器之前,VIOS 分区 spikev1 上已经有一个带有虚拟磁盘的服务器端虚拟 SCSI 适配器,虚拟插槽号是 12;Linux 分区 spikelp2 上没有虚拟 SCSI 适配器,模块 ibmvscsic 也没有加载。图 11 中,为 spikelp2 添加一个虚拟 SCSI 适配器,对应的服务器端 SCSI 适配器在 spikev1 的虚拟插槽 12 中。清单 2 中,虚拟 SCSI 适配器添加成功,模块 ibmvscsic 被加载,系统增加了一个虚拟磁盘 /dev/sdg。使用该方案,DLPAR 之后不需要执行额外的操作。

清单 1. 添加客户端 SCSI 适配器之前

VIOS 分区 spikev1 上有一个空闲的服务器端 SCSI 适配器,设备名为 vhost0, 
虚拟插槽号是 12,映射了一个磁盘 
 
$ hostname 
 
spikev1 
 
$ lsmap -vadapter vhost0 
 
SVSA Physloc Client Partition ID 
 
--------------- -------------------------------------------- ------------------ 
 
vhost0 U9117.MMA.10B74A2-V1-C12 0x00000003 
 
VTD vtscsi4 
 
Status Available 
 
LUN 0x8100000000000000 
 
Backing device hdisk1 
 
Physloc U789D.001.DQD30GD-P3-D2 
 
Linux 分区 spikelp2 上有 6 个物理磁盘,没有虚拟磁盘,ibmvscsic 模块没有加载 
 
[root@spikelp2 ~]# lsslot 
 
# Slot Description Linux Name Device(s) 
 
HEA 1 HEA I/O Slot lhea@23c00300 Empty 
 
U9117.MMA.10B74A2-V3-C0 Virtual I/O Slot 30000000 vty 
 
U9117.MMA.10B74A2-V3-C2 Virtual I/O Slot 30000002 l-lan 
 
[root@spikelp2 ~]# lsmod | grep ibmvscsic 
 
[root@spikelp2 ~]# lsscsi -c 
 
[0:0:0:0] disk IBM DS4800-FAStTXBB 0914 /dev/sda 
 
[0:0:0:1] disk IBM DS4800-FAStTXBB 0914 /dev/sdb 
 
[0:0:0:31] disk IBM Universal 0914 - 
 
[0:0:1:0] disk IBM Megamouth-DS8K .108 /dev/sdc 
 
[0:0:1:1] disk IBM Megamouth-DS8K .108 /dev/sdd 
 
[0:0:1:2] disk IBM Megamouth-DS8K .108 /dev/sde 
 
[2:0:0:0] no dev SanDisk U3 Micro /dev/sdf 
 
[2:0:0:1] no dev SanDisk U3 Micro /dev/scd0 
 
[root@spikelp2 ~]# 

图 11. 添加客户分区端的虚拟 SCSI 适配器
IBM Power 服务器上动态逻辑分区操作的若干制约因素,第 3 部分: 适配器篇

清单 2. 添加客户端 SCSI 适配器之后

[root@spikelp2 ~]# lsslot 
 
# Slot Description Linux Name Device(s) 
 
HEA 1 HEA I/O Slot lhea@23c00300 Empty 
 
U9117.MMA.10B74A2-V3-C0 Virtual I/O Slot 30000000 vty 
 
U9117.MMA.10B74A2-V3-C2 Virtual I/O Slot 30000002 l-lan 
 
U9117.MMA.10B74A2-V3-C3 Virtual I/O Slot 30000003 v-scsi 
 
[root@spikelp2 ~]# lsmod | grep ibmvscsic 
 
ibmvscsic 52057 0 
 
scsi_mod 242121 8 ibmvscsic,scsi_dh,sr_mod,sg,usb_storage,lpfc,scsi_transport_fc,sd_mod 
 
[root@spikelp2 ~]# lsscsi -c 
 
[0:0:0:0] disk IBM DS4800-FAStTXBB 0914 /dev/sda 
 
[0:0:0:1] disk IBM DS4800-FAStTXBB 0914 /dev/sdb 
 
[0:0:0:31] disk IBM Universal 0914 - 
 
[0:0:1:0] disk IBM Megamouth-DS8K .108 /dev/sdc 
 
[0:0:1:1] disk IBM Megamouth-DS8K .108 /dev/sdd 
 
[0:0:1:2] disk IBM Megamouth-DS8K .108 /dev/sde 
 
[2:0:0:0] no dev SanDisk U3 Micro /dev/sdf 
 
[2:0:0:1] no dev SanDisk U3 Micro /dev/scd0 
 
[6:0:1:0] disk AIX VDASD 0001 /dev/sdg spikev1 
 
[root@spikelp2 ~]# 

再来看第 2 种方案。清单 3 中,DLPAR 之前 VIOS 分区 spikev1 上空闲的服务器端虚拟 SCSI 适配器上没有映射磁盘,如图 11 在分区 spikelp2 上添加客户端虚拟 SCSI 适配器后,再把磁盘 hdisk1 映射到 vhost0。从清单 3 中可见,Linux 客户分区虽然成功添加了虚拟 SCSI 适配器并加载了相应的模块,但是却没有发现任何虚拟磁盘。与方案 1 相比,为何两种方案出现不同结果呢?这是因为,DLPAR 的时候 Linux 能够自动发现并识别虚拟 SCSI 适配器,方案 1 中,由于磁盘映射在 DLPAR 之前就已经建立,Linux 在识别虚拟 SCSI 适配器的时候也发现了虚拟磁盘;方案 2 中,磁盘映射在识别虚拟 SCSI 适配器的时候没有就绪,因此 Linux 检测不到虚拟磁盘,虽然而后在 VIOS 上映射了磁盘,但是 Linux 并没有得到任何通知,因此 Linux 分区不能自动检测到虚拟磁盘。由此可见,方案 1 是添加虚拟 SCSI 适配器和虚拟磁盘的最佳顺序。

清单 3. 添加客户端 SCSI 适配器之后再映射磁盘

添加客户端 SCSI 适配器前 
 
VIOS 分区 spikev1 上有一个空闲的服务器端 SCSI 适配器,设备名为 vhost0,虚拟插槽号是 12,没有映射磁盘 
 
$ hostname 
 
spikev1 
 
$ lsmap -vadapter vhost0 
 
SVSA Physloc Client Partition ID 
 
--------------- -------------------------------------------- ------------------ 
 
vhost0 U9117.MMA.10B74A2-V1-C12 0x00000003 
 
VTD NO VIRTUAL TARGET DEVICE FOUND 
 
添加客户端 SCSI 适配器后 
 
在 VIOS 上映射磁盘到 vhost0 
 
$ mkvdev -vdev hdisk1 -vadapter vhost0 
 
vtscsi4 Available 
 
$ lsmap -vadapter vhost0 
 
SVSA Physloc Client Partition ID 
 
--------------- -------------------------------------------- ------------------ 
 
vhost0 U9117.MMA.10B74A2-V1-C12 0x00000003 
 
VTD vtscsi4 
 
Status Available 
 
LUN 0x8100000000000000 
 
Backing device hdisk1 
 
Physloc U789D.001.DQD30GD-P3-D2 
 
客户端服务器成功添加,但是分区却没有发现虚拟磁盘 
 
[root@spikelp2 ~]# lsslot 
 
# Slot Description Linux Name Device(s) 
 
HEA 1 HEA I/O Slot lhea@23c00300 Empty 
 
U9117.MMA.10B74A2-V3-C0 Virtual I/O Slot 30000000 vty 
 
U9117.MMA.10B74A2-V3-C2 Virtual I/O Slot 30000002 l-lan 
 
U9117.MMA.10B74A2-V3-C3 Virtual I/O Slot 30000003 v-scsi 
 
[root@spikelp2 ~]# lsmod | grep ibmvscsic 
 
ibmvscsic 52057 0 
 
scsi_mod 242121 8 ibmvscsic,scsi_dh,sr_mod,sg,usb_storage,lpfc,scsi_transport_fc,sd_mod 
 
[root@spikelp2 ~]# lsscsi -c 
 
[0:0:0:0] disk IBM DS4800-FAStTXBB 0914 /dev/sda 
 
[0:0:0:1] disk IBM DS4800-FAStTXBB 0914 /dev/sdb 
 
[0:0:0:31] disk IBM Universal 0914 - 
 
[0:0:1:0] disk IBM Megamouth-DS8K .108 /dev/sdc 
 
[0:0:1:1] disk IBM Megamouth-DS8K .108 /dev/sdd 
 
[0:0:1:2] disk IBM Megamouth-DS8K .108 /dev/sde 
 
[2:0:0:0] no dev SanDisk U3 Micro /dev/sdf 
 
[2:0:0:1] no dev SanDisk U3 Micro /dev/scd0 
 
[root@spikelp2 ~]# 

那么如何识别新增的磁盘呢?重启系统当然是个办法,但是有没有在保持 Linux 分区运行的情况下识别磁盘的补救办法呢?重新加载模块就是其中的一种办法:清单 4 中,通过重新加载模块 ibmvscsic,Linux 分区成功识别了新增的虚拟磁盘 /dev/sdg。但是,这种方法的前提是模块 ibmvscsic 可以卸载。如果 Linux 分区已经有其它使用中的虚拟 SCSI 适配器,那么就没有办法卸载模块,这种方法也就行不通了。另外一种方法是重新扫描 SCSI 总线:清单 5 中,在 Linux 分区 spikelp2 上成功添加虚拟 SCSI 适配器后,sysfs 增加了一个新的目录 /sys/devices/vio/30000003/host9/,其中 30000003 就是该适配器的 Linux 名称,host9 表明该适配器的总线号是 9;通过往 /proc/scsi/scsi 文件写入添加 SCSI 设备的命令,或者通过 /sys/class/scsi_host/hostX/scan 扫描总线,Linux 成功发现了新增的虚拟磁盘 /dev/sdg。该方法不用卸载模块,是动态检测虚拟磁盘的好方法。

清单 4. 重新加载 ibmvscsic 模块

[root@spikelp2 ~]# rmmod ibmvscsic 
 
[root@spikelp2 ~]# modprobe ibmvscsic 
 
[root@spikelp2 ~]# lsscsi -c 
 
[0:0:0:0] disk IBM DS4800-FAStTXBB 0914 /dev/sda 
 
[0:0:0:1] disk IBM DS4800-FAStTXBB 0914 /dev/sdb 
 
[0:0:0:31] disk IBM Universal 0914 - 
 
[0:0:1:0] disk IBM Megamouth-DS8K .108 /dev/sdc 
 
[0:0:1:1] disk IBM Megamouth-DS8K .108 /dev/sdd 
 
[0:0:1:2] disk IBM Megamouth-DS8K .108 /dev/sde 
 
[2:0:0:0] no dev SanDisk U3 Micro /dev/sdf 
 
[2:0:0:1] no dev SanDisk U3 Micro /dev/scd0 
 
[9:0:1:0] disk AIX VDASD 0001 /dev/sdg spikev1 
 
[root@spikelp2 ~]# 

清单 5. 通过扫描 SCSI 总线发现虚拟磁盘

客户端虚拟 SCSI 适配器的 Linux 名称是 30000003, sysfs 中有相应的目录 
 
[root@spikelp2 ~]# ls /sys/devices/vio/ 
 
30000000/ 30000003/4001/ 4004/ devspec power/ uevent 
 
30000002/ 4000/ 4002/ bus/ name subsystem/ 
 
[root@spikelp2 ~]# ls /sys/devices/vio/30000003/ 
 
bus/ driver/ name subsystem/ 
 
devspec host9/ power/ uevent 
 
[root@spikelp2 ~]# ls /sys/devices/vio/30000003/host9/ 
 
power scsi_host:host9 uevent 
 
进行总线扫描 
 
方法 1:使用 /proc/scsi/scsi 扫描总线 
 
[root@spikelp2 ~]# echo "scsi add-single-device 9 0 1 0" >/proc/scsi/scsi 
 
方法 2:使用 /sys/class/scsi_host/hostX/scan 扫描总线 
 
[root@spikelp2 ~]# echo "- - -" >/sys/class/scsi_host/host9/scan 
 
总线扫描后,发现新的磁盘 
 
[root@spikelp2 ~]# ls /sys/devices/vio/30000003/host9/ 
 
power scsi_host:host9 target9:0:1uevent 
 
[root@spikelp2 ~]# ls /sys/devices/vio/30000003/host9/target9\:0\:1/ 
 
9:0:1:0power uevent 
 
[root@spikelp2 ~]# lsscsi -c 
 
[0:0:0:0] disk IBM DS4800-FAStTXBB 0914 /dev/sda 
 
[0:0:0:1] disk IBM DS4800-FAStTXBB 0914 /dev/sdb 
 
[0:0:0:31] disk IBM Universal 0914 - 
 
[0:0:1:0] disk IBM Megamouth-DS8K .108 /dev/sdc 
 
[0:0:1:1] disk IBM Megamouth-DS8K .108 /dev/sdd 
 
[0:0:1:2] disk IBM Megamouth-DS8K .108 /dev/sde 
 
[2:0:0:0] no dev SanDisk U3 Micro /dev/sdf 
 
[2:0:0:1] no dev SanDisk U3 Micro /dev/scd0 
 
[9:0:1:0] disk AIX VDASD 0001 /dev/sdg spikev1 
 
[root@spikelp2 ~]# 

虚拟光纤通道适配器

虚拟光纤通道适配器即 NPIV(N_Port ID Virtualization)是由国际 信息技术标准委员会(INCITS)制定的一个 ANSI T11 标准的光纤信道协议,目的是从一个物理光纤通道适配器虚拟出若干逻辑设备,每个设备有唯一的 ID,即 WWPN(World Wide Port Name),从而复用同一套硬件设备。Power 服务器上 NPIV 的实现是从 POWER6 开始的,但是 POWER6 发布的时候并不提供 NPIV 虚拟化特性,而是到 2008 年 10 月份才开始在 AIX 上支持该特性,2009 年 3 月份发布的 SLES11 是第一个支持 NPIV 的 Linux 发行版本。Power 服务器上 NPIV 的基本架构主要包括(如图 12 所示):NPIV 物理光纤通道适配器、pass-through 模块、服务器端虚拟光纤通道适配器、客户端虚拟光纤通道适配器。NPIV 简化了服务器的光纤通道部署,与虚拟 SCSI 相比,由于 NPIV 在 VIOS 上用 pass-through 模块直接转发 I/O,因此效率较高。

图 12. 通过 NPIV 共享存储
IBM Power 服务器上动态逻辑分区操作的若干制约因素,第 3 部分: 适配器篇

虚拟光纤通道适配器的 DLPAR 添加操作和虚拟 SCSI 适配器和磁盘的添加过程非常类似,需要创建一对客户端虚拟光纤通道适配器和服务器端虚拟光纤通道适配器,建立它们之间的关联,还需要把服务器端适配器映射到 NPIV 物理光纤通道适配器的某个端口上,这样整个数据通路就建立起来了。NPIV 与虚拟 SCSI 适配器 DLPAR 不同的是,后者把 VIOS 上的物理磁盘、CD/DVD、逻辑卷或者文件等资源直接映射到服务器端适配器,而前者需要使用客户端适配器所分配的 WWPN 到 SAN 管理系统中做 zoning 操作,映射若干 LUN。与每个逻辑 HEA 拥有固定的 MAC 地址不同,NPIV 的 WWPN 带有不确定性,也是就说,把客户端虚拟适配器删除后重新添加,前后两个 WWPN 很可能不同。由于 WWPN 在创建完客户端虚拟适配器后才获得,因此 LUN 的映射只能随后进行,这跟上述虚拟 SCSI 适配器和虚拟磁盘的添加方案 2 是一样的,可以用类似的方式探测新增的设备。

小结

本文介绍了适配器 DLPAR 操作过程中的各种制约因素,包括空闲的适配器、期望和必需属性,以及固件对适配器的限制等。主机以太网适配器、虚拟 SCSI 适配器和虚拟磁盘,以及虚拟光纤通道适配器的 DLPAR 操作过程还有各自特有的制约因素。通过本系列文章三部分内容的讨论,读者能够更加全面的理解 Power 服务器上 DLPAR 操作过程中的各种限制和影响因素,更好的规划服务器资源分配,实现业务的连续高效运行。

Tags:IBM Power 服务器

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接