第 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 功能
高级 SR-IOV 主题:InfiniBand SR-IOV
在 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 与服务处理器结合使用
您可以同时使用静态和动态 SR-IOV 方法管理以太网 SR-IOV 设备。
有关所需 PCIe 以太网 SR-IOV 硬件的信息,请参见Oracle VM Server for SPARC 3.1.1.1、3.1.1 和 3.1 发行说明 中的PCIe SR-IOV 硬件和软件要求。
您可以通过设置 pvid 或 vid 属性启用虚拟功能的 VLAN 配置。您不能同时设置这两个虚拟功能属性。
动态创建虚拟功能时,请确保物理功能使用多路径或未被激活。
如果无法使用多路径或必须激活物理功能,请使用静态方法创建虚拟功能。请参见静态 SR-IOV。
使用 ldm create-vf 命令可设置特定于设备和特定于网络的虚拟功能属性。unicast-slots 属性是特定于设备的属性。mac-addr、alt-mac-addrs、mtu、pvid 和 vid 属性是特定于网络的属性。
请注意,只有在将虚拟功能分配到处于延迟重新配置状态的 primary 域时,才能更改特定于网络的属性 mac-addr、alt-mac-addrs 和 mtu。
如果虚拟功能按如下方式分配,则尝试更改这些属性将失败:
虚拟功能分配到活动的 I/O 域:属性更改请求将被拒绝,因为必须在所属域处于非活动或绑定状态时,才能进行更改。
虚拟功能分配到非 primary 域且延迟重新配置已生效:属性更改请求将失败,并显示错误消息。
pvid 和 vid 特定于网络的属性可以随意更改,没有任何限制。
本节介绍如何动态创建和销毁虚拟功能。如果无法使用动态方法来执行这些操作,请在创建或销毁虚拟功能之前在根域上启动延迟重新配置。
如果无法使用此动态方法,请改用静态方法。请参见静态 SR-IOV。
primary# ldm list-io
请注意,物理功能的名称包括 PCIe SR-IOV 卡或板载设备的位置信息。
请只有在未对具有物理功能的总线启用 I/O 虚拟化时才执行此步骤。
在创建一个或多个虚拟功能后,您可以将其分配给来宾域。
primary# ldm create-vf -n number | max pf-name
使用 ldm create-vf -n max 命令可一次创建该物理功能的所有虚拟功能。
注意 - 系统使用 Intel 10-G 以太网卡时,基于每个物理功能创建的虚拟功能请勿超过 31 个,以便最大程度地提高性能。 |
您可以使用路径名称或 pseudonym 名称指定虚拟功能。但是,建议做法是使用 pseudonym 名称。
primary# ldm create-vf [mac-addr=num] [alt-mac-addrs=[auto|num1,[auto|num2,...]]] [pvid=pvid] [vid=vid1,vid2,...] [mtu=size] [name=value...] pf-name
使用此命令可为该物理功能创建一个虚拟功能。您还可以手动指定特定于光纤通道类的属性值。
primary# ldm start-reconf root-domain-name
使用如前所示的相同命令动态创建虚拟功能。
primary# ldm stop-domain -r root-domain
primary# shutdown -i6 -g0 -y
此示例显示了有关 /SYS/MB/NET0/IOVNET.PF0 物理功能的信息:
此物理功能来自板载 NET0 网络设备。
IOVNET 字符串表示物理功能是一个网络 SR-IOV 设备。
primary# ldm list-io NAME TYPE BUS DOMAIN STATUS ---- ---- --- ------ ------ niu_0 NIU niu_0 primary niu_1 NIU niu_1 primary pci_0 BUS pci_0 primary pci_1 BUS pci_1 primary /SYS/MB/PCIE0 PCIE pci_0 primary OCC /SYS/MB/PCIE2 PCIE pci_0 primary OCC /SYS/MB/PCIE4 PCIE pci_0 primary OCC /SYS/MB/PCIE6 PCIE pci_0 primary EMP /SYS/MB/PCIE8 PCIE pci_0 primary EMP /SYS/MB/SASHBA PCIE pci_0 primary OCC /SYS/MB/NET0 PCIE pci_0 primary OCC /SYS/MB/PCIE1 PCIE pci_1 primary OCC /SYS/MB/PCIE3 PCIE pci_1 primary OCC /SYS/MB/PCIE5 PCIE pci_1 primary OCC /SYS/MB/PCIE7 PCIE pci_1 primary EMP /SYS/MB/PCIE9 PCIE pci_1 primary EMP /SYS/MB/NET2 PCIE pci_1 primary OCC /SYS/MB/NET0/IOVNET.PF0 PF pci_0 primary /SYS/MB/NET0/IOVNET.PF1 PF pci_0 primary /SYS/MB/PCIE5/IOVNET.PF0 PF pci_1 primary /SYS/MB/PCIE5/IOVNET.PF1 PF pci_1 primary /SYS/MB/NET2/IOVNET.PF0 PF pci_1 primary /SYS/MB/NET2/IOVNET.PF1 PF pci_1 primary
以下命令显示有关指定物理功能的更多详细信息。maxvfs 值表示设备支持的虚拟功能最大数量。
primary# ldm list-io -l /SYS/MB/NET0/IOVNET.PF0 NAME TYPE BUS DOMAIN STATUS ---- ---- --- ------ ------ /SYS/MB/NET0/IOVNET.PF0 PF pci_0 primary [pci@400/pci@1/pci@0/pci@4/network@0] maxvfs = 7示例 6-3 动态创建以太网虚拟功能而不设置可选属性
此示例会动态创建一个虚拟功能,而不设置任何可选属性。在这种情况下,自动为网络级虚拟功能分配 MAC 地址。
确保已对 pci_0 PCIe 总线启用 I/O 虚拟化。请参见如何对 PCIe 总线启用 I/O 虚拟化。
现在,您可以使用 ldm create-vf 命令从 /SYS/MB/NET0/IOVNET.PF0 物理功能创建虚拟功能。
primary# ldm create-vf /SYS/MB/NET0/IOVNET.PF0 Created new vf: /SYS/MB/NET0/IOVNET.PF0.VF0示例 6-4 动态创建以太网虚拟功能并设置属性
此示例会动态创建虚拟功能,并将 mac-addr 属性设置为 00:14:2f:f9:14:c0,以及将 vid 属性设置为 VLAN ID 2 和 3。
primary# ldm create-vf mac-addr=00:14:2f:f9:14:c0 vid=2,3 /SYS/MB/NET0/IOVNET.PF0示例 6-5 动态创建具有两个备用 MAC 地址的以太网虚拟功能
此示例会动态创建一个具有两个备用 MAC 地址的虚拟功能。一个 MAC 地址是自动分配的,另一个则显式指定为 00:14:2f:f9:14:c2。
primary# ldm create-vf alt-mac-addrs=auto,00:14:2f:f9:14:c2 /SYS/MB/NET0/IOVNET.PF0示例 6-6 静态创建虚拟功能而不设置可选属性
此示例会静态创建一个虚拟功能,而不设置任何可选属性。在这种情况下,自动为网络级虚拟功能分配 MAC 地址。
首先,在 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
现在,您可以使用 ldm create-vf 命令从 /SYS/MB/NET0/IOVNET.PF0 物理功能创建虚拟功能。
primary# ldm create-vf /SYS/MB/NET0/IOVNET.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/NET0/IOVNET.PF0.VF0
最后,重新引导 primary 根域以使更改生效。
primary# shutdown -i6 -g0 -y示例 6-7 创建多个 SR-IOV 以太网虚拟功能
以下命令展示了如何基于 /SYS/MB/NET2/IOVNET.PF1 物理功能创建四个虚拟功能:
primary# ldm create-vf -n 31 /SYS/MB/NET2/IOVNET.PF1 Created new vf: /SYS/MB/NET2/IOVNET.PF1.VF0 Created new vf: /SYS/MB/NET2/IOVNET.PF1.VF1 Created new vf: /SYS/MB/NET2/IOVNET.PF1.VF2 ... Created new vf: /SYS/MB/NET2/IOVNET.PF1.VF30
请注意,ldm create-vf -n 命令创建了多个设置有默认属性值(如果适用)的虚拟功能。之后,您可以使用 ldm set-io 命令指定非默认属性值。
如果当前未将虚拟功能分配给域,则可以销毁该虚拟功能。虚拟功能只能按照与创建时相反的顺序进行销毁,因此,只能销毁已创建的最后一个虚拟功能。生成的配置由物理功能驱动程序验证。
如果无法使用此动态方法,请改用静态方法。请参见静态 SR-IOV。
primary# ldm list-io
primary# ldm destroy-vf -n number | max pf-name
使用 ldm destroy-vf -n max 命令可一次销毁该物理功能的所有虚拟功能。
如果您指定 number 作为 –n 选项的参数,则会销毁最后 number 个虚拟功能。请使用此方法,因为执行此操作时只进行一次物理功能设备驱动程序状态转换。
您可以使用路径名称或 pseudonym 名称指定虚拟功能。但是,建议做法是使用 pseudonym 名称。
primary# ldm destroy-vf vf-name
primary# ldm start-reconf root-domain-name
primary# ldm destroy-vf -n number | max pf-name
您可以使用路径名称或 pseudonym 名称指定虚拟功能。但是,建议做法是使用 pseudonym 名称。
primary# ldm destroy-vf vf-name
primary# ldm stop-domain -r root-domain
primary# shutdown -i6 -g0 -y
此示例展示了如何动态销毁 /SYS/MB/NET0/IOVNET.PF0.VF0 虚拟功能。
primary# ldm destroy-vf /SYS/MB/NET0/IOVNET.PF0.VF0
以下示例说明如何静态销毁 /SYS/MB/NET0/IOVNET.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/NET0/IOVNET.PF0.VF0 primary# shutdown -i6 -g0 -y示例 6-9 销毁多个以太网 SR-IOV 虚拟功能
此示例展示了销毁基于 /SYS/MB/NET2/IOVNET.PF1 物理功能的所有虚拟功能的结果。ldm list-io 输出显示物理功能具有七个虚拟功能。ldm destroy-vf 命令销毁所有虚拟功能,并且 ldm list-io 最终输出显示未保留任何虚拟功能。
primary# ldm list-io ... /SYS/MB/NET2/IOVNET.PF1 PF pci_1 /SYS/MB/NET2/IOVNET.PF1.VF0 VF pci_1 /SYS/MB/NET2/IOVNET.PF1.VF1 VF pci_1 /SYS/MB/NET2/IOVNET.PF1.VF2 VF pci_1 /SYS/MB/NET2/IOVNET.PF1.VF3 VF pci_1 /SYS/MB/NET2/IOVNET.PF1.VF4 VF pci_1 /SYS/MB/NET2/IOVNET.PF1.VF5 VF pci_1 /SYS/MB/NET2/IOVNET.PF1.VF6 VF pci_1 primary# ldm destroy-vf -n max /SYS/MB/NET2/IOVNET.PF1 primary# ldm list-io ... /SYS/MB/NET2/IOVNET.PF1 PF pci_1 ldg1
ldm set-io vf-name 命令通过更改属性值或设置新的属性来修改虚拟功能的当前配置。此命令既可以修改特定于网络的属性,也可以修改特定于设备的属性。有关特定于设备的属性的信息,请参见高级 SR-IOV 主题:以太网 SR-IOV。
如果无法使用此动态方法,请改用静态方法。请参见静态 SR-IOV。
您可以使用 ldm set-io 命令修改以下属性:
mac-addr、alt-mac-addrs 和 mtu
要更改这些虚拟功能属性,请停止虚拟功能所属的域,并使用 ldm set-io 命令更改属性值,然后启动该域。
pvid 和 vid
您可以在将虚拟功能分配给域的同时,动态更改这些属性。请注意,执行此操作可能会使活动虚拟功能的网络通信发生更改;设置 pvid 属性可启用透明 VLAN。设置 vid 属性以指定 VLAN ID 将允许与那些指定 VLAN 的 VLAN 通信流量。
特定于设备的属性
使用 ldm list-io -d pf-name 命令可查看特定于设备的有效属性列表。您可以为物理功能和虚拟功能修改这些属性。必须使用静态方法修改特定于设备的属性。请参见静态 SR-IOV。有关特定于设备的属性的更多信息,请参见高级 SR-IOV 主题:以太网 SR-IOV。
primary# ldm list-io
请注意,物理功能的名称包括 PCIe SR-IOV 卡或板载设备的位置信息。
primary# ldm set-io name=value [name=value...] vf-name
这些示例说明了如何使用 ldm set-io 命令设置虚拟功能的属性。
以下示例会修改指定的虚拟功能 /SYS/MB/NET0/IOVNET.PF0.VF0,使其成为 VLAN ID 2、3 和 4 的一部分。
primary# ldm set-io vid=2,3,4 /SYS/MB/NET0/IOVNET.PF0.VF0
请注意,此命令动态更改虚拟功能的 VLAN 关联。要使用这些 VLAN,I/O 域中的 VLAN 接口必须使用相应的 Oracle Solaris OS 网络命令进行配置。
以下示例为 /SYS/MB/NET0/IOVNET.PF0.VF0 虚拟功能将 pvid 属性设置为 2,这使得该虚拟功能透明地成为 VLAN 2 的一部分。换句话说,该虚拟功能不会查看任何标记的 VLAN 通信流量。
primary# ldm set-io pvid=2 /SYS/MB/NET0/IOVNET.PF0.VF0
以下示例将自动分配的三个备用 MAC 地址分配给虚拟功能。备用地址允许在虚拟功能之上创建 Oracle Solaris 11 虚拟网络接口卡 (virtual network interface card, VNIC)。请注意,要使用 VNIC,必须在域中运行 Oracle Solaris 11 OS。
primary# ldm set-io alt-mac-addrs=auto,auto,auto /SYS/MB/NET0/IOVNET.PF0.VF0
以下示例为指定的虚拟功能将特定于设备的 unicast-slots 属性设置为 12。要查找对于物理功能有效的特定于设备的属性,请使用 ldm list-io -d pf-name 命令。
primary# ldm set-io unicast-slots=12 /SYS/MB/NET0/IOVNET.PF0.VF0 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.
如果无法以动态方法删除虚拟功能,请使用静态方法。请参见静态 SR-IOV。
primary# ldm list-io
primary# ldm add-io vf-name domain-name
vf-name 是虚拟功能的 pseudonym 名称或路径名称。建议做法是使用 pseudonym 名称。domain-name 用于指定要将虚拟功能添加到的域的名称。
域中虚拟功能的设备路径名称是 list-io -l 输出中显示的路径。
primary# ldm start-reconf root-domain-name primary# ldm add-io vf-name domain-name
vf-name 是虚拟功能的 pseudonym 名称或路径名称。建议做法是使用 pseudonym 名称。domain-name 用于指定要将虚拟功能添加到的域的名称。指定的来宾必须处于非活动状态或绑定状态。
域中虚拟功能的设备路径名称是 list-io -l 输出中显示的路径。
primary# ldm stop-domain -r root-domain
primary# shutdown -i6 -g0 -y
此示例展示了如何以动态方法将 /SYS/MB/NET0/IOVNET.PF0.VF0 虚拟功能添加到 ldg1 域。
primary# ldm add-io /SYS/MB/NET0/IOVNET.PF0.VF0 ldg1
如果无法动态添加虚拟功能,请使用静态方法:
primary# ldm stop-domain ldg1 primary# ldm add-io /SYS/MB/NET0/IOVNET.PF0.VF0 ldg1 primary# ldm start-domain ldg1
如果无法以动态方法删除虚拟功能,请使用静态方法。请参见静态 SR-IOV。
注意 - 从域中删除虚拟功能之前,请确保它对于引导该域不至关重要。 |
primary# ldm list-io
primary# ldm rm-io vf-name domain-name
vf-name 是虚拟功能的 pseudonym 名称或路径名称。建议做法是使用设备 pseudonym。domain-name 用于指定要从中删除虚拟功能的域的名称。
primary# ldm stop-domain domain-name
primary# ldm rm-io vf-name domain-name
vf-name 是虚拟功能的 pseudonym 名称或路径名称。建议做法是使用设备 pseudonym。domain-name 用于指定要从中删除虚拟功能的域的名称。指定的来宾必须处于非活动状态或绑定状态。
primary# ldm start-domain domain-name
此示例展示了如何以动态方法从 ldg1 域中删除 /SYS/MB/NET0/IOVNET.PF0.VF0 虚拟功能。
primary# ldm remove-io /SYS/MB/NET0/IOVNET.PF0.VF0 ldg1
如果命令成功,则从 ldg1 域删除该虚拟功能。重新启动 ldg1 后,指定的虚拟功能不再显示在该域中。
如果无法动态删除虚拟功能,请使用静态方法:
primary# ldm stop-domain ldg1 primary# ldm remove-io /SYS/MB/NET0/IOVNET.PF0.VF0 ldg1 primary# ldm start-domain ldg1
本节介绍与使用 SR-IOV 虚拟功能相关的一些高级主题。
使用 SR-IOV 虚拟功能时,请注意以下问题:
SR-IOV 虚拟功能只能使用 Logical Domains Manager 分配的 MAC 地址。如果您使用其他 Oracle Solaris OS 网络命令更改 I/O 域上的 MAC 地址,则命令可能会失败或无法正常运行。
此时,不支持 I/O 域中的 SR-IOV 网络虚拟功能的链路聚合。如果您尝试创建链路聚合,它可能无法按预期方式发挥作用。
您可以创建虚拟 I/O 服务并将它们分配给 I/O 域。可以在从中创建虚拟功能的同一物理功能上创建这些虚拟 I/O 服务。例如,您可以使用板载的 1-Gbps 网络设备(net0 或 igb0)作为虚拟交换机的网络后端设备,并从同一物理功能设备创建虚拟功能。
SR-IOV 虚拟功能可提供与任何其他类型的 PCIe 设备类似的功能,例如,可将虚拟功能用作逻辑域引导设备。例如,网络虚拟功能可以用于通过网络引导以在 I/O 域中安装 Oracle Solaris OS。
SR-IOV 物理功能设备驱动程序可以导出特定于设备的属性。这些属性可用于调节物理功能及其虚拟功能的资源分配。有关这些属性的信息,请参见物理功能驱动程序的手册页,例如 igb(7D) 和 ixgbe(7D) 手册页。
ldm list-io -d 命令显示指定物理功能设备驱动程序导出的特定于设备的属性。每个属性的信息包括其名称、简要说明、默认值、最大值和一个或多个以下标志:
适用于物理功能
适用于虚拟功能
只读或只用于提供信息的参数
primary# ldm list-io -d pf-name
使用 ldm create-vf 或 ldm set-io 命令可为物理功能或虚拟功能设置读写属性。请注意,要设置特定于设备的属性,必须使用静态方法。请参见静态 SR-IOV。
以下示例显示板载 Intel 1-Gbps SR-IOV 设备导出的特定于设备的属性:
primary# ldm list-io -d /SYS/MB/NET0/IOVNET.PF0 Device-specific Parameters -------------------------- max-config-vfs Flags = PR Default = 7 Descr = Max number of configurable VFs max-vf-mtu Flags = VR Default = 9216 Descr = Max MTU supported for a VF max-vlans Flags = VR Default = 32 Descr = Max number of VLAN filters supported pvid-exclusive Flags = VR Default = 1 Descr = Exclusive configuration of pvid required unicast-slots Flags = PV Default = 0 Min = 0 Max = 24 Descr = Number of unicast mac-address slots
以下示例将 unicast-slots 属性设置为 8:
primary# ldm create-vf unicast-slots=8 /SYS/MB/NET0/IOVNET.PF0
支持在 SR-IOV 虚拟功能上创建 Oracle Solaris 11 VNIC。但是,支持的 VNIC 数量限制为分配给虚拟功能的备用 MAC 地址(alt-mac-addrs 属性)的数量。确保对虚拟功能使用 VNIC 时分配足够数量的备用 MAC 地址。可使用 ldm create-vf 或 ldm set-io 命令通过备用 MAC 地址设置 alt-mac-addrs 属性。
以下示例说明如何在 SR-IOV 虚拟功能上创建四个 VNIC。第一个命令将备用 MAC 地址分配给虚拟功能设备。此命令使用自动分配方法将四个备用 MAC 地址分配给 /SYS/MB/NET0/IOVNET.PF0.VF0 虚拟功能设备:
primary# ldm set-io alt-mac-addrs=auto,auto,auto,auto /SYS/MB/NET0/IOVNET.PF0.VF0
下一个命令将启动 ldg1 I/O 域。在此示例中,由于 auto-boot? 属性设置为 true,因此,Oracle Solaris 11 OS 也会在该 I/O 域中引导。
primary# ldm start ldg1
以下命令可在来宾域中使用 Oracle Solaris 11 dladm 命令显示具有备用 MAC 地址的虚拟功能。此输出显示 net30 虚拟功能具有四个备用 MAC 地址。
guest# dladm show-phys -m LINK SLOT ADDRESS INUSE CLIENT net0 primary 0:14:4f:fa:b4:d1 yes net0 net25 primary 0:14:4f:fa:c9:eb no -- net30 primary 0:14:4f:fb:de:4c no -- 1 0:14:4f:f9:e8:73 no -- 2 0:14:4f:f8:21:58 no -- 3 0:14:4f:fa:9d:92 no -- 4 0:14:4f:f9:8f:1d no --
以下命令会创建四个 VNIC。请注意,尝试创建多于通过备用 MAC 地址所指定的 VNIC 将会失败。
guest# dladm create-vnic -l net30 vnic0 guest# dladm create-vnic -l net30 vnic1 guest# dladm create-vnic -l net30 vnic2 guest# dladm create-vnic -l net30 vnic3 guest# dladm show-link LINK CLASS MTU STATE OVER net0 phys 1500 up -- net25 phys 1500 up -- net30 phys 1500 up -- vnic0 vnic 1500 up net30 vnic1 vnic 1500 up net30 vnic2 vnic 1500 up net30 vnic3 vnic 1500 up net30
以下过程介绍了如何创建包括 PCIe SR-IOV 虚拟功能的 I/O 域。
提前进行计划,以便最大程度地减少根域的重新引导次数,从而最大限度地缩短停机时间。
开始之前
开始之前,请确保已为用于创建虚拟功能的物理功能的父项 PCIe 总线启用了 I/O 虚拟化。请参见如何对 PCIe 总线启用 I/O 虚拟化。
primary# ldm list-io
primary# ldm create-vf pf-name
您可以为要创建的每个虚拟功能运行此命令。您还可以使用 –n 选项通过单个命令创建基于同一物理功能的多个虚拟功能。请参见Example 6–7 和 ldm(1M) 手册页。
primary# ldm list-io
primary# ldm add-io vf-name domain-name
以下 Oracle Solaris 11 命令显示虚拟功能的可用性:
guest# dladm show-phys
以下动态示例说明如何为物理功能 /SYS/MB/NET0/IOVNET.PF0 创建虚拟功能 /SYS/MB/NET0/IOVNET.PF0.VF0,并将该虚拟功能分配给 ldg1 I/O 域。
本示例假定满足以下情况:
primary 域上的 OS 支持动态 SR-IOV 操作
pci_0 总线已分配到 primary 域,并且已针对 I/O 虚拟化操作进行了初始化
/SYS/MB/NET0/IOVNET.PF0 物理功能属于 pci_0 总线
/SYS/MB/NET0/IOVNET.PF0 物理功能未将任何现有虚拟功能分配到域
ldg1 域处于活动状态并已引导,并且其 OS 支持动态 SR-IOV 操作
从 /SYS/MB/NET0/IOVNET.PF0 物理功能创建虚拟功能。
primary# ldm create-vf /SYS/MB/NET0/IOVNET.PF0 Created new vf: /SYS/MB/NET0/IOVNET.PF0.VF0
将 /SYS/MB/NET0/IOVNET.PF0.VF0 虚拟功能添加到 ldg1 域。
primary# ldm add-io /SYS/MB/NET0/IOVNET.PF0.VF0 ldg1
以下命令显示已将虚拟功能添加到 ldg1 域。
primary# ldm list-io NAME TYPE BUS DOMAIN STATUS ---- ---- --- ------ ------ niu_0 NIU niu_0 primary niu_1 NIU niu_1 primary pci_0 BUS pci_0 primary IOV pci_1 BUS pci_1 primary /SYS/MB/PCIE0 PCIE pci_0 primary OCC /SYS/MB/PCIE2 PCIE pci_0 primary OCC /SYS/MB/PCIE4 PCIE pci_0 primary OCC /SYS/MB/PCIE6 PCIE pci_0 primary EMP /SYS/MB/PCIE8 PCIE pci_0 primary EMP /SYS/MB/SASHBA PCIE pci_0 primary OCC /SYS/MB/NET0 PCIE pci_0 primary OCC /SYS/MB/PCIE1 PCIE pci_1 primary OCC /SYS/MB/PCIE3 PCIE pci_1 primary OCC /SYS/MB/PCIE5 PCIE pci_1 primary OCC /SYS/MB/PCIE7 PCIE pci_1 primary EMP /SYS/MB/PCIE9 PCIE pci_1 primary EMP /SYS/MB/NET2 PCIE pci_1 primary OCC /SYS/MB/NET0/IOVNET.PF0 PF pci_0 primary /SYS/MB/NET0/IOVNET.PF1 PF pci_0 primary /SYS/MB/PCIE5/IOVNET.PF0 PF pci_1 primary /SYS/MB/PCIE5/IOVNET.PF1 PF pci_1 primary /SYS/MB/NET2/IOVNET.PF0 PF pci_1 primary /SYS/MB/NET2/IOVNET.PF1 PF pci_1 primary /SYS/MB/NET0/IOVNET.PF0.VF0 VF pci_0 ldg1示例 6-14 通过分配 SR-IOV 虚拟功能来静态创建 I/O 域
以下静态示例说明如何为物理功能 /SYS/MB/NET0/IOVNET.PF0 创建虚拟功能 /SYS/MB/NET0/IOVNET.PF0.VF0,并将该虚拟功能分配给 ldg1 I/O 域。
本示例假定满足以下情况:
primary 域上的 OS 不支持动态 SR-IOV 操作
pci_0 总线已分配到 primary 域,但尚未针对 I/O 虚拟化操作进行初始化
/SYS/MB/NET0/IOVNET.PF0 物理功能属于 pci_0 总线
/SYS/MB/NET0/IOVNET.PF0 物理功能未将任何现有虚拟功能分配到域
ldg1 域处于活动状态并已引导,但其 OS 不支持动态 SR-IOV 操作
ldg1 域已将 auto-boot? 属性设置为 true,因此,该域可以在启动后自动引导
首先,在 primary 域上启动延迟重新配置,启用 I/O 虚拟化,然后从 /SYS/MB/NET0/IOVNET.PF0 物理功能创建虚拟功能。
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 primary# ldm create-vf /SYS/MB/NET0/IOVNET.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/NET0/IOVNET.PF0.VF0
然后,关闭 primary 域。
primary# shutdown -i6 -g0 -y
停止 ldg1 域,添加虚拟功能,然后启动该域。
primary# ldm stop ldg1 primary# ldm add-io /SYS/MB/NET0/IOVNET.PF0.VF0 ldg1 primary# ldm start ldg1
以下命令显示已将虚拟功能添加到 ldg1 域。
primary# ldm list-io NAME TYPE BUS DOMAIN STATUS ---- ---- --- ------ ------ niu_0 NIU niu_0 primary niu_1 NIU niu_1 primary pci_0 BUS pci_0 primary IOV pci_1 BUS pci_1 primary /SYS/MB/PCIE0 PCIE pci_0 primary OCC /SYS/MB/PCIE2 PCIE pci_0 primary OCC /SYS/MB/PCIE4 PCIE pci_0 primary OCC /SYS/MB/PCIE6 PCIE pci_0 primary EMP /SYS/MB/PCIE8 PCIE pci_0 primary EMP /SYS/MB/SASHBA PCIE pci_0 primary OCC /SYS/MB/NET0 PCIE pci_0 primary OCC /SYS/MB/PCIE1 PCIE pci_1 primary OCC /SYS/MB/PCIE3 PCIE pci_1 primary OCC /SYS/MB/PCIE5 PCIE pci_1 primary OCC /SYS/MB/PCIE7 PCIE pci_1 primary EMP /SYS/MB/PCIE9 PCIE pci_1 primary EMP /SYS/MB/NET2 PCIE pci_1 primary OCC /SYS/MB/NET0/IOVNET.PF0 PF pci_0 primary /SYS/MB/NET0/IOVNET.PF1 PF pci_0 primary /SYS/MB/PCIE5/IOVNET.PF0 PF pci_1 primary /SYS/MB/PCIE5/IOVNET.PF1 PF pci_1 primary /SYS/MB/NET2/IOVNET.PF0 PF pci_1 primary /SYS/MB/NET2/IOVNET.PF1 PF pci_1 primary /SYS/MB/NET0/IOVNET.PF0.VF0 VF pci_0 ldg1