设为首页 收藏本站
查看: 343|回复: 0

[经验分享] AIX系统学习之-ODM管理

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-10-15 08:22:29 | 显示全部楼层 |阅读模式
    AIX ODM(Object Database Manager)是由一组对象类和对象所组成的数据库。对象类相当于Oracle数据库中的object,由ODM create创建,删除可以使用ODM drop,对象就相当于object下的数据(比如磁盘、Adapter等),可以使用ODM add命令加入对象,使用ODM delete命令删除,使用ODM change命令修改指定记录。查询的命令可以使用odmget。
一、使用 ODM 命令
     当使用 odmcreate 或者 odmdrop 命令来创建或者删除对象类时,请使用以下方法之一指定将从中访问类定义文件的目录:
将文件存储在 $ODMDIR 指示的缺省目录下,即:/usr/lib/objrepos 目录。
1
2
[iyunv@aix211 /]#echo $ODMDIR
/etc/objrepos



   比较常用的命令是odmget与odmadd命令
1、odmget:
odmget [  -q Criteria ] ObjectClass ...
描述
odmget 命令以搜索规则和对象类列表为输入,从指定的对象类中检索选定的对象,并写 ASCII odmadd 输入文件到标准输出。
标志
-q Criteria 指定用于从对象类中选择对象的搜索条件。如果没有指定标准(没有 -q 标志),检索对象类中的所有对象。

1
2
3
4
5
6
7
8
9
#odmget -q name=hdisk1 CuAt |more
CuAt:
       name = "hdisk1"
       attribute = "unique_id"
       value = "2308AJ27R0820CDNES-309170W03IBMscsi"
       type = "R"
       generic = ""
       rep = "sl"
       nls_index = 0



2、odmadd :
添加对象到创建的对象类。
语法
odmadd [ InputFile ... ]
描述
odmadd 命令以一个或多个InputFile 文件为输入,并且添加对象到带有节文件数据的对象类中。每个 InputFile 文件是 ASCII 文件,包含有描述要添加到对象类中的对象的数据。如果没有指定文件,从标准输入中获取输入。
在使用odmadd命令之前,最好使用odmget 查询并生成样本文件,然后修改一下,再使用odmadd命令加入指定的对象类。
注意:odmadd 将把对象添加到$ODMDIR变量指定的目录所对应的对象类中去。
比如:
取一份odm样板;
# odmget -q name=hdisk2 CuAt > hdisk3odm.add
编辑样本文件,最重要的是修改pvid属性回原有硬盘的pvid,另外一项属性unique_id名字也一起修改了。当然还有name要更正为hdisk3。插入修改过的文件到CuAt

1
# odmadd hdisk3odm.add



3、odmshow命令:
odmshow 命令以对象类名称(ObjectClass)为输入并在屏幕上显示类描述。 类描述的格式采用 odmcreate 命令的输入格式。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#odmshow CuDv |more
class CuDv {
       char name[16];                               /* offset: 0xc ( 12) */
       short status;                                /* offset: 0x1c ( 28) */
       short chgstatus;                             /* offset: 0x1e ( 30) */
       char ddins[16];                              /* offset: 0x20 ( 32) */
       char location[16];                           /* offset: 0x30 ( 48) */
       char parent[16];                             /* offset: 0x40 ( 64) */
       char connwhere[16];                          /* offset: 0x50 ( 80) */
       link PdDv PdDv uniquetype PdDvLn[48];        /* offset: 0x60 ( 96) */
       };
/*
       descriptors:    8
       structure size:     0x98 (152) bytes
       data offset:    0x200030e8
       population:     55 objects (55 active, 0 deleted)
*/



需要了解的几个对象类:
PdDv    预定义设备库

1
2
3
4
5
6
PdDv:
       type = "scsd"
       class = "pdisk"
       subclass = "ssar"
       prefix = "pdisk"
       devid = ""



     以上三个参数 再使用mkdev的时候需要用到,需要特别关注,如果查找起来不方便的话,可以使用lsdev –P –H 产看预配置数据库中的这三个选项。此项对于使用mkdev生成虚设备也非常方便。
PdAt    预定义属性库

1
2
3
4
5
PdAt:
uniquetype = "tape/scsi/8mm"
attribute = "block_size"
deflt = "1024"
values = "0-245760,1"



CuDv   用户自定义设备库

1
2
3
4
5
6
7
8
9
CuDv:
name = "rmt0"
status = 1
chgstatus = 2
ddins = "tape"
location = "04-C0-00-1,0"
parent = "scsi0"
connwhere = "1,0"
PdDvLn = "tape/scsi/8mm"



CuDv:

1
2
3
4
5
6
7
8
name = "hdisk1"
       status = 1
       chgstatus = 2
       ddins = "scdisk"
       location = "10-60-00-1,0"
       parent = "scsi0"
       connwhere = "1,0"
       PdDvLn = "disk/scsi/scsd"



CuAt:用户自定义属性库

1
2
3
4
5
6
7
8
CuAt:
       name = "hdisk1"
       attribute = "unique_id"
       value = "2308AJ27R0820CDNES-309170W03IBMscsi"
       type = "R"
       generic = ""
       rep = "sl"
       nls_index = 0



由以上输出可以看出,在使用odmget命令查找odm用户数据库信息时,可以使用 name=×作为查询key。
二、Additional Device Object Classes:
CuDep:

1
2
name = "rootvg"
dependency = "hd6"



CuDep:

1
2
name = "datavg"
dependency = "lv01"



CuDvDr:          设备驱动

1
2
3
4
resource = "devno"
value1 = "22"
value2 = "0"
value3 = "rmt0"



CuVPD:            设备vpd信息 vital product data

1
2
3
name = "rmt0"
vpd = "*MFEXABYTE
PN21F8842"



PdCn:             预定义配置信息

1
2
3
uniquetype = "adapter/pci/sym875"
connkey = "scsi"
connwhere = "1,0"



三、ODM 管理的系统数据包括:
设备配置信息
SMIT(菜单、选择器和对话框)的显示信息
安装和更新过程的重要产品数据
通信配置信息
系统资源信息
注意:ODM中不包含设备驱动程序,只能从设备驱动文件往CuDvDr中写驱动记录
设备状态:
Define:没有加载驱动,但odm中有定义
Available:已加载驱动,并将驱动记录进CuDvDr.
Stopped:停止状态,有些设备支持此状态

四、案例:
搜索对象所属的对象类别:
Usage:
for i in `ls $ODMDIR`; do (odmget $i  2>/dev/null |grep -p 特定字符串); done


1、搜索hdisk0所属的对象类别
[iyunv@aix211 /]#for i in `ls $ODMDIR`; do (odmget $i 2>/dev/null |grep -p hdisk0);done
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
CuAt:
        name = "hdisk0"
        attribute = "unique_id"
        value = "21080005E93A0AST373307LC03IBMscsi"
        type = "R"
        generic = ""
        rep = "nl"
        nls_index = 79
CuAt:
        name = "hdisk0"
        attribute = "pvid"
        value = "00040f8aaa29d28e0000000000000000"
        type = "R"
        generic = "D"
        rep = "s"
        nls_index = 2
CuAt:
        name = "hdisk0"
        attribute = "size_in_mb"
        value = "73400"
        type = "R"
        generic = "D"
        rep = "nr"
        nls_index = 60
CuAt:
        name = "hdisk0"
        attribute = "led"
        value = "0x57D"
        type = "Z"
        generic = ""
        rep = "nr"
        nls_index = 0
CuAt:
        name = "hdisk0"
        attribute = "message_no"
        value = "87"
        type = "T"
        generic = ""
        rep = "nl"
        nls_index = 0
CuAt:
        name = "hdisk0"
        attribute = "diag_scsd"
        value = "a500000107000507000c0d"
        type = "R"
        generic = ""
        rep = "s"
        nls_index = 0
CuDv:
        name = "hdisk0"
        status = 1
        chgstatus = 2
        ddins = "scdisk"
        location = "1S-08-00-8,0"
        parent = "scsi0"
        connwhere = "8,0"
        PdDvLn = "disk/scsi/scsd"
CuDvDr:
        resource = "devno"
        value1 = "24"
        value2 = "0"
        value3 = "hdisk0"
CuPath:
        name = "hdisk0"
        parent = "scsi0"
        connection = "8,0"
        alias = ""
        path_status = 1
        path_id = 0
CuVPD:
        name = "hdisk0"
        vpd_type = 0
        vpd = "*MFIBM     *TM\n\
ST373307LC      *F00P3072     *RL4335304A*SN0005E93A*ECH12094    *P00P2672     *Z0\n\
000003129F00013E*Z0812C512"



2、搜索网关地址所属的对象类别:
[iyunv@aix211 /]#for i in `ls $ODMDIR`; do (odmget $i  2>/dev/null |grep -p 192.168.8.1);done
1
2
3
4
5
6
7
8
CuAt:
        name = "inet0"
        attribute = "route"
        value = "net,-hopcount,0,,0,192.168.8.1"
        type = "R"
        generic = "DU"
        rep = "s"
        nls_index = 0



通过以上可以了解,每个对象所属的对象类别,然后可以用odmdelete删除对应的对象即可
例如删除hdisk0:
[iyunv@aix211 /]#odmdelet -o CuDv -q "name=hdisk0"


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-26008-1-1.html 上篇帖子: centos 6.5 清除内存中的系统缓存 下篇帖子: HDFS文件上传:8020端口拒绝连接问题解决!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表