X

News, tips, partners, and perspectives for the Oracle Solaris operating system

Solaris Cluster 3.2 的新命令集

Guest Author

Solaris Cluster 3.2 发行版引入了一个用于管理群集的全新命令行界面 (Command Line
Interface, CLI)。新命令集包含许多功能,这些功能使新命令集更易于使用,并且比该产品早期发行版中的命令集更强大。

当然,3.2 中仍保留了早期发行版中的常用命令集,那些不准备迁移到更高版本的用户完全可以使用此命令集。所有命令仍位于 /usr/cluster/bin
中,因此用户无需修改他们的 PATH 设置,便可以找到任一命令集中的命令。旧命令集中的命令名称均以前缀 "sc" 开头,而新 CLI
中的命令名称均以前缀 "cl" 开头。这两个命令集彼此完全兼容,因此用户可以在同一 shell 脚本或命令行上混合使用这两个命令集中的命令。

新命令集用户的最初反应是非常积极的。但用户有时也会问我们“为什么要在 Solaris Cluster 中使用新 CLI?旧 CLI
存在什么问题?”不久之前,Sun 对 Solaris Cluster
系统管理员进行了一次全面的调查。调查表明,管理员在使用群集时遇到的主要问题通常与命令集有关。Sun
认为解决此项调查中指出的问题的最佳解决方案是引入一个全新的命令集。于是便使用此项调查中的数据以及其他客户反馈开始设计一个新的
CLI。由于我们将我们的构想回复给客户,因此该设计经历了多个改进阶段。最后,在准备实施最终设计之前,我们进行了深入的可用性研究。

新命令集是“面向对象的”。也就是说,对于管理员可能需要管理的每个群集对象类型,都对应有一个不同的命令。例如,只管理资源组的用户只需
使用新的
"clresourcegroup" 命令来管理组。可以使用 "clresourcegroup"
命令创建/删除组、设置组属性、执行资源组切换、打印配置和状态报告等。每个新命令均支持对它所控制的类型的所有对象进行完全管理。


新命令界面均使用相同的基本格式:

cl<object_type> [<subcommand>] [<options>] [<objects>]

例如,要创建一个新资源组 "rg1",可以使用下列任一命令:

clresourcegroup create rg1
clresourcegroup create --property Description="My rg" rg1


v用户将依赖子命令执行大多数操作,但某些选项(如 --help--version)可以在不指定子命令的情况下使用。

大多数新命令还具有内置的“别名”或“短名称”。我们的客户告诉我们,他们需要描述性并且有意义的命令名。但他们还告诉我们,他们需要简短并且易于
键入的命令名。Solaris
Cluster
团队认为最佳解决方案是同时提供具备这两种特性的命令名。因此,大多数命令实际上具有两个可以选择的名称,一个描述性名称和一个短名称。例如,"clrg"
与 "clresourcegroup" 相同:

clresourcegroup create rg1
clrg create rg1

在以上的示例中,您可能已经注意到新命令接受长选项名称(例如,--property--help--version
等等)。长选项名称很有用,尤其是在 shell
脚本中,因为它们通常是自我描述性质的。但在直接从命令行执行命令时,它们也会给用户带来不便。所有新命令均支持对选项使用长名称和单字母。指定选项时,用户可以使用
带双连字符
(--) 的长选项名称,或具有单连字符 (-) 的短选项字母。作为示例,下面两个命令的作用完全相同:

clrg create --property Description="My 
rg" rg1
clrg create -p Description="My rg" rg1

到现在为止,您可能认为这是一个非常基本的功能,并且与曾经用过的其他命令非常相似。这恰恰是我们所希望的。新 Solaris Cluster
命令行界面旨在提供一个熟悉的界面。命令与 GNU 相似,但实际上符合更严格一些的 Sun“命令行界面样式”(Command Line
Interface Paradigm, CLIP) 的约定。

由于本文篇幅有限,无法介绍封装到新命令集中的所有有用功能。但让我们使用几个简单的示例来快速演示我们尚未接触的某些其他功能。

我们的第一个示例先删除然后重新创建了群集中的所有资源和组:

# cluster export >clusterconfig.xml
# clrg delete --force +
# clrg create --input clusterconfig.xml +
# clrs create --input clusterconfig.xml +
# clrg online +

此示例中的第一个命令是 "cluster export"。大多数新命令均支持 "export" 子命令,用于以 XML
格式导出选定群集配置数据的副本。"cluster" 命令在某种程度上类似 "umbrella"
命令,除了其他功能以外,还可以通过与其 "status"、"show" 或 "export"
子命令一起使用来为整个群集生成状态和配置报告。

然后,使用 "clrg delete --force +" 删除群集中的所有资源和资源组。force
选项指示该命令删除所有资源组,即使资源组仍包含资源。"+"
符号可用作大多数命令的操作数(“通配字符”的一种),以指示命令所管理的该类型的所有对象。

后两个命令 "clrg create" 和 "clrs create" 用于重新创建第一步中创建的
"clusterconfig.xml" 文件中描述的资源组和资源。作为一种不同的方法,我们实际上可以省略此 "clrg" 步骤,并在
"clrs" 步骤中使用 "--automatic" 选项来自动创建新资源需要的任何组。

最后,使用 "clrg online +" 使群集中的所有资源组处于联机状态。

下一个示例演示了如何更新“字符串数组”资源属性:

# clrs list-props --verbose myresource
Property Name Description
-------------  -----------
myuserlist This is a list of user names
# clrs set -p myuserlist+=user9,user10 myresource

"list-props" 是一个非常有帮助的子命令。它用于列出属性名,如果与 --verbose 一起使用,还可以列出它们的描述。对于
"clrs" 而言,该子命令的默认行为是仅列出扩展属性;但也可以使用选项列出标准属性。在此示例中,我们使用了 "clrs
list-props
" 列出名为 "myresource" 的资源的所有扩展属性的描述。

最后,使用 "clrs set" 更新资源 "myresource" 的 "myuserlist"
扩展属性。请注意,在命令行上更新“扩展”和“标准”属性时,不必再在两者之间进行区分(除非某个资源类型使用的“扩展”属性名与“标准
”属性名冲突)。另一个有用的功能是,现在可以更新“字符串数组”属性而不必重新指定数组的未更改部分。"clrs"
的 --property (-p) 选项支持下面用于更新“字符串数组”资源属性的所有语法:

--property <property name>=<property value list>
--property <property name>+=<property value list>
--property <property name>-=<property value list>

可以在 Sun Cluster Reference
Manual for Solaris OS
(《适用于 Solaris OS 的 Sun Cluster 参考手册》)的 "1CL"
部分找到新 Solaris Cluster CLI 的联机手册页。

新命令集中还有许多更强大的功能,由于本文篇幅有限,无法对其进行介绍。请将您最喜欢的新命令集功能告诉我们。当然,还请您将改进建议发送给我们。


John Cummings
高级工程师
Solaris Cluster 工程部

Join the discussion

Comments ( 1 )
  • wow gold Sunday, November 2, 2008

    cool


Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.Captcha