AIX FAQ 第 1 期
2009-12-24 00:00:00 来源:WEB开发网系统管理是一项十分繁琐的工作。作为一个合格的系统管理员,需要了解很多相关的知识,硬件的,操作系统的,应用软件的,网络的等。所以,很多时候管理员对于自己需要应该了解那些知识十分的迷茫。通过总结了一些成功的高级管理员的经验来看,建立一个有用的 FAQ 列表是一个很好的解决方法。把自己在工作中经常遇到的问题形成一个可以快速查询的解决方案列表,有助于提高工作效率以及工作经验的总结。我们将在这里为您陆续总结出 AIX 系统管理方面的一些 FAQ,希望其中有您比较感兴趣的内容,并对您的工作有所帮助。
1.AIX 是什么?
AIX 是 IBM 公司推出的 UNIX 操作系统,它是 UNIX 的一种产品实现。它适用于一些硬件产品,最有名的就是 IBM p 系列主机。其它的一些生产商,如摩托罗拉,也有一些硬件产品可以支持 AIX。AIX 集合了 System V,BSD 和 OSF/1 等系统的一些特性,同时它也拥有很多自己特有的工具,尤其是在系统管理方面。AIX 的主要目的是提供一个优秀的、具有高扩展性,高稳定性和高可管理性的企业级操作系统平台。
2.什么是对象数据管理器(Object Data Manager)?
AIX 系统用一种独特的方法来管理和维护系统的配置信息,设备信息和关键产品信息。所有这些信息都保存在/etc/objrepos, /usr/lib/objrepos 和/usr/share/lib/objrepos目录中,位于这些目录中的文件被称为系统对象类。
系统对象类是由对象数据理器来管理的。对象数据管理器简称 ODM,它是一组用于管理面向对象数据库的程序和命令。因此系统对象类也称为 ODM 数据。ODM 提供了一些类似 SQL 语法的命令,来存取系统对象类数据库。在 AIX 系统中,ODM 是一个采用面向对象的方法来管理系统数据的工具。在以前的 UNIX 环境中,所有的系统数据都是以 ASCII 码的方式的文本文件存放,与此相比,ODM 提供了一个功能更强大,更安全,可共享的方法来管理这些系统数据。
3.如何了解我目前 AIX 的具体版本信息?
当您安装好一个基本的操作系统以后,您可以使用 oslevel 命令来确定您的系统维护级别(ML,maintenance level)。
oslevel 的基本语法是:
oslevel [ -l <level> | -g <level> | -q ] [ -r | -s ] [ -f ]
在下面的表中向您显示了一些常用的 oslevel 选项的描述
选项 | 描述 |
-l level | 列出比 Level 参数指定的维护级别低的文件集(fileset) |
-g level | 列出比 Level 参数指定的维护级别高的文件集(fileset) |
-q | 列出维护级别的名称 |
-r | 使用所有选项来查看推荐维护级别(Recommended Maintenance Levels) |
-s | 使用所有选项来查看补丁包(Service Packs) |
-f | 强制执行高速缓冲重建 |
您可以使用下面的命令来查看您系统当前的维护级别:
# oslevel
4.3.2.0
在 AIX 中,使用产品的名称和基本号来定义了一个软件产品的版本信息。AIX 3.2 以及以后的版本,软件产品的版本信息定义为以下的格式:
vv.rr.mmmm.ffff
其中:
vv 是表示版本号的 2 位数字。
rr 是表示发行号的 2 位数字。
mmmm 是表示修改级别的 4 位数字。
ffff 是表示补丁级别(fix level)的 4 位数字。
例如,bos.net.tcp.client 4.3.2.0 是一个文件集(fileset),bos.net.tcp.client 4.3.2.1 是一个对于它的升级文件集。如果还有另一个升级文件集 bos.net.tcp.client 4.3.2.2 发布,那么这个最新的文件集将包括所有在 bos.net.tcp.client 4.3.2.1 中的内容。如果发布了一个累计的 AIX 升级包,那么版本信息就会被增加并变为 bos.net.tcp.client 4.3.3.0,它将包括以前所有的修改内容。
如果经过升级以后,您的系统维护级别并没有显示为新的级别,那么可以使用 oslevel -r 命令来确定哪些文件集并没有被升级。在图 1 中,系统已经是 4.3.0.0,但是有一些文件系统并没有被升级。
图 1 oslevel –l 输出示例
同时,oslevel 命令可以作为确认一个低版本的 AIX 升级到高版本是否成功的依据。例如,一个刚刚由 AIX 4.3.3 升级到 AIX 5.1 版本的系统,您可以通过使用下面的 oslevel 命令来进行确认:
# oslevel
5.1.0.0
# oslevel -l 5.1.0.0
#
4.AIX 中的各种软件类型
软件产品包括随 AIX 自带的软件和单独购买的部分。AIX 的软件可以分为以下几个种类:
文件集(Filesets)
文件集是 AIX 操作系统上最小的可安装单元。文件集包含着组成一个完整产品的所有文件,例如,bos.net.uucp。
软件包(Package)
文件包是一组为实现一组相关功能而组合在一起的文件集。例如,bos.net 就是一个软件包。
许可程序产品(Licensed Program Products,LPP)
许可程序产品(LPP)是指一个包含了所有和这个许可程序相关的软件包的完整软件产品。例如,BOS 就是一个许可程序产品。
软件集(Bundles)
软件集就是一组包含了文件集,软件包或许可程序产品的软件,它们组合在一起为了实现一个特定的功能,例如提供一个个人的信息管理系统或者是网络上的一个客户端程序。缺省情况下,系统使用的软件集存放在 /usr/sys/inst.data/sys_bundles 目录中。用户自定义的软件集会存放在 /usr/sys/inst.data/user_bundles 中。AIX 5L V5.1 中系统定义的软件集包括:
App-Dev
CDE
GNOME
KDE
Media-Defined
Netscape
devices
wsm_remote
PTF 是程序临时补丁(Program Temporary Fix)的缩写。一个 PTF 是一个升级文件集或者一个用以修复前面版本出现的问题的文件集。PTF 安装的方法和文件集的安装方法一样,都是使用 installp 命令。
APAR 是授权程序分析报告(Authorized Program Analysis Report)的缩写,它是一种紧急的修复,或者是针对于唯一的系统问题而出的修复。最后,经过测试和确认 APARs 将会变成 PTF。APAR 使用 instfix 命令来安装到系统上。
相关资源:
AIX 5L 系统的安装介绍:http://www.ibm.com/developerworks/cn/aix/library/au-cn-install5l/
5.如何使用 installp 安装相应的软件?
当您安装完基础的操作系统后,只有比较基本的软件安装到您的系统上了。在后面的管理和使用中,还会安装很多特定功能的软件,您可以使用命令行或者 SMIT 工具来完成这些软件的安装。AIX 上的软件可以被安装为两种状态:应用状态(applied)和提交状态(committed)。应用状态下的软件或者更新,会把原有的旧版本的软件保留下来,缺省存放在 /usr/lpp/PackageName 目录下,PackageName 是软件包的名称。这样的情况比较适用于在软件的测试和评估阶段,如果新版本的软件有任何的异常,还可以恢复到原来的版本。而提交状态(committed)软件是指安装完毕后把原有的版本删除掉,这样也就无法恢复到原来的版本了。显然,我们推荐您使用应用状态进行安装,等确认没有任何异常的情况下再转换为确认状态。
installp 是用来安装和升级软件的命令行工具。它拥有很多的选项,当然一般情况下只有一些基本选项会经常被使用到,如:
-a 应用一个或者多个软件的安装和升级。这是缺省的操作。
-v 确认安装完成后会返回一个正确的 checksum 值。可以和 -a 和 -ac 一起使用来确认安装的成功与否。
-s 命令可用来得到一个应用的更新的列表,该更新可被提交或拒绝。
-c 标志提交更新时,用户对软件产品的版本做一个提交,并且从系统中删除来自于该软件产品所有先前版本的保存文件,从而使返回该软件产品的先前版本变得不可能。
-t 标志为保存目录指定一个备用位置,该目录保留了由更新替换的文件。
-A 命令可用来获得“授权程序分析报告”(APAR)号的列表和在指定软件包中已修复的所有用户报告的问题总结。
-i 命令可用来显示包含在指定软件包一部分的文件中的补充信息。
-l 列出在指定安装介质上的所有软件产品和更新
下面来举几个例子说明一下:
1.安装 TCP/IP 和它的一个包含在 /usr/sys/inst.images 目录下的更新
#installp -a -d/usr/sys/inst.images bos.net.tcp.client 4.1.0.0 bos.net.tcp.client 4.1.0.2
Installp Summary
----------------
Name Level Part Event Result
--------------------------------------------------------------------
bos.net.tcp.client 4.1.0.0 USR APPLY SUCCESS
bos.net.tcp.client 4.1.0.0 ROOT APPLY SUCCESS
bos.net.tcp.client 4.1.0.2 USR APPLY SUCCESS
在同一个包中有重复的文件集时,installp 将使用它在安装内容表(.toc )第一个发现的那个。当 bffcreate 用于从不同介质用来释放映像到同一个安装目录中时,这个情况可能发生。因此,确保更新映像不被作为相同级别上的相同文件集的基本级别映像解压缩到相同目录。
2.列出所有包含在安装盒带上的软件产品和可安装的选项
installp -L -d /dev/rmt0.1
3.要在 bos.net 软件包(位于 /usr/sys/inst.images 目录)内安装(自动提交)所有文件集,并在需要时扩展文件系统
installp -aX -d/usr/sys/inst.images bos.net
4.要删除名为 bos.net.tcp.server 的文件集:
installp -u bos.net.tcp.server
5.要用 installp 命令预览(不实际安装)“应用程序开发者”包的安装:
installp -pacgXd /dev/rmt0.1 -f /usr/sys/inst.data/sys_bundles /App_Dev.bnd
SMIT 其实也是使用 installp 来进行安装的,只是更加形象化,同时更加地便于操作,在这里就不进行过多的叙述了。
相关资源:
AIX 常用命令汇总:http://www.ibm.com/developerworks/cn/aix/library/au-dutta_cmds.html
6.如何查看服务器的硬件信息?
如果想了解您系统的硬件信息,您可以使用以下的这些命令:
lsdev: 显示系统上安装的设备以及它们的特性信息。
lspv: 显示卷组中的物理卷的信息。
lsattr:显示指定的设备的信息。
下面分别向您介绍这三个工具:
您可以使用 lsdev 命令来显示在设备配置库(device configuration database)中的设备信息。您还可以分别使用 -C 和 -P 选项来显示 ODM(Object Database Manager,对象数据管理器)中的自定义设备(Customized Devices object )类和预定义设备(Predefined Devices object)类的信息。
表中为您列举了一些 lsdev 常用选项的介绍:
选项 | 描述 |
-C | 列出属于自定义设备类设备的信息。缺省是显示设备的名称,状体,位置和描述信息。这个选项不能和 -P 一起使用。 |
-c Class | 使用指定的设备名称进行显示。这个选项可以实现对特定的类进行特定的输出。 |
-h | 显示使用说明信息。 |
-P | 列出属于预定义设备类设备的信息。缺省是显示设备的类,类型,子类和描述信息。这个选项不能和 -C,-l 和 -S 一起使用。 |
-S State | 列出处于特定状态的所有设备。 |
如果想列出处于可用状态并在自定义设备类中的适配器,可以输入:
lsdev -C -c adapter -S a
lsdev 的命令输出包括一些基本的设备信息,然而,您可以通过 lspv 命令来得到一些更加详细的关于物理卷的信息。
如果您不加任何选项使用 lspv,那么它将输出所以物理卷的信息,包括:名称,物理卷标识符和这个物理卷属于那个卷组。如果您提供了特定的物理卷作为选项的话,那么它将只输出这个物理卷的信息。lspv 命令的基本语法如下:
lspv [ -l | -p | -M ] [ -n DescriptorPhysicalVolume] [-vVolumeGroupID] PhysicalVolume
两个最常用的是:
-p
显示物理卷中每一个物理分区的范围,状态,区域,LV(logical Volume,逻辑卷)的名称以及挂载点。
-v VolumeGroupID
将显示根据提供的 VolumeGroupID 参数而确定的访问信息。
例如:
想显示您系统上的物理卷,可以输入:
lspv
hdisk0 00615147ce54a7ee rootvg
hdisk1 00615147a877976a rootvg
想显示物理卷 hdisk0 的状态和信息,可以通过下面的命令得到:
lspv hdisk0
在配置完系统上的所有设备后,您可以使用 lsattr 命令来查看所有设备的属性信息。
如果您不指定设备的逻辑名称(-l Name),那么您必须使用由 -c Class,-s Subclass 和 -t Type 这些选项唯一定义的一个预定义设备作为参数。lsattr 命令的基本语法如下
表 3 lsattr 命令:
选项 | 描述 |
-D | 为一个没有使用 -O 选型的指定设备显示属性名称,缺省值,描述以及用户定义选项值等信息。如果和 —O 选项一起使用,将只显示属性的名称和缺省值。 |
-E | 为一个没有使用 -O 选型的指定设备显示属性名称,当前值,描述以及用户定义选项值等信息。如果和 —O 选项一起使用,将只显示属性的名称和当前值。这个选项不能和 -c,-D,-F,-s 和 -t 一起使用。 |
-F Format | 使用用户定义的格式进行输出。 |
-a Attribute | 输出设备的特定属性信息。 |
-c class | 指定了设备的类名。不能和 -E 和 -l 选项一起使用。 |
-f File | 从 File 文件中读取所需的选项。 |
-O | 显示的时候把属性名用冒号分隔开,同时在第二行显示相应的值时候也用冒号隔开。 |
-R | 显示属性的合法值。它以垂直的形式显示属性的值,如: Value1 Value2 . . ValueN |
-t Type | 指定一个设备的类型。这个选项可以限制对特性类设备的输出。它不能和 -E 和 —l 一起使用。 |
如果想显示当前磁带机设备 rmt0 的属性值,可以使用以下的 lsattr 命令:
# lsattr -l rmt0 -E
mode yes Use DEVICE BUFFERS during writes True
block_size 1024 BLOCK size (0=variable length) True
extfm no Use EXTENDED file marks True
ret_error no RETURN error on tape change or reset True
如果想显示磁带机设备 rmt0 的缺省属性值,可以使用以下的 lsattr 命令:
# lsattr -l rmt0 -D
mode yes Use DEVICE BUFFERS during writes True
block_size 1024 BLOCK size (0=variable length) True
extfm no Use EXTENDED file marks True
ret_error no RETURN error on tape change or reset True
如果想显示 SCSI 设备 scsi0 的 bus_intr_lvl 属性的当前值,可以使用以下的 lsattr 命令:
# lsattr -l scsi0 -a bus_intr_lvl -E
bus_intr_lvl 14 Bus interrupt level False
如果想显示 TTY 设备 tty0 的 login 属性的所有可能值,可以使用以下的 lsattr 命令:
# lsattr -l tty0 -a login -R
enable
disable
share
delay
hold
如果想显示串口设备 tty0 当前连接速度属性的值,可以使用以下的 lsattr 命令:
# lsattr -El tty0 -a speed
speed 9600 BAUD rate True
当然,根据配置的不同,您可能在看到的结果和上面的显示不相同。
7.如何查看 AIX 的系统参数?
结合第 5 部分中所描述的一些相关内容,在下面向您列出了一些常用的查看 AIX 系统参数的命令:
lsdev -C 显示系统设备信息
lspv 查看系统物理卷信息
lsvg 查看卷组信息
lslpp 查看许可文件产品信息,主要用于查看已安装软件的信息
lsattr 查看设备参数信息
lscfg 查看 VPD(Virtual Producgt Data)信息
当然,对于这些命令的具体使用还需参考 AIX 的具体使用手册。您同时可以使用 SMIT 工具来查看相关的系统参数信息。
8.如何在 32 位和 64 内核之间切换?
首先,使用下面的命令来确定您的硬件系统是否支持 64 位内核:
# /usr/sbin/prtconf -c
它会返回“32”或者“64”,当然,显示“64”就意味着您的硬件系统为64位。如果您的系统不能执行 prtconf 命令,那么还可以使用 bootinfo -y 命令来进行确认。
当然,只有 64 位的硬件才能支持 64 位的内核。
下面分向您介绍如何在 32 位内核和 64 位内核之间进行切换
I.32 位内核向 64 位内核切换:
1. ln -sf /usr/lib/boot/unix_64 /unix
2. ln -sf /usr/lib/boot/unix_64 /usr/lib/boot/unix
3. bosboot -ad /dev/ipldevice
4. shutdown -Fr
5. 重启后,使用命令 bootinfo -K 查看,如果显示为 64,那么说明已经切换为 64 位内核了。
II.64 位内核向 32 位内核切换:
1. ln -sf /usr/lib/boot/unix_mp /unix
2. ln -sf /usr/lib/boot/unix_mp /usr/lib/boot/unix
3. bosboot -ad /dev/ipldevice
4. shutdown -Fr
5.重启后,使用命令 bootinfo -K 查看,如果显示为 32,那么说明已经切换为 32 位内核了。
9.如何挂载文件系统?
mount 命令是 AIX 系统最常用的一个文件管理工具。只有使用了 mount 命令才能让诸如文件系统,文件,目录,设备等可用。这也是唯一的一种可以访问文件系统的方法。当然,对于不同的目标,mount 会配合使用不同的选项来实现他们的可访问性。
下面,我们通过一些例子来说明如何使用 mount 命令:
1.显示系统已挂载的文件系统:
#mount
node mounted mounted vfs date options over
---- ------- --------- --- ------------ ------- ---------
/dev/hd0 / jfs Dec 17 08:04 rw, log =/dev/hd8
/dev/hd3 /tmp jfs Dec 17 08:04 rw, log =/dev/hd8
/dev/hd1 /home jfs Dec 17 08:06 rw, log =/dev/hd8
/dev/hd2 /usr jfs Dec 17 08:06 rw, log =/dev/hd8
sue /home/local/src /usr/code nfs Dec 17 08:06 ro, log =/dev/hd8
不加任何选项的 mount 命令会为您列出当前系统已经挂载的所有文件系统。
2.挂载所有的缺省文件系统:
#mount all
这个命令会挂载所有在 /etc/filesystems 文件中被设置为 mount=true 的文件系统。
3.安装文件系统
mount /dev/fslv02 /test
将文件系统 /dev/fslv02 挂载到 /test 目录中。
4.安装 CD/DVD
mount -V cdrfs -o ro /dev/cd0 /cdrom
将CD/DVD 设备挂载到 /cdrom 目录中。
5.挂接 NFS 文件系统
首先,保证 NFS 服务运行正常,可以使用 showmount -e hostname/ip 来查看相应主机或者 IP 地址上的 NFS 信息,如:
# showmount -e nfsserver
如果能够显示相应的文件系统信息,说明 NFS 服务正常。
然后执行 mount 命令挂载相应的 NFS 文件系统到本地,如:
mount nsfserver:/nfs/test /test
这样就相应的把 NFS 服务器(nfsserver)上的目录(/nfs/test)挂载到了本地(/test)。
10.如何启动和停止系统服务?
在 AIX 上,服务也可以称为子系统(Subsystem),它是受控于系统资源控制器(System Resource Controller,SRC)的。SRC 提供了一套命令来控制整个 AIX 系统的子系统,所以,启动和停止相关的服务(子系统)也是要通过这些命令来实现的。
1.启动子系统:
startsrc 负责启动 AIX 上的子系统,一般的用法为:
startsrc -s inetd 启动 Internet 服务
startsrc -t ftp 启动 ftp 服务(由于 ftp 服务是属于 inetd 子系统,所以启动 ftp 需要使用 -t 选项。)
startsrc -g tcpip 启动全部的 tcpip 子系统
2.停止子系统:
stopsrc -h zork -s srctest -f 强制停止主机 zork 上的 secret 子系统。
stopsrc -a 停止本机的所有子系统
3.刷新子系统
refresh -g tcpip 刷新子系统,以应用相应的配置修改。
4.查看系统上的所有子系统
lssrc -a 列出本机的所有子系统(无论运行还是没有运行)
lssrc -g tcpip 列出所有属于 tcpip 组中的子系统
赞助商链接