1、设备管理介绍
AIX 中的设备按照分层方式管理。
位于顶层的是功能分类,即按相同的基本功能分组,例如,所有的适配卡都属adapter 类。
下一级为功能子类,根据更明确的具体性质加以划分,例如标准的输入 /输出适配卡和微通道适配卡,标准的输入 /输出适配卡属于的 sio 功能子类,而微通道适配卡属于 mca 功能子类。
最后一级为类型子类,即按类型和制造商区分设备。例如,在sio功能子类下有8fba(标准的 SCSI I/O控制卡) ,fda_2(标准的 I/O磁盘适配卡),和 ient_6(内置以太网适配卡) 等类型。在 mca 功能子类下有 sio_2(微通道 I/O 主板)设备类型。
下面的命令说明了这种设备分类方式:
# lsdev -C -F "class subclass type description" | sort
adapter buc 4006 GXT150L Graphics Adapter
adapter mca sio_2 Standard I/O Planar
adapter sio 8fba Standard SCSI I/O Controller
adapter sio fda_2 Standard I/O Diskette Adapter
adapter sio ient_6 Integrated Ethernet Adapter
adapter sio keyboard_2 Keyboard Adapter
adapter sio mouse Mouse Adapter
adapter sio ppa Standard I/O Parallel Port Adapter
adapter sio s1a Standard I/O Serial Port 1
adapter sio s2a Standard I/O Serial Port 2
adapter sio tablet_2 Tablet Adapter
aio node aio Asynchronous I/O
bus sys mca Microchannel Bus
cdrom scsi scsd SCSI Multimedia CD-ROM Drive
disk scsi 2000mb 2.0 GB SCSI Disk Drive
diskette siofd fd Diskette Drive
if EN en Standard Ethernet Network Interface
if EN ie3 IEEE 802.3 Ethernet Network Interface
if LO lo Loopback Network Interface
ioplanar sys ioplanar_2 I/O Planar
keyboard std_k kb101 United States keyboard
lft node lft Low Function Terminal Subsystem
logical_volume lvsubclass lvtype Logical volume
logical_volume lvsubclass lvtype Logical volume
logical_volume lvsubclass lvtype Logical volume
logical_volume lvsubclass lvtype Logical volume
logical_volume lvsubclass lvtype Logical volume
logical_volume lvsubclass lvtype Logical volume
logical_volume lvsubclass lvtype Logical volume
logical_volume lvsubclass lvtype Logical volume
logical_volume vgsubclass vgtype Volume group
lvm lvm lvdd LVM Device Driver
memory sys simm 32 MB Memory SIMM
memory sys simm 32 MB Memory SIMM
memory sys simm 32 MB Memory SIMM
memory sys simm 32 MB Memory SIMM
mouse std_m mse_3b 3 button mouse
planar sys sysplanar3 System Planar
processor sys proc1 Processor
pty pty pty Asynchronous Pseudo-Terminal
rcm node rcm Rendering Context Manager Subsystem
sys node sys1 System Object
sysunit sys sysunit System Unit
tape scsi 8mm5gb 5.0 GB 8mm Tape Drive
tcpip TCPIP inet Internet Network Extension
下层的设备依赖于上层的设备,例如:8mm5gb 类型的设备取决于 SCSI 功能子类
的配置。在 AIX 内的分层和依存关系保存在 ODM 数据库中。
2、对象数据库
ODM(Object Database Management)是指面向对象的数据库管理,负责管理和存放系统信息,设备配置数据库也在其管理范围内。ODM 是按数据库→对象类→对象分层实现管理的,例如:设备配置数据库由 predefined 和 customized 两个对象类组成。预定义对象(predefined)包含了 AIX 所有支持的设备对象,用户定义对象类(customized)则包含系统中实际存在的设备对象。
(1)对象类
对象类是具有相同定义的对象集合,这种定义类似于 C 语言的结构定义。对象类通常存放在/etc/objrepos(对象仓库的缩写)目录,或 ODMDIR环境变量所指定的目录下。例如:系统实际连接设备对象的配置信息保存在/etc/objrepos/CuDv 文件中,可以使用 odmshow 命令显示出其定义。
# odmshow CuDv
class CuDv {
char name[16];
short status;
short chgstatus;
char ddins[16];
char location[16];
char parent[16];
char connwhere[16];
link PdDv PdDv uniquetype PdDvLn[48];
};
CuDv 对象类中的每一项均为一个描述符。当一个对象添加到 CuDv 对象类时,将对每一个描述符赋值。例如:带有 00-00-0S-00 位置码的 SCSI 硬盘将把该码存放在 location 描述符中。
(2)对象
对象是对象类中具体的一项。每个对象有一组相应于对象类中所定义描述符的配置参数。例如:要看 CuDv 对象类中的对象和它们的相应值,输入下列命令:
# odmget CuDv
CuDv:
name = "hdisk0"
status = "1"
chgstatus = "2"
ddins = "scdisk"
location = "00-00-0S-00"
parent = "scsi0"
connwhere = "00"
PdDvLn = "disk/scsi/1000mb"
上面的每一行对应于 CuDv 对象类中定义的描述符。最后一行十分重要,它显示出该设备的层次结构,disk 是功能类,scsi 是功能子类,而 1000mb 是类型子类。
3、添加设备(命令行)
添加和删除设备时,ODM 会修改设备配置数据库。如果使用诸如 mkdev、rmdev、lsdev、lsattr 和 chdev 之类的 AIX 设备管理命令配置设备,就必须熟悉设备分层结构和 ODM。然而,有两个工具能大大简化这些工作,它们是:cfgmgr 命令和 SMIT。
cfgmgr 命令,即配置管理器,可用来自动配置系统中的设备。在系统启动时会调用该命令,也能在命令行执行。在运行时,它从 Config_Rules 对象类中读取规则,实际上就是一些用于配置设备的命令,通过创建设备文件和安装驱动程序使设备变为可用。可以用 odmget Config_Rules 命令查看这些规则。因此,一种添加 5GB 8mm SCSI 磁带机的方法是:
1.主机下电
2.连接设备
3.设备加电
4.启动主机
在系统引导过程中,cfgmgr 将自动识别新设备,并把它变为可用。如果你输入下列命令,将能看到磁带机已经配置好:
# lsdev -C -c tape
rmt0 Available 00-00-0S-1,0 5.0 GB 8mm Tape Drive
“available”是磁带机的状态。一个设备只能处于三种状态之一:undefined、defined和 available。如果磁带机处于 undefined 状态,那么它尚未被 cfgmgr 配置出来;如果处于 defined 状态,那么它的配置数据已保存在用户定义数据库中,但还不可使用。一旦一个已定义的设备绑定到核心中,它将处于 available 状态。cfgmgr 将首先确保你的设备是已定义的,然后再把它变为可用。
cfgmgr 也能在命令行执行。如果你把类似磁带机的一个设备添加到正在运行的系统中,你可以运行 cfgmgr 命令使其变为可用。或者,你有一个可用的设备,但在启动时没打开电源, cfgmgr 会把它设置成 defined 状态。如果要使它变为可用,可以打开设备电源,重新运行 cfgmgr 命令。
4、添加设备(SMIT)
把设备连到系统,打开电源,然后运行 SMIT 配置它。在命令行输入 smit device,你将看到:
Devices
Move cursor to desired item and press Enter.
Install/Configure Devices Added After IPL
Printer/Plotter
TTY
Asynchronous Adapters
PTY
Console
Fixed Disk
Disk Array
……
……
选择你想要的项然后按 Enter 键。如果你想通过这种方法添加 8mm 磁带机,就选
择 Tape Drive。接下来的屏幕输出如下:
Tape Drive
Move cursor to desired item and press Enter.
List All Defined Tape Drives
List All Supported Tape Drives
Add a Tape Drive
Change / Show Characteristics of a Tape Drive
Remove a Tape Drive
Configure a Defined Tape Drive
Generate Error Report
Trace a Tape Drive
选择 Add a Tape Drive。将出现一张所支持磁带机的列表,与下面的显示类似:
Tape Drive Type
Move cursor to desired item and press Enter.
1200mb-c scsi 1.2 GB 1/4-Inch Tape Drive
150mb scsi 150 MB 1/4-Inch Tape Drive
3490e scsi 3490E Autoloading Tape Drive
48
4mm2gb scsi 2.0 GB 4mm Tape Drive
……
……
这张表来自预定义设备对象类。如果要添加一个非 IBM 的 SCSI 磁带机,选择 ostscsi Other SCSI Tape Drive,该项是通用的 SCSI 选项。在例子中,选择 8mm5gb scsi5.0 GB 8mm Tape Drive。接着将出现一个询问父适配卡的对话框:
Parent Adapter
Move cursor to desired item and press Enter.
scsi0 Available 00-00-0S Standard SCSI I/O Controller
选择 scsi0 Available 00-00-0S Standard SCSI I/O Controller。
最后,你将得到下面的屏幕输出:
Add a Tape Drive
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
[Entry Fields]
Tape Drive type 8mm5gb
Tape Drive interface scsi
Description 5.0 GB 8mm Tape Drive
Parent adapter scsi0
* CONNECTION address [] +
BLOCK size (0=variable length) [1024] +#
Use DEVICE BUFFERS during writes yes +
Use EXTENDED file marks no +
DENSITY setting #1 140 +
DENSITY setting #2 20 +
Use data COMPRESSION yes +
这里唯一必须填写的项是 CONNECTION address,指你的 SCSI 地址。其他参数你可根据需要修改。使用 SMIT 添加设备的优点在于:你可以根据需要裁剪你的配置,而 cfgmgr 将按缺省属性添加设备。如果本例中磁带机的 SCSI ID 设为 6,你应该在 CONNECTIONaddress 字段上填入 6,0。按 Enter键,SMIT 将调用 mkdev 命令,并把磁带机配为可用状态。
5、ODM 未定义的设备
预定义对象类支持所有类型的设备,绝大多数是 IBM 的产品。然而,其中也有通用的设备对象。要想看这类对象的列表,输入下列命令:
# lsdev -P | grep -i other
printer osp rs232 Other serial printer
printer osp rs422 Other serial printer
printer opp parallel Other parallel printer
tape ost scsi Other SCSI Tape Drive
cdrom oscd scsi Other SCSI CD-ROM Drive
cdrom scsd scsi Other SCSI CD-ROM Drive
disk osdisk scsi Other SCSI Disk Drive
disk scsd scsi Other SCSI Disk Drive
rwoptical osomd scsi Other SCSI Read/Write Optical
rwoptical scsd scsi Other SCSI Read/Write Optical
如果你的设备不在预定义对象类中,但与上面列出的对象相似,那么在 SMIT 添加设备时选择这类对象会工作得很正常,通常 cfgmgr 在碰到不认识的设备时也是这样做的。如果设备无法正常工作,那么只有修改预定义对象类,编写必要的设备程序,有时还要编写设备驱动程序,安装用于支持该设备的软件。要获取更多的信息请参阅《Kernel Extensions and Device Programming Concepts》。
6、删除设备
当你从系统中移走一个设备,或使其处于关电状态,cfgmgr 将会在系统下一次重新启动时把该设备置为 defined 状态。如果你不想看到这些变成 defined 状态的设备,可以使用 rmdev 命令删除它们。rmdev 的语法为:
# rmdev -l Name
Name 指设备的逻辑名。lsdev –C 命令输出的第一列即设备的逻辑名。所以要删除刚才的 8mm 磁带机,输入下列命令:
# rmdev -l rmt0
这条命令会把rmt0设备配置信息保留在用户定义数据库,而把它的状态变为defined。要想把磁带机从用户定义数据库中彻底删除,输入:
# rmdev -d -l rmt0
上述操作也可以通过 SMIT 实现。只要输入 smit device,选择正确的菜单选项就可以删除选择的设备,其中包含是否将设备保留在用户定义数据库的选项。
oracle视频教程请关注:http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html