错误号 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 或更低版本的系统时,会发生此故障。
从运行固件版本 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
错误号 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 或更低版本的系统时,会发生此故障。
从运行固件版本 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 操作可能会增加来宾域迁移的难度。
解决方法:无。
错误号 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
错误号 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。
primary# ldm set-domain extended-mapin-space=on domain-name
错误号 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) 处出现紧急情况的解决方法。
错误号 16864417:当尝试在 SPARC T5、SPARC M5 或 SPARC M6 计算机与 UltraSPARC T2 或 SPARC T3 计算机之间进行迁移时,ldm migrate -n 命令不会报告失败。
解决方法:无。
错误号 15825538:在配置有混合网络 I/O 接口 (mode=hybrid) 且启用了跨 CPU 迁移 (cpu-arch=generic) 的逻辑域上,如果执行安全实时迁移 (ldm migrate),该迁移可能超时并使该域处于暂停状态。
恢复:重新启动该逻辑域。
解决方法:进行安全的跨 CPU 实时迁移时不要使用混合 I/O 虚拟网络设备。
错误号 15819714:在极少情况下,ldm list -o status 命令在用于观察控制域上的迁移时报告虚假的完成百分比。
此问题不影响正在迁移的域,也不影响源或目标控制域上的 ldmd 守护进程。
解决方法:在参与迁移以观察进度的其他控制域上运行 ldm list -o status 命令。
错误号 15803617:在解除绑定或实时迁移操作过程中,如果域配置有混合 I/O 虚拟网络设备,则 primary 域或活动的来宾域可能会出现紧急情况。
恢复:重新启动受影响的域。
解决方法:不使用混合 I/O 虚拟网络设备。
错误号 15776752:如果取消实时迁移,在目标上创建的域实例的内存内容必须由虚拟机管理程序“清理”。此清理过程是出于安全原因而执行的,必须先完成该过程,然后内存才能返回到可用内存池。执行此清理时,ldm 命令变为不响应。因此,Logical Domains Manager 看起来处于挂起状态。
恢复:必须等待此清理请求完成,然后才能尝试运行其他 ldm 命令。此过程可能要花费较长时间。例如,具有 500 GB 内存的来宾域在 SPARC T4 服务器上可能最多花费 7 分钟完成此过程,在 SPARC T3 服务器上可能最多花费 25 分钟完成此过程。
错误号 15776123:将来宾域迁移到 SPARC T4 系统时,如果对该域运行 cputrack 命令,则迁移后目标计算机上的来宾域可能会出现紧急情况。
解决方法:在将来宾域迁移到 SPARC T4 系统期间,不要运行 cputrack 命令。
错误号 15775055:在具有不同 CPU 频率的两台计算机之间迁移域后,ldm list 命令报告的运行时间可能不正确。出现这种不正确结果是因为运行时间是相对于运行该域的计算机的 STICK 频率来计算的。如果源计算机和目标计算机的 STICK 频率不同,运行时间的度量就会显得不正确。
此问题仅适用于 UltraSPARC T2、UltraSPARC T2 Plus 和 SPARC T3 系统。
来宾域自身报告和显示的运行时间是正确的。此外,在来宾域中 Oracle Solaris OS 执行的任何记帐都是正确的。
错误号 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 以上内存的域。
错误号 15710957:如果高负载的来宾域具有混合 I/O 配置并且您尝试迁移该域,nxge 可能会出现紧急情况。
解决方法:将以下行添加到 primary 域和作为该域的混合 I/O 配置一部分的任何服务域中的 /etc/system 文件:
set vsw:vsw_hio_max_cleanup_retries = 0x200
错误号 15708982:已启动的或正在进行中的迁移,或任何 ldm 命令永远挂起。当要迁移的域使用了来自其他系统的共享文件系统,而该文件系统已不再共享时,会出现此情况。
解决方法:使共享文件系统可以重新访问。
错误号 15701865:如果尝试对依赖于目标计算机上的非活动域的域进行实时迁移,ldmd 守护进程将发生故障并具有分段故障,并且目标计算机上的域将重新启动。虽然仍可以执行迁移,但将不是实时迁移。
解决方法:尝试实时迁移之前,执行以下操作之一:
删除与要迁移的域的来宾依赖关系。
启动目标计算机上的主域。
错误号 15701853:在 DRM 策略生效时执行域迁移后,如果 DRM 策略过期或将其从迁移后的域中删除,DRM 将无法为该域恢复原始数量的虚拟 CPU。
解决方法:如果在 DRM 策略有效时迁移域,并且随后 DRM 策略过期或被删除,请重置虚拟 CPU 的数量。使用 ldm set-vcpu 命令在域中将虚拟 CPU 的数量设置为原始值。
错误号 15699763:如果域中包含重复的 MAC 地址,则无法迁移该域。通常,如果迁移由于此原因失败,失败消息会显示重复的 MAC 地址。但在极少数情况下,此失败消息可能不会报告重复的 MAC 地址。
# ldm migrate ldg2 system2 Target Password: Domain Migration of LDom ldg2 failed
解决方法:确保目标计算机上的 MAC 地址是唯一的。
错误号 15696986:如果在“相反方向”上同时发出两个 ldm migrate 命令,这两个命令可能会挂起,永不会完成。如果启动了从计算机 A 到计算机 B 的迁移,同时又启动了从计算机 B 到计算机 A 的迁移,就会出现相反方向操作。
即使迁移过程是使用 –n 选项启动的模拟运行,也会导致挂起。出现此问题时,所有其他 ldm 命令均可能挂起。
解决方法:无。
错误号 15655513:在迁移处于活动状态的域之后,迁移后的域中的 CPU 利用率可能会在短时间内显著提高。如果在迁移时,对于该域存在有效的动态资源管理 (Dynamic Resource Managment, DRM) 策略,Logical Domains Manager 可能会开始添加 CPU。特别是,如果在添加策略时未指定 vcpu-max 和 attack 属性,则默认值 unlimited 会导致将目标计算机中所有未绑定的 CPU 添加到迁移后的域中。
恢复:没有必要执行恢复。当 CPU 利用率下降到低于 DRM 策略所指定的上限之后,Logical Domains Manager 会自动删除 CPU。
错误号 15646293:在执行迁移操作过程中,暂停 Oracle Solaris 10 9/10 域之后,内存动态重新配置 (Dynamic Reconfiguration, DR) 会被禁用。此操作不仅在迁移成功时发生,在取消迁移后也会发生(尽管域仍保留在源计算机上)。
错误号 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 命令手动设置所需的属性。
错误号 15523133:如果目标计算机上的虚拟磁盘不指向源计算机上所使用的同一个磁盘后端,则迁移后的域无法访问使用该磁盘后端的虚拟磁盘。在访问域上的虚拟磁盘时,可能会挂起。
目前,Logical Domains Manager 仅检查源计算机上与目标计算机上的虚拟磁盘卷名称是否相匹配。在这种情况下,如果磁盘后端不匹配,不会显示错误消息。
解决方法:在配置目标域以接收迁移的域时,确保磁盘卷 (vdsdev) 与源域上使用的磁盘后端匹配。
恢复:如果发现目标计算机上的虚拟磁盘设备指向不正确的磁盘后端,请执行以下操作之一:
迁移域并修复 vdsdev。
将该域迁移回源计算机。
修复目标计算机上的 vdsdev,使其指向正确的磁盘后端。
将该域再次迁移到目标计算机。
停止并解除绑定目标上的域,然后修复 vdsdev。如果 OS 支持虚拟 I/O 动态重新配置,而且该域未在使用不正确的虚拟磁盘(即,虚拟磁盘不是引导磁盘而且未卸载),请执行以下操作:
使用 ldm rm-vdisk 命令删除该磁盘。
修复 vdsdev。
使用 ldm add-vdisk 命令再次添加该虚拟磁盘。
错误号 15523120:在某些情况下,迁移会失败,ldmd 会报告它无法绑定源域所需的内存。即使目标计算机上的可用内存总量大于源域正在使用的内存量,也会出现此情况。
出现这种故障的原因是,迁移正由源域使用的特定内存范围需要目标上也有一致的可用内存范围。如果对于源域中的任何内存范围没有找到此类一致的内存范围,迁移将无法继续。请参见Oracle VM Server for SPARC 3.2 管理指南 中的内存的迁移要求。
恢复:遇到这种情况时,可以修改目标计算机上的内存使用情况来迁移域。为此,请解除绑定目标上任何已绑定的或处于活动状态的逻辑域。
使用 ldm list-devices -a mem 命令可以查看可用的内存及其使用方式。您可能还需要减少指定给另一个域的内存量。
错误号 15513998:有时,在迁移域之后,无法连接到该域的控制台。
解决方法:重新启动 vntsd SMF 服务以允许连接到控制台:
# svcadm restart vntsd