JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle VM Server for SPARC 2.0 管理指南
search filter icon
search icon

文档信息

前言

1.  Oracle VM Server for SPARC 软件概述

2.  安装和启用软件

3.  安全

4.  设置服务和控制域

5.  设置来宾域

6.  设置 I/O 域

I/O 域概述

分配 PCIe 总线

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

分配 PCIe 端点设备

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

直接 I/O 限制

规划 PCIe 端点设备配置

重新引导 primary

更改 PCIe 硬件

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

7.  使用虚拟磁盘

8.  使用虚拟网络

9.  迁移域

10.  管理资源

11.  管理配置

12.  执行其他管理任务

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

B.  Oracle VM Server for SPARC Configuration Assistant

C.  Logical Domains Manager 发现

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

E.  Logical Domains Manager XML 模式

词汇表

索引

分配 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

图 6-2 将 PCIe 端点设备分配到 I/O 域

该图显示了如何将 PCIe 端点设备分配到 I/O 域。

使用 ldm list-io 命令列出 PCIe 端点设备。

即使 DIO 功能允许将插槽中的任意 PCIe 卡分配到 I/O 域,也仅支持某些 PCIe 卡。请参见《Oracle VM Server for SPARC 2.0 Release Notes》中的"Direct I/O Hardware and Software Requirements"。


注 - 不支持具有交换机或桥的 PCIe 卡。也不支持 PCIe 函数级分配。将不受支持的 PCIe 卡分配到 I/O 域可能会导致不可预测的行为。


以下是一些有关 DIO 功能的重要详细信息:

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

要成功使用 DIO 功能,必须运行相应的软件,并仅将 DIO 功能支持的 PCIe 卡分配到 I/O 域。有关硬件和软件要求,请参见《Oracle VM Server for SPARC 2.0 Release Notes》中的"Direct I/O Hardware and Software Requirements"。


注 - primary 域支持平台上支持的所有 PCIe 卡。有关支持的 PCIe 卡列表,请参见平台的文档。但是,可将支持直接 I/O 的 PCIe 卡分配到 I/O 域。


直接 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 子命令。


    注 - 即使首次删除 PCIe 端点设备可能会启动延迟重新配置,您也可以继续删除设备。删除所需的所有设备后,仅需要重新引导 primary 域一次,使所有更改生效。


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

    使用 ldm add-config 命令。

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

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

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

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

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

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

    使用 ldm add-io 命令。

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

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

    请参见更改 PCIe 硬件

重新引导 primary

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 部署,从而最大限度地缩短停机时间。

有关通过添加 PCIe 端点设备来创建 I/O 域的示例,请参见规划 PCIe 端点设备配置

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

    ldm list-io -l 命令的输出显示了当前配置 I/O 设备的方式。可使用 prtdiag -v 命令获取更多详细信息。


    注 - 将设备分配到 I/O 域之后,只可在 I/O 域中确定设备的标识。


    # ldm list-io -l
    IO              PSEUDONYM       DOMAIN
    --              ---------       ------
    pci@400         pci_0           primary
    pci@500         pci_1           primary
    
    PCIE                 PSEUDONYM  STATUS  DOMAIN
    ----                 ---------  ------  ------
    pci@400/pci@0/pci@c  PCIE1      EMP     -
    pci@400/pci@0/pci@9  PCIE2      OCC     primary
            network@0
            network@0,1
            network@0,2
            network@0,3
    pci@400/pci@0/pci@d  PCIE3      OCC     primary
            SUNW,emlxs/fp/disk
            SUNW,emlxs@0,1/fp/disk
            SUNW,emlxs@0,1/fp@0,0
    pci@400/pci@0/pci@8  MB/SASHBA  OCC     primary
            scsi@0/tape
            scsi@0/disk
            scsi@0/sd@0,0
            scsi@0/sd@1,0
    pci@500/pci@0/pci@9  PCIE0      EMP     -
    pci@500/pci@0/pci@d  PCIE4      OCC     primary
            network@0
            network@0,1
    pci@500/pci@0/pci@c  PCIE5      OCC     primary
            SUNW,qlc@0/fp/disk
            SUNW,qlc@0/fp@0,0
            SUNW,qlc@0,1/fp/disk
            SUNW,qlc@0,1/fp@0,0/ssd@w21000011c605dbab,0
            SUNW,qlc@0,1/fp@0,0/ssd@w21000011c6041434,0
            SUNW,qlc@0,1/fp@0,0/ssd@w21000011c6053652,0
            SUNW,qlc@0,1/fp@0,0/ssd@w21000011c6041b4f,0
            SUNW,qlc@0,1/fp@0,0/ssd@w21000011c605dbb3,0
            SUNW,qlc@0,1/fp@0,0/ssd@w21000011c60413bc,0
            SUNW,qlc@0,1/fp@0,0/ssd@w21000011c604167f,0
            SUNW,qlc@0,1/fp@0,0/ssd@w21000011c6041b3a,0
            SUNW,qlc@0,1/fp@0,0/ssd@w21000011c605dabf,0
            SUNW,qlc@0,1/fp@0,0/ssd@w21000011c60417a4,0
            SUNW,qlc@0,1/fp@0,0/ssd@w21000011c60416a7,0
            SUNW,qlc@0,1/fp@0,0/ssd@w21000011c60417e7,0
            SUNW,qlc@0,1/fp@0,0/ses@w215000c0ff082669,0
    pci@500/pci@0/pci@8  MB/NET0    OCC     primary
            network@0
            network@0,1
            network@0,2
            network@0,3
  2. 确定需要保留的引导磁盘的设备路径。
    • 对于 UFS 文件系统,请运行 df / 命令,以确定引导磁盘的设备路径。
      primary# df /
      /                  (/dev/dsk/c0t1d0s0 ): 1309384 blocks   457028 files
    • 对于 ZFS 文件系统,首先运行 df / 命令以确定池名称,然后运行 zpool status 命令以确定引导磁盘的设备路径。
      primary# df /
      /                  (rpool/ROOT/s10s_u8wos_08a):245176332 blocks 245176332 files
      primary# zpool status rpool
       zpool status rpool
        pool: rpool
       state: ONLINE
       scrub: none requested
      config:
      
              NAME        STATE     READ WRITE CKSUM
              rpool       ONLINE       0     0     0
                c0t1d0s0  ONLINE       0     0     0
  3. 确定块设备连接到的物理设备。

    以下示例使用块设备 c0t1d0s0

    primary# ls -l /dev/dsk/c0t1d0s0
    lrwxrwxrwx    1 root    root    49 Jul 20 22:17 /dev/dsk/c0t1d0s0 ->
    ../../devices/pci@400/pci@0/pci@8/scsi@0/sd@0,0:a

    在此示例中,primary 域的引导磁盘的物理设备已连接到 PCIe 端点设备 (pci@400/pci@0/pci@8),该端点设备对应于步骤 1 中列出的 MB/SASHBA。删除此设备可能会阻止 primary 域引导,因此请不要将此设备从 primary 域删除。

  4. 确定由系统使用的网络接口。
    # ifconfig -a
    lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
            inet 127.0.0.1 netmask ff000000 
    nxge0: flags=1004843<UP,BROADCAST,RUNNING,MULTICAST,DHCP,IPv4> mtu 1500 index 2
            inet 10.6.212.149 netmask fffffe00 broadcast 10.6.213.255
            ether 0:21:28:4:27:cc

    在此示例中,nxge0 接口用作 primary 域的网络接口。

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

    以下命令使用 nxge0 网络接口:

    primary# ls -l /dev/nxge0
    lrwxrwxrwx   1 root     root          46 Jul 30 17:29 /dev/nxge0 ->
    ../devices/pci@500/pci@0/pci@8/network@0:nxge0

    在此示例中,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-op reconf primary 命令取消 primary 域上的延迟重新配置。


      可以一次删除多个设备以避免多次重新引导。

      # ldm rm-io PCIE2 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.
      # ldm rm-io 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.
      ------------------------------------------------------------------------------
      # ldm rm-io PCIE4 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.
      ------------------------------------------------------------------------------
      # ldm rm-io 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
    IO              PSEUDONYM       DOMAIN
    --              ---------       ------
    pci@400         pci_0           primary
    pci@500         pci_1           primary
    
    PCIE                 PSEUDONYM  STATUS  DOMAIN
    ----                 ---------  ------  ------
    pci@400/pci@0/pci@c  PCIE1      EMP     -
    pci@400/pci@0/pci@9  PCIE2      OCC
    pci@400/pci@0/pci@d  PCIE3      OCC
    pci@400/pci@0/pci@8  MB/SASHBA  OCC     primary
    pci@500/pci@0/pci@9  PCIE0      EMP     -
    pci@500/pci@0/pci@d  PCIE4      OCC
    pci@500/pci@0/pci@c  PCIE5      OCC
    pci@500/pci@0/pci@8  MB/NET0    OCC     primary

    注 - 对于删除的 PCIe 端点设备,ldm list-io -l 输出可能会显示 SUNW,assigned-device。不可再从 primary 域获取实际信息,但是要将设备分配到其中的域包含此信息。


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

    使用 dladm show-dev 命令检验网络设备是否可用。然后,配置网络设备以在域中使用。

    # dladm show-dev
    vnet0           link: up        speed: 0     Mbps       duplex: unknown
    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