安装和管理 Solaris Container Manager 1.1

创建项目

在安装并设置本软件之后,系统会提供一个默认容器,除此之外您还可以创建自定义的项目。组合使用这两种类型的容器,将有助于您实施自己的服务器整合计划。

使用新建项目向导创建自定义的项目。您可以选择只创建容器并将其保存到容器视图。您也可以完成所有向导步骤并最终创建一个项目。这两种情况下均使用同一向导。

如果您选择只创建容器,则其名称将保存至容器视图。您可以在以后使用该容器来创建一个或多个项目。关于如何激活项目的详细信息,请参阅激活或取消激活项目

如果您选择创建项目,则在此过程中您也将创建一个容器。完成项目的创建之后,该容器被保存至容器视图的导航窗口。您可以使用同一定义来创建与多个主机相关联的附加项目。对于每个主机,所有这些项目的定义(包括名称和项目类型)都是相同的。经过设置,您可以使每个主机上的项目资源保留各不相同,也可以使它们完全相同。这一具有弹性的功能使您可以在不同情况下总能满足应用程序的资源需求。有关详细信息,请参阅关于容器属性

新建项目向导可引导您完成项目创建过程。为顺利完成创建项目的过程,您在创建一个项目之前应准备好下列信息:

虽然从 GUI 的三个不同位置均可启动该向导,但建议您单击“新建项目”按钮启动该向导。因 GUI 中启动该向导的位置不同,您可能不需要提供以上所有信息。另外,因入口点不同,某些信息可能已经为您自动填写好了。

Procedure启动新建项目向导

您可以从 GUI 中的三个不同位置启动新建项目向导。根据该向导的启动点不同,某些信息可能已经自动填写好,因此您可能不需要完全填写所有的面板。

关于新建项目向导的更多范例,请参阅创建基于应用程序的项目

步骤
  1. 如果您尚未打开 Container Manager GUI,请首先打开它,具体步骤参见启动 Container Manager GUI

  2. 在导航窗口中,确定您要创建的容器的关系。

    • 要使特定的主机与容器自动相关联,请按以下步骤操作:

      1. 从主机视图的导航窗口中选择主机名称。

        如果需要,可单击主机组名称以展开主机列表。

      2. 选择右侧窗格中的“项目”选项卡。

        屏幕上将显示“项目”表。

      如果使用这一方法,您需要在容器创建过程中选择一个主机。

      “主机”视图的屏幕捕获显示了“新建项目”按钮。周围的文本描述了背景。
    • 使项目自动绑定到特定的资源池:

      1. 从主机视图的导航窗口中选择资源池名称。

        如果需要,可单击主机名称旁边的钥匙符号以展开主机列表。屏幕上将显示指定给该主机的资源池。

      2. 选择右侧窗格中的“项目”选项卡。

        屏幕上将显示“项目”表。

      在创建容器的过程中您无需指定资源池。

    “主机”视图(资源池)的屏幕捕获显示了“新建项目”按钮。周围的文本描述了环境。
  3. 在主机项目表或主机资源池表中,单击“新建项目”按钮。


    注 –

    不管您选择了哪种方法,右侧窗格内的表中总是会显示“新建项目”按钮。


    屏幕上将显示新建项目向导。其中最先出现的是“概述”面板。

    新建项目向导“概述”面板的屏幕捕获。周围的文本描述了环境。

创建基于用户的项目或基于组的项目


注 –

对于 Solaris 8 发行版,只有基于用户的容器类型是可用的。


如果您要使用容器来管理标记为 UNIX 用户名或 UNIX 组名的进程,则应该创建一个基于用户的或基于组的容器。您在创建过程中选定的项目类型决定着该容器是基于用户还是基于组。

Procedure创建基于用户的或基于组的项目

步骤
  1. 启动新建项目向导,具体步骤参见启动新建项目向导

    屏幕上将显示“概述”面板。

  2. 选择“用户”或“组”作为项目类型。

    具有基于用户的项目类型的容器将跟踪具有同一 UNIX 用户名的进程。

    具有基于组的项目类型的容器将跟踪具有同一 UNIX 组名的进程。


    注 –

    Solaris 8 OS 仅支持基于用户的容器类型。


  3. 提供满足以下要求的项目类型标识符:

    (对于 Solaris 8)

    • 基于用户的项目 - 您必须在第一个字段中提供一个有效 UNIX 用户名。将那些可以加入该项目的用户的 UNIX 用户名添加到第二个字段。将那些可以加入该项目的组的 UNIX 组名添加到第三个字段。如果有多个条目,则用逗号将其隔开。

      在第一个字段中,请勿提供正在被其他基于用户的项目或“默认”项目使用的用户名。

    • 基于组的项目 - 您必须在第一个字段中提供一个有效的 UNIX 组名。将那些可以加入该项目的组的 UNIX 组名添加到第二个字段。将那些可以加入该项目的用户的 UNIX 用户名添加到第三个字段。如果有多个条目,则用逗号将其隔开。

      在第一个字段中,请勿提供正在被其他基于组的项目或“默认”项目使用的组名。


    注 –

    对于 Solaris 9 和 Solaris 10,不需要提供有效的用户名和组名。但是系统中必须具有附加的用户名和组名。


    关于这一项目类型的详细信息,请参阅表 3–2

  4. 如果您只是通过选择主机名称(而没有选择资源池)来启动新建项目向导,请指定一个支持项目资源要求的资源池。

    项目中启动的新进程将绑定到相应的资源池。激活之后,该项目中所含的新进程将被绑定至其资源池。

    • 指定一个新资源池:

      1. 选择“创建一个新资源池”。

      2. 为新资源池提供一个名称。

        该名称必须是字母、数字且不含空格。允许使用破折号 (-)、下划线 (_) 和 点 (.)。

      3. 指定 CPU 数。

        CPU 数必须是一个大于 1 但小于主机上可用 CPU 数的整数。屏幕上会显示主机的 CPU 总数以及当前的可用 CPU 数。

    • 指定一个现有资源池:

      1. 选择“使用一个现有资源池”。

        屏幕上会显示可用资源池的列表。

      2. 在该列表中选择资源池名称旁边的单选按钮。

        屏幕上会显示指定给每个资源池的 CPU 总数,以及每个资源池中尚可使用的未保留 CPU 数。该容器将被绑定至选中的资源池。

  5. (仅适用于 Solaris 10)选择一个现有区域。

    单击可用区域中的按钮,使该项目与某个区域相关联。

  6. 为项目提供资源保留。

    本软件提供了主机上的最大 CPU 数、未保留的 CPU 份额数和可用内存资源。

    您必须为 CPU 保留提供一个整数值。仅当所有其他(与同一主机相关联的)容器中没有正在运行的进程时,那些 CPU 保留为零的容器才能使用 CPU 资源。

    “内存容量”是可选项,为其提供的值应以 MB 为单位。

    共享内存值是运行在该项目中的进程可使用的共享内存总数。“共享内存”也是可选项。共享内存的默认值是物理内存的四分之一。

  7. 为容器提供名称。

    该名称必须是唯一的,且不能超过 32 个字符。该名称用于在导航窗口、状态表和资源使用情况报告中标识此容器。如果您输入的名称与其他容器重复,则容器创建失败。

    容器创建之后其名称将不能更改。

  8. (可选)提供容器的描述。

  9. 查看“汇总”面板中的信息。

    项目汇总屏幕
  10. 单击“完成”。

    您所作的以上选择将被保存起来,所创建的项目被立刻激活。Solaris 内核开始实施该容器的资源保留。

创建基于应用程序的项目


注 –

Solaris 8 OS 仅支持基于用户的容器类型。


请使用基于应用程序的项目来管理运行在特定软件应用程序中的进程。您可以创建一个基于应用程序的项目,通过它自动移动进程,或者使用它来手动移动进程。

如果你可以为应用程序提供一个绝对唯一的匹配表达式,则可将这一表达方式添加到项目中。您还必须提供进程将在其下运行的 UNIX 用户 ID 或 UNIX 组 ID。也可以可在晚些时候,将拥有权限加入该项目的附加用户或组添加到项目中。要使进程自动移入项目中,您必须在相应的向导面板出现时,提供全部所需的项目标识符。然后该软件会将所有匹配的进程自动移动到基于这一定义的所有项目中。

如果应用程序没有创建绝对唯一的标识符,您将需要手动移动进程或在项目中启动应用程序。要手动移动进程,请使用 UNIX 用户 ID 或 UNIX 组 ID 来创建项目,进程将在其中运行。也可以可在晚些时候,将拥有权限加入该项目的附加用户或组添加到项目中。然后使用 newtask -p 命令移动这些进程。有关详细信息,请参阅移动或启动项目中的进程

Procedure为应用程序确定匹配表达式

请按照以下步骤来确定适当的匹配表达式,以便标识与您要管理的应用程序相对应的进程。在新建容器向导中,需要使用这一表达式自动将进程移动到容器中。

步骤
  1. 在终端窗口,启动基于应用程序的容器将要管理的应用程序。

  2. 要查看正在运行的所有进程的列表,请在终端窗口键入:


    % ps -cafe
    
  3. 在 CMD 栏中找到相应的可执行文件的名称。

    选择可唯一标识该应用程序的进程的表达式。


示例 4–1 为 Mozilla 确定匹配表达式

以下为使用 ps - cafe 命令搜索 Mozilla 时的输出实例:


% ps -cafe
     UID   PID  PPID  CLS PRI    STIME TTY      TIME CMD
    ...
用户名  8044  7435   IA  50 19:47:09 pts/11   0:00 /bin/ksh -p /usr/sfw/lib/mozilla/mozilla

在此实例中,唯一的可执行文件的名称是 mozilla。同样的,适当的匹配表达式就是 mozilla



示例 4–2 为 Tomcat 服务器确定匹配表达式

如果您知道应用程序的名称,则可以组合使用 grep 命令与 ps -cafe 命令来查找适当的匹配表达式。 以下是使用 ps - cafe | grep tomcat 命令搜索 Tomcat 服务器时的输出实例:这一实例中去除了无关信息,以节省篇幅。


% ps -cafe | grep tomcat
  nobody 27307  /usr/j2se/bin/java -classpath //usr/apache/tomcat/bin/bootstrap.jar:/usr/j2se/l
 

这一实例中,可执行文件的名称为 java。但是,适当的匹配表达式为 tomcat。这一实例中,由于 java 不能唯一标识 Tomcat 进程,因此该匹配表达式是参数而不是可执行文件的名称。



示例 4–3 检验 Tomcat Server 的匹配表达式

以下实例显示了如何使用 pgrep 命令查找 PID。PID 可以检验您是否已经确定了查找所需进程的唯一匹配表达式:


% pgrep -f tomcat
27307

Tomcat 服务器的 PID 是 27307。这一数字与示例 4–2 中的 PID 相同。这就说明匹配表达式 tomcat 与 Tomcat 服务器进程相符。


Procedure创建基于应用程序的项目

步骤
  1. 启动新建项目向导,具体步骤参见启动新建项目向导

    屏幕上将显示“概述”面板。

  2. 选择“应用程序”作为容器的项目类型。

    基于应用程序的项目容器将跟踪与该应用程序相关联的进程。关于这一项目类型的详细信息,请参阅表 3–2

  3. 提供项目的名称。

    该名称必须是唯一的,且不能超过 32 个字符。该名称用于在导航窗口、状态表和资源使用情况报告中标识此项目。如果您输入的名称与其他容器重复,则项目创建失败。

    容器创建之后其名称将不能更改。

  4. 提供 UNIX 用户名或 UNIX 组名,运行该应用程序的进程将在其下运行。

    您必须提供该应用程序的进程将在其下运行的 UNIX 用户名或 UNIX 组名。如果未提供这些名称,则该软件不会将相应的进程移到容器中,直到提供这些名称为止。如果有多个条目,则用逗号将其隔开。

  5. 请确定在激活容器后,您要使应用程序自动移动到项目中还是使用命令行来手动移动它们。

    • 为表示您要使用命令行手动移动运行该应用程序的进程,请选择“不使用匹配表达式”复选框。

    • 要在激活项目后使运行该应用程序的进程自动移动到项目中,请在“匹配表达式”字段中提供一个表达式。

      您可以在“匹配表达式”字段中使用通配符来标识某些与应用程序相关联的进程。举例来讲,使用通配符的匹配表达式可以是:moz 和 cat,它们分别标识与 Mozilla 和 Tomcat 相关联的进程。

      新建项目向导中的项目运行该应用程序的进程标识符

      您必须提供匹配表达式,以使运行该应用程序的进程自动移动到容器中。此表达式是区分大小写的。要确定合适的匹配表达式,请参阅为应用程序确定匹配表达式

      如果在此时没有提供匹配表达式,则运行该应用程序的进程将不会移动到这一容器中,直到提供了这一表达式为止。

  6. 如果您只是通过选择主机名称(而没有选择资源池)来启动新建项目向导,请指定一个可支持该项目资源要求的资源池。

    项目中启动的新进程将绑定到相应的资源池。激活项目之后,该容器中所含的新进程将被绑定至其资源池。

    • 指定一个新资源池:

      1. 选择“创建一个新资源池”。

      2. 为新资源池提供一个名称。

        该名称必须是字母、数字且不含空格。允许使用破折号 (-)、下划线 (_) 和 点 (.)。

      3. 指定 CPU 数。

        CPU 数必须是一个大于 1 且小于主机上可用 CPU 数的整数。屏幕上会显示主机的 CPU 总数以及当前的可用 CPU 数。

    • 指定一个现有资源池:

      1. 选择“使用一个现有资源池”。

        屏幕上会显示可用资源池的列表。

      2. 在该列表中选择资源池名称旁边的单选按钮。

        屏幕上会显示指定给每个资源池的 CPU 总数,以及每个资源池中尚可使用的未保留 CPU 数。该项目将被绑定至选中的资源池。

  7. (仅适用于 Solaris 10 )选择一个现有区域。

    单击可用区域中的某个按钮。

  8. 为项目提供资源保留。

    本软件提供了主机上的最大 CPU 数、未保留的 CPU 份额数和可用内存资源。

    您必须为 CPU 保留(CPU 份额)提供一个整数值。仅当所有其他(与同一主机相关联的)容器中没有正在运行的进程时,那些 CPU 保留为零的项目才能使用 CPU 资源。

    “内存容量”是可选项,为其提供的值应以 MB 为单位。

    共享内存值是运行在该项目中的进程可使用的共享内存总数。“共享内存”也是可选项。共享内存的默认值是物理内存的四分之一。

  9. 为容器提供名称。

    该名称必须是唯一的,且不能超过 32 个字符。该名称用于在导航窗口、状态表和资源使用情况报告中标识此容器。如果您输入的名称与其他容器重复,则容器创建失败。容器创建之后其名称将不能更改。

  10. (可选)提供容器的描述。

  11. 检查“汇总”面板中的信息。

    应用程序项目汇总屏幕
  12. 单击“完成”。

    您所作的以上选择将被保存起来,所创建的容器被立刻激活。Solaris 内核开始实施该容器的资源保留。