VIOS 磁盘映射简介

当不遵循模式且名称没有意义时

您是否发现自己在以前从未接触过的服务器上执行故障排除?现在,在大公司工作或者担任技术顾问一职时,您可能无法避免遇到这样的情形。为了避免 VIOS 和 LPAR 环境中的错误,本文将简要介绍如何在 VIOS 服务器内映射磁盘设备,而不关心名称模式。最后,您将认识到名称模式的重要性,了解如何在需要时绕过它们。

Leandro Ferreira da Silva, 集成工程师, Hewlett-Packard

http://www.ibm.com/developerworks/i/p-lsilva.jpgLeandro Silva 从使用 FreeBSD 服务器的时候就开始接触 UNIX® 系统,在那之后,他有幸加入 IBM,在 IBM 公司担任 UNIX 系统管理员,处理关键而又复杂的 AIX 和 Solaris 环境。目前,他在 Hewlett-Packard 担任集成工程师。



2012 年 4 月 01 日

简介

本文通过一种简单方式,介绍如何识别 VIOS 服务器中存在的客户磁盘配置。

在大部分时间,UNIX® 管理员会对未知的 PowerVM 设置环境感到困惑。通常,系统管理员(他们为关键客户应用程序提供支持)没有机会从头开始设置环境。出于此原因,他们无法实现自己的名称模式、规则等等。

在本文中,您将了解如何开始使用反向映射环境,这些环境没有用于磁盘映射的名称模式。

忘记名称

我们将从忘记名称开始。为此,我们需要 LPAR 的编号来识别 VIOS 磁盘映射。

在您连接到 LPAR 中后,您可以发出 uname -L 命令来获得它的编号。我们想要的编号是 LPAR 名称之前的第一个字符序列。

清单 1. 获取 LPAR 编号
root@a25acdldm001g::/> uname -L
69 h3j5lp69
root@a25acdldm001g::/>

在上面的示例中,a25acdldm001g 服务器的 LPAR 编号为 69,它的 LPAR 名称为 h3j5lp69。现在我们已有了 LPAR 编号,我们可以继续执行磁盘映射。至于现在,惟一缺少的就是磁盘本身,所以让我们检查一下 rootvg 卷组,看看会找到什么。

发出 lsvg -p rootvg 命令,就可以看到哪些磁盘包含在 rootvg 卷组中。

清单 2. 列出 VG 磁盘
root@a25acdldm001g::/> lsvg -p rootvg
rootvg:
PV_NAME           PV STATE          TOTAL PPs   FREE PPs    FREE DISTRIBUTION
hdisk0            active            639         12          00..00..00..00..12
root@a25acdldm001g::/>

结果是 rootvg 中的一个磁盘,即 hdisk0。


收集初始信息

那么,hdisk0 从何而来?

这是一个难以回答的问题。但是,当使用 PowerVM 时,您需要知道如何剖析此问题。

lspath 命令可为我们提供最初的提示。

清单 3. 获取磁盘细节
root@a25acdldm001g::/> lspath -l hdisk0
Enabled hdisk0 vscsi0
Enabled hdisk0 vscsi1
root@a25acdldm001g::/>

基于上面的输出,我们可以看到 hdisk0 分别来自 vscsi0 和 vscsi1。问题是 vscsi0 或 vscsi1 都是虚拟设备,来自 VIOS 服务器。

我们还没有获得答案,仍然需要进一步分析。

对于不熟悉 PowerVM 技术的人,PowerVM 的一项优势就是通过 VIOS 服务器提供磁盘映射。利用 PowerVM 可以节省您的 HBA 使用率、提高可用性、提高 LPAR 中的灵活性、减少成本等。这正是这种配置得到广泛使用的原因。

我们需要掌握的下一个信息是虚拟 scsi 设备的插槽编号。

我们可通过发出 lscfg -l vscsiX 命令来获得该编号,该命令中的 X 是我们已拥有的编号(即 0 和 1)。

清单 4. 获取 vscsi 插槽编号
root@a25acdldm001g::/> lscfg -l vscsi0
  vscsi0           U9117.MMA.10F2F1A-V69-C10-T1  Virtual SCSI Client Adapter
root@a25acdldm001g::/>

root@a25acdldm001g::/> lscfg -l vscsi1
  vscsi1           U9117.MMA.10F2F1A-V69-C11-T1  Virtual SCSI Client Adapter
root@a25acdldm001g::/>

我们几乎快完成我们的操作了!我们几乎已经拥有映射磁盘所需的所有内容。

LPAR 编号 (69)、vscsi 插槽编号 (C10C11),现在仅仅缺少该架构所连接的 HMC。

如果您没有在某个地方记录此信息,不要担心,您可以运行 lsrsrc 命令来获取它,如下所示:

清单 5. 获取 HMC 细节
root@a25acdldm001g::/> lsrsrc IBM.ManagementServer
Resource Persistent Attributes for IBM.ManagementServer
resource 1:
        Name             = "10.1.120.24"
        Hostname         = "10.1.120.24"
        ManagerType      = "HMC"
        LocalHostname    = "10.1.82.69"
        ClusterTM        = "9078-160"
        ClusterSNum      = ""
        ActivePeerDomain = ""
        NodeNameList     = {"a25acdldm001g"}
root@a25acdldm001g::/>

现在我们拥有了完成映射所需的所有信息。就这么简单!


hdisk0 从何而来?

打开到 HMC 的一个新会话,让我们确定 hdisk 从哪个 VIOS 服务器执行映射。

以 hscroot 用户身份连接,您可以发出 lshwres 命令来获得此信息。

清单 6. VIOS 和插槽编号
hscroot@h3j5hmc1:~> lshwres -m h3j5 -r virtualio --rsubtype scsi --level lpar --filter \ 
"lpar_ids=69" -F slot_num,remote_lpar_id,remote_slot_num
10,3,69
11,4,69 hscroot@h3j5hmc1:~>

您应该问自己,粗体的数字是何含义。

  • 1036910 是编号为 69 的 LPAR 上的 vscsi 插槽编号;3 是远程 ID(VIOS 编号);69 是编号为 3 的 VIOS 上的插槽编号)
  • 1146911 是编号为 69 的 LPAR 上的 vscsi 插槽编号;4 是远程 ID(VIOS 编号);69 是编号为 4 的 VIOS 上的插槽编号)

备注:如果您的 HMC 管理着多个主机,并且您不确定自己的 LPAR 在哪个主机上运行,您可以发出以下命令来获取其主机名称。在我的用例中,我知道主机名称为 h3j5。

如果要登录到您的 LPAR,您可以发出 lsattr 命令来获取其主机序列号,如下所示:

lsattr -El sys0 -a systemid

获取架构的序列号之后,您可以返回到 HMC 并搜索它的名称,如下所示:

lssyscfg -r sys -F name,serial_num|sed '/your serial number goes in here/!d'

现在,我们只需要访问上面提及的各个 remote_lpar_ids(即 VIOS 服务器),检查哪个虚拟主机分配给了具体的插槽,然后映射它的磁盘。

由于我们已拥有远程 LPAR ID 编号(即:VIOS 服务器),所以我们甚至不需要关心它的名称。例如:

清单 7. 进入 VIOS 服务器
hscroot@h3j5hmc1:~> mkvterm -m h3j5 --id 3
 Open in progress
 Open Completed.
  IBM Virtual I/O Server
                        login: padmin
padmin's Password:
1 unsuccessful login attempt since last login.
Last unsuccessful login: Thu May 20 19:43:36 EDT 2010 on /dev/vty0
Last login: Thu May 20 11:41:58 EDT 2010 on /dev/vty0
h3j5vioss1$

因为您已登录到 VIOS 服务器上,所以您需要发出 oem_setup_env 命令,以便进入 VIOS 服务器模式(此命令用于从 VIOS 模式切换到 AIX 模式)。

h3j5vioss1$ oem_setup_env
h3j5vioss1#
清单 8. 发现哪个虚拟主机是针对插槽编号 69 的。
h3j5vioss1# lsslot -c slot|grep "C69 "
U9117.MMA.10F2F1A-V3-C69   Virtual I/O Slot  vhost69
h3j5vioss1# ^d				(返回到 VIO 模式)

如果您很幸运,插槽或虚拟主机会具有相同的编号,但是,它们有可能完全不同。

因为我们已确定了分配给插槽 69 的虚拟主机,所以我们已拥有检查哪个磁盘映射到我们编号为 69 的 LPAR 所需的所有信息。

h3j5vioss1$ lsmap -vadapter vhost69
SVSA            Physloc                                      Client Partition ID
--------------- -------------------------------------------- ------------------
vhost69         U9117.MMA.10F2F1A-V3-C69                     0x00000045

VTD                   69_368
Status                Available
LUN                   0x8100000000000000
Backing device        hdisk121
Physloc               U789D.001.DQD79BX-P1-C1-T1-W5005076801300F0A-L76000000000000

VTD                   69_369
Status                Available
LUN                   0x8200000000000000
Backing device        hdisk122
Physloc               U789D.001.DQD79BX-P1-C1-T1-W5005076801300F0A-L77000000000000
h3j5vioss1$ oem_setup_env		( going back to AIX mode )

如上所示,hdisk121 和 hdisk122 都从 VIOS 服务器 3 映射到我们的 LPAR。

现在,让我们看看它们的冗余在多个路径中的情况。

清单 9. 检查磁盘冗余
h3j5vioss1# lspath -l hdisk121
Enabled hdisk121 fscsi0
Enabled hdisk121 fscsi0
Enabled hdisk121 fscsi1
Enabled hdisk121 fscsi1
Enabled hdisk121 fscsi2
Enabled hdisk121 fscsi2
Enabled hdisk121 fscsi3
Enabled hdisk121 fscsi3
h3j5vioss1# lspath -l hdisk122
Enabled hdisk122 fscsi0
Enabled hdisk122 fscsi0
Enabled hdisk122 fscsi1
Enabled hdisk122 fscsi1
Enabled hdisk122 fscsi2
Enabled hdisk122 fscsi2
Enabled hdisk122 fscsi3
Enabled hdisk122 fscsi3
h3j5vioss1#

在上述信息中,我们可以假设 SAN 人员已为 VIOS 服务器 3 中的所有 4 个 HBA(即从 fcs0 到 fcs3) 映射了两个 LUN。

获得最终的磁盘分配中各自的 WWPN 的最快方式之一是使用以下命令:

h3j5vioss1# for i in 0 1 2 3;do echo "fcs${i} -> $(lscfg -vl fcs${i}|sed '/Network/!d')" \
;done
fcs0 ->         Network Address.............10000000C9881EA8
fcs1 ->         Network Address.............10000000C9881EA9
fcs2 ->         Network Address.............10000000C9881EB4
fcs3 ->         Network Address.............10000000C9881EB5
h3j5vioss1#

最后说明

在 VIOS 服务器 3 中执行的所有步骤也都应该在 VIOS 服务器 4 中执行。我们需要发现 VIOS 服务器 4 中的哪个虚拟主机将磁盘映射到了 LPAR 69,然后检查它自己的冗余。

与其在 清单 3 中简单地获取磁盘细节,不如在 lspath 命令中指定其他选项,获取更多有用信息来帮助我们识别 VIOS 服务器中通过虚拟主机映射到 LPAR 的磁盘的真实名称。

那么,我们如何确切地知道 LPAR 69 中的 hdisk0 是否就是 VIOS 服务器 3 中的 hdisk121?

具体方法如下:

root@a25acdldm001g::/> lspath -l hdisk0 -F name,parent,connection,status
hdisk0,vscsi0,810000000000,Enabled
hdisk0,vscsi1,810000000000,Enabled
root@a25acdldm001g::/>

通过在 lspath 命令输出中检查连接值,我们可以查看它与 lsmap 命令中所示的值是否准确匹配。例如:

h3j5vioss1$ lsmap -vadapter vhost69
SVSA            Physloc                                      Client Partition ID
--------------- -------------------------------------------- ------------------
vhost69         U9117.MMA.10F2F1A-V3-C69                     0x00000045

VTD                   69_368
Status                Available
LUN                   0x8100000000000000
Backing device        hdisk121
Physloc               U789D.001.DQD79BX-P1-C1-T1-W5005076801300F0A-L76000000000000

VTD                   69_369
Status                Available
LUN                   0x8200000000000000
Backing device        hdisk122
Physloc               U789D.001.DQD79BX-P1-C1-T1-W5005076801300F0A-L77000000000000
h3j5vioss1$

结束语

最后,我们能够理解此环境。编号为 69 的 LPAR 在其 rootvg 上有一个磁盘,该磁盘是通过两个 VSCSI 实现的。从 HMC,我们发现每个 VSCSI 来自不同的 VIOS 服务器(即编号为 3 的 VIOS 和编号为 4 的 VIOS )。

此外,我们发现,编号为 69 的 LPAR 上的 hdisk0 为编号为 3 的 VIOS 服务器上的 hdisk121,我们还看到,它们映射到 VIOS 服务器上的所有 4 个 HBA (fcs[0-3])。

如果您不理解我们在本文中介绍的所有信息,请再阅读一次,重点关注粗体语句和数字。这些可以帮助您强化此映射概念。

以下我们所介绍内容的简单总结:

  • LPAR
    • 获取 LPAR 编号。
    • 获取磁盘编号。
    • 基于 vscsi 设备获取插槽编号。
  • HMC
    • 获取 VIOS 插槽编号。
    • 获取 VIOS 编号。
  • VIOS
    • 使用 VIOS 插槽编号获取虚拟主机。
    • 显示映射到您发现的虚拟主机的磁盘。
    • 基于连接编号来确定正确的磁盘。
    • 检查磁盘路径。

参考资料

学习

  • 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 系统时有一个更好的认识。
  • 参加 developerWorksLive! 技术讲座,迅速上手使用 IBM 产品和工具,以及 IT 行业趋势。
  • Twitter 上关注 developerWorks
  • 观看 developerWorks 演示中心,既包含面向初学者的产品安装和设置演示,又包含面向经验丰富的开发人员的高级功能。

获得产品和技术

讨论

  • 加入 developerWorks 中文社区。联系其他 developerWorks 用户,同时浏览开发人员驱动的博客、论坛、群和 wiki。

条评论

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=807929
ArticleTitle=VIOS 磁盘映射简介
publish-date=04012012