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

第 35 章 安装、引导、停止、卸载和克隆 lx 标记区域(任务)

本章介绍如何安装和引导 lx 标记区域,还介绍了以下其他任务:

lx 标记区域安装(任务图)

任务 

说明 

参考 

获取 Linux 归档文件。 

在安装 lx 标记区域之前,必须先获取 Linux 归档文件。

如何获取 Linux 归档文件

安装已配置的 lx 标记区域。

安装处于已配置状态的区域。 

如何安装 lx 标记区域

(可选)安装可用软件包的子集。 

在从 CD 或 ISO 映像中进行安装时,可以安装安装介质中的软件包的子集。 

如何安装软件包的子集

(可选)在区域中启用联网功能。 

联网功能在缺省情况下处于禁用状态,如果需要此功能,则必须先启用此功能。 

如何在 lx 标记区域中启用联网

获取区域的通用唯一标识符 (universally unique identifier, UUID)。 

在安装区域时指定的这个单独的标识符是标识区域的另一种方法。 

如何获取已安装标记区域的 UUID

(可选)将已安装的区域转换为就绪状态。 

如果您要引导区域并立即使用,则可以跳过此过程。  

(可选)将已安装的 lx 标记区域置于就绪状态

引导 lx 标记区域。

引导区域时会将此区域置于运行状态。既可以从就绪状态引导区域,也可以从已安装状态引导区域。  

如何引导 lx 标记区域

在单用户模式下引导区域。 

仅引导至里程碑 svc:/milestone/single-user:default。此里程碑相当于 init 级别 s。请参见 init(1M)svc.startd(1M) 手册页。

如何在单用户模式下引导区域

安装和引导 lx 标记区域

使用 zoneadm(1M) 手册页中所述的 zoneadm 命令,可以执行非全局区域的安装任务。

Procedure如何获取 Linux 归档文件

在安装 lx 标记区域之前,必须先获取 Linux 归档文件。归档文件通过以下形式分发:

  1. 使用以下方法之一获取 Linux 分发:

Procedure如何安装 lx 标记区域

此过程用于安装已配置的 lx 标记区域。安装区域后,所有软件配置和管理工作都必须由区域管理员在区域内使用 Linux 工具来执行。

有关使用不同分发路径的区域安装命令行的示例,请参见示例 35–1示例 35–2示例 35–3。如果从光盘或 ISO 映像安装,则必须指定 Sun 软件包簇类别。有关软件包簇类别的信息,请参见lx 标记区域安装方法

请注意,可以在安装一个区域之前检验该区域。如果您跳过此过程,则会在安装区域时自动执行检验。(可选)如何在安装已配置的区域之前检验该区域中介绍了此过程。

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


注 –

在步骤 3 中,如果 zonepath 在 ZFS 上,zoneadm install 命令将在安装区域时自动为 zonepath 创建 ZFS 文件系统(数据集)。可以通过添加 -x nodataset 参数阻止此操作。


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

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

  2. (可选)如果要从 DVD 或 CD 进行安装,请在系统中启用 volfs 并检验它是否正在运行。


    global# svcadm enable svc:/system/filesystem/volfs:default
    

    global# svcs | grep volfs
    

    将显示以下类似信息:


    online  17:30 svc:/system/filesystem/volfs:default
  3. 通过将 zoneadm 命令与 install 选项和归档文件路径结合使用来安装已配置区域 lx-zone

    • 安装区域,如果 zonepath 在 ZFS 上,则自动创建一个 ZFS 文件系统。


      global# zoneadm -z lx-zone install -d archive_path
      

      系统将显示:


      A ZFS file system has been created for this zone.
    • 安装 zonepath 在 ZFS 上的区域,但自动创建 ZFS 文件系统。


      global# zoneadm -z lx-zone install -x nodataset -d archive_path
      

    当区域的根文件系统所需的文件和目录以及软件包文件安装在区域的根路径下时,您将看到各种消息。


    注 –

    如果不指定 archive_path,则缺省值为 CD


  4. (可选)如果显示错误消息并且无法安装区域,请键入以下命令来获取区域状态:


    global# zoneadm -z lx-zone list -iv
    
    • 如果显示为已配置状态,请执行消息中指定的更正操作,并再次尝试执行 zoneadm install 命令。

    • 如果显示为未完成状态,请首先执行以下命令:


      global# zoneadm -z lx-zone uninstall
      

      然后执行消息中指定的更正操作,并再次尝试执行 zoneadm install 命令。

  5. 当安装完成时,使用带有 -i-v 选项的 list 子命令来列出已安装的区域并检验状态。


    global# zoneadm list -iv
    

    将显示以下类似信息:


    ID  NAME     STATUS       PATH                           BRAND      IP
     0  global   running      /                              native     shared
     -  lx-zone  installed    /export/home/lx-zone           lx         shared

示例 35–1 使用 CentOS 压缩 tar 归档文件的安装命令


global# zoneadm -z lx-zone install -d /export/centos_fs_image.tar.bz2


示例 35–2 使用 CentOS CD 的安装命令

对于 CD 或 DVD 安装,必须在系统中启用 volfs。必须指定一个软件簇软件包。例如,使用 development 安装完整环境,或键入特定簇的名称。如果不指定簇软件包,缺省情况下将安装 desktop。CD 设备为 /cdrom/cdrom0


global# zoneadm -z lx-zone install -d /cdrom/cdrom0 development


示例 35–3 使用 CentOS ISO 映像的安装命令

必须指定一个软件簇软件包。使用 development 安装完整环境,或指定特定簇。如果不指定簇软件包,缺省情况下将安装 desktop。CentOS ISO 映像驻留在目录 /export/centos_3.7 中。


global# zoneadm -z lx-zone install -d /export/centos_3.7 development

另请参见

有关数据集的更多信息,请参见《Oracle Solaris ZFS 管理指南》

故障排除

如果区域安装中断或失败,则此区域会处于未完成状态。请使用 uninstall -F 将此区域重置为已配置状态。

Procedure如何安装软件包的子集

在从 CD 或 ISO 映像中进行安装时,可以安装安装介质中的软件包的子集。可用子集有 coreserverdesktopdeveloperall

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

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

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

  2. 只安装服务器软件包:


    global# zoneadm -z lx-zone install -d archive_path server
    

Procedure如何在 lx 标记区域中启用联网

安装 lx 标记区域时,会禁用联网。使用类似如下的过程可以启用联网。

只有区域管理员可以执行此过程。

  1. 编辑区域中的 /etc/sysconfig/network 文件。


    NETWORKING=yes
    HOSTNAME=your.hostname
  2. 要设置 NIS 域,请添加类似于以下内容的行:


    NISDOMAIN=domain.Sun.COM
配置联网和命名服务

有关配置联网或命名服务的更多信息,请查看有关 Linux 分发的相关文档。

Procedure如何获取已安装标记区域的 UUID

安装区域时,会为其指定一个通用唯一标识符 (universally unique identifier, UUID)。通过将 zoneadmlist 子命令和 -p 选项一起使用,可以获取 UUID。UUID 是显示的第五个字段。

  1. 查看已安装区域的 UUID。


    global# zoneadm list -p
    

    将显示以下类似信息:


    0:global:running:/::native
        1:centos38:running:/zones/centos38:27fabdc8-d8ce-e8aa-9921-ad1ea23ab063:lx

示例 35–4 如何在命令中使用 UUID


global# zoneadm -z lx-zone -u 61901255-35cf-40d6-d501-f37dc84eb504 list -v

如果 -u uuid-match-z zonename 都存在,则先根据 UUID 执行匹配。如果找到具有指定 UUID 的区域,则使用该区域并忽略 -z 参数。如果找不到具有指定 UUID 的区域,则系统将按区域名称进行搜索。


关于 UUID

可以卸载区域,然后以相同的名称重新安装,但内容不同。也可以对区域进行重命名,而不更改内容。由于以上原因,UUID 比区域名称更可靠。

另请参见

有关更多信息,请参见 zoneadm(1M)libuuid(3LIB)

Procedure如何将已安装的 lx 标记区域标记为未完成

如果对系统的管理性更改导致区域不可用或不一致,则可以将已安装区域的状态更改为未完成。

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

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

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

  2. 将区域 testzone 标记为未完成。


    global# zoneadm -z testzone mark incomplete
    
  3. 使用带有 -i 选项和 -v 选项的 list 子命令检验状态。


    global# zoneadm list -iv
    

    将显示以下类似信息:


    ID  NAME       STATUS        PATH                   BRAND      IP
    0   global     running       /                       native     shared
    -   testzone   incomplete    /export/home/testzone   lx         shared
将区域标记为未完成

注 –

将区域标记为未完成的操作是无法恢复的。可对标记为未完成的区域执行的唯一操作是卸载该区域,使其返回已配置状态。请参见如何卸载标记区域


(可选)将已安装的 lx 标记区域置于就绪状态

转换为就绪状态之后,虚拟平台便可开始运行用户进程。处于就绪状态的区域中没有执行任何用户进程。

如果您要引导区域并立即使用,则可以跳过此过程。引导区域时便会自动从就绪状态进行转换。

请参见(可选)如何将已安装区域转换为就绪状态

Procedure如何引导 lx 标记区域

引导区域会将该区域置于运行状态。既可以从就绪状态引导区域,也可以从已安装状态引导区域。处于已安装状态的区域经透明引导,会从就绪状态转换为正在运行状态。允许登录到处于正在运行状态下的区域。

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


提示 –

请注意,不能在启用标签的 Trusted Solaris 系统中引导标记区域。


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

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

  2. 使用带有 -z 选项、区域名称 lx-zone 以及 boot 子命令的 zoneadm 命令引导区域。


    global# zoneadm -z lx-zone boot
    
  3. 当引导完成时,使用带有 -v 选项的 list 子命令检验状态。


    global# zoneadm list -v
    

    将显示以下类似信息:


    ID  NAME     STATUS       PATH                  BRAND      IP
     0  global   running      /                     native     shared
     1  lx-zone  running      /export/home/lx-zone  lx         shared

示例 35–5 为区域指定引导参数

使用 -i altinit 选项引导区域:


global# zoneadm -z lx-zone boot -- -i /path/to/process

故障排除

如果显示一条消息,指出系统找不到要用于在区域配置中指定的 IP 地址的网络掩码,请参见引导区域时显示 netmasks 警告。请注意,此消息只是警告,而命令已成功执行。

Procedure如何在单用户模式下引导 lx 标记区域

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

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

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

  2. 在单用户模式下引导区域。


    global# zoneadm -z lx-zone boot -- -s
    

下一步执行的操作

要登录到区域并查看配置,请参见登录到 lx 标记区域

停止、重新引导、卸载、克隆和删除 lx 标记区域(任务图)

任务 

说明 

参考 

停止区域。 

停止过程用于删除区域的应用程序环境和虚拟平台。此过程可将区域从就绪状态返回到已安装状态。有关如何干净地关闭区域,请参见如何使用 zlogin 关闭 lx 标记区域

如何停止 lx 标记区域

重新引导区域。 

重新引导过程会停止区域,然后再次引导它。 

如何重新引导 lx 标记区域

卸载区域。 

此过程可删除区域根文件系统中的所有文件。请慎重使用本过程。此操作无法撤消。

如何卸载标记区域

根据同一系统中某个现有区域的配置置备新的非全局区域。 

克隆区域是安装区域的另外一种更快速的方法。在安装新区域之前,仍然需要先对其进行配置。 

在同一系统上克隆 lx 标记区域

从系统中删除非全局区域。 

此过程将从系统中完全删除区域。 

从系统中删除 lx 标记区域

停止、重新引导和卸载 lx 标记区域

Procedure如何停止 lx 标记区域

停止过程用于删除 lx 标记区域的应用程序环境和虚拟平台。有关如何干净地关闭区域,请参见“如何使用 zlogin 关闭 lx 标记区域”。

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

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

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

  2. 列出系统上正在运行的区域。


    global# zoneadm list -v
    

    将显示以下类似信息:


    ID  NAME     STATUS       PATH                  BRAND      IP
     0  global   running      /                     native     shared
     1  lx-zone  running      /export/home/lx-zone  lx         shared
  3. 使用带有 -z 选项、区域名称(例如 lx-zone)以及 halt 子命令的 zoneadm 命令停止给定区域。


    global# zoneadm -z lx-zone halt
    
  4. 再次列出系统上的区域,以检验是否已停止 lx-zone


    global# zoneadm list -iv
    

    将显示以下类似信息:


    ID  NAME       STATUS        PATH                 BRAND      IP
    0  global     running       /                     native     shared
    -  lx-zone    installed     /export/home/lx-zone  lx         shared
  5. 如果您要重新启动区域,请引导它。


    global# zoneadm -z lx-zone boot
    
故障排除

如果区域没有正常停止,请参见区域无法停止以获得疑难解答提示。

Procedure如何重新引导 lx 标记区域

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

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

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

  2. 列出系统上正在运行的区域。


    global# zoneadm list -v
    

    将显示以下类似信息:


    ID  NAME     STATUS       PATH                  BRAND      IP
     0  global   running      /                     native     shared
     1  lx-zone  running      /export/home/lx-zone  lx         shared
  3. 使用带有 -z reboot 选项的 zoneadm 命令重新引导区域 lx-zone


    global# zoneadm -z lx-zone reboot
    
  4. 再次列出系统上的区域,以检验是否已重新引导 lx-zone


    global# zoneadm list -v
    

    将显示以下类似信息:


    ID  NAME     STATUS       PATH                  BRAND      IP
     0  global   running      /                     native     shared
     2  lx-zone  running      /export/home/lx-zone  lx         shared

    提示 –

    请注意,lx-zone 的区域 ID 已更改。区域 ID 通常会在重新引导后更改。


Procedure如何卸载标记区域


注意 – 注意 –

此过程会删除区域根文件系统中的所有文件。此操作是无法恢复的。


区域不能处于正在运行状态。uninstall 操作对于正在运行的区域无效。

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

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

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

  2. 列出系统上的区域。


    global# zoneadm list -v
    

    将显示以下类似信息:


    ID  NAME       STATUS        PATH                 BRAND      IP
    0  global     running       /                     native     shared
    -  lx-zone    installed     /export/home/lx-zone  lx         shared
  3. 使用带有 -z uninstall 选项的 zoneadm 命令删除区域 lx-zone

    您还可以使用 -F 选项强制执行操作。如果未指定此选项,则系统将提示进行确认。


    global# zoneadm -z lx-zone uninstall -F
    

    请注意,针对 zonepath 卸载具有自己的 ZFS 文件系统的区域时,将销毁该 ZFS 文件系统。

  4. 再次列出系统上的区域,以检验是否不再列出 lx-zone


    global# zoneadm list -v
    

    将显示以下类似信息:


    ID  NAME     STATUS       PATH               BRAND      IP
    0  global   running      /                   native     shared
故障排除

如果区域卸载中断,则此区域停留在未完成状态。请使用 zoneadm uninstall 命令将此区域重置为已配置状态。

使用 uninstall 命令时应谨慎,因为此操作是无法恢复的。

在同一系统上克隆 lx 标记区域

克隆用于通过从源 zonepath 向目标 zonepath 复制数据来在系统上置备新区域。

Procedure如何克隆 lx 标记区域

在安装新区域之前,必须先对其进行配置。传递给 zoneadm create 子命令的参数是要克隆的区域名称。必须停止此源区域。

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

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

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

  2. 停止要克隆的源区域,在此过程中该区域为 lx-zone


    global# zoneadm -z lx-zone halt
    
  3. 通过将源区域 lx-zone 的配置导出到文件(例如 master),开始配置新区域。


    global# zonecfg -z lx-zone export -f /export/zones/master
    

    注 –

    也可以通过使用如何配置区域中的过程而不是通过修改现有配置来创建新区域配置。如果使用此方法,请在创建区域后,直接跳到步骤 6。


  4. 编辑文件 master。至少要为新区域设置一个不同的 zonepath 和 IP 地址。

  5. 通过使用文件 master 中的命令创建新区域 zone1


    global# zonecfg -z zone1 -f /export/zones/master
    
  6. 通过克隆 lx-zone 安装新区域 zone1


    global# zoneadm -z zone1 clone lx-zone
    

    系统将显示:


    Cloning zonepath /export/home/lx-zone...
  7. 列出系统上的区域。


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

Procedure如何从现有快照克隆区域

可以从克隆区域时最初捕获的现有快照多次克隆源区域。

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

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

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

  2. 配置区域 zone2

  3. 指定要使用现有快照来创建 new-zone2


    global# zoneadm -z zone2 clone -s zeepool/zones/lx-zone@SUNWzone1 lx-zone
    

    系统将显示:


    Cloning snapshot zeepool/zones/lx-zone@SUNWzone1

    zoneadm 命令从快照 SUNWzone1 中验证软件并克隆快照。

  4. 列出系统上的区域。


    global# zoneadm list -iv
      ID NAME             STATUS         PATH                    BRAND      IP
       0 global           running        /                       native     shared
       - lx-zone          installed      /zeepool/zones/lx-zone  lx         shared
       - zone1            installed      /zeepool/zones/zone1    lx         shared
       - zone2            installed      /zeepool/zones/zone1    lx         shared

Procedure如何使用复制代替 ZFS 克隆

可以使用此过程指定复制 zonepath,从而阻止在 ZFS 文件系统上自动克隆区域。

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

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

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

  2. 指定复制 ZFS 上的 zonepath 而不是进行 ZFS 克隆。


    global# zoneadm -z zone1 clone -m copy lx-zone
    

从系统中删除 lx 标记区域

本节中所述的过程会从系统中完全删除区域。

Procedure如何删除 lx 标记区域

  1. 关闭区域 lx-zone


    global# zlogin lx-zone shutdown -y -g0 -i0
    
  2. 删除 lx-zone 的根文件系统。


    global# zoneadm -z lx-zone uninstall -F
    
  3. 删除 lx-zone 的配置。


    global# zonecfg -z lx-zone delete -F
    
  4. 列出系统上的区域,以检验是否不再列出 lx-zone


    global# zoneadm list -iv
    

    将显示以下类似信息:


    ID  NAME     STATUS       PATH   BRAND      IP
     0  global   running      /      native     shared