跳转到主要内容

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

所有提交的信息确保安全。

  • 关闭 [x]

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

所有提交的信息确保安全。

  • 关闭 [x]

利用 CIM 管理 IBM i 并与之交互,第 1 部分: CIM 功能概述

荆 雷, 软件工程师, IBM China System and Technology Lab
荆雷,IBM CSTL 的 CIM provider for IBM i 项目的一名软件工程师。他所感兴趣和专长的领域包括 DMTF WBEM 架构,CIM schema 和 IBM i 上的管理软件开发。

简介: IBM i 平台上的 CIM 功能存在于 UME 程序中,该技术主要用来建模被管系统对象,并通过标准模型和接口解决跨平台系统管理能力,这使得分布式环境下异构系统的集中管理成为可能。本文主要关注 CIM 功能在 IBM i 平台上的历史及已有实现。

查看本系列更多内容

发布日期: 2012 年 1 月 05 日
级别: 中级
访问情况 : 13635 次浏览
评论: 


引言

Universal Management Enablement(UME) 是 IBM i 上的一个授权程序(License Program),该程序遵循 DMTF(Distributed Management Task Force)的 CIM(Common Information Model)规范来完成系统管理功能。UME 自 IBM i 5.4 版本引入,主要架构移植自开源项目 OpenPegasus,目前经过 3 个版本的开发,已经实现了 IBM i 平台上硬件,软件和补丁,存储,网络,用户,系统值等基本信息的管理,并且能够对性能数据,消息队列以及部分异常事件进行监控。UME 对管理对象的建模方式遵循了行业标准,这使得基于 UME 开发的管理应用具有良好的可扩展性。上层应用通过集成开源 Java 开发包 SBLIM(Standards-Based Linux Instrumentation for Manageability)来访问 UME,这将有助于提升上层应用的可移植性。


表 1.IBM i CIM 产品的版本
产品标识 版本号 支持平台 发布日期 备注
5722UME V1R2M0 IBM i 5.4/6.1 2008.4
5770UME V1R3M0 IBM i 6.1/7.1 2010.4
5770UMEV1R3M1 IBM i 6.1/7.1 2011.8 通过补丁发布,补丁号 SI41540 和 SI41685

在 IBM i 5.4 及之前的版本,CIM 是 IBM i 操作系统的一部分并跟随 IBM i 发布,开发环境是 IBM i 集成语言环境(ILE,Integrated language Environment)。在将 CIM 功能放入 UME 授权程序后,CIM 的开发是在类 AIX 环境 PASE 下 (Portable Application Solutions Environment),这使得 CIM 的开发工作拥有更广泛的技术基础。

本文以下的部分将对 CIM 在 IBM i 平台功能做简要介绍。


查看资源列表

运用 CIM 进行系统管理的一个基本功能是资源查看。通过 CIM 模型,可以将系统资源进行分类,并保证建模的通用和标准化。

硬件资源

表 2 中列举了 CIM 如何对 IBM i 典型的硬件资源进行建模和管理。


表 2. 硬件资源建模
硬件类型 CIM 模型 重点关注属性
处理器IBMi_Processor 类型号,零件号,序列号
内存IBM_PhysicalMemory 类型号,零件号,序列号
主板IBMi_Chassis位置
磁带IBMOS400_TapeDrive 容量
总线控制器IBMi_BusController 序列号
存储控制器IBMi_StorageController 序列号
内存池IBM_StoragePool 剩余空间,总容量
打印机IBMi_Printer 表单类型,分页数

使用 CIM 自带的客户端查看系统资源是最方便的手段。


图 1. 通过 cimcli 客户端命令发现系统 CPU 资源
图 1. 通过 cimcli 客户端命令发现系统 CPU 资源

cimcli 是 UME 发布的一个客户端命令,目前 UME 不支持图形化界面。上层管理应用也可以通过 SBLIM 来调用 CIM 接口。关于 SBLIM 的介绍和应用可以参考 Standards Based Linux Instrumentation

软件资源

表 3 中列举了 CIM 如何对 IBM i 的软件及补丁进行建模和管理。


表 3. 软件资源建模
软件类型 CIM模型 重点关注属性
软件IBMi_SoftwareProduct 产品名,选项,版本,过期时间,授权码
补丁IBMi_TemporaryFix 补丁号,状态
补丁包IBMi_TempFixGroup 名称,状态,级别

网络资源

表 4 中列举了 CIM 如何对 IBM i 网络相关的概念进行建模和管理。


表 4. 网络资源建模
网络基本概念 CIM模型 重点关注属性
链路描述IBM_EthernetPort 状态,链路速度
局域网端点IBM_LANEndpoint MAC 地址
TCP 端点IBM_TCPProtocolEndpoint TCP 端口号
IP 地址IBM_IPProtocolEndpoint IP 地址

存储资源

表 5 中列举了 CIM 如何对 IBM i 存储领域建模和管理。其中包含了外部磁盘,虚拟磁盘以及 RAID 等方面,并且涉及到一系列的 Profile。可以参考 IBM i 7.1 信息中心的 相关章节


表 5. 存储资源建模
存储设备 CIM模型 重点关注属性
磁盘IBMi_DiskDrive 类型,序列号
辅助存储池IBM_CompositeExtent 编号,剩余容量
存储集合IBM_PrimordialStoragePool RAID 支持,集合编号


修改系统配置

除了上述的查看功能外,CIM 还支持对被管对象进行修改以及创建和删除。目前支持修改操作的对象包括用户账号,用户组,联系人以及系统值。其中可以对账号,用户组,联系人进行创建删除操作。

用户账号,组和联系人

修改账号属性

图 2 显示了使用 cimcli 命令修改用户 ZHUJTTEST 的主目录为 /HOME/ss。


图 2. 修改账号属性
图 2. 修改账号属性

创建和删除用户账号

CIM 通过 CreateInstance 和 DeleteInstance 接口来支持创建和删除用户账号操作。图 3 演示了如果通过 cimcli 命令来创建一个名为 ZHUJTTES 的账号并将其删除。


图 3. 创建和删除账号
图 3. 创建和删除账号

系统值

系统值是 IBM i 系统上的全局环境变量,修改系统值会影响 IBM i 上所有作业。在 IBM i 命令行提供了 WRKSYSVAL 命令来查看和修改系统值,现在 CIM 也支持这个功能。CIM 按照系统值的类别进行建模,例如和日期和时间相关的系统值,和密码相关的系统值以及和性能相关的系统值等等。更多系统值的分类可以参考 System Inventory Providers

这里以登录相关的系统值为例展示 CIM 可以通过修改属性来改变系统值,UME 中使用类 IBMi_SignonSettingData 建模登录相关的系统值,该类继承自标准类 CIM_SettingData。运行命令请参阅上节 图 2


表 6. 建模登录系统值
属性 系统值 描述
string MaxInvalidSignonAttempts QMAXSIGN 最大登录尝试次数
string ActionToMaxInvalidSignonAttempts QMAXSGNACN 登录失败后行为
string SignonInformation QDSPSGNINF 登录后显示信息
string SpecificDeviceAccessForPrivilegedUser QLMTSECOFR 特权用户设备访问的限制
string DeviceSessionLimit QLMTDEVSSN 设备会话限制
string RemoteSignonControl QRMTSIGN 远程登录控制


发现关联对象

通过 CIM 的类建模并实现了 IBM i 上对象之后,可能单一对象不能够完整表示客户需要的信息,可以使用关联类将有内在联系的一组对象进行捆绑。


表 7. 典型关联
关联类名 关联对象 应用举例
IBM_Realizes 物理硬件和逻辑硬件用来发现物理机器上各种卡的逻辑功能,如网卡,内存卡等
IBM_ControlledBy 设备间的控制关系用来发现一个端口控制器能管理的所有端口
IBMi_FixesInSoftwareProduct 软件产品和补丁用来发现软件上已安装了的补丁
IBMi_MemberOfGroup 用户和组的关系用来发现一个组包含的所有用户

例子:通过关联类 IBMi_MemberOfGroup 来查找 Test 组包含的用户。


图 4. 关联类的使用
图 4. 关联类的使用

监控各类事件

上述获取信息的方式都是采用了客户端主动查询的方式,请求和响应是同步的。还有一种情况,当客户请求的事件发生是不确定的,应采用订阅方式向 CIM 服务器登记感兴趣的事件,在事件发生后由 CIM 异步通知客户。订阅请求主要包含两部分内容,关注的事件以及接受者的信息。CIM_IndicationFilter 类建模了关注事件信息,使用 SQL 语句来描述监控的对象以及触发条件;CIM_ListenerDestinationCIMXML 类通常提供接受者的 IP 及端口。最后通过创建关联类 CIM_IndicationSubscription 将上述两个类的实例进行绑定。

图 5 演示了使用 UME 发布的 cimsub 命令来订阅事件。其中 -cf 命令选项指定创建 CIM_IndicationFilter 的实例 filter1,并在 -Q 后添加 SQL 语句;-ch 命令选项创建 CIM_ListenerDestinationCIMXML 的实例 handler1,并且用 -D 提供事件接收者的地址;-cs 命令选项使用 filter1 和 handler1 实例作为参数创建一个完整的订阅。用户可以通过对 CIM_IndicationSubscription 进行 getInstance 操作来查看订阅确保已成功。注意:只有当 CIM_IndicationSubscription 的实例创建成功后该订阅才有效。


图 5. 事件的订阅
图 5. 事件的订阅

消息队列

消息队列是 IBM i 上 *MSGQ 类型的对象,用户可以通过监听一个消息队列来及时获得通知。用户通过订阅语句指定特定类型的消息。

清单 1. 订阅消息对列 <QueryString>SELECT * FROM IBM_MessageQueueIndication WHERE AlertingManagedElement = 'QSYS/QSYSOPR' AND MessageID LIKE 'CPF.*' </QueryString>

AlertingManagedElement 是必要的参数,用来指定消息队列的名称。MessageID 和 MessageSeverity 用来过滤不满足条件消息。

当 CPF1231 进入消息队列 QSYSOPR 时,CIM 会向接受者发送一个事件的实例。EventTime 是事件的发生时刻。


清单 2. 返回消息实例 Instance of IBM_MessageQueueIndication {
				 
  string IndicationIdentifier = CPF1231; 
  string CorrelatedIndications = ; 
  datetime IndicationTime = 20110907110514.000000+480; 
  string OtherSeverity = ; 
  string IndicationFilterName = ; 
  string SequenceContext = ; 
  sint64 SequenceNumber = ; 
  string Description = IBM i message queue indication CPF1231; 
  string AlertingManagedElement = QSYS/QSYSOPR; 
  uint16 AlertingElementFormat = 2; 
  string OtherAlertingElementFormat = Library/Name; 
  uint16 AlertType = 2; 
  string OtherAlertType = ; 
  uint16 PerceivedSeverity = 6; 
  uint16 ProbableCause = 1; 
  string ProbableCauseDescription = 
  Cause . . . . . :   A prestart job for program  in library  cannot be started.       
   The job description in the entry specifies an output queue  in library  that was not 
    found, or the output queue or library could not be allocated. The subsystem job log  
       may contain more information. 
 Recovery  . . . :   Display the job log (DSPJOBLOG command) for the subsystem      
  for more information.  If the output queue does not exist, create it. If the output    
   queue cannot be allocated, use the Work with Object Locks (WRKOBJLCK) command to 
    determine when the output queue is not locked. Then wait until message CPC0905 is    
     shown on the system operator (QSYSOPR)) message queue, indicating that the entry  
      is no longer active. To start new jobs, enter the Start Prestart Jobs (STRPJ)    
         command.; 
  uint16 Trending = 0; 
  …
  string EventID = CPF1231; 
  datetime EventTime = 20110907110452.000000+480; 
  string SystemCreationClassName = IBMOS400_ComputerSystem; 
  string SystemName = C60D070C.CN.IBM.COM; 
  string ProviderName = QUME_MessageQueueIndicationProvider; 
  string Message = Subsystem  cannot start prestart job .; 
  string MessageArguments =       ; 
  string MessageID = CPF1231; 
  string OwningEntity = IBM i; 
  string MessageType = 04; 
  string MessageKey = 0x000097E0; 
  uint16 MessageSeverity = 60; 
  string SenderJob = QZRCSRVS  QUSER     668715; 
  string AlertOption = *NO; 
  string ProblemIdentification = ; 
  string DefaultReply = ; 
  string ReplyStatus = N; 
  boolean IsCriticalBreakMessage = FALSE; 
 }; 

性能

IBM i 的性能数据来自于 Performance Collection Service。该数据是按周期发布的,最短间隔可以到 15 秒。更多性能数据的定义可以参考 IBM i System Metrics Providers


表 8. 性能数据的分类
性能数据 定义
CPU 利用率平均值MDOS2A
作业交互速率平均值MDOS41
磁盘使用率平均值MDOS48
批处理作业逻辑数据库输入输出速率MDOS45
用户存储池错误平均值MDOS46

订阅语句要指定一个性能指标,由 MetricDefinitionId 保存。


清单 3. 订阅性能数据 <QueryString>
				 
 SELECT l.* FROM CIM_InstModification l WHERE l.SourceInstance 
 ISA IBMOS400_ColSrvMetricValue 
 and l.SourceInstance.IBMOS400_ColSrvMetricValue::MetricDefinitionId
 ='MDOS2A' </QueryString> 

CIM 从 Performance Collection Service 接收到最新的 CPU 利用率平均值,在 SourceInstance 的 MetricValue 中,Duration 说明统计周期是 30 秒。


清单 4. 返回性能数据实例 Instance of IBM_ColSrvMetricValueModification {
				 
  string IndicationIdentifier = 4E65EC35-000B-354F-0006-2A780D0E664B; 
  string CorrelatedIndications = ; 
  datetime IndicationTime = 20110906174733.739620+480; 
  uint16 PerceivedSeverity = ; 
  string OtherSeverity = ; 
  string IndicationFilterName = ; 
  string SequenceContext = ; 
  sint64 SequenceNumber = ; 
  object SourceInstance 
  = <INSTANCE CLASSNAME="IBMOS400_ColSrvMetricValue" > 
 <PROPERTY NAME="Caption"  PROPAGATED="true" TYPE="string"> 
 </PROPERTY> 
 <PROPERTY NAME="Description"  PROPAGATED="true" TYPE="string"> 
 </PROPERTY> 
 <PROPERTY NAME="ElementName"  PROPAGATED="true" TYPE="string"> 
 </PROPERTY> 
 <PROPERTY NAME="InstanceID"  PROPAGATED="true" TYPE="string"> 
 <VALUE>0000005CMDOS2A</VALUE> 
 </PROPERTY> 
 <PROPERTY NAME="MetricDefinitionId"  PROPAGATED="true" TYPE="string"> 
 <VALUE>MDOS2A</VALUE> 
 </PROPERTY> 
 <PROPERTY NAME="MeasuredElementName"  PROPAGATED="true" TYPE="string"> 
 <VALUE>LWI07</VALUE> 
 </PROPERTY> 
 <PROPERTY NAME="TimeStamp"  PROPAGATED="true" TYPE="datetime"> 
 <VALUE>20110906133930.000000+480</VALUE> 
 </PROPERTY> 
 <PROPERTY NAME="Duration"  PROPAGATED="true" TYPE="datetime"> 
 <VALUE>00000000000030.000000:000</VALUE> 
 </PROPERTY> 
 <PROPERTY NAME="MetricValue"  PROPAGATED="true" TYPE="string"> 
 <VALUE>18.98</VALUE> 
 </PROPERTY> 
 <PROPERTY NAME="BreakdownDimension"  PROPAGATED="true" TYPE="string"> 
 </PROPERTY> 
 <PROPERTY NAME="BreakdownValue"  PROPAGATED="true" TYPE="string"> 
 </PROPERTY> 
 <PROPERTY NAME="Volatile"  PROPAGATED="true" TYPE="boolean"> 
 <VALUE>TRUE</VALUE> 
 </PROPERTY> 
 </INSTANCE> 
 ; 
… . 
 }; 

异常

这类事件主要用来监控各类错误情况或者告警。目前支持下列情况:


表 9. 异常事件分类
异常类型 CIM模型
保单到期IBMPSG_Warranty
租约到期IBMPSG_Lease
磁盘使用率超警戒值IBMPSG_StorageEvent
网络断开 / 恢复 / 错误IBMPSG_NetworkAdapterOnlineEvent/ IBMPSG_NetworkAdapterOfflineEvent/ IBMPSG_NetworkAdapterFailedEvent
存储控制器缓存的电池告警 / 失效IBMi_CacheBatteryEvent


结束语

随着 CIM 技术研究和开发的不断深入,更多系统管理功能也将转移至 CIM 框架之内,包括更多的性能数据的采集,系统硬件软件问题的分析报告以及作业管理等等。


参考资料

学习

讨论

关于作者

荆雷,IBM CSTL 的 CIM provider for IBM i 项目的一名软件工程师。他所感兴趣和专长的领域包括 DMTF WBEM 架构,CIM schema 和 IBM i 上的管理软件开发。

关于报告滥用的帮助

报告滥用

谢谢! 此内容已经标识给管理员注意。


关于报告滥用的帮助

报告滥用

报告滥用提交失败。 请稍后重试。


developerWorks:登录


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 使用条款

 


当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

请选择您的昵称:

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

(长度在 3 至 31 个字符之间)


单击提交则表示您同意developerWorks 的条款和条件。 使用条款.

 


为本文评分

评论

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=AIX and UNIX, IBM i
ArticleID=784059
ArticleTitle=利用 CIM 管理 IBM i 并与之交互,第 1 部分: CIM 功能概述
publish-date=01052012

标签

Help
使用 搜索 文本框在 My developerWorks 中查找包含该标签的所有内容。

使用 滑动条 调节标签的数量。

热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。

我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。

使用搜索文本框在 My developerWorks 中查找包含该标签的所有内容。热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。