JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle VM Server for SPARC 3.0 管理指南     Oracle VM Server for SPARC (简体中文)
search filter icon
search icon

文档信息

前言

第 1 部分Oracle VM Server for SPARC 3.0 软件

1.  Oracle VM Server for SPARC 软件概述

2.  安装和启用软件

3.  Oracle VM Server for SPARC 安全

4.  设置服务和控制域

5.  设置来宾域

6.  设置 I/O 域

I/O 域概述

创建 I/O 域的一般准则

分配 PCIe 总线

如何通过分配 PCIe 总线创建 I/O 域

分配 PCIe 端点设备

直接 I/O 硬件和软件要求

当前直接 I/O 功能限制

规划 PCIe 端点设备配置

重新引导根域

更改 PCIe 硬件

如何通过分配 PCIe 端点设备创建 I/O 域

使用 PCIe SR-IOV 虚拟功能

SR-IOV 概述

SR-IOV 硬件和软件要求

当前的 SR-IOV 功能限制

PCIe SR-IOV 虚拟功能的使用计划

创建、修改和销毁虚拟功能

如何创建虚拟功能

如何修改虚拟功能

如何销毁虚拟功能

在 I/O 域中添加和删除虚拟功能

如何将虚拟功能添加到 I/O 域

如何从 I/O 域删除虚拟功能

SR-IOV:重新引导根域

使用 SR-IOV 虚拟功能创建 I/O 域

如何通过向其分配 SR-IOV 虚拟功能来创建 I/O 域

高级 SR-IOV 主题

SR-IOV 特定于设备的属性

虚拟功能的高级网络配置

7.  使用虚拟磁盘

8.  使用虚拟网络

9.  迁移域

10.  管理资源

11.  管理域配置

12.  执行其他管理任务

第 2 部分可选的 Oracle VM Server for SPARC 软件

13.  Oracle VM Server for SPARC 物理机到虚拟机转换工具

14.  Oracle VM Server for SPARC Configuration Assistant (Oracle Solaris 10)

15.  使用电源管理

16.  使用 Oracle VM Server for SPARC 管理信息库软件

17.  Logical Domains Manager 发现

18.  将 XML 接口与 Logical Domains Manager 结合使用

词汇表

索引

分配 PCIe 端点设备

从 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 端点设备 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 域

image:该图显示了如何将 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 功能的重要详细信息:

直接 I/O 硬件和软件要求

要成功使用 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-ioldm add-io 命令将 iov 属性设置为 on。还可以使用 ldm add-domainldm set-domain 命令将 rc-add-policy 属性设置为 iov。请参见 ldm(1M) 手册页。

重新引导根域会影响直接 I/O,因此,请仔细规划直接 I/O 配置更改,以最大限度地增加对 primary 域的直接 I/O 相关更改,最大限度地减少 primary 域重新引导。

当前直接 I/O 功能限制

有关如何解决以下限制的信息,请参见规划 PCIe 端点设备配置

规划 PCIe 端点设备配置

分配或删除 PCIe 端点设备时提前仔细规划以避免产生 primary 域宕机。重新引导 primary 域不仅影响 primary 域本身可用的服务,还会影响已分配有 PCIe 端点设备的 I/O 域。即使对每个 I/O 域的更改不会影响其他域,提前规划有助于最大限度地减小对由该域所提供的服务的影响。

在延迟重新配置期间,可以继续添加或删除更多设备,然后只重新引导一次 primary 域,便可使所有更改生效。

有关示例,请参见如何通过分配 PCIe 端点设备创建 I/O 域

下面介绍了要规划和执行 DIO 设备配置必须执行的步骤:

  1. 了解和记录系统硬件配置。

    具体地说,记录系统中有关 PCIe 卡的部件号及其他详细信息的信息。

    使用 ldm list-io -lprtdiag -v 命令获取信息并保存起来供将来参考。

  2. 确定 primary 域中所需的 PCIe 端点设备。

    例如,确定提供对以下内容的访问权限的 PCIe 端点设备:

    • 引导磁盘设备

    • 网络设备

    • primary 域提供作为服务的其他设备

  3. 删除可能会在 I/O 域中使用的所有 PCIe 端点设备。

    重新引导会对 I/O 域产生影响,此步骤将有助于您避免在 primary 域上执行后续重新引导操作。

    使用 ldm rm-io 命令删除 PCIe 端点设备。使用 pseudonyms 而非设备路径将设备指定到 rm-ioadd-io 子命令。


    注 - 在延迟重新配置期间删除所需的所有设备后,仅需要重新引导 primary 域一次,便可使所有更改生效。


  4. 将此配置保存到服务处理器 (service processor, SP)。

    使用 ldm add-config 命令。

  5. 重新引导根域以释放在步骤 3 中删除的 PCIe 端点设备。

  6. 确认不再将删除的 PCIe 端点设备分配到 primary 域。

    使用 ldm list-io -l 命令检验删除的设备在输出中是否显示为 SUNW,assigned-device

  7. 将可用的 PCIe 端点设备分配到来宾域,以提供对物理设备的直接访问权。

    分配完成后,将无法再通过域迁移功能将来宾域迁移到其他物理系统。

  8. 将 PCIe 端点设备添加到来宾域或者将其从来宾域删除。

    使用 ldm add-io 命令。

    通过减少重新引导操作并避免由 I/O 域提供的服务宕机来最大限度地减少对该域的更改。

  9. (可选)更改 PCIe 硬件。

    请参见更改 PCIe 硬件

重新引导根域

PCIe 总线归 primary 域所有,该域负责初始化和管理总线。primary 域必须处于活动状态,并运行支持 DIO 功能的 Oracle Solaris OS 版本。关闭、停止或重新引导 primary 域会中断对 PCIe 总线的访问。PCIe 总线不可用时,该总线上的 PCIe 设备会受到影响,可能会变为不可用。

在运行 I/O 域的同时如果重新引导 primary 域,则具有 PCIe 端点设备的那些 I/O 域的行为是不可预测的。例如,具有 PCIe 端点设备的 I/O 域可能会在重新引导过程中或在重新引导后出现紧急情况。primary 域重新引导时,您可能需要手动停止或启动每个域。

要解决这些问题,请执行以下步骤之一:

更改 PCIe 硬件

以下步骤有助于避免错误地配置 PCIe 端点分配。有关安装和删除特定硬件的平台特定信息,请参见平台的文档。

如何通过分配 PCIe 端点设备创建 I/O 域

提前规划所有 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:

使用 netadm list 命令确保已启用 DefaultFixed NCP。请参见《Oracle Solaris Administration: Network Interfaces and Network Virtualization》中的第 7  章 "Using Datalink and Interface Configuration Commands on Profiles"


  1. 标识和归档系统上当前安装的设备。

    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
  2. 确定必须保留的引导磁盘的设备路径。

    请参见如何通过分配 PCIe 总线创建 I/O 域中的步骤 2。

  3. 确定块设备连接到的物理设备。

    请参见如何通过分配 PCIe 总线创建 I/O 域中的步骤 3。

  4. 确定由系统使用的网络接口。

    请参见如何通过分配 PCIe 总线创建 I/O 域中的步骤 4。

  5. 确定网络接口连接到的物理设备。

    以下命令使用 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 域以使用其他网络接口。

  6. 删除可能会在 I/O 域中使用的 PCIe 端点设备。

    在此示例中,您可以删除 PCIE2PCIE3PCIE4PCIE5 端点设备,因为它们没有被 primary 域使用。

    1. 删除 PCIe 端点设备。

      注意

      注意 - 删除 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.
      ------------------------------------------------------------------------------
    2. 将新配置保存到服务处理器 (service processor, SP)。

      以下命令会将配置保存到名为 dio 的文件中:

      # ldm add-config dio
    3. 重新引导系统以反映 PCIe 端点设备的删除。
      # reboot -- -r
  7. 登录 primary 域,检验是否不再将 PCIe 端点设备分配到域。
    # 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 域获取实际信息,但是要将设备分配到其中的域包含此信息。


  8. 将 PCIe 端点设备分配到域。
    1. PCIE3 设备添加到 ldg1 域。
      # ldm add-io /SYS/MB/PCIE3 ldg1
    2. 绑定并启动 ldg1 域。
      # ldm bind ldg1
      # ldm start ldg1
      LDom ldg1 started
  9. 登录 ldg1 域并检验设备是否可用。

    验证网络设备是否可用,然后配置网络设备以便在域中使用。

    • Oracle Solaris 10。运行以下命令:
      # 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
    • Oracle Solaris 11。运行以下命令:
      # 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