跳过导航链接 | |
退出打印视图 | |
Oracle VM Server for SPARC 3.0 管理指南 Oracle VM Server for SPARC (简体中文) |
第 1 部分Oracle VM Server for SPARC 3.0 软件
1. Oracle VM Server for SPARC 软件概述
3. Oracle VM Server for SPARC 安全
第 2 部分可选的 Oracle VM Server for SPARC 软件
13. Oracle VM Server for SPARC 物理机到虚拟机转换工具
14. Oracle VM Server for SPARC Configuration Assistant (Oracle Solaris 10)
16. 使用 Oracle VM Server for SPARC 管理信息库软件
17. Logical Domains Manager 发现
从 Oracle VM Server for SPARC 2.0 发行版和 Oracle Solaris 10 9/10 OS 开始,可以将某个 PCIe 端点(或可分配的直接 I/O)设备分配到域。这种 PCIe 端点设备的使用增加了将设备分配到 I/O 域的粒度。这种功能是通过直接 I/O (Direct I/O, DIO) 功能提供的。
通过 DIO 功能,您可以在系统中创建比 PCIe 总线数更多的 I/O 域。可能的 I/O 域数当前仅受 PCIe 端点设备数限制。
PCIe 端点设备可以是下列任意一个:
插槽中的 PCIe 卡
由平台标识的板载 PCIe 设备
下图显示了将 PCIe 端点设备 PCIE3 分配到 I/O 域。I/O 域中的总线 pci_0 和交换机都是虚拟的。不可再在 primary 域中访问PCIE3 端点设备。
在 I/O 域中,pci_0 块和交换机分别为虚拟根联合体和虚拟 PCIe 交换机。该块和交换机与 primary 域中的 pci_0 块和交换机十分类似。在 primary 域中,插槽 PCIE3 中的设备是原始设备的阴影格式,并标识为 SUNW,assigned。
注意 - 您无法在使用 ldm rm-io 命令从 primary 域中删除某个 PCIe 端点设备之后,通过 Oracle Solaris 热插拔操作“热删除”该设备。有关更换或删除 PCIe 端点设备的信息,请参见更改 PCIe 硬件。 |
图 6-2 将 PCIe 端点设备分配到 I/O 域
使用 ldm list-io 命令列出 PCIe 端点设备。
即使 DIO 功能允许将插槽中的任意 PCIe 卡分配到 I/O 域,也仅支持某些 PCIe 卡。请参见《Oracle VM Server for SPARC 3.0 发行说明》中的"直接 I/O 硬件和软件要求"。
注意 - 不支持具有桥的 PCIe 卡。也不支持 PCIe 函数级分配。将不受支持的 PCIe 卡分配到 I/O 域可能会导致不可预测的行为。 |
以下是一些有关 DIO 功能的重要详细信息:
仅当满足所有软件要求时才会启用此功能。请参见《Oracle VM Server for SPARC 3.0 发行说明》中的"直接 I/O 硬件和软件要求"。
使用 DIO 功能,只可将连接到已分配至 primary 域的 PCIe 总线的 PCIe 端点分配到其他域。
仅当运行 primary 域时,使用 DIO 的 I/O 域才可访问 PCIe 端点设备。
重新引导根域会对具有 PCIe 端点设备的 I/O 域产生影响。请参见重新引导根域。根域还执行以下任务:
初始化 PCIe 总线并管理该总线。
处理所有由分配到 I/O 域的 PCIe 端点设备触发的总线错误。请注意,只有 primary 域才会收到所有与 PCIe 总线相关的错误。
要成功使用 DIO 功能,必须运行相应的软件,并仅将 DIO 功能支持的 PCIe 卡分配到 I/O 域。有关硬件和软件要求,请参见《Oracle VM Server for SPARC 3.0 发行说明》中的"直接 I/O 硬件和软件要求"。
注 - primary 域支持平台上支持的所有 PCIe 卡。有关支持的 PCIe 卡列表,请参见平台的文档。但是,仅可将支持直接 I/O 的 PCIe 卡分配到 I/O 域。
要通过使用直接 I/O 功能添加或删除 PCIe 端点设备,必须首先对 PCIe 总线本身启用 I/O 虚拟化。
可以使用 ldm set-io 或 ldm add-io 命令将 iov 属性设置为 on。还可以使用 ldm add-domain 或 ldm set-domain 命令将 rc-add-policy 属性设置为 iov。请参见 ldm(1M) 手册页。
重新引导根域会影响直接 I/O,因此,请仔细规划直接 I/O 配置更改,以最大限度地增加对 primary 域的直接 I/O 相关更改,最大限度地减少 primary 域重新引导。
有关如何解决以下限制的信息,请参见规划 PCIe 端点设备配置。
仅当域停止或处于非活动状态时,才允许将 PCIe 端点设备分配到任何其他域或删除该端点设备。
分配或删除 PCIe 端点设备时提前仔细规划以避免产生 primary 域宕机。重新引导 primary 域不仅影响 primary 域本身可用的服务,还会影响已分配有 PCIe 端点设备的 I/O 域。即使对每个 I/O 域的更改不会影响其他域,提前规划有助于最大限度地减小对由该域所提供的服务的影响。
在延迟重新配置期间,可以继续添加或删除更多设备,然后只重新引导一次 primary 域,便可使所有更改生效。
有关示例,请参见如何通过分配 PCIe 端点设备创建 I/O 域。
了解和记录系统硬件配置。
具体地说,记录系统中有关 PCIe 卡的部件号及其他详细信息的信息。
使用 ldm list-io -l 和 prtdiag -v 命令获取信息并保存起来供将来参考。
确定 primary 域中所需的 PCIe 端点设备。
例如,确定提供对以下内容的访问权限的 PCIe 端点设备:
引导磁盘设备
网络设备
primary 域提供作为服务的其他设备
删除可能会在 I/O 域中使用的所有 PCIe 端点设备。
重新引导会对 I/O 域产生影响,此步骤将有助于您避免在 primary 域上执行后续重新引导操作。
使用 ldm rm-io 命令删除 PCIe 端点设备。使用 pseudonyms 而非设备路径将设备指定到 rm-io 和 add-io 子命令。
注 - 在延迟重新配置期间删除所需的所有设备后,仅需要重新引导 primary 域一次,便可使所有更改生效。
将此配置保存到服务处理器 (service processor, SP)。
使用 ldm add-config 命令。
重新引导根域以释放在步骤 3 中删除的 PCIe 端点设备。
确认不再将删除的 PCIe 端点设备分配到 primary 域。
使用 ldm list-io -l 命令检验删除的设备在输出中是否显示为 SUNW,assigned-device。
将可用的 PCIe 端点设备分配到来宾域,以提供对物理设备的直接访问权。
分配完成后,将无法再通过域迁移功能将来宾域迁移到其他物理系统。
将 PCIe 端点设备添加到来宾域或者将其从来宾域删除。
使用 ldm add-io 命令。
通过减少重新引导操作并避免由 I/O 域提供的服务宕机来最大限度地减少对该域的更改。
(可选)更改 PCIe 硬件。
请参见更改 PCIe 硬件。
PCIe 总线归 primary 域所有,该域负责初始化和管理总线。primary 域必须处于活动状态,并运行支持 DIO 功能的 Oracle Solaris OS 版本。关闭、停止或重新引导 primary 域会中断对 PCIe 总线的访问。PCIe 总线不可用时,该总线上的 PCIe 设备会受到影响,可能会变为不可用。
在运行 I/O 域的同时如果重新引导 primary 域,则具有 PCIe 端点设备的那些 I/O 域的行为是不可预测的。例如,具有 PCIe 端点设备的 I/O 域可能会在重新引导过程中或在重新引导后出现紧急情况。primary 域重新引导时,您可能需要手动停止或启动每个域。
要解决这些问题,请执行以下步骤之一:
在关闭 primary 域之前,请在系统上手动关闭已将 PCIe 端点设备分配到其中的任意域。
此步骤可确保您在关闭、停止或重新引导 primary 域之前完全关闭这些域。
要查找已将 PCIe 端点设备分配到其中的所有域,请运行 ldm list-io 命令。通过此命令,可以列出系统上已分配到域的 PCIe 端点设备。这样,使用此信息可帮助您进行计划。有关此命令输出的详细说明,请参见 ldm(1M) 手册页。
对于找到的每个域,请通过运行 ldm stop 命令停止它。
配置 primary 域和已分配有 PCIe 端点设备的域之间的域依赖关系。
这种依赖关系可确保具有 PCIe 端点设备的域能够在 primary 域因故重新引导时自动重新启动。
请注意,此依赖关系会强行重设那些域,并且那些域不能完全关闭。但是,此依赖关系不会对手动关闭的任何域产生影响。
# ldm set-domain failure-policy=reset primary # ldm set-domain master=primary ldom
以下步骤有助于避免错误地配置 PCIe 端点分配。有关安装和删除特定硬件的平台特定信息,请参见平台的文档。
如果要将 PCIe 卡安装到空插槽内,无需执行任何操作。此 PCIe 卡自动归拥有 PCIe 总线的域所有。
要将新的 PCIe 卡分配到 I/O 域,请使用 ldm rm-io 命令,先将卡从 primary 域删除。然后,使用 ldm add-io 命令将卡分配到 I/O 域。
如果要将 PCIe 卡从系统中删除并将其分配到 primary 域,无须执行任何操作。
要删除已分配到某个 I/O 域的 PCIe 卡,请先将设备从 I/O 域删除。然后,在从系统中物理删除设备之前,将该设备添加到 primary 域。
要替换已分配到某个 I/O 域的 PCIe 卡,请检验 DIO 功能是否支持新卡。
如果支持,则会将新卡自动分配到当前 I/O 域而无需执行任何操作。
如果不支持,请先使用 ldm rm-io 命令将该 PCIe 卡从 I/O 域删除。然后,使用 ldm add-io 命令将 PCIe 卡重新分配到 primary 域。接着,使用其他 PCIe 卡物理替换已分配到 primary 域的 PCIe 卡。通过这些步骤,您可以避免不受 DIO 功能支持的配置。
提前规划所有 DIO 部署,从而最大限度地缩短停机时间。
注意 - 如果您将 SPARC T3-1 或 SPARC T4-1 系统上的 /SYS/MB/SASHBA1 槽分配给 DIO 域,那么 primary 域将失去对于板载 DVD 设备的访问权限。 SPARC T3-1 和 SPARC T4-1 系统包括两个用于板载存储的 DIO 槽,它们由 /SYS/MB/SASHBA0 和 /SYS/MB/SASHBA1 路径表示。除了承载多显示端板载磁盘,/SYS/MB/SASHBA1 槽还承载板载 DVD 设备。所以,如果您将 /SYS/MB/SASHBA1 分配给 DIO 域,那么 primary 域将失去对于板载 DVD 设备的访问权限。 SPARC T3-2 和 SPARC T4-2 系统具有承载所有板载磁盘以及板载 DVD 设备的单一 SASHBA 槽。所以,如果您将 SASHBA 分配给 DIO 域,那么板载磁盘和板载 DVD 设备将借给 DIO 域并且不可用于 primary 域。 |
有关通过添加 PCIe 端点设备来创建 I/O 域的示例,请参见规划 PCIe 端点设备配置。
注 - 在本发行版中,最好使用 DefaultFixed NCP 在 Oracle Solaris 11 系统中配置数据链路和网络接口。
Oracle Solaris 11 OS 包括以下 NCP:
DefaultFixed。允许您使用 dladm 或 ipadm 命令管理网络。
Automatic。允许您使用 netcfg 或 netadm 命令管理网络。
使用 netadm list 命令确保已启用 DefaultFixed NCP。请参见《Oracle Solaris Administration: Network Interfaces and Network Virtualization》中的第 7 章 "Using Datalink and Interface Configuration Commands on Profiles"。
ldm list-io -l 命令的输出显示了当前配置 I/O 设备的方式。可使用 prtdiag -v 命令获取更多详细信息。
注 - 将设备分配到 I/O 域之后,只可在 I/O 域中确定设备的标识。
# ldm list-io -l NAME TYPE BUS DOMAIN STATUS ---- ---- --- ------ ------ niu_0 NIU niu_0 primary [niu@480] niu_1 NIU niu_1 primary [niu@580] pci_0 BUS pci_0 primary [pci@400] pci_1 BUS pci_1 primary [pci@500] /SYS/MB/PCIE0 PCIE pci_0 primary OCC [pci@400/pci@2/pci@0/pci@8] SUNW,emlxs@0/fp/disk SUNW,emlxs@0/fp/tape SUNW,emlxs@0/fp@0,0 SUNW,emlxs@0,1/fp/disk SUNW,emlxs@0,1/fp/tape SUNW,emlxs@0,1/fp@0,0 /SYS/MB/PCIE2 PCIE pci_0 primary OCC [pci@400/pci@2/pci@0/pci@4] pci/scsi/disk pci/scsi/tape pci/scsi/disk pci/scsi/tape /SYS/MB/PCIE4 PCIE pci_0 primary OCC [pci@400/pci@2/pci@0/pci@0] ethernet@0 ethernet@0,1 SUNW,qlc@0,2/fp/disk SUNW,qlc@0,2/fp@0,0 SUNW,qlc@0,3/fp/disk SUNW,qlc@0,3/fp@0,0 /SYS/MB/PCIE6 PCIE pci_0 primary EMP [pci@400/pci@1/pci@0/pci@8] /SYS/MB/PCIE8 PCIE pci_0 primary EMP [pci@400/pci@1/pci@0/pci@c] /SYS/MB/SASHBA PCIE pci_0 primary OCC [pci@400/pci@2/pci@0/pci@e] scsi@0/iport@1 scsi@0/iport@2 scsi@0/iport@4 scsi@0/iport@8 scsi@0/iport@80/cdrom@p7,0 scsi@0/iport@v0 /SYS/MB/NET0 PCIE pci_0 primary OCC [pci@400/pci@1/pci@0/pci@4] network@0 network@0,1 /SYS/MB/PCIE1 PCIE pci_1 primary OCC [pci@500/pci@2/pci@0/pci@a] SUNW,qlc@0/fp/disk SUNW,qlc@0/fp@0,0 SUNW,qlc@0,1/fp/disk SUNW,qlc@0,1/fp@0,0 /SYS/MB/PCIE3 PCIE pci_1 primary OCC [pci@500/pci@2/pci@0/pci@6] network@0 network@0,1 network@0,2 network@0,3 /SYS/MB/PCIE5 PCIE pci_1 primary OCC [pci@500/pci@2/pci@0/pci@0] network@0 network@0,1 /SYS/MB/PCIE7 PCIE pci_1 primary EMP [pci@500/pci@1/pci@0/pci@6] /SYS/MB/PCIE9 PCIE pci_1 primary EMP [pci@500/pci@1/pci@0/pci@0] /SYS/MB/NET2 PCIE pci_1 primary OCC [pci@500/pci@1/pci@0/pci@5] network@0 network@0,1 ethernet@0,80 /SYS/MB/NET0/IOVNET.PF0 PF pci_0 primary [pci@400/pci@1/pci@0/pci@4/network@0] maxvfs = 7 /SYS/MB/NET0/IOVNET.PF1 PF pci_0 primary [pci@400/pci@1/pci@0/pci@4/network@0,1] maxvfs = 7 /SYS/MB/PCIE5/IOVNET.PF0 PF pci_1 primary [pci@500/pci@2/pci@0/pci@0/network@0] maxvfs = 63 /SYS/MB/PCIE5/IOVNET.PF1 PF pci_1 primary [pci@500/pci@2/pci@0/pci@0/network@0,1] maxvfs = 63 /SYS/MB/NET2/IOVNET.PF0 PF pci_1 primary [pci@500/pci@1/pci@0/pci@5/network@0] maxvfs = 7 /SYS/MB/NET2/IOVNET.PF1 PF pci_1 primary [pci@500/pci@1/pci@0/pci@5/network@0,1] maxvfs = 7
请参见如何通过分配 PCIe 总线创建 I/O 域中的步骤 2。
请参见如何通过分配 PCIe 总线创建 I/O 域中的步骤 3。
请参见如何通过分配 PCIe 总线创建 I/O 域中的步骤 4。
以下命令使用 igb0 网络接口:
primary# ls -l /dev/igb0 lrwxrwxrwx 1 root root 46 Jul 30 17:29 /dev/igb0 -> ../devices/pci@500/pci@0/pci@8/network@0:igb0
在此示例中,primary 域使用的网络接口的物理设备已连接到 PCIe 端点设备 (pci@500/pci@0/pci@8),该端点设备对应于步骤 1 中列出的 MB/NET0。因此,您不希望将此设备从 primary 域删除。由于所有其他 PCIe 设备都未被 primary 域使用,因此可以将它们安全地分配到其他域。
如果 primary 域使用的网络接口位于您要分配到其他域的总线上,则需要重新配置 primary 域以使用其他网络接口。
在此示例中,您可以删除 PCIE2、PCIE3、PCIE4 和 PCIE5 端点设备,因为它们没有被 primary 域使用。
注意 - 请勿删除 primary 域使用或需要的设备。 如果不小心删除了错误设备,请使用 ldm cancel-reconf primary 命令取消 primary 域上的延迟重新配置。 |
可以一次删除多个设备以避免多次重新引导。
# ldm start-reconf primary primary# ldm set-io iov=on pci_1 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 remove-io /SYS/MB/PCIE1 primary ------------------------------------------------------------------------------ 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. ------------------------------------------------------------------------------ primary# ldm remove-io /SYS/MB/PCIE3 primary ------------------------------------------------------------------------------ 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. ------------------------------------------------------------------------------ primary# ldm remove-io /SYS/MB/PCIE5 primary ------------------------------------------------------------------------------ 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. ------------------------------------------------------------------------------
以下命令会将配置保存到名为 dio 的文件中:
# ldm add-config dio
# reboot -- -r
# 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 IOV /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 OCC /SYS/MB/PCIE3 PCIE pci_1 OCC /SYS/MB/PCIE5 PCIE pci_1 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/NET2/IOVNET.PF0 PF pci_1 primary /SYS/MB/NET2/IOVNET.PF1 PF pci_1 primary
注 - 对于删除的 PCIe 端点设备,ldm list-io -l 输出可能会显示 SUNW,assigned-device。不可再从 primary 域获取实际信息,但是要将设备分配到其中的域包含此信息。
# ldm add-io /SYS/MB/PCIE3 ldg1
# ldm bind ldg1 # ldm start ldg1 LDom ldg1 started
验证网络设备是否可用,然后配置网络设备以便在域中使用。
# dladm show-dev nxge0 link: unknown speed: 0 Mbps duplex: unknown nxge1 link: unknown speed: 0 Mbps duplex: unknown nxge2 link: unknown speed: 0 Mbps duplex: unknown nxge3 link: unknown speed: 0 Mbps duplex: unknown
# dladm show-phys LINK MEDIA STATE SPEED DUPLEX DEVICE net0 Ethernet unknown 0 unknown nxge0 net1 Ethernet unknown 0 unknown nxge1 net2 Ethernet unknown 0 unknown nxge2 net3 Ethernet unknown 0 unknown nxge3