系统管理指南:Oracle Solaris Containers-资源管理和 Oracle Solaris Zones

第 37 章 移动和迁移 lx 标记区域(任务)

本章介绍如何:

移动 lx 标记区域

此过程用于通过更改 zonepath 将区域移动到同一系统上的新位置。必须停止该区域。新 zonepath 必须位于本地文件系统中。需要满足资源和属性类型中介绍的标准 zonepath 条件。

Procedure如何移动区域

  1. 成为超级用户或承担主管理员角色。

    《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”介绍了角色。

  2. 停止要移动的区域,在此过程中为 db-zone


    global# zoneadm -z db-zone halt
    
  3. 使用带有 move 子命令的 zoneadm 命令将区域移动到新 zonepath,即 /export/zones/db-zone


    global# zoneadm -z db-zone move /export/zones/db-zone
    
  4. 检验路径。


    global# zoneadm list -iv
      ID NAME             STATUS         PATH                  BRAND      IP
       0 global           running        /                     native     shared
       - lx-zone          installed      /export/home/lx-zone  lx         shared
       - db-zone          installed      /export/zones/db-zone lx         shared

lx 标记区域迁移到其他计算机

关于迁移 lx 标记区域

可以使用 zonecfgzoneadm 命令将现有的非全局区域从一个系统迁移到另一个系统。需要停止区域并使其与当前主机分离。zonepath 将移动到它所附加的目标主机。

以下要求适用于 lx 标记区域迁移:

zoneadm detach 进程用于创建在其他系统上附加区域所需的信息。zoneadm attach 进程用于检验目标计算机是否具有托管区域所需的正确配置。由于可以通过多种方式来使 zonepath 在新主机上可用,因此 zonepath 从一个系统到另一个系统的实际移动是由全局管理员执行的手动进程。

在附加到新系统时,区域处于已安装状态。

Procedure如何迁移 lx 标记区域

  1. 成为超级用户或承担主管理员角色。

    有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. 停止要迁移的区域,在此过程中为 lx-zone


    host1# zoneadm -z lx-zone halt
    
  3. 分离该区域。


    host1# zoneadm -z lx-zone detach
    

    分离的区域现在处于已配置状态。

  4. lx-zonezonepath 移至新主机。

    有关更多信息,请参见如何将 zonepath 移动到新主机

  5. 在新主机上,对该区域进行配置。


    host2# zonecfg -z lx-zone
    

    您会看到以下系统消息:


    lx-zone: No such zone configured
    Use 'create' to begin configuring a new zone.
  6. 要在新主机上创建区域 lx-zone,请使用带有 -a 选项以及新主机上的 zonepathzonecfg 命令。


    zonecfg:lx-zone> create -a /export/zones/lx-zone
    
  7. 查看配置。


    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
  8. (可选)对配置进行所需的任何调整。

    例如,新主机上的网络物理设备可能有所不同,或者属于配置组成部分的设备在新主机上可能具有不同的名称。


    zonecfg:lx-zone> select net physical=bge0
    zonecfg:lx-zone:net> set physical=e1000g0
    zonecfg:lx-zone:net> end
    
  9. 提交配置并退出。


    zonecfg:lx-zone> commit
    zonecfg:lx-zone> exit
    
  10. 在新主机上附加区域。

    • 附加区域,并进行验证检查。


      host2# zoneadm -z lx-zone attach
      

      当发生下列一种或两种情况时,将向系统管理员通知所需执行的操作:

      • 新计算机中不存在所需软件包和修补程序。

      • 计算机之间的软件级别不同。

    • 强制执行附加操作,而不执行验证。


      host2# zoneadm -z lx-zone attach -F
      

      注意 – 注意 –

      -F 选项可以在不进行验证的情况下强制执行 attach。这在某些情况下(例如在群集环境中或在执行备份和恢复操作时)很有用,但要求对系统进行托管区域所需的正确配置。不正确的配置以后可能会导致未定义的行为。


Procedure如何将 zonepath 移动到新主机

创建 zonepath 的归档的方法有很多种。例如,可以使用cpio(1)pax(1) 手册页中所述的 cpiopax 命令。

将归档传送至新主机的方法也有很多种。用于将 zonepath 从源主机传送到目标主机的机制取决于本地配置。在某些情况下(如 SAN),zonepath 数据实际上可能未移动。可能只需对 SAN 进行重新配置,便可在新主机上显示 zonepath。在其他情况下,可能要将 zonepath 写入磁带,再将磁带邮寄至新站点。

由于上述原因,此步骤不能自动执行。系统管理员必须选择最合适的方法来将 zonepath 移动到新主机。

  1. 成为超级用户或承担主管理员角色。

    有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. zonepath 移动到新主机。您可以使用本过程中介绍的方法,也可以使用您选择的其他方法。


示例 37–1 使用 tar 命令归档和移动 zonepath

  1. host1 上创建 zonepathtar 文件,并使用 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
    
  2. host2上,解压缩 tar 文件。


    host2# cd /export/zones
    host2# tar xf lx-zone.tar
    

有关更多信息,请参见 sftp(1)tar(1)


故障排除

有关以下问题的疑难解答信息,请参见使用 zoneadm attach 操作解决问题

用户必须验证新计算机中的处理器类型是否受支持。有关更多信息,请参见关于迁移 lx 标记区域

Solaris 10 5/08:关于在执行迁移之前验证 lx 标记区域迁移

可以在将区域移动到新计算机之前使用“不执行”选项 -n 执行试验。

zoneadm detach 子命令与 -n 选项结合使用,可在运行的区域上生成清单,而不实际分离该区域。源系统中区域的状态不会改变。区域清单会被发送到 stdout。全局管理员可以将此输出定向到某一文件,或将此输出传输到远程命令以便立即在目标主机上进行验证。zoneadm attach 子命令与 -n 选项结合使用,可读取该清单并检验目标计算机是否具有托管区域所需的正确配置,而不实际执行附加。

在执行试验性附加之前,必在新主机上配置目标系统中的区域。

ProcedureSolaris 10 5/08:如何在执行迁移之前验证 lx 标记区域迁移

要执行此过程,您必须是全局区域中的全局管理员。

  1. 成为超级用户或承担主管理员角色。

    有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. 使用以下方法之一。

    • 在名为 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