区域是一种 Solaris Container 技术,该技术可以在计算机上提供独立的环境,并在逻辑上使应用程序之间彼此分隔。区域允许您在 Solaris 操作系统实例中创建虚拟的操作系统环境。在不同区域中运行应用程序时,您可以在相同的计算机上运行同一应用程序的不同实例或不同版本,同时对资源进行集中管理和有效共享。
本部分对区域进行了简要描述,并说明了它们在 Message Queue 3.7 UR1 中的使用情况。
区域环境包括一个全局区域以及一个或多个非全局区域。首次在系统上安装 Solaris 10 时,只有一个全局区域。管理员可以创建其他非全局区域作为全局区域的子区域。每个区域都显示为运行 Solaris 的独立系统。每个区域都有其各自的 IP 地址、系统配置、运行应用程序的实例,以及文件系统上的位置。
全局区域包含可以在非全局区域之间共享的资源,从而可以将某些管理功能集中起来。例如,在全局区域中安装的软件包可用于(传播到)所有现有的非全局区域。这样可以集中执行生命周期管理(如安装、升级和卸载)。同时,非全局区域所提供的分隔功能也带来了更高的安全性,并允许您在相同的计算机上运行同一应用程序的不同配置的实例或不同版本。
非全局区域可以是完全根区域,也可以是稀疏根区域:选择哪种区域作为应用程序的环境取决于如何平衡管理控制和资源优化。
完全根区域包含全局区域上文件系统的读/写副本。在全局区域中安装的软件包(及其注册信息)将被自动复制到完全根区域。这样可以获得最佳的管理控制,但却会消耗资源。
稀疏根区域包含全局区域上部分文件系统的读/写副本;其他文件系统将作为只读文件系统进行挂载。通过只读文件系统以及注册信息的自动同步,稀疏根区域也可以使用全局区域中安装的软件包。稀疏根区域可以优化资源共享,而集中管理功能却会相对变弱。
组成 Java Enterprise System 的组件依赖于某些共享组件;这在使用区域方面造成了一些限制。在区域环境中,共享组件必须遵循以下规则。
区域中的所有共享组件必须为同一 JES 版本。此要求会导致三种结果。
如果要安装共享组件的不同版本,则每个版本都必须驻留在单独的区域中。
在区域中,如果对某个共享组件进行了升级或安装了较新版本,则必须升级所有共享组件。
在全局区域中安装共享组件时,必须根据需要对非全局区域中的共享组件进行升级。
由于稀疏根区域中使用只读文件系统,因此无法在稀疏根区域中安装共享组件。必须在全局区域中安装共享组件。依赖于共享组件的产品组件必须先安装在全局区域中,然后再传播到非全局区域。
由于 Message Queue 是 Java Enterprise System 的组件产品,因此上述要求会影响其安装,进而会限制其区域使用。
Message Queue 产品将被安装到 /usr 目录中,因此必须先在全局区域中进行安装或升级。
在全局区域中安装 Message Queue 时,它将被设置为传播到所有非全局区域。在全局区域中安装 Message Queue 之后,即在所有区域中安装了同一版本的 Message Queue:如果您登录到任意区域并运行命令 pkginfo -l SUNWiqu,您会看到 Message Queue 已被安装,并且与全局区域中安装的版本相同。接下来可以在每个区域中运行独立的 Message Queue 代理实例,因为这些实例进程并不共用 /var 和 /etc 目录中保存的实例和配置数据。(如果其他大多数 Java Enterprise System 组件都安装在全局区域,则不会传播这些组件。)
由于 Message Queue 将被传播到非全局区域,因此全局实例将始终链接到非全局区域中的安装。这样,无论您何时在全局区域中卸载或升级 Message Queue,它都会对非全局区域中运行的实例造成影响。以下示例说明这样做如何导致可能的意外结果。
在全局区域中安装 Message Queue 3.7 UR1。这会导致同时将 Message Queue 3.7 UR1 软件包安装到所有非全局区域中。
在完全根区域中卸载 Message Queue 3.7 UR1。然后在完全根区域中安装 Message Queue 3.6。
现在,不同区域中将运行不同版本的 Message Queue,您可能会发现这种设置非常有用。
在全局区域中卸载 Message Queue 3.7 UR1。这将从所有其他区域中卸载 Message Queue,包括完全根区域中的 Message Queue 3.6 实例。
请注意在全局区域中安装和卸载 Message Queue 的级联效应。
以下两个使用案例说明了如何在不同区域中安装 Message Queue 的不同实例和不同版本。
如果要在 Solaris 10、Solaris 10U1 或 Solaris 10U2 上的完全根区域中安装 Message Queue,则必须先在全局区域中升级 Lockhart。请查看错误 645030 的解决方法,以获取其他信息。
在全局区域中安装所需版本的 Message Queue。
这些版本将传播到任何现有的非全局区域中。如果创建了其他的非全局区域,则 Message Queue 也将传播到这些区域中。(您既可以在完全根区域中安装不同实例,也可以在稀疏根区域中安装不同实例,但使用稀疏根区域可以更有效地利用磁盘空间和其他资源)。
如果您希望 Message Queue 传播到任何其他非全局区域中,请立即创建这些区域。
在每个非全局区域中运行 Message Queue 的实例。