文章
服务器与存储管理
2011 年 7 月
作者:Ed McKnight
Oracle Solaris Cluster 3.3 5/11 对 Oracle Solaris Cluster 最神秘的工具之一 cluster check 这个配置检查实用程序进行了一些重要增强。
Oracle Solaris Cluster 3.2 1/09 中引入了 cluster check(cluster(1CL) 命令的 check 子命令)来代替原来的 sccheck(1M) 实用程序。经过该转换,进行配置检查时无需再运行 Oracle Explorer Data Collector 作为检查的一部分,这让许多用户松了一口气。不过,cluster check 的功能只不过与 sccheck(1M) 相同:运行一组检查,测试损坏或有潜在危险的配置并对此提出修复建议。
cluster check 最新的一组增强侧重于在安装和初始配置期间对集群进行验证。这些增强的目的是为了让管理员能够亲自执行企业安装服务 (EIS) 检查中最重要的部分。如果有 EIS 人员参与,他们也会像上面所描述的那样从使用 cluster check 中受益。事实上,EIS 团队以及 Oracle 支持服务团队在定义和实现这些增强的过程中起到了至关重要的作用。
注:EIS 是以前的 Sun 服务,现在由 Oracle 高级客户服务 (ACS) 提供安装服务。
除了新增的对安装时和配置时检查的关注之外,检查本身也发生了一个看似很小但非常重要的变化:检查结果的标题。我始终建议在运行 cluster check 时使用 -v (verbose) 标志来启用详细进度报告。过去,检查被冠名为描述问题的“问题陈述”。许多人会忽略大多数检查或所有检查正常通过的事实,因此看到这些标题会很担心,以为在集群中发现了许多问题。现在,所有现有检查均冠名为“检查标题”(检查标题)而不是“问题陈述”。大多数标题实际上是一个问题,通常答案为“yes”,表示集群通过检查。
现在来讲重点:新增检查有 40 多个,其中许多检查同时适用于集群安装之前(还记得在配置节点之前让 scinstall(1M) 运行 cluster check 吗)和服务初始配置之后。即使重点是在初始安装和配置上,但这些检查在集群的整个生命周期内仍十分有用。
cluster(1CL) 中有一个名为 list-checks 的相关子命令,它所执行的正是您期望的操作:列出可在集群上运行的所有检查。增加了这么多新检查之后,输出就不止一屏了,因此该子命令添加了几个新的标志。-K 标志列出的不是检查,而是标记检查的唯一关键字。有了一个或多个感兴趣的关键字之后,可将关键字与 -k 标志结合使用以获得该关键字标记的检查的列表。清单 1 显示了用于列出所有唯一关键字的命令,清单 2 显示了用于列出以关键字 svm 标记的所有检查的命令。
pb52:/tmp# cluster list-checks -K /etc/system SolarisCluster3.2 SolarisCluster3.3 SolarisCluster3.x adapter cacao clustermode eeprom functional ... svm ... zfs zones pb52:/tmp# |
svm 标记的检查 pb52:/tmp# cluster list-checks -k svm M6984130 : (Critical) Are the global device namespace mirrors using unique metadevice instance numbers across the cluster? S6984126 : (Critical) Are the Solaris boot disk mirror definitions using DID device names? S6994578 : (High) Are shared SVM disksets using DID devices? S6994590 : (High) Are local Solaris Volume Manager replicas configured correctly? S6998141 : (Variable) Are the disk slices for the local SVM replicas large enough? pb52:/tmp# |
一旦发现感兴趣的检查,您就可以使用 verbose 标志加上 -C 标志和检查的 ID 来获取有关该检查的许多详细信息,如清单 3 所示。
pb52:/tmp# cluster list-checks -v -C I6994574 I6994574: (Moderate) Fix for GLDv3 interfaces on cluster transport vulnerability applied? Keywords: single, network, interactive Applicability: Applies for only Solaris Cluster 3.2 with Solaris 10 when certain patches are not installed and GLDv3network interfaces are used for private interconnect and VLAN tagging is not configured. This check is not applicable when a network switch is not used for Solaris Cluster private interconnect. Check Logic: Ask user if switches are in use; if yes, and VLAN tagging is NOT used then the check is violated Version: 1.2 Revision Date: 11/01/10 pb52:/tmp# |
大多数检查 ID 均以字母 S 开头。这些是单节点检查,这意味只需查看一个节点就可以回答提出的问题,需要分别对每个节点提问。以 M 开头的检查是多节点检查,需要来自多个节点的数据。多节点检查通常是一致性检查。
但我们最感兴趣的是两类新检查:以 I(表示交互)开头的检查,如上例,以及以 F(表示功能)开头的检查。
以前,所有检查均从活动集群(或 Oracle Explorer Data Collector 存档,如果您指定了一个或多个存档的话)获取数据,但交互式检查能够要求您提供无法通过编程方式获得的数据。交互式检查并不多,但它们提供了一种方法来获取以前无法获得的数据。
最后是最大的新功能……,在此之前,所有检查都是只读的。除了使用一点儿磁盘空间写入检查结果之外,所有检查不会对集群或节点进行任何更改。新的功能检查改变了这一状况。这些检查实际上会执行集群的某些基本功能。因此,运行功能检查的唯一方式是提供一个带 -C 标志的功能检查 ID。在未指定检查 ID 和关键字的“默认”运行中,不包括功能检查(也不包括交互式检查)。
清单 4 所示的命令列出了非详细模式下的所有可用功能检查。
清单 4:列出所有功能检查pb52:/tmp# cluster list-checks -k functional F6968101 : (Critical) Perform resource group switchover F6984120 : (Critical) Induce cluster transport failure - single adapter F6984121 : (Critical) Perform cluster shutdown. F6984140 : (Critical) Perform node panic pb52:/tmp# |
注意:强烈建议您不要对实际上正在为实际用户或应用程序提供服务的集群运行任何功能检查。这些检查用于在集群完成配置之后但在投入使用之前 运行。有几个功能检查可以谨慎地对工作集群运行,如转换检查 F6968101,但要非常小心。
功能检查会显示一系列菜单和问题,在执行任何操作之前,它们始终要求您进行最终确认。一般情况是让检查生成相关状态的快照,执行所请求的更改,然后检查结果状态来查看是否一切正常。
最极端的情况是关闭整个集群的检查,如清单 5 所示。
清单 5:关闭集群的功能检查pb52:/tmp# cluster check -v -o <some dir that survives a reboot> -C F6984121 |
所有节点回到 boot 提示符后,重新启动,等待集群完成修改。然后提供与第一次完全相同的命令行来完成该检查,该检查将检查集群,查看其是否进入正常运行状态。
所有其他检查只在检查到不符合要求的事项时才将感兴趣的事情写入日志。通过的检查只会记录检查本身以及这些检查已通过。另一方面,功能检查总是在日志中写入很多内容,如果它们在检查的评估阶段检测到什么可疑事项,它们将写入调查该问题的建议。
对 cluster check 的这些增强使此实用程序对安装人员和集群管理员比以往更加重要。此实用程序不仅运行在集群配置之前的节点上。它还可以在集群的整个生命周期内起到作用,以提防配置更改时可能出现的故障,现在它可作为新配置集群的验证工具。有关详细信息,请参阅 Oracle Solaris Cluster 软件安装指南第 3 章“建立全局集群”中的“如何验证集群”。
| 修订版 1,2011 年 7 月 26 日 |