(转)AIX ODM 简介
什么是 ODM
原文:https://www.ibm.com/developerworks/cn/aix/library/1105_chenwei_odm/
Windows 的注册表相信大家都知道,是 Windows 的核心部件之一。我们在使用 Windows 的时候经常会遇到必须通过手工删除注册表中特殊的键值才能解决的问题,但操作很简单,点击“开始”->“运行”-> 输入“REGEDIT”,然后在图形化的注册表编辑器中搜索就好了。
ODM 就好像 AIX 的注册表。同样 AIX 上的 ODM 有时也会出问题,也需要手工操作。但是由于缺乏图形化的工具,ODM 的操作就没有那么大众化了。:( !
通过对本文的阅读可以帮助 AIX 使用者了解 AIX 的核心组件 ODM,能更好的认识和解决 AIX ODM 相关的疑难问题。
下面先简单介绍一下 ODM。
ODM 是 Object Data Manager 的简称。它是一个采用面向对象的方法来管理系统数据的工具集。这个工具集的作用是提供一些基本命令来保存系统配置信息的。系统的配置信息会通过这个工具集保存到指定的二进制的文件中。
构成 ODM 的基本组件是对象类和对象。要管理对象类和对象,必须使用 ODM 命令和 ODM 的 C 语言函数库。我们可以利用这些接口程序为数据存储和管理创建对象类和对象。
简介 ODM 文件和命令
接下来,我们来了解一下 ODM 相关二进制文件的具体分布和一些基本的 ODM 命令。
ODM 数据库信息存放于以下三个目录中:
(1)/etc/objrepos
(2)/usr/lib/objrepos
(3)/usr/share/lib/objrepos
对于(1)里面的数据,主要是存储不能网络共享的数据。比如:用户设备定义类等等。
对于(2)里面的数据,主要是存储可共享,但只能被 AIX 系统共享,并且是只读的数据。
对于(3)里面的数据,主要是存储可共享,不依赖于 AIX 的数据。
你可以通过下面的命令判断默认被 AIX 系统使用的 ODM 存储文件。
图 1
让我们看看这个目录里面都有些什么。
图 2(查看大图)
这里有 2 类文件需要重点介绍一下。
(1)Pd* 文件
这些文件是系统预定义的 objects,不能被修改,在 AIX 系统安装的时候被创建的。
(2)Cu* 文件
这些文件是用户自定义的 objects,可以被修改。
ODM 的基本命令分为两类:
第一类是对对象的操作。
1)odmadd 添加对象到对象类。
2)odmchange 改变指定的 ODM 对象类中指定的 ODM 对象。
3)odmdelete 从 ODM 对象类中删除 ODM 对象。
4)odmget 取得对象类的信息并将对象信息变成 odmadd 命令格式输出。
第二类是对对象类的操作。建议大家慎用下面的命令,因为这些命令是对 ODM 对象类的操作。
1)odmcreate 创建空的对象类。
2)odmdrop 删除整个 ODM 对象类。
3)odmshow 显示 ODM 对象类的描述。odmshow 命令使用对象名称作为输入并将对象信息变成 odmcreate 命令格式。
通过实例讲述如何查看和修改 ODM Objects
下面我们通过实际的事例来了解一些 ODM 基本命令的用法。
odmget 命令举例
odmget 命令以搜索规则和对象类列表为输入,从指定的对象类中检索选定的对象,并输入到标准输出。
下面是它的命令格式:
|
1
|
odmget [ -q Criteria ] ObjectClass ... |
其中,-q Criteria 指定用于从对象类中选择对象的搜索标准。Criteria 是一个用双引号括起来的字符串。如果没有指定标准,检索对象类中的所有对象。 Criteria 参数指定的查询条件可以使用关系运算符和布尔运算符,象 =,!=,>,>=,<,<=,like,and 等。
下面是一些使用运算符的例子:
Name like '?B?' ? 表示一个字符
Name like '*ot*' * 表示 0 到多个字符
Name like '[ST]*' [ST]* 表示以"S"或"T"开头的任意多个字符串
Name like '[AD-GST]*' D-G 表示范围,可以是 D、E、F、G(从 D 到 G)中任一字符。
Name like '[!ST]*' [!ST]* 表示不以"S"或"T"打头的任意字符串
下面的举例是:
1)首先显示 erProduct 这个对象类的基本信息
2)然后找出符合 erFTDC=0 这样条件的 erProduct 对象。
图 3

odmdelete 命令举例
odmdelete 命令在给定了要从中删除的对象类和搜索规则后,会删除所有满足标准的对象。
下面是它的命令格式:
|
1
|
odmdelete -o ObjectClass [ -q Criteria ] |
其中,-o ObjectClass 指定要从中删除的对象类。-q 标准指定用于从对象类中选择对象的标准。 如果没有指定标准,删除所有对象。
下面的举例是:
1)首先显示 rsDDMTable 这个对象类的基本信息
2)然后删除符合 ddmFamily=ASNF300 这样条件的 rsDDMTable 对象。
图 4

odmchange 命令举例
odmchange 命令将修改指定对象类中某个符合条件对象的内容。InputFile 文件和用于 odmadd 命令的 InputFile 文件(ASCII 输入文件)有同样的格式。
|
1
|
odmchange -o ObjectClass [ -q Criteria] [ InputFile] |
下面的举例是:
1)首先显示 rsDDMTable 这个对象类的基本信息
2)显示 changefile 文件的内容
3)显示符合 ddmFamily=ASNF300 的 rsDDMTable 对象
4)修改符合 ddmFamily=ASNF300 的 rsDDMTable 对象的 diskRPM 为 99999
5)显示符合 ddmFamily=ASNF300 的 rsDDMTable 对象
图 5

通过实例讲述 ODM Object 和 AIX 系统盘的关系
首先,我们来了解一下 AIX 的系统盘概念。
在 AIX 系统中,有下面 3 个和磁盘相关的概念。
- PV:物理卷(就是指物理硬盘),一个硬盘就是一个 PV,一个系统中可以有多个 PV。
- VG:卷组的概念,在 AIX 系统中一个 VG 可以由一个或多个 PV 组成。
- LV:逻辑卷,通常我们的操作系统,应用软件都安装在 LV 上。
下面就是一个普通的 AIX 系统的 PV,VG,LV 的对应关系。
图 6
可以看到,其实所有 LV 的 parent 都是“rootvg”。所有 LV 和 VG 的所有关系都存储在 AIX 系统的 ODM 中。其实这个就像是数据库中数据的关系表一样,环环相扣。
图 7
有时候,我们会遇到由于误操作(比如非法拔掉了一个 AIX 上的硬盘或者人为操作错误或者其他的特殊原因)导致的 PV,VG,LV 之间发生混乱和不匹配,有可能使某一个物理卷上的逻辑卷和卷组的描述信息和与其对应的 ODM 库中的信息不一致,从而导致 ODM 库混乱,对物理卷的有关操作无法进行。这个时候,不要慌乱,仔细查找一下 AIX ODM 的信息,然后按照正常的逻辑改成合理的关系就能解决问题。
预定义设备信息包括的对象类有PdDv,PdAt,PdCn
PdDv:对象类包括系统支持的所有预定义设备,它也包括一个PdAt对象类的链接
PdAt:对象类包括系统支持的所有预定义设备的所有可能属性
PdCn:对象包括系统支持的每个设备的预链接信息
比如,AIX 中出现了多个卷组,但实际上只有一块磁盘,且这块磁盘是属于 rootvg 的,可以按照下面的步骤去做:
- 先确定正确的那个卷组和磁盘的物理对应关系(可以问这个系统的安装人员)。
- 使用 odmdelete 从 ODM 中删除其它卷组的信息:
12
odmdelete -o CuAt -q name=vgnameodmdelete -o CuDv -q name=vgname - 使用命令用以将指定物理卷上的逻辑卷管理的信息重新定义给指定卷组的 ODM 库。
1
redefinevg -d <hdisk_name> <vg_name>其中,<hdisk_name> 为卷组中物理卷的名称,<vg_name> 为卷组的名称
总结
本文是介绍 AIX ODM 的文章。通过对本文的阅读可以帮助 AIX 使用者了解 AIX 的核心组件 ODM,能更好的认识和解决 AIX ODM 相关的疑难问题。通过运用这些技巧,我们可以提前设置我们的工作环境,给我们的日常工作带来极大的便利,提高我们的工作效率。
(转)AIX ODM 简介的更多相关文章
- AIX 环境下ODM库同步
IBM AIX v5.3操作系统环境下有时会出现ODM库与rootvg硬盘上数据不同步的情况.使用命令lsvg -l datavg检查文件系统类型,发现显示为"???"这就表示OD ...
- AIX网络性能优化简介
在AIX 中,网络性能的优化可从以下几方面进行: 网络内存(network memory)的调整 socket 缓冲区 (socket buffer) 的调整 网络接口(network interfa ...
- AIX下sort命令简介及使用
AIX下sort命令简介及使用 sort -rn +3 , r倒排序,n按照数字排序: +3按照第四列排序: 第一列是+0: 学习:http://blog.csdn.net/chen_linbo/a ...
- AIX 逻辑卷简介
1.基本概念 LVM的组成:物理卷PV.卷组VG.逻辑卷LV.物理分区PP.逻辑分区LP.文件系统等 物理卷:物理卷表示AIX可以识别的物理磁盘(hdisk*),一个物理卷指一块硬盘.可以是内部的 ...
- 【OS】NMON的简介和使用
[OS]NMON的简介和使用 目前NMON已开源,以sourceforge为根据地,网址是http://nmon.sourceforge.net. 1. 目的 本文介绍操作系统监控工具Nmon的概念. ...
- 第1章 Linux系统简介
第1节 UNIX发展历史和发行版本 1. UNIX与Linux发展史 1.1 UNIX发展历史 (1)1965年,美国麻省理工学院(MIT).通用电气公司(GE)及AT&T的贝尔实验室联合开发 ...
- RabbitMQ简介
AMQP简介 在了解RabbitMQ之前,首先要了解AMQP协议.AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消 ...
- AIX 5L 系统管理技术 —— 存储管理——卷组
卷组 在安装系统时,就会创建一个rootvg卷组.包含自带硬盘(内置硬盘)和系统逻辑卷,一个系统只能有一个rootvg卷组.一般情况下rootvg卷组最好只包含自带硬盘. 一.创建卷组 在创建卷组之前 ...
- AIX 5L 系统管理技术 —— 存储管理——物理卷
一.向系统中添加一块硬盘 方法一 该方法适用于在配置之前能够重新启动系统的情况.在系统启动时,就会运行cfgmgr命令,它可自动配置系统中的新设备.当完成了系统启动后,以root用户进入系统,用lsp ...
随机推荐
- Swoole2.0协程客户端连接池的实现
Swoole2.0官方默认的实例是短连接的,在请求处理完毕后就会切断redis或mysql的连接.实际项目可以使用连接池实现复用. 实现原理也很简单,使用SplQueue,在请求到来时判断资源队列中是 ...
- AppleScript: Handler
AppleScript绝对是个奇葩的存在!不管功能有多强大. Handler有两种,一种是和OC类似的使用Label参数,一种是和javascript类似的使用括号把一堆参数都放在里面的. label ...
- Linux 基础教程 40-df和du命令
df df用于显示文件系统的整体磁盘使用量. 基本用法 df [选项] [目录/文件] 其常用选项如下所示: 选项 说明 -a, --all 显示所有文件系统,包括/proc等虚拟文件系统 - ...
- 洛谷P4556 [Vani有约会]雨天的尾巴(线段树合并)
题目背景 深绘里一直很讨厌雨天. 灼热的天气穿透了前半个夏天,后来一场大雨和随之而来的洪水,浇灭了一切. 虽然深绘里家乡的小村落对洪水有着顽固的抵抗力,但也倒了几座老房子,几棵老树被连根拔起,以及田地 ...
- firedac odbc sql server driver连接占线导致另一个hstmt
firedac odbc sql server driver连接占线导致另一个hstmt 原因:FDQuery.FetchOptions.Mode=fmOnDemand.好像是为了性能问题,不设置则默 ...
- 【转发】在SQL Server中通过字段值查询存储该字段的表
-- Copyright © 2002 Narayana Vyas Kondreddi. All rights reserved. -- Purpose: To search all colu ...
- 通过代码去执行testNG用例
背景 用testNG去编写的测试用例,通过@Test去执行用例,一般本地都是通过IDE去执行相应的方法,持续集成的话,都是通过maven来执行或指定testNG.xml执行,但是如果想通过接口/界面去 ...
- WPF带小箭头的按钮
XAML代码: <ControlTemplate x:Key="btnTpl" TargetType="RadioButton"> <Stac ...
- 如何修改Entity Framework Db Frist模式下的Entity继承关系?
1.准备工作 Db Frist创建实体数据模型(创建edmx并不是重点,各位随意即可),此处取名ZeroCodeDB,所得文件如图所示:其中红框中的文件(ZeroCodeDB.tt)是各实体的生成的关 ...
- c语言第一次作业--顺序、分支结构
1.1思维导图 1.2.1本周学习体会以及代码量学习体会 1.2.2学习体会 因为在暑假时候没有对c语言进行学习,没太关注一些学习资料,一些教学视频也没看,感觉对c语言是陌生的,刚开课的时候自 ...



