BrandZ 为创建包含非本机操作环境的非全局区域提供了框架。这些容器是在 SolarisTM 操作系统中运行在本机环境中无法运行的应用程序时所使用的标记区域。此处介绍的标记是 solaris8 标记,即 Solaris 8 容器。
如果要现在创建 solaris8 区域,请转至评估 Solaris 8 系统。
缺省情况下,非全局区域与全局区域中的操作系统具有相同特征,它运行 Solaris 10 操作系统或更高的 Solaris 10 发行版。这些本地的非全局区域和全局区域在标准、运行时行为、命令集和性能特性等方面完全一致。
此外,也可以在非全局区域内运行不同的操作环境。标记区域 (branded zone, BrandZ) 框架对 Solaris Zones 基础结构进行了扩展,从而包括标记的创建或运行时行为的替换集。标记可以指各种操作环境。例如,非全局区域可以模仿其他版本的 Solaris 操作系统或 Linux 等操作环境。或者,它可以通过其他特性或功能来增强本机标记行为。每个区域都配有一个关联标记。
标记定义了可在区域中安装的操作环境并确定系统在该区域内的行为方式,从而确保该区域中安装的非本机软件可以正常运行。此外,区域的标记可用于在应用程序启动时识别正确的应用程序类型。所有标记区域管理都通过扩展本机区域结构来执行。所有区域的大多数管理步骤都相同。
可以在已配置状态下更改区域标记。一旦安装了标记区域,就不能更改或删除标记。
BrandZ 通过以下方式来扩展区域工具:
配置区域时,使用 zonecfg 命令设置区域的标记类型。
使用 zoneadm 命令报告区域的标记类型并管理区域。
虽然可以在启用标签的 Solaris Trusted Extensions 系统上配置和安装标记区域,但不能在此系统配置中引导标记区域。
权限。
设备支持。标记可以选择禁止添加任何不受支持或无法识别的设备。可以向 solaris8 非全局区域中添加设备。请参见关于 Solaris 8 标记区域。
标记区域所需的文件系统由相应标记定义。通过使用 zonecfg 的 fs 资源属性,可以向标记区域中添加其他 Solaris 文件系统。
标记区域在内核中提供一组插入点,这些插入点只适用于在某一标记区域中执行的进程。
这些点位于 syscall 路径、进程装入路径和线程创建路径之类的路径中。
在其中每个点处,标记可以选择补充或替换标准 Solaris 行为。
标记还能为 librtld_db 提供插件库。通过插件库,Solaris 工具(如 mdb(1) 中介绍的调试器和 dtrace(1M) 中介绍的 DTrace)可以访问在标记区域内运行的进程的符号信息。
容器提供从应用程序到平台资源的虚拟映射。利用区域可以使应用程序组件彼此隔离,即使这些区域共享单个 Solaris 操作系统实例也是如此。利用资源管理功能,您可以对工作负荷收到的资源数量进行分配。
容器建立了资源占用(如 CPU 利用率)的边界。这些边界可以扩展,以适应容器中运行的应用程序的不断变化的处理要求。
有关本指南的其他信息,另请参阅《系统管理指南:Solaris Containers-资源管理和 Solaris Zones》。该书提供了 Solaris Zones 和标记区域的完整概述。
您应该熟悉该指南中论述的下列区域和资源管理概念:
支持的功能和不支持的功能
资源控制,使管理员可以控制应用程序如何使用可用的系统资源
用于配置、安装和管理区域的命令,主要包括 zonecfg、zoneadm 和 zlogin
全局区域和非全局区域
完全根非全局区域模型
全局管理员和区域管理员
区域状态模型
区域隔离特性
权限
联网
区域 IP 类型,独占 IP 和共享 IP
Solaris Container 概念,即将资源管理功能(如资源池)用于区域
公平份额调度器 (fair share scheduler, FSS),一个使您可以根据份额来分配 CPU 时间的调度类
资源上限设置守护进程 (rcapd),可用于从全局区域中控制标记区域驻留集大小 (resident set size, RSS) 的使用
Solaris 8 标记区域 (solaris8) 是一种完整运行时环境,适用于运行 Solaris 10 8/07 或更高版本操作系统的 SPARC 计算机上的 Solaris 8 应用程序。该标记支持执行 32 位和 64 位 Solaris 8 应用程序。
solaris8 标记区域基于完全根区域模型。每个区域的文件系统都包含构成操作系统的软件的一个完整副本。但是,solaris8 区域与本地完全根区域的区别在于,不应用集中式修补。
许多 Solaris 10 功能都可供 solaris8 区域使用,其中包括:
旨在获得更高系统可靠性的故障管理体系结构 (Fault management architecture, FMA)(请参见 smf(5))。
在 Solaris 8 不支持的较新硬件上运行的能力。
Solaris 10 性能改进。
DTrace,从全局区域中运行,可用于检查 solaris8 区域中的进程。
Solaris 8 中提供的一些功能在 Solaris Zones 内不可用。
不能在非全局区域中配置以下功能:
Solaris Live Upgrade 引导环境
Solaris Volume Manager 元设备
共享 IP 区域中的 DHCP 地址分配
SSL 代理服务器
此外,非全局区域不能为 NFS 服务器,并且只能在全局区域中执行动态重新配置 (dynamic reconfiguration, DR) 操作。
下列限制适用于 solaris8 标记区域:
不支持 bsmconv(1M) 和 auditon(2) 中介绍的 Solaris 审计和 Solaris 基本安全模块审计。审计子系统始终显示为禁用。
cpc(3CPC) 中介绍的 CPU 性能计数器工具不可用。
以下磁盘和硬件相关命令不起作用:
add_drv(1M)
disks(1M)
format(1M)
fdisk(1M)
prtdiag(1M)
rem_drv(1M)
尽管区域不能使用委托的 ZFS 数据集,但区域可以驻留在 ZFS 文件系统中。可以添加 ZFS 文件系统,以便通过 zonecfg fs 资源与全局区域共享。请参见如何配置 solaris8 标记区域中的步骤 7。
请注意,setfacl 和 getfacl 命令不能用于 ZFS。如果解压缩对文件设置了 ACL 的 cpio 或 tar 归档文件,归档文件将收到有关无法设置 ACL 的警告,但文件仍会成功解压缩。这些命令可用于 UFS。
可以通过 zonecfg 命令向 solaris8 标记区域中添加下列组件:
使用 fs 资源可以向标记区域中添加其他 Solaris 文件系统。有关示例,请参见《系统管理指南:Solaris Containers-资源管理和 Solaris Zones》中的“如何配置区域”。
使用 device 资源可以向 solaris8 非全局区域中添加设备。有关添加设备的信息,请参见《系统管理指南:Solaris Containers-资源管理和 Solaris Zones》中的第 18 章 “规划和配置非全局区域(任务)”。要了解有关非全局区域中的设备注意事项的更多信息,请参见《系统管理指南:Solaris Containers-资源管理和 Solaris Zones》中的“非全局区域中的设备使用”。
使用 limitpriv 资源可以向 solaris8 非全局区域中添加权限。有关添加权限的信息,请参见《系统管理指南:Solaris Containers-资源管理和 Solaris Zones》中的第 18 章 “规划和配置非全局区域(任务)”和《系统管理指南:Solaris Containers-资源管理和 Solaris Zones》中的“非全局区域中的权限”。
可以指定网络配置。有关更多信息,请参见预配置任务、《系统管理指南:Solaris Containers-资源管理和 Solaris Zones》中的“共享 IP 非全局区域中的联网”和《系统管理指南:Solaris Containers-资源管理和 Solaris Zones》中的“Solaris 10 8/07:专用 IP 非全局区域中的联网”。
可以使用各种资源控制功能。有关更多信息,请参见《系统管理指南:Solaris Containers-资源管理和 Solaris Zones》中的第 17 章 “非全局区域配置(概述)”、《系统管理指南:Solaris Containers-资源管理和 Solaris Zones》中的第 18 章 “规划和配置非全局区域(任务)”和《系统管理指南:Solaris Containers-资源管理和 Solaris Zones》中的第 26 章 “Solaris Zones 管理(概述)”。
可以将现有的 Solaris 8 系统直接迁移到 solaris8 标记区域中。系统最好正在运行 Solaris 2/04 版本。有关更多信息,请参见为将 Solaris 8 系统直接迁移到区域中创建映像。