1、AIX系统中的设备概述
逻辑设备文件
#ls -l /dev
空设备文件
#/dev/null
设备的状态:undefined、defined、available、stopped
设备状态之间的变化:
![](https://img2018.cnblogs.com/blog/1312505/201906/1312505-20190612150753814-888552093.png)
2、查看设备信息
#lsdev 显示系统中设备列表
#lsattr 显示系统中设备的属性
#lscfg 显示设备的配置
#prtconf 显示系统的整个配置
#lsslot 显示动态可重新配置的插槽(比如热插拔)及其特性
3、lsdev指令
用于显示系统中的设备信息和设备特性。系统中的所有的设备信息都放在ODM数据库中,在ODM数据库中由两种设备配置数据库,一种是预定义的(即系统能够支持的设备)
,另一种是用户定义的(即系统中已经识别并安装的设备)。lsdev命令就是从这两个数据库中获得信息。
lsdev指令参数 | |
-C | 从用户定义的库中显示设备信息 (即系统中已经识别并安装的设备) |
-P | 从预定义的库中显示设备信息(即系统能够支持哪些设备) |
-c class | 指定设备类名。限制输出指定类中的设备 |
-H | 显示输出上方的头部分 |
-S state |
列出处于指定状态的所有设备,状态名由 State 参数指定,该标志不能和-P 标志一起使用。State 参数值可以为:
d、D、0 或已定义状态的 defined 的一个值;
a、A、1 或可用状态的 available 的一个值;
s、S、2 或停止状态的 stopped 的一个值。
该标志可用于限制输出到指定状态的设备。
|
-F format |
以用户指定格式显示输出。其中 Format 参数为预定义或定制设备对象类中的列名引用列表,这些列名由非字母数字字符或空格分隔,也可能由它们结尾。 将空格用作分隔符时,lsdev 命令以列对齐方式显示输出。如果指定 -F Format 标志和 -C标志,就可以指定定制和预定义设备对象类中的列名。 如果指定 -F Format 标志和 -P标志,就只能指定预定义设备对象类中的列名。除列名外,可以使用特殊用途名 description 来显示设备描述。 该标志不能和 -r ColumnName 标志一起使用。同样也可以使用特殊用途名 physloc 来显示某一设备的物理位置代码。 |
-f file | 从文件名为file的文件中读取需要的参数 |
-t type | 指定设备类型名。限制输出指定类型中的设备 |
-r ColumnName |
显示指定列名为ColumnName的所有值,不能和-F同时使用。
和-C同时使用时,ColumName可以是预定义设备数据库和用户定义设备数据库中的列名;
和-P同时使用时,只能是预定义设备数据库中的列名。
|
常用指令
|
|
#lsdev -P -H
|
显示预定义设备数据库中所有的设备,并带上标题
|
#lsdev -C -H
|
显示用户定义设备数据库中所有的设备
|
#lsdev -C -c adapter -S a -H
|
显示用户定义设备数据库中处于可用状态的适配器(adapter)
|
#lsdev -P -r class
|
显示系统所支持的功能分类(从预定义设备数据库中获取信息)
|
#lsdev -P -B type
|
显示系统所支持的磁带设备
|
#lsdev -P -c disk -r subclass
|
显示系统所支持的磁盘设备的子类
|
#lsdev -C -H -S a -F "name class subclass type description"
|
显示系统中状态为可用的设备,并按照下面的格式输出信息:
name(名称) ,class(功能分类),subclass(功能子类),type(设备类型),description(描述)
|
#lsdev -C -H -F "name status location class subclass type description"
|
显示用户定义设备数据库中的所有设备,并按照下面的格式输出信息:
name(名称) ,class(功能分类),subclass(功能子类),type(设备类型),description(描述),status(状态),location(位置)
|
#lsdev -Cc adapter
|
显示用户定义的设备数据库中的设备类为(adapter)的设备
|
#lsdev -Cc hdisk
|
显示硬盘的信息
|
4、lsattr指令
显示关于给定设备或设备类型的属性信息。如果没有指定设备逻辑名(-l Name),则必须使用所有 -c Class、-s Subclass 和 -t Type 的一个或全部标志的组合来唯一标识预定义设备。
lsattr指令参数 | |
-D | 显示设备的默认值,从预定义设备数据库中读取一个具体类型设备的默认值 |
-E | 显示一个具体设备的当前有效值,从用户定义设备数据库中读取具体设备的有效值,只能和-l name 参数同时使用。 |
-F | 使用用户自定义格式显示 |
-R | 显示某一具体属性的有效值范围 |
-l Name | 指定定制设备对象类中要显示其属性名称或值的设备逻辑名 |
-H | 显示列输出上方的头部分。不能与-O和-R同时使用 |
-a | 属性显示特定设备或某类型设备的指定属性的信息。 |
-c Class | 指定设备类名。不能和-l和-E同时使用 |
-s Subclass | 指定设备的子类名称。不能和-l和-E同时使用 |
-t Type | 指定设备类型名称。不能和-l和-E同时使用 |
常用指令 | |
#lsattr -D -l rmt0 -H | 显示磁带机rmt0的属性的默认值。默认值是从预定义设备数据库中取来的 |
#lsattr -E -l rmt0 -H | 显示磁带机设备rmt0的属性的当前有效值 |
#lsattr -E -l scsi0 -a bus_intr_lvl -H | 显示SCSI适配器scsi0的bus_intr_lvl(总线中断级别)属性的当前有效值 |
#lsattr -E -l sys0 -H | 显示系统属性的当前有效值 |
#lsattr -R -l tty0 -a login | 显示终端设备tty0的login属性的可能值 |
#lsattr -E -l hdisk0 -H | 显示硬盘设备hdisk0的属性的当前值 |
#lsattr -EH -l proc0 | 显示一个具体处理器的详细信息 |
# lsattr -E -H -l en0 | 显示设备en0 当前有效值 |
注:在使用db2或oracle数据库的时候,由于Aix每个用户都有process数限制,因此,当db2或oracle用户访问超过process数限制时需要调整这个限制,
用 lsattr -El sys0 |grep maxuproc 来查看限制的数值,
用 chdev -l sys0 -a maxuproc=1024 来重新设置process数限制的值 (实际上是修改的:/etc/security/limits文件)
5、lscfg 指令
显示系统中的配置情况,诊断信息,和重要的产品数据(VPD)信息.
lscfg指令参数 | |
-v | 显示用户定义设备的重要产品数据 |
-p | 显示平台的具体设备信息 |
-r | 显示RSPC系统上的平台具体设备信息 |
-l name | 指定设备的逻辑名称 |
常用指令 | |
#lscfg | 不带任何参数,显示逻辑设备sys0的所有子设备的用户定义重要产品数据,包括设备的名称、位置编号、描述等 |
# lscfg |grep proc |wc -l
# lsdev -C |grep proc |wc -l
# lsdev -Cc processor |wc -l
|
显示机器中的CPU数量;
# bindprocessor -q 能够列出系统中可用的逻辑处理器的数量
|
#lscfg -vf | 列出用户定义设备数据库中所有物理设备的VPD信息。(并不是所有的设备都有VPD) |
#lscfg -l hdsk1 -v | 显示逻辑设备hdisk1的VPD信息 |
#lscfg -p -l proc0 | 显示处理器proc0设备的平台特性 |
#lscfg -pvl sysplanar0 |
显示系统主板的VPD和平台特性信息,可以获得机器的序列号。
由于系统主板sysplanar0是系统设备的根节点,所以会显示与sysplanar0相连接的所有设备
|
#lscfg -vp |more | 显示所有设备的配置信息 |
6、设备的配置
cfgmgr
mkdev
6.1 cfgmgr指令
在系统引导时,系统调用cfgmgr指令来配置所有的设备。cfgmgr 通过调用“配置规则”来配置所有的设备,可以选择性地安装设备的驱动程序。配置规则是设备配置数据库中的一部分内容,是用于配置设备的程序。
cfgmgr指令参数 | |
-f | 指定 cfgmgr 命令运行阶段 1 配置规则。该参数不能再系统启动后运行 |
-s | 指定 cfgmgr 命令运行阶段 2 配置规则 |
-i Device | 指定安装介质的位置,或者安装软件包所在位置。device 可以是磁带、CD-ROM或目录 |
-l Name | 配置指定设备名Name以及与它相连接的所有设备(子孙设备) |
-p Phase | 运行指定阶段phase |
-v | 指定详细输出。 cfgmgr 命令将有关它正操作的内容的信息写至标准输出 |
cfgmgr命令执行过程中不允许被中断,否则会导致数据库无法使用,当系统一旦启动后,就不能再使用带有-f参数的cfgmgr指令。
cfgmgr常用指令 | |
#cfgmgr -v | 配置当前系统中所有的设备,并输出详细信息 |
cfgmgr -l ent0 -v | 指定“ent0"设备进行配置 |
#cfgmgr -l hdisk0 -v | 指定 "hdisk0"设备进行配置 |
#cfgmgr -v -l hdisk0 -i /dev/cd0 | //在配置指定的“hdisk0"设备配置的过程中安装介质的软件 |
6.2 mkdev 指令
在AIX系统中使用mkdev命令来配置设备,是专门用来添加设备的工具。
用mkdev指令可以只定义新设备,使新设备处于已定义状态;也可以配置已定义的设备,使设备变成可用状态;也可以把定义和配置两步骤合为一步,一次性把一个新设备变成可用状态。
mkdev指令参数 | |
-a Attribute=Value | 指出设备一个具体属性attribute的值为value。-a参数后可以指定一个属性及其值,也可以指定多个属性及其值 |
-c Class -s Subclass -t Type | 指出设备的功能分类为class、功能子类为subclass、以及设备类型为type,来确定预定义设备数据库中的一个设备 |
-d | 只是定义设备,不会使其变为可用。该参数不能和-S同时使用 |
-f file | 从文件名为file的文件中读取需要的参数 |
-h | 显示帮助信息 |
-l name | 指出逻辑名为name的已定义设备。设备逻辑名必须以字母开头 |
-p parent name | 当使用-c,-s ,-t,参数时,指出需要配置设备的父设备逻辑名,由parent name变量指出父设备的逻辑名 |
-S | 当设备支持停止状态时,把设备的状态变为停止状态。该参数不能和-d参数同时使用 |
-R | 配置一个设备的任何父设备,这个设备必须没有配置,它的父设备必须时以前定义过的设备。该参数不能和-d 或-S参数使用 |
-q | 禁止该命令显示输出任何信息 |
-w Connection Location | 指出在父设备上的连接位置为Connection Location |
mkdev常用指令 | |
#mkdev -l <设备逻辑名称> | 在ODM库中,将状态为defined的设备配置为available的设备 |
#lsdev -l cd0 -H
#mkdev -l cd0
|
配置“cd0"设备,将“defined"状态配置为”available“ |
#mkdev -d -c tty -t tty -s rs232 -p sa0 -w s1 -a login=enable -a term=vt100 | 在sa0适配器的S1端口上添加一个rs232的vt100终端,只对其定义,使其状态为已定义状态 |
6.3 配置可热插拔的PCI设备
在AIX系统中管理可热插拔的PCI设备:
--lsslot :显示插槽列表及其属性
--drslot:动态地重新配置插槽
--SMIT工具
7、设备的操作
7.1更改设备的属性chdev指令
chdev指令用来改变已指定逻辑名的设备的属性。要修改的设备可以处于defined、stopped、available 3种状态。
有些设备不允许在可用状态下修改属性。
chdev命令不仅修改设备的属性值,而且设备立即使用修改后的属性值。
chdev指令执行过程中不能被中断,否则会破坏设备配置数据库。
chdev指令参数 | |
-l | 指出要更改属性设备的逻辑名 |
-a Attribute=value | 指出要将属性Attribute的值改为value,可以接多个属性和值 |
-p ParentName | 改变设备的父设备,由parentName指出新的父设备的逻辑名。不是所有的设备都支持-p |
-P | 永久性修改ODM数据库中设备的属性值。设备可能还在使用原来的属性值,不过数据库中的属性值已经修改,重启才会生效 |
-T | 临时修改设备正在使用的属性值,不修改设备数据库中的属性值。临时生效,重启后失效。不能与-P参数同时使用 |
当不使用-P参数,也使用-T参数时,chdev指令就同时修改用户定义设备数据库中的内容和修改设备正在使用的属性值。 | |
-q | 禁止命令显示任何输出信息 |
-w Connection Location | 修改在父设备上的连接位置,也就修改父设备上的端口。只有位置发生变化,才可以使用。不是所有的设备都支持-w |
-f file | 从file文件中读取所需要的参数 |
-h | 获得该命令的帮助信息 |
chdev常用指令 | |
#chdev -l <设备名称> -a <属性值> | 更改设备的属性值 |
#chdev -l hdisk1 -a pv=yes | 更改”hdisk1“设备的PV属性,标识“hdisk1"设备的PVID号 |
#lsattr -El tty1 |grep speed
#chdev -l tty1 -a speed=19200
|
更改”tty1"设备的波特率属性值 |
#lsattr -El sys0 |grep maxuproc
#chdev -l sys0 -a maxuproc=500
|
更改当前系统拥有最大的进程数为500 |
#lsattr -El cd0 |grep audio_supported
#chdev -l cd0 -a audio_supported=yes/no
|
开启/关闭光驱自动播放 |
7.2使用rmdev指令删除设备
如果要删除某个设备,要先使设备状态从可用状态变为已定义状态,然后从设备数据库中删除设备的配置信息和定义信息。
使用rmdev之前必须知道要删除设备的逻辑名,可以通过lsdev指令查到,然后通过-l参数制动设备的逻辑命。
rmdev指令参数 | |
-d | 删除设备的定义信息,彻底将设备从系统中删除。该参数不能与-S同时使用 |
-l Name | 指定要删除设备的逻辑名称 |
-q | 禁止该指令向标准输出发送任何错误信息,不在屏幕上显示任何内容 |
-R | 改变该设备的所有子设备状态为已定义(defined)或停止(stopped)状态,或者从系统中删除该设备的所有子设备 |
-S | 如果设备支持停止状态,则改变状态为stopped,设备就不能用了。该参数不能与-d同时使用 |
rmdev常用指令 | |
#rmdev -dl <设备逻辑名称> | 删除指定的设备 |
#lsdev -Cc disk
#odmget CuDv |grep disk
#rmdev -dl hdisk1
#odmget CuDv |grep disk
|
删除hdisk1设备,并删除在CuDv的ODM数据库中的配置信息 |
#rmdev -Rdl <设备逻辑名称> | 删除父设备,同时也删除父设备中的子设备,父设备中可能存在一个或多个子设备。 |
删除父设备的过程如下:
#odmget CuDv |more //查看CuDv的ODM数据库中,设备”cd0“的配置信息。
CuDv:
name="cd0"
status=1
chgstatus=0
ddins="idecdrom"
location="1G-19-00"
parent="ide0" // "cd0的父设备为ide0"
connwhere="0"
PdDvLn="cdrom/ide/sdvdrom"
#lsdev -p ide0 //通过父设备名称查看子设备的名称,“ide0"的子设备只有”cd0"
cd0 available 1G-19-00 IDE DVD-ROM Drive
#rmdev -Rdl ide0 //删除父设备,同时也会删除父设备中的所有子设备
cd0 deleted
ide0 deleted
|
7.3 SMIT工具对设备操作
#smitty dev
7.4多路径I/O (MPIO)
使用MPIO的好处:
--改善设备的性能
--提高设备的可靠性和可用性
--使系统管理变得更加容易
管理设备路径的指令有:mkpath、rmpath、lspath、chpath