第 I 部分 Oracle VM Server for SPARC 3.1 软件
第 1 章 Oracle VM Server for SPARC 软件概述
关于 Oracle VM Server for SPARC 和 Oracle Solaris OS 版本
Oracle VM Server for SPARC 物理机到虚拟机转换工具
Oracle VM Server for SPARC Configuration Assistant
Oracle VM Server for SPARC 管理信息库
必需的 Oracle VM Server for SPARC 软件组件
在新系统上安装 Oracle VM Server for SPARC 软件
如何下载 Logical Domains Manager 软件 (Oracle Solaris 10)
自动安装 Logical Domains Manager 软件 (Oracle Solaris 10)
手动安装 Logical Domains Manager 软件
如何手动安装 Oracle VM Server for SPARC 3.1 软件 (Oracle Solaris 10)
启用 Logical Domains Manager 守护进程
如何启用 Logical Domains Manager 守护进程
升级已使用 Oracle VM Server for SPARC 的系统
使用 Oracle Solaris 10 Live Upgrade 功能时保留 Logical Domains 约束数据库文件
升级 Logical Domains Manager 和系统固件
升级至 Oracle VM Server for SPARC 3.1 软件
如何升级至 Oracle VM Server for SPARC 3.1 软件 (Oracle Solaris 10)
如何升级至 Oracle VM Server for SPARC 3.1 软件 (Oracle Solaris 11)
第 3 章 Oracle VM Server for SPARC 安全
Logical Domains Manager 权限配置文件内容
如何通过 DVD 在来宾域上安装 Oracle Solaris OS
如何通过 Oracle Solaris ISO 文件在来宾域上安装 Oracle Solaris OS
如何在 Oracle Solaris 10 来宾域上使用 Oracle Solaris JumpStart 功能
在 Oracle VM Server for SPARC 环境中使用卷管理器
通过 Solaris Volume Manager 使用虚拟磁盘
将 Solaris Volume Manager 用于虚拟磁盘
如何确定网络适配器是否符合 GLDv3 (Oracle Solaris 10)
如何设置虚拟交换机以为域提供外部连接 (Oracle Solaris 10)
如何设置虚拟交换机以为域提供外部连接 (Oracle Solaris 11)
在 Oracle VM Server for SPARC 环境中配置 IPMP
在 Oracle VM Server for SPARC 虚拟网络中使用基于链路的 IPMP
在 Logical Domains 1.3 之前的发行版中配置并使用 IPMP
与 vnet 和 vsw 驱动程序的早期(不识别巨型帧)版本的兼容性 (Oracle Solaris 10)
迁移 OpenBoot PROM 中的域或在内核调试器中运行的域
硬分区系统与其他 Oracle VM Server for SPARC 功能之间的交互
如何从 XML 文件恢复域配置 (ldm add-domain)
如何从 XML 文件恢复域配置 (ldm init-system)
操作具有 Oracle VM Server for SPARC 的 Oracle Solaris OS
Oracle Solaris OS 启动后 OpenBoot 固件不可用
将 Oracle VM Server for SPARC 与服务处理器结合使用
InfiniBand SR-IOV 设备仅支持静态 SR-IOV 功能。
要最大限度地缩短停机时间,请在根域处于延迟重新配置状态或来宾域已停止时作为一个组运行所有 SR-IOV 命令。以这种方式限制的 SR-IOV 命令包括 ldm create-vf、ldm destroy-vf、ldm add-io 和 ldm remove-io 命令。
通常,虚拟功能会分配到多个来宾域。重新引导根域会影响已分配有该根域的虚拟功能的所有来宾域。
由于未使用的 InfiniBand 虚拟功能几乎不会产生任何开销,因此,可以通过提前创建所需的虚拟功能(即使不会立即使用这些虚拟功能)来避免停机时间。
有关所需 PCIe InfiniBand SR-IOV 硬件的信息,请参见Oracle VM Server for SPARC 3.1.1.1、3.1.1 和 3.1 发行说明 中的PCIe SR-IOV 硬件和软件要求。
要获得 InfiniBand SR-IOV 支持,根域必须至少运行 Oracle Solaris 11.1.10.5.0 OS。I/O 域可以运行 Oracle Solaris 10 1/13 OS 加上修补程序 148888-04,或者至少运行 Oracle Solaris 11.1.10.5.0 OS。
此过程介绍如何创建 InfiniBand SR-IOV 虚拟功能。
primary# ldm start-reconf root-domain-name
请只有在未对具有物理功能的总线启用 I/O 虚拟化时才执行此步骤。
primary# ldm set-io iov=on bus
primary# ldm create-vf pf-name
您可以为要创建的每个虚拟功能运行此命令。您还可以使用 –n 选项通过单个命令创建基于同一物理功能的多个虚拟功能。请参见Example 6–7 和 ldm(1M) 手册页。
运行以下命令之一:
primary# ldm stop-domain -r root-domain
primary# shutdown -i6 -g0 -y
以下示例显示有关物理功能 /SYS/MB/RISER1/PCIE4/IOVIB.PF0 物理功能的信息:
此物理功能位于 PCIE 插槽 4 中。
IOVIB 字符串表示该物理功能是一个 InfiniBand SR-IOV 设备。
primary# ldm list-io NAME TYPE BUS DOMAIN STATUS ---- ---- --- ------ ------ pci_0 BUS pci_0 primary niu_0 NIU niu_0 primary /SYS/MB/RISER0/PCIE0 PCIE pci_0 primary EMP /SYS/MB/RISER1/PCIE1 PCIE pci_0 primary EMP /SYS/MB/RISER2/PCIE2 PCIE pci_0 primary EMP /SYS/MB/RISER0/PCIE3 PCIE pci_0 primary OCC /SYS/MB/RISER1/PCIE4 PCIE pci_0 primary OCC /SYS/MB/RISER2/PCIE5 PCIE pci_0 primary EMP /SYS/MB/SASHBA0 PCIE pci_0 primary OCC /SYS/MB/SASHBA1 PCIE pci_0 primary OCC /SYS/MB/NET0 PCIE pci_0 primary OCC /SYS/MB/NET2 PCIE pci_0 primary OCC /SYS/MB/RISER0/PCIE3/IOVIB.PF0 PF pci_0 primary /SYS/MB/RISER1/PCIE4/IOVIB.PF0 PF pci_0 primary /SYS/MB/NET0/IOVNET.PF0 PF pci_0 primary /SYS/MB/NET0/IOVNET.PF1 PF pci_0 primary /SYS/MB/NET2/IOVNET.PF0 PF pci_0 primary /SYS/MB/NET2/IOVNET.PF1 PF pci_0 primary
以下命令显示有关指定物理功能的更多详细信息。maxvfs 值表示该设备所支持的最多虚拟功能数。
primary# ldm list-io -l /SYS/MB/RISER1/PCIE4/IOVIB.PF0 NAME TYPE BUS DOMAIN STATUS ---- ---- --- ------ ------ /SYS/MB/RISER1/PCIE4/IOVIB.PF0 PF pci_0 primary [pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0] maxvfs = 64
以下示例说明如何创建静态虚拟功能。首先,在 primary 域上启动延迟重新配置,然后对 pci_0 PCIe 总线启用 I/O 虚拟化。由于已将 pci_0 总线分配到 primary 根域,因此,请使用 ldm set-io 命令启用 I/O 虚拟化。
primary# ldm start-reconf primary Initiating a delayed reconfiguration operation on the primary domain. All configuration changes for other domains are disabled until the primary domain reboots, at which time the new configuration for the primary domain will also take effect. primary# ldm set-io iov=on pci_0 ----------------------------------------------------------------------- Notice: The primary domain is in the process of a delayed reconfiguration. Any changes made to the primary domain will only take effect after it reboots. -----------------------------------------------------------------------
现在,可以使用 ldm create-vf 命令从 /SYS/MB/RISER1/PCIE4/IOVIB.PF0 物理功能创建虚拟功能。
primary# ldm create-vf /SYS/MB/RISER1/PCIE4/IOVIB.PF0 ----------------------------------------------------------------------- Notice: The primary domain is in the process of a delayed reconfiguration. Any changes made to the primary domain will only take effect after it reboots. ---------------------------------------------------------------------- Created new vf: /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF0
请注意,在同一个延迟重新配置过程中,可以创建多个虚拟功能。以下命令可以再创建一个虚拟功能:
primary# ldm create-vf /SYS/MB/RISER1/PCIE4/IOVIB.PF0 ----------------------------------------------------------------------- Notice: The primary domain is in the process of a delayed reconfiguration. Any changes made to the primary domain will only take effect after it reboots. ----------------------------------------------------------------------- Created new vf: /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF1
最后,重新引导 primary 根域以使更改生效。
primary# shutdown -i6 -g0 -y Shutdown started. Changing to init state 6 - please wait ...
此过程介绍如何销毁 InfiniBand SR-IOV 虚拟功能。
如果当前未将虚拟功能分配给域,则可以销毁该虚拟功能。虚拟功能只能按照与创建时相反的顺序进行销毁,因此,只能销毁已创建的最后一个虚拟功能。生成的配置由物理功能驱动程序验证。
primary# ldm start-reconf root-domain-name
primary# ldm destroy-vf vf-name
您可以为要销毁的每个虚拟功能运行此命令。您还可以使用 –n 选项通过单个命令销毁基于同一物理功能的多个虚拟功能。请参见Example 6–9 和 ldm(1M) 手册页。
运行以下命令之一:
primary# ldm stop-domain -r root-domain
primary# shutdown -i6 -g0 -y
以下示例说明如何销毁静态 InfiniBand 虚拟功能 /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF1。
ldm list-io 命令可显示有关总线、物理功能和虚拟功能的信息。
primary# ldm list-io NAME TYPE BUS DOMAIN STATUS ---- ---- --- ------ ------ pci_0 BUS pci_0 primary IOV ... /SYS/MB/RISER1/PCIE4/IOVIB.PF0 PF pci_0 primary ... /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF0 VF pci_0 /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF1 VF pci_0
可以使用 ldm list-io -l 命令获取有关物理功能和相关虚拟功能的更多详细信息。
primary# ldm list-io -l /SYS/MB/RISER1/PCIE4/IOVIB.PF0 NAME TYPE BUS DOMAIN STATUS ---- ---- --- ------ ------ /SYS/MB/RISER1/PCIE4/IOVIB.PF0 PF pci_0 primary [pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0] maxvfs = 64 /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF0 VF pci_0 [pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0,1] /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF1 VF pci_0 [pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0,2]
只有当未将某一虚拟功能分配到域时,才能销毁该虚拟功能。ldm list-io -l 输出中的 DOMAIN 列可显示将虚拟功能分配到的任何域的名称。此外,虚拟功能必须按照与创建时相反的顺序来销毁。因此,在此示例中,必须先销毁 /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF1 虚拟功能,然后再销毁 /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF0 虚拟功能。
在确定了正确的虚拟功能之后,可以将其销毁。首先,启动延迟重新配置。
primary# ldm start-reconf primary Initiating a delayed reconfiguration operation on the primary domain. All configuration changes for other domains are disabled until the primary domain reboots, at which time the new configuration for the primary domain will also take effect. primary# ldm destroy-vf /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF1 ----------------------------------------------------------------------- Notice: The primary domain is in the process of a delayed reconfiguration. Any changes made to the primary domain will only take effect after it reboots. -----------------------------------------------------------------------
可以在延迟重新配置状态下发出多个 ldm destroy-vf 命令。这样,您也可以销毁 /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF0。
最后,重新引导 primary 根域以使更改生效。
primary# shutdown -i6 -g0 -y Shutdown started. Changing to init state 6 - please wait ...
此过程介绍如何向 I/O 域添加 InfiniBand SR-IOV 虚拟功能。
primary# ldm stop-domain domain-name
vf-name 是虚拟功能的 pseudonym 名称或路径名称。建议做法是使用 pseudonym 名称。domain-name 用于指定要将虚拟功能添加到的域的名称。指定的 I/O 域必须处于非活动或绑定状态。
primary# ldm add-io vf-name domain-name
primary# ldm start-domain domain-name
以下示例说明如何将 /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF2 虚拟功能添加到 iodom1 I/O 域。
首先,确定要分配的虚拟功能。
primary# ldm list-io NAME TYPE BUS DOMAIN STATUS ---- ---- --- ------ ------ pci_0 BUS pci_0 primary IOV ... /SYS/MB/RISER1/PCIE4/IOVIB.PF0 PF pci_0 primary ... /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF0 VF pci_0 /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF1 VF pci_0 /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF2 VF pci_0 /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF3 VF pci_0
要将某个虚拟功能添加到 I/O 域,该虚拟功能必须尚未分配。DOMAIN 列可指示要将该虚拟功能分配到的域的名称。在此示例中,/SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF2 未分配到域。
要将虚拟功能添加到某个域,该域必须处于非活动或绑定状态。
primary# ldm list-domain NAME STATE FLAGS CONS VCPU MEMORY UTIL NORM UPTIME primary active -n-cv- UART 32 64G 0.2% 0.2% 56m iodom1 active -n---- 5000 8 8G 33% 33% 25m
ldm list-domain 输出显示 iodom1 I/O 域处于活动状态,因此,必须将其停止。
primary# ldm stop iodom1 LDom iodom1 stopped primary# ldm list-domain NAME STATE FLAGS CONS VCPU MEMORY UTIL NORM UPTIME primary active -n-cv- UART 32 64G 0.0% 0.0% 57m iodom1 bound ------ 5000 8 8G
现在,您可以将该虚拟功能添加到该 I/O 域。
primary# ldm add-io /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF2 iodom1 primary# ldm list-io ... /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF2 VF pci_0 iodom1
请注意,可以在 I/O 域停止期间添加多个虚拟功能。例如,可以将其他未分配的虚拟功能(如 /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF3)添加到 iodom1 中。添加虚拟功能后,可以重新启动 I/O 域。
primary# ldm start iodom1 LDom iodom1 started primary# ldm list-domain NAME STATE FLAGS CONS VCPU MEMORY UTIL NORM UPTIME primary active -n-cv- UART 32 64G 1.0% 1.0% 1h 18m iodom1 active -n---- 5000 8 8G 36% 36% 1m
此过程介绍如何从 I/O 域中删除 InfiniBand SR-IOV 虚拟功能。
primary# ldm stop-domain domain-name
vf-name 是虚拟功能的 pseudonym 名称或路径名称。建议做法是使用设备 pseudonym。domain-name 用于指定要从中删除虚拟功能的域的名称。指定的 I/O 域必须处于非活动或绑定状态。
primary# ldm rm-io vf-name domain-name
primary# ldm start-domain domain-name
以下示例说明如何从 iodom1 I/O 域删除 /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF2 虚拟功能。
首先,确定要删除的虚拟功能。
primary# ldm list-io NAME TYPE BUS DOMAIN STATUS ---- ---- --- ------ ------ pci_0 BUS pci_0 primary IOV ... /SYS/MB/RISER1/PCIE4/IOVIB.PF0 PF pci_0 primary ... /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF0 VF pci_0 /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF1 VF pci_0 /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF2 VF pci_0 iodom1 /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF3 VF pci_0 iodom1
DOMAIN 列显示虚拟功能所分配到的域的名称。/SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF2 虚拟功能已分配到 iodom1。
要从某个 I/O 域中删除虚拟功能,该域必须处于非活动或绑定状态。使用 ldm list-domain 命令可确定域的状态。
primary# ldm list-domain NAME STATE FLAGS CONS VCPU MEMORY UTIL NORM UPTIME primary active -n-cv- UART 32 64G 0.3% 0.3% 29m iodom1 active -n---- 5000 8 8G 17% 17% 11m
在此示例中,iodom1 域处于活动状态,因此,必须将其停止。
primary# ldm stop iodom1 LDOM iodom1 stopped primary# ldm list-domain NAME STATE FLAGS CONS VCPU MEMORY UTIL NORM UPTIME primary active -n-cv- UART 32 64G 0.0% 0.0% 31m iodom1 bound ------ 5000 8 8G
现在,您可以从 iodom1 中删除 /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF2 虚拟功能。
primary# ldm rm-io /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF2 iodom1 primary# ldm list-io NAME TYPE BUS DOMAIN STATUS ---- ---- --- ------ ------ ... /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF2 VF pci_0 ...
请注意,该虚拟功能的 DOMAIN 列现在为空。
可以在 I/O 域停止期间删除多个虚拟功能。在此示例中,您也可以删除 /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF3 虚拟功能。删除虚拟功能后,可以重新启动 I/O 域。
primary# ldm start iodom1 LDom iodom1 started primary# ldm list-domain NAME STATE FLAGS CONS VCPU MEMORY UTIL NORM UPTIME primary active -n-cv- UART 32 64G 0.3% 0.3% 39m iodom1 active -n---- 5000 8 8G 9.4% 9.4% 5s
此过程介绍如何向根域添加 InfiniBand SR-IOV 虚拟功能。
primary# ldm start-reconf root-domain
vf-name 是虚拟功能的 pseudonym 名称或路径名称。建议做法是使用 pseudonym 名称。root-domain-name 用于指定要将虚拟功能添加到的根域的名称。
primary# ldm add-io vf-name root-domain-name
运行以下命令之一:
primary# ldm stop-domain -r root-domain-name
primary# shutdown -i6 -g0 -y
此过程介绍如何从根域中删除 InfiniBand SR-IOV 虚拟功能。
primary# ldm start-reconf root-domain
vf-name 是虚拟功能的 pseudonym 名称或路径名称。建议做法是使用 pseudonym 名称。root-domain-name 用于指定要将虚拟功能添加到的根域的名称。
primary# ldm remove-io vf-name root-domain-name
运行以下命令之一:
primary# ldm stop-domain -r root-domain-name
primary# shutdown -i6 -g0 -y
本节介绍如何确定 InfiniBand 物理功能和虚拟功能,以及如何将 Logical Domains Manager 与 InfiniBand 物理功能和虚拟功能的 Oracle Solaris 视图关联起来。
以下示例说明使用不同方法来显示有关 /SYS/MB/RISER1/PCIE4/IOVIB.PF0 物理功能的信息。如果某个物理功能名称包含 IOVIB 字符串,则表示这是一个 InfiniBand SR-IOV 设备。
primary# ldm list-io NAME TYPE BUS DOMAIN STATUS ---- ---- --- ------ ------ pci_0 BUS pci_0 primary IOV niu_0 NIU niu_0 primary /SYS/MB/RISER0/PCIE0 PCIE pci_0 primary EMP /SYS/MB/RISER1/PCIE1 PCIE pci_0 primary EMP /SYS/MB/RISER2/PCIE2 PCIE pci_0 primary EMP /SYS/MB/RISER0/PCIE3 PCIE pci_0 primary OCC /SYS/MB/RISER1/PCIE4 PCIE pci_0 primary OCC /SYS/MB/RISER2/PCIE5 PCIE pci_0 primary EMP /SYS/MB/SASHBA0 PCIE pci_0 primary OCC /SYS/MB/SASHBA1 PCIE pci_0 primary OCC /SYS/MB/NET0 PCIE pci_0 primary OCC /SYS/MB/NET2 PCIE pci_0 primary OCC /SYS/MB/RISER0/PCIE3/IOVIB.PF0 PF pci_0 primary /SYS/MB/RISER1/PCIE4/IOVIB.PF0 PF pci_0 primary /SYS/MB/NET0/IOVNET.PF0 PF pci_0 primary /SYS/MB/NET0/IOVNET.PF1 PF pci_0 primary /SYS/MB/NET2/IOVNET.PF0 PF pci_0 primary /SYS/MB/NET2/IOVNET.PF1 PF pci_0 primary /SYS/MB/RISER0/PCIE3/IOVIB.PF0.VF0 VF pci_0 primary /SYS/MB/RISER0/PCIE3/IOVIB.PF0.VF1 VF pci_0 primary /SYS/MB/RISER0/PCIE3/IOVIB.PF0.VF2 VF pci_0 iodom1 /SYS/MB/RISER0/PCIE3/IOVIB.PF0.VF3 VF pci_0 iodom1 /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF0 VF pci_0 primary /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF1 VF pci_0 primary /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF2 VF pci_0 iodom1 /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF3 VF pci_0 iodom1
ldm list-io -l 命令可提供有关指定物理功能设备 /SYS/MB/RISER1/PCIE4/IOVIB.PF0 的更多详细信息。maxvfs 值显示该物理设备可支持的最多虚拟功能数为 64。对于与物理功能关联的每个虚拟功能,输出会显示以下信息:
功能名称
功能类型
总线名称
域名
功能的可选状态
设备路径
此 ldm list-io -l 输出显示 VF0 和 VF1 已分配到 primary 域,而 VF2 和 VF3 已分配到 iodom1 I/O 域。
primary# ldm list-io -l /SYS/MB/RISER1/PCIE4/IOVIB.PF0 NAME TYPE BUS DOMAIN STATUS ---- ---- --- ------ ------ /SYS/MB/RISER1/PCIE4/IOVIB.PF0 PF pci_0 primary [pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0] maxvfs = 64 /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF0 VF pci_0 primary [pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0,1] /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF1 VF pci_0 primary [pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0,2] /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF2 VF pci_0 iodom1 [pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0,3] /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF3 VF pci_0 iodom1 [pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0,4]
本节介绍如何在 Oracle Solaris 11 和 Oracle Solaris 10 系统上确定 InfiniBand SR-IOV 设备。
使用 ldm list-io -l 命令可显示与每个物理功能和虚拟功能关联的 Oracle Solaris 设备路径名称。
primary# ldm list-io -l /SYS/MB/RISER1/PCIE4/IOVIB.PF0 NAME TYPE BUS DOMAIN STATUS ---- ---- --- ------ ------ /SYS/MB/RISER1/PCIE4/IOVIB.PF0 PF pci_0 primary [pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0] maxvfs = 64 /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF0 VF pci_0 primary [pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0,1] /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF1 VF pci_0 primary [pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0,2] /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF2 VF pci_0 iodom1 [pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0,3] /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF3 VF pci_0 iodom1 [pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0,4]
Oracle Solaris 11:
使用 Oracle Solaris 11 dladm show-phys -L 命令可将每个 IP over InfiniBand (IPoIB) 实例与其物理卡匹配。例如,以下命令显示哪些 IPoIB 实例使用插槽 PCIE4 中的卡,即,前面的 ldm list-io -l 示例中显示的卡。
primary# dladm show-phys -L | grep PCIE4 net5 ibp0 PCIE4/PORT1 net6 ibp1 PCIE4/PORT2 net19 ibp8 PCIE4/PORT1 net9 ibp9 PCIE4/PORT2 net18 ibp4 PCIE4/PORT1 net11 ibp5 PCIE4/PORT2
每个 InfiniBand 主机通道适配器 (host channel adapter, HCA) 设备都有一个全局唯一标识符 (globally unique ID, GUID)。每个端口也有 GUID(通常,一个 HCA 具有两个端口)。InfiniBand HCA GUID 用于唯一标识相应的适配器。端口 GUID 用于唯一标识每个 HCA 端口,并承担与网络设备的 MAC 地址类似的角色。这些 16 位十六进制数字 GUID 可供 InfiniBand 管理工具和诊断工具使用。
使用 Oracle Solaris 11 dladm show-ib 命令可获取有关 InfiniBand SR-IOV 设备的 GUID 信息。同一设备的物理功能和虚拟功能具有相关的 HCA GUID 值。HCA GUID 的第 11 位十六进制数字显示了物理功能与其虚拟功能之间的关系。请注意,在 HCAGUID 和 PORTGUID 列中,前导零均已禁止显示。
例如,物理功能 PF0 具有两个虚拟功能:VF0 和 VF1,这两个虚拟功能已分配到 primary 域。每个虚拟功能的第 11 位十六进制数字都是在相关物理功能的基础上递增 1。因此,如果 PF0 的 GUID 为 8,则 VF0 和 VF1 的 GUID 将分别为 9 和 A。
以下 dladm show-ib 命令输出显示 net5 和 net6 链路属于物理功能 PF0。net19 和 net9 链路属于同一设备的 VF0,而 net18 和 net11 链路则属于 VF1。
primary# dladm show-ib LINK HCAGUID PORTGUID PORT STATE PKEYS net6 21280001A17F56 21280001A17F58 2 up FFFF net5 21280001A17F56 21280001A17F57 1 up FFFF net19 21290001A17F56 14050000000001 1 up FFFF net9 21290001A17F56 14050000000008 2 up FFFF net18 212A0001A17F56 14050000000002 1 up FFFF net11 212A0001A17F56 14050000000009 2 up FFFF
以下 Oracle Solaris 11 dladm show-phys 输出中的设备显示了链路和底层 InfiniBand 端口设备 (ibpX) 之间的关系。
primary# dladm show-phys LINK MEDIA STATE SPEED DUPLEX DEVICE ... net6 Infiniband up 32000 unknown ibp1 net5 Infiniband up 32000 unknown ibp0 net19 Infiniband up 32000 unknown ibp8 net9 Infiniband up 32000 unknown ibp9 net18 Infiniband up 32000 unknown ibp4 net11 Infiniband up 32000 unknown ibp5
使用 ls -l 命令可显示实际 InfiniBand 端口(IB 端口)设备路径。IB 端口设备是 ldm list-io -l 输出中所示设备路径的子项。物理功能的单元地址包含一部分(如 pciex15b3,673c@0),而虚拟功能的单元地址则包含两部分(如 pciex15b3,1002@0,2)。此单元地址的第二部分比虚拟功能编号大 1。(在此示例中,第二个组成部分为 2,因此,该设备为虚拟功能 1。)以下输出显示 /dev/ibp0 为物理功能,而 /dev/ibp5 为虚拟功能。
primary# ls -l /dev/ibp0 lrwxrwxrwx 1 root root 83 Apr 18 12:02 /dev/ibp0 -> ../devices/pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0/hermon@0/ibport@1,0,ipib:ibp0 primary# ls -l /dev/ibp5 lrwxrwxrwx 1 root root 85 Apr 22 23:29 /dev/ibp5 -> ../devices/pci@400/pci@1/pci@0/pci@0/pciex15b3,1002@0,2/hermon@3/ibport@2,0,ipib:ibp5
可以使用 OpenFabrics ibv_devices 命令查看 OpenFabrics 设备名称和节点 (HCA) GUID。如果具有虚拟功能,则 Type 列可指示此功能为物理功能还是虚拟功能。
primary# ibv_devices device node GUID type ------ ---------------- ---- mlx4_4 0002c90300a38910 PF mlx4_5 0021280001a17f56 PF mlx4_0 0002cb0300a38910 VF mlx4_1 0002ca0300a38910 VF mlx4_2 00212a0001a17f56 VF mlx4_3 0021290001a17f56 VF
Oracle Solaris 10:
在 Oracle Solaris 10 来宾 I/O 域中,使用 dladm show-dev 命令可显示每个 IPoIB 实例,其名称格式为 ibdxx。
# dladm show-dev vnet0 link: up speed: 0 Mbps duplex: unknown ibd0 link: up speed: 32000 Mbps duplex: unknown ibd1 link: up speed: 32000 Mbps duplex: unknown ibd2 link: up speed: 32000 Mbps duplex: unknown ibd3 link: up speed: 32000 Mbps duplex: unknown
可以对 /devices/ 目录中的 HCA 路径名称使用 ls -l 命令来提取 HCA 及其 HCA GUID。
# ls -l /devices/ib\:[0-9]* crw-r--r-- 1 root sys 67, 0 Jun 12 16:27 /devices/ib:212B0001A17F56 crw-r--r-- 1 root sys 67, 0 Jun 12 16:27 /devices/ib:212C0001A17F56
ibv_devices 输出中的 GUID(请注意第 11 位十六进制数字,即,此示例中的 "B" 和 "C")表示这些虚拟功能已分配到 Oracle Solaris 10 域。可以通过对 /dev IPoIB 路径名称使用 ls -l 命令来获取有关 IPoIB 实例的更多信息。
# ls -l /dev/ibd* lrwxrwxrwx 1 root other 29 May 23 16:26 /dev/ibd -> ../devices/pseudo/clone@0:ibd lrwxrwxrwx 1 root root 89 May 31 10:52 /dev/ibd0 -> ../devices/pci@400/pci@1/pci@0/pci@0/pciex15b3,1002@0,3/hermon@0/ibport@1,ffff,ipib:ibd0 lrwxrwxrwx 1 root root 89 May 31 10:52 /dev/ibd1 -> ../devices/pci@400/pci@1/pci@0/pci@0/pciex15b3,1002@0,3/hermon@0/ibport@2,ffff,ipib:ibd1 lrwxrwxrwx 1 root root 89 Jun 12 18:36 /dev/ibd2 -> ../devices/pci@400/pci@1/pci@0/pci@0/pciex15b3,1002@0,4/hermon@1/ibport@1,ffff,ipib:ibd2 lrwxrwxrwx 1 root root 89 Jun 12 18:36 /dev/ibd3 -> ../devices/pci@400/pci@1/pci@0/pci@0/pciex15b3,1002@0,4/hermon@1/ibport@2,ffff,ipib:ibd3
每个路径均以 ldm list-io -l 输出中显示的设备路径开头。虚拟功能(如 pciex15b3,1002@0,4)的单元地址包含两部分,其中的第二部分比虚拟功能编号(在此示例中为 VF3)大 1。
ibport 设备的单元地址包含三部分,后跟冒号和 IPoIB 设备实例名称。此单元地址的第一部分为端口号。第二部分为分区键(P 键)十六进制值。请注意,InfiniBand P 键值类似于以太网的 VLAN。第三部分为字符串 ipib。
ls -l /dev/ibd3 命令输出显示 ibd3 IPoIB 实例使用端口 2 和 P 键值 ffff。