从 AIX hdisk 跟踪回到 IBM System Storage SVC 卷

在一个使用 IBM System Storage® SAN Volume Controller (SVC) 的 IBM AIX® 环境中工作时,您需要能够确定表示每个 AIX hdisk 的 SVC 卷。本文将介绍手动执行此过程以及使用脚本自动化该过程的步骤。有了这些技能,您将能够更好地管理您的 SVC 和 AIX 系统上的存储。

Brian K. Smith, 系统管理员

http://www.ibm.com/developerworks/aix/library/au-aix-graphviz/brian.jpg在撰写本文之际,Brian Smith 还是位于犹他州盐湖城的 Intermountain Healthcare 公司的一名 UNIX 系统管理员。您可以访问他的 developerWorks 博客



2014 年 1 月 13 日

简介

SVC 是来自 IBM 的一个非常强大的、多用途的 SAN 虚拟化产品。它支持许多功能,比如精简置备(thin provisioning)、IBM Real-time Compression™、在线数据迁移等。SVC 的管理通过一个简单的 Web 界面来实现,该界面使得对 SVC 的处理变得非常直观和轻松。但是,从 AIX 主机角度讲,将 AIX hdisk 映射回 SCV 卷可能既耗时又困难。如果需要从一个 AIX 服务器删除某个 SVC LUN hdisk 设备,您需要确保自己了解哪个 hdisk 对应于哪个 SVC LUN,以预防删除错误的 LUN。本文将介绍在 AIX 上使用 SDDPCM 多路径软件时,如何确定哪个 SVC 卷对应于哪个 AIX hdisk。


手动跟踪

如果仅有两个 AIX hdisk 需要映射回 SVC 卷,最简单的方法是手动执行此操作。我们需要首先从 AIX 服务器收集信息。本文专为使用 IBM Subsystem Device Driver Path Control Module (SDDPCM) 多路径软件的 AIX 服务器而编写。SDDPCM 提供了 pcmpath 命令,这是一个非常强大的命令,可收集能够在 AIX 服务器上看到、由 SDDPCM 控制的 LUN 的信息。首先登录到您的 AIX 服务器,然后运行 pcmpath query device 命令。这会显示 SDDPCM 控制的每个 SAN LUN 的详细信息。为每个 LUN 列出的数据项之一是序列号。该序列号是我们可用于从 hdisk 跟踪回到 SVC 卷的密钥,因为 SVC 显示了相同的编号作为卷 “UID”。

清单 1. pcmpathquery device 的示例输出
# 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 所示。

SVC 上的 Volumes 部分

在 Volumes 部分中,保证您已经显示了 UID 列。如果未看到该列,请右键单击顶部标题区域并选择 UID 复选框来启用此列,如图 2 所示。

如果需要,请启用 UID 列

接下来,单击 UID 列,让个列按 UID 编号进行排序。现在,查看该列表,并找到我们之前在清单 1 的 pcmpath query device AIX 输出中记录的两个序列号。来自 pcmpath query device 的每个 AIX LUN 序列号都应与一个 SVC 卷 UID 编号相匹配,如图 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 连接到 SVC(使用 SSH 密钥或手动键入密码)来收集信息。但是,一些系统管理员无法访问 SVC。在这些情况下,另一个选项是指定一个文件。该文件必须包含来自 SVC 的 lshostvdiskmap 命令的输出。这使得您的 SAN 管理员能够运行 lshostvdiskmap 命令,向您发送输出,并且仍然能够在不直接访问 SVC 的情况下使用此脚本。

运行此脚本时,您指定了一个用户名和 SVC 主机作为 user@svchost,或者指定了包含之前获取的 lshostvdiskmap 输出的文件的路径。该脚本从一个 AIX 服务器运行,在该 AIX 服务器的所有由 SDDPCM 控制的 hdisk 上创建一个报告。

例如,要让该脚本通过 SSH 连接以 “用户” 帐户身份连接到 SVC 指定的 “svchost”,您可以运行与清单 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。

来自 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。阅读本文后,您应该能够手动从 AIX hdisk 跟踪回 SVC 卷,使用本文中给出的脚本自动化此过程并节省时间。

参考资料

学习

  • IBM SAN Volume Controller 信息中心
  • AIX 6.1 信息中心
  • AIX 7.1 信息中心
  • AIX and UNIX 专区:developerWorks 的“AIX and UNIX 专区”提供了大量与 AIX 系统管理的所有方面相关的信息,您可以利用它们来扩展自己的 UNIX 技能。
  • AIX and UNIX 新手入门:访问“AIX and UNIX 新手入门”页面可了解更多关于 AIX 和 UNIX 的内容。
  • AIX and UNIX 专题汇总:AIX and UNIX 专区已经为您推出了很多的技术专题,为您总结了很多热门的知识点。我们在后面还会继续推出很多相关的热门专题给您,为了方便您的访问,我们在这里为您把本专区的所有专题进行汇总,让您更方便的找到您需要的内容。
  • AIX and UNIX 下载中心:在这里你可以下载到可以运行在 AIX 或者是 UNIX 系统上的 IBM 服务器软件以及工具,让您可以提前免费试用他们的强大功能。
  • IBM Systems Magazine for AIX 中文版:本杂志的内容更加关注于趋势和企业级架构应用方面的内容,同时对于新兴的技术、产品、应用方式等也有很深入的探讨。IBM Systems Magazine 的内容都是由十分资深的业内人士撰写的,包括 IBM 的合作伙伴、IBM 的主机工程师以及高级管理人员。所以,从这些内容中,您可以了解到更高层次的应用理念,让您在选择和应用 IBM 系统时有一个更好的认识。

讨论

  • 加入 developerWorks 中文社区。查看开发人员推动的博客、论坛、组和维基,并与其他 developerWorks 用户交流。

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=AIX and UNIX
ArticleID=959928
ArticleTitle=从 AIX hdisk 跟踪回到 IBM System Storage SVC 卷
publish-date=01132014