SVC是IBM提供的功能极其强大且用途广泛的SAN虚拟化产品。 它支持众多功能,例如精简配置,IBM Real-time Compression™,在线数据迁移等。 SVC的管理是通过一个简单的Web界面完成的,该界面使使用它非常直观和容易。 但是,从AIX主机的角度来看,映射哪个AIX hdisk映射回哪个SVC卷可能很耗时并且很困难。 如果需要从AIX服务器删除SVC LUN hdisk设备,则需要确保了解哪个hdisk映射到哪个SVC LUN,以防止删除错误的LUN。 本文介绍如何在AIX上使用SDDPCM多路径软件时发现哪个SVC卷支持每个AIX hdisk。
手动追踪
如果只有几个AIX hdisk需要映射回SVC卷,那么最简单的方法就是手动完成。 我们首先需要从AIX服务器收集信息。 本文适用于使用IBM子系统设备驱动程序路径控制模块(SDDPCM)多路径软件的AIX服务器。 SDDPCM提供了pcmpath
命令,它是一个非常强大的命令,它可以收集有关AIX服务器上可见的,由SDDPCM控制的LUN的信息。 首先登录到AIX服务器并运行pcmpath query device
命令。 这显示了有关由SDDPCM控制的每个SAN LUN的状态的详细信息。 每个LUN列出的项目之一是序列号。 序列号是我们可以用来将hdisk追溯到SVC卷的密钥,因为SVC显示的卷号与“ UID”卷相同。
清单1. pcmpath
查询设备的示例输出
# pcmpath query device
DEV#: 0 DEVICE NAME: hdisk0 TYPE: 2145 ALGORITHM: Load Balance
SERIAL: 60050763624B79486800000000000004
==========================================================================
Path# Adapter/Path Name State Mode Select Errors
0 fscsi0/path0 OPEN NORMAL 8037977 0
1 fscsi0/path1 OPEN NORMAL 8032250 0
2* fscsi0/path2 OPEN NORMAL 62 0
3* fscsi0/path3 OPEN NORMAL 62 0
4 fscsi1/path4 OPEN NORMAL 8066256 0
5 fscsi1/path5 OPEN NORMAL 8070900 0
6* fscsi1/path6 OPEN NORMAL 62 0
7* fscsi1/path7 OPEN NORMAL 62 0
DEV#: 1 DEVICE NAME: hdisk1 TYPE: 2145 ALGORITHM: Load Balance
SERIAL: 60050763624B79486800000000000005
==========================================================================
Path# Adapter/Path Name State Mode Select Errors
0 fscsi0/path0 OPEN NORMAL 3009569 0
1 fscsi0/path1 OPEN NORMAL 3008052 0
2* fscsi0/path2 OPEN NORMAL 49 0
3* fscsi0/path3 OPEN NORMAL 49 0
4 fscsi1/path4 OPEN NORMAL 3019297 0
5 fscsi1/path5 OPEN NORMAL 3018514 0
6* fscsi1/path6 OPEN NORMAL 49 0
7* fscsi1/path7 OPEN NORMAL 49 0
在清单1中,我们可以看到有两个SAN LUN:hdisk0和hdisk1。 输出还显示hdisk0的序列号为60050763624B79486800000000000004,hdisk1的序列号为60050763624B79486800000000000005。
接下来,登录到SVC Web界面并转到Volumes部分,如图1所示。
图1. SVC上的“卷”部分
在“卷”部分中,确认已显示UID列。 如果看不到它,请右键单击顶部标题区域,然后选择UID复选框以启用此列,如图2所示。
图2.如果需要,启用UID列
接下来,单击UID列,以便按UID号对卷列表进行排序。 现在,看看列表并发现我们以前从记录的两个序列号pcmpath query device
AIX输出清单1.每个LUN AIX序列号pcmpath query device
应与SVC音量UID号码之一匹配,如图图3。
图3.将AIX中的序列号与SVC中的UID匹配
您可以在图3中看到hdisk0 AIX设备映射回App1_1 SVC卷,而hdisk1 AIX设备映射回App1_2 SVC卷。
流程自动化
了解了如何将AIX LUN手动映射回SVC卷之后,下一步是使该过程自动化。 这可以帮助您节省时间,并使在可能已映射了数百个SVC卷的AIX服务器上完成此操作变得切实可行。
本文介绍了可以自动执行此任务的脚本。 该脚本是从AIX服务器运行的,输出是报告,其中显示了所有AIX SDDPCM控制的LUN及其对应的SVC信息,包括SVC卷名。
因为该脚本在AIX主机上运行,所以它还必须从SVC收集报告的信息。 该脚本支持两种不同的方法来从SVC收集信息。 一种方法是让脚本通过SSH连接(使用SSH密钥或通过手动键入密码)连接到SVC以收集信息。 但是,某些系统管理员无权访问SVC。 在这种情况下,另一个选择是指定一个文件。 该文件必须包含来自SVC的lshostvdiskmap
命令的输出。 这样就可以让您的SAN管理员运行lshostvdiskmap
命令,向您发送输出,并且仍然能够使用该脚本而无需直接访问SVC。
运行脚本时,可以将用户名和SVC主机指定为user@svchost
或者指定包含先前获得的lshostvdiskmap
输出的文件的路径。 该脚本从AIX服务器运行,并在由SDDPCM控制的所有AIX服务器的hdisk上创建报告。
例如,要使脚本通过SSH连接以“用户”帐户的身份连接到名为“ svchost”的SVC,可以运行类似于清单2的命令。
清单2.运行svc_report.sh脚本并将其连接到SVC以获得信息的示例命令
./svc_report.sh user@svchost
要在AIX服务器上使用名为/tmp/lshost_output
,其中包含SVC lshostvdiskmap
命令的输出,请使用清单3中的命令。
清单3.运行svc_report.sh脚本并使其使用文件的示例命令
./svc_report.sh /tmp/lshost_output
该报告的输出如图4所示。
图4. svc_report.sh脚本的示例报告
该报告显示了AIX hdisk名称,AIX卷组,hdisk大小以及来自SVC的信息,例如卷名称和序列号。
清单4中显示了用于创建报告的脚本。
清单4. svc_report.sh脚本
#!/usr/bin/ksh
if ! [ `whoami` = "root" ]; then
echo "Script must be run as root"
exit 3
fi
if [ -n "$1" ]; then
if [ -e "$1" ]; then
svcinfo=`cat "$1"`
else
svcinfo=`ssh $1 lshostvdiskmap`
fi
else
echo "Specify filename with SVC lshostvdiskmap output in it"
echo "OR specify username@svchost to retrive info from SVC through SSH"
echo "example: $0 /path/to/lshostvdiskmap_output"
echo "example: $0 user@svc1"
exit 1
fi
if ! [ -n "$svcinfo" ]; then
echo "Error: Unable to retrive SVC info"
exit 2
fi
printf "AIX_Host_Name AIX_hdisk AIX_VG SIZE_MB "
echo "id SVC_AIX_host SCSI_id vdisk_id SVC_vdisk_name SVC_vdisk_UID"
pcmpath query device | egrep "^DEV|^SERIAL" | paste - - |
awk '{print $5 " " $12}' | while read disk serial; do
vg=`lspv | grep "^$disk " | awk '{print $3}'`
size=`getconf DISK_SIZE /dev/$disk`
printf "%-15s %-10s %-12s %-10s " `hostname -s` $disk $vg $size
echo "$svcinfo" | grep "$serial *$" || echo "Not found on SVC: $serial"
done
结论
将AIX hdisk追溯到SVC卷是系统管理员需要定期执行的任务。 正确执行此操作至关重要,这样在执行SVC维护时(例如删除LUN或调整LUN的大小)就不会出错。 阅读本文之后,您应该能够手动将AIX hdisk追溯到SVC卷,并且还可以使用本文中介绍的脚本来自动执行此过程并节省时间。
翻译自: https://www.ibm.com/developerworks/aix/library/au-tracing-aix-hdisks-to-san/index.html