Solaris zone的安装管理

来源:互联网 发布:监狱的公主 知乎 编辑:程序博客网 时间:2024/04/29 09:08

第 19 章 关于安装、停止和卸载非全局区域(概述)

本章介绍如何在您的 Solaris 系统上安装区域,同时还介绍管理虚拟平台和应用程序环境的两个进程,zoneadmdzsched。此外,还提供了有关停止、重新引导和卸载区域的信息。

本章包含以下主题:

  • 区域安装概念

  • 区域构建

  • zoneadmd 守护进程

  • zsched 区域调度程序

  • 区域应用程序环境

  • 关于停止、重新引导和卸载区域

有关如何安装和引导非全局区域,或者停止或卸载非全局区域,请参见第 20 章,安装、引导、停止和卸载非全局区域(任务)。

区域安装概念

zoneadm(1M) 手册页中所述的 zoneadm 命令是用于安装和管理非全局区域的主要工具。必须从全局区域运行使用 zoneadm 命令的操作。可以使用 zoneadm 命令执行以下任务:

  • 检验区域

  • 安装区域

  • 引导区域

  • 显示有关正在运行的区域的信息

  • 停止区域

  • 重新引导区域

  • 卸载区域

有关区域安装和检验过程,请参见第 20 章,安装、引导、停止和卸载非全局区域(任务)和 zoneadm(1M) 手册页。有关区域配置过程,请参见第 18 章,规划和配置非全局区域(任务)和 zonecfg(1M) 手册页。区域状态在非全局区域状态模型中介绍。

如果您打算为区域生成 Solaris 审计记录,请在安装非全局区域之前阅读在区域中使用 Solaris 审计。

区域构建

在配置了非全局区域之后,应检验是否可以在系统配置中安全安装此区域。然后您可以安装此区域。区域的根文件系统所需的文件由系统安装在区域的根路径下。成功安装了区域之后,便可进行初始登录和引导。

在 Solaris 安装中用于初始安装软件包的方法也可用于填充非全局区域。

全局区域必须包含填充非全局区域所需的所有数据。填充区域包括创建目录、复制文件以及提供配置信息。

从全局区域中填充区域时,只会使用在全局区域中通过软件包创建的信息或数据。有关更多信息,请参见 pkgparam(1) 和 pkginfo(4) 手册页。

安装区域时,不引用或复制以下数据:

  • 未安装的软件包

  • 修补程序

  • CD 和 DVD 上的数据

  • 网络安装映像

  • 区域的任何原型或其他实例

此外,以下信息类型(如果在全局区域中存在)也不会复制到正在安装的区域:

  • /etc/passwd 文件中的新用户或已更改的用户

  • /etc/group 文件中的新组或已更改的组

  • 网络服务(例如 DHCP 地址分配、UUCP(UNIX 对 UNIX 复制)或 sendmail)的配置

  • 网络服务(例如命名服务)的配置

  • 新的或已更改的 crontab、打印机和邮件文件

  • 系统日志、消息和记帐文件

如果使用 Solaris 审计,则可能需要对从全局区域复制的审计文件进行修改。有关更多信息,请参见在区域中使用 Solaris 审计。

不能在非全局区域中配置以下功能:

  • Solaris Live UpgradeTM 引导环境

  • Solaris Volume Manager 元设备

  • DHCP 地址分配

  • SSL 代理服务器

当区域从已安装状态转换为就绪状态时,便会添加在配置文件中指定的资源。系统会指定唯一的区域 ID。还将挂载文件系统,检测网络接口并配置设备。转换到就绪状态后,虚拟平台便准备好开始运行用户进程了。在就绪状态下,会启动 zschedzoneadmd 进程来管理虚拟平台。

  • zsched 是一个类似于 sched 的系统调度进程,用于跟踪与区域关联的内核资源。

  • zoneadmd 是区域管理守护进程。

处于就绪状态的区域中不存在任何正在执行的用户进程。就绪区域与正在运行的区域之间的主要差异在于,正在运行的区域中至少有一个进程正在执行。有关更多信息,请参见 init(1M) 手册页。

zoneadmd 守护进程

区域管理守护进程 zoneadmd 是管理区域虚拟平台的主要进程。此守护进程还负责管理区域引导和关闭。对于系统上的每个活动(就绪、正在运行或正在关闭)区域,都有一个 zoneadmd 进程在运行。

zoneadmd 守护进程将按照区域配置中指定的方式设置区域。此过程包括以下操作:

  • 分配区域 ID 并启动 zsched 系统进程。

  • 设置区域范围的资源控制。

  • 准备区域配置中指定的区域设备。有关更多信息,请参见 devfsadmd(1M) 手册页。

  • 探测虚拟网络接口。

  • 挂载回送文件系统和常规文件系统。

  • 实例化和初始化区域控制台设备。

除非 zoneadmd 守护进程已经运行,否则它会由 zoneadm 自动启动。因此,如果此守护进程因某种原因没有运行,则调用 zoneadm 来管理区域时将重新启动 zoneadmd

zoneadmd 守护进程的手册页为 zoneadmd(1M)。

zsched 区域调度程序

活动区域是指处于就绪状态、正在运行状态或正在关闭状态的区域。每个活动区域都有一个关联的内核进程 zsched。代表区域执行操作的内核线程由 zsched 所拥有。通过 zsched 进程,区域子系统可跟踪每个区域的内核线程。

区域应用程序环境

引导区域类似于引导常规的 Solaris 系统。zoneadm 命令用于创建区域应用程序环境。

在首次引导非全局区域之前,必须创建区域的内部配置。内部配置指定要使用的命名服务、缺省语言环境 (locale) 和时区、区域的超级用户口令,以及应用程序环境的其他方面。通过响应出现在区域控制台上的一系列提示来建立应用程序环境,如内部区域配置中所述。请注意,可以独立于全局设置来配置区域的缺省语言环境和时区。

关于停止、重新引导和卸载区域

本节概述了停止、重新引导和卸载区域的过程,还提供了区域在需要时无法停止的疑难解答提示。

停止区域

zoneadm halt 命令用于删除区域的应用程序环境和虚拟平台。然后,区域便恢复为已安装状态。将中止所有进程,取消设备配置,取消检测网络接口,卸载文件系统,以及破坏内核数据结构。

halt 命令在区域内运行任何关闭脚本。有关如何关闭区域,请参见如何使用 zlogin 关闭区域。

如果无法破坏与区域关联的系统状态,则停止操作会中途失败。区域便会陷于中间状态,即介于正在运行和已安装状态之间。在此状态下,不存在任何活动的用户进程或内核线程,也无法创建它们。当停止操作失败时,您必须手动干预来完成此过程。

最常见的故障原因是系统无法卸载所有的文件系统。与破坏系统状态的传统 Solaris 系统关闭不同,区域一旦停止,就必须确保在引导区域或继续进行区域操作时没有执行任何挂载。即使 zoneadm 可确保区域中没有执行任何进程,但是如果全局区域中的进程在此区域中具有打开的文件,则卸载操作也会失败。请使用 proc(1)(请参见 pfiles)和 fuser(1M) 手册页中所述的工具来查找这些进程,并采取相应的操作。处理了这些进程之后,重新调用 zoneadm halt 会完全停止区域。

重新引导区域

zoneadm reboot 命令用于重新引导区域。区域将停止,然后再次引导。重新引导区域之后,区域 ID 会更改。

区域 autoboot

如果您在区域配置中将 autoboot 资源属性设置为 true,则引导全局区域时便会自动引导此区域。缺省设置为 false

请注意,对于要自动引导的区域,还必须启用区域服务 svc:/system/zones:default

卸载区域

zoneadm uninstall 命令用于卸载区域根文件系统下的所有文件。除非还使用了 -F(强制)选项,否则该命令会提示您确认此操作以继续执行。使用 uninstall 命令时应谨慎,因为此操作是无法恢复的。

 
原创粉丝点击