1、2022-6-5 Dalian University of Technology 1 2022-6-5 Dalian University of Technology 2 u描述ODM的结构u使用ODM命令行接口u了解ODM在设备配置中扮演的角色u描述重要ODM文件的功能u用ODM存储、管理关于设备和软件产品的信息u注意ODM的分类,存储设备信息和软件产品数据uODM数据被存储为二进制格式,所以对于ODM文件,你必须使用ODM命令行接口。不能用编辑器更新ODM文件2022-6-5 Dalian University of Technology 3 uODM(Object Data Manage
2、r)对象数据管理器是一个用来存储系统信息的自带的关系型数据库uAIX的许多特性与功能,如:系统管理工具SMIT、许多系统配置信息、动态配置等,都与ODM有着密不可分的联系。uODM的基本部件为对象类和对象。为了管理对象类和对象,你要使用ODM命令和子程序。特别是,你要使用这些接口的创建和增加功能为存储和管理你自己的数据而建立对象类和对象。uODM的主要功能是维护pSeries 的系统配置,相关的设备,以及重要产品数据库(Vital Product Database)。此外,它与AIX以前所使用的ASCII文件相比,提供了更多强大的,安全的,而且可共享的资源。2022-6-5 Dalian Un
3、iversity of Technology 4 u设备配置数据u软件重要产品数据(SWVPD)u系统资源控制器(SRC)数据uTCP/ IP配置数据u错误日志和转储信息u网络安装管理理信息uSMIT菜单和指令2022-6-5 Dalian University of Technology 5 ODMNIMSMIT MenusSoftwareSystemResourceControllerTCP/IPConfigurationDevicesError Log,Dump2022-6-5 Dalian University of Technology 6 类型ODM文件预定义设备信息PdDv, P
4、dAt, PdCn 定制设备信息CuDv, CuAt, CuDep, CuDvDr, CuVPD, Config_Rules 软件至关重要的产品数据history, inventory, lpp, product SMIT菜单sm_menu_opt, sm_name_hdr, sm_cmd_hdr, sm_cmd_opt Error log, alog, and dump information SWservAt 系统资源控制器SRCsubsys, SRCsubsvr, . 网络安装管理(NIM)nim_attr, nim_object, nim_pdattr 2022-6-5 Dalian
5、University of Technology 7 PdDvPdAtPdCnPredefinedCuDvCuAtCuDepCuDvDrCuVPDDefineConfigureChangeUnconfigureUndefineMethodsDeviceDriverConfig_RulescfgmgrPlug and PlayCustomizedLoadUnload2022-6-5 Dalian University of Technology 8 Network/etc/objrepos/usr/lib/objrepos/usr/share/lib/objreposCuDvCuAtCuDepC
6、uDvDrCuVPDConfig_Ruleshistoryinventorylppproductnim_*SWservAtSRC*PdDvPdAtPdCnhistoryinventorylppproductsm_*historyinventorylppproduct2022-6-5 Dalian University of Technology 9 u为了支持无盘、无数据或其他工作站,ODM对象类被存储在三个库中,每个这些中描述的资料如下。u/etc/objrepos 1.包含定制设备对象类2.软件重要产品数据库(为根部分可安装的软件产品)用到的四个对象类3.包含到预定义设备对象种类的软链接4
7、.它含不能在设备间共享的部分产品u每台机器上有一个独立的拷贝2022-6-5 Dalian University of Technology 10 u/usr/lib/objrepos1.预定义的设备对象类2.SMIT菜单对象类3.SWVPD(为/usr部分可安装的软件产品)用到的四个对象类u安装在/usr部分的软件可通过/usr客户,无数据、无盘工作站在在硬件架构兼容的几台机器上共享u/usr/share/lib/objrepos 包含SWPD(为/usr/share部分可安装的软件产品)用到的四个对象类u没有硬件依赖,可在不同硬件架构的机器上共享2022-6-5 Dalian Univer
8、sity of Technology 11 PdDv: type = 14106902 class = adapter subclass = pci prefix = ent DvDr = pci/goentdd Define = /usr/lib/methods/define_rspc Configure = /usr/lib/methods/cfggoent uniquetype = adapter/pci/14106902PdAt: uniquetype = adapter/pci/14106902 attribute = jumbo_frames deflt = no values =
9、 yes,noCuDv: name = ent1 status = 1 chgstatus = 2 ddins = pci/goentdd location = 02-08 parent = pci2 connwhere = 8“ PdDvLn = adapter/pci/14106902CuAt: name = ent1 attribute = jumbo_frames value = yes type = Rcfgmgr chdev -l ent1 -a jumbo_frames=yes2022-6-5 Dalian University of Technology 12 u为了能使一个设
10、备在AIX中被定义,设备类型必须在ODM类PdDv中预定义。u一个设备可以被cfgmgr和mkdev命令定义。这两个命令都用定义方法在ODM类CuDv中产生一个实例。配置的方法被用来装载一个特定的设备驱动程序,在/dev目录下生成一个条目。u此时,你只有PdAt的默认属性值,在我们千兆以太网适配器的例子里,意味着你不能用jumbo frames(默认是没有的)。2022-6-5 Dalian University of Technology 13 CuDvDrCuVPDCuAtCuDvCuDepCustomized DatabasesPredefined DatabasesPdCnPdDv P
11、dAtConfiguration Manager(cfgmgr)Config_Rules2022-6-5 Dalian University of Technology 14 Filesystem infomationUser/Security infomationQueues and Queue devices?_?_?_2022-6-5 Dalian University of Technology 15 Applications 3.UndefinedDefinedAvailableAIX Kernel D_ D_/_/_1.2.4.5.2022-6-5 Dalian Universit
12、y of Technology 16 uniquetypeattributedefltvaluestape/scsi/scsdblock_sizenone0-2147483648,1disk/scsi/osdiskpvidnonetty/rs232/ttylogindisableenable, disable, .2022-6-5 Dalian University of Technology 17 uniquetypeattributedefltvaluestape/scsi/scsdblock_sizenone0-2147483648,1disk/scsi/osdiskpvidnonett
13、y/rs232/ttylogindisableenable, disable, .Object class: odmcreate, odmdropDescriptors: odmshowObjects: odmadd, odmchange, odmdelete, odmget2022-6-5 Dalian University of Technology 18 uodmcreate 创建ODM类l odmcreate descriptor_file.crel descriptor_file.cre文件包含与ODM类相一致的类定义uodmdrop 删除ODM类l odmdrop -o objec
14、t_class_name l object_class_name 是你想要删除的ODM类的名字。 使用这条命令的时候要非常小心,它会立即将整个类删除。uodmshow 查看ODM文件结构l odmshow object_class_namel 将会显示ODM类PdAt的一部分,会显示四个描述符(uniquetype, attribute, deflt, and values).2022-6-5 Dalian University of Technology 19 uOdmget 从一个存在的对象类中检索对象信息uOdmadd 增加新对象uOdmchange 改变对象uOdmdelete 删除对
15、象2022-6-5 Dalian University of Technology 20 # odmget -quniquetype=tape/scsi/scsd and attribute=block_size PdAt file # vi file Modify deflt to 512# odmdelete -o PdAt -quniquetype=tape/scsi/scsd and attribute=block_size PdAt:uniquetype = tape/scsi/scsdattribute = block_sizedeflt = “512values = 0-2147
16、483648,1width = type = Rgeneric = DUrep = nrnls_index = 6# odmadd file2022-6-5 Dalian University of Technology 21 uOdmget命令在这个例子中会从PdAt中选择所有的记录,选择条件:uniquetype=tape/scsi/scsd, attribute=block_size。在此情况下,只有一个记录是吻合的,这些信息被重定向到一个文件,可以用编辑器来修改。在这个例子中,属性block_size的默认值改为512.u注意:在新值512被加到ODM中之前,旧对象(它的block_s
17、ize已被设置为空值)必须被删除,否则你最终将会在数据库中有两个对象描述相同的属性(otherwise you would end up with two objects describing the same attribute in the database)第一个被发现的对象将被使用,结果可能会非常混乱。这就是为什么要先删除条目再增加替换的记录。最后的操作是添加文件到ODM.2022-6-5 Dalian University of Technology 22 # odmget -quniquetype=tape/scsi/scsd and attribute=block_size Pd
18、At file # vi file PdAt:uniquetype = tape/scsi/scsdattribute = block_sizedeflt = “512values = 0-2147483648,1width = type = Rgeneric = DUrep = nrnls_index = 6Modify deflt to 512# odmchange -o PdAt -quniquetype=tape/scsi/scsd and attribute=block_size file2022-6-5 Dalian University of Technology 23 u测试条
19、件= 等于 != 不等于 大于 =大于或等于 小于= 小于或等于 like 模糊查询2022-6-5 Dalian University of Technology 24 u不同的测试条件可以用布尔运算符连接 and, or u通配符 * 匹配任意多个任意字符 ? 匹配任意一个字符u例子l lpp_name like bosext1.* /匹配lpp_name的属性以bosext1. 开头的 l uniquetype=tape/scsi/scsd and attribute=block_size 2022-6-5 Dalian University of Technology 25 lpp:
20、name = bos.rte.printers“ size = 0 state = 5 ver = 6 rel = 1 mod =0 fix = 0 description = Front End Printer Support“ lpp_id = 38product: lpp_name = bos.rte.printers“ comp_id = 5765-C3403“ state = 5 ver = 6 rel = 1 mod =0 fix = 0 ptf = “ prereq = *coreq bos.rte 5.1.0.0“ description = “ supersedes = in
21、ventory: lpp_id = 38 private = 0 file_type = 0 format = 1 loc0 = /etc/qconfig“ loc1 = “ loc2 = “ size = 0 checksum = 0history: lpp_id = 38 ver = 6 rel = 1 mod = 0 fix = 0 ptf = “ state = 1 time = 1187714064 comment = 2022-6-5 Dalian University of Technology 26 u当在AIX系统中安装一个产品或更新时,installp命令用ODM维护软件重
22、要产品数据库(SWVPD)u软件产品的名称u软件产品的版本号、发行号、修定号、补丁号(5.3.0.10,6.1.0.0) u以前打过的补丁,已经安装在系统上u软件产品的状态- Available (state = 1) - Applying (state = 2) - Applied (state = 3) - Committing (state = 4) - Committed (state = 5) - Rejecting (state = 6) - Broken (state = 7)$installp C /清除ing状态的软件$smit maintain_software2022-6
23、-5 Dalian University of Technology 27 l Lpp 包含已安装的软件产品信息,包括当前软件状态和描述l Inventory 包含与软件产品有关的文件l Product 包含软件产品安装、更新和先决条件的信息l history 包含软件产品安装和更新的历史信息2022-6-5 Dalian University of Technology 28 PdDv:type = “scsdclass = tapesubclass = scsiprefix = rmt.base = 0.detectable = 1.led = 2418setno = 54msgno =
24、0catalog = devices.catDvDr = tapeDefine = /etc/methods/defineConfigure = /etc/methods/cfgsctapeChange = /etc/methods/chggenUnconfigure = /etc/methods/ucfgdeviceUndefine = etc/methods/undefineStart = Stop = .uniquetype = tape/scsi/scsd2022-6-5 Dalian University of Technology 29 utype: 指定产品的名称或型号 如:8m
25、m(磁带)uclass: 指定功能类名称,一个功能类是一组共享同样高级功能的设备实例。如:磁带是一个代表所有磁带设备的功能类uprefix:指定在定制数据库中“已分配的前缀”,他是用来导出设备实例名和/dev 名字。如:rmt是被分配给磁带设备的前缀名。base: 指定一个设备是基设备或者不是的描述符。一个基设备是最小的基本系统的一部分。在系统启动时,最小的基本系统被配置为允许有权使用rootvg,因此可以使用root文件系统。这个最小基系统包括:标准输入输出软盘适配器和SCSI硬盘驱动器。图像中的设备不是一个基设备。这个标志也被bosboot和savebase命令使用,后面将会接受。2022
26、-6-5 Dalian University of Technology 30 usubclass: 设备类划分为子类,子类scsi(小型计算机系统接口)指定可以绑定到一个scsi接口的所有磁带设备。udetectable: 指定设备实例是可检测的或者不是。一个设备一旦被加电连接到该系统它的存在和类型可以被cfgmgr检测,则说此设备是可检测的。“1”代表设备是可检测的,“0”代表设备是不可检测的。uled: 当配置方法开始运行,在LED上显示值。值被存储为10进制,但是在LED上以16进制显示。usetno,msgno: 当设备属性被lsdev命令列出时,每个设备都有一个特殊的描述(如:SC
27、SI磁带驱动)显示。这两个描述符是用来查找消息目录的描述2022-6-5 Dalian University of Technology 31 ucatalog: 列出本国语言支持目录的文件名(Identifies the file name of the national language support (NLS) catalog),在一个系统中LANG变量控制哪一个目录文件用来显示一个消息。(如:LANG被设置为en_US,目录文件/usr/lib/nls/msg/en_US/devices.cat被使用。LANG被设置为en_DE,目录文件/usr/lib/nls/msg/en_DE/
28、devices.cat被使用。)uDvDr:识别设备驱动的名字,通常,设备驱动存储在目录 /usr/lib/drivers .uDefine:命名与设备类型相关联的定义方法,当一个设备被加入自定义状态时,这个程序会被调用。uConfigure:命名与设备类型相关联的配置方法,当一个设备被加入可用状态时,这个程序会被调用。2022-6-5 Dalian University of Technology 32 l Change:命名与设备类型相关联的变更方法,当一个设备属性通过chdev命令改变是,这个程序会被调用。l Unconfigure:命名与设备类型相关联的取消配置方法,当一个设备被rmd
29、ev l 命令取消配置时,这个程序会被调用。l Undefine:命名与设备类型相关联的取消定义方法,当一个设备被rmdev l d 命令取消定义时,这个程序会被调用。l Start,stop:少数设备支持停止状态(只有逻辑设备),停止状态意味着设备驱动已经加载,但没有应用程序可以访问该设备。这两个属性名称的方法来启动和停止设备。2022-6-5 Dalian University of Technology 33 PdAt:uniquetype = tape/scsi/scsdattribute = block_sizedeflt = values = 0-2147483648,1.PdAt
30、:uniquetype = disk/scsi/osdiskattribute = pviddeflt = nonevalues = .PdAt:uniquetype = tty/rs232/ttyattribute = termdeflt = dumbvalues = .2022-6-5 Dalian University of Technology 34 uuniquetype:这个描述符作为一个指针,指向在PdDv对象类中定义的设备。uattribute:标识属性的名称。这是可以被传递到mkdev或者chdev命令的名字。udeflt:标识属性的默认值。非默认值存储在CuAtro中。uv
31、alue:标识与属性名相关联的值2022-6-5 Dalian University of Technology 35 CuDv:name = ent1status = 1chgstatus = 2ddins = pci/goentddlocation = 02-08parent = pci2connwhere = 8PdDvLn = adapter/pci/14106902CuDv:name = hdisk2status = 1chgstatus = 2ddins = scdisklocation = 01-08-01-8,0parent = scsi1connwhere = 8,0PdDv
32、Ln = disk/scsi/scsd2022-6-5 Dalian University of Technology 36 uname:一个设备实例的自定义设备对象 ,分配一个唯一的逻辑名称,以区别于其他设备。上图显示了两个设备,一个以太网适配器ent1和一个磁盘驱动器hdisk2。ustatus:标识设备实例的当前状态。l Status = 0 自定义l Status = 1 可用l Status = 2 停止uChgstatus : 这个标识说明设备实例自从上次系统起机是否被修改过。l Chgstatus = 0 新设备l Chgstatus = 1 dont carel Chgstat
33、us = 2 相同l Chgstatus = 0 设备丢失2022-6-5 Dalian University of Technology 37 uDdins:这个描述符通常包含与设备驱动程序在预定义设备对象类的名称描述符相同的值。他说明设备驱动的名字加载到内核。uLocation:标识一个设备的无聊位置。位置代码是从系统单元通过适配器到设备的一个路径。出现硬件问题时,位置码由技术支持来识别一个失败设备。在许多AIX系统中,位置码标识在硬件上,以方便设备的发现。uParent:标识父设备的逻辑名字。例如,hdisk2的父设备是scsi1。uconnwhere:标识父设备上设备所连接的具体位置。
34、例如:设备hdisk2使用SCSI地址8,0.uPdDvLn:通过PdDv对象类中的uniquetype描述符提供一个到设备实例预定义信息的链接 2022-6-5 Dalian University of Technology 38 CuAt:name = ent1attribute = jumbo_framesvalue = yes.CuAt:name = hdisk2attribute = pvidvalue = 00c35ba0816eafe50000000000000000.2022-6-5 Dalian University of Technology 39 PdCn: unique
35、type = adapter/pci/sym875“ connkey = scsi“ connwhere = 1,0PdCn: uniquetype = adapter/pci/sym875“ connkey = scsi“ connwhere = 2,0CuDvDr: resource = devno value1 = 36 value2 = 0 value3 = hdisk3“CuDvDr: resource = devno value1 = 36 value2 = 1 value3 = hdisk2CuDep: name = rootvg“ dependency = hd6CuDep:
36、name = datavg“ dependency = lv01CuVPD: name = hdisk2 vpd_type = 0 vpd = *MFIBM *TMn HUS151473VL3800 *F03N5280 *RL53343341*SN009DAFDF*ECH17923D *P26K5531 *Z0n000004029F00013A*ZVMPSS43A *Z20068*Z3072202022-6-5 Dalian University of Technology 40 1.在哪个ODM类中,你觉得你能找到你磁盘的物理卷ID号? _ 2.自定义状态和可用状态之间的区别是什么? _ _ _ _ _2022-6-5 Dalian University of Technology 41 1.在哪个ODM类中,你觉得你能找到你磁盘的物理卷ID号? CuAt 2.自定义状态和可用状态之间的区别是什么? 当一个设备被定义时,在ODM类CuDv中会产生一个条目。当一 个设备可用时,设备驱动程序已加载。设备驱动程序可访问/dev目录下的项目