安装和管理 Solaris Container Manager 3.6.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 操作系统仅支持基于用户的容器类型。


  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 操作系统仅支持基于用户的容器类型。


使用基于应用程序的项目可以管理在特定的软件应用程序中运行的进程。您可以创建基于应用程序的可自动移动进程的项目,或是基于应用程序的允许您手动移动进程的项目。

如果您可以提供确实是应用程序独有的匹配表达式,则可以将此表达式添加到项目中。您还必须提供进程在运行时将使用的 UNIX 用户 ID 或 UNIX 组 ID。有权稍后加入项目的其他用户或组也可以添加进来。要自动将进程移动至项目中,必须在屏幕上显示相应的向导面板时提供所有必需的项目标识符。然后,软件会自动为基于此定义的所有项目移动所有匹配的进程。

如果应用程序没有创建确实唯一的标识符,则应该手动移动进程或者在项目内启动应用程序。如果希望手动移动进程,请创建仅具有进程在运行时将使用的 UNIX 用户 ID 或 UNIX 组 ID 的项目。有权稍后加入项目的其他用户或组也可以添加进来。然后,使用 newtask -p 命令移动进程。有关更多信息,请参见移动或启动项目中的进程

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

使用此过程可确定正确的匹配表达式,用以标识与希望管理的应用程序对应的进程。在“新建容器”向导中必须提供此表达式,以便将进程自动移动到容器中。

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

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


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

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


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

以下是搜索 Mozilla 时 ps - cafe 命令的输出示例:


% ps -cafe
     UID   PID  PPID  CLS PRI    STIME TTY      TIME CMD
    ...
username  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 来定位正确的匹配表达式。以下是搜索 Tomcat 服务器时 ps - cafe | grep 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 服务器的匹配表达式

以下示例显示了如何使用 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 内核开始强制应用容器的资源保留。