Contained Within
Find More DocumentationFeatured Support Resources | Download this book in PDF (3636 KB)
第 3 部分 lx 标记区域Solaris 10 8/07: 从此发行版开始,可以使用标记区域。 BrandZ 为创建包含非本机操作环境的非全局标记区域提供了框架。在 Solaris 操作系统上使用标记区域来运行应用程序。 第一个可用的标记是 lx 标记,即 Solaris Containers for Linux Applications。lx 标记为应用程序提供 Linux 环境,并可在 x86 和 x64 计算机上运行。 第 30 章 关于标记区域和 Linux 标记区域从 Solaris 10 8/07 发行版开始,可以使用标记区域。后续更新版本中添加的功能会注明相应的发行版本。 SolarisTM 操作系统中的标记区域功能是 Solaris Zones 的简单扩展。本章讨论标记区域概念和实现 Linux 标记区域功能的 lx 标记。Linux 标记区域也称为 Linux 应用程序的 Solaris Containers。 注 – 虽然可以在启用标签的 Trusted SolarisTM 系统上配置和安装标记区域,但不能在此系统配置中引导标记区域。 注 – 在 Solaris 操作系统中支持其他标记。 在运行 Solaris 10 8/07 操作系统或更高 Solaris 10 发行版的 SPARC 计算机上支持以下两个标记:
Solaris 10 发行版还支持 cluster 标记,该标记在 docs.sun.com 上的 Sun Cluster 3.2 1/09 Software Collection for Solaris OS 中进行了介绍。 关于在 Solaris 系统上使用区域有关在 Solaris 系统上使用区域的一般信息,请参见第 16 章。 您应熟悉以下区域和资源管理概念:
词汇表为区域和资源管理功能涉及的术语提供定义。 在系统上使用标记区域所需的任何其他信息均在指南的本部分中提供。 注 – 本指南的下列章节不适用于标记区域: 标记区域技术标记区域 (BrandZ) 框架对本手册第 2 部分, Zones中介绍的 Solaris Zones 基础结构进行了扩展,从而包括标记的创建。术语标记可以指各种操作环境。通过 BrandZ 可以创建包含用于运行应用程序的非本机操作环境的非全局区域。标记类型用来确定安装和引导区域时执行的脚本。此外,区域的标记还可用来在应用程序启动时确定正确的应用程序类型。所有标记管理都通过扩展当前区域结构来执行。 标记能够提供简单或复杂环境。例如,简单环境可以用相应的 GNU 等效项来替换标准 Solaris 实用程序。复杂环境可以提供支持执行 Linux 应用程序的完整 Linux 用户空间。 每个区域都配有一个关联标记。缺省为 native 标记 Solaris。一个标记区域只支持一个非本地二进制命令标记,这意味着一个标记区域只提供一种操作环境。 BrandZ 通过以下方式来扩展区域工具:
注 – 可在已配置状态下更改区域标记。一旦安装标记区域后,便不能更改或删除标记。 在标记区域中运行的进程标记区域在内核中提供了一组插入点,这些插入点只应用于在标记区域中执行的进程。
标记还能为 librtld_db 提供插件库。通过插件库,Solaris 工具(如 mdb(1) 中介绍的调试器和 dtrace(1M) 中介绍的 DTrace)可以访问在标记区域内运行的进程的符号信息。 标记区域设备支持每个区域支持的设备都在与该标记相关的手册页和其他文档中进行了介绍。设备支持由相应标记定义。标记可以选择不允许添加任何不受支持或无法识别的设备。 标记区域文件系统支持标记区域中的权限标记区域中可用的权限由相应标记定义。有关权限的更多信息,请参见非全局区域中的权限和lx 标记区域中的可配置权限。 关于 lx 标记lx 标记使用标记区域框架,使得 Linux 二进制应用程序无需修改,便可在具有 Solaris 操作系统内核的计算机上运行。 计算机的处理器类型必须为以下受支持的 i686 处理器类型之一:
支持的 Linux 分发lx 标记包括在非全局区域中安装 CentOS 3.x 或 Red Hat Enterprise Linux 3.x 分发版所必需的工具。每种分发的3.5 到 3.8 版本均受支持。该标记支持在以 32 位或 64 位模式运行 Solaris 系统的 x86 和 x64 计算机上执行 32 位 Linux 应用程序。 lx 标记模仿由 Linux 2.4.21 内核提供的系统调用接口,Red Hat 在 RHEL 3.x 分发中对这些接口进行了修改。此内核提供由 Red Hat 发行的 glibc 2.3.2版本所使用的系统调用接口。 此外,lx 标记还部分模仿 Linux /dev 和 /proc 接口。 请注意,如果向 lx 标记区域中添加软件包,必须保留支持的配置。有关更多信息,请参见关于维护支持的配置。 应用程序支持Solaris 系统对于可在 lx 标记区域中运行的 Linux 应用程序数没有任何限制。必须提供足够的内存。另请参见系统和空间要求。 无论基础内核如何,都只能运行 32 位 Linux 应用程序。 lx 区域只支持用户级别的 Linux 应用程序。在 lx 区域中不能使用 Linux 设备驱动程序、Linux 内核模块或 Linux 文件系统。 有关已在 lx 标记下成功运行的一些应用程序的列表,请参见 http://opensolaris.org/os/community/brandz/applications。有关安装应用程序的示例,请参见如何在 lx 标记区域中安装应用程序。 不能在 lx 区域内运行 Solaris 应用程序。但通过 lx 区域可以使用 Solaris 系统来开发、测试和部署 Linux 应用程序。例如,可将一个 Linux 应用程序置于 lx 区域中并使用从全局区域运行的 Solaris工具对其进行分析。然后,可以在本地 Linux 系统上改进并部署优化后的应用程序。 调试工具Solaris 调试工具(如 DTrace 和 mdb)可以应用于在区域内执行的 Linux 进程,但工具本身必须在全局区域中运行。生成的任何核心转储文件都以 Solaris 格式生成,并且只能用 Solaris 工具进行调试。 Dtrace 由 DTrace lxsyscall 动态跟踪提供器为 Linux 应用程序启用。该提供器的行为与 DTrace syscall 提供器的行为相似。lxsyscall 提供器可提供在线程进入 Linux 系统调用入口点或从此处返回时触发的探测。 有关调试选项的更多信息,请参见《Solaris 动态跟踪指南》以及 dtrace(1M) 和 mdb(1) 手册页。《Solaris 动态跟踪指南》介绍了 DTrace 功能可以使用的公共记录接口。有关 syscall 提供器的文档也可用于 lxsyscall 提供器。 注 – 因为 NFS 依赖于区域特定的名称服务,所以不能访问在当前区域外挂载的任何 NFS 文件系统。因此,不能从全局区域中调试基于 NFS 的 Linux 进程。 命令和其他接口表 30–1 用于 lx 标记区域的命令和其他接口
zoneadmd 守护进程是管理区域虚拟平台的主要进程。zoneadmd 守护进程的手册页为 zoneadmd(1M)。此守护进程并没有构成编程接口。 注 – 表 26–5 介绍了可在全局区域中用来显示所有非全局区域(包括标记区域)的相关信息的命令。表 26–4 介绍了用于资源上限设置守护进程的命令。 在系统上设置 lx 标记区域(任务图)下表简要介绍了首次在系统上设置 lx 区域所涉及的任务。
第 31 章 规划 lx 标记区域配置(概述)本章介绍在基于 x64 或 x86 的系统上配置 lx 标记区域之前需要执行的操作,还介绍了 zonecfg 命令的用法。 系统和空间要求以下几点主要的计算机注意事项与 lx 标记区域的使用有关。
不限制每个区域可占用的磁盘空间量。全局管理员负责限制空间。全局管理员必须确保本地存储足以保存非全局区域的根文件系统。如果有足够的存储空间,即使小型单处理器系统也可支持同时运行多个区域。 限制标记区域的大小
标记区域网络地址每个需要网络连接的区域都有一个或多个专用 IP 地址。支持 IPv4 地址。必须为区域指定一个 IPv4 地址。有关更多信息,请参见标记区域网络地址。或者,您也可以如如何配置 lx 标记区域中所示设置网络接口的缺省路由器。 lx 标记区域配置过程
zonecfg verify 命令将针对给定配置检验以下内容:
有关 zonecfg 命令的更多信息,请参见 zonecfg(1M) 手册页。 lx 标记区域配置组件本节介绍以下组件:
lx 标记区域中的区域名称和区域路径必须为区域选择名称和路径。 lx 标记区域中的区域自动引导autoboot 属性设置决定在引导全局区域时是否自动引导区域。 lx 标记区域中的资源池关联如果按第 13 章所述在系统中配置了资源池,则可在配置区域时使用 pool 属性将该区域与其中一个资源池相关联。 如果未配置资源池,还可使用 dedicated-cpu 资源来指定在某个非全局区域运行时将系统处理器的某个子集专用于该非全局区域。系统将动态创建一个临时池,以便在区域运行时使用。 注 – 使用通过 pool 属性设置的永久池的区域配置与通过 dedicated-cpu 资源配置的临时池不兼容。只能设置这两个属性中的其中一个。 指定 dedicated-cpu 资源dedicated-cpu 资源指定在某个非全局区域运行时,应将系统处理器的某个子集专用于该非全局区域。在引导区域时,系统将动态创建一个临时池,以便在区域运行时使用。 dedicated-cpu 资源可为 ncpus 以及 importance(可选)设置限制。
注 – cpu-shares rctl 与 dedicated-cpu 资源不兼容。 Solaris10 5/08:指定 capped-cpu 资源capped-cpu 资源对某一项目或区域可占用的 CPU 资源量设立绝对限制。capped-cpu 资源有一个 ncpus 属性,该属性是一个正小数,小数点右侧有两位。该属性与 CPU 的单位相对应。此资源不接受范围值,但接受小数。指定 ncpus 时,值为 1 表示某个 CPU 的 100%。值为 1.25 表示 125%,因为 100% 对应于系统中的一个 CPU。 注 – capped-cpu 资源与 dedicated-cpu 资源不兼容。 区域中的调度类可以使用公平份额调度器 (fair share scheduler, FSS),根据区域的重要性控制可用 CPU 资源在区域之间的分配。这种重要性通过您为每个区域指定的 CPU 资源份额来表示。 在显式设置 cpu-shares 属性时,公平份额调度器 (fair share scheduler, FSS) 将用作该区域的调度类。但是,在此情况下使用 FSS 的首选方法是通过 dispadmin 命令将 FSS 设置为系统缺省的调度类。这样,所有区域都将从获取系统 CPU 资源的公平份额中受益。如果未为区域设置 cpu-shares,区域将使用系统缺省的调度类。以下操作可为区域设置调度类:
请注意,您可以使用 priocntl(1) 手册页中所述的 priocntl,在不更改缺省调度类和不重新引导的情况下将正在运行的进程移至其他调度类。 capped-memory 资源capped-memory 资源可为 physical、swap 和 locked 内存设置限制。每个限制均为可选项,但至少要设置一个限制。
注 – 应用程序通常不会锁定大量内存,但是如果已知道区域的应用程序会锁定内存,则您可能会决定设置锁定内存。如果区域信任是一个需要关注的问题,还可以考虑将锁定内存上限设为系统物理内存的百分之十,或区域物理内存上限的百分之十。 有关更多信息,请参见第 10 章、第 11 章和如何配置 lx 标记区域。 lx 标记区域中的区域网络接口lx 标记区域中只支持共享 IP 网络配置。 每个需要网络连接的区域都必须具有一个或多个专用 IP 地址。这些地址与逻辑网络接口关联。引导区域时,将在其中自动设置并放置通过 zonecfg 命令配置的网络接口。从 Solaris 10 10/08 发行版开始,您也可通过 defrouter 属性设置网络接口的缺省路由器。 在 lx 标记区域中挂载的文件系统通常,在区域中挂载的文件系统包括:
例如,这可以包括以下文件系统:
将对在应用程序环境中执行的挂载设定特定限制。这些限制可防止区域管理员拒绝为系统的其余部分提供服务,或者对其他区域产生不良影响。 在区域中挂载特定的文件系统时存在安全限制。其他文件系统在区域中挂载时会显示出特殊行为。有关更多信息,请参见文件系统和非全局区域。 lx 标记区域中区域范围的资源控制设置区域范围的资源控制的首选方法是使用属性名称(这种方法比较简单)而不是 rctl 资源。将为全局区域和非全局区域指定这些限制。 全局管理员还可使用 rctl 资源为区域设置区域范围的特权资源控制。 区域范围的资源控制可限制区域内所有进程实体总的资源使用情况。使用 zonecfg 命令同时为全局区域和非全局区域指定这些限制。有关说明,请参见如何配置 lx 标记区域。 当前可以使用以下资源控制: 表 31–1 区域范围的资源控制
lx 标记区域中的可配置权限limitpriv 属性用于指定预定义的缺省集之外的权限掩码。引导区域时,标记配置中将包含一组缺省权限。这些权限被视为安全权限,因为它们可以阻止区域中的特权进程影响系统中其他非全局区域或全局区域中的进程。可以使用 limitpriv 属性执行以下操作:
注 – 目前,有些权限不能从区域的缺省权限集中删除,还有一些权限不能添加到缺省权限集中。 有关更多信息,请参见在 lx 标记区域中定义的权限、非全局区域中的权限和 privileges(5)。 lx 标记区域中的 attr 资源使用 attr 资源类型可以启用对全局区域中存在的音频设备的访问。有关说明,请参见如何配置、检验和提交 lx 标记区域中的步骤 12。 还可以使用 attr 资源类型为区域添加注释。 配置中缺省包括的资源lx 标记区域中的已配置设备每个区域支持的设备都在与该标记相关的手册页和其他文档中进行了介绍。lx 区域不允许添加任何不受支持或无法识别的设备。框架可以检测添加不受支持设备的任何尝试,并发出一条错误消息,指出无法检验区域配置。 请注意,可按如何配置、检验和提交 lx 标记区域中的步骤 12 所示,通过 attr 资源属性添加对全局区域中运行的音频设备的访问。 在 lx 标记区域中定义的文件系统标记区域所需的文件系统在标记中定义。如如何配置、检验和提交 lx 标记区域中的步骤 9 所示,可以使用 fs 资源属性将其他 Solaris 文件系统添加至 lx 标记区域。 注 – 不支持添加本地 Linux 文件系统。可从 Linux 服务器中进行文件系统的 NFS 挂载。 在 lx 标记区域中定义的权限仅允许进程拥有部分权限。权限限制可防止某个区域执行可能会影响其他区域的操作。通过权限设置,可以限制区域内特权用户的功能。 缺省权限、必需的缺省权限、可选权限以及禁止权限由每个标记定义。如如何配置、检验和提交 lx 标记区域的步骤 8 所述,还可以使用 limitpriv 属性添加或删除某些权限。表 26–1 列出了区域中的所有 Solaris 权限以及每个权限的状态。 有关权限的更多信息,请参见 ppriv(1) 手册页和《系统管理指南:安全性服务》。 使用 zonecfg 命令创建 lx 标记区域可以使用 zonecfg(1M) 手册页中所述的 zonecfg 命令来配置区域。此命令还可用来为全局区域持久指定资源管理设置。 zonecfg 命令可以在交互模式、命令行模式或命令文件模式下使用。可以使用此命令执行以下操作:
zonecfg 提示符的格式如下:
当您配置特定的资源类型(例如文件系统)时,此资源类型也包含在提示符中:
有关更多信息(包括说明如何使用本章中介绍的 zonecfg 各组成部分的过程),请参见如何配置 lx 标记区域。 zonecfg 模式范围的概念用于用户界面。范围可以是全局的,也可以是资源特定的。缺省范围为全局。 在全局范围内,add 子命令和 select 子命令用于选择特定资源。然后范围更改为此资源类型。
然后范围恢复为全局。 某些子命令(例如 add、remove 和 set)在每个范围中都有不同的语义。 zonecfg 交互模式在交互模式中,支持以下子命令。有关用于这些子命令的语义和选项的详细信息,请参见 zonecfg(1M) 手册页中有关选项的内容。对于可能会导致破坏性操作或所做工作丢失的任何子命令,系统均要求用户在继续之前进行确认。您可以使用 -F(强制)选项,跳过此项确认操作。
zonecfg 命令文件模式在命令文件模式中,输入来自文件。可以使用 zonecfg 交互模式中所述的 export 子命令生成此文件。可以在标准输出中列显配置,也可以使用 -f 选项指定输出文件。 标记区域配置数据区域配置数据由两种类型的实体组成:资源和属性。每个资源都有一种类型,并且每个资源还可以有一个包含一个或多个属性的集合。属性具有名称和值。属性集取决于资源类型。 资源和属性类型
lx 标记区域中的资源类型属性
可以使用 export 子命令在标准输出中列显区域配置。通过可以在命令文件中使用的格式保存配置。 第 32 章 配置 lx 标记区域(任务)本章介绍如何在基于 x64 或 x86 的系统上配置 lx 标记区域。此过程与配置 Solaris 区域的过程基本相同。配置标记区域时不需要使用其中一些属性。 规划和配置 lx 标记区域(任务图)在将系统设置为使用区域之前,必须先收集信息,并决定如何配置区域。以下任务图概括了如何规划和配置 lx 区域。
如何配置 lx 标记区域使用 zonecfg(1M) 手册页中所述的 zonecfg 命令可执行以下操作。
提示 – 如果您知道将要使用 CD 或 DVD 在 lx 标记区域中安装应用程序,请在最初配置标记区域时,使用 add fs 在全局区域内添加对 CD 或 DVD 介质的只读访问权限。然后可以使用 CD 或 DVD 在标记区域中安装产品。 当使用 zonecfg 实用程序配置区域时,您可以使用 revert 子命令来撤消资源设置。请参见如何恢复区域配置。 配置多个 lx 标记区域的脚本中提供了用于在系统中配置多个区域的脚本。 要显示非全局区域配置,请参见如何显示标记区域的配置。 提示 – 配置完标记区域之后,最好复制该区域的配置。将来您可以使用此备份来恢复区域。以超级用户或主管理员的身份,将区域 lx-zone 的配置列显到文件。以下示例使用名为 lx-zone.config 的文件。
有关更多信息,请参见如何恢复单个非全局区域。
|
global# zonecfg -z lx-zone |
如果是第一次配置该区域,则可以看到以下系统消息:
lx-zone: No such zone configured Use 'create' to begin configuring a new zone. |
使用 SUNWlx 模板创建新 lx 区域配置。
zonecfg:lx-zone> create -t SUNWlx |
或者,也可以创建空区域并显式设置标记:
zonecfg:lx-zone> create -b zonecfg:lx-zone> set brand=lx |
设置区域路径,在此过程中为 /export/home/lx-zone。
zonecfg:lx-zone> set zonepath=/export/home/lx-zone |
设置自动引导值。
如果设置为 true,则在引导全局区域时将自动引导该区域。请注意,要自动引导区域,还必须启用区域服务 svc:/system/zones:default。缺省值为 false。
zonecfg:lx-zone> set autoboot=true |
为区域设置持久引导参数。
zonecfg:lx-zone> set bootargs="-i=altinit" |
如果在系统上启用资源池,则将该池与区域进行关联。
此示例使用名为 pool_default 的缺省池。
zonecfg:lx-zone> set pool=pool_default |
因为资源池允许进行一次可选的调度类分配,所以可以使用池功能来设置一个缺省的调度程序,而不是非全局区域的系统缺省值。有关说明,请参见如何将池与调度类关联和创建配置。
修改缺省权限集。
zonecfg:lx-zone> set limitpriv="default,proc_priocntl" |
proc_priocntl 权限用于在实时类中运行进程。
将 CPU 份额值设置为 5。
zonecfg:lx-zone> set cpu-shares=5 |
添加内存上限。
zonecfg:lx-zone> add capped-memory |
添加文件系统。
zonecfg:lx-zone> add fs |
设置文件系统的挂载点,在此过程中为 /export/linux/local。
zonecfg:lx-zone:fs> set dir=/export/linux/local |
指定全局区域中的 /opt/local 将要在所配置的区域中挂载为 /export/linux/local。
zonecfg:lx-zone:fs> set special=/opt/local |
在非全局区域中,/export/linux/local 文件系统是可读写的。
指定文件系统类型,在此过程中为 lofs。
zonecfg:lx-zone:fs> set type=lofs |
此类型指明了内核与文件系统的交互方式。
结束文件系统指定。
zonecfg:lx-zone:fs> end |
可多次执行此步骤来添加多个文件系统。
添加网络虚拟接口。
zonecfg:lx-zone> add net |
以下面格式设置 IP 地址:区域的 IP 地址/网络掩码。在此过程中使用了 10.6.10.233/24。
zonecfg:lx-zone:net> set address=10.6.10.233/24 |
设置网络接口的物理设备类型,在此过程中为 bge 设备。
zonecfg:lx-zone:net> set physical=bge0 |
结束指定。
zonecfg:lx-zone:net> end |
可多次执行此步骤来添加多个网络接口。
通过使用 attr 资源类型在此区域中启用全局区域中存在的音频设备。
zonecfg:lx-zone> add attr |
检验区域的配置。
zonecfg:lx-zone> verify |
提交区域的配置。
zonecfg:lx-zone> commit |
退出 zonecfg 命令。
zonecfg:lx-zone> exit |
请注意,即使您没有在提示符下明确键入 commit,也会在键入 exit 或出现 EOF 时自动执行 commit。
zonecfg 命令还支持通过同一个 shell 调用多条子命令,这些子命令放在引号中并用分号进行分隔。
global# zonecfg -z lx-zone "create -t SUNWlx; set zonepath=/export/home/lx-zone" |
请参见安装和引导 lx 标记区域来安装已提交的区域配置。
可以使用此脚本在系统中配置和引导多个区域。此脚本采用以下参数:
要创建的区域个数
zonename 前缀
可用作基目录的目录
要执行此脚本,您必须是全局区域中的全局管理员。全局管理员在全局区域中拥有超级用户权限或承担主管理员角色。
#!/bin/ksh
#
# Copyright 2006 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
#ident "%Z%%M% %I% %E% SMI"
if [[ -z "$1" || -z "$2" || -z "$3" || -z "$4" ]]; then
echo "usage: $0 <#-of-zones> <zonename-prefix> <basedir> <template zone>"
exit 2
fi
if [[ ! -d $3 ]]; then
echo "$3 is not a directory"
exit 1
fi
state=`zoneadm -z $4 list -p 2>/dev/null | cut -f 3 -d ":"`
if [[ -z "$state" || $state != "installed" ]]; then
echo "$4 must be an installed, halted zone"
exit 1
fi
template_zone=$4
nprocs=`psrinfo | wc -l`
nzones=$1
prefix=$2
dir=$3
ip_addrs_per_if=`ndd /dev/ip ip_addrs_per_if`
if [ $ip_addrs_per_if -lt $nzones ]; then
echo "ndd parameter ip_addrs_per_if is too low ($ip_addrs_per_if)"
echo "set it higher with 'ndd -set /dev/ip ip_addrs_per_if <num>"
exit 1
fi
i=1
while [ $i -le $nzones ]; do
zoneadm -z $prefix$i clone $template_zone > /dev/null 2>&1
if [ $? != 0 ]; then
echo configuring $prefix$i
F=$dir/$prefix$i.config
rm -f $F
echo "create -t SUNWlx" > $F
echo "set zonepath=$dir/$prefix$i" >> $F
zonecfg -z $prefix$i -f $dir/$prefix$i.config 2>&1 | \
sed 's/^/ /g'
else
echo "skipping $prefix$i, already configured"
fi
i=`expr $i + 1`
done
i=1
while [ $i -le $nzones ]; do
j=1
while [ $j -le $nprocs ]; do
if [ $i -le $nzones ]; then
if [ `zoneadm -z $prefix$i list -p | \
cut -d':' -f 3` != "configured" ]; then
echo "skipping $prefix$i, already installed"
else
echo installing $prefix$i
mkdir -pm 0700 $dir/$prefix$i
chmod 700 $dir/$prefix$i
zoneadm -z $prefix$i install -s -d /path/to/ISOs > /dev/null 2>&1 &
sleep 1 # spread things out just a tad
fi
fi
i=`expr $i + 1`
j=`expr $j + 1`
done
wait
done
i=1
para=`expr $nprocs \* 2`
while [ $i -le $nzones ]; do
date
j=1
while [ $j -le $para ]; do
if [ $i -le $nzones ]; then
echo booting $prefix$i
zoneadm -z $prefix$i boot &
fi
j=`expr $j + 1`
i=`expr $i + 1`
done
wait
done
|
要执行此过程,您必须是全局区域中的全局管理员。
成为超级用户或承担主管理员角色。
有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
显示区域配置。
global# zonecfg -z zonename info |
以下各节包含用于修改、恢复或删除区域配置的过程。
本章讨论以下主题:
在系统上安装 lx 区域
停止、重新引导和卸载区域
在系统上克隆区域
zoneadm(1M) 手册页中介绍的 zoneadm 命令是用于安装和管理非全局区域的主要工具。必须从全局区域运行使用 zoneadm 命令的操作。可以使用 zoneadm 命令执行以下任务:
检验区域
安装区域
引导区域
显示有关正在运行的区域的信息
停止区域
重新引导区域
卸载区域
将区域从系统中某个位置重定位到同一系统的另一位置
根据同一系统中某个现有区域的配置置备新区域
使用 zonecfg 命令迁移区域
有关区域安装和检验过程的信息,请参见第 34 章和 zoneadm(1M) 手册页。有关 zoneadm list 命令支持的选项,另请参阅 zoneadm(1M) 手册页。有关区域配置过程的信息,请参见第 32 章和 zonecfg(1M) 手册页。区域状态在非全局区域状态模型中介绍。
如果您打算为区域生成 Solaris 审计记录,请在安装非全局区域之前先阅读在区域中使用 Solaris 审计。
安装区域后,所有软件配置和管理工作都必须由区域管理员在区域内使用 Linux 工具来执行。
可以使用 tarball、CD-ROM 或 DVD 光盘或者 ISO 映像来安装 lx 标记区域。如果从光盘或 ISO 映像安装,则可指定 Sun 软件包簇类别。类别是累积的。如果不指定簇,则缺省值为 desktop。
表 33–1 软件包簇类别|
Sun 类别 |
内容 |
|---|---|
|
core |
构建区域需要的软件包的最小集合。 |
|
server |
core 和面向服务器的软件包,如 httpd、mailman、imapd 和 spam-assassin。 |
|
desktop |
server 和面向用户的软件包,如 evolution、gimp、mozilla 和 openoffice。 |
|
developer |
desktop 和开发者软件包,如 bison、emacs、gcc、vim-X11 和许多库开发软件包。 |
|
all |
安装介质上已知不干扰区域运行的所有内容。某些软件包在 Linux 区域中可能不起作用。 |
要安装已配置的 lx 标记区域,请参见如何安装 lx 标记区域。
本节仅适用于初始区域构建,不适用于现有区域的克隆。
在配置了非全局区域之后,应检验是否可以在系统配置中安全地安装该区域。然后您可以安装此区域。区域的根文件系统所需的文件由系统安装在区域的根路径下。如如何安装 lx 标记区域中所述,将从 CD、ISO 映像或 tarball 中填充 Linux 区域。
当区域从已安装状态转换为就绪状态时,便会添加在配置文件中指定的资源。系统会指定唯一的区域 ID。将挂载文件系统,设置网络接口并配置设备。转换为就绪状态之后,虚拟平台便可开始运行用户进程。
处于就绪状态的区域中不存在任何正在执行的用户进程。就绪区域与正在运行的区域之间的主要差异在于,正在运行的区域中至少有一个进程正在执行。有关更多信息,请参见 init(1M) 手册页。
在就绪状态下,会启动 zsched 和 zoneadmd 进程来管理虚拟平台。
区域管理守护进程 zoneadmd 是管理区域虚拟平台的主要进程。有关更多信息,请参见zoneadmd 守护进程。
zsched 区域调度程序中介绍了用于管理应用程序环境的进程 zsched。
zoneadm 命令用于创建区域应用程序环境。
所有其他配置均由区域管理员在区域中使用 Linux 工具完成。
请注意,如果区域是从 Sun tarball 安装的,则 root 用户(超级用户)口令将为 root。从 ISO 映像或 CD 安装区域时,root(超级用户)口令将复位(为空)。
本节概述了停止、重新引导、卸载和克隆区域的过程。
zoneadm halt 命令用于删除区域的应用程序环境和虚拟平台。然后,区域便恢复为已安装状态。将中止所有进程,取消设备配置,销毁网络接口,卸载文件系统,以及销毁内核数据结构。
halt 命令不在区域内运行任何关闭脚本。要关闭区域,请参见如何使用 zlogin 关闭区域。
停止操作失败时,请参见区域无法停止。
zoneadm reboot 命令用于重新引导区域。区域将停止,然后再次引导。重新引导区域之后,区域 ID 会更改。
区域支持对 zoneadm boot 和 reboot 命令使用以下引导参数:
-i altinit
-s
以下定义适用:
选择一个备用可执行文件作为第一个进程。altinit 必须是可执行文件的有效路径。缺省的第一个进程在 init(1M) 中进行了介绍。
将区域引导至 init 级别 s。
有关用法示例,请参见如何引导 lx 标记区域和如何在单用户模式下引导 lx 标记区域。
有关 init 命令的信息,请参见 init(1M)。
如果您在区域配置中将 autoboot 资源属性设置为 true,则引导全局区域时便会自动引导此区域。缺省设置为 false。
请注意,要自动引导区域,还必须启用区域服务 svc:/system/zones:default。
zoneadm uninstall 命令可删除区域根文件系统中的所有文件。除非还使用了 -F(强制)选项,否则该命令会提示您确认此操作以继续执行。使用 uninstall 命令时应谨慎,因为此操作是无法恢复的。
通过克隆可以复制系统上现有的已配置和已安装区域,从而在同一系统上快速置备新区域。有关克隆进程的更多信息,请参见在同一系统上克隆 lx 标记区域。
有关引导和重新引导区域的过程,请参见如何引导 lx 标记区域和如何重新引导 lx 标记区域。
本章介绍如何安装和引导 lx 标记区域,还介绍了以下其他任务:
使用克隆在同一系统上安装区域
停止、重新引导和卸载区域
从系统中删除区域
|
任务 |
说明 |
参考 |
|---|---|---|
|
获取 Linux 归档文件。 |
在安装 lx 标记区域之前,必须先获取 Linux 归档文件。 | |
|
安装已配置的 lx 标记区域。 |
安装处于已配置状态的区域。 | |
|
(可选)安装可用软件包的子集。 |
在从 CD 或 ISO 映像中进行安装时,可以安装安装介质中的软件包的子集。 | |
|
(可选)在区域中启用联网功能。 |
联网功能在缺省情况下处于禁用状态,如果需要此功能,则必须先启用此功能。 | |
|
获取区域的通用唯一标识符 (universally unique identifier, UUID)。 |
在安装区域时指定的这个单独的标识符是标识区域的另一种方法。 | |
|
(可选)将已安装的区域转换为就绪状态。 |
如果您要引导区域并立即使用,则可以跳过此过程。 | |
|
引导 lx 标记区域。 |
引导区域时会将此区域置于运行状态。既可以从就绪状态引导区域,也可以从已安装状态引导区域。 | |
|
在单用户模式下引导区域。 |
仅引导至里程碑 svc:/milestone/single-user:default。此里程碑相当于 init 级别 s。请参见 init(1M) 和 svc.startd(1M) 手册页。 |
使用 zoneadm(1M) 手册页中所述的 zoneadm 命令,可以执行非全局区域的安装任务。
在安装 lx 标记区域之前,必须先获取 Linux 归档文件。归档文件通过以下形式分发:
压缩的 tar 归档文件 (tarball)
一组 CD-ROM 或 DVD 光盘
一组 ISO 映像
使用以下方法之一获取 Linux 分发:
要下载 tarball,请转到 http://opensolaris.org/os/community/brandz/downloads。按照下载站点中的说明操作。
要获取一组 CD-ROM 或 DVD 光盘,请转到位于 http://www.centos.org 的 CentOS 站点或位于 http://www.redhat.com 的 Red Hat 站点。
要获取 ISO 映像,请转到位于 http://www.centos.org 的 CentOS 站点或位于 http://www.redhat.com 的 Red Hat 站点。
此过程用于安装已配置的 lx 标记区域。安装区域后,所有软件配置和管理工作都必须由区域管理员在区域内使用 Linux 工具来执行。
有关使用不同分发路径的区域安装命令行示例,请参见示例 34–1、示例 34–2 和示例 34–3。如果从光盘或 ISO 映像安装,则必须指定 Sun 软件包簇类别。有关软件包簇类别的信息,请参见lx 标记区域安装方法。
请注意,可以在安装一个区域之前检验该区域。如果您跳过此过程,则会在安装区域时自动执行检验。(可选)如何在安装已配置的区域之前检验该区域中介绍了此过程。
要执行此过程,您必须是全局区域中的全局管理员。
在步骤 3 中,如果 zonepath 在 ZFS 上,zoneadm install 命令将在安装区域时自动为 zonepath 创建 ZFS 文件系统(数据集)。可以通过添加 -x nodataset 参数阻止此操作。
成为超级用户或承担主管理员角色。
有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
(可选)如果要从 DVD 或 CD 进行安装,请在系统中启用 volfs 并检验它是否正在运行。
global# svcadm enable svc:/system/filesystem/volfs:default |
global# svcs | grep volfs |
将显示以下类似信息:
online 17:30 svc:/system/filesystem/volfs:default |
通过将 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。
(可选)如果显示错误消息并且无法安装区域,请键入以下命令来获取区域状态:
global# zoneadm -z lx-zone list -iv |
如果显示为已配置状态,请执行消息中指定的更正操作,并再次尝试执行 zoneadm install 命令。
如果显示为未完成状态,请首先执行以下命令:
global# zoneadm -z lx-zone uninstall |
然后执行消息中指定的更正操作,并再次尝试执行 zoneadm install 命令。
当安装完成时,使用带有 -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 |
global# zoneadm -z lx-zone install -d /export/centos_fs_image.tar.bz2 |
对于 CD 或 DVD 安装,必须在系统中启用 volfs。必须指定一个软件簇软件包。例如,使用 development 安装完整环境,或键入特定簇的名称。如果不指定簇软件包,缺省情况下将安装 desktop。CD 设备为 /cdrom/cdrom0。
global# zoneadm -z lx-zone install -d /cdrom/cdrom0 development |
必须指定一个软件簇软件包。使用 development 安装完整环境,或指定特定簇。如果不指定簇软件包,缺省情况下将安装 desktop。CentOS ISO 映像驻留在目录 /export/centos_3.7 中。
global# zoneadm -z lx-zone install -d /export/centos_3.7 development |
有关数据集的更多信息,请参见《Solaris ZFS 管理指南》。
如果区域安装中断或失败,则此区域会处于未完成状态。请使用 uninstall -F 将此区域重置为已配置状态。
在从 CD 或 ISO 映像中进行安装时,可以安装安装介质中的软件包的子集。可用子集有 core、server、desktop、developer 和 all。
要执行此过程,您必须是全局区域中的全局管理员。
成为超级用户或承担主管理员角色。
有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
只安装服务器软件包:
global# zoneadm -z lx-zone install -d archive_path server |
安装 lx 标记区域时,会禁用联网。使用类似如下的过程可以启用联网。
只有区域管理员可以执行此过程。
编辑区域中的 /etc/sysconfig/network 文件。
NETWORKING=yes HOSTNAME=your.hostname |
要设置 NIS 域,请添加类似于以下内容的行:
NISDOMAIN=domain.Sun.COM |
有关配置联网或命名服务的更多信息,请查看有关 Linux 分发的相关文档。
安装区域时,会为其指定一个通用唯一标识符 (universally unique identifier, UUID)。通过将 zoneadm 与 list 子命令和 -p 选项一起使用,可以获取 UUID。UUID 是显示的第五个字段。
查看已安装区域的 UUID。
global# zoneadm list -p |
将显示以下类似信息:
0:global:running:/::native
1:centos38:running:/zones/centos38:27fabdc8-d8ce-e8aa-9921-ad1ea23ab063:lx
|
global# zoneadm -z lx-zone -u 61901255-35cf-40d6-d501-f37dc84eb504 list -v |
如果 -u uuid-match 和 -z zonename 都存在,则先根据 UUID 执行匹配。如果找到具有指定 UUID 的区域,则使用该区域并忽略 -z 参数。如果找不到具有指定 UUID 的区域,则系统将按区域名称进行搜索。
可以卸载区域,然后以相同的名称重新安装,但内容不同。也可以对区域进行重命名,而不更改内容。由于以上原因,UUID 比区域名称更可靠。
有关更多信息,请参见 zoneadm(1M) 和 libuuid(3LIB)。
如果对系统的管理性更改导致区域不可用或不一致,则可以将已安装区域的状态更改为未完成。
要执行此过程,您必须是全局区域中的全局管理员。
成为超级用户或承担主管理员角色。
有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
将区域 testzone 标记为未完成。
global# zoneadm -z testzone mark incomplete |
使用带有 -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 |
将区域标记为未完成的操作是无法恢复的。可对标记为未完成的区域执行的唯一操作是卸载该区域,使其返回已配置状态。请参见如何卸载标记区域。
转换为就绪状态之后,虚拟平台便可开始运行用户进程。处于就绪状态的区域中没有执行任何用户进程。
如果您要引导区域并立即使用,则可以跳过此过程。引导区域时便会自动从就绪状态进行转换。
引导区域会将该区域置于运行状态。既可以从就绪状态引导区域,也可以从已安装状态引导区域。处于已安装状态的区域经透明引导,会从就绪状态转换为正在运行状态。允许登录到处于正在运行状态下的区域。
要执行此过程,您必须是全局区域中的全局管理员。
请注意,不能在启用标签的 Trusted Solaris 系统中引导标记区域。
成为超级用户或承担主管理员角色。
有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
使用带有 -z 选项、区域名称 lx-zone 以及 boot 子命令的 zoneadm 命令引导区域。
global# zoneadm -z lx-zone boot |
当引导完成时,使用带有 -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 |
global# zoneadm -z lx-zone boot -- -i /path/to/process |
如果显示一条消息,指出系统找不到要用于在区域配置中指定的 IP 地址的网络掩码,请参见引导区域时显示 netmasks 警告。请注意,此消息只是警告,而命令已成功执行。
成为超级用户或承担主管理员角色。
有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
在单用户模式下引导区域。
global# zoneadm -z lx-zone boot -- -s |
要登录到区域并查看配置,请参见登录到 lx 标记区域。
|
任务 |
说明 |
参考 |
|---|---|---|
|
停止区域。 |
停止过程用于删除区域的应用程序环境和虚拟平台。此过程可将区域从就绪状态返回到已安装状态。有关如何干净地关闭区域,请参见如何使用 zlogin 关闭 lx 标记区域。 | |
|
重新引导区域。 |
重新引导过程会停止区域,然后再次引导它。 | |
|
卸载区域。 |
此过程可删除区域根文件系统中的所有文件。请慎重使用本过程。此操作无法撤消。 | |
|
根据同一系统中某个现有区域的配置置备新的非全局区域。 |
克隆区域是安装区域的另外一种更快速的方法。在安装新区域之前,仍然需要先对其进行配置。 | |
|
从系统中删除非全局区域。 |
此过程将从系统中完全删除区域。 |
停止过程用于删除 lx 标记区域的应用程序环境和虚拟平台。有关如何干净地关闭区域,请参见“如何使用 zlogin 关闭 lx 标记区域”。
要执行此过程,您必须是全局区域中的全局管理员。
成为超级用户或承担主管理员角色。
有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
列出系统上正在运行的区域。
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 |
使用带有 -z 选项、区域名称(例如 lx-zone)以及 halt 子命令的 zoneadm 命令停止给定区域。
global# zoneadm -z lx-zone halt |
再次列出系统上的区域,以检验是否已停止 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 |
如果您要重新启动区域,请引导它。
global# zoneadm -z lx-zone boot |
如果区域没有正常停止,请参见区域无法停止以获得疑难解答提示。
成为超级用户或承担主管理员角色。
有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
列出系统上正在运行的区域。
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 |
使用带有 -z reboot 选项的 zoneadm 命令重新引导区域 lx-zone。
global# zoneadm -z lx-zone reboot |
再次列出系统上的区域,以检验是否已重新引导 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 通常会在重新引导后更改。
此过程会删除区域根文件系统中的所有文件。此操作是无法恢复的。
区域不能处于正在运行状态。uninstall 操作对于正在运行的区域无效。
要执行此过程,您必须是全局区域中的全局管理员。
成为超级用户或承担主管理员角色。
有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
列出系统上的区域。
global# zoneadm list -v |
将显示以下类似信息:
ID NAME STATUS PATH BRAND IP 0 global running / native shared - lx-zone installed /export/home/lx-zone lx shared |
使用带有 -z uninstall 选项的 zoneadm 命令删除区域 lx-zone。
您还可以使用 -F 选项强制执行操作。如果未指定此选项,则系统将提示进行确认。
global# zoneadm -z lx-zone uninstall -F |
请注意,针对 zonepath 卸载具有自己的 ZFS 文件系统的区域时,将销毁该 ZFS 文件系统。
再次列出系统上的区域,以检验是否不再列出 lx-zone。
global# zoneadm list -v |
将显示以下类似信息:
ID NAME STATUS PATH BRAND IP 0 global running / native shared |
如果区域卸载中断,则此区域停留在未完成状态。请使用 zoneadm uninstall 命令将此区域重置为已配置状态。
使用 uninstall 命令时应谨慎,因为此操作是无法恢复的。
克隆用于通过从源 zonepath 向目标 zonepath 复制数据来在系统上置备新区域。
在安装新区域之前,必须先对其进行配置。传递给 zoneadm create 子命令的参数是要克隆的区域名称。必须停止此源区域。
要执行此过程,您必须是全局区域中的全局管理员。
成为超级用户或承担主管理员角色。
有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
停止要克隆的源区域,在此过程中该区域为 lx-zone。
global# zoneadm -z lx-zone halt |
通过将源区域 lx-zone 的配置导出到文件(例如 master),开始配置新区域。
global# zonecfg -z lx-zone export -f /export/zones/master |
也可以通过使用如何配置区域中的过程而不是通过修改现有配置来创建新区域配置。如果使用此方法,请在创建区域后,直接跳到步骤 6。
编辑文件 master。至少要为新区域设置一个不同的 zonepath 和 IP 地址。
通过使用文件 master 中的命令创建新区域 zone1。
global# zonecfg -z zone1 -f /export/zones/master |
通过克隆 lx-zone 安装新区域 zone1。
global# zoneadm -z zone1 clone lx-zone |
系统将显示:
Cloning zonepath /export/home/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 - zone1 installed /export/home/zone1 lx shared |
可以从克隆区域时最初捕获的现有快照多次克隆源区域。
要执行此过程,您必须是全局区域中的全局管理员。
成为超级用户或承担主管理员角色。
有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
配置区域 zone2。
指定要使用现有快照来创建 new-zone2。
global# zoneadm -z zone2 clone -s zeepool/zones/lx-zone@SUNWzone1 lx-zone |
系统将显示:
Cloning snapshot zeepool/zones/lx-zone@SUNWzone1 |
zoneadm 命令从快照 SUNWzone1 中验证软件并克隆快照。
列出系统上的区域。
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 |
可以使用此过程指定复制 zonepath,从而阻止在 ZFS 文件系统上自动克隆区域。
要执行此过程,您必须是全局区域中的全局管理员。
成为超级用户或承担主管理员角色。
有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
指定复制 ZFS 上的 zonepath 而不是进行 ZFS 克隆。
global# zoneadm -z zone1 clone -m copy lx-zone |
关闭区域 lx-zone。
global# zlogin lx-zone shutdown |
删除 lx-zone 的根文件系统。
global# zoneadm -z lx-zone uninstall -F |
删除 lx-zone 的配置。
global# zonecfg -z lx-zone delete -F |
列出系统上的区域,以检验是否不再列出 lx-zone。
global# zoneadm list -iv |
将显示以下类似信息:
ID NAME STATUS PATH BRAND IP 0 global running / native shared |
本章提供以下信息:
有关区域登录的介绍性信息
完成已安装 lx 标记区域的内部配置
从全局区域登录到区域
关闭区域
使用 zonename 命令列显当前区域的名称
使用 zlogin 命令,可以从全局区域登录到任何处于正在运行状态或就绪状态的区域。
只能使用带有 -C 选项的 zlogin 命令登录到不处于运行状态的区域。
除非使用 -C 选项连接到区域控制台,否则使用 zlogin 登录到区域会启动新任务。一个任务不能跨两个区域。
如如何使用非交互模式访问 lx 标记区域中所述,可以通过提供要在区域内运行的命令,在非交互模式下使用 zlogin 命令。但是,该命令或它所作用的所有文件都不能驻留在 NFS 上。如果命令的任意打开的文件或其地址空间的任意部分驻留在 NFS 上,则此命令将失败。地址空间包括可执行的命令本身以及命令的链接库。
只有全局区域中的全局管理员才能使用 zlogin 命令。有关更多信息,请参见 zlogin(1) 手册页。
非全局区域登录方法中提供了区域控制台和用户登录方法的概述。
当出现登录问题使您无法使用 zlogin 命令或带 -C 选项的 zlogin 命令来访问区域时,可以使用故障安全模式。该模式在故障安全模式中介绍。
有关远程登录区域的信息在远程登录中介绍。
交互模式分配新的伪终端,以供在区域内部使用。非交互模式用于运行可管理区域的 shell 脚本。有关更多信息,请参见交互模式与非交互模式。
|
任务 |
说明 |
参考 |
|---|---|---|
|
登录到区域。 |
您可以使用交互模式分配伪终端或提供要在区域中运行的命令,通过控制台登录到区域。提供要运行的命令不会分配伪终端。当指向区域的连接被拒绝时,您还可以使用故障安全模式进行登录。 | |
|
退出标记区域。 |
从标记区域断开。 | |
|
关闭标记区域。 |
使用 shutdown 实用程序或脚本来关闭标记区域。 |
使用 zlogin 命令,可以从全局区域登录到任何处于正在运行状态或就绪状态的区域。有关更多信息,请参见 zlogin(1) 手册页。
如以下过程中所述,您可以通过多种方法登录到区域。您还可以远程登录,如远程登录中所述。
要执行此过程,您必须是全局区域中的全局管理员。
成为超级用户或承担主管理员角色。
有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
使用带有 -C 选项和区域名称(例如 lx-zone)的 zlogin 命令。
global# zlogin -C lx-zone [Connected to zone 'lx-zone' console] |
如果您在发出 zoneadm boot 命令之后立即启动 zlogin 会话,则会显示区域的引导消息:
INIT: version 2.85 booting Welcome to CentOS Press 'I' to enter interactive startup. Configuring kernel parameters: [ OK ] Setting hostname lx-zone: [ OK ] [...] CentOS release 3.6 (Final) Kernel 2.4.21 on an i686 |
当显示区域控制台时,以 root 身份登录,按回车键,并在提示时键入超级用户口令。
lx-zone console login: root Password: |
回顾一下,当从 Sun tarball 安装区域时,root(超级用户)口令为 root。当从 ISO 映像或 CD 安装区域时,root(超级用户)口令未设置(为空)。
在交互模式下,会分配新的伪终端以在区域内部使用。
要执行此过程,您必须是全局区域中的全局管理员。
成为超级用户或承担主管理员角色。
有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
从全局区域登录到某个区域(例如 lx-zone)。
global# zlogin lx-zone |
将显示以下类似信息:
[Connected to zone 'lx-zone' pts/2] Last login: Wed Jul 3 16:25:00 on console Sun Microsystems Inc. SunOS 5.10 Generic July 2006 |
键入 exit 关闭连接。
将显示以下类似消息:
[Connection to zone 'lx-zone' pts/2 closed] |
要执行此过程,您必须是全局区域中的全局管理员。
成为超级用户或承担主管理员角色。
有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
登录到某个区域,例如 lx-zone。
global# zlogin lx-zone |
检验当前是否在 Solaris 操作系统下的 Linux 环境中运行。
[root@lx-zone root]# uname -a |
将显示以下类似信息:
Linux lx-zone 2.4.21 BrandZ fake linux i686 i686 i386 GNU/Linux |
当用户提供要在区域内部运行的命令时,便会启用非交互模式。非交互模式不会分配新的伪终端。
请注意,命令或运行命令的所有文件都不能驻留在 NFS 上。
要执行此过程,您必须是全局区域中的全局管理员。
成为超级用户或承担主管理员角色。
有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
从全局区域登录到 lx-zone 区域并提供命令名称。
将命令替换为要在区域内运行的命令的名称。
global# zlogin lx-zone command |
global# zlogin lx_master uptime 21:16:01 up 2:39, 0 users, load average: 0.19, 0.13, 0.11 fireball# |
有关 zlogin 命令选项的更多信息,请参见 zlogin(1) 手册页。
当指向区域的连接被拒绝时,可以使用带有 -S 选项的 zlogin 命令进入区域的最小环境。
要执行此过程,您必须是全局区域中的全局管理员。
成为超级用户或承担主管理员角色。
有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
在全局区域中,使用带有 -S 选项的 zlogin 命令访问区域(例如 lx-zone)。
global# zlogin -S lx-zone |
如果在全局区域中运行 init 0 干净地关闭 Solaris 系统,也会在系统上的每个非全局区域中运行 init 0。请注意,init 0 在系统关闭之前不会警告本地和远程用户注销。
使用此过程可以干净地关闭区域。有关如何在不运行关闭脚本的情况下停止区域,请参见如何停止区域。
要执行此过程,您必须是全局区域中的全局管理员。
成为超级用户或承担主管理员角色。
有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
登录到要关闭的区域(例如 lx-zone),并将 shutdown 指定为实用程序的名称,将 init 0 指定为状态。
global# zlogin lx-zone shutdown -i 0 |
您的站点可能具有自己的适用于特定环境的关闭脚本。
目前,不能在非交互模式下使用 shutdown 命令将区域置于单用户状态。有关更多信息,请参见 CR 6214427。
可以使用交互式登录,如如何使用交互模式访问标记区域中所述。
本章介绍如何:
将现有的 lx 标记区域移动到同一计算机上的新位置。
在执行实际迁移前验证将在 lx 标记区域迁移中发生的情况。
将现有的 lx 标记区域迁移到新计算机中。
此过程用于通过更改 zonepath 将区域移动到同一系统上的新位置。必须停止该区域。新 zonepath 必须位于本地文件系统中。需要满足资源和属性类型中介绍的标准 zonepath 条件。
成为超级用户或承担主管理员角色。
停止要移动的区域,在此过程中为 db-zone。
global# zoneadm -z db-zone halt |
使用带有 move 子命令的 zoneadm 命令将区域移动到新 zonepath,即 /export/zones/db-zone。
global# zoneadm -z db-zone move /export/zones/db-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 - db-zone installed /export/zones/db-zone lx shared |
可以使用 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。
本章包含有关在 lx 标记区域中运行应用程序所需的材料。
在使用支持的 CentOS 或 Red Hat Enterprise Linux 分发安装区域时,就创建了一个支持的区域。如果向此区域中添加不同版本的软件包,则可能会创建一个不支持的标记区域。
使用 yum upgrade 或 up2date 将 CentOS 3.x 分发升级到不同版本。
有关说明,请参见位于 http://www.centos.org 的文档。
使用 up2date 将 Red Hat Enterprise Linux 3.x 分发更新到不同版本。
有关说明,请参见位于 http://www.redhat.com 的文档。
yum:
《Software Management with Yum》文档中包含有关从隔离软件包中安装软件的一章。请参见 http://fedora.redhat.com/docs/yum。
yum.conf(5)
yum(8)
rpm:
请参见位于 http://kbase.redhat.com/faq/FAQ_35_198.shtm 的 How do I install or upgrade an RPM package?。
rpm(8)
通过装入 CD 并运行安装程序来安装应用程序,就像在 Linux 系统中进行安装一样。本节对 lx 标记区域中典型的应用程序安装进行了说明。
如果您知道将要使用 CD 或 DVD 在 lx 标记区域中安装应用程序,请在最初配置标记区域时,在全局区域内添加对 CD 或 DVD 介质的只读访问权限。请参见如何使用 CD 安装 MATLAB 7.2中的步骤 7。
MATLAB 是一种可快速执行计算密集型任务的高级语言和交互式环境。该产品由 The MathWorks 开发。有关更多信息,请参见 http://www.mathworks.com。
获取 MATLAB 7.2 CD。
MATLAB/Simulink 软件包中有三张 CD。简单的 MATLAB 安装只需要使用光盘 1 和光盘 3。
按照如何配置、检验和提交 lx 标记区域和安装和引导 lx 标记区域中的说明创建和安装 lx 标记区域。
如果 Volume Management 文件系统未在全局区域中运行,则启动它。
global# svcadm volfs enable |
插入介质。
检查驱动器中的介质。
global# volcheck |
测试 CD 是否自动装入。
global# ls /cdrom |
将显示以下类似信息:
cdrom cdrom1 mathworks_2006a1 |
在非全局区域中使用选项 ro,nodevices(只读并且无设备)来回送挂载文件系统。
global# zonecfg -z lx-zone zonecfg:lx-zone> add fs zonecfg:lx-zone:fs> set dir=/cdrom zonecfg:lx-zone:fs> set special=/cdrom zonecfg:lx-zone:fs> set type=lofs zonecfg:lx-zone:fs> add options [ro,nodevices] zonecfg:lx-zone:fs> end zonecfg:lx-zone> commit zonecfg:lx-zone> exit |
重新引导非全局区域。
global# zoneadm -z lx-zone reboot |
使用带有 -v 选项的 zoneadm 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 |
登录到 lx 区域。
global# zlogin lx-zone |
检验 CD-ROM 挂载。
lx-zone# ls /cdrom |
将显示以下类似信息:
cdrom cdrom1 mathworks_2006a1 |
按照 MATLAB 文档中的说明创建许可证文件。
按照产品安装指南中的介绍安装产品。
lx-zone# /mnt/install |
退出区域。
lx-zone# exit |
您可能需要在非全局区域中保留 /cdrom 文件系统。挂载始终反映 CD-ROM 驱动器的当前内容,如果驱动器为空,则反映为一个空目录。
(可选)如果想要从非全局区域中删除 /cdrom 文件系统,请使用以下过程。
global# zonecfg -z lx-zone zonecfg:lx-zone> remove fs dir=/cdrom zonecfg:lx-zone> commit zonecfg:lx-zone> exit |
请注意,此方法需要占用相当大的磁盘空间。
获取 MATLAB 7.2 CD。
MATLAB/Simulink 软件包中有三张 CD。简单的 MATLAB 安装只需要使用光盘 1 和光盘 3。
按照如何配置、检验和提交 lx 标记区域和安装和引导 lx 标记区域中的说明创建和安装 lx 标记区域。
将每张 CD 中的数据复制到 .iso 文件中。
global# /usr/bin/dd if=/dev/rdsk/c1d0s2 of=disk1.iso |
上述命令可将第一张 CD 中的数据复制到文件 disk1.iso 中。可对第三张 CD 重复此操作,但使用不同的文件名,如 disk3.iso。
从全局区域中,将第一个 .iso 文件按 lofi 方式挂载到 lx 区域。
global# lofiadm -a /zpool/local/disk1.iso global# mount -F hsfs /dev/lofi/1 /zones/lx-zone/root/mnt |
登录到 lx 区域。
global# zlogin lx-zone |
使用 X 转发来将显示重定向到您的桌面:
lx-zone# ssh -X root@lx-zone |
按照 MATLAB 文档中的说明创建许可证文件。
按照产品安装指南中的介绍安装产品。
lx-zone# /mnt/install |
当提示插入 CD 3 时,请返回全局区域终端窗口,然后挂载 disk3.iso 文件来替代第一个文件。
global# umount /zones/lx-zone/root/mnt global# lofiadm -d /dev/lofi/1 global# lofiadm -a /zpool/local/disk3.iso global# mount -F hsfs /dev/lofi/1 /zones/lx-zone/root/mnt |
将完成安装。
有关区域备份的信息,请参见关于备份安装了区域的 Solaris 系统、确定在非全局区域中备份的内容、关于恢复非全局区域和恢复非全局区域。
lx 标记区域中只支持共享 IP 网络配置。
Linux 区域中不支持 chroot 命令。如果在某一进程中使用,则该进程将无法再访问其运行时所需的 Solaris 库。
尽管您可以在启用了标记的 Trusted Solaris 系统上配置和安装 lx 标记区域,但不能在此系统配置中引导 lx 标记区域。
您不能使用 zonecfg 命令的 fs 资源属性来添加本地 Linux 文件系统。