简介
本文通过一种简单方式,介绍如何识别 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 插槽编号 (C10 和 C11),现在仅仅缺少该架构所连接的 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:~>
您应该问自己,粗体的数字是何含义。
10、3、69(10 是编号为 69 的 LPAR 上的 vscsi 插槽编号;3 是远程 ID(VIOS 编号);69 是编号为 3 的 VIOS 上的插槽编号)
11、4、69(11 是编号为 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 插槽编号获取虚拟主机。
显示映射到您发现的虚拟主机的磁盘。
基于连接编号来确定正确的磁盘。
检查磁盘路径。
本文通过一种简单方式,介绍如何识别 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 插槽编号 (C10 和 C11),现在仅仅缺少该架构所连接的 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:~>
您应该问自己,粗体的数字是何含义。
10、3、69(10 是编号为 69 的 LPAR 上的 vscsi 插槽编号;3 是远程 ID(VIOS 编号);69 是编号为 3 的 VIOS 上的插槽编号)
11、4、69(11 是编号为 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 插槽编号获取虚拟主机。
显示映射到您发现的虚拟主机的磁盘。
基于连接编号来确定正确的磁盘。
检查磁盘路径。