博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(转)AIX ODM 简介
阅读量:5333 次
发布时间:2019-06-15

本文共 3745 字,大约阅读时间需要 12 分钟。

什么是 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

Figure xxx. Requires a heading

让我们看看这个目录里面都有些什么。

图 2()

Figure xxx. Requires a heading

这里有 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

图 3

odmdelete 命令举例

odmdelete 命令在给定了要从中删除的对象类和搜索规则后,会删除所有满足标准的对象。

下面是它的命令格式:

1
odmdelete -o ObjectClass [  -q Criteria ]

其中,-o ObjectClass 指定要从中删除的对象类。-q 标准指定用于从对象类中选择对象的标准。 如果没有指定标准,删除所有对象。

下面的举例是:

1)首先显示 rsDDMTable 这个对象类的基本信息

2)然后删除符合 ddmFamily=ASNF300 这样条件的 rsDDMTable 对象。

图 4

图 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

图 5

通过实例讲述 ODM Object 和 AIX 系统盘的关系

首先,我们来了解一下 AIX 的系统盘概念。

在 AIX 系统中,有下面 3 个和磁盘相关的概念。

  1. PV:物理卷(就是指物理硬盘),一个硬盘就是一个 PV,一个系统中可以有多个 PV。
  2. VG:卷组的概念,在 AIX 系统中一个 VG 可以由一个或多个 PV 组成。
  3. LV:逻辑卷,通常我们的操作系统,应用软件都安装在 LV 上。

下面就是一个普通的 AIX 系统的 PV,VG,LV 的对应关系。

图 6

Figure xxx. Requires a heading

可以看到,其实所有 LV 的 parent 都是“rootvg”。所有 LV 和 VG 的所有关系都存储在 AIX 系统的 ODM 中。其实这个就像是数据库中数据的关系表一样,环环相扣。

图 7

Figure xxx. Requires a heading

有时候,我们会遇到由于误操作(比如非法拔掉了一个 AIX 上的硬盘或者人为操作错误或者其他的特殊原因)导致的 PV,VG,LV 之间发生混乱和不匹配,有可能使某一个物理卷上的逻辑卷和卷组的描述信息和与其对应的 ODM 库中的信息不一致,从而导致 ODM 库混乱,对物理卷的有关操作无法进行。这个时候,不要慌乱,仔细查找一下 AIX ODM 的信息,然后按照正常的逻辑改成合理的关系就能解决问题。

预定义设备信息包括的对象类有PdDv,PdAt,PdCn

PdDv:对象类包括系统支持的所有预定义设备,它也包括一个PdAt对象类的链接

PdAt:对象类包括系统支持的所有预定义设备的所有可能属性

PdCn:对象包括系统支持的每个设备的预链接信息

比如,AIX 中出现了多个卷组,但实际上只有一块磁盘,且这块磁盘是属于 rootvg 的,可以按照下面的步骤去做:

  1. 先确定正确的那个卷组和磁盘的物理对应关系(可以问这个系统的安装人员)。
  2. 使用 odmdelete 从 ODM 中删除其它卷组的信息:
    1
    2
    odmdelete -o CuAt -q name=vgname
    odmdelete -o CuDv -q name=vgname
  3. 使用命令用以将指定物理卷上的逻辑卷管理的信息重新定义给指定卷组的 ODM 库。
    1
    redefinevg -d <
    hdisk_name
    > <
    vg_name
    >

    其中,<hdisk_name> 为卷组中物理卷的名称,<vg_name> 为卷组的名称

总结

本文是介绍 AIX ODM 的文章。通过对本文的阅读可以帮助 AIX 使用者了解 AIX 的核心组件 ODM,能更好的认识和解决 AIX ODM 相关的疑难问题。通过运用这些技巧,我们可以提前设置我们的工作环境,给我们的日常工作带来极大的便利,提高我们的工作效率。

转载于:https://www.cnblogs.com/liujiacai/p/7690957.html

你可能感兴趣的文章
CSS块级元素和行内元素
查看>>
git stash 保存当前工作状态
查看>>
github环境搭建
查看>>
Struts 2(二):使用Struts2
查看>>
[接口]mmc/eMMC/SD-card
查看>>
[git/svn]Git和SVN差异
查看>>
第四次博客作业
查看>>
Pillow不支持color emoji font!
查看>>
Java实现数据库的读写分离
查看>>
hdu 2076 夹角有多大(题目已修改,注意读题)
查看>>
Java实现二维码QRCode的编码和解码
查看>>
html元素调用服务器方法
查看>>
Java 实现斐波那契数列
查看>>
谱聚类算法(Spectral Clustering)
查看>>
Activity树图
查看>>
在url里请求id
查看>>
关于【指针作为形参,改变实参的值】的理解!
查看>>
One example to understand SemFix: Program Repair via Semantic Analysis
查看>>
shell
查看>>
Confluence 6 配置 MySQL 服务器
查看>>