当您尝试迁移处于活动状态的域时,应考虑到对于要迁移的域、源计算机和目标计算机有某些要求和限制。有关更多信息,请参见域迁移限制。
迁移过程中,域会“丢失时间”。要缓解这个时间丢失问题,请将要迁移的域与外部时间源(如网络时间协议 (Network Time Protocol, NTP) 服务器)同步。如果将域配置为 NTP 客户机,则在迁移完成后,域的日期和时间会很快得以更正。
要将域配置为 Oracle Solaris 10 NTP 客户机,请参见System Administration Guide: Network Services 中的Managing Network Time Protocol (Tasks)。要将域配置为 Oracle Solaris 11 NTP 客户机,请参见Introduction to Oracle Solaris 11 Network Services 中的Managing Network Time Protocol (Tasks)。
下面是执行迁移时对 CPU 的要求和限制:
目标计算机必须具有足够的可用虚拟 CPU,以适应要迁移的域所使用的虚拟 CPU 数目。
在来宾域上设置 cpu-arch 属性允许您在具有不同处理器类型的系统之间迁移域。请注意,来宾域必须处于绑定或非活动状态才能更改 cpu-arch 值。
受支持的 cpu-arch 属性值如下:
native 使用特定于 CPU 的硬件功能,以允许来宾域仅在具有相同 CPU 类型的平台之间迁移。native 是默认值。
migration-class1 是适用于 SPARC T4 以后的 SPARC 平台的跨 CPU 迁移系列。这些平台支持在迁移中或迁移后进行硬件加密,以使受支持的 CPU 具有下界。
该值与 UltraSPARC T2、UltraSPARC T2 Plus、SPARC T3 平台或 Fujitsu M10 平台不兼容。
sparc64-class1 是适用于 SPARC64 平台的跨 CPU 迁移系列。由于 sparc64-class1 值基于 SPARC64 指令,因此,该值的指令数比 generic 值多。这样,与 generic 值相比,该值对性能不会产生影响。
该值仅与 Fujitsu M10 服务器兼容。
generic 会使用由所有平台使用的最低通用 CPU 硬件功能,从而使来宾域能够执行与 CPU 类型无关的迁移。
以下 isainfo -v 命令显示当 cpu-arch=generic 和 cpu-arch=migration-class1 时可在系统中使用的指令。
cpu-arch=generic
# isainfo -v 64-bit sparcv9 applications asi_blk_init vis2 vis popc 32-bit sparc applications asi_blk_init vis2 vis popc v8plus div32 mul32
cpu-arch=migration-class1
# isainfo -v 64-bit sparcv9 applications crc32c cbcond pause mont mpmul sha512 sha256 sha1 md5 camellia des aes ima hpc vis3 fmaf asi_blk_init vis2 vis popc 32-bit sparc applications crc32c cbcond pause mont mpmul sha512 sha256 sha1 md5 camellia des aes ima hpc vis3 fmaf asi_blk_init vis2 vis popc v8plus div32 mul32
与使用 native 值相比,使用 generic 值可能会导致来宾域性能降低。由于来宾域仅使用在所有支持的 CPU 类型上都可用的通用 CPU 功能,而不使用特定 CPU 的本机硬件功能,所以性能可能会降低。由于不使用这些功能,通过 generic 值可以在使用支持不同功能的 CPU 的系统之间灵活地迁移域。
如果在至少为 SPARC T4 的系统之间迁移域,可以设置 cpu-arch=migration-class1 以提高来宾域性能。虽然使用 generic 值可以改进性能,native 值仍提供来宾域的最佳性能。
当 cpu-arch 属性设置为 native 时,请使用 psrinfo -pv 命令确定处理器类型,如下所示:
# psrinfo -pv The physical processor has 2 virtual processors (0 1) SPARC-T5 (chipid 0, clock 3600 MHz)
请注意,如果 cpu-arch 属性设置为 native 以外的值,则 psrinfo -pv 输出不会显示平台类型。此时,此命令将显示已装入 sun4v-cpu CPU 模块。
# psrinfo -pv The physical processor has 2 cores and 13 virtual processors (0-12) The core has 8 virtual processors (0-7) The core has 5 virtual processors (8-12) sun4v-cpu (chipid 0, clock 3600 MHz)
目标计算机内存要求如下所示:
可用内存足以满足域迁移需求
可用内存必须在兼容布局中可用
每个 SPARC 平台的兼容性要求各不相同。但是,在迁移的域中,必须至少为每个内存块保留相对于最大受支持页面大小的实际地址和物理地址对齐。
使用 pagesize 命令确定目标计算机上支持的最大页面大小。
对于需至少运行 Oracle Solaris 11.3 OS 的来宾域来讲,迁移的域的内存块在迁移期间可能会自动拆分,以便迁移的域能够符合较小的可用内存块。内存块只能在与最大页面大小对齐的边界处拆分。
操作系统、固件或平台的其他内存布局要求在指定的迁移期间可能会防止内存块拆分。即使域的总可用内存量足够,此情况仍可能导致迁移失败。
无法迁移可以直接访问物理设备的域。例如,您无法迁移 I/O 域。但是,可以迁移与物理设备关联的虚拟设备。
有关更多信息,请参见PCIe 端点设备的迁移要求和PCIe SR-IOV 虚拟功能的迁移要求。
要迁移的域所使用的全部虚拟 I/O 服务必须在目标计算机上可用。换而言之,必须满足下列条件:
要迁移的域中使用的每个虚拟磁盘后端必须在目标计算机上定义。此共享存储可以是 SAN 磁盘,也可以是可通过 NFS 或 iSCSI 协议使用的存储。您定义的虚拟磁盘后端必须与源计算机上的后端具有相同的卷名和服务名。源计算机和目标计算机上指向后端的路径可能会有所不同,但它们必须指向同一个后端。
注意 - 即使源计算机和目标计算机上指向虚拟磁盘后端的路径不是指同一个存储,迁移也将成功。但是,目标计算机上域的行为将无法预测,该域可能将无法使用。为了纠正这种情况,请停止该域,更正配置问题,然后重新启动该域。如果不执行这些步骤,则该域可能处于不一致状态。 |
要迁移的域中的每个虚拟网络设备在目标计算机上必须具有相应的虚拟网络交换机。每个虚拟网络交换机必须与源计算机上连有该设备的虚拟网络交换机同名。
例如,如果要迁移的域中的 vnet0 连接到名为 switch-y 的虚拟交换机服务,则目标计算机上的域必须提供名为 switch-y 的虚拟交换机服务。
例如,您可能希望确保该域能够访问正确的网络子网。您还可能希望确保网关、路由器或防火墙正确配置,以便该域能够从目标计算机访问所需的远程系统。
要迁移的域所使用的自动分配范围内的 MAC 地址必须可在目标计算机上使用。
虚拟控制台集中器 (vcc) 服务必须在目标计算机上存在,并至少具有一个空闲端口。迁移过程中会忽略显式控制台约束。已迁移域的控制台将使用已迁移域的名称作为控制台组并使用控制域中任何可用 vcc 设备上的任何可用端口来创建。如果控制域中没有可用端口,则控制台会通过服务域中某个可用 vcc 设备上的某个可用端口来创建。如果与默认组名冲突,则迁移将会失败。
必须在目标计算机上定义要迁移的域所用的每个虚拟 SAN。
无法对配置有 PCIe 端点设备的 I/O 域执行域迁移。
有关直接 I/O 功能的信息,请参见通过分配 PCIe 端点设备创建 I/O 域。
您不能对配置有 PCIe SR-IOV 虚拟功能的 I/O 域执行域迁移。
有关 SR-IOV 功能的信息,请参见Chapter 7, 使用 PCIe SR-IOV 虚拟功能创建 I/O 域。
可以迁移使用 NIU 混合 I/O 资源的域。指定 NIU 混合 I/O 资源的约束不是域的硬性要求。如果将这样的域迁移到不具有可用 NIU 资源的计算机,则该约束将保留,但不会得到满足。
请注意,NIU 混合 I/O 功能已过时,而是使用 SR-IOV。Oracle VM Server for SPARC 3.3 是包括此功能的最新软件发行版。
在具有加密单元的平台上,如果某个具有绑定加密单元的来宾域运行的是支持加密单元动态重新配置 (dynamic reconfiguration, DR) 的操作系统,则可以迁移该来宾域。
开始迁移时,Logical Domains Manager 会确定要迁移的域是否支持加密单元 DR。如果支持,Logical Domains Manager 会尝试从该域中删除所有加密单元。迁移完成后,会将加密单元重新添加到已迁移的域。
源计算机或目标计算机上任何活动的延迟重新配置操作都会阻止迁移启动。不允许在迁移时启动延迟重新配置操作。
只要在源计算机或目标计算机上启用了电源管理 (power management, PM) 弹性策略,就可以执行实时迁移。
在某台计算机上运行迁移时,如果执行的任何操作可能会导致修改正在迁移的域的状态或配置,则该操作将被阻塞。对该域本身的所有操作以及对计算机上其他域的绑定或停止等操作都会被阻止。
执行域迁移需要在 Logical Domains Manager 和要迁移的域中运行的 Oracle Solaris OS 之间进行协调。如果要迁移的域在 OpenBoot 或内核调试器 (kmdb) 中运行,则这种协调是不可能的。因此,迁移尝试失败。
要迁移的域在 OpenBoot 中运行时,将显示以下消息:
primary# ldm migrate ldg1 system2 Migration is not supported while the domain ldg1 is in the 'OpenBoot Running' state Domain Migration of LDom ldg1 failed
要迁移的域在内核调试器 (kmdb) 中运行时,将显示以下消息:
primary# ldm migrate ldg1 system2 Migration is not supported while the domain ldg1 is in the 'Solaris debugging' state Domain Migration of LDom ldg1 failed