Oracle® VM Server for SPARC 3.2 发行说明

退出打印视图

更新时间: 2015 年 5 月
 
 

迁移问题

实时迁移可能导致内存损坏或丢失内核紧急情况崩溃转储

错误号 20612716: 将运行 Oracle Solaris 11.2 SRU 8 的来宾域从固件基于 Hypervisor 1.14.x 的计算机实时迁移到固件为 Hypervisor 1.13.2 的计算机时,可能导致来宾域重新引导后内存损坏或丢失内核紧急情况崩溃转储。

    此问题影响以下实时迁移:

  • 对于基于 SPARC T4 的系统,在从运行固件版本 8.7.x 的系统迁移到运行的固件版本为 8.6.x 或更低版本的系统时,会发生此故障。

  • 对于基于 SPARC T5 的系统及使用 9.x 固件的其他系统,在从运行固件版本 9.4.x 的系统迁移到运行的固件版本为 9.3.x 或更低版本的系统时,会发生此故障。


注 - 由于相关的错误 20594568,在固件有 Hypervisor 1.14.x 的任何系统实时迁移到固件有 Hypervisor 1.13.x 的任何系统时,应采用此解决方法:
  • 从运行固件版本 8.7.x 的系统迁移到运行的固件版本为 8.6.x 或更低版本的系统

  • 从运行固件版本 9.4.x 的系统迁移到运行的固件版本为 9.3.x 或更低版本的系统


解决方法:要避免出现此问题,请在被迁移的域上将以下行添加到 /etc/system 文件中:

set retained_mem_already_checked=1

有关正确创建或更新 /etc/system 属性值的信息,请参见Oracle VM Server for SPARC 3.2 管理指南 中的更新 /etc/system 文件中的属性值

然后,重新引导域,再尝试从 Hypervisor 版本 1.14.x 迁移到 Hypervisor 版本 1.13.2。

如果已经将来宾域从固件 8.7.x 迁移到 8.6.x 或者从 9.4.x 迁移到 9.3.x,请停止并重新启动来宾域。例如:

primary# ldm stop-domain domainname
primary# ldm start-domain domainname

无法将 Oracle Solaris 11.2 SRU 8 来宾域实时迁移到采用 Hypervisor 1.13.1 的目标计算机

错误号 20594568:无法将运行 Oracle Solaris 11.2 SRU 8 的来宾域从固件基于 Hypervisor 1.14.x 的计算机迁移到采用 Hypervisor 1.13.1 的计算机。

primary# ldm migrate ldg0 target-host
Target Password:
API group 0x11d v1.0 is not supported in the version of the firmware
running on the target machine.
Domain ldg0 is using features of the system firmware that
are not supported in the version of the firmware running on
the target machine.

    此问题影响以下实时迁移:

  • 对于基于 SPARC T4 的系统,在从运行固件版本 8.7.x 的系统迁移到运行的固件版本为 8.5.x 或更低版本的系统时,会发生此故障。

  • 对于基于 SPARC T5 的系统及使用 9.x 固件的其他系统,在从运行固件版本 9.4.x 的系统迁移到运行的固件版本为 9.2.1.c 或更低版本的系统时,会发生此故障。


注 - 由于相关的错误 20612716,在固件有 Hypervisor 1.14.x 的任何系统实时迁移到固件有 Hypervisor 1.13.x 的任何系统时,应采用此解决方法:
  • 从运行固件版本 8.7.x 的系统迁移到运行的固件版本为 8.6.x 或更低版本的系统

  • 从运行固件版本 9.4.x 的系统迁移到运行的固件版本为 9.3.x 或更低版本的系统


解决方法:要避免出现此问题,请在被迁移的域上将以下行添加到 /etc/system 文件中:

set retained_mem_already_checked=1

有关正确创建或更新 /etc/system 属性值的信息,请参见Oracle VM Server for SPARC 3.2 管理指南 中的更新 /etc/system 文件中的属性值

然后,重新引导域并重试迁移。

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

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

解决方法:无。

无法执行对使用 iSCSI 设备的来宾域的实时迁移

错误号 19163498 和 16585085:使用 iSCSI 设备的逻辑域无法使用实时迁移。

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

错误号 18289196:在 SPARC 系统上,Oracle VM Server for SPARC 域中正在运行的内核区域将阻止实时迁移运行一个或多个“向下修订”组件的来宾域。将显示以下错误消息:

Live migration failed because Kernel Zones are active.
Stop Kernel Zones and retry.

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

  • 停止运行该内核区域。

    # zoneadm -z zonename shutdown
  • 暂停该内核区域。

    # zoneadm -z zonename suspend

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

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

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

虚拟网络挂起阻止了域迁移

错误号 17191488:当尝试将域从 SPARC T5-8 迁移到 SPARC T4-4 系统时,会发生以下错误:

primary# ldm migrate ldg1 system2
Target Password:
Timeout waiting for domain ldg1 to suspend
Domain Migration of LDom ldg1 failed

解决方法:要避免此问题,请设置 extended-mapin-space=on


注 - 如果 domain-nameprimary,则此命令会启动延迟重新配置。在所有其他情况下,在执行此命令之前请停止域。
primary# ldm set-domain extended-mapin-space=on domain-name

误允许将域从运行系统固件 8.3 的 SPARC T4 系统迁移到 SPARC T5、SPARC M5 或 SPARC M6 系统

错误号 17027275:不应允许将域从运行系统固件 8.3 的 SPARC T4 系统迁移到 SPARC T5、SPARC M5 或 SPARC M6 系统。虽然迁移会成功,但是后续的内存 DR 操作会导致出现紧急情况。

解决方法:将 SPARC T4 系统上的系统固件更新到版本 8.4。请参见来宾域在 lgrp_lineage_add(mutex_enter: bad mutex, lp=10351178) 处出现紧急情况的解决方法。

当从 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 命令不会报告失败。

解决方法:无。

具有 HIO 虚拟网络且 cpu-arch=generic 的来宾域迁移发生超时并一直等待该域暂停

错误号 15825538:在配置有混合网络 I/O 接口 (mode=hybrid) 且启用了跨 CPU 迁移 (cpu-arch=generic) 的逻辑域上,如果执行安全实时迁移 (ldm migrate),该迁移可能超时并使该域处于暂停状态。

恢复:重新启动该逻辑域。

解决方法:进行安全的跨 CPU 实时迁移时不要使用混合 I/O 虚拟网络设备。

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

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

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

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

Oracle Solaris 10:对包含混合 I/O 网络设备的来宾域解除绑定或进行迁移时,primary 域或来宾域出现紧急情况

错误号 15803617:在解除绑定或实时迁移操作过程中,如果域配置有混合 I/O 虚拟网络设备,则 primary 域或活动的来宾域可能会出现紧急情况。

恢复:重新启动受影响的域。

解决方法:不使用混合 I/O 虚拟网络设备。

取消迁移后,在目标系统上运行的 ldm 命令不响应

错误号 15776752:如果取消实时迁移,在目标上创建的域实例的内存内容必须由虚拟机管理程序“清理”。此清理过程是出于安全原因而执行的,必须先完成该过程,然后内存才能返回到可用内存池。执行此清理时,ldm 命令变为不响应。因此,Logical Domains Manager 看起来处于挂起状态。

恢复:必须等待此清理请求完成,然后才能尝试运行其他 ldm 命令。此过程可能要花费较长时间。例如,具有 500 GB 内存的来宾域在 SPARC T4 服务器上可能最多花费 7 分钟完成此过程,在 SPARC T3 服务器上可能最多花费 25 分钟完成此过程。

在迁移到 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 执行的任何记帐都是正确的。

在 SPARC T4-4 系统上迁移内存非常大的域会导致目标系统上的域出现紧急情况

错误号 15731303:避免迁移具有 500 GB 以上内存的域。使用 ldm list -o mem 命令查看域的内存配置。如果一些内存配置具有多个内存块并且这些内存块总和超过 500 GB,则这些内存配置可能会出现紧急情况,并产生类似下面的堆栈:

panic[cpu21]/thread=2a100a5dca0:
BAD TRAP: type=30 rp=2a100a5c930 addr=6f696e740a232000 mmu_fsr=10009

sched:data access exception: MMU sfsr=10009: Data or instruction address
out of range context 0x1

pid=0, pc=0x1076e2c, sp=0x2a100a5c1d1, tstate=0x4480001607, context=0x0
g1-g7: 80000001, 0, 80a5dca0, 0, 0, 0, 2a100a5dca0

000002a100a5c650 unix:die+9c (30, 2a100a5c930, 6f696e740a232000, 10009,
2a100a5c710, 10000)
000002a100a5c730 unix:trap+75c (2a100a5c930, 0, 0, 10009, 30027b44000,
2a100a5dca0)
000002a100a5c880 unix:ktl0+64 (7022d6dba40, 0, 1, 2, 2, 18a8800)
000002a100a5c9d0 unix:page_trylock+38 (6f696e740a232020, 1, 6f69639927eda164,
7022d6dba40, 13, 1913800)
000002a100a5ca80 unix:page_trylock_cons+c (6f696e740a232020, 1, 1, 5,
7000e697c00, 6f696e740a232020)
000002a100a5cb30 unix:page_get_mnode_freelist+19c (701ee696d00, 12, 1, 0, 19, 3)
000002a100a5cc80 unix:page_get_cachelist+318 (12, 1849fe0, ffffffffffffffff, 3,
0, 1)
000002a100a5cd70 unix:page_create_va+284 (192aec0, 300ddbc6000, 0, 0,
2a100a5cf00, 300ddbc6000)
000002a100a5ce50 unix:segkmem_page_create+84 (18a8400, 2000, 1, 198e0d0, 1000,
11)
000002a100a5cf60 unix:segkmem_xalloc+b0 (30000002d98, 0, 2000, 300ddbc6000, 0,
107e290)
000002a100a5d020 unix:segkmem_alloc_vn+c0 (30000002d98, 2000, 107e000, 198e0d0,
30000000000, 18a8800)
000002a100a5d0e0 genunix:vmem_xalloc+5c8 (30000004000, 2000, 0, 0, 80000, 0)
000002a100a5d260 genunix:vmem_alloc+1d4 (30000004000, 2000, 1, 2000,
30000004020, 1)
000002a100a5d320 genunix:kmem_slab_create+44 (30000056008, 1, 300ddbc4000,
18a6840, 30000056200, 30000004000)
000002a100a5d3f0 genunix:kmem_slab_alloc+30 (30000056008, 1, ffffffffffffffff,
0, 300000560e0, 30000056148)
000002a100a5d4a0 genunix:kmem_cache_alloc+2dc (30000056008, 1, 0, b9,
fffffffffffffffe, 2006)
000002a100a5d550 genunix:kmem_cpucache_magazine_alloc+64 (3000245a740,
3000245a008, 7, 6028f283750, 3000245a1d8, 193a880)
000002a100a5d600 genunix:kmem_cache_free+180 (3000245a008, 6028f2901c0, 7, 7,
7, 3000245a740)
000002a100a5d6b0 ldc:vio_destroy_mblks+c0 (6028efe8988, 800, 0, 200, 19de0c0, 0)
000002a100a5d760 ldc:vio_destroy_multipools+30 (6028f1542b0, 2a100a5d8c8, 40,
0, 10, 30000282240)
000002a100a5d810 vnet:vgen_unmap_rx_dring+18 (6028f154040, 0, 6028f1a3cc0, a00,
200, 6028f1abc00)
000002a100a5d8d0 vnet:vgen_process_reset+254 (1, 6028f154048, 6028f154068,
6028f154060, 6028f154050, 6028f154058)
000002a100a5d9b0 genunix:taskq_thread+3b8 (6028ed73908, 6028ed738a0, 18a6840,
6028ed738d2, e4f746ec17d8, 6028ed738d4)

解决方法:避免迁移具有 500 GB 以上内存的域。

迁移包含混合 I/O 和虚拟 I/O 虚拟网络设备的来宾域时,nxge 出现紧急情况

错误号 15710957:如果高负载的来宾域具有混合 I/O 配置并且您尝试迁移该域,nxge 可能会出现紧急情况。

解决方法:将以下行添加到 primary 域和作为该域的混合 I/O 配置一部分的任何服务域中的 /etc/system 文件:

set vsw:vsw_hio_max_cleanup_retries = 0x200

迁移过程中丢失共享 NFS 资源时所有 ldm 命令挂起

错误号 15708982:已启动的或正在进行中的迁移,或任何 ldm 命令永远挂起。当要迁移的域使用了来自其他系统的共享文件系统,而该文件系统已不再共享时,会出现此情况。

解决方法:使共享文件系统可以重新访问。

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

错误号 15701865:如果尝试对依赖于目标计算机上的非活动域的域进行实时迁移,ldmd 守护进程将发生故障并具有分段故障,并且目标计算机上的域将重新启动。虽然仍可以执行迁移,但将不是实时迁移。

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

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

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

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

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

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

当系统 MAC 地址与其他 MAC 地址发生冲突时,不报告迁移失败原因

错误号 15699763:如果域中包含重复的 MAC 地址,则无法迁移该域。通常,如果迁移由于此原因失败,失败消息会显示重复的 MAC 地址。但在极少数情况下,此失败消息可能不会报告重复的 MAC 地址。

# ldm migrate ldg2 system2
Target Password:
Domain Migration of LDom ldg2 failed

解决方法:确保目标计算机上的 MAC 地址是唯一的。

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

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

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

解决方法:无。

迁移启用了默认 DRM 策略的域导致为目标域指定所有可用的 CPU

错误号 15655513:在迁移处于活动状态的域之后,迁移后的域中的 CPU 利用率可能会在短时间内显著提高。如果在迁移时,对于该域存在有效的动态资源管理 (Dynamic Resource Managment, DRM) 策略,Logical Domains Manager 可能会开始添加 CPU。特别是,如果在添加策略时未指定 vcpu-maxattack 属性,则默认值 unlimited 会导致将目标计算机中所有未绑定的 CPU 添加到迁移后的域中。

恢复:没有必要执行恢复。当 CPU 利用率下降到低于 DRM 策略所指定的上限之后,Logical Domains Manager 会自动删除 CPU。

在取消迁移之后,内存 DR 处于禁用状态

错误号 15646293:在执行迁移操作过程中,暂停 Oracle Solaris 10 9/10 域之后,内存动态重新配置 (Dynamic Reconfiguration, DR) 会被禁用。此操作不仅在迁移成功时发生,在取消迁移后也会发生(尽管域仍保留在源计算机上)。

当目标 OS 不支持对加密单元执行 DR 时,具有 MAU 的迁移域仅包含一个 CPU

错误号 15606220:从 Logical Domains 1.3 发行版开始,即使域绑定了一个或多个加密单元,也可能会对该域进行迁移。

    在以下情况下,在完成迁移后,目标计算机上将仅包含一个 CPU:

  • 目标计算机运行 Logical Domains 1.2

  • 目标计算机上的控制域运行的 Oracle Solaris OS 版本不支持对加密单元执行 DR

  • 要迁移的域中包含加密单元

在完成迁移之后,目标域将成功恢复而且将正常工作,但是将处于降级状态(仅包含一个 CPU)。

解决方法:在迁移之前,从运行 Logical Domains 1.3 的源计算机中删除加密单元。

    缓解:要避免出现此问题,请执行以下的一个或两个步骤:

  • 在目标计算机上安装最新的 Oracle VM Server for SPARC 软件。

  • 在目标计算机的控制域上安装 ID 为 142245-01 的修补程序,或者升级到 Oracle Solaris 10 10/09 OS 或更高版本。

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

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

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

当目标上的 vdsdev 具有不同的后端时迁移不失败

错误号 15523133:如果目标计算机上的虚拟磁盘不指向源计算机上所使用的同一个磁盘后端,则迁移后的域无法访问使用该磁盘后端的虚拟磁盘。在访问域上的虚拟磁盘时,可能会挂起。

目前,Logical Domains Manager 仅检查源计算机上与目标计算机上的虚拟磁盘卷名称是否相匹配。在这种情况下,如果磁盘后端不匹配,不会显示错误消息。

解决方法:在配置目标域以接收迁移的域时,确保磁盘卷 (vdsdev) 与源域上使用的磁盘后端匹配。

    恢复:如果发现目标计算机上的虚拟磁盘设备指向不正确的磁盘后端,请执行以下操作之一:

  • 迁移域并修复 vdsdev

    1. 将该域迁移回源计算机。

    2. 修复目标计算机上的 vdsdev,使其指向正确的磁盘后端。

    3. 将该域再次迁移到目标计算机。

  • 停止并解除绑定目标上的域,然后修复 vdsdev。如果 OS 支持虚拟 I/O 动态重新配置,而且该域未在使用不正确的虚拟磁盘(即,虚拟磁盘不是引导磁盘而且未卸载),请执行以下操作:

    1. 使用 ldm rm-vdisk 命令删除该磁盘。

    2. 修复 vdsdev

    3. 使用 ldm add-vdisk 命令再次添加该虚拟磁盘。

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

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

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

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

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

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

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

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

# svcadm restart vntsd

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