跳过导航链接 | |
退出打印视图 | |
系统管理指南:Oracle Solaris Containers-资源管理和 Oracle Solaris Zones Oracle Solaris 10 1/13 Information Library (简体中文) |
15. Solaris Management Console 中的资源控制功能
将附加时更新 (Update on Attach) 用作修补解决方案
24. Oracle Solaris 10 9/10:将物理 Oracle Solaris 系统迁移到区域中(任务)
25. 关于安装了区域的 Oracle Solaris 系统上的软件包和修补程序(概述)
26. 在安装了区域的 Oracle Solaris 系统上添加和删除软件包和修补程序(任务)
27. Oracle Solaris Zones 管理(概述)
28. Oracle Solaris Zones 管理(任务)
29. 升级安装了非全局区域的 Oracle Solaris 10 系统
30. 各种 Oracle Solaris Zones 问题的故障排除
34. 关于安装、引导、停止、克隆和卸载 lx 标记区域(概述)
请注意,使用 Solaris 10 5/08 发行版时,可以在将区域实际移动到其他计算机之前执行区域迁移试验。有关更多信息,请参见Solaris 10 5/08:关于在执行迁移之前验证区域迁移。
自 Solaris 10 11/06 发行版以来,本节添加了新信息。
zonecfg 和 zoneadm 命令可用于将现有的非全局区域从一个系统迁移到另一个系统。需要停止区域并使其与当前主机分离。zonepath 将移动到它所附加的目标主机。
以下限制适用于区域迁移:
目标系统上的全局区域运行的 Oracle Solaris 发行版必须等于或高于原始源主机。
为确保区域可以正常运行,目标系统上所需安装的以下操作系统软件包和修补程序必须与原始主机上安装的软件包和修补程序具有相同的版本。
在 inherit-pkg-dir 资源下提供文件的软件包
SUNW_PKG_ALLZONES=true 的软件包
其他软件包和修补程序(例如用于第三方产品的软件包和修补程序)可以有所不同。
Solaris 10 10/08:如果新主机中与区域相关的软件包及其关联的修补程序的版本更新,请使用带有 -u 选项的 zoneadm attach 更新区域内的相应软件包,以匹配新主机。对附加软件的更新可查看将要迁移的区域,并确定必须更新哪些软件包以匹配新主机。仅更新那些软件包。其余软件包和其相关的修补程序会根据的区域的不同而不同。此选项可实现计算机类之间的自动迁移,例如从 sun4u 迁移到 sun4v。
Solaris 10 9/10:如果新主机的软件包及其关联的修补程序的版本更新,使用带有 -U 选项的 zoneadm attach 将更新区域内的相关软件包,以匹配在此主机上新安装的非全局区域中查看的信息。任何在该区域内安装但未在全局区域中安装的软件包均将被忽略并保留原样。此选项可实现计算机类之间的自动迁移,例如从 sun4u 迁移到 sun4v。
Solaris 10 5/09:-b 选项可用于指定在更新之前要从区域中回退的修补程序。
除非使用 -u 选项(该选项可用于在 sun4u 和 sun4v 计算机类之间进行迁移),否则主机和目标系统必须具有相同的计算机体系结构。
Solaris 10 5/09:-b 选项可用于指定在附加过程中要从区域中回退的修补程序(正式或临时诊断/援助 (Interim Diagnostics/Relief, IDR))。可以指定多个 -b 选项。如果任一修补程序由于任何原因无法回退,则 attach 将失败,并且不会回退任何修补程序。
此选项仅适用于使用 SVr4 打包的区域标记。
要检验 Solaris 发行版本和计算机体系结构,请键入:
#uname -m
zoneadm detach 进程用于创建在其他系统上附加区域所需的信息。zoneadm attach 进程用于检验目标计算机是否具有托管区域所需的正确配置。
由于可以通过多种方式来使 zonepath 在新主机上可用,因此 zonepath 从一个系统到另一个系统的实际移动是由全局管理员执行的手动进程。
在附加到新系统时,区域处于已安装状态。
有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的"使用 RBAC 和 Solaris 管理工具(任务列表)"。
host1# zoneadm -z my-zone halt
host1# zoneadm -z my-zone detach
分离的区域现在处于已配置状态。
有关更多信息,请参见如何将 zonepath 移动到新主机。
host2# zonecfg -z my-zone
将显示以下系统消息:
my-zone: No such zone configured Use 'create' to begin configuring a new zone.
zonecfg:my-zone> create -a /export/zones/my-zone
zonecfg:my-zone> info zonename: my-zone zonepath: /export/zones/my-zone autoboot: false pool: inherit-pkg-dir: dir: /lib inherit-pkg-dir: dir: /platform inherit-pkg-dir: dir: /sbin inherit-pkg-dir: dir: /usr net: address: 192.168.0.90 physical: bge0
例如,新主机上的网络物理设备有所不同,或者属于配置组成部分的设备在新主机上可能具有不同的名称。
zonecfg:my-zone> select net physical=bge0 zonecfg:my-zone:net> set physical=e1000g0 zonecfg:my-zone:net> end
zonecfg:my-zone> commit zonecfg:my-zone> exit
host2# zoneadm -z my-zone attach
当发生下列一种或两种情况时,将向系统管理员通知所需执行的操作:
新计算机中不存在所需软件包和修补程序。
计算机之间的软件级别不同。
host2# zoneadm -z my-zone attach -u
提示 - Solaris 10 10/08:如果源系统运行的是较旧版本的 Solaris 系统,分离区域后它可能不会生成正确的软件包列表。要确保在目标上生成正确的软件包列表,必须从 zonepath 中删除 SUNWdetached.xml 文件。删除此文件将造成新软件包列表由目标系统生成。
在 Solaris 10 5/09 及更高发行版中,则不必这样做。
host2# zoneadm -z my-zone attach -U
host2# zoneadm -z my-zone attach -u -b IDR246802-01 -b 123456-08
请注意,可以独立于 -u 或 - U 选项来使用 -b 选项。
host2# zoneadm -z my-zone attach -F
注意 - -F 选项可以在不进行验证的情况下强制执行 attach。这在某些情况下(例如在群集环境中或在执行备份和恢复操作时)很有用,但要求对系统进行托管区域所需的正确配置。不正确的配置以后可能会导致未定义的行为。 |
创建 zonepath 的归档的方法有很多种。例如,可以使用cpio(1) 和 pax(1) 手册页中所述的 cpio 或 pax 命令。
将归档传送至新主机的方法也有很多种。用于将 zonepath 从源主机传送到目标主机的机制取决于本地配置。在某些情况下(如 SAN),zonepath 数据实际上可能未移动。可能只需对 SAN 进行重新配置,便可在新主机上显示 zonepath。在其他情况下,可能要将 zonepath 写入磁带,再将磁带邮寄至新站点。
由于上述原因,此步骤不能自动执行。系统管理员必须选择最合适的方法来将 zonepath 移动到新主机。
有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的"使用 RBAC 和 Solaris 管理工具(任务列表)"。
示例 23-1 使用 tar 命令归档和移动 zonepath
在 host1 上创建 zonepath 的 tar 文件,并使用 sftp 命令将其传送到 host2。
host1# cd /export/zones host1# tar cf my-zone.tar my-zone host1# sftp host2 Connecting to host2... Password: sftp> cd /export/zones sftp> put my-zone.tar Uploading my-zone.tar to /export/zones/my-zone.tar sftp> quit
在 host2上,解压缩 tar 文件。
host2# cd /export/zones host2# tar xf my-zone.tar
故障排除
有关以下问题的疑难解答信息,请参见使用 zoneadm attach 操作解决问题:
修补程序和软件包不同步。
操作系统发行版不匹配。
接下来的步骤
如果已复制数据而未重新配置 SAN,那么即使该区域现在处于已配置状态,zonepath 数据在源主机上也仍然可见。您可以在将数据移动到新主机后从源主机上手动删除 zonepath,也可以将该区域重新附加到源主机,并使用 zoneadm uninstall 命令删除 zonepath。
可以在将区域移动到新计算机之前使用“不执行”选项 -n 执行试验。
zoneadm detach 子命令与 -n 选项结合使用,可在运行的区域上生成清单,而不实际分离该区域。源系统中区域的状态不会改变。区域清单会被发送到 stdout。全局管理员可以将此输出定向到某一文件,或将此输出传输到远程命令以便立即在目标主机上进行验证。zoneadm attach 子命令与 -n 选项结合使用,可读取该清单并检验目标计算机是否具有托管区域所需的正确配置,而不实际执行附加。
在执行试验性附加之前,不必在新主机上配置目标系统中的区域。
要执行此过程,您必须是全局区域中的全局管理员。
有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的"使用 RBAC 和 Solaris 管理工具(任务列表)"。
global# zoneadm -z my-zone detach -n | ssh remotehost zoneadm attach -n -
行尾的连字符 (—) 为路径指定 stdin。
验证结果是源主机屏幕的输出,为 stdout。
global# zoneadm -z my-zone detach -n > filename
如如何将 zonepath 移动到新主机中所述将清单复制到新主机系统,并执行验证:
global# zoneadm attach -n path_to_manifest
路径可以是 —,以便指定 stdin。