本节介绍自 Solaris 9 OS 最初于 2002 年 5 月发行以来,在 Solaris 10 3/05 发行版中新增或增强的所有系统资源增强功能。Solaris 10 OS 包括一项对 Solaris 用户至关重要的功能,即 Solaris Zones 分区技术。
此功能是 Solaris Express 2/04 发行版中的新增功能。在 Solaris Express 7/04 发行版中,添加了用于 Zone 的新功能。
Solaris Zones 软件分区技术是 Solaris Containers 环境的一个组件,该技术用于虚拟化操作系统服务,并为正在运行的应用程序提供一个独立且安全的环境。区域就是在 Solaris 操作系统的某个实例中创建的一个虚拟的操作系统环境。多个区域基本上可提供标准的 Solaris 接口和应用程序环境,不包括要求连接应用程序的新 ABI 或 API。
每个区域都可提供一组自定义的服务。对多个应用程序整合在一个服务器中的环境来说,使用多个区域是明智之举。通过在多个区域内部使用资源管理功能,可进一步控制各个应用程序使用可用系统资源的方式。
可以将一个区域想像为一个盒子。一个或多个应用程序可在这个盒子中运行,而不影响系统的其余部分。这种隔离可防止在某个区域中运行的进程监视或干扰在其他区域中运行的进程。即使在某个区域中运行的进程具有超级用户凭证,也不能查看或影响其他区域中的活动。
Solaris 操作系统的单个实例为全局区域。全局区域既是系统的缺省区域,也是用于在整个系统中实施管理控制的区域。全局区域的管理员可以创建一个或多个非全局区域。之后,这些非全局区域便可由相应的区域管理员来管理。区域管理员的权限仅限于某个非全局区域。
通过非全局区域提供的隔离几乎可细化到您所需的任何程度。区域不需要专用的 CPU、物理设备或部分物理内存。可以在单个域或系统中运行的多个区域之间复用这些资源,也可借助操作系统中可用的资源管理功能为每个区域分别分配这些资源。即便是在小型单处理器系统中,也能同时运行多个区域。
要实现进程隔离,一个进程只能看到同一区域中的各个进程,或向这些进程发送信号。
通过为每个区域至少提供一个逻辑网络接口,可在不同区域间实现基本通信。使用与每个区域关联的特定 IP 地址或通配符地址,可以将同一系统的不同区域中运行的应用程序绑定到同一网络端口。在某个区域中运行的应用程序看不到其他区域的网络流量。即使各个软件包的流使用同一物理接口,也会维护这种隔离。
每个区域都在文件系统分层结构中拥有一个位置。因为每个区域都只限于文件系统分层结构中的一个子树,所以在某一特定区域中运行的工作负荷不能访问在其他区域中运行的另一个工作负荷的盘上数据。
命名服务使用的文件驻留在区域本身的根文件系统视图中。因此,不同区域的命名服务之间相互分离并可单独配置。
有关如何在系统中配置和使用区域的信息,请参见《系统管理指南:Solaris Containers-资源管理和 Solaris Zones》。
资源控制 (rctls) 功能是 Solaris 9 软件中的新增功能。其他资源控制是 Software Express 试点计划以及 Solaris Express 3/04、8/04 和 10/04 发行版中的新增功能。
已经添加了新的基于项目和进程的资源控制。资源控制提供了一种机制,该机制可以控制应用程序利用系统资源的方式。
在 Software Express 试点计划中,添加了以下资源控制。这些资源控制将对 System V IPC(进程间通讯,interprocess communication)功能产生影响,其中包括共享的内存、信息队列和信号。
project.max-shm-ids
project.max-sem-ids
project.max-msg-ids
project.max-shm-memory
process.max-sem-nsems
process.max-sem-ops
process.max-msg-qbytes
有关更多信息,请参见System V IPC 配置。
在 Solaris Express 3/04 发行版中,添加了以下事件端口资源控制:
project.max-device-locked-memory
project.max-port-ids
process.max-port-events
在 Solaris Express 8/04 发行版中,添加了以下新资源控制:
project.max-lwps
project.max-tasks
在 Solaris Express 10/04 发行版中,添加了 project.max-contracts 资源控制。
在 Solaris Express 11/04 11/04 发行版中,添加了 process.max-crypto-memory 加密资源控制。
有关资源控制的信息,请参见《系统管理指南:Solaris Containers-资源管理和 Solaris Zones》中的第 6 章,“资源控制(概述)”。这一章包括以下主题:
目前可用的资源控制列表
资源控制概述
资源控制配置信息
有关配置资源控制的信息,还可参见 project(4) 手册页。
此功能是 Solaris Express 7/04 发行版中的新增功能。
以下是 Solaris Express 7/04 发行版中新增的项目数据库和资源控制命令增强功能:
针对资源控制值和命令扩展了对值和单元修饰符的支持
对项目属性字段进行验证和处理更加简便
请参见 project(4) 手册页。
修改了 prctl 和 projects 命令的输出格式并引入了新选项
请参见 prctl(1) 和 projects(1) 手册页。
有关上述更改的信息,请参见《系统管理指南:Solaris Containers-资源管理和 Solaris Zones》中的以下各章:
第 2 章“项目和任务(概述)”
第 3 章“管理项目和任务”
第 6 章“资源控制(概述)”
第 7 章“管理资源控制(任务)”
请注意,有关使用 useradd、usermod 和 passmgmt 命令来设置用户的缺省项目的信息,指南中已进行了更新。这些命令记录在 useradd(1M)、usermod(1M) 和 passmgmt(1M) 手册页中。
另请参见以下手册页:
此功能是 Solaris Express 1/04 发行版中的新增功能。
动态资源库 (DRP) 提供了一种机制,可调整每个库的资源分配,以便响应系统中的系统事件和应用程序负荷的更改,这些系统都启用了资源库。调整是自动进行的,目的是确保始终达到管理员指定的系统性能目标。对配置所做的更改将被记录下来。
这些功能主要通过资源控制器 poold 来实施,poold 是一种系统守护进程,需要进行动态资源分配时该进程将处于活动状态。poold 会定期检查系统负荷,并确定是否需要介入以使系统始终达到指定的资源利用目标。守护进程将执行更正操作(如有可能),或将情况记录下来。
有关详细信息,请参见《系统管理指南:Solaris Containers-资源管理和 Solaris Zones》中的以下各章:
第 12 章“动态资源池(概述)”
第 13 章“管理动态资源池(任务)”
第 14 章“资源管理配置示例”
另请参见以下手册页:
扩展的记帐功能是 Solaris 9 操作系统最初于 2002 年 5 月发行时新增的功能。Software Express 试点计划引入了流记帐增强功能和 Perl 接口。Solaris 10 3/05 发行版中也包含这些增强功能。
对于 Solaris 9 用户,流记帐增强功能是 Solaris 9 9/02 发行版中的新增功能。Perl 接口是 Solaris 9 4/03 发行版中的新增功能。
现在,您可以将扩展的记帐进程与 IPQoS 的流记帐模块配合使用。有关 IPQoS 的信息,请参见《系统管理指南:IP 服务》中的第 VII 部分,“IP 服务质量 (IP Quality of Service, IPQoS)”。
有关扩展的记帐功能的信息,请参见《系统管理指南:Solaris Containers-资源管理和 Solaris Zones》中的第 5 章,“管理扩展记帐(任务)”。
Software Express 发行版中提供了 libexacct 的 Perl 接口。使用该接口可以创建 Perl 脚本,以便读取由 exacct 框架生成的记帐文件。您还可以创建编写 exacct 文件的 Perl 脚本。这个新接口与基础 C API 在功能上是相同的。
您可以使用 Perl 接口以任务或进程为单位记录系统资源的占用情况。还可以 IPQoS flowacct 模块提供的选定器为基础,记录资源的占用情况。
有关详细信息,请参见以下手册页:
有关如何使用本节描述的增强功能来配置和使用扩展记帐功能的信息,请参见《系统管理指南:Solaris Containers-资源管理和 Solaris Zones》中的第 4 章,“扩展记帐(概述)”。
此功能是 Software Express 试点计划和 Solaris 9 12/03 发行版中的新增功能。Solaris 10 3/05 发行版中也包含此功能。
使用资源覆盖守护进程来控制物理内存是一项可选功能。资源覆盖守护进程 rcapd 通过在项目(已定义了资源覆盖)中运行的进程来调节物理内存的损耗。相关联的实用程序提供了管理守护进程和报告相关统计信息的机制。
有关其他信息,请参见《系统管理指南:Solaris Containers-资源管理和 Solaris Zones》中的第 10 章,“使用资源上限设置守护进程控制物理内存(概述)”。
另请参见 rcapstat(1)、rcapadm(1M)、project(4) 和 rcapd(1M) 手册页。