可以使用 zonecfg 和 zoneadm 命令将现有的非全局区域从一个系统迁移到另一个系统。需要停止区域并使其与当前主机分离。zonepath 将移动到它所附加的目标主机。
以下要求适用于 lx 标记区域迁移:
目标系统上的全局区域必须与原始主机运行相同的 Solaris 发行版。
为确保区域可以正常运行,目标系统上所需安装的操作系统软件包和修补程序必须与原始主机上安装的软件包和修补程序具有相同的版本。
原始主机和目标系统上的标记必须相同。
目标系统的处理器类型必须为以下受支持的 i686 处理器类型之一:
zoneadm detach 进程用于创建在其他系统上附加区域所需的信息。zoneadm attach 进程用于检验目标计算机是否具有托管区域所需的正确配置。由于可以通过多种方式来使 zonepath 在新主机上可用,因此 zonepath 从一个系统到另一个系统的实际移动是由全局管理员执行的手动进程。
在附加到新系统时,区域处于已安装状态。
成为超级用户或承担主管理员角色。
有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
停止要迁移的区域,在此过程中为 lx-zone。
host1# zoneadm -z lx-zone halt |
分离该区域。
host1# zoneadm -z lx-zone detach |
分离的区域现在处于已配置状态。
将 lx-zone 的 zonepath 移至新主机。
有关更多信息,请参见如何将 zonepath 移动到新主机。
在新主机上,对该区域进行配置。
host2# zonecfg -z lx-zone |
您会看到以下系统消息:
lx-zone: No such zone configured Use 'create' to begin configuring a new zone. |
要在新主机上创建区域 lx-zone,请使用带有 -a 选项以及新主机上的 zonepath 的 zonecfg 命令。
zonecfg:lx-zone> create -a /export/zones/lx-zone |
查看配置。
zonecfg:lx-zone> info zonename: lx-zone zonepath: /export/zones/lx-zone brand: lx autoboot: false bootargs: pool: limitpriv: net: address: 192.168.0.90 physical: bge0 |
(可选)对配置进行所需的任何调整。
例如,新主机上的网络物理设备可能有所不同,或者属于配置组成部分的设备在新主机上可能具有不同的名称。
zonecfg:lx-zone> select net physical=bge0 zonecfg:lx-zone:net> set physical=e1000g0 zonecfg:lx-zone:net> end |
提交配置并退出。
zonecfg:lx-zone> commit zonecfg:lx-zone> exit |
在新主机上附加区域。
创建 zonepath 的归档的方法有很多种。例如,可以使用cpio(1) 和 pax(1) 手册页中所述的 cpio 或 pax 命令。
将归档传送至新主机的方法也有很多种。用于将 zonepath 从源主机传送到目标主机的机制取决于本地配置。在某些情况下(如 SAN),zonepath 数据实际上可能未移动。可能只需对 SAN 进行重新配置,便可在新主机上显示 zonepath。在其他情况下,可能要将 zonepath 写入磁带,再将磁带邮寄至新站点。
由于上述原因,此步骤不能自动执行。系统管理员必须选择最合适的方法来将 zonepath 移动到新主机。
成为超级用户或承担主管理员角色。
有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
将 zonepath 移动到新主机。您可以使用本过程中介绍的方法,也可以使用您选择的其他方法。
在 host1 上创建 zonepath 的 tar 文件,并使用 sftp 命令将其传送到 host2。
host1# cd /export/zones host1# tar cf lx-zone.tar lx-zone host1# sftp host2 Connecting to host2... Password: sftp> cd /export/zones sftp> put lx-zone.tar Uploading lx-zone.tar to /export/zones/lx-zone.tar sftp> quit |
在 host2上,解压缩 tar 文件。
host2# cd /export/zones host2# tar xf lx-zone.tar |
有关以下问题的疑难解答信息,请参见使用 zoneadm attach 操作解决问题:
修补程序和软件包不同步。
操作系统发行版不匹配。
用户必须验证新计算机中的处理器类型是否受支持。有关更多信息,请参见关于迁移 lx 标记区域。
可以在将区域移动到新计算机之前使用“不执行”选项 -n 执行试验。
zoneadm detach 子命令与 -n 选项结合使用,可在运行的区域上生成清单,而不实际分离该区域。源系统中区域的状态不会改变。区域清单会被发送到 stdout。全局管理员可以将此输出定向到某一文件,或将此输出传输到远程命令以便立即在目标主机上进行验证。zoneadm attach 子命令与 -n 选项结合使用,可读取该清单并检验目标计算机是否具有托管区域所需的正确配置,而不实际执行附加。
在执行试验性附加之前,不必在新主机上配置目标系统中的区域。
要执行此过程,您必须是全局区域中的全局管理员。
成为超级用户或承担主管理员角色。
有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
使用以下方法之一。
在名为 lx-zone 的源主机上生成清单,并将输出传输到将立即验证目标主机的远程命令:
global# zoneadm -z lx-zone detach -n | ssh remotehost zoneadm attach -n - |
行尾的连字符 (—) 为路径指定 stdin。
在名为 lx-zone 的源主机上生成清单,并将输出定向到某一文件:
global# zoneadm -z lx-zone detach -n |
如如何将 zonepath 移动到新主机中所述将清单复制到新主机系统,并执行验证:
global# zoneadm attach -n path_to_manifest |
路径可以是 —,以便指定 stdin。