Go to main content
Oracle® VM Server for SPARC 3.4 发行说明

退出打印视图

更新时间: 2016 年 6 月
 
 

已知问题

本节包含与 Oracle VM Server for SPARC 3.4 软件有关的常见问题和特定错误。

迁移问题

成功迁移域期间报告不准确的 Unable to Send Suspend Request 错误

错误号 23206413:在极少数情况下,成功迁移域时会报告以下错误:

Unable to send suspend request to domain domain-name

如果 Logical Domains Manager 在暂停域期间检测到错误,则会发生此问题,但 Logical Domains Manager 能够恢复并完成迁移。命令的退出状态为 0,表明已成功迁移。

解决方法:由于迁移成功完成,您可以忽略该错误消息。

迁移具有许多虚拟设备的绑定域可能会失败,并且域将具有两个绑定副本

错误号 23180427:当迁移具有大量虚拟设备的绑定域时,操作可能会失败并且会在 SMF 日志中写入以下消息:

warning: Timer expired: Failed to read feasibility response type (9) from target LDoms Manager

此故障表明在等待域绑定到目标计算机期间在源计算机上运行的 Logical Domains Manager 超时。迁移域中的虚拟设备数越多,遇到此问题的几率越大。

出现此故障时,会导致源计算机和目标计算机上同时存在域的绑定副本。请勿同时启动此域的两个副本。此操作可能会损坏数据,因为两个域引用相同的虚拟磁盘后端。

恢复方法:验证已迁移域的副本在目标计算机上正确无误后,手动解除源计算机上域副本的绑定并将其销毁。

目标计算机的可用 LDC 不足时迁移会失败

错误号 23031413:当目标计算机的控制域在域迁移期间耗尽 LDC 时,迁移将失败并且会在 SMF 日志中写入以下消息:

warning: Failed to read feasibility response type (5) from target LDoms Manager

当迁移的域未能绑定到目标计算机时,系统会发出此错误。请注意,在目标计算机上绑定操作可能也会因其他原因而失败。

解决方法:要成功迁移,必须减少迁移域中或者目标计算机的控制域中的 LDC 数。您可以通过减少域使用或维护的虚拟设备数来减少 LDC 数。有关管理 LDC 的更多信息,请参见Oracle VM Server for SPARC 3.4 管理指南 中的 使用逻辑域通道

仅支持通过 TLS v1.2 或更高版本进行域迁移

错误号 23026264:从 Oracle VM Server for SPARC 3.4 开始,Logical Domains Manager 仅支持通过 TLS v1.2 或更高版本进行安全的域迁移。如果迁移所涉及的对等点无法使用 TLS v1.2,则迁移将失败并将显示以下错误消息:

Failed to establish connection with ldmd(1m) on target: target
Check that the 'ldmd' service is enabled on the target machine and
that the version supports Domain Migration. Check that the 'xmpp_enabled'
and 'incoming_migration_enabled' properties of the 'ldmd' service on
the target machine are set to 'true' using svccfg(1M).

仅支持在 Oracle VM Server for SPARC 软件的两个连续的次要版本之间进行域迁移。此问题不影响任何受支持的组合。然而,在 Oracle Solaris 10 OS 上运行的 Oracle VM Server for SPARC 软件默认情况下无法使用 TLS v1.2,因此无法通过 Oracle VM Server for SPARC 3.4 进行域迁移操作。


注 - 这是一般性的错误消息,您在其他情况下可能也会遇到,包括提供错误的口令时。

将来宾域迁移到较早的 Oracle VM Server for SPARC 版本,稍后又迁移到 Oracle VM Server for SPARC 3.4 时,不会保留 boot-policy 属性值

 

错误号 23025921:将来宾域迁移到运行 Logical Domains Manager 较早版本的系统,稍后又迁移到运行 Oracle VM Server for SPARC 3.4 的系统时,不会保留来宾域的 boot-policy 属性。

Oracle VM Server for SPARC 3.4 软件引入了 boot-policy 属性以支持验证的引导功能。较早版本的 Oracle VM Server for SPARC 软件不支持此属性,因此当将来宾域从运行 Oracle VM Server for SPARC 3.4 的系统迁移到运行 3.4 之前的 Oracle VM Server for SPARC 版本的系统时,boot-policy 属性会被删除。

稍后将来宾域迁移到运行 Oracle VM Server for SPARC 3.4 的系统时,会将 boot-policy 的默认值 warning 应用于迁移后的来宾域。

恢复方法:将来宾域迁移到运行 Oracle VM Server for SPARC 3.4 的目标系统后,手动将 boot-policy 属性设置为所需的值。如果默认值 warning 不合适,请执行此步骤。

  1. 设置 boot-policy=none

    primary# ldm set-domain boot-policy=none ldg1
  2. 重新引导来宾以使新引导策略生效。

内核区域阻止来宾域的实时迁移

 

错误号 21289174:在 SPARC 服务器上,Oracle VM Server for SPARC 域中某个正在运行的内核区域将阻止来宾域的实时迁移。将显示以下错误消息:

Guest suspension failed because Kernel Zones are active.
Stop Kernel Zones and retry.

解决方法:请选择下列解决方法之一:

即使目标系统上的有效布局中有足够的内存,域迁移仍可能失败

 

错误号 20453206:即使目标系统上的有效布局中有足够的内存,迁移操作仍可能失败。内存 DR 操作可能会增加来宾域迁移的难度。

解决方法:无。

只分配有一个虚拟 CPU 的 Oracle Solaris 10 来宾域在实时迁移期间可能会出现紧急情况

 

错误号 17285751:迁移只分配有一个虚拟 CPU 的 Oracle Solaris 10 来宾域可能会导致在执行 pg_cmt_cpu_fini() 功能时来宾域中出现紧急情况。

请注意,在 Oracle Solaris 11.1 OS 中已修复此问题。

解决方法:在执行实时迁移之前至少向来宾域分配两个虚拟 CPU。例如,使用 ldm add-vcpu number-of-virtual-CPUs domain-name 命令增大分配给来宾域的虚拟 CPU 的数目。

从 SPARC T5、SPARC M5 或 SPARC M6 服务器向 UltraSPARC T2 或 SPARC T3 服务器执行跨 CPU 迁移时,ldm migrate -n 会失败

 

错误号 16864417:尝试在 SPARC T5、SPARC M5 或 SPARC M6 服务器与 UltraSPARC T2 或 SPARC T3 服务器之间迁移时,即使失败 ldm migrate -n 命令也不会报告。

解决方法:无。

目标控制域上的 ldm list -o status 报告虚假迁移进度

 

错误号 15819714:在极少情况下,ldm list -o status 命令在用于观察控制域上的迁移状态时报告错误的完成百分比。

此问题不影响正在迁移的域,也不影响源或目标控制域上的 ldmd 守护进程。

解决方法:在参与迁移以观察进度的其他控制域上运行 ldm list -o status 命令。

在迁移到 SPARC T4 服务器过程中运行 cputrack 命令时,来宾域会出现紧急情况

 

错误号 15776123:将来宾域迁移到 SPARC T4 服务器时,如果对该域运行 cputrack 命令,则迁移后目标计算机上的来宾域可能会出现紧急情况。

解决方法:在将来宾域迁移到 SPARC T4 服务器期间,不要运行 cputrack 命令。

进行跨 CPU 迁移的来宾域在迁移完成后报告的运行时间不正确

 

错误号 15775055:在具有不同 CPU 频率的两台计算机之间迁移域后,ldm list 命令报告的运行时间可能不正确。出现这种不正确结果是因为运行时间是相对于运行该域的计算机的 STICK 频率来计算的。如果源计算机和目标计算机的 STICK 频率不同,运行时间的度量就会显得不正确。

此问题仅适用于 UltraSPARC T2、UltraSPARC T2 Plus 和 SPARC T3 服务器。

来宾域自身报告和显示的运行时间是正确的。此外,在来宾域中 Oracle Solaris OS 执行的任何记帐都是正确的。

对依赖于目标计算机上的非活动主域的域进行实时迁移导致 ldmd 发生故障并具有分段故障

 

错误号 15701865:如果尝试对依赖于目标计算机上的非活动域的域进行实时迁移,ldmd 守护进程将发生故障并具有分段故障,并且目标计算机上的域将重新启动。尽管迁移会成功,但在目标计算机上迁移后的域会出现计划外重新启动,这意味着并不是实时迁移。

    解决方法:尝试实时迁移之前,执行以下操作之一:

  • 删除与要迁移的域的来宾依赖关系。

  • 启动目标计算机上的主域。

删除策略或策略过期后,DRM 无法为迁移后的域恢复默认数量的虚拟 CPU

 

错误号 15701853:在 DRM 策略生效时执行域迁移后,如果 DRM 策略过期或将其从迁移后的域中删除,DRM 将无法为该域恢复原始数量的虚拟 CPU。

解决方法:如果在 DRM 策略有效时迁移域,并且随后 DRM 策略过期或被删除,请重置虚拟 CPU 的数量。使用 ldm set-vcpu 命令在域中将虚拟 CPU 的数量设置为原始值。

“相反方向”的同时迁移操作可能会导致 ldm 挂起

 

错误号 15696986:如果在两个相同的系统中向“相反方向”同时发出两个 ldm migrate 命令,这两个命令可能会挂起,永不会完成。如果启动了从计算机 A 到计算机 B 的迁移,同时又启动了从计算机 B 到计算机 A 的迁移,就会出现相反方向操作。

即使迁移过程是使用 –n 选项启动的模拟运行,也会导致挂起。出现此问题时,所有其他 ldm 命令均可能挂起。

解决方法:无。

显式控制台组和端口绑定未迁移

 

错误号 15527921:在迁移期间,会忽略显式指定的任何控制台组和端口,而且会为目标域创建一个具有默认属性的控制台。此控制台是通过使用目标域名称作为控制台组并使用控制域中第一个虚拟控制台集中器 (vcc) 设备上的任意可用端口创建的。如果与默认组名有冲突,迁移将失败。

恢复:要在迁移之后恢复显式控制台属性,请解除对目标域的绑定,然后使用 ldm set-vcons 命令手动设置所需的属性。

即使目标有足够的可用内存,迁移功能也无法绑定内存

 

错误号 15523120:在某些情况下,迁移会失败,ldmd 会报告它无法绑定源域所需的内存。即使目标计算机上的可用内存总量大于源域正在使用的内存量,也会出现此情况。

出现这种故障的原因是,迁移正由源域使用的特定内存范围需要目标上也有一致的可用内存范围。如果对于源域中的任何内存范围没有找到此类一致的内存范围,迁移将无法继续。请参见Oracle VM Server for SPARC 3.4 管理指南 中的 内存的迁移要求

恢复:遇到这种情况时,可以修改目标计算机上的内存使用情况来迁移域。为此,请解除绑定目标上任何已绑定的或处于活动状态的逻辑域。

使用 ldm list-devices -a mem 命令可以查看可用的内存及其使用方式。您可能还需要减少指定给另一个域的内存量。

除非重新启动 vntsd,否则无法连接到迁移后的域控制台

 

错误号 15513998:有时,在迁移域之后,无法连接到该域的控制台。

请注意,当迁移后的域运行 Oracle Solaris 11.3 之前的 OS 版本时,会发生此问题。

解决方法:重新启动 vntsd SMF 服务以允许连接到控制台:

# svcadm restart vntsd

注 - 此命令将断开所有处于活动状态的控制台连接。

无法在具有 EFI GPT 磁盘标签的系统与不具有 EFI GPT 磁盘标签的系统之间迁移域

 

此问题仅适用于 UltraSPARC T2、UltraSPARC T2 Plus 和 SPARC T3 服务器。

系统固件版本 8.4、9.1 和 XCP2230 引入了对 EFI GPT 磁盘标签的支持。默认情况下,在至少运行 Oracle Solaris 11.1 OS 的系统上安装的虚拟磁盘均具有 EFI GPT 磁盘标签。在早期版本的固件(例如 9.0.x、8.3、7.x 或 XCP2221)上无法找到此磁盘标签。此情况使得无法对运行无 EFI GPT 支持的系统固件版本的系统执行实时迁移或冷迁移。请注意,在这种情况下执行冷迁移也会失败,这与先前的限制不同。

    要确定虚拟磁盘是否具有 EFI GPT 磁盘标签,请对原始设备运行 devinfo -i 命令。以下示例用于显示虚拟磁盘的磁盘标签是 SMI VTOC 还是 EFI GPT。

  • SMI VTOC 磁盘标签。如果虚拟磁盘具有 SMI VTOC 磁盘标签,则无论固件是否支持 EFI,均可以对固件执行迁移。

    以下示例指示设备具有 VTOC 标签,因为 devinfo -i 命令报告了特定于设备的信息。

    # devinfo -i /dev/rdsk/c2d0s2
    /dev/rdsk/c2d0s2        0       0       73728   512     2
  • EFI GPT 磁盘标签。如果虚拟磁盘具有 EFI GPT 磁盘标签,则只能对具有 EFI 支持的固件执行迁移。

    以下示例指示设备具有 EFI GPT 磁盘标签,因为 devinfo -i 命令报告了一个错误。

    # devinfo -i /dev/rdsk/c1d0s0
    devinfo: /dev/rdsk/c1d0s0: This operation is not supported on EFI
    labeled devices

影响 Oracle VM Server for SPARC 软件的错误

本节总结了在使用此版本的软件时可能遇到的错误。最新的错误最先列出。如果有解决方法和恢复过程,则会提供。

影响 Oracle VM Server for SPARC 3.4 软件的错误

支持恢复模式期间创建静态虚拟功能

错误号 23205662:由于某些 InfiniBand 卡使用的 PSIF 驱动程序存在限制,驱动程序不支持动态 IOV 操作,例如创建虚拟功能。此限制导致恢复模式无法恢复具有使用 PSIF 驱动程序的物理功能的非 primary 根域。由于缺乏对动态 IOV 操作的支持,物理功能将不会变为可以创建虚拟功能。

解决方法:请勿在非 primary 根域中使用 PSIF 驱动程序的 InfiniBand 物理功能上创建虚拟功能。

I/O 域恢复失败并且虚拟功能处于无效状态

 

错误号 23170671:有时,创建虚拟功能后,虚拟功能和物理功能会处于无效状态。分配有此类虚拟功能的域无法绑定。如果在恢复模式期间发生此问题,则不会恢复虚拟功能处于无效状态的任何 I/O 域。

ldmd 日志将针对 IOVFC.PF1 物理功能显示类似于以下内容的消息:

Recreating VFs for PF /SYS/MB/PCIE2/IOVFC.PF0 in domain root_2
Recreating VFs for PF /SYS/MB/PCIE2/IOVFC.PF1 in domain root_2
Recreating VFs for PF /SYS/MB/NET2/IOVNET.PF0 in domain root_3
PF /SYS/MB/PCIE2/IOVFC.PF1 not ready (3)
PF /SYS/MB/PCIE2/IOVFC.PF1 not ready (3)
PF /SYS/MB/PCIE2/IOVFC.PF1 not ready (3)
PF /SYS/MB/PCIE2/IOVFC.PF1 not ready (3)

恢复方法:如果您及时发现了此问题,可以在恢复模式继续重试物理功能时,重新启动 root_2 域中的 ldmd 代理,以便解决此问题。重新启动代理可以恢复使用物理功能的虚拟功能的 I/O 域。如果您未及时发现此问题,恢复操作将继续执行,但将无法恢复使用这些虚拟功能的 I/O 域。

Oracle VM Server for SPARC MIB ldomSPConfigTable 未显示所有 SP 配置

错误号 23144895:Oracle VM Server for SPARC MIB 仅显示服务处理器 (service processor, SP) 配置表 (ldomSPConfigTable) 的出厂默认配置。

解决方法:要显示系统中 SP 配置的完整列表,请使用 ldm list-spconfiglist-spconfig XML 接口。

例如:

primary# ldm list-spconfig
factory-default [next poweron]
test_config

XML list-spconfig 将按如下方式进行响应:

<cmd>
  <action>list-spconfig</action>
  <data version="3.0">
    <Envelope>
      <References/>
      <Section>
        <Item>
          <rasd:OtherResourceType>spconfig</rasd:OtherResourceType>
          <gprop:GenericProperty key="spconfig_name">factory-default</gprop:GenericProperty>
          <gprop:GenericProperty key="spconfig_status">next</gprop:GenericProperty>
        </Item>
      </Section>
      <References/>
      <Section>
        <Item>
          <rasd:OtherResourceType>spconfig</rasd:OtherResourceType>
          <gprop:GenericProperty key="spconfig_name">test_config</gprop:GenericProperty>
        </Item>
      </Section>
...
ovmtlibrary 将磁盘映像文件名限制为 50 个字符

错误号 23024583:ovmtlibrary 命令将磁盘映像文件名限制为 50 个字符。ovmtlibrary 会检查 .ovf 文件并将 <ovf:References> 部分中的信息与解压缩磁盘的实际文件名进行比较。

如果文件不同或者如果磁盘映像文件名超过 50 字符,则会发出错误。例如:

# ovmtlibrary -c store -d "example" -q -o file:/template.ova -l /export/user1/ovmtlibrary_example
event id is 3
ERROR: The actual disk image file name(s) or the actual number of disk
image(s) is different from OVF file: template.ovf
exit code: 1

以下示例 XML 显示一个长度超过 50 个字符的磁盘映像文件名:

<ovf:References>
<ovf:File ovf:compression="gzip"
ovf:href="disk_image.ldoms3.4_build_s11_u3_sru06_rti_02_kz_40G.img.gz"
ovf:id="ldoms3" ovf:size="6687633773"/>
</ovf:References>

解决方法:限制磁盘映像文件名的长度,使其少于 50 个字符。

如果找到了相同的 vdsdev 后端文件名,ovmtcreate 会创建损坏的模板

错误号 22919488:如果在源域中 vdsdev 为同一域中的多个虚拟磁盘指定了相同名称,则 ovmtcreate 命令不支持从该源域创建模板。

此问题不太可能发生,因为具有多个虚拟磁盘的源域通常具有不同的后端设备,因此具有不同的文件名。然而,如果将 ovmtdeploy 与从源域创建的模板一起使用,在源域中 vdsdev 为多个虚拟磁盘指定了相同名称,则 ovmtdeploy 会失败并显示一条错误消息。例如:

# ovmtdeploy -d ldg1 template.ova
ERROR: pigz:
//ldg1/resources/disk_image.ldoms3.4_build_s11_u3_sru05_rti_01_kz_36G.img.gz
does not exist -- skipping
FATAL: Failed to decompress disk image

解决方法:为包含在相同域中的虚拟磁盘指定不同的 vdsdev 后端文件名。

添加到非活动来宾域的虚拟网络设备无法获取默认 linkprop

 

错误号 22842188:为了使 linkprop=phys-state 在虚拟网络设备上受支持,Logical Domains Manager 必须能够验证虚拟网络设备连接到的虚拟交换机是否具有为虚拟交换机提供后备支持的物理 NIC。

必须在来宾域上运行 Oracle VM Server for SPARC netsvc 代理,以便可以查询虚拟交换机。

如果来宾域未处于活动状态,无法与虚拟网络设备的虚拟交换机所在的域中的代理通信,则虚拟网络设备不会设置 linkprop=phys-state

解决方案:仅当域处于活动状态时才设置 linkprop=phys-state

linkprop=phys-stateldm set-vsw net-dev= 会失败

 

错误号 22828100:如果虚拟交换机已连接 linkprop=phys-state 的虚拟网络设备,则它们连接到的虚拟交换机必须具有通过 net-dev 属性指定的有效后备 NIC 设备。net-dev 属性值必须为有效网络设备的名称。

如果使用 net-dev= 执行此操作,则虚拟交换机将显示 linkprop=phys-state,即使 net-dev 属性值不是有效的 NIC 设备也是如此。

解决方法:首先,移除连接到虚拟交换机的所有虚拟网络设备,然后移除虚拟交换机。然后重新创建具有有效 net-dev 后备设备的虚拟交换机,并重新创建所有虚拟网络设备。

不能从 XML 文件重新创建具有套接字约束的域

 

错误号 21616429:Oracle VM Server for SPARC 3.3 软件仅对 Fujitsu M10 服务器提供套接字支持。

在 Oracle SPARC 服务器以及 3.3 之前的 Oracle VM Server for SPARC 版本上运行的软件不能从 XML 文件重新创建具有套接字约束的域。

使用较早版本的 Oracle VM Server for SPARC 软件或在 Oracle SPARC 服务器中尝试从 XML 文件重新创建具有套接字约束的域会失败,并显示以下消息:

primary# ldm add-domain -i ovm3.3_socket_ovm11.xml
socket not a known resource

如果在 Fujitsu M10 服务器上运行 Oracle VM Server for SPARC 3.2 并尝试从 XML 文件重新创建具有套接字约束的域,该命令将失败并显示不同的错误消息,如下所示:

primary# ldm add-domain -i ovm3.3_socket_ovm11.xml
Unknown property: vcpus

primary# ldm add-domain -i ovm3.3_socket_ovm11.xml
perf-counters property not supported, platform does not have
performance register access capability, ignoring constraint setting.

解决方法:通过编辑 XML 文件删除引用 socket 资源类型的所有部分。

当某一服务域由于虚拟 SCSI HBA 超时设置而停止时,虚拟 SCSI HBA 来宾域的 I/O 吞吐量会下降

 

错误号 21321166:使用的虚拟 SCSI HBA MPxIO 路径指向脱机服务域时,I/O 吞吐量会下降。

解决方法:在脱机服务域恢复运行之前,通过使用 mpathadm disable path 命令禁用指向该服务域的路径。

如果不重新引导,虚拟 SCSI HBA 不会显示 LUN 的动态更改

 

错误号 21188211:配置虚拟 SCSI HBA 后,如果在虚拟 SAN 中添加或移除 LUN,ldm rescan-vhba 命令有时不显示新的 LUN 视图。

解决方法:移除虚拟 SCSI HBA,然后重新添加。检查是否显示 LUN。如果移除再重新添加操作不成功,则必须重新引导来宾域。

拔出光纤通道电缆时,mpathadm 显示错误的虚拟 SCSI HBA 路径状态输出。

 

错误号 20876502:从属于虚拟 SCSI HBA MPxIO 来宾域配置的服务域拔出 SAN 电缆会导致 mpathadm 输出的 "Path State"(路径状态)列显示错误的值。

解决方法:插入 SAN 电缆,并对连接了电缆的服务域中的所有虚拟 SCSI HBA 运行 ldm rescan-vhba 命令。执行此解决方法后,来宾域应恢复执行 I/O 操作。

在进入 factory-default 之后,如果系统引导设备不是以前活动配置中的引导设备,则恢复模式将失败

 

错误号 20425271:在进入 factory-default 后触发恢复过程中,如果系统引导设备不是以前活动配置中的引导设备,则恢复模式将失败。如果活动配置使用的引导设备不是 factory-default 引导设备,则可能发生此故障。


注 - 此问题适用于 UltraSPARC T2、UltraSPARC T2 Plus、SPARC T3 和 SPARC T4 系列服务器。此问题还适用于运行 9.5.3 之前的系统固件版本的 SPARC T5、SPARC M5 和 SPARC M6 系列服务器。

解决方法:在需要将新配置保存到 SP 时,执行以下步骤:

  1. 确定到 primary 域的引导设备的完全 PCI 路径。

    在步骤 4 中将此路径用于 ldm set-var 命令。

  2. primary 域中删除任何当前设置的 boot-device 属性。

    仅当 boot-device 属性设置了值时才需要执行此步骤。如果该属性未设置任何值,则试图删除 boot-device 属性将导致 boot-device not found 消息。

    primary# ldm rm-var boot-device primary
  3. 将当前配置保存到 SP。

    primary# ldm add-spconfig config-name
  4. 显式设置 primary 域的 boot-device 属性。

    primary# ldm set-var boot-device=value primary

    如果在按所述将配置保存到 SP 后再设置 boot-device 属性,则会在触发恢复模式时引导指定的引导设备。

恢复:如果恢复模式已如所述失败,请执行以下步骤:

  1. 将引导设备显式设置为上次运行配置时所用的引导设备。

    primary# ldm set-var boot-device=value primary
  2. 重新引导 primary 域。

    primary# reboot

    通过重新引导可让恢复继续。

对包含虚拟 SCSI HBA 的 MPxIO 使用 ldm rm-io virtual-function 命令时出现紧急情况

 

错误号 20046234:启用 MPxIO 后,虚拟 SCSI HBA 和光纤通道 SR-IOV 设备可查看来宾域中的相同 LUN 时,可能会出现紧急情况。如果将光纤通道 SR-IOV 卡从来宾域移除,再重新添加,则会出现紧急情况。

解决方法:当光纤通道 SR-IOV 和虚拟 SCSI HBA 都启用 MPxIO 时,不要在来宾域中配置这两者。

来宾域 eeprom 更新在 ldm add-spconfig 操作未完成的情况下会丢失

 

错误号 19932842:尝试从来宾域设置 OBP 变量时,如果使用 eeprom 或 OBP 命令时以下命令之一未完成,则设置可能会失败:

  • ldm add-spconfig

  • ldm remove-spconfig

  • ldm set-spconfig

  • ldm bind

如果这些命令完成的时间超过 15 秒,则可能发生此问题。

# /usr/sbin/eeprom boot-file\=-k
promif_ldom_setprop: promif_ldom_setprop: ds response timeout
eeprom: OPROMSETOPT: Invalid argument
boot-file: invalid property

恢复:ldm 操作完成后重试 eeprom 或 OBP 命令。

解决方法:在受影响的来宾域上重试 eeprom 或 OBP 命令。也许可通过在 primary 域上使用 ldm set-var 命令来避免该问题。

重新引导有超过 1000 个虚拟网络设备的来宾域导致紧急情况

 

错误号 19449221:一个域拥有的虚拟网络设备 (vnet) 数量不能超过 999 个。

解决方法:将一个域上的 vnet 数量限制为 999 个。

根域中光纤通道虚拟功能的设备路径不正确

 

错误号 18001028:在根域中,光纤通道虚拟功能的 Oracle Solaris 设备路径不正确。

例如,不正确的路径名为 pci@380/pci@1/pci@0/pci@6/fibre-channel@0,2,应当为 pci@380/pci@1/pci@0/pci@6/SUNW,emlxs@0,2

ldm list-io -l 输出显示了光纤通道虚拟功能的正确设备路径。

解决方法:无。

针对 InfiniBand SR-IOV 移除操作显示了误导性的消息

 

错误号 16979993:尝试对 InfiniBand 设备使用动态 SR-IOV 移除操作导致显示令人困惑和不合适的错误消息。

InfiniBand 设备不支持动态 SR-IOV 移除操作。

解决方法:通过执行以下过程之一移除 InfiniBand 虚拟功能:

复原 I/O 域在重新引导根域后应支持 PCI 设备配置更改

 

错误号 16691046:如果从根域分配虚拟功能,I/O 域在以下热插拔情况下可能无法提供复原:

  • 向根域添加一个根联合体(PCIe 总线),然后创建虚拟功能并将其分配给 I/O 域。

  • 在拥有根联合体的根域中热添加一个 SR-IOV 卡,然后创建虚拟功能并将其分配给 I/O 域。

  • 更换根域所拥有的根联合体中的任何 PCIe 卡或向其空插槽中添加任何 PCIe 卡(无论是通过热插拔还是在根域停止时)。此根域会将根联合体中的虚拟功能提供给 I/O 域。

解决方法:执行以下步骤之一:

  • 如果根联合体已向 I/O 域提供了虚拟供并且您在该根联合体中添加、移除或更换了任何 PCIe 卡(无论是通过热插拔还是在根域停止时),必须重新引导根域和 I/O 域。

  • 如果根联合体当前未向 I/O 域分配虚拟功能并且您向该根联合体添加了 SR-IOV 卡或其他任何 PCIe 卡,您必须停止根域,才能添加 PCIe 卡。重新引导根域后,可以将该根联合体中的虚拟功能分配给 I/O 域。

  • 如果要向根域添加新的 PCIe 总线,然后从该总线创建虚拟功能并将其分配给 I/O 域,请执行以下步骤之一并重新引导该根域:

    • 在延迟重新配置期间添加总线

    • 动态添加总线

来宾域在 primary 域重新引导后处于过渡状态

 

错误号 16659506:来宾域在 primary 域重新引导后处于过渡状态 (t)。当在系统上配置了大量的虚拟功能时会出现此问题。

解决方法:要避免此问题,请多次重试 OBP 磁盘引导命令以避免从网络引导。

    在每个域上执行以下步骤:

  1. 访问域的控制台。

    primary# telnet localhost 5000
  2. 设置 boot-device 属性。

    ok> setenv boot-device disk disk disk disk disk disk disk disk disk disk net

    您作为 boot-device 属性的值指定的 disk 条目数取决于在系统上配置的虚拟功能数目。在较小的系统上,您可能能够在该属性值中包括较少的 disk 实例。

  3. 使用 printenv 验证是否已正确设置了 boot-device 属性。

    ok> printenv
  4. 返回到 primary 域控制台。

  5. 为系统上的每个域重复步骤 1-4。

  6. 重新引导 primary 域。

    primary# shutdown -i6 -g0 -y
在附加 I/O 设备驱动程序时,WARNING: ddi_intr_alloc: cannot fit into interrupt pool 指出中断供应已耗尽

 

错误号 16284767:在附加 I/O 设备驱动程序时,Oracle Solaris 控制台指出中断供应已耗尽:

WARNING: ddi_intr_alloc: cannot fit into interrupt pool

此限制仅适用于 SPARC M7 系列服务器和 SPARC T7 系列服务器之前的受支持 SPARC 系统。

硬件提供了有限数目的中断,因此,Oracle Solaris 会限制每个设备可以使用多少次中断。默认限制设计为与典型系统配置的需求相匹配,不过,对于某些系统配置,可能需要调整此限制。

特别是以下情况下可能需要调整此限制:当系统划分为多个逻辑域并且当向任意来宾域分配了太多的 I/O 设备时。Oracle VM Server for SPARC 会将总的中断划分为分配给各个来宾域的较小中断集。如果向某个来宾域分配了太多的 I/O 设备,则系统的供应可能太少以致于无法向每个设备分配默认的中断限制。因此,它在完全附加所有驱动程序之前会耗尽其供应。

某些驱动程序提供了一个可选的回调例程,该例程允许 Oracle Solaris 自动调整其中断。默认限制不适用于这些驱动程序。

解决方法:使用 ::irmpools::irmreqs MDB 宏来确定如何使用中断。::irmpools 宏显示划分为池的总体中断供应。::irmreqs 宏显示哪些设备映射到每个池。对于每个设备,::irmreqs 显示是否由一个可选的回调例程强制执行默认限制、每个驱动程序请求了多少中断,以及为驱动程序分配了多少中断。

这些宏不显示有关无法附加的驱动程序的信息。不过,所显示的信息有助于计算您可以将默认限制调整到的范围。对于使用了多个中断且没有提供回调例程的任何设备,都可以通过调整默认限制来强制其使用较少的中断。将默认限制降低到这样的设备使用的数量以下可以释放一些中断供其他设备使用。

要调整默认限制,请在 /etc/system 文件中将 ddi_msix_alloc_limit 属性设置为从 18 的某个值。然后,重新引导系统以使更改生效。

为了最大限度地提高性能,请先分配较大的值,然后以较小的增量减小该值,直至系统成功引导且不出现任何警告。可使用 ::irmpools::irmreqs 宏来度量调整对所附加的所有驱动程序的影响。

例如,假设在引导来宾域中的 Oracle Solaris OS 时发出了以下警告:

WARNING: emlxs3: interrupt pool too full.
WARNING: ddi_intr_alloc: cannot fit into interrupt pool

::irmpools::irmreqs 宏显示以下信息:

# echo "::irmpools" | mdb -k
ADDR             OWNER   TYPE   SIZE  REQUESTED  RESERVED
00000400016be970 px#0    MSI/X  36    36         36

# echo "00000400016be970::irmreqs" | mdb -k
ADDR             OWNER   TYPE   CALLBACK NINTRS NREQ NAVAIL
00001000143acaa8 emlxs#0 MSI-X  No       32     8    8
00001000170199f8 emlxs#1 MSI-X  No       32     8    8
000010001400ca28 emlxs#2 MSI-X  No       32     8    8
0000100016151328 igb#3   MSI-X  No       10     3    3
0000100019549d30 igb#2   MSI-X  No       10     3    3
0000040000e0f878 igb#1   MSI-X  No       10     3    3
000010001955a5c8 igb#0   MSI-X  No       10     3    3

在此示例中,默认限制是每个设备八个中断,此中断限制不足以支持将最后的 emlxs3 设备附加到系统。假设所有 emlxs 实例的行为方式相同,则 emlxs3 可能请求了 8 个中断。

从总的池大小 36 个中断中减去由所有 igb 设备使用的 12 个中断,还剩下 24 个中断可供 emlxs 设备使用。将 24 个中断除以 4,这表明每个设备 6 个中断将能够使所有 emlxs 设备都可以附加,且具有相同的性能。因此,在 /etc/system 文件中添加以下调整:

set ddi_msix_alloc_limit = 6

当系统成功引导且未出现任何警告时,::irmpools::irmreqs 宏会显示以下更新的消息:

# echo "::irmpools" | mdb -k
ADDR             OWNER   TYPE   SIZE  REQUESTED  RESERVED
00000400018ca868 px#0    MSI/X  36    36         36
 
# echo "00000400018ca868::irmreqs" | mdb -k
ADDR             OWNER   TYPE   CALLBACK NINTRS NREQ NAVAIL
0000100016143218 emlxs#0 MSI-X  No       32     8    6
0000100014269920 emlxs#1 MSI-X  No       32     8    6
000010001540be30 emlxs#2 MSI-X  No       32     8    6
00001000140cbe10 emlxs#3 MSI-X  No       32     8    6
00001000141210c0 igb#3   MSI-X  No       10     3    3
0000100017549d38 igb#2   MSI-X  No       10     3    3
0000040001ceac40 igb#1   MSI-X  No       10     3    3
000010001acc3480 igb#0   MSI-X  No       10     3    3
SPARC T5-8 服务器:对于某些 ldm List 命令,运行时间数据显示了值 0

 

错误号 16068376:在具有大约 128 个域的 SPARC T5-8 服务器上,诸如 ldm list 之类的 ldm 命令会将所有域的运行时间显示为 0 秒。

解决方法:登录到域并使用 uptime 命令来确定域的运行时间。

内存 DR 添加部分成功时不显示错误消息

 

错误号 15812823:在可用内存较少的情况下,由于内存大小的原因并非所有内存块都可以用作内存 DR 操作的一部分。但是,这些内存块都包括在可用内存量中。这种情况可能会导致向域中添加的内存量小于所预期的。如果发生这种情况,不显示任何错误消息。

解决方法:无。

ldm init-system 命令可能无法正确恢复已执行了物理 I/O 更改的域配置

 

错误号 15783031:当使用 ldm init-system 命令恢复已使用了直接 I/O 或 SR-IOV 操作的域时,可能会遇到问题。

    如果已对要恢复的配置执行了下列一个或多个操作,则会出现问题:

  • 从总线中移除了仍归 primary 域拥有的一个插槽。

  • 基于 primary 域拥有的物理功能创建了虚拟功能。

  • primary 域或其他来宾域(或两者)分配了虚拟功能。

  • primary 域中删除了一个根联合体并将其分配给了来宾域,并且该根联合体用作进一步 I/O 虚拟化操作的基础。

    换句话说,您创建了非 primary 根域并执行了任何上述操作。

要确保系统保持在未发生上述任何操作的状态下,请参见 Using the ldm init-system Command to Restore Domains on Which Physical I/O Changes Have Been Made (https://support.oracle.com/epmos/faces/DocumentDisplay?id=1575852.1)(使用 ldm init-system 命令恢复已执行了物理 I/O 更改的域)。

限制可以分配给域的最大虚拟功能数

 

错误号 15775637:I/O 域限制每个根联合体的可用中断资源数。

在 SPARC T3 和 SPARC T4 服务器上,该限制大约为 63 个 MSI/X 向量。每个 igb 虚拟功能使用三个中断。ixgbe 虚拟功能使用两个中断。

如果向域分配大量虚拟功能,该域将耗尽系统资源来支持这些设备。可能会显示类似如下的消息:

WARNING: ixgbevf32: interrupt pool too full.
WARNING: ddi_intr_alloc: cannot fit into interrupt pool
尝试连接到绑定中的来宾域控制台可能导致输入被阻止

 

错误号 15771384:如果在绑定控制台期间或之前重复尝试连接到控制台,则域的来宾控制台可能会冻结。例如,如果您在正在向计算机迁移某个域时使用自动化脚本来抓取控制台,则可能会发生此情况。

解决方法:要解除冻结控制台,请在承载着该域的控制台集中器的域上(通常为控制域)执行以下命令:

primary# svcadm disable vntsd
primary# svcadm enable vntsd
应该对具有 PCIe 到 PCI 桥的 PCIe 卡禁用 ldm remove-io

 

错误号 15761509:只使用支持直接 I/O (Direct I/O, DIO) 功能的 PCIe 卡,在此支持文档 (https://support.us.oracle.com/oip/faces/secure/km/DocumentDisplay.jspx?id=1325454.1) 中列出了这类卡。

解决方法:使用 ldm add-io 命令重新向 primary 域添加卡。

如果在 ldm start 命令后立即发出 ldm stop 命令,后者可能会失败

 

错误号 15759601:如果在 ldm start 命令后立即发出 ldm stop 命令,ldm stop 命令可能会失败,并显示以下错误:

LDom domain-name stop notification failed

解决方法:重新发出 ldm stop 命令。

使用部分核心的 primary 域无法进行整体核心 DR 转换

 

错误号 15748348:primary 域与其他域共享最低物理核心(通常为 0)时,尝试为 primary 域设置整体核心约束失败。

解决方法:执行以下步骤:

  1. 确定域共享的最低绑定核心。

    # ldm list -o cpu
  2. 从除 primary 域之外的所有域解除绑定最低核心的所有 CPU 线程。

    因此,最低核心的 CPU 线程不再共享,可以绑定到 primary 域。

  3. 通过执行以下操作之一设置整体核心约束:

    • 通过使用 ldm set-vcpu -c 命令将 CPU 线程绑定到 primary 域并设置整体核心约束。

    • 使用 ldm set-core 命令在一个步骤中绑定 CPU 线程并设置整体核心约束。

DRM 和 ldm list 输出显示的虚拟 CPU 数与来宾域中的实际虚拟 CPU 数不符

 

错误号 15701853:如果已装入域的 DRM 策略在 CPU 计数大幅减少后过期,Oracle VM Server for SPARC 日志中可能会出现 No response 消息。ldm list 输出中显示的分配给域的 CPU 资源多于 psrinfo 输出中显示的数量。

解决方法:使用 ldm set-vcpu 命令将域中的 CPU 数重置为 psrinfo 输出中显示的值。

SPARC T3-1 服务器:可通过多个直接 I/O 路径访问的磁盘会出现问题

 

错误号 15668368:可以在 SPARC T3-1 服务器上安装双端口磁盘,这些磁盘可通过两个不同的直接 I/O 设备访问。在这种情况下,如果将这两个直接 I/O 设备分配给不同的域,可能会导致这些磁盘供这两个域使用并在实际使用当中相互影响。

解决方法:不将能够访问同一组磁盘的直接 I/O 设备指定给不同的 I/O 域。要确定 SPARC T3-1 服务器上是否有双端口磁盘,请对 SP 运行以下命令:

-> show /SYS/SASBP

如果输出中包含以下 fru_description 值,则说明相应的系统上有双端口磁盘:

fru_description = BD,SAS2,16DSK,LOUISE

如果发现系统中存在双端口磁盘,请确保始终将下面的两个直接 I/O 设备分配给同一个域:

pci@400/pci@1/pci@0/pci@4  /SYS/MB/SASHBA0
pci@400/pci@2/pci@0/pci@4  /SYS/MB/SASHBA1
对具有主-从关系的域使用 ldm stop -a 命令会在从域中设置 stopping 标志

 

错误号 15664666:在创建了重置依赖关系之后,ldm stop -a 命令可能会导致具有重置依赖关系的域重新启动(而不只是停止)。

解决方法:首先向主域发出 ldm stop 命令,然后向从域发出 ldm stop 命令。如果最初停止从域时导致故障,请向从域发出 ldm stop -f 命令。

从域中动态删除所有的加密单元导致 SSH 终止

 

错误号 15600969:如果从正在运行的域中动态删除所有的硬件加密单元,加密框架将无法无缝地切换到软件加密提供程序,而且会中止所有 ssh 连接。

此问题仅适用于 UltraSPARC T2、UltraSPARC T2 Plus 和 SPARC T3 服务器。

恢复:在从域中删除所有的加密单元之后,重新建立 ssh 连接。

解决方法:在服务器端上的 /etc/ssh/sshd_config 文件中设置 UseOpenSSLEngine=no,然后运行 svcadm restart ssh 命令。

所有 ssh 连接将不再使用硬件加密单元(因此也无法获得相关的性能提升),ssh 连接不会在删除加密单元后断开。

当多个域正在引导时,ldm 命令很慢,无法响应

 

错误号 15572184:当多个域正在引导时,ldm 命令可能很慢,无法响应。如果在该阶段发出 ldm 命令,该命令可能看起来处于挂起状态。请注意,在执行预期的任务之后,ldm 命令将返回。在该命令返回之后,系统应当能够正常响应 ldm 命令。

解决方法:避免同时引导许多域。但是,如果您必须同时引导多个域,请避免在系统恢复到正常状态之前进一步发出 ldm 命令。例如,在 Sun SPARC Enterprise T5140 和 T5240 服务器上等待两分钟左右,在 Sun SPARC Enterprise T5440 服务器或 Sun Netra T5440 服务器上等待四分钟左右。

当计算机未联网而且 NIS 客户机正在运行时,Logical Domains Manager 不启动

 

错误号 15518409:如果您的计算机上运行有网络信息服务 (Network Information Service, NIS) 客户机,但未配置网络,则 Logical Domains Manager 将无法在您的系统上启动。

解决方法:在非联网计算机上禁用 NIS 客户机:

# svcadm disable nis/client
在公用控制台组中同时进行多个域的网络安装会失败

 

错误号 15453968:在共用同一个控制台组的系统上同时进行的多个来宾域的网络安装失败。

解决方法:仅在拥有其各自控制台组的来宾域上进行网络安装。只有在多个网络安装域之间共享一个公用控制台组的域上才会出现这种失败情况。

在 Logical Domains 运行时无法设置安全密钥

 

错误号 15370442:在 Logical Domains 环境中,不支持从 Oracle Solaris OS 内使用 ickey(1M) 命令设置或删除广域网 (wide-area network, WAN) 引导密钥。所有的 ickey 操作都会失败并出现以下错误:

ickey: setkey: ioctl: I/O error

另外,在逻辑域(而不是控制域)中使用 OpenBoot 固件设置的 WAN 引导密钥在该域重新引导之后不会被记住。在这些域中,从 OpenBoot 固件设置的密钥只能使用一次。

ldm stop-domain 命令的行为可能会令人困惑

 

错误号 15368170:在某些情况下,ldm stop-domain 命令的行为会令人困惑。

# ldm stop-domain -f domain-name

如果域位于内核模块调试器 kmdb(1) 提示符下,则 ldm stop-domain 命令会失败并出现以下错误消息:

LDom <domain-name> stop notification failed

文档问题

本节包含因发现过晚而无法在 Oracle VM Server for SPARC 3.4 发行版中解决的文档问题和错误。

使用 ldm set-domain 命令更改 boot-policy 属性值时必须重新引导活动域

ldm(1M) 手册页未提到,在使用 ldm set-domain 命令更改 boot-policy 属性值之后必须重新引导活动域。

有关 boot-policy 属性的描述已更新,现在包含以下这段文字:

如果更改 boot-policy 值时域处于活动状态,必须重新引导域才能使更改生效。

此外,“设置域选项”一节的第一段现在提到了 boot-policy 属性名称:

set-domain 子命令允许您修改每个域的 boot-policymac-addrhostidfailure-policyextended-mapin-spacemastermax-cores 属性。您无法使用此命令更新资源属性。

ldmd(1M) 手册页显示不正确的 SMF 属性名称

ldmd(1M) 手册页显示不正确的 SMF 属性名称 ldmd/fj-ppar-dr-policy。正确的属性名称为 ldmd/fj_ppar_dr_policy