AIX 红皮书中文版


第 1 页 目 录 第一章 认证概述 ..................................................................................................................................................11 1.1 PSERIES AIX 系统管理员(TEST 191) ................................................................................................11 1.1.1 认证前提建议.....................................................................................................................................11 1.1.2 认证考试注册.....................................................................................................................................11 1.1.3 认证考试目标.....................................................................................................................................11 1.2 认证培训课程 .............................................................................................................................................13 1.3 光盘教学:IBM AIX ESSENTIALS..........................................................................................................14 第二章 系统启动问题处理............................................................................................................................... 15 2.1 本章中要用到的关键命令.......................................................................................................................15 2.2 引导过程 ......................................................................................................................................................15 2.3 开机顺序、LED 指示灯以及音频信号 ................................................................................................16 2.4 一些有用的命令.........................................................................................................................................17 2.4.1 使用 alog 命令................................................................................................................................... 17 2.4.2 使用 cfgmgr 命令.............................................................................................................................. 19 2.4.3 使用 last 命令.................................................................................................................................... 21 2.4.4 使用 bootlist 命令............................................................................................................................. 22 2.4.5 使用 uptime 命令.............................................................................................................................. 23 2.4.6 使用 mpcfg 命令 .............................................................................................................................. 23 2.4.7 使用 shutdown 命令......................................................................................................................... 25 2.5 解决引导问题 .............................................................................................................................................26 2.5.1 访问一个无法引导的系统 ............................................................................................................. 26 2.5.2 安装介质的问题............................................................................................................................... 29 2.5.3 常见的引导时 LED 错误代码和恢复操作 ................................................................................. 30 2.6 测验...............................................................................................................................................................31 2.6.1 答案 ..................................................................................................................................................... 32 2.7 练习...............................................................................................................................................................32 第三章 硬件援助.................................................................................................................................................. 33 3.1 列出硬件设备 ..............................................................................................................................................33 3.1.1 使用 lsdev 命令 .................................................................................................................................. 33 3.1.2 使用 lspv 命令.................................................................................................................................... 35 3.2 配置系统设备 ..............................................................................................................................................36 3.3 系统管理服务 ..............................................................................................................................................39 3.4 硬件设备兼容性 .........................................................................................................................................39 3.4.1 设备配置数据库 ................................................................................................................................ 40 3.5 使用 LSATTR 命令........................................................................................................................................40 3.6 使用带 DEVICES 参数的 SMIT .................................................................................................................42 3.7 系统错误日志 ..............................................................................................................................................42 3.7.1 使用 errdemon 命令 .......................................................................................................................... 42 3.7.2 使用 errpt 命令 .................................................................................................................................. 43 第 2 页 3.7.3 使用 errlogger 命令 .......................................................................................................................... 46 3.7.4 其他错误处理命令............................................................................................................................ 47 3.8 诊断硬件问题 ..............................................................................................................................................47 3.9 系统日志.......................................................................................................................................................48 3.9.1 syslogd 配置文件 ............................................................................................................................... 49 3.9.2 配置文件的格式 ................................................................................................................................ 49 3.9.3 使用系统日志..................................................................................................................................... 51 3.10 建立一个 ASCII 终端 ..............................................................................................................................52 3.11 测验..............................................................................................................................................................54 3.11.1 答案..................................................................................................................................................... 55 3.12 练习 .............................................................................................................................................................55 第四章 系统和软件安装..................................................................................................................................... 56 4.1 基本操作系统(BASE OPERATING SYSTEM)安装..............................................................................56 4.1.1 完全覆盖式安装 ................................................................................................................................ 58 4.1.2 升级安装.............................................................................................................................................. 58 4.1.3 保留安装.............................................................................................................................................. 59 4.2 高级选项安装.............................................................................................................................................59 4.2.1 安装软件包集或桌面 ....................................................................................................................... 59 4.2.2 激活可信计算环境(Trusted Computing Base,TCB) .......................................................... 59 4.2.3 激活 64-bit 内核和 JFS2.................................................................................................................. 60 4.3 配置助理(CONFIGURATION ASSISTANT )............................................................................................60 4.4 理解维护级别(MAINTENANCE LEVELS).............................................................................................61 4.5 软件封包.......................................................................................................................................................62 4.5.1 文件集(Filesets) ........................................................................................................................... 63 4.5.2 软件包(Packages)........................................................................................................................ 63 4.5.3 注册的程序产品(Licensed Program Products) ..................................................................... 63 4.5.4 软件束(Bundles)........................................................................................................................... 63 4.5.5 PTFs 和 APARs ................................................................................................................................... 63 4.6 安装可选软件和维护更新........................................................................................................................64 4.6.1 installp 命令........................................................................................................................................ 64 4.6.2 使用 SMIT 进行软件维护................................................................................................................ 67 4.7 维护可选的软件(应用更新)...............................................................................................................70 4.7.1 列出软件的维护级别 ....................................................................................................................... 70 4.7.2 下载修复软件..................................................................................................................................... 72 4.7.3 显示被安装的软件并更新到最新级别 ........................................................................................ 73 4.8 在硬盘上创建安装映像............................................................................................................................77 4.9 备用磁盘安装(ALTERNATE DISK INSTALLATION).............................................................................78 4.9.1 必要的文件集..................................................................................................................................... 79 4.9.2 备用磁盘复制 rootvg........................................................................................................................ 79 4.9.3 备用 mksysb 安装(Alternate mksysb install)........................................................................... 81 4.10 测验 .............................................................................................................................................................82 4.10.1 答案 .................................................................................................................................................... 83 4.11 练习..............................................................................................................................................................84 第 3 页 第五章 对象数据管理器(OBJEC T DATA MANAGER) ..................................................................... 85 5.1 ODM 命令 ....................................................................................................................................................85 5.2 ODM 数据库的对象类举例 .....................................................................................................................86 5.3 测验................................................................................................................................................................86 5.3.1 答案 ...................................................................................................................................................... 87 5.4 练习................................................................................................................................................................87 第六章 存储管理,LVM和文件系统............................................................................................................ 88 6.1 逻辑卷存储(LOGICAL VOLUME STORAGE)概念 ...............................................................................88 6.2 逻辑卷管理器(LOGICAL VOLUME MANAGER).................................................................................89 6.2.1 LVM 配置数据.................................................................................................................................... 89 6.2.2 磁盘定额(Disk quorum).............................................................................................................. 90 6.2.3 磁盘镜像(Disk mirroring).......................................................................................................... 91 6.3 管理物理卷 ..................................................................................................................................................93 6.3.1 物理卷的配置..................................................................................................................................... 93 6.3.2 使可用的磁盘成为物理卷 .............................................................................................................. 94 6.3.3 修改物理卷特征 ................................................................................................................................ 94 6.3.4 删除物理卷......................................................................................................................................... 95 6.3.5 列出关于物理卷的信息 ................................................................................................................... 95 6.4 管理卷组.....................................................................................................................................................101 6.4.1 增加一个卷组...................................................................................................................................101 6.4.2 修改卷组特征...................................................................................................................................102 6.4.3 导入(importing)和导出(exporting)一个卷组 .................................................................104 6.4.4 激活(varying on)和停止(varying off)卷组 ......................................................................105 6.4.5 监控卷组............................................................................................................................................107 6.4.6 重新组织(Reorganizing)卷组..................................................................................................108 6.4.7 同步(Synchronizing)卷组 .........................................................................................................109 6.5 管理逻辑卷 ................................................................................................................................................109 6.5.1 增加一个逻辑卷 .............................................................................................................................. 110 6.5.2 删除一个逻辑卷 .............................................................................................................................. 112 6.5.3 减少逻辑卷的大小.......................................................................................................................... 113 6.5.4 增加逻辑卷的大小.......................................................................................................................... 113 6.5.5 拷贝一个逻辑卷 .............................................................................................................................. 113 6.5.6 分离(splitting)逻辑卷的拷贝 .................................................................................................. 115 6.5.7 列出逻辑卷....................................................................................................................................... 115 6.5.8 逻辑卷大小....................................................................................................................................... 116 6.6 管理日志文件系统(JOURNALED FILE SYSTEMS)............................................................................117 6.6.1 日志文件系统的特征 ..................................................................................................................... 117 6.6.2 创建一个文件系统.......................................................................................................................... 118 6.6.3 装载(mount)一个文件系统......................................................................................................121 6.6.4 删除一个文件系统..........................................................................................................................124 6.6.5 增加文件系统大小..........................................................................................................................126 6.6.6 减少文件系统的大小 .....................................................................................................................127 6.6.7 检查文件系统的一致性 .................................................................................................................128 第 4 页 6.6.8 初始化 JFS 日志设备.....................................................................................................................128 6.6.9 JFS 日志设备的放置 ......................................................................................................................129 6.6.10 允许大文件的文件系统...............................................................................................................129 6.7 文件系统问题排除 ...................................................................................................................................129 6.7.1 修复超级块错误 ..............................................................................................................................130 6.7.2 不能卸载文件系统..........................................................................................................................130 6.8 LVM 命令总结 ..........................................................................................................................................131 6.8.1 PV 命令 ..............................................................................................................................................131 6.8.2 VG 命令 .............................................................................................................................................131 6.8.3 LV 命令 ..............................................................................................................................................131 6.8.4 文件系统命令...................................................................................................................................132 6.9 测验..............................................................................................................................................................132 6.9.1 答案 ....................................................................................................................................................134 6.10 练习 ...........................................................................................................................................................135 第七章 系统分页空间(SYSTEM PAGING SPACE) .........................................................................136 7.1 分页空间概述 ............................................................................................................................................136 7.1.1 对分页空间的考虑因素 .................................................................................................................136 7.2 管理分页空间 ............................................................................................................................................138 7.2.1 显示分页空间特征..........................................................................................................................139 7.2.2 增加和激活一个分页空间 ............................................................................................................139 7.2.3 修改分页空间的属性 .....................................................................................................................140 7.2.4 删除一个分页空间(除 hd6 之外)...........................................................................................142 7.2.5 管理缺省分页空间(hd6) ..........................................................................................................143 7.3 测验..............................................................................................................................................................146 7.3.1 答案 ....................................................................................................................................................146 7.4 练习..............................................................................................................................................................147 第八章 系统备份、恢复和可用性................................................................................................................148 8.1 MKSYSB 命令..............................................................................................................................................149 8.1.1 mksysb 磁带的数据布局 ................................................................................................................150 8.1.2 排除不用备份的文件系统 ............................................................................................................151 8.1.3 如何创建一个可引导的系统备份...............................................................................................151 8.1.4 使用 mksysb 备份用户卷组...........................................................................................................154 8.2 备份用户信息 ............................................................................................................................................154 8.2.1 备份单个卷组...................................................................................................................................154 8.2.2 如何备份当前目录..........................................................................................................................155 8.2.3 增量备份............................................................................................................................................156 8.3 从备份介质恢复信息...............................................................................................................................157 8.3.1 tctl 命令..............................................................................................................................................157 8.3.2 如何恢复一个文件..........................................................................................................................157 8.3.3 如何恢复一个目录..........................................................................................................................159 8.3.4 恢复的错误,不正确的块大小(incorrect block size)........................................................162 8.3.5 使用 rmfs 命令 .................................................................................................................................162 8.4 复制你的系统 ............................................................................................................................................163 第 5 页 8.5 复制一张软盘 ............................................................................................................................................163 8.6 复制一盘磁带 ............................................................................................................................................164 8.7 RMT 的专用文件说明 ...............................................................................................................................164 8.8 高可用集群多路处理(HACMP)......................................................................................................165 8.9 测验..............................................................................................................................................................165 8.9.1 答案 ....................................................................................................................................................166 8.10 练习 ...........................................................................................................................................................167 第九章 系统资源控制和管理.........................................................................................................................168 9.1 启动 SRC ....................................................................................................................................................168 9.1.1 telinit 命令.........................................................................................................................................169 9.2 重启 SRC ....................................................................................................................................................169 9.3 STARTSRC 命令 ...........................................................................................................................................169 9.4 SYSLOGD DAEMON......................................................................................................................................170 9.4.1 启动 syslogd daemon.......................................................................................................................170 9.4.2 syslog 配置文件 ...............................................................................................................................171 9.4.3 再循环(Recycling)和刷新(refreshing) syslogd daemon................................................172 9.4.4 从多个系统收集 syslog 数据 ........................................................................................................173 9.5 刷新一个 DAEMON....................................................................................................................................173 9.6 CRON DAEMON ............................................................................................................................................173 9.6.1 Crontab 文件记录格式 ...................................................................................................................174 9.6.2 允许对 crontab 命令的访问 ..........................................................................................................174 9.6.3 内务处理(Housekeeping) .........................................................................................................175 9.7 测验..............................................................................................................................................................177 9.7.1 答案 ....................................................................................................................................................178 9.8 练习..............................................................................................................................................................178 第十章 网络管理 ...............................................................................................................................................179 10.1 引导期间的网络启动 ............................................................................................................................179 10.2 停止和重启 TCP/IP DAEMONS..............................................................................................................179 10.2.1 使用 /etc/tcp.clean 命令停止 TCP/IP daemons.......................................................................179 10.2.2 重启 TCP/IP daemons...................................................................................................................180 10.3 系统引导时不启动 RC.TCPIP ................................................................................................................180 10.4 INETD DAEMON.........................................................................................................................................181 10.4.1 启动和刷新 inetd...........................................................................................................................181 10.4.2 被 inetd 控制的子服务程序(Subservers)............................................................................181 10.4.3 /etc/services 文件 ...........................................................................................................................182 10.4.4 停止 inetd........................................................................................................................................183 10.5 PORTMAP DAEMON...................................................................................................................................183 10.6 INTERNET 编址.........................................................................................................................................184 10.6.1 IP 地址格式....................................................................................................................................184 10.6.2 二进制到十进制的转换...............................................................................................................184 10.6.3 Internet 地址分类 ..........................................................................................................................185 10.6.4 特殊的 Internet 地址.....................................................................................................................186 10.6.5 子网划分(subnetting)..............................................................................................................187 第 6 页 10.6.6 子网掩码(Subnet masks) ........................................................................................................188 10.7 主机名字解析..........................................................................................................................................191 10.7.1 /etc/resolv.conf 文件 ......................................................................................................................191 10.7.2 与 /etc/resolv.conf 有关的问题 ...................................................................................................192 10.7.3 nslookup 命令.................................................................................................................................192 10.8 对新适配器的考虑.................................................................................................................................193 10.8.1 使用 SMIT 配置一个网络适配器 ..............................................................................................193 10.8.2 使用 SMIT 配置一个网络接口...................................................................................................193 10.9 启动 IP 转发(IP FORWARDING)........................................................................................................195 10.10 增加网络路由 .......................................................................................................................................195 10.11 使用 SMIT 修改 IP 地址 .....................................................................................................................197 10.12 IFCONFIG 命令........................................................................................................................................198 10.12.1 识别网络接口 ..............................................................................................................................199 10.12.2 激活一个网络接口 .....................................................................................................................199 10.12.3 停止一个网络接口 .....................................................................................................................200 10.12.4 从一个网络接口上删除一个地址...........................................................................................200 10.12.5 断开一个网络接口 .....................................................................................................................200 10.12.6 为一个网络接口创建一个 IP 别名.........................................................................................200 10.12.7 修改网络接口的 MTU 大小 .....................................................................................................201 10.13 网络安全 ................................................................................................................................................202 10.13.1 可信任的和不可信任的进程....................................................................................................202 10.13.2 $HOME/.netrc 文件 ....................................................................................................................202 10.13.3 /etc/hosts.equiv 和 $HOME/.rhosts 文件 ................................................................................203 10.13.4 securetcpip 命令...........................................................................................................................204 10.13.5 匿名(Anonymous)FTP ..........................................................................................................205 10.13.6 FTP 日志 .......................................................................................................................................205 10.14 UNAME 命令 ...........................................................................................................................................206 10.15 判定基本网络问题...............................................................................................................................206 10.16 测验 .........................................................................................................................................................207 10.16.1 答案................................................................................................................................................208 10.17 练习 .........................................................................................................................................................208 第十一章 网络文件系统管理.........................................................................................................................209 11.1 NFS 服务...................................................................................................................................................209 11.2 NFS 的规划、安装和配置 ...................................................................................................................210 11.2.1 输出 NFS 目录................................................................................................................................ 211 11.2.2 停止输出 NFS 目录.......................................................................................................................214 11.2.3 装载 NFS 目录................................................................................................................................214 11.3 管理 NFS 服务器和客户 .......................................................................................................................219 11.3.1 获取 NFS Daemons 的当前状态 ................................................................................................219 11.3.2 修改被输出的文件系统 ...............................................................................................................219 11.3.3 卸载一个被装载的文件系统......................................................................................................220 11.4 NFS 文件、命令和 DAEMONS 参考.....................................................................................................221 11.4.1 NFS 文件列表.................................................................................................................................221 11.5 NFS 问题判定..........................................................................................................................................222 第 7 页 11.5.1 确定 NFS 问题检查表 ..................................................................................................................222 11.5.2 检查网络连接.................................................................................................................................223 11.5.3 NFS 错误消息.................................................................................................................................224 11.6 测验............................................................................................................................................................226 11.6.1 答案...................................................................................................................................................227 11.7 练习............................................................................................................................................................227 第十二章 系统性能...........................................................................................................................................228 12.1 系统动态和工作负荷 ............................................................................................................................228 12.1.1 系统动态(System dynamics) ..................................................................................................228 12.1.2 工作负荷(workload)分类.......................................................................................................229 12.1.3 性能和可用性的一般准则 ..........................................................................................................229 12.2 系统性能概览..........................................................................................................................................229 12.3 基本操作系统工具.................................................................................................................................230 12.3.1 使用 vmstat 命令 ...........................................................................................................................230 12.3.2 使用 iostat 命令 .............................................................................................................................233 12.3.3 使用 netstat 命令 ...........................................................................................................................235 12.3.4 其他与性能相关的命令...............................................................................................................237 12.4 控制资源利用..........................................................................................................................................238 12.4.1 使用 nice 和 renice 命令 ..............................................................................................................238 12.4.2 工作负荷管理器 ............................................................................................................................238 12.5 性能分析...................................................................................................................................................238 12.5.1 确定 CPU-bound 和 memory-bound 系统................................................................................239 12.5.2 计算空闲时间 ................................................................................................................................239 12.5.3 计算换页速率 ................................................................................................................................240 12.6 测验 ...........................................................................................................................................................240 12.6.1 答案 ..................................................................................................................................................241 12.7 练习 ...........................................................................................................................................................241 第十三章 用户管理...........................................................................................................................................243 13.1 概述 ...........................................................................................................................................................243 13.2 用户管理相关命令.................................................................................................................................243 13.3 用户管理相关文件.................................................................................................................................244 13.3.1 /etc/security/environ.......................................................................................................................244 13.3.2 /etc/security/lastlog........................................................................................................................245 13.3.3 /etc/security/limits..........................................................................................................................245 13.3.4 /etc/security/user ............................................................................................................................246 13.3.5 /usr/lib/security/mkuser.default....................................................................................................247 13.3.6 /usr/lib/security/mkuser.sys...........................................................................................................248 13.3.7 /etc/passwd......................................................................................................................................248 13.3.8 /etc/security/passwd.......................................................................................................................249 13.3.9 /etc/security/login.cfg ....................................................................................................................250 13.3.10 /etc/utmp, /var/adm/wtmp, /etc/security/failedlogin...............................................................250 13.3.11 /etc/motd.........................................................................................................................................250 13.3.12 /etc/environment...........................................................................................................................251 第 8 页 13.3.13 /etc/profile 和 $HOME/.profile..................................................................................................252 13.4 用户管理任务..........................................................................................................................................252 13.4.1 增加一个新的用户帐号...............................................................................................................252 13.4.2 创建或修改用户口令...................................................................................................................253 13.4.3 修改用户属性 ................................................................................................................................254 13.4.4 显示用户属性 ................................................................................................................................255 13.4.5 删除一个用户帐号........................................................................................................................257 13.4.6 修改用户的安全属性...................................................................................................................258 13.4.7 显示当前登录的用户...................................................................................................................259 13.4.8 阻止用户登录 ................................................................................................................................260 13.4.9 修改用户的登录 shell ..................................................................................................................260 13.4.10 修改 shell 提示符 ........................................................................................................................261 13.4.11 启动 AIX 通用桌面环境.............................................................................................................261 13.5 常见的登录错误 .....................................................................................................................................262 13.5.1 AIX CDE 和文件系统已满 ..........................................................................................................263 13.6 测验 ...........................................................................................................................................................263 13.6.1 答案 ..................................................................................................................................................264 13.7 练习 ...........................................................................................................................................................264 第十四章 打印....................................................................................................................................................265 14.1 创建一个新的打印队列 ........................................................................................................................266 14.2 打印配置文件..........................................................................................................................................271 14.3 控制打印队列..........................................................................................................................................273 14.3.1 编辑 /etc/qconfig............................................................................................................................274 14.3.2 当作业正在处理时修改 /etc/qconfig.........................................................................................274 14.4 停止打印队列..........................................................................................................................................274 14.5 启动打印队列..........................................................................................................................................275 14.6 刷新一个打印作业.................................................................................................................................275 14.7 如何检查打印假脱机程序 ...................................................................................................................276 14.8 设置打印机超时 .....................................................................................................................................276 14.9 基本打印机诊断检查表 ........................................................................................................................279 14.10 测验 .........................................................................................................................................................280 14.10.1 答案................................................................................................................................................281 14.11 练习 .........................................................................................................................................................281 第十五章 SENDMAIL 和 E-MAIL ...............................................................................................................282 15.1 邮件系统概述..........................................................................................................................................282 15.2 邮件伺服程序(MAIL DAEMONS).....................................................................................................283 15.2.1 启动 sendmail daemon..................................................................................................................283 15.2.2 停止 sendmail daemon..................................................................................................................284 15.2.3 刷新 sendmail daemon..................................................................................................................284 15.2.4 获取 sendmail daemon 的状态 ...................................................................................................284 15.2.5 sendmail daemon 的自动启动(/etc/rc.tcpip) ......................................................................284 15.2.6 在 sendmail 中指定时间值(在 rc.tcpip 中) ........................................................................284 15.2.7 在 sendmail 中指定时间值(不在 rc.tcpip 中)....................................................................285 第 9 页 15.3 邮件队列目录:/VAR/SPOOL/MQUEUE................................................................................................285 15.3.1 打印邮件队列 ................................................................................................................................285 15.3.2 邮件队列文件 ................................................................................................................................285 15.3.3 强制邮件队列运行........................................................................................................................286 15.3.4 删除邮件队列 ................................................................................................................................286 15.4 邮件日志...................................................................................................................................................286 15.4.1 管理邮件日志文件........................................................................................................................287 15.4.2 记录邮寄程序统计信息...............................................................................................................287 15.4.3 显示邮寄程序信息........................................................................................................................288 15.5 邮件别名和转发 .....................................................................................................................................288 15.5.1 创建或修改本地系统别名 ..........................................................................................................289 15.5.2 建立别名数据库 ............................................................................................................................289 15.5.3 利用 /etc/aliases 转发邮件 ..........................................................................................................290 15.5.4 利用 $HOME/.forward 转发邮件...............................................................................................290 15.5.5 把邮件转发给 /dev/null................................................................................................................291 15.6 邮件定址...................................................................................................................................................291 15.6.1 为发往本地系统用户的邮件定址 .............................................................................................291 15.6.2 为发往本网络用户的邮件定址 .................................................................................................291 15.6.3 为发往其他网络用户的邮件定址 .............................................................................................292 15.6.4 为通过 BNU 或 UUCP 链路的邮件定址.................................................................................292 15.7 存放邮件...................................................................................................................................................292 15.8 邮件管理员的参考.................................................................................................................................293 15.8.1 邮件命令列表 ................................................................................................................................293 15.8.2 邮件文件和目录列表...................................................................................................................294 15.9 测验 ...........................................................................................................................................................295 15.9.1 答案 ..................................................................................................................................................295 15.10 练习 .........................................................................................................................................................295 第十六章 在线文档...........................................................................................................................................297 16.1 安装 WEB 浏览器....................................................................................................................................297 16.2 安装 WEB 服务器....................................................................................................................................298 16.3 安装文档搜索服务.................................................................................................................................299 16.4 配置文档搜索服务.................................................................................................................................299 16.5 安装在线手册..........................................................................................................................................300 16.6 调用文档搜索服务.................................................................................................................................300 16.7 测验 ...........................................................................................................................................................302 16.7.1 答案 ..................................................................................................................................................302 16.8 练习 ...........................................................................................................................................................302 第十七章 AIXWINDOWS 字体服务器........................................................................................................304 17.1 XFS 服务器的中断.................................................................................................................................304 17.2 XFS 关键词 ..............................................................................................................................................304 17.3 XFS 格式约定 .........................................................................................................................................305 17.4 XFS 命令标记 .........................................................................................................................................305 17.5 字型服务器举例 .....................................................................................................................................305 第 10 页 17.6 测验 ...........................................................................................................................................................306 17.6.1 答案 ..................................................................................................................................................306 17.7 练习 ...........................................................................................................................................................307 相关的出版物......................................................................................................................................................308 IBM REDBOOKS................................................................................................................................................308 其他资源 ...........................................................................................................................................................308 相关的 WEB 站点 ............................................................................................................................................309 如何获取 IBM REDBOOKS.............................................................................................................................309 缩略语和首字母缩写.........................................................................................................................................310 索引........................................................................................................................................................................319 第 11 页 第一章 认证概述 本章提供了对获得 IBM 认证专家—— pSeries AIX 系统管理员认证的技能要求 的一个概述。以后各章则将提供为获得这个认证所不可缺少的各项特定主题的综合复习。 1.1 pSeries AIX 系统管理员(Test 191) 这个认证检验了安装、配置和执行全面的AIX系统管理工作的能力。该认证适用于负责 支持端用户和 pSeries AIX 环境的日常运行的AIX系统管理员。 为了获得 IBM 认证专家 - pSeries AIX 系统管理员认证,候选者必需通过一 项考试:Test 191:pSeries AIX System Administration。 1.1.1 认证前提建议 以下是对该认证所建议具备的前提条件: - 至少6个月的对 AIX Version 4 和 Version 5 环境的管理经验。注意:Exam 191 包括了到 AIX 5L Version 5.1 为止并包含它在内的所有 AIX 内容。 - 一年 AIX 或 UNIX 使用经验。 - 接受过 AIX 系统管理员培训或具备相当的经验。 1.1.2 认证考试注册 你可以通过访问下面的Web站点获得有关如何注册认证考试的信息: http://www.ibm.com/certify 1.1.3 认证考试目标 当这项认证考试被开发时,以下这些目标被用作一个基础。其中一些主题已经被重新组 合,以便在本书的论述中可更好地对它们进行组织。 安装和配置 下面是有关安装和配置的主题。 - 识别客户的需要(例如,体系结构,可伸缩性,物理需求,等等)。 - 建立危机恢复策略。 - 安装基本操作系统。 - 执行初始配置(例如,网络,分页空间,日期/时间,root 口令,等等)。 - 安装 AIX软件集。 - 安装和配置其他软件系统(例如,Netscape)。 - 应用软件更新。 - 删除软件。 第 12 页 - 更新操作系统(例如,保留和升级式更新)。 - 创建和安装系统备份。 - 更新硬件。 - 配置打印机和打印队列(例如,增加、修改、显示或删除打印机和队列)。 - 配置和管理资源(例如,管理 cron,配置 skulkers,配置电源管理)。 - 配置设备(例如,cfgmgr,TTY,并行和手工设备)。 - 配置子系统和子服务程序(例如,启动/停止系统资源管理器)。 问题判定 以下是有关问题判定的主题。 - 解决硬件安装的问题(例如,线缆连接)。 - 解决软件安装的问题(LED 挂起,系统挂起)。 - 解决软件的问题(磁盘空间,先决条件,lslpp,等等)。 - 解决硬件的问题(例如,硬件参数,cfgmgr配置管理器,先决条件,ODM 工具)。 - 评估性能和资源的问题(例如,检查日志文件,skulkers,ps -ef)。 系统和用户维护 以下是有关系统和用户维护的主题。 - 通过监视错误日志在硬件故障发生之前就识别到可疑的硬件部件。 - 安装必要的补丁以防止防范的问题。 - 重启服务器(温文地)。 - 增加,删除和修改用户。 - 修改用户环境(例如,修改初始化文件,编辑 .profile,编辑 dtwmrc,等等)。 - 修改系统环境。 - 操作卷组(增加,导入,删除,导出,修改,列表,等等)。 - 操作物理卷(增加,列表)。 - 操作逻辑卷(增加,删除,修改,列表,等等)。 - 操作文件系统(例如,创建,删除,修改,列表,等等)。 - 修改分页空间(增加大小,增加,删除,激活,列表,等等)。 - 解决文件系统问题(例如,装载/卸载问题,文件系统满,等等)。 - 解决分页空间问题(例如,低分页空间的情况)。 - 解决设备相关的问题(例如,文件系统在 IPL 时不可用,卷组在 IPL 时未被激活,SCSI 设 备问题,等等)。 - 备份系统。 - 备份应用。 - 备份应用数据文件。 - 从磁带恢复文件。 - 根据客户需求建立一个备份和恢复流程。 - 恢复系统。 通信 以下是与通信有关的主题。 - 安装设备驱动程序。 - 操作 TCP/IP daemons(例如,启动和停止 TCP/IP daemons)。 - 创建接口(设置 IP 地址,设置子网掩码,配置 DNS)。 - 配置接口(定义节点,网关)。 - 修改接口(改变 IP 参数)。 第 13 页 - 配置 TCP/IP 服务。 - 操作 NFS(例如,启动和停止 NFS)。 - 输出文件系统(exportfs)。 - 装载远程文件系统。 - 解决硬件通信问题(例如,设备不可用,设备不起作用等等)。 - 执行 TCP/IP 故障解决(例如,daemons 不能启动/停止,不能在一个服务器上创建 telnet 会话,用户不能登录服务器,等等)。 - 执行 NFS 故障解决(例如 daemon 不能启动/停止,主机服务器不响应,许可被拒绝的错 误消息)。 系统性能 以下是有关系统性能的主题。 - 管理 CPU 和内存资源(例如,显示 CPU / 内存的使用,启动/停止一个处理器,等等)。 - 管理 I/O 性能资源。 - 管理网络性能资源(显示网络,I/O 计数,连接和队列)。 - 管理工作负荷(例如,调度,建立作业队列,等等)。 - 管理磁盘/数据(分区,RAID,镜像,整理文件系统碎片,等等)。 安全 以下是有关安全的主题。 - 修改系统用户的缺省口令属性(例如,maxage,maxlength,maxexpire,minrepeat,等 等)。 1.2 认证培训课程 为了帮助你为认证考试作准备,IBM 提供了一些课程。在参加认证考试之前,建议先 接受这些课程,但这不是必需的。下面的表格显示了在这本指导书出版时可提供的课程。请 访问下面的站点以获得最新课程列表: http://www.ibm.com/certify AIX Version 4 系统管理 课程号 Q1214(美国), AU14(全球) 课时 5 天 课程摘要 学习基本系统管理技能,以支持运行 AIX Version 4 操作系统的 AIX RS/6000。确立你 在配置和监视单 CPU 环境中的能力。对于在一个联网的环境中管理系统的管理员而 言,应当参加额外的 LAN 课程。 课程内容 • 安装 AIX Version 4 操作系统,软件包和文件集。 • 执行系统启动和关闭。 • 理解和使用 AIX 系统管理工具。 • 配置 ASCII 终端和打印机设备。 • 管理物理和逻辑卷。 • 执行文件系统管理。 • 创建和管理用户和组帐号。 • 使用备份和恢复命令。 • 使用管理子系统,包括 cron,以调度系统任务和安全地实现定制的文件和目录访问。 AIX Version 4 高级系统管理 课程号 Q1216(美国), AU16(全球) 课时 5 天 课程摘要 学习如何识别在独立配置的 RS/6000 上的可能的问题来源和执行高级系统管理任务。 课程内容 • 识别不同的 RS/6000 模型和构造。 第 14 页 • 解释 ODM 的设备管理用途。 • 解释系统初始化和引导过程中的问题。 • 定制鉴别过程和建立 ACLs。 • 识别 TCB 组件,命令和它们的使用。 • 获得系统转储和定义被保存的数据。 • 识别错误日志机制的组件和报告。 • 列出调用诊断程序的方法。 • 定制一个逻辑卷以优化性能和可用性。 • 管理任何环境下的磁盘和数据。 • 使用标准 AIX 命令识别系统中潜在的 I/O,磁盘,CPU 或其他瓶颈。 • 定制 SMIT 菜单并定义 SMIT 如何与 ODM 交互。 • 定义虚拟打印机数据库和潜在的问题。 • 列出终端属性和创建新的 terminfo 记录。 • 定义 NIM 安装过程。 AIX Version 4 配置 TCP/IP 和访问 Internet 课程号 Q1107(美国), AU07 或 AU05(全球) 课时 5 天 课程摘要 • 学习如何在 AIX Version 4 RS/6000 系统上执行 TCP/IP 网络配置和管理。 • 学习必要的技能以开始实施和使用 NFS,NIS,DNS,网络打印,静态和动态路由, SLIP 和 SLIPLOGIN,Xstations 和 Internet。 课程内容 • 描述 TCP/IP 协议和编址的基本概念。 • 解释 TCP/IP 广播和组播。 • 在一个 IBM RS/6000 系统上配置,实施,和支持 TCP/IP。 • 使用网络命令进行远程登录,远程执行和文件传输。 • 配置 SLIP 和 SLIPLOGIN。 • 使用 SMIT 配置网络打印。 • 使用静态和动态路由连接多个 TCP/IP 网络。 • 实施 DNS,NFS 和 NIS。 • 执行基本的网络故障解决。 • 在 AIX 环境中配置一个 Xstation。 • 解释如何访问 Internet 服务。 • 理解和支持 TCP/IP。 • 规划实施 NFS。 • 支持连接 LAN 的打印机。 • 支持 AIX 联网技术。 • 判定网络问题。 • 实施网络文件系统。 1.3 光盘教学:IBM AIX Essentials 新的 IBM AIX Essentials 系列为那些需要方便的和经济有效的 AIX 培训的人提供了一 个动态的训练 training experience。该系列包含五个新的,内容丰富的计算机多媒体培训课 程,其基础是已经被 IBM 教育和培训部门成功地讲授了多年的受到高度赞誉的,由教员指 导的AIX课程。 如果要订购和获得更多信息及为你的问题找到答案,你可以采用以下方式中的一种: - 在美国,可通过下面的 URL 使用在线表格: http://www.ibm.com/services/learning/spotlight/pseries/cdrom.html - 在美国以外的地方,可联系你的 IBM 销售代表或联系一个 IBM 业务合作伙伴。 第 15 页 第二章 系统启动问题处理 本章讨论引导过程以及在系统初始化阶段通常可能遇到的一些问题。也包括用于操作与 引导进程相关的组件时常用的命令。 学习完本章后,你将能够: - 了解引导过程的基础知识,并能够执行有序的系统关闭。 - 确定和控制在引导过程中所涉及的有关设备。 - 访问AIX错误记录。 - 发现并解决引导过程中的问题。 - 理解并记住基本的LED错误代码。 2.1 本章中要用到的关键命令 以下列出的是所有在本章中将用到的重要命令。 alog 用来维护和管理log文件。请参考第2.4.1小节,第??1页,“使用alog命令” 中的进一步描述。 cfgmgr 配置设备以及安装可选的设备软件到系统中。请参考第2.4.2小节,第??2 页,“使用cfgmgr 命令”中的进一步描述。 last 显示仍在文件/var/adm/wtmp中存有记录项的所有以前的登录和退出。请参考 第2.4.3小节,第??3页,“使用last命令”中的进一步描述。 bootlist 显示和更换系统中可用的引导设备列表。请参考第2.4.4小节,第??4页,“使 用bootlist命令”中的进一步描述。 uptime 显示系统已经运行了多长时间。请参考第2.4.5小节,第??5页,“使用uptime 命令”中的进一步描述。 mpcfg 允许一个具有root授权的用户管理维护信息。请参考第2.4.6小节,第??6页, “使用mpcfg命令”中的进一步描述。 shutdown 用来关闭系统。请参考第2.4.7小节,第??7页,“使用shutdown命令”中的 进一步描述。 2.2 引导过程 在引导过程中,系统会检查硬件,装载和运行操作系统,并配置设备。为了引导操作系 统,需要以下的资源: - 在机器开机或重置后可以装载的一个引导映像。 - 对root和/user文件系统的访问权限。 有三种系统引导方式: - 硬盘引导 钥匙处在normal位置,启动机器以进行常规操作。在基于PCI的不带锁匙的系统中,这是第 16 页 缺省的启动模式。 - 无盘网络引导 通过网络远程启动一个无盘或无数据的工作站。钥匙处在normal位置,启动机器以进行 常规操作。由一个或多个远程文件服务器提供引导无盘或无数据工作站所需的文件和程序。 - 服务(维护)引导 钥匙处在service位置,机器从硬盘、网络、磁带或光盘启动。这种情况也称为维护模 式。在维护模式时,系统管理员可以执行的任务如安装新软件或更新软件以及运行诊断性检 查。 在硬盘引导过程中,会从一个本地磁盘上找到安装操作系统时所创建的引导映像。在引 导过程中,系统会对在机器上发现的所有设备进行配置,并初始化系统运行所需的其他基本 软件(如逻辑卷管理器)。在这个过程的最后,加载文件系统并使之可用。 同样的需求也适用于无盘网络客户。它们也需要一个引导映像及对操作系统文件树的访 问权限。无盘网络客户没有本地文件系统,它们的所有信息是通过远程访问得到的。 系统在磁盘驱动器上找到所有必需的引导过程信息。当系统被通过打开电源开关启动 (冷引导)或使用reboot或shutdown命令重启时,在系统可用之前,会发生一些事件。这 些事件可分为以下几个阶段: 1. 只读存储器(ROS)内核初始化阶段 这个阶段会检查母板的问题,ROS初始化程序加载将搜索引导设备列表。一旦找到引导设 备列表,引导映像被读入内存并开始进行系统初始化。 2. 基本设备配置阶段 该阶段通过cfgmgr命令的帮助配置所有设备。 3. 系统引导阶段 在引导过程的这个阶段中,所有的逻辑卷被激活,页面调度被启动,并且/etc/inittab文件被 处理。 2.3 开机顺序、LED 指示灯以及音频信号 一些基于MCA的RS/6000系统使用LED指示灯来显示系统的引导过程正处于哪一个阶 段。如果有错误发生,你可以解析LED代码并采取适当的行动来纠正问题。 提示:作为一个专家,记住错误代码使你能快速发现系统问题的关键所在。因此,它是考试 的一部分,需要熟记。 PCI RS/6000系统使用声音和图象来显示引导过程的不同阶段。例如,每当你开机时, 只要处理器一被激活,就会发出“哔”的一声,当系统内存检查完成后,会显示PowerPC 的图标(或显示文本),以及显示所有具有合法地址的设备的图标。在设备图标显示结束后, 如果系统的ROS未被毁坏,会再发出“哔”的一声。 系统管理员可以利用这些指示来解决他们在启动过程中可能遇到的问题。 第 17 页 2.4 一些有用的命令 以下各小节将讨论用于管理系统启动、关闭及相关任务的命令。 2.4.1 使用 alog 命令 可能有时你必须跟踪引导过程并找出系统在引导过程中是否有些地方发生错误。AIX为 你提供了一个非常好的工具用来监视这些问题,即通过alog命令的帮助。 alog命令可以维护和管理日志。它读标准输入,写标准输出,并将输出拷贝到一个固 定大小的文件中。这个文件被当作一个循环日志。如果文件写满了,新写入的记录会覆盖现 有最旧的记录。 rc.boot脚本通过alog命令明确地将引导信息重定向到文件/var/adm/ras/bootlog中。如 果系统某个地方发生错误,你可以将系统引导到单用户模式(即维护模式)并通过alog命 令访问这些日志,以查看在哪一个阶段系统出错了。下面显示的是rc.boot脚本的部分内容, 举例说明了日志机制是如何构成的。 #Error Recovery if customized data is zero [-f /no_sbase ] &&{ echo "rc.boot:executing savebase recovery procedures"\ >>/tmp/boot_log X=`ODMDIR=/mnt/etc/objrepos odmshow CuDv |\ fgrep population` count=`echo $X |cut -f2 -d''` [$count -ne 0 ] &&{ /usr/sbin/savebase -o /mnt/etc/objrepos [$?-ne 0 ] &&loopled 0x546 mount /var#so that reboot can log echo "savebase recovery reboot"\ >>/tmp/boot_log cat /tmp/boot_log |alog -q -t boot reboot } } alog命令必须与在命令行指定的日志文件或在alog配置数据库中定义的日志一起工作。 alog命令中最常用的标记及其描述如表2-1所示。 表 2-1 alog命令标记 标记 描述 -f LogFile 指定日志文件名。如果所指定的LogFile不存在,则创建一个。如果alog命令 不能写这个LogFile,则写入到文件/dev/null。 -L 列出当前在alog配置数据库中定义的日志类型。如果你同时使用-L标记和-t LogType标记,则列出指定的LogType的属性。 -o 列出LogFile的内容;顺序地把LogFile的内容写到标准输出。 -q 把标准输入拷贝到LogFile,但不写到标准输出。 -t LogType 标识一个在alog配置数据库中定义的日志。alog命令从alog配置数据库中获 取日志的文件名和大小。 第 18 页 AIX的日志可以使用SMIT维护或直接通过alog命令进行维护。alog命令的常用方式如下: 显示日志文件的内容 为列出一个日志文件的内容,使用如下命令: alog -f LogFile [ -o ] 记录数据到一个指定的日志文件中 你可以通过下列的命令修改用于记录行为的缺省文件: alog -f LogFile | [ [ -q ] [ -s Size ] ] 显示一个指定的日志类型的冗长值(Verbosity value) 冗长值指定了写入一个日志中的信息的深度。为了显示一个日志的冗长值,使用如下的 命令: alog -t LogType -V 修改一个指定的日志类型的属性 你可以通过以下命令对一个日志类型使用不同的属性: alog -C -t LogType [ -f LogFile ] [ -s Size ] [ -w Verbosity ] 显示一个指定的日志类型的当前属性 在你能够改变一个日志的属性之前,建议你先查看一下它的当前属性。使用下列命令显 示一个日志类型的当前属性: alog -L [ -t LogType ] 为了查看引导日志,你可以使用SMIT或直接使用alog命令。按照下面的“查看引导日 志”一节中描述的顺序来查看引导日志的内容。 查看引导日志 如果你要查看引导日志,可以使用SMIT快速路径smitty alog_show并给定所要查看的日 志名,也可以使用alog命令。为了使用命令来查看日志,确定哪个预定义的日志对你是可 用的。使用alog -L命令查看在alog数据库中定义的日志。在命令行输入: # alog -L boot bosinst nim dumpsymp 为了查看引导日志(存放引导信息的日志),输入: # alog -o -t boot --------- attempting to configure device 'fda0' invoking /usr/lib/methods/cfgfda_isa -2 -l fda0 return code = 0 ****************** stdout *********** fd0 ****************** no stderr *********** ----------------------------------------------------------------------- invoking top level program -- "/etc/methods/starttty" return code = 0 ****************** no stdout *********** ****************** no stderr *********** 第 19 页 ----------------------------------------------------------------------- invoking top level program -- "/etc/methods/startsmt" return code = 0 ****************** no stdout *********** ****************** no stderr *********** ----------------------------------------------------------------------- invoking top level program -- "/etc/methods/load_blockset_ext" return code = 0 ****************** no stdout *********** ****************** no stderr *********** ----------------------------------------------------------------------- invoking top level program -- "/usr/lib/methods/defaio" return code = 0 ****************** no stdout *********** ****************** no stderr *********** ----------------------------------------------------------------------- calling savebase return code = 0 ****************** no stdout *********** ****************** no stderr *********** Starting AIX Windows Desktop..... Saving Base Customize Data to boot disk Starting the sync daemon Starting the error daemon System initialization completed. Starting Multi-user Initialization Performing auto-varyon of Volume Groups Activating all paging spaces swapon: Paging device /dev/hd6 activated. /dev/rhd1 (/home): ** Unmounted cleanly - Check suppressed Performing all automatic mounts Multi-user initialization completed 所有遇到的错误都会记录到这个文件中。但是,alog文件没有并发控制;因此,如果多 个进程试图同时写同一个文件,日志文件的内容可能会与预期的不同。另外,它是一个循环 的文件;因此,当它的大小达到最大值时,它将被重写覆盖。 2.4.2 使用 cfgmgr 命令 在引导过程中,系统必须确定那些资源可用。例如,系统必须确定它在使用的是哪种总 线,有哪些类型的设备连接在其上,rootvg位于何处,等等。对这些设备的配置由BOS命令 cfgmgr处理。cfgmgr命令配置设备并有选择地向系统中安装设备软件。cfgmgr命令的常 用语法如下: cfgmgr [ -f | -s | -p Phase ] [ -i Device ] [ -l Name ] [ -v ] 第 20 页 最常用的标记及其描述如表2-2所示: 表 2-2 cfgmgr命令标记 标记 描述 -f 指定cfgmgr命令运行的是阶段1的配置规则。这个标记在运行期间(在系统启 动之后)无效。 -i Device 指定安装介质的位置。 -l Name 规定所命名的设备必须与其子设备一同配置。 -p Phase 规定cfgmgr命令必须在指定的阶段运行。 -s 规定cfgmgr命令必须遵照阶段2的配置规则。 -v 指定冗长输出。cfgmgr命令把与它正在进行的工作有关的信息写到标准输出。 所要配置的设备被配置规则对象类(Configuration Rules object class)控制,后者是设 备配置数据库(Device Configuration database)的一部分。每个配置规则指定了三个项目: - 要运行的可执行程序的全路径名。 - 在什么时候运行该程序(相对于其他规则)。 - 在哪个阶段运行该程序。 在系统引导过程,cfgmgr 命令将配置所有为使用系统所必需的设备。系统引导包括两个 阶段。 - 阶段1 阶段1开始于内核(kernel)被导入系统及引导文件系统(boot file system)被初始化的 时候。在这个阶段中,cfgmgr 命令被使用 -f 标记调用,以指定这个阶段为阶段1。cfgmgr 命令运行所有阶段1的配置规则,以配置基本设备。 - 阶段2 在这个阶段,cfgmgr 命令被使用 -s 标记调用。 cfgmgr 命令认可三个阶段的配置规则: - 阶段1 - 阶段2 (在常规模式引导中的第二个引导阶段) - 阶段3 (在维护模式引导中的第二个引导阶段) 正常情况下,cfgmgr 命令运行所有在调用时所指定阶段的规则(例如,-f 标记指定阶 段1的规则)。但是,如果使用了 -l 标记,cfgmgr 命令只配置所命名的设备及其子设备。如 果 cfgmgr 命令被调用时没有带任何阶段选项(例如,未使用 -f、-s 或 -p 标记),则该命令 运行阶段2的规则。运行阶段3规则的唯一途径是使用 -p 标记。 如果你使用 -i 标记调用 cfgmgr 命令,该命令会尝试为每个刚检测到的设备自动安装设 备软件。-i 标记的 device 变量指定从何处查找安装介质。安装介质可以是硬件设备(如磁 带或磁盘驱动器),包含安装映像的目录,或安装映像文件本身。 注意:为了保护配置数据库,cfgmgr 命令的运行不能被打断。在执行结束之前就中止该命 令可能会导致数据库被损坏。 cfgmgr 命令只配置那些在系统启动时加电的并可自配置的设备,如 SCSI 驱动器或已 经在 inittab 文件中定义的TTYs。如果你有些设备没有在系统启动时加电,系统将无法使它 们可用,直到你明确地告诉系统要配置它们。该命令的语法为: cfgmgr -v 它将产生一个类似 alog -o -t boot 命令的输出。请参考第??8页,第3.2小节,“配置系统 设备”中的更多配置信息。 第 21 页 2.4.3 使用 last 命令 last 命令通常用来按时间的反序显示被记录在 /var/adm/wtmp 文件中的所有以前发生过 的登录和退出行为。/var/adm/wtmp 文件在登录和退出事件发生时收集它们的记录,并且保 留它们直到记录被 acctcon1 和 acctcon2 命令将其作为每日报告程序的一部分处理掉。当时 间伺服程序 timed 改变系统时间时,它会在 wtmp 中虚拟用户 date 的下面加入记录。在改 变发生之前加入一条以 date | 开始的记录,而改变发生之后再加入一条以 date { 开始的记 录。这样便于精确地记载跨越一次时间变化而发生的登录行为。last 命令通常的语法如下: last [ -f FileName ] [ -Number ] [Name ...] [Terminal ...] 在 last 命令中使用的命令标记如表 2-3 所示。 表 2-3 last命令标记 标记 描述 -Number 在输出中要显示的行数。 Name 被 name 参数指定的用户的登录和退出。 Terminal 在被 terminal 参数指定的终端上的登录和退出。 例如,如果你想知道用户 root 在什么时候从控制台登录和退出,可输入命令: last 命令也可以用来确定系统最后关闭是在什么时候。该命令的语法为: 第 22 页 2.4.4 使用 bootlist 命令 bootlist 命令允许你显示和更换可以用于引导系统的引导设备的列表。当系统被引导时, 它会扫描在列表中的设备,并尝试从它发现的第一个含有引导映像的设备进行引导。 这个 命令支持对以下各项的修改: Normal boot list 常规模式引导列表指定当系统要被引导到normal模式中时可能 的引导设备。 Service boot list 维护模式引导列表指定当系统要被引导到service模式中时可能 的引导设备。 Previous boot device 前次引导设备列表指定上一次用于引导系统的设备。有些硬件 平台可能会在从上两个列表之一中查找一个引导设备之前,先 尝试从前一次使用的引导设备来引导。 不同的平台对这些引导列表的支持不同。一些平台不含有引导列表。当搜索一个引导设 备时,系统选择在列表中的第一个设备,并确定其是否可用于引导。如果在第一个设备中没 有检测到引导文件系统,系统会转向列表中的下一个设备。因此,在设备列表中的设备顺序 非常重要。 该命令常用的语法如下: bootlist [ { { -m Mode } [ -r ] [ -o ] [ [ -i ] | [ [ -f File ] [ Device [ Attr=Value ...] ...] ] ] 在 bootlist 命令中最常用的标记如表 2-4 所示。 表 2-4 bootlist命令常用标记 标记 描述 -m mode 指定要显示或修改哪个引导列表。mode 变量可能的值包括 normal,service, both 或 prevboot 。 -f File 指示设备信息要从指定名字的文件中读取。 -i 指示由标记 –m 指定的设备列表将无效。 -o 显示 –m 标记定义的引导列表。只适用于 AIX 4.2 或更高版本。 -r 指示在执行了任何指定的修改后是否要显示指定的引导列表。 为了显示一个引导列表(AIX 4.2 或更高版本),使用以下命令: # bootlist -m normal -o fd0 cd0 hdisk0 如果你需要对你的常规引导列表作修改,使用以下命令: bootlist -m normal hdisk0 cd0 第 23 页 这个命令将修改常规引导列表,以指示当系统引导时,首先尝试从硬盘引导。如果它不 能从 hdisk0 中找到一个引导映像,它将搜索 CD-ROM。否则,它将指导系统提供一个LED 错误代码并等候用户干预。 引导设备选择 可以用在你的引导列表中的命名习惯如表 2-5 所示。你添加到引导列表中的每个设备必 需处于 AVAILABLE 状态。否则,bootlist 命令将失败,并且你将遇到一个类似下面的错误: 0514-210 bootlist: Device xxxxx is not in the AVAILABLE stat 表 2-5 bootlist 命令的有效设备名 设备 描述 fdxx 磁盘驱动设备逻辑名 hdiskxx 物理卷设备逻辑名 cdxx SCSI CD-ROM 设备逻辑名 rmtxx 磁带设备逻辑名 entxx 以太网(Ethernet)适配器逻辑名 tokxx 令牌环(Token ring)适配器逻辑名 2.4.5 使用 uptime 命令 如果你怀疑你的系统曾被关闭和重启,可以使用 uptime 命令检查。该命令将显示系统已 经运行(处于up状态)了多长时间。常用语法如下: # uptime 05:10PM up 6 days,21:45,13 users,load average 4.00,3.00,0.00 uptime 命令输出当前时间,系统运行的时间长度,在线用户个数,以及负荷平均值。负 荷平均值为在当前时间之前5、10或15分钟间隔内可捕捉到的进程数量。uptime 命令的输出 实质上是 w 命令的输出中的首行。 2.4.6 使用 mpcfg 命令 mpcfg 命令使具有 root 授权的用户可以管理由维护支持和诊断标记(-S 和 -f 标记),调 制解调器和节点配置(-m 标记),以及远程支持电话号码(-p 标记)所构成的维护信息。 mpcfg 命令只在具有微通道输入/输出(Micro Channel I/O)的多处理器系统上工作。 对于 IBM 的系统,这类系统包括 IBM 7012 Model G 系列,IBM 7013 Model J 系列,以及 IBM 7015 Model R 系列。 提示:现在每个RS/6000产品中均使用PCI,关于微通道I/O的讨论似乎看起来过时了,但是 很多旧款的微通道机器仍在使用中并要求专门的技能。一个专家应该知道如何配置新的和旧 的硬件。 该命令的常用语法以及标记的含义如下: 显示维护信息 为了显示维护信息,你可以使用: 第 24 页 mpcfg -d { -f -m -p -S } 例如,为了找出你的诊断标记所处的状态,使用如图 2-1 所示的 mpcfg 命令。 图 2-1 显示诊断标记 修改维护信息 为了修改维护信息,使用含以下标记组合的 mpcfg 命令: mpcfg -c { -f | -m | -p -S -w } Index Value … 例如,如果你需要快速 IPL(初始化程序加载)系统,你可以修改诊断标记的值,如下所 示: mpcfg -cf 11 1 该命令将检查索引(Index)列(参见前面的图 2-1),并将第11条(Fast IPL)的值修 改为1。下一次系统引导时,系统就会跳过大量的硬件测试,这样比正常引导所花费的时间 要少得多。 存储或还原维护信息 为了存储关于标记的信息,使用下面的 mpcfg 命令语法: mpcfg { -r | -s } mpcfg 命令中最常使用的标记如表 2-6 中所示。 表 2-6 mpcfg 命令标记 标记 描述 -c 修改维护信息的值。你需要改动的值首先由 -f, -m, -p, 或 -S 标记所标识,接着 由相应类别中的索引(Index 参数)来标识。 -d 根据在命令中设置的 -f, -m, -p, 和 -S 标记显示维护信息的值。这些值将连同其 相应的索引和名字一起被显示。 -s 将维护信息保存到 /etc/lpp/diagnostics/data/bump 文件中。 -f 指示该动作(显示或修改)将应用于诊断标记。 -m 指示该动作(显示或修改)将应用于调制解调器和节点配置。 -p 指示该动作(显示或修改)将应用于远程支持电话号码。 -S 指示该动作(显示或修改)将应用于维护支持标记。 第 25 页 -w 指示修改动作将应用于一个口令。 2.4.7 使用 shutdown 命令 系统关闭是由一个外壳(shell) 脚本控制的,它为关闭或重启一个具有多用户的系统作 适当的准备。一次不正确的关机可能会对系统完整性带来不希望有的后果。 shutdown 命令常用语法如下: shutdown [ -d ] [ -F ] [ -h ] [ -i ] [-k ] [ -m ] [ -p ] [ -r ] [ -t mmddHHMM [ yy ] ] [ -v ] [ +Time [ Message ] ] 在命令中常用的标记如表 2-7 所示: 表 2-7 shutdown 命令标记 标记 描述 -d 关闭系统并从分布模式(distributed mode)转入多用户模式(multiuser mode)。 -F 进行快速关机,旁路掉给其他用户发消息的过程,并尽可能快地将系统关闭。 -h 彻底停止操作系统;其作用与 -v 标记相同。 -i 指定采用交互模式(interactive mode)。显示交互信息来指导用户关机。 -k 避免关闭系统。 -m 关闭系统并转入维护(单用户)模式。 -r 在用 reboot 命令关机后重启系统。 -v 彻底停止操作系统。 为了执行快速关闭和重启系统,输入: shutdown -Fr 在该过程结束时,重启之前,你将看到下面的消息: shutdown completed . 对关机过程增加应用 有时候,可能需要在不发出 kill 命令终止进程的情况下正确地关闭所有的应用和其他的用 户进程。你可以通过把你所需的命令和动作增加到文件 /etc/rc.shutdown 中来实现这个目 的。/etc/rc.shutdown 在每次 shutdown 命令被发出时都会被检查一遍。如果文件存在,它 将运行;否则,系统将依据关机命令的标记来执行常规的关闭操作。 提示:/etc/rc.shutdown 必需设置为可执行后才可以被 /usr/sbin/shutdown 脚本调用。 从 AIX 4.2.0 版本开始,/usr/sbin/shutdown 脚本被改成与 rc.shutdown 文件合并。在 /usr/sbin/shutdown 脚本中执行 rc.shutdown 文件的部分如下所示: 第 26 页 2.5 解决引导问题 导致一个系统失效有多方面的因素起作用。 - 因为错误操作,例如,某人故意地访问和结束导致系统被破坏。 - 当诸如电源失效等情况导致引导逻辑卷(BLV)被破坏。 - 当磁盘遇到大量坏块时导致系统不可用。 任何一种情况都可能使系统无法重启。 以下各节包含了对系统无法引导的情况及如何进行修复的论述。 提示:你必需具有 root 授权才能执行所有这些功能。 2.5.1 访问一个无法引导的系统 如果你不能引导系统,第一步就是接入系统并检查故障的可能原因。这个过程使你能得 到系统提示符,这样你可以尝试从系统中恢复数据,或执行修复操作以使系统能从硬盘引导。 下面的步骤总结了访问一个无法引导的系统的过程。要获得更详细的信息,请参阅AIX 安装指南。 为了接入系统: 1. 在开启系统设备之前先开启所有连接着的外置设备,如终端、CD-ROM 驱动器、磁带驱 动器、监视器和外置硬盘驱动器。开启系统设备以便可以装载安装介质。 2. 将安装介质的第 1 卷插入到磁带或 CD-ROM 驱动器中并关掉主机的电源。 3. 将系统的钥匙(如果有)转到维护位置,或者在基于 PCI 的系统中按下 F5(图形) (或 5(字 符))键,以便从磁带或 CD-ROM 驱动器中引导(将在第 4 步进行)。 4. 将系统设备的电源开关打到开的位置。当从备用介质引导时,将有一个屏幕显示出来 (在图 2-2 所示的一个屏幕之前)并要求你按下一个功能键(如 F1)来选择适当的显示器 作为系统控制台。每个连接到系统的显示器都接收到一个功能键号码用来标识其作为系统控 制台。系统开始从安装介质引导。几分钟过后,在 LED 上显示出 C31(如果你的系统有 LED 的话;要不然就显示一个象图 2-2 所示的屏幕)。 第 27 页 图 2-2 Welcome to BOS Installation and Maintenance菜单 5. 选择选项 3,“ Start Maintenance Mode for System Recovery”,并按下 Enter。一个如图 2-3 的屏幕显示出来。 图 2-3 Maintenance菜单 6. 选择 1,访问一个根卷组(Root Volume Group)。一个如图 2-4 的屏幕显示出来。 第 28 页 图 2-4 警告消息窗口 7. 输入 0(零)并回车。一个象图 2-5 的屏幕显示出来。 图 2-5 Access a Root Volume Group菜单 8. 选择你需要显示其逻辑卷信息的卷组。这非常重要,因为 rootvg 将包含 hd5(引导逻辑 卷)。输入卷组号并回车。一个如图 2-6 的屏幕显示出来。 第 29 页 图 2-6 Volume Group Information菜单 9. 从卷组信息屏幕上选择一个选项并回车。每个选项的作用如下: Choice 1 访问该卷组并启动一个 shell。在启动shell前,所有属于根卷组的文件系统已 经被击活。 Choice 2 访问该卷组并启动一个 shell。在启动shell前,所有属于根卷组的文件系统尚 未被击活。这样一来,你可以对文件系统进行诸如fsck等系统命令进行维护和 检测。 Choice 99 输入 99 使你返回到“Access a Root Volume Group”菜单。 不管选择和执行了选项 1 还是 2,都会启动一个 shell 并显示一个系统提示符。 10. 采用适当的措施来恢复数据,或采用其他动作(如使用 bosboot 命令)来使系统正常引 导。 2.5.2 安装介质的问题 如果你在安装一个新的系统或进行到一个更新的AIX版本的升级安装,你也许会遇到安装 介质的问题。安装介质问题的一些症状包括在安装过程中的意外中断,从介质读信息出错, 或意外的系统重启。下面的步骤总结了判定安装介质问题的过程: 1. 确定所有连接的外置设备,如终端、CD-ROM 驱动器、磁带驱动器、监视器和外置磁盘 驱动器,都在启动系统设备之前已经打开电源。在启动系统设备之后再启动外置设备会使外 置设备无法运行或发送信息给系统设备。例如,当启动系统设备之后再启动一个用于系统安 装的 SCSI CD-ROM 可能会使 CD-ROM 不起作用。 2. 查看介质是否有物理损坏。例如,有刮痕的 CD-ROM 可能无法被 CD-ROM 驱动器正确 读取。或者,带子挂在盒子外面的磁带也不可能在磁带驱动器中正确工作。有物理损坏的安 装介质不能再用来安装,应当放在一边或干脆扔掉。 3. 确保在安装之前所有安装选项被正确设置。如果你在尝试作一次安装时选择了提供给系 统不正确的命令或配置的选项,系统可能不会执行本该执行的安装过程。例如,你告诉系统 要安装 BOS 到一个磁盘,但后者太小而根本放不下 BOS,你的安装将无法完成。 4. 如果安装过程不能进行下去,需尝试使用另一套介质来安装。你的介质可能因为磨损、第 30 页 制造故障或环境因素而有了缺陷。想办法取得另一套安装介质的拷贝并重复安装过程。 5. 确保所有硬件工作正常。如果安装介质在其他系统上运行正确,而在你的系统中的安装 却失败了,可能是有硬件问题。检查所有外接线缆并确保硬件被正确地配置。例如,在你的 系统中可能有两个设备共享同一个 SCSI 地址,这可能中断安装过程。如果问题持续存在, 可使用诊断磁盘来进行分析或联系你当地的客户工程师以寻求硬件支持。 2.5.3 常见的引导时 LED 错误代码和恢复操作 最常见的引导问题和重新开启并运行系统的方式如表 2-8 所示。 表 2-8 常见的启动 LEDs 和恢复操作 LED 201 – 被损坏的引导映像 1. 按照在第 ??9 页第 2.5.1 小节“访问一个无法引导的系统”中描述的步骤来访问你的 rootvg。 2. 检查 / 和 /tmp 文件系统。如果它们被几乎填满,则需要创建更多空间。 3. 使用 lslv -m hd5 命令确定引导磁盘。 4. 使用 bosboot -a -d /dev/hdisk n 重建引导映像。 5. 在错误日志(error log)中检查 CHECKSTOP 错误。如果发现这样的错误,大概是硬件 失效。 6. 关闭和重启系统。 LED 223-229 – 无效的引导列表 1. 将钥匙模式置为 Service(对于没有锁匙的系统则按 F5),并打开机器电源。 2. 如果接下来的显示正常,将钥匙模式转换到 Normal 并继续进行第 3 步。如果你没有得到 提示符,则跳到第 4 步。 3. 当你得到登录提示符时,登录进去并按照在第 ??4 页第 2.4.4 小节“使用 bootlist 命令” 中描述的步骤来改变你的引导列表。然后进入第 7 步。 4. 按照第 ??9 页第 2.5.1 小节“访问一个无法引导的系统”中的步骤访问你的 rootvg 并 继续第 5 步。 5. 使用 lslv -m hd5 命令确定引导磁盘。 6. 按照在第 ??4 页第 2.4.4 小节“使用 bootlist 命令”中描述的步骤来改变你的引导列表。 7. 关闭和重启系统。 LED 551, 555, 和 557 – 包括文件系统损坏和 JFS 日志损坏的错误 1. 在装载任何文件系统(Maintenance菜单中的选项 2)之前,按照第 ??9 页第 2.5.1 小节 “访问一个无法引导的系统”中的步骤访问你的 rootvg。 2. 检验和修复文件系统,如下所示: fsck -y /dev/hd1 fsck -y /dev/hd2 fsck -y /dev/hd3 fsck -y /dev/hd4 fsck -y /dev/hd9var 3. 重新格式化 JFS 的日志,使用命令: /usr/sbin/logform /dev/hd8 4. 使用 lslv -m hd5 确定引导磁盘。 5. 重建引导映像,使用命令: bosboot -a -d /dev/hdiskn 其中 n 是包含引导逻辑卷的磁盘的编号。 第 31 页 Led 552, 554, 和 556 – 超级块损坏或定制的 ODM 数据库被损坏 1. 重复 LEDs 551,555 和 557 的步骤 1 和 2。 2. 如果 fsck 表明块 8 被损坏,则说明文件系统的超级块被损坏,需要修复。输入命令: dd count=1 bs=4k skip=31 seek=1 if=/dev/hdn of=/dev/hdn 其中 n 是文件系统号。 3. 重建你的 JFS 日志,使用命令: /usr/sbin/logform /dev/hd8 4. 如果问题已经解决,就此停止;否则,继续执行第 5 步。 5. 你的 ODM 数据库被损坏。重启系统并按照第 ??9 页第 2.5.1 小节“访问一个无法引导 的系统”中的步骤,用选项 2 (Choice 2)访问你的 rootvg。 6. 装载 root 和 usr 文件系统,如下所示: mount /dev/hd4 /mnt mount /usr 7. 将系统配置拷贝到一个备份目录: mkdir /mnt/etc/objrepos/backup cp /mnt/etc/objrepos/Cu* /mnt/etc/objrepos/backup 8. 从 RAM 文件系统拷贝配置,如下所示: cp /etc/objrepos/Cu* /mnt/etc/objrepos 9. 使用 umount all 命令卸载所有文件系统。 10. 使用 lslv -m hd5 确定引导磁盘。 11. 将干净(clean)的 ODM 保存到引导逻辑卷中,使用以下命令: savebase -d /dev/hdiskn 12. 重启系统。如果系统起不来,则重装 BOS。 LED 553 - /etc/inittab 文件损坏 1. 按照第 ??9 页第 2.5.1 小节“访问一个无法引导的系统”中的步骤,在所有文件系统被 装载的前提下访问 rootvg。 2. 使用 df 命令检查在 /,/var 和 /tmp 下的自由空间。 3. 检查 /etc/inittab 文件并纠正 inittab 的问题,例如空的 inittab 文件,inittab 文件丢失,或 inittab 文件中有一错误的条目。 4. 检查以下各项的执行问题: /etc/environment /bin/sh /bin/bsh /etc/fsck /etc/profile /.profile 5. 关闭系统并重启。 2.6 测验 下面的问题是作者提出来的,以进一步检查你对本章内容的理解。 1. A system administrator suspects that a colleague rebooted their server the previous evening. Which of the following commands will confirm this suspicion? A. uptime B. lastboot C. reboot -l D. bootinfo -t 第 32 页 2. Once the machine has been powered on, which of the following is the correct way to reach the Systems Management Services menu on a PCI machine? A. Press the space-bar when the LED displays 262. B. Turn the key to Service mode when the LED displays 200. C. Choose SMS when the boot option menu appears on screen. D. Press the appropriate function key once the keyboard has been enabled. 3. While attempting a preservation install, all of the hardware connections appear to be correct. However, when trying to boot from CD-ROM, the machine ends up in diagnostics. Which of the following is the most likely cause of this problem? A. The battery on the machine is bad. B. The root volume group is corrupt. C. The low-level debugger is not enabled. D. There is a hardware problem with the CD-ROM. 2.6.1 答案 1. A 2. D 3. D 2.7 练习 以下的练习是为自学提供的例题。它们将帮助你加深对本章的理解。 1. 将你的 bootlist 修改为在下一次系统引导时通过 token ring 适配器从网络上进行引导。 2. 使用 alog 命令找出在启动过程中发生了哪些事件。 3. 使用 shutdown 命令关闭和重启系统。 4. 你刚刚对一个外置磁带驱动器加电。使用 cfgmgr 将该磁带驱动器置为可用状态,并确保 你能看到 cfgmgr 命令的所有消息。 5. 为你的关机过程增加一个应用,以适当的方式关闭你的正在运行着的数据库。 6. 找出你的系统持续在线的时间。 7. 找出 root 上次登录系统是在什么时间及从哪个终端发起。 8. 使用 mpcfg 命令将你的 Fast IPL 标记值改为真。 第 33 页 第三章 硬件援助 本章将讨论的是确定系统中所安装的设备的不同方式,以及记录系统错误消息的可用方 式,然后是使用这些消息来解决系统问题的方式。本章还将讨论如何使用系统日志来记录任 何所需的消息。 3.1 列出硬件设备 为了了解你系统中硬件的特性,可以使用下面的命令: lsdev 显示系统中的设备及其特性。 lspv 显示在一个卷组中的一个物理卷的相关信息。 lsattr 显示一个给定的设备或一类设备的相关信息。 例如: - 为了显示系统中的磁带,使用 lsdev -C -c tape 命令。 - 为了显示系统中的硬盘,使用 lsdev -C -c disk 命令。 3.1.1 使用 lsdev 命令 你可以使用 lsdev 命令显示在设备配置数据库中的设备的相关信息。 你可以在该命令 中使用 -C 标记显示取自ODM中的定制的设备对象类(Customized Devices object class) 中的信息,或使用 -P 标记显示取自ODM中的预定义设备对象类( Predefined Devices object class)中的信息。欲了解更多关于ODM的信息,请参见第??10页的第5章“对象数据管 理器(Object Data Manager)”。 lsdev 命令常用语法如下: lsdev -C [ -c Class ] [ -s Subclass ] [ -t Typ e ] [ -f File ] [ -F Format | -r ColumnName ] [ -h ] [ -H ] [ -l Name ] [ -S State ] lsdev -P [ -c Class ] [ -s Subclass ] [ -t Ty pe ] [ -f File ] [ -F Format | -r ColumnName ] [ -h ] [ -H ] 在lsdev命令中的一些常用标记如表3-1所示。 表 3-1 lsdev 命令标记 标记 描述 -C 列出定制的设备对象类中的一个设备的相关信息。缺省显示的信息为名字, 状态,位置和描述。该标记不能与-P标记一同使用。 -c Class 指定一个设备类名。该标记可以用于限制仅输出一个指定类中的设备。 -H 在输出的每列的顶部显示列标题。 -h 显示有关命令的使用方法的消息。 -P 列出预定义设备对象类中的一个设备的相关信息。缺省显示的信息为类别, 类型,子类,描述。该标记不能与 -C,-l,或 -S 标记一同使用。 -S State 列出处于由参数State命名的特定状态下的所有设备。 第 34 页 以下的一些例子将说明如何使用 lsdev 命令来列出系统中的不同设备的信息。 列出预定义ODM数据库中的设备 为了列出在预定义设备对象类中的所有设备,并显示列标题,在命令行输入: lsdev -P -H 系统显示的输出如图 3-1 所示。 图 3-1 列出预定义 ODM 数据库中的设备 列出定制的ODM数据库中的设备 为了列出定制的设备对象类中的所有设备,输入: lsdev -C -H 输出如图 3-2 所示: 图 3-2 列出定制的ODM数据库中的设备 列出可用的设备 为了列出在定制的设备对象类中的处于可用(Available)状态的适配器,输入: 第 35 页 lsdev -C -c adapter -S a 输出如图 3-3 所示: 图 3-3 列出可用的设备 列出支持的设备 为了列出你的系统所支持的所有类别的设备,在命令行输入: lsdev -P -r class 输出如图 3-4 所示: 图 3-4 列出支持的设备 3.1.2 使用 lspv 命令 lsdev 命令包含了安装在你的系统中的设备的通用信息;另外,你还可以使用 lspv 命 令找出有关你的物理卷的特定信息。 如果你在lspv命令中不使用命令标记,缺省提供的是系统中的每一个已知的物理卷,连 同它的物理磁盘名,物理卷标识符(PVIDs),以及它所属的卷组(如果有)。如果你在命 令中指定物理卷名,则它只显示该物理卷的相关信息。lspv命令常用语法如下: lspv [ -l | -p | -M ] [ -n DescriptorPhysicalVolume] [ -v VolumeGroupID] PhysicalVolume lspv命令最常用的两个标记如表3-2所示。 表 3-2 lspv 命令标记 标记 描述 -p 列出在物理卷上的每个物理分区的范围、状态、区域、LV(逻辑卷) 名、类型和装载点。 第 36 页 -v VolumeGroupID 基于VolumeGroupID(卷组标识符) 变量访问信息。 例如,为了显示你的系统中的物理卷,输入: # lspv hdisk0 00615147ce54a7ee rootvg hdisk1 00615147a877976a rootvg 为了显示物理卷hdisk0的状态和特性,使用如下的lspv命令: lspv hdisk0 输出如图 3-5 所示: 图 3-5 列出物理卷特性 为了按照物理分区号的顺序列出物理卷hdisk0的状态和特性,使用 lspv 命令如下: lspv -p hdisk0 屏幕显示如图 3-6 所示: 图 3-6 按物理分区列出物理卷特性 3.2 配置系统设备 当你向系统中增加一个新的设备或需要配置在引导过程中未被检测为可用的设备时,系 统必需提供配置这些设备的方法。cfgmgr 命令可用来配置设备,也可以往系统中安装设备 软件。 要被配置的设备由配置规则对象类(Configuration Rules object class)控制,后者 是设备配置数据库(Device Configuration database)的一部分。每个配置规则定义三项内 容:: - 要运行的可执行程序的全路径名。 第 37 页 - 在何时运行该程序(相对于其他规则)。 - 在哪个阶段运行该程序。 在系统引导过程中,cfgmgr 命令配置所有必要的设备。 cfgmgr 命令识别三个阶段的配置规则: - 阶段1 - 阶段2 (在常规引导中的第二个引导阶段) - 阶段3 (在维护引导中的第二个引导阶段) 在阶段1中,cfgmgr 命令被使用 -f 标记调用以指定该阶段为阶段1。cfgmgr 命令运行 阶段1的所有配置规则,以配置基本设备。接下来开始阶段2的执行,cfgmgr 命令被使用-s 标记调用。 通常,cfgmgr 命令在调用过程中运行所指定的阶段的所有规则(如 -f 标记指定阶段1 的规则)。但是,如果使用了 -l 标记,cfgmgr 命令只配置所命名的设备及其子设备。 如果 cfgmgr 被调用时不带任何阶段选项(例如,不带有 -f、-s 或 -p 标记),则该命令运 行阶段2的规则。运行阶段3规则的唯一方法是使用 -p 标记。 每个阶段的配置规则被根据在 seq 域中所指定的值进行排序。这个域是一个整数,定 义相应的规则相对于其他规则在该阶段中的执行优先级。seq域的数值越高,优先级越低, 例如,seq域值为1的规则要比值为10的规则先执行。只有一个例外:seq域值为0时表明了 一个“不用关心(don't care)”的条件,即任何seq域值为0的规则最后执行。 因此,seq域值为1是最高优先级(首先执行)。 如果在配置设备时有任何设备被检测到尚未安装设备软件,cfgmgr 命令会返回一个警 告消息,并给出必需安装的设备软件包的名字或可能的名字列表。如果设备软件包的特定名 字能被确定,则它是警告消息后面一行中显示的唯一一个软件包名。如果特定名字无法被确 定,则会在一个单行中显示一个由冒号分隔的可能的软件包名字列表。如果有多于一个设备 被检测到没有安装设备软件,则每个设备的软件包名字或可能的软件包名字列表均被显示。 以下为一个例子: cfgmgr: 0514-621 WARNING: The following device packages are required for device support but are not currently installed. devices.pci.22100020 devices.pci.14101800 devices.pci.scsi : devices.pci.00100300 : devices.pci.NCR.53C825 在这个例子中,先找到了两个未安装软件的设备,cfgmgr 命令显示了必需安装的设备 软件包的名字。第三个未安装软件的设备也被找到,但是在这个例子中,命令显示的是多个 可能的设备软件包名字。 当为一个设备标识出多于一个可能的软件包名字时,通常只有一个名字会与安装介质上 的设备软件包名字相符合。这就是需要安装的软件包。但是,在某些情况下,也可能有多于 一个名字与安装介质上的设备软件包名字相符合。在这种情况下,列表中的第一个在安装介 质上存在实际设备软件包的软件包名字所指定的即为必需安装的软件包。如果 cfgmgr 命令 与 -i 标记一起使用,则所安装的即为正确的软件包。 如果你用 -i 标记调用 cfgmgr 命令,该命令尝试为每个刚检测到的设备自动安装设备软 件。-i 标记的 device 变量指定从何处找到安装介质。安装介质可以是一个硬件设备(如磁 带或软盘),一个包含安装映像的目录,或安装映像文件本身。在 cfgmgr 命令中使用的一 些命令标记如表 3-3 所示。 表 3-3 cfgmgr 命令标记 第 38 页 标记 描述 -i Device 指定安装介质的位置。 -l Name 规定所命名的设备必须与其子设备一同配置。 -p Phase 规定cfgmgr命令必须在指定的阶段运行。 -s 规定cfgmgr命令必须遵照阶段2的配置规则。 -v 指定要被写到标准输出的细节的类型。 cfgmgr 命令使用的配置规则如表 3-4 所示。 表 3-4 cfgmgr 命令规则 规则 描述 phase 指定规则是属于阶段1、阶段2还是阶段3(维护模式的第二个引导阶段) seq 为一个整数值,指定规则的相对优先级。 rule 为一个字串,包含要运行的程序的全路径名(也可以包含任何标记,但它们必需跟在程序名后, 这样整个字串就如同被从命令行敲入一样地运行) 下面的例子均以包含以下信息的配置规则为基础: phase seq rule 1 1 /usr/lib/methods/defsys 1 10 /usr/lib/methods/deflvm 2 1 /usr/lib/methods/defsys 2 5 /usr/lib/methods/ptynode 2 10 /usr/lib/methods/startlft 2 15 /usr/lib/methods/starttty 3 1 /usr/lib/methods/defsys 3 5 /usr/lib/methods/ptynode 3 10 /usr/lib/methods/startlft 3 15 /usr/lib/methods/starttty 当 cfgmgr 命令被使用 -f 标记调用时, 该命令读取所有 phase = 1 的配置规则,并以下 面的顺序运行它们: /usr/lib/methods/defsys /usr/lib/methods/deflvm 注意:一旦系统被引导之后, -f 标记便不能被使用。 当 cfgmgr 命令被使用 -s 标记运行时,该命令读取所有 phase = 2 的配置规则,并以下 面的顺序运行它们: /usr/lib/methods/defsys /usr/lib/methods/ptynode /usr/lib/methods/startlft /usr/lib/methods/starttty 当 cfgmgr 命令被使用 -p 3 标记运行时,该命令读取所有 phase = 3 的配置规则,并以 下面的顺序运行它们: /usr/lib/methods/defsys /usr/lib/methods/ptynode /usr/lib/methods/startlft /usr/lib/methods/starttty 如果 cfgmgr 命令运行时不带任何标记,该命令的作用与使用 -s 标记是一样的。为了配 置被检测到连接在 SCSI0 适配器上的设备,使用如下的 cfgmgr 命令: 第 39 页 cfgmgr -l scsi0 为了在配置过程中自动安装设备软件(软件已存在于一个目录中),使用如下的 cfgmgr 命令: cfgmgr -i /usr/sys/inst.images 3.3 系统管理服务 cfgmgr 命令在软件级别配置设备。你可以使用系统管理服务(SMS)来在一个硬件级 别检查和配置系统。使用SMS,你可以检查是否所有可用的硬件都已被检测到,或者你可 以测试特定硬件的故障。 为了访问 SMS 工具,请遵照下面的指导: 1. 开始时你的机器必需是关闭的。 2. 如果你的系统要求一张SMS磁盘,将其插入到客户的软驱中后再启动机器。如果系统要 求一张SMS软盘但你在此时并不插入,稍后你会被提示插入一张。 3. 当图标开始在显示屏的底部从左向右显示时,按下 F1 键进入图形式 SMS 菜单,或按 F4 键进入字符式(ASCII)SMS 菜单。 注意:如果显示完最后一个图标时尚未按下 F1 或 F4 键,则被使用的是常规模式引导列表 而不是系统管理服务软盘。 4. SMS 菜单显示在你的屏幕上。你可以根据需要进行硬件检测或配置工作。 你可以在SMS菜单中修改顾问口令( advisory password),这样只有授权用户才能访问SMS 工具。如果你忘记了口令,唯一的修复方法是卸掉板载系统电源。 3.4 硬件设备兼容性 RSPC 和 RS/6000 平台体系结构(RPA)系统可通过以下方式来支持设备与系统的连 接: - PCI - ISA - SCSI 只要设备支持软件已经安装好,每当系统引导时运行了配置管理器程序(cfgmgr)并 且没有发现任何冲突(如两个SCSI设备使用了相同的SCSI ID之类的),则PCI 和 SCSI 设 备就会被自动配置。 非原装的(Non-native)ISA 设备必需采用手工配置,并且你可能需要修改一些设备的 预定义或定制的属性值,尤其当你在配置两个或更多相同类型的ISA适配器时。 即使你可以在一个系统中装有多个适配器,你也许不是总能够在相同的适配器上运行不 同的设备。根据你的特定机器的规格会有各种不同的配置。例如,如果你具有一个单端SCSI Ultra控制器(SCSI Single-Ended (SE) Ultra Controller),则只有 SE SCSI 设备才能连接到 其上,其他设备却不能。同样地,如果你的局域网是一个100 Mbps 以太网,10 Mbps以太 网卡也不能工作。 第 40 页 3.4.1 设备配置数据库 设备信息被包含在一个预定义的数据库或一个定制的数据库中,它们构成了设备配置数 据库(Device Configuration Database),并由对象数据管理器(Object Data Manager, ODM)来进行管理。 - 预定义数据库包含所有可能配置到系统中的设备的配置数据。 - 定制的数据库包含所有当前在系统中定义和配置的设备的配置数据。 每当在系统引导时或运行中调用了配置管理器程序(cfgmgr),存放在设备配置数据库 中的设备信息便允许系统设备进行自动配置,包括RISC System/6000系统中的微通道设备, RSPC 及 RPA (没有微通道)系统中的PCI 设备。 因为对于非原装的ISA设备,包含在配置数据库的预定义部分的信息数据不足以执行自 动、无冲突的ISA设备配置。因此,在第一次配置这些设备时,用户需要手工定义一些ISA 设备要使用的值(例如,中断级别,共享内存地址,等等)。 3.5 使用 lsattr 命令 在配置了系统中所有设备之后,你可以使用 lsattr 命令显示一个给定设备或一种设备的 属性信息。如果你不指定设备的逻辑名字(-l Name),则你必需使用-c Class,-s Subclass, 及 -t Type 标记中的一个或全部的组合来唯一标识预定义的设备。lsattr 命令常用语法如下: lsattr {-D [ -O ] | -E [ -O ] | -F Format } -l Name [ -a Attribute ]... [ -f File ] [ -h ] [ -H ] lsattr {-D [ -O ] | -F Format }{ [ -c Class ] [ -s Subclass ] [ -t Ty p e ] } [ -a Attribute ] .... [ -f File ] [ -h ] [ -H ] lsattr -R { -l Name | [ -c Class ] [ -s Subclass ] [-t Type ]} -a Attribute [ -f File ] [ -h ] [ -H ] 在 lsattr 命令中常用的标记如表 3-5 所示。 表 3-5 lsattr 命令标记 标记 描述 -D 显示属性名、缺省值、描述及当不使用 -O 标记时一个特定设备的用户可置 位的标记值。当使用 -O 标记时,-D 标记只以冒号分隔的格式显示属性名和 缺省值。 -E 显示属性名、当前值、描述及当不使用 -O 标记时一个特定设备的用户可置 位的标记值。当使用 -O 标记时,-E 标记只以冒号分隔的格式显示属性名和 当前值。该标记不能与 -c,-D,-F,-R,-s 或 -t 等标记一同使用。 -F Format 以用户指定的格式显示输出。 -a Attribute 显示一个特定设备或一种设备的指定属性的信息。 -c Class 指定一个设备类名。该标记不能与 -E 或 -l 标记一同使用。 -f File 从 File 参数读所需的标记。 -H 在每一列输出的顶部显示标题。把 -H 标记与 -O 或 -R 标记放在一起使用是 没有意义的;-O 或 -R 标记会压制它。 -l Name 指定在定制的设备对象类中的设备逻辑名,其属性名或值将被显示。 -O 显示所有属性名,用冒号分隔,并在第二行显示所有对应的属性值,也用冒 号分隔。 第 41 页 -R 为一个属性名显示其合法值。-R 标记不能与 -D,-E,-F 和 -O 等标记一同 使用,但能够与在预定义的设备对象类中可唯一标识一个设备的 –c,-s 和 -t 等标记的任意组合一同使用,或与 -l 标记一同使用。-R标记在一个竖向列中 显示合法的属性值列表,如下所示: Value1 Value2 . . ValueN -R 标记以 x...n(+i) 来显示范围(range)属性的值,其中 x 是范围的起始,n 是范围的结束,i为增量。 -s Subclass 指定一个设备子类名。该标记能够用来限定只输出一个指定的子类中的设备。 该标记不能与-E或-l标记一同使用。 -t Type 指定一个设备类型名。该标记能够用来限定只输出一个指定类别中的设备。 该标记不能与-E或-l标记一同使用。 当显示一个定制的设备的属性的有效值时,信息是从配置数据库而不是从设备得到的。 通常,数据库提供的值反映了设备是如何配置的,除非设备被使用带-P或-T标记的chdev命 令重新配置过。如果发生了重新配置,lsattr命令显示的信息可能无法正确反映当前的设备 配置,除非系统重启。 如果你使用 -D 或 -E 标记,输出缺省为属性的名字、值、描述和用户可置位的串,除 非与 -O 标记一起使用。-O标记显示所有指定的属性的名字,用冒号分隔。而在下一行,-O 标记显示所有对应的属性值,也用冒号分隔。-H标记可以与-D,-E 或 -F等标记一同使用, 用来在列名字的上部显示标题。你可以使用 -F Format 标记以用户指定的格式来定义输出的 格式,其中格式参数是一个引用的列名字列表,用非字母数字的字符或空格分隔。 你可以从命令行或从指定的文件参数中提供标记。下面是使用lsattr命令的一些例子。 - 为了列出磁带设备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 enabl disable share delay 第 42 页 hold - 为了列出tty0所连接到的串口的speed属性的当前值,使用如下的lsattr命令: # lsattr -El tty0 -a speed speed 9600 BAUD rate True 根据你的实际软件配置,可能你看到的命令回答会与上面的有所不同。请试着用不同的 设备和属性来试验这个命令,体会它是如何工作的。 3.6 使用带 devices 参数的 SMIT SMIT 快速路径 smitty devices 允许你使用SMIT菜单进行下面的操作: - 安装或配置在IPL之后增加的设备。 - 删除设备。 - 列出现有的设备。 - 修改或显示设备的属性。 - 对设备进行问题判定。 3.7 系统错误日志 一旦所有设备都配置到系统中并且系统进入生产运行,在日常操作中你可能会遇到与硬 件有关的错误。AIX提供错误日志机制来记录硬件和软件故障。错误日志可以为故障检测和 修复工作提供信息。 当一个操作系统模块检测到一个错误时,错误日志进程开始工作。错误检测代码段然后 会发送错误信息给 errsave 和 errlast 内核服务,或发给 errlog 应用子程序,在这里信息被 依次写入一个特殊的文件/dev/error中。该进程然后为收集到的数据增加一个时标(time stamp)。你可以使用errpt命令从错误日志中找到错误记录。 3.7.1 使用 errdemon 命令 errdemon 进程持续检查 /dev/error 文件,看是否有新的内容。当新数据与错误记录模 板库(Error Record Template Repository)中的一条相匹配时,伺服程序(daemon)从其 它系统部件中收集附加的信息。errdemon命令一般会在系统启动过程中自动启动,但是, 如果由于任何原因它被中断了,你需要重新启动它,可输入: /usr/lib/errdemon 为了确定你的系统的错误日志文件的路径,运行下面的命令: # /usr/lib/errdemon -l Error Log Attributes --------------------------------------------------- Log File /var/adm/ras/errlog Log Size 1048576 bytes Memory Buffer Size 8192 bytes 第 43 页 为了修改错误日志文件大小的最大值,输入: /usr/lib/errdemon -s 2000000 为了修改错误日志设备驱动器的内部缓存大小,输入: /usr/lib/errdemon -B 16384 显示的消息如下: 0315-175 The error log memory buffer size you supplied will be rounded up to a multiple of 4096 bytes. 3.7.2 使用 errpt 命令 为了取得错误日志中的记录,你可以使用errpt命令。errpt命令可从一个错误日志中的 记录产生一个错误报告。它包含选择匹配特定条件的错误的标记。使用缺省条件,你可以按 发生和记录时间的反序显示错误日志记录。 注意:errpt 命令不执行错误日志分析;如果需要作分析,使用diag命令。 errpt命令常用语法如下: errpt [ -a ] [ -c ][ -d ErrorClassList ] [ -e EndDate ] [ -g ] [ -i File ] [ -j ErrorID [ ,ErrorID ] ] | [ -k ErrorID [ ,ErrorID ] ] [ -J ErrorLabel [ ,ErrorLabel ] ] | [ -K ErrorLabel [ ,ErrorLabel ] ] [ -l SequenceNumber ] [ -m Machine ] [ -n Node ] [ -s StartDate ] [ -F FlagList ] [ -N ResourceNameList ] [ -R ResourceTypeList ] [ -S ResourceClassList ] [ -T ErrorTypeList ] [ -y File ] [-z File ] errpt命令常用的一些标记如表3-6所示: 表 3-6 errpt 命令标记 标记 描述 -a 以详细的格式显示错误日志文件中的错误信息。如果与 - t 标记一同使用,则显示来 自模板文件的所有信息。 -j ErrorID[,ErrorID] 只包括由ErrorID(错误标识)变量指定的error-log记录。ErrorID变量可以用逗号(,) 分隔,或用双引号(“”)括起来后再用逗号或空格符分隔。当与 - t 标记一同使用时, 处理的是错误模板库(error-template repository)中的记录。 -s StartDate 指定所有在StartDate 变量之后加入的记录,其中StartDate 变量的格式为 mmddhhmmyy (月、日、小时、分钟、年)。 -t 处理错误模板库而不是错误日志。-t 标记可用来以报表方式查看错误记录模板 (error-record templates )。 -F FlagList 根据模板中的 Alert,Log 或 Report 域的值来选择错误记录模板。 -J ErrorLabel 包括由ErrorLabel变量指定的错误日志记录。 以下给出了使用errpt命令的一些例子。 显示错误总结 为了对到目前为止所遇到的错误显示完整的总结报告,在命令行输入如下的errpt命令: 第 44 页 显示错误细节 为了对系统中遇到的所有错误显示细节报告,使用如下的errpt命令: # errpt -a (继续) 第 45 页 参照时间显示错误 如果你怀疑错误是前一天发生的,你可以显示过去24小时中记录的所有错误的详细报 告,其中的起始时间等于当前的月、日、时、分和年减去24小时。为此,使用如下的errpt 命令: # date Wed Aug 29 09:30:42 CDT 2001 # errpt -a -s 0828093001 第 46 页 3.7.3 使用 errlogger 命令 errlogger 命令允许你将操作员的消息记录到系统错误日志中。这些消息最大可以为 1024字节长。errlogger命令的使用及其输出如下例中所示: 第 47 页 3.7.4 其他错误处理命令 除了 errpt 命令之外,还可以将下面的命令与errpt命令联合使用,以找出硬件错误并对 任何由错误日志机制所报告的问题采取修复措施: errclear 从错误日志中删除记录。 errinstall 在错误日志消息集(error logging message sets)中安装消息。 errupdate 更新错误记录模板库。 3.8 诊断硬件问题 diag 命令是运行大量任务选项的起始点,是用于判定硬件问题的维护辅助工具。diag 命 令提供菜单驱动的接口,但是也可以直接使用命令行标记执行特定任务。 如果你怀疑有问题发生,使用以下步骤来运行诊断。 1. 运行 diag 命令。 2. 按回车键(Enter)越过信息屏。 3. 选择诊断过程(Diagnostic Routines)。 4. 选择问题判定(Problem Determination)。 该过程指导 diag 命令测试系统和分析错误日志。 图 3-7 显示了在一个有问题的系统中运行诊断的结果。 第 48 页 图 3-7 显示一个问题的 diag 屏幕 另外,如果你怀疑在sysplanar0设备中有问题发生,你也可以使用 diag -d sysplanar0 -v -e 命令来执行相同的诊断过程。 3.9 系统日志 AIX使用 syslogd 记录系统消息。syslogd 伺服程序(syslogd daemon)读一个数据报 套接字(datagram socket) 并将每个消息行发送到一个由配置文件/etc/syslog.conf描述的 目的地。在被激活时和接收到一个挂起(hang-up)信号时,syslogd daemon 都会读配置 文件。 syslogd daemon 创建 /etc/syslog.pid 文件。该文件只包含一行内容,为 syslogd daemon 的命令进程ID。它被用于终止或重新配置 syslogd daemon。 当一个终止信号被发送给syslogd daemon时则结束该伺服程序。syslogd daemon记录 结束信号(end-signal)信息并立即终止。每个消息为一行。一个消息行的开头可以包含一 个优先级代码,用括在尖括号(< >)中的一个数字标记。长于900字节的消息可能会被删 节。 引用文件 /usr/include/sys/syslog.h 定义在配置文件中使用的机制(facility)和优先级 代码(priority codes)。本地编写的应用程序使用在 syslog.h 文件中包含的定义来使用 syslogd daemon记录消息。 syslogd 命令常用语法如下: syslogd [ -d ] [ -s ] [ -f ConfigurationFile ] [ -m MarkInterval ] [ -r ] 启动syslogd时常用的标记如表 3-7所示。 表 3-7 syslogd daemon 标记 标记 描述 -d 打开调试(debugging)。 -f ConfigurationFile 指定另外一个配置文件。 -m MarkInterval 指定 mark 命令的消息的间隔时间(分钟数)。如果你不使用这个标记,mark命令 将每隔20分钟发送一个具有LOG_INFO优先级的消息。这个机制不会被包含一个 * (星号)的选择器域(selector field)激活,它会选择所有其他机制。 -s 指定为所有在本地系统上产生的转发syslogd消息转发一个简短的消息给另一个系 统(如果配置成这样做)。 -r 禁止记录从远程主机上接收到的消息。 syslogd daemon 使用一个配置文件并依靠消息的优先级别和产生它的机制来判断将系第 49 页 统消息发往何处。在缺省情况下,syslogd 读缺省的配置文件/etc/syslog.conf,但是如果你 使用 -f 标记,你可以指定另外一个配置文件。 3.9.1 syslogd 配置文件 /etc/syslog.conf 文件控制 syslogd daemon 的行为。例如,syslogd 使用/etc/syslog.conf 文件来确定将错误消息发往何处,或如何对不同的系统事件作出反应。下面是缺省的 /etc/syslog.conf 文件的一部分内容。 除了在/etc/syslog.conf 文件中包含有 syslogd daemon 的设置之外,还在 /etc/syslog.pid 文件中包含了运行中的syslogd daemon的进程ID。 3.9.2 配置文件的格式 本节描述/etc/syslog.conf文件的格式,以及你该如何解释该文件中的不同记录。syslogd daemon的配置文件中的每行中包括一个选择器域(selector field)和一个动作域(action field),用一个或多个制表符(tab)来分隔。 选择器域命名了机制和优先级别。在选择器域中,机制名之间用逗号(,)分隔,机制第 50 页 和优先级别部分之间用句点(.)分隔,而同一个选择器域中的多个记录之间用分号(;)分 隔。使用星号(*)指选择所有机制。 动作域标识了接收消息的目的地(文件,主机或用户)。如果被路由到远程主机,远程 系统将按照它自己的配置文件的指示来处理消息。为了在一个用户终端上显示消息,目的地 域必需包含一个合法的已登录的系统用户名。 机制(Facilities) 表 3-8 列出了一些在/etc/syslog.conf文件中使用的机制。你可以在选择器域中使用这些 系统机制名。 表 3-8 在 /etc/syslog.conf 文件中使用的机制 机制 描述 kern 内核 user 用户级别 mail 邮件子系统 daemon 系统 daemons auth 安全或授权 syslog syslogd daemon lpr 行式打印机子系统 news 新闻子系统 uucp uucp 子系统 * 所有机制 优先级别(Priority levels) 表 3-9 列出了在/etc/syslog.conf文件中使用的优先级别。你可以在选择器域中使用这些 消息优先级别。所指定的优先级和所有高于它的级别的消息都被按指定方向发送。 表 3-9 /etc/syslog.conf 文件中的优先级别 优先级别 描述 emerg 指定为紧急消息(LOG_EMERG)。这些消息不分发给所有用户。LOG_EMERG优 先级消息可以记录在一个单独的文件中以方便复查。 alert 指定为重要消息(LOG_ALERT),如严重的硬件错误。这些消息被分发给所有用户。 crit 指定为非错误类别的关键消息(LOG_CRIT),如不适当的登录尝试。LOG_CRIT和 更高级别的消息被发送给系统控制台。 err 指定为表示错误条件的消息(LOG_ERR),如一个不成功的写磁盘操作。 warning 指定为异常的但是可修复的条件的消息(LOG_WARNING)。 notice 指定为重要的报告性的消息( LOG_NOTICE)。未指定优先级的消息都映射到该优先 级。它们比报告性消息更重要,但不是警告消息。 info 指定为报告性消息(LOG_INFO)。这类消息可以被丢弃,但是在系统分析时有用。 debug 指定为调试消息(LOG_DEBUG)。这类消息可以被丢弃。 none 排除所选择的机制。这个优先级只有当同一个选择器域中的开头第一个记录中含有 * (星号)时才有用。 目的地(Destinations) 表 3-10 列出了一些在/etc/syslog.conf文件中使用的目的地。你可以在动作域中使用这 些消息目的地。 表 3-10 /etc/syslog.conf 文件中的目的地描述 目的地 描述 File Name 一个被打开并处在添加(append)模式 的文件的全路径名。 @Host 主机名,以@(at 记号)开头。 User [ , User ] [ ... ] 用户名。 * 所有用户。 第 51 页 3.9.3 使用系统日志 为了定制 /etc/syslog.conf 文件以满足你所需的条件,你应当编辑 /etc/syslog.conf 文件 以更新系统日志。在对 /etc/syslog.conf 文件进行编辑并加入你的行之后,你需要重启 syslogd daemon,可以通过运行下面的命令来实现: 1. 查看 syslogd daemon 的进程 ID。在这个例子中,它是 5426。 # ps -ef | grep syslogd root 5426 4168 0 Nov 01 - 0:00 /usr/sbin/syslogd root 24938 25854 2 12:04:03 pts/6 0:00 grep syslog 2. 使用 stopsrc 命令停止 syslogd daemon,如下所示: # stopsrc -s syslogd 0513-044 The stop of the syslogd Subsystem was completed successfully. 3. 检查 syslogd daemon 是否被成功地停止。 # ps -ef | grep syslogd root 26112 25854 2 12:04:16 pts/6 0:00 grep syslog 4. 重启 syslogd daemon。 # startsrc -s syslogd 0513-059 The syslogd Subsystem has been started.Subsystem PID is 13494. 下面是使用 /etc/syslog.conf 文件的一些例子。 Ÿ 为了将邮件机制的所有处于debug或更高级别的消息记录到文件 /tmp/mailsyslog 中, 输入: mail. debug /tmp/mailsyslog 其中: – mail 为机制名,请参阅第??11页的表 3-8。 – debug 为优先级别,请参阅第??12页的表 3-9。 – /tmp/mailsyslog 为目的地,请参阅第??13页的表 3-10。 Ÿ 为了将除邮件机制以外的所有系统消息发送到一个名为rigil的主机,输入: *. debug; mail. none @rigil 其中: – * 和 mail 为机制名,请参阅第??11页的表 3-8。 – debug 和 none 为优先级别,请参阅第??12页的表 3-9。 – @rigil 为目的地,请参阅第??13页的表 3-10。 Ÿ 为了将来自所有机制的处于 emerg 优先级的消息以及来自 mail 和 daemon 机制的处 于 crit 及更高优先级的消息发送给用户 nick 和 jam,输入: *. emerg; mail, daemon. crit nick, jam 其中: – *,mail 和 daemon 为机制名,请参阅第??11页的表 3-8。 – emerg 和 crit 为优先级别,请参阅第??12页的表 3-9。 – nick 和 jam 为目的地,请参阅第??13页的表 3-10。 Ÿ 为了将所有邮件机制消息发送到所有用户终端屏幕上,输入: mail. debug * 其中: – mail 为机制名,请参阅第??11页的表 3-8。 第 52 页 – debug 为优先级别,请参阅第??12页的表 3-9。 – * 为目的地,请参阅第??13页的表 3-10。 3.10 建立一个 ASCII 终端 3151 显示器可以直接或通过一个调制解调器连接到一个AIX系统。可以连接到AIX系统 的一个集成的串口上,如图 3-8 所示;也可以连接到一个异步适配器上,如图 3-9 所示。另 外,在 3151 显示器上可以连接一个打印机,AIX 支持其作为终端连接打印(Terminal Attached Printing),如图 3-8 所示。 图 3-8 连接一个串行终端到 RS/6000 系统 图 3-9 到直连的异步适配置的终端连接 为了增加一个 TTY,使用以下操作步骤: 1. 发出 smitty tty 命令并选择 Add a TTY,或发出 smitty maktty 命令。 2. 系统将询问你 TTY 的类型和父适配器的名字。从列表中选择正确的值并按回车。 屏幕显示如 3-10 所示: 第 53 页 图 3-10 增加一个 tty 3. 在 PORT number 域选择你要将这个 TTY 加入到其上的端口号。对于 RANs,遵照位置 编码规则(location code rules)选择适当的端口号。 4. 修改 TERMINAL Type 域值为你正使用的终端的类型。该域非常重要,因为如果该域设 置不正确,你也许不能使用你的终端上的所有键。TERM 环境变量存放该设置。你可以使 用你的TERM环境变量修改终端仿真设置并使用export命令保存你想使用的终端仿真。 例 如,为了使用 ibm3151 终端仿真,使用命令: TERM = ibm3151; export TERM 5. 为你的终端设置线速和通信类型(1/8/N 或 1/7/E),并按回车。 通过以上步骤,将在 /dev 目录中生成一个设备的专用文件,并在 /etc/inittab 文件中增 加一条记录以便在你的终端上运行 getty 进程,这样你的终端在系统启动时就可以用了。它 还为你刚增加的终端在定制的 ODM(CuDv)数据库中添加另一条记录。 你也可以直接在命令行增加一个 TTY。如为了增加一个使用适配器 sa0 和端口 s1 并允 许登录的 ibm3151 RS232 终端,使用下面的命令: mkdev -c tty -t tty -s rs232 -p sa0 -w s1 -a login = enable -a term = ibm3151 你可以使用下面的命令删除一个终端: rmdev -l tty_name -d - 其中 tty_name 可以通过使用 tty 命令或通过列出所有 TTYs 并选择你所想删除的 tty 来确 定。 在 ASCII 终端上设置通信选项,如下: Line Speed (baud rate) = 9600 Word Length (bits per character) = 8 Parity = no (none) Number of Stop Bits = 1 Interface = RS-232C (or RS-422A) Line Control = IPRTS 设置键盘和显示选项,如下: Screen = normal Row and Column = 24x80 第 54 页 Scroll = jump Auto LF (line feed) = off Line Wrap = on Forcing Insert = line (or both) Tab = field Operating Mode = echo Turnaround Character = CR Enter = return Return = new line New Line = CR Send = page Insert Character = space 注意:如果你的终端是 IBM 3151,3161,或 3164,按 Ctrl+Setup 键显示 Setup 菜单,并 按照屏幕上的指示设置这些域。 如果你使用的是其他的 ASCII 终端,参照相应的文档说明来设置这些域。 3.11 测验 下面的问题是作者提出来的,以进一步检查你对本章内容的理解。 1. The marketing group within the Widget Company plans to implement a new database to house their demographic data. The administrator has requested a tape drive and an additional disk to support the installation of this new database. The IBM hardware engineer has connected the new equipment, and the machine has been rebooted. Which of the following commands should be used to verify the tape device is installed correctly? A. lspv B. lsdev C. lstape D. lsdisk 2. The marketing group within the Widget Company plans to implement a new database, as in question one. The new tape drive appears to be installed and functioning correctly. However, while attempting to perform a mksysb utilizing the new drive, it fails. What would be the first recommended action to take to determine the cause of the failure? A. Replace the tape drive. B. Run cfgmgr to reconfigure the tape device. C. Check the error log for tape drive errors. D. Use SMIT to change the compression attribute on the tape device. 3. A system administrator has just set up a new machine with two external hard disks in a SCSI chain. One is a 2.2 GB SE (single ended) disk, and the other is a 4.5 GB differential disk. The system administrator reboots the machine and notices that only the SE disk is available. Which of the following is the most likely cause? 第 55 页 A. The SE disk is most likely experiencing hardware problems. B. There is most likely a SCSI conflict between the two drives. C. The SE and differential drives are on the same chain. D. The differential disk is most likely experiencing hardware problems. 4. Which of the following commands can be used to determine the serial port settings? A. lscfg -vl ttyXX B. ls -l /dev/ttyXX C. lsattr -El ttyXX D. lsdev -C |grep ttyXX 5. A machine has a bootlist that is set for network booting. In attempting to access SMS menus to change the bootlist to the local disk, it is discovered that someone has set an SMS supervisory password, and the password is not recorded. Which of the following actions will allow the system administrator to gain access to the SMS menus? A. Boot from AIX installation media, then reinstall SMS. B. Boot from AIX installation media, then reset the supervisory password. C. Call IBM and ask for the over-ride password based on the serial number. D. Remove the battery from the system for at least one minute. Replace the battery and then reboot. 3.11.1 答案 1. B 2. C 3. C 4. C 5. D 3.12 练习 以下的练习是为自学提供的例题。它们将帮助你加深对本章的理解。 1. 检查错误日志。是否有任何需要担心的问题? 2. 检查系统日志。确定文件中有什么信息并加入你想报告的信息。 3. 配置一个新设备。使用 cfgmgr 命令配置该设备。 第 56 页 第四章 系统和软件安装 本章将描述安装过程,在安装过程中经常使用的命令,以及你可以用来将软件安装到系 统中的不同方式。本章包括了基本操作系统(Base Operating System,BOS)的安装选项, 可选软件的安装,以及将你的系统升级到最新的维护级别的应用过程。 图 4-1 显示了系统安装步骤的流程图。 启动系统。 定义系统控制台。 按缺省方式 开始安装? 检查缺省安装方式 和系统设置。 缺省设置是 否需要修改? 从CD-ROM或磁带安装。 转到“定制你的安装”。 是 否 是 否 修改安装方式。 修改目标磁盘。 修改主要语言环境设置。 修改桌面环境 - (CDE,KDE,GNOME,none)。 激活64位内核和JFS2。 图 4-1 AIX 5L 版本 5.1 系统安装流程图 4.1 基本操作系统(Base Operating System)安装 为了安装基本操作系统,你应当首先将系统引导到维护模式(maintenance mode)。显 示的BOS安装和维护菜单如图 4-2 所示。 第 57 页 图 4-2 Welcome to Base Operating System 菜单 在该菜单中选择 2,屏幕显示如图 4-3 所示。 图 4-3 Installation and Settings 菜单 在该菜单中选择 3,屏幕显示如图 4-4 所示。 第 58 页 图 4-4 Advanced Options 菜单 在安装和设置(Installation and Settings)菜单中,你可以设置安装方式、主要语言环 境设置和修改高级选项。可以有三种方式在你的系统中安装AIX,它们是: - 完全覆盖式安装(New and Complete Overwrite Installation) - 升级安装(Migration Installation) - 保留安装(Preservation Installation) 4.1.1 完全覆盖式安装 通常,完全覆盖方式适用于以下情况: - 你的机器是未预装系统的新机器。在这种情况下,你要在其上安装BOS的硬盘是空的。这 是新机器的唯一可用安装方式。 - 你需要将系统安装到一个已经存在根卷组(root volume group)但是你希望将其完全覆盖 掉的硬盘上。例如,当你的根卷组被破坏时就需要这种方式。 - 你需要重新分配你的硬盘,即是说,你想把 rootvg 缩小并为其分配更小的磁盘空间。 注意:完全覆盖式安装将删除选定的目标盘上的所有数据。这意味着在安装完成后,你要使 用配置助理(Configuration Assistant)程序、SMIT或命令行手工配置你的系统。如果你想 保留原有系统配置,而且不想完全覆盖根卷组,就不要采用完全覆盖式安装选项。 4.1.2 升级安装 使用这种安装方式将 AIX Version 3.2,AIX Version 4.1,AIX Version 4.2 或 AIX Version 4.3升级到 AIX 5L Version 5.1,同时保留现有根卷组。除了/tmp 之外,该方式保留所有文 件系统,包括根卷组、逻辑卷和系统配置文件。升级是 AIX Version 3.2,AIX Version 4.1 和 AIX Version 4.2 机器的缺省安装方式。在多数情况下,在升级安装过程中,当安装新版本 时,前一版本产品的用户配置文件被保存下来。 第 59 页 4.1.3 保留安装 当已有一种版本的BOS被安装到你的系统中,而你想保留根卷组中的用户数据时,使 用这种安装方式。不过,这种方式缺省会覆盖 /usr,/tmp,/var 和 /(根)文件系统;因此, 在这些目录下的任何用户数据将丢失。这些文件系统被删除并重建;因此,你安装在系统中 的任何其他注册的程序产品(Licensed Program Products,LPPs)或文件集也将丢失。执 行保留安装后必需重新进行系统配置。 /etc/preserve.list 文件包含一个在进行保留BOS安装时要拷贝和保存的系统文件列表。 /etc/filesystems 为缺省列出的文件。你可以将任何你想在保留安装过程中保存下来的其他 文件的全路径名增加到 preserve.list 文件中。例如,你可以修改 /etc/preserve.list 文件以告 诉你的安装进程,你想保留你的 /var 文件系统。 如果要了解安装BOS的详细信息,请参考 AIX 安装指南。 4.2 高级选项安装 在 AIX 5L Version 5.1 高级选项(Advanced Options)菜单中,你可以修改更多的系统 操作参数设置。你可以修改三个选项: - 安装软件包集(Package Set)或桌面(Desktop) - 激活可信计算环境(Trusted Computing Base) - 激活 64 位内核和日志文件系统2(64-bit Kernel and JFS2) 4.2.1 安装软件包集或桌面 Installation Package Set or Desktop 菜单允许你配置系统在启动时将使用的接口类型。 Installation Package Set 是 ASCII 控制台缺省的和唯一的选择。Desktop 选项用于图形系 统,它将允许你选择系统使用的图形接口类型。图形接口类型包括: - CDE - KDE - GNOME - NONE 如果你不想选择任何一个桌面,则选 NONE,安装一个包括 X11,Java,perl,SMIT 和 Web-based System Manager 在内的最小配置。如果你选择 CDE,GNOME 或 KDE, 桌面和文档服务库也会被安装。如果你选择 GNOME 或 KDE,界面上会向你询问 Linux Applications CD-ROM 的 Toolbox。如果你没有这个 CD-ROM,你可以敲 q 键忽略它并继 续下面的安装。 如果要了有关安装软件包集或桌面设置的解详细信息,请参考 AIX 5L Version 5.1 Installation Guide,SC23-4374。 4.2.2 激活可信计算环境(Trusted Computing Base,TCB) 可信计算环境提供了额外级别的安全,并确保你所想运行的就是实际运行的。如果你将第 60 页 该属性设置为 YES,安装过程会安装 bos.rte.security 文件集,这样你可以设置 TCB。要注 意你只能在这个时候激活 TCB。如果你决定现在不安装 TCB,如果以后再想激活 TCB,你 就必需重装操作系统。通过从系统中删除 bos.rte.security 文件集,你可以将 TCB 删除。 4.2.3 激活 64-bit 内核和 JFS2 AIX 5L Version 5.1 允许你在安装过程中既安装64位内核,又安装以前可用的32位内核。 如果你的系统具有64位处理器,则64位内核自动与基本操作系统一起被装载。但是,只有 在初始 AIX 安装过程中,你把 Enable 64-bit Kernel and JFS2 选项设置为yes时,64位内核 才被激活。 你也可以通过在以后安装bos.mp64文件集再安装该内核。 bootinfo -y 命令将显示你的系统硬件类型,为 32 位或 64 位。如果该命令返回32,则 你不能使用 64 位内核。 JFS2 是AIX Version 4.3及以前发行版本的日志文件系统( Journaled File System,JFS) 的一个增强和升级版本。JFS2 的特点包括,支持 1 terrabyte(TB)的文件大小和 4 petabytes (PB)的结构性(architectural)最大文件系统大小(??102)。 JFS2 也允许你在系统中 创建增强的日志文件系统。 如果你使用完全覆盖式安装,安装过程将在 rootvg 中创建 JFS2 文件系统。如果你的 系统没有激活 64-bit,该选项不会被显示。如果你的系统激活了 64-bit 而且你在执行升级安 装,该选项将被激活,但是它不会将现有文件系统转换成 JFS2。 一旦你安装完 BOS,配置了 Advanced Options,并且系统被从硬盘引导,系统将把你 带入配置助理(Configuration Assistant)菜单。 4.3 配置助理(Configuration Assistant) 安装结束和系统重启之后,Configuration Assistant 程序,/usr/sbin/install_assist 被自 动启动。在以前的 AIX 版本中,Configuration Assistant 即所知的 Installation Assistant 或 Configuration Assistant Taskguide。 Configuration Assistant 允许你建立基本系统配置,如图 4-5 所示。 第 61 页 图 4-5 Configuration Assistant 菜单 对于从ASCII终端安装的系统,类似上图的列表将被以字符格式显示。 在使用Configuration Assistant完成这些任务后,你要关闭Configuration Assistant在系 统启动时的自动重启功能。否则,每次系统重启时,它都会显示在控制台上。为了关闭自动 重启功能,执行以下步骤: - 选择退出(Exit the Configuraton Assistant)。 - 按 Next。 - 选择现在结束并在重启操作系统时不启动 Configuration Assistant。 如果你需要再次调用 Configuration Assistant,可运行 /usr/sbin/install_assist 或使用 SMIT 快速路径 smitty assist。 4.4 理解维护级别(maintenance levels) 一旦你安装完基本操作系统,你就可以使用oslevel命令确定维护级别。 oslevel 命令的常用语法如下: oslevel [ -l Level | -g | -q ] 对 oslevel 命令标记的简要描述如表 4-1所示。 表 4-1 oslevel 的命令标记 Flag Description -l Level 列出维护级别比Level参数指定的级别更早的文件集。 -g 列出维护级别比当前维护级别更新的文件集。 -q 列出可以使用 -l 标记指定的已知维护级别的名字。 为了查看你的系统的当前维护级别,使用下面的oslevel命令: # oslevel 4.3.2.0 产品名和级别号标识一个软件产品。在AIX Version 3.2 及以后版本中,软件产品的维 护级别用 vv.rr.mmmm.ffff 定义,其中: vv 是一个由一到两个数字构成的数值域,标识版本号(version number)。 第 62 页 rr 是一个由一到两个数字构成的数值域,标识发行号(release number)。 mmmm 是一个由一到四个数字构成的数值域,标识修改级别(modification level)。 ffff 是一个由一到四个数字构成的数值域,标识修复级别(fix level)。 例如,bos.net.tcp.client 4.3.2.0 为一个文件集,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 命令的 -l 标记可 以确定有哪个文件集还没有被更新到新的BOS级别。在图 4-6 中,系统处于 4.3.0.0,但是 还有一些文件集没有到达当前维护级别。 图 4-6 oslevel -l 输出示例 oslevel 命令也可以用来检验系统是否已经从一个低级AIX版本成功地升级到高级版本。 例如,在一个刚刚从AIX Version 4.3.3升级到AIX 5L Version 5.1的系统,oslevel命令将显示 如下输出: # oslevel 5.1.0.0 # oslevel -l 5.1.0.0 # 4.5 软件封包 软件产品包括AIX附带的软件和单独购买的软件。每个软件产品可以包括多个可独立安 装的部分。下面将介绍软件产品的组织方式。 第 63 页 4.5.1 文件集(Filesets) 文件集是AIX操作系统的最小的可安装基本单元。一个文件集可以包含构成一个完整产 品的所有文件,如 bos.net.uucp,或只包含一个产品中的一个可独立安装的部件,如 bos.net.nfs.client。 4.5.2 软件包(Packages) 软件包由一组可独立安装的文件集构成,这些文件集在一起提供了相关功能的一个集 合。如 bos.net 就是一个软件包。 4.5.3 注册的程序产品(Licensed Program Products) 注册的程序产品(LPP)是一个完整的软件产品,包含所有与该注册的程序相关联的软 件包。例如,BOS 就是一个注册的程序。 4.5.4 软件束(Bundles) 软件束是一组软件,可包含文件集、软件包和LPPs,适用于一个特定的用途,如提供 个人生产力软件(personal productivity software)或网络环境下的客户机软件。系统缺省 使用的软件束存放路径为 /usr/sys/inst.data/sys_bundles。用户创建的软件束存放路径为 /usr/sys/inst.data/user_bundles。AIX 5L Version 5.1 中系统定义的软件束包括: - App-Dev - CDE - GNOME - KDE - Media-Defined - Netscape - devices - wsm_remote 4.5.5 PTFs 和 APARs PTF是 Program Temporary Fix (临时修复程序)的首字母缩写。PTF 是一个更新的文 件集或一个修复了以前系统中的错误的文件集。PTFs 被采用与普通文件集相同的方式进行 安装,使用 installp 命令,请见第??14页,第 4.6.1 小节,“ installp 命令”中的描述。 APAR 是 Authorized Program Analysis Report(授权的程序分析报告) 的首字母缩写。 APAR 是对系统中单一问题的一次紧急修复,或称e-fix。APARs 在通过测试和检验后,最 终将成为 PTFs。APARs 被使用 instfix 命令应用到系统中,请见第??15页,第 4.7.3 小 节,“显示和更新已安装的软件到最新级别”。 第 64 页 4.6 安装可选软件和维护更新 当你安装完基本操作系统后,只有有限数量的文件集被安装到系统中。如果想了解在 BOS安装过程中所安装的软件的完整列表,请查阅你的AIX安装指南。要安装其他软件,你 可以使用SMIT或在命令行进行。 如果你决定使用命令行安装你的软件,那你一定要能熟练 使用installp命令。 4.6.1 installp 命令 installp 命令被用于安装和更新软件。installp 命令提供大量的标记。在下面的内容中, 我们仅对最重要的一些标记及命令进行介绍。installp 命令也可以被所有的SMIT脚本用来安 装软件。 installp命令常用的标记如表4-2所示: 表 4-2 installp 命令标记 标记 描述 -a 应用一个或多个软件产品或更新。这是缺省的操作。该标记可以与 -c 标记一同使用, 即在安装过程中应用并提交软件产品更新。 -B 表明所请求的操作必须只限于软件更新。 -C 清理被中断的安装,并试图删除以前安装的所有不完整的片段。 -c 将被应用的更新提交到系统中。 -d Device 指定安装介质所在的设备。 -F 强制进行软件产品的安装,即使系统中已经存在以前安装的该软件产品且其版本与现在 要安装的版本相同甚至比它更新。 -f ListFile 从ListFile中读取软件产品的名字。如果ListFile的值为一个破折号(-),则从标准输入 读取名字列表。installp -l命令的输出均适用于该标记的输入。 -g 当用于安装或提交时,该标记会分别自动地安装或提交对指定的软件产品必不可少的任 何软件产品或更新。当用于删除或拒绝软件时,该标记会自动删除或拒绝指定软件的附 属。 -L 通过查看目录(.toc)显示介质的内容,并将信息以用冒号分隔的输出方式显示。该标 记被SMIT用来列出介质的内容。 -l (lowercase L) 在标准输出上列出安装介质上包含的所有软件产品及其可独立安装的选项。并不进行安 装。 -N 对安装或升级时被替换的现有文件不进行保存。该标记只有与 -ac 标记一同使用才有 效。 -p 通过对指定操作运行所有的安装前预检来对操作执行一次预览。该标记只能与apply, commit,reject 和 remove(-a, -c, -r, 和 –u)标记一同使用。 -r 拒绝当前被应用但未提交的所有软件更新。 -u 从系统中删除指定的软件产品及其所有被安装了的更新。但决不允许删除任何属于 bos.rte 的文件集。 -V Number 指定冗长(verbose)选项,可以为安装预览的输出提供多达 4 个级别的细节,包括 SUCCESSES,WARNINGS 和 FAILURES等。 -v 在安装之后检验文件集中所有被安装的文件是否具有正确的校验和值。可以与 -a 和 -ac 标记一同使用,以确认成功的安装。如果该标记报告出任何错误,可能必须重装软件。 -X 当进行安装时发现空间不够用,则试图扩充文件系统。 安装软件 软件可以被安装成以下两种状态之一:applied(被应用的)或 committed(被提交的)。 applied 状态将软件加入到系统中,同时保留以前的版本。当一个更新处于 applied 状态时, 以前的版本被存放在 /usr/lpp/PackageName 目录下。该状态对于部署或测试新软件非常有 用,因为一旦发生错误,可能必须恢复到软件的以前版本。 第 65 页 committed 状态将软件加入到系统并从 /usr/lpp/PackageName 目录中删除该软件以前 的所有版本。如果需要删除被提交的软件,你已经无法恢复到以前的版本,除非将以前版本 的软件重新进行完全安装。我们建议你以 applied 状态安装新软件,而不是使用 committed 状态,直到新软件被彻底检测通过。 如果以applied状态安装软件,installp命令的语法如下: installp -a [ -e LogFile ] [ -V Number ] [ -d Device ] [ -b ] [ -S ] [ -B ] [ -D ] [ -I ] [ -p ] [ -Q ] [ -q ] [ -v ][ -X ] [ -F | -g ] [ -O { [ r ] [ s ] [ u ] } ] [ -t SaveDirectory ] [ -w ] [ -z BlockSize ] {FilesetName [ Level ]... | -f ListFile | all } 如果以committed状态安装软件,installp命令的语法如下: installp -ac [ -N ] [ -LogFile ] [ -V Number ] [ -d Device ] [ -b ] [ -S ] [ -B ] [ -D ] [ -I ] [ -p ] [ -Q ] [ -q ] [ -v ] [ -X ] [ -F | -g ] [ -O { [ r ] [ s ] [ u ] } } ] [ -t SaveDirectory ] [ -w ] [ -z BlockSize ] { {FilesetName [ Level ]...| -f ListFile | all } 例如,要以 applied 状态安装在 /usr/sys/inst.images 目录下的 bos.net 软件包中的所有 文件集,输入: installp -avX -d /usr/sys/inst.images bos.net 要预览以 committed 状态对 /usr/sys/inst.images 目录下的 bos.net 软件包中的所有文 件集的安装并检查磁盘空间需求,输入: installp -acpX -d /usr/sys/inst.images bos.net 在输出的 RESOURCES 小节中,你将看到如下内容: 如图所示,/usr 文件系统没有足够的自由空间用于安装,这样安装将会失败。 注意:如果你试图同时对一个安装介质运行两遍 installp 命令,安装将失败,并且输出错误 消息如下: 0503-430 installp: Either there is an installp process currently running or there is a previously failed installation. Wait for the process to complete or run installp -C to cleanup a failed installation. 你可以在 /var/adm/sw/installp.summary 中找到 installp 的输出的记录。下面是该文件 的一个例子: # cat /var/adm/sw/installp.summary 0:bos.net.ppp:5:U:5.1.0.0: 第 66 页 0:bos.net.ipsec.rte:5:U:5.1.0.0: 0:bos.net.ppp:5:R:5.1.0.0: 0:bos.net.ipsec.rte:5:R:5.1.0.0: 提交被应用的更新 用于提交被应用的更新的 installp 命令语法如下: installp -c [ -e LogFile ] [ -V Number ] [ -b ] [ -g ] [ -p ] [ -v ] [ -X ] [ -O { [ r ] [ s ] [ u ] } } ] [ -w ] { {FilesetName [ Level ] ... | -f ListFile | all } 例如,为了提交所有更新,输入: # installp -cgX all 运行该命令将提交所有更新,并删除以前版本的文件集。 拒绝被应用的更新 用于拒绝处于 applied 状态的更新的 installp 命令语法如下: installp -r [ -e LogFile ] [ -V Number ] [ -b ] [ -g ] [ -p ] [ -v ] [ -X ] [ -O { [ r ] [ s ] [ u ] } } ] [ -w ] { {FilesetName [ Level ] ... | -f ListFile } 例如,为了拒绝所有列在 ./reject.list 文件中的被应用的更新,输入: # installp -rBfX ./reject.list 运行该命令将删除所有列在 ./reject.list 文件中的未提交的更新,并将系统恢复到以前 的维护级别。 删除被安装的软件 如果你想删除被安装的软件,也就是说,删除系统中所有属于该软件的文件,使用 installp 命令的语法如下: installp -u [ -e LogFile ] [ -V Number ] [ -b ] [ -g ] [ -p ] [ -v ] [ -X ] [ -O { [ r ] [ s ] [ u ] } } ] [ -w ] { {FilesetName [ Level ] ... | -f ListFile } 例如,要预览对 bos.net.ipsec.rte 及其附属的删除操作,并冗长显示所有的 successes, warnings 和 failures,输入: # installp -ugp -V2 bos.net.ipsec.rte 运行该命令将为你提供一个将被删除的文件列表,但不真正执行删除。 清理失败的安装 如果安装过程中发生意外(如系统掉电)而使安装过程非正常失败或安装正常失败, installp 将不能再安装相同的软件,除非你把安装失败前已经成功装入的文件全部删除掉。 你可以使用的 installp 命令如下: installp -C [ -b ] [ -e LogFile ] 例如,如果没有满足安装的全部先决条件(prerequisites), installp 命令可能会失败。 你将无法重装该产品,直到你执行了清除工作。只需输入: # installp -C 该命令将删除所有在失败的安装中被装入的文件。 列出介质上所有可安装的软件 为了查看在一个特定的介质上有哪些可用的软件,使用如下的 installp 命令语法: installp { -l | -L } [ -LogFile ] [ -d Device ] [ -B ] [ -I ] [ -q ] [ -z BlockSize ] [ -O { [ s ] [ u ] } } ] 例如,为了列出在你的CD-ROM上的软件,输入: # installp -L -d /dev/cd0 第 67 页 4.6.2 使用 SMIT 进行软件维护 软件安装、卸装和维护任务也可以通过SMIT菜单执行。SMIT使用installp命令来执行这 些任务。 注意:SMIT 象 installp 命令一样将有关软件安装、删除和维护任务的记录存放在 /var/adm/sw/installp.log文件中,但SMIT还在 $HOME/smit.log 文件中存有更详尽的记录。 软件安装 为了安装软件产品: 1. 使用 SMIT 快速路径 smitty install_latest 屏幕显示如图 4-7 所示。 图 4-7 Install and Update from LATEST Available Software 菜单 2. 在INPUT device/directory for software域中输入安装设备名。屏幕显示如图 4-8 所示。 第 68 页 图 4-8 Install and Update from LATEST Available Software 菜单 – 更多显示 3. 在 SOFTWARE to install 域中,如果你知道要安装什么,可输入相应名字,或者按 F4 键 显示所有可用的软件清单。当选择好要安装的产品后按回车。 4. 建议你首先检验你想安装的软件是否满足所有的先决条件(prerequisite)和联合必要条 件(co-requisite)需求。比较好的办法是先将PREVIEW only?(install operation will NOT occur)域设置为 YES。这将为你提供一个详细的列表,告诉你安装是否会成功。 5. 建议你接受AUTOMATICALLY install requisite software?域的缺省值(缺省为 YES),和 EXTEND file systems if space needed?域的缺省值(缺省为YES)。如果你告诉installp不 要扩展文件系统,你的安装可能会失败。如果空间用尽,你将看到如下的一条错误消息: 0503-008 installp: There is not enough free disk space in file system /usr (506935 more 512-byte blocks are required).An attempt to extend this file system was unsuccessful.Make more space available,then retry this operation. 6. 按回车。 7. 当命令的状态变成 failed,则在命令执行结束时查看一下错误消息,如果有的话。即使命 令的状态报告为OK,建议你还是要查看一下smit.log文件,因为可能还有一些你想安装的文 件集,系统并没有尝试去安装。 提交被应用的更新 为了提交被应用的软件更新: 1. 使用 SMIT 快速路径 smitty install_commit 屏幕显示如图 4-9 所示。 图 4-9 Commit Applied Software Updates (Remove Saved Files) 菜单 2. 在要安装的软件(SOFTWARE name)域中,如果你知道要提交的软件的名字,则输入 对应名字,或者按 F4 显示所有可用的软件清单。当选择好要提交的产品后,按回车。 SOFTWARE name 域的值为 all 则将提交所有被安装到系统中的被应用的文件集。 3. 按回车。系统会报告软件准备被提交,提交软件,然后从 /usr/lpp/PackageName 目录中 删除拷贝。 拒绝被应用的更新 第 69 页 为了拒绝一个你安装了的维护更新: 1. 使用 SMIT 快速路径 smitty install_reject 屏幕显示如图 4-10 所示。 图 4-10 Reject Applied Software Updates (Use Previous Version) 菜单 2. 在 SOFTWARE name 域中按 F4 来选择你要拒绝的软件更新。所有处于 applied 状态的 软件更新将被列出。选择你想拒绝的更新,按回车。 删除被安装的软件 你可以使用SMIT快速路径删除被安装并被提交的软件: 1. smitty install_remove 屏幕显示如图 4-11 所示。 图 4-11 Remove Installed Software 菜单 2. 在SOFTWARE name域中按 F4以得到所有安装在你的系统中的软件的清单。按F7选择第 70 页 你想删除的软件,完成后按回车。 3. PREVIEW only? (remove operation will NOT occur) 域的值缺省为 yes。这样你可以预览 任何删除操作,在你真正执行删除前确认你的选择。 4. 一旦你确信你是需要删除所选的软件,将PREVIEW only? (remove operation will NOT occur)域置为no,并按回车。这将删除所有被你选择为要删除的软件。 4.7 维护可选的软件(应用更新) 用于修复产品中的问题的软件被称作更新(update)。所有软件产品都有一个版本号 (version number)和一个发行号(release number),以标识产品的发行级别(release level)。此外,产品更新又被分配了修改级别号(modification level number)和修复级别号 (fix level number),以标识更新级别(update level)。请参阅第??16页的第4.4节,“理 解维护级别”。 假设你的系统当前运行的是4.3.2.0,所有文件集均处于4.3.2.0维护级别。IBM 刚刚对 4.3.2.0系统发行了一个最新的维护级别。你必须将系统更新到最新的维护级别。 将系统更新到最新的维护级别的工作将涉及下面列出的一些操作步骤。 - 列出软件的维护级别 - 下载修复软件 - 显示并把所安装的软件更新到最新级别 4.7.1 列出软件的维护级别 lslpp 命令显示被安装的文件集或文件集更新的有关信息。lslpp命令最常用的标记如表 4-3中所列: 表 4-3 lslpp 的命令标记 标记 描述 -l 显示指定文件集的名字、最近的级别、状态以及描述。 -f 显示在安装指定文件集时被加入到系统中的文件的名字。 -h 显示指定文件集的安装和更新的历史信息。 -a 当与其他标记组合使用时,显示所有关于指定文件集的信息,但不能与 -f 标记一同使用。 为了查看你的文件集当前所在的维护级别,在命令行输入: lslpp -l 这将列出所有安装在你的系统中的软件并显示当前维护级别。输出看上去象下面这样: 第 71 页 为了列出安装一个特定文件集时所安装的单个文件,使用下面的命令: lslpp -f 例如,假设你想显示所有在安装bos.64bit文件集时安装的文件,可以输入: # lslpp -f bos.64bit Fileset File ---------------------------------------------------------------------------- Path:/usr/lib/objrepos bos.64bit 5.1.0.0 /usr/lib/methods/cfg64 /usr/ccs/bin/shlap /usr/ccs/bin/usla64 /usr/lib/drivers/syscalls64.ext /usr/ccs/bin/usla /usr/ccs/bin/shlap64 Path:/etc/objrepos bos.64bit 5.1.0.0 NONE 为了列出文件集的安装和更新的历史信息,使用下面的命令: lslpp -h 例如,假设你想看看bos.sysmgt.trace文件最近的更新是在什么时候,你可以输入: # lslpp -h bos.sysmgt.trace Fileset Level Action Status Date Time --------------------------------------------------------------------------------------------- Path: /usr/lib/objrepos bos.sysmgt.trace 4.3.3.0 COMMIT COMPLETE 08/04/01 11:00:28 4.3.3.11 COMMIT COMPLETE 08/04/01 17:00:13 Path:/etc/objrepos 第 72 页 bos.sysmgt.trace 4.3.3.0 COMMIT COMPLETE 06/15/00 09:57:33 4.3.3.11 COMMIT COMPLETE 06/16/00 11:19:14 4.7.2 下载修复软件 IBM 在Internet上提供了一个站点,你可以自由地从那里下载AIX相关的修复软件 (AIX-related fixes)。目前的匿名 FTP 服务器为 service.software.ibm.com。这个站点有多个 镜像,当你 FTP 到该站点上时都会被列出来。 为了帮助客户浏览和下载修复站点上所存放的修复软件,IBM 发行了一个可自由使用的 维护工具,叫做FixDist。FixDist 是一个被设计用来帮助客户选择和下载单个修复软件和任 何必要的修复软件的工具。 AIX 5L 的用户应该到 Web 站点上查找一下适用于这个版本的专门工具。 FixDist 和用户指南均可通过匿名FTP到上面列出的服务器或其镜像站点而获得。这个 站点也可以通过下面的URL访问: http://service.software.ibm.com 一旦在你的AIX系统中安装并建立了FixDist工具,下面的步骤就是下载你需要的更新。 在命令行可以输入: 1. fixdist 屏幕显示如图 4-12 所示。 图 4-12 fixdist - Step 1 在这个例子中,你选择下载所有的 PTFs 到 /ptf 文件系统中。可能在你的计算环境中同 时运行着多个不同发行版本的 AIX。在这种情况下,建议你将更新下载到不同的目录中,并 根据对应的发行级别进行命名。在这个例子中,将 Target Directory 域设置为 /ptf 目录。 2. 选择 Generally Available Fixes 列出 IBM 提供了哪些可用的更新。 屏幕显示如图 4-13 所示。 第 73 页 图 4-13 fixdist - Step 2 3. 选择你想要应用到你的系统中的更新或修复,点击它的名字。在这个例子中,因为你想 应用 AIX Version 4.3.1.0 的最新更新,因此选择“LATEST AIX 4.3.1 UPDATES… ”。 4. 选择了你所需要的更新之后,你可以选择预览将要下载的内容,预计将被下载的映像的 大小,以及其他特征。将所有你需要的修复下载到一个文件系统中会是一个较好的实践。 FixDist 将所有修复软件下载到FixDist进程启动时所给定的目录中,如图4-12中所示。 所有 文件是以BFF格式下载的。BFF代表Backup File Format,意味着文件是使用AIX backup命 令创建的,可以使用AIX restore命令来阅读。除 .bff 文件之外,.info 文件也被下载,它对文 件集的用途和文件集所作的修复提供了简要的概括。 如果你频繁地应用更新并将所有更新存到同一个目录中,那么 .toc 文件可能会过时。 installp哈达 命令要使用 .toc 文件来执行安装。为了保证在你实际执行安装时所安装的 确实是正确的和最新的软件,建议重建 .toc 文件。可使用 inutoc 命令来做。inutoc命令常用 的语法为: inutoc [ Directory name ] inutoc 命令为具有备份格式的文件安装映像所在的目录创建了一个 .toc 文件。如果当 前不存在 .toc 文件,则 installp 命令或安装脚本会自动执行该命令。 4.7.3 显示被安装的软件并更新到最新级别 一旦你下载了所有的修复软件到 /ptf 目录中,下面的步骤就是安装它们并将你的系统升 级到最新的维护级别。本节将讨论下面的过程: - 显示单个修复软件(instfix 命令) - 安装单个 APAR 的修复软件 - 把所有文件集更新到最新级别 显示单个修复软件(instfix 命令) 你可以按照第??17页,第 4.7.2 小节,“下载更新软件”中所给的相同步骤来使用 FixDist下载单个修复软件。 为了确定一个修复软件是否已经安装在你的系统中或者为了安装一个修复软件,使用 instfix 命令。instfix 命令的常用语法如下: 第 74 页 instfix [ -T ] [ -s String ] [ -S ] [ -k Keyword | -f File ] [ -p ] [ -d Device ] [ -i [ -c ] [ -q ] [ -t Type ] [ -v ] [ -F ] ] [ -a ] instfix 命令常用的标记如表 4-4 所示。 表 4-4 instfix 的命令标记 标记 描述 -a 显示与一个修复软件相关的说明文本( symptom text)。可以与 –f,-i 和 -k 标记一同使用。 -d Devi ce 指定输入设备。除 -i 和 -a 之外的所有标记均需要该标记。 -f FileName 指定包含关键词或修复软件名的输入文件 FileName。使用 -T 标记可为 -f 标记产生适当 的输入文件格式。 -i 显示修复或关键词是否已被安装。 -k Keyword 指定要安装的 APAR 号或关键词。可输入多个关键词。使用标记输入的关键词列表必须 用引号包围起来,并用空格分隔。 -s String 在介质上寻找和显示包含指定字串的修复软件。 -T 显示介质上的修复软件清单。 -v 与 -i 标记一同使用,指定冗长模式。显示与一个修复或关键词有关的每个文件集的相关 信息。 instfix 命令允许你在不知道除了授权的程序分析报告(APAR)号码或其他可标识修复 软件的唯一关键词以外的任何信息的情况下安装一个或一组修复软件。一个修复软件可以是 一个软件集或多个文件集。修复信息被组织在安装介质的目录文件(TOC)中。安装完修 复软件后,修复信息被保存在系统的一个修复数据库中。 为了列出在 /dev/cd0 下的一个CD-ROM上的修复软件,输入下面的命令 # instfix -T -d /dev/cd0 IX75893 为了确定是否 APAR IX75893 已被安装到系统中,输入下面的命令: # instfix -ik IX75893 Not all filesets for IX75893 were found. 为了检查关于APAR IX75893的信息以及它做了些什么,输入下面的命令: # instfix -aik IX75893 IX75893 Abstract: Process memory is made read-only unnecessarily IX75893 Symptom Text: Resource handler routines not being able to store to process memory when a process is dumping core. ---------------------------- Not all filesets for IX75893 were found. 为了列出使用instfix命令在你的系统中安装了什么维护级别,输入下面的命令: # instfix -i | grep ML All filesets for AIX43ML were found. All filesets for 4.3.0.0_AIX_ML were found. Not all filesets for 4.3.1.0_AIX_ML were found. 为了从 /dev/cd0 安装 APAR IX75893,输入下面的命令: # instfix -k IX75893 -d /dev/cd0 注意:当 instfix 被从命令行运行时,该命令缺省使用标准输出( stdout)和标准错误( stderr) 提供报告。如果你想创建一个安装报告,则需要重定向输出。例如: # instfix -aik IX75893 >/tmp/instfix.out 2>/tmp/instfix.err 第 75 页 你也可以使用 SMIT 来确定在你的系统中安装了什么修复软件。使用SMIT快速路径: 1. smitty show_apar_stat 屏幕显示如图 4-14 所示。 图 4-14 Show Fix (APAR) Installation Status 菜单 2. 在 FIX ID 域按 F4 得到安装在系统中的所有修复的列表。该命令的输出与 instfix -iv命令 相似。 安装单个 APAR 修复软件 为使用 SMIT 安装修复,使用 SMIT 快速路径: 1. smitty instfix 或 smitty update_by_fix 2. 在 INPUT device/directory for the software 域中输入要安装的修复软件所在的设备名(或 你把修复软件下载到你的系统中的目录名),并按回车。屏幕显示如图4-15所示。 第 76 页 图 4-15 Update Software by Fix (APAR) 菜单 3. 在 FIXES to Install 域中,按 F4 得到在介质上可用的修复软件的清单并选择你想要安装 的修复软件。 4. 按回车。 系统将更新你所选择的文件集的维护级别,完成后你就成功地更新了软件的维护级别。 更新所有文件集到最新级别 为了安装 IBM 提供的所有新的修复软件,使用SMIT快速路径: 1. smitty update_all 屏幕显示如图 4-16 所示。 图 4-16 Update Installed Software to Latest Level (Update All) 菜单 2. 在 INPUT device/directory for software 域中输入安装设备名(或者如果你的修复软件存 放在硬盘上则输入目录名)。 3. 按回车。 屏幕显示如图 4-17 所示。 第 77 页 图 4-17 Update Installed Software to Latest Level (Update All) 菜单 – 更多显示 4. 最好按一下 Tab 键将 PREVIEW only? (update operation will NOT occur) 域设置成 YES。 预览选项会演习一遍你想执行的任务,并向你报告当实际安装时可能遇到的任何故障。这将 确保你的安装不会失败。 一旦你确认所有先决条件均被满足,你可以开始实际的安装。该过程将把你的软件更新 到最新的维护级别。 为了查看你的软件的新维护级别,在命令行输入: # lslpp -l 它将显示包括你刚更新的文件集在内的所有文件集的最新维护级别。 4.8 在硬盘上创建安装映像 可安装的映像文件(或安装软件包)可以被拷贝到硬盘上,用于以后的安装。这些映像 文件将被从你的安装介质(磁带或软盘)拷贝到磁盘上的一个目录中,这样以后就可以使用 磁盘目录作为输入设备来进行安装。这些文件将被拷贝到名为 /usr/sys/inst.images 的目录 中。 为了在硬盘上创建安装映像,使用SMIT快速路径: 1. smitty bffcreate 屏幕显示如图 4-18 所示。 第 78 页 图 4-18 Copy Software to Hard Disk for Future Installation 菜单 2. 在 INPUT device/directory for software 域中,输入要被拷贝的映像所在的源设备或目录 名并按回车。 3. 在下一个屏幕中,在 Software package to copy 域中按 F4 得到介质上可用的软件的清单。 选择你想拷贝到硬盘上的安装映像的清单,并按回车。 4. 所有选定的映像将被拷贝到硬盘的 /usr/sys/inst.images 目录中,并且 /usr/sys/inst.images/.toc 文件被更新。 在将来的安装中,在 INPUT device / directory for software 域中输入 /usr/sys/inst.images 目录。如果由于某些原因你的 .toc 文件被破坏了,你会在SMIT或命令行中收到错误消息, 就看你正在使用哪个工具了,输出如: 0503-005 The format of .toc file is invalid 在这种情况下,只需简单地使用 inutoc /usr/sys/inst.images/.toc 命令重建你的 .toc 文件。 这种创建映像的方式在下面的情况中非常有帮助,即你想安装的软件在其他介质上存有 联合必要条件(co-requisites),而你的安装进程不允许你更换当前正在处理的介质。在这 种情况下,你的安装会失败;因此建议你将所有的先决条件和联合必要条件放在一个目录中 后再执行安装。 为了得到在其他介质上的联合必要条件,使用 smitty bffcreate 快速路径从第一个 CD-ROM中拷贝所需的文件集到硬盘上的/usr/sys/inst.images目录中,然后使用smitty bffcreate快速路径从其他的中拷贝所需的文件集到硬盘上的/usr/sys/inst.images目录中。当 所有必要的文件集全被拷贝到硬盘中后,再使用installp命令或smitty install_latest快速路径 安装软件。因为系统只需读 /usr/sys/inst.images/.toc 文件以进行安装,而且所有的文件集 都存在硬盘本地,所以系统不会再向你要求一个CD-ROM或通知安装失败了。 4.9 备用磁盘安装(Alternate disk installation) 备用磁盘安装在 AIX Version 4.3 及以后版本中可用,它允许在运行着的系统进行系统安 装,这样会大大减少由安装或更新引起的停机时间。它也为管理系统升级提供了很大的灵活 性,因为系统安装可以花去很长的时间,而现有版本的系统仍在运行着。切换到新的版本只第 79 页 需要做一个简单的重启。 4.9.1 必要的文件集 备用磁盘安装功能要求一些文件集预先被安装好后才能使用。如果不使用网络安装管理 (Network Install Management,NIM), bos.alt_disk_install.boot_images 文件集必须被预 先安装好后才能进行备用磁盘的mksysb安装。bos.alt_disk_install.rte 文件集必须被安装好 后才能进行复制根卷组(clone rootvg)。 一旦你安装好这些文件集,你就可以在Software Installation and Maintenance菜单中使 用alternate disk installation 功能了。使用SMIT快速路径: smitty alt_install 屏幕显示如图 4-19 所示。 图 4-19 Alternate Disk Installation 菜单 备用磁盘安装可以有两种方式: - 将当前运行着的 rootvg 复制到一个备用磁盘上。 - 在另一个磁盘上安装 mksysb 映像。 4.9.2 备用磁盘复制 rootvg 复制 rootvg 到一个备用磁盘上具有很多优点。 - 当发生灾难时有一个可用的在线备份。为保持一个在线的备份,要求在系统中使用额外的 磁盘。 - 应用新的维护级别或更新。在备用磁盘上制作 rootvg 的拷贝,然后在拷贝上进行更新。最 后,更新引导列表以从新的设备引导。系统在这个过程中没有中断过运行。当重启时,系统 就会从刚更新的rootvg引导以进行测试。如果更新引起了问题,只要修改引导列表( bootlist) 并重启系统,就可以恢复使用旧的rootvg。 为了将你的 rootvg 复制到新的磁盘,执行一下过程: 第 80 页 1. 使用 SMIT 快速路径 smitty alt_clone 屏幕显示如图 4-20 所示。 图 4-20 Clone the rootvg to an Alternate Disk 菜单 2. 在 Target Disk(s) to install 域中,输入你想用于制作复本的磁盘名。目标磁盘应该是一个 不属于任何卷组的独立磁盘。此外,SSA(串行存储结构)的磁盘不能用作目标磁盘。 3. Phases to execute 域缺省为 all。现在接受缺省值。 4. 在Exclude list 域,你可以创建一个文件,它将包含所有你不想拷贝到复制系统中的文件 和目录的名字。 5. 在 Bundle to install 和 Fixes to Install 域中指定你想安装的任何附加软件束或文件集以及 修复软件的名字。使用这些域使允许你把服务作为复制进程的一部分进行安装。 6. 如果你选择了安装任何附加的软件,在Directory or Device with images域中指定输入设 备的名字。 7. 如果你希望在下一次系统启动时让你的系统从备用 rootvg 上启动,将 Set the bootlist to boot from this disk on next boot 为 YES。 8. 按回车。 当系统转换到新的磁盘时,SMIT会显示下面的输出序列: Calling mkszfile to create new /image.data file. Checking disk sizes Creating cloned rootvg volume group and associated logical volumes Creating Logical volume alt_hd5 Creating Logical volume alt_hd6 Creating Logical volume alt_hd8 Creating Logical volume alt_hd4 Creating Logical volume alt_hd2 Creating Logical volume alt_hd9var Creating Logical volume alt_hd3 Creating Logical volume alt_hd1 Creating /alt_inst /file system 第 81 页 Creating /alt_inst/usr file system Creating /alt_inst/var file system Creating /alt_inst/tmp file system Creating /alt_inst/home file system Generating a list of files for backup and restore into the alternate file system ... Backing up the rootvg files and restoring them to the alternate File Systems Modifying ODM on cloned disk Building boot image on cloned disk Forced umount of /alt_inst/home Forced umount of /alt_inst/tmp Forced umount of /alt_inst/var Forced umount of /alt_inst/usr Forced umount of /alt_inst/ Changing logical volume names in Volume Group Descriptor Area Fixing Logical Volume control blocks Fixing File system super blocks Bootlist is set to the bootdisk:hdisk1 缺省情况下,引导列表将被设置成下次从新复制的rootvg引导。这将使用 alt_disk_install 命令完成对 rootvg 的复制。 4.9.3 备用 mksysb 安装(Alternate mksysb install) 备用 mksysb 安装包括将已被从另一个系统创建的一个mksysb 映像安装到目标系统的 一个备用磁盘上。mksysb 映像(AIX Version 4.3 或更高版本) 可以在与目标系统具有相 同硬件配置的系统上创建,也可以在为不同机器类型或平台或不同设备安装了所有设备和内 核支持的系统上创建。 为了创建备用 mksysb 系统,使用 SMIT 快速路径: 1. smitty alt_mksysb 屏幕显示如图 4-21 所示。 第 82 页 图 4-21 Install mksysb on an Alternate Disk 菜单 2. 在 Target Disk(s) to install 域中输入你想在其上安装mksysb的磁盘的名字。 3. 在 Device or image name 域中输入你想从其上恢复mksysb的设备或映像的名字。 4. 按回车。 一旦 mksysb 映像被恢复到新磁盘上,系统将被从新的备用rootvg上重新引导。这样完成 了你的备用mksysb安装。 4.10 测验 下面的认证评测问题将帮助检验你对本章内容的理解。 1. An AIX installation has just completed. Maintenance Level 6 has been applied to the BOS. Which command will show all installed maintenance levels concurrently? A. oslevel -a B. lslpp -l |grep AIX C. smitty show_apar_stat D. instfix -ik |grep AIX 2. How would an administrator verify that the system has all required prerequisite fixes prior to installing a software fix? A. Use the lsprereq command. B. Use installp with the preview option. C. View the .toc file in the root directory. D. Use the inutoc command to update the .toc file. 3. It has been determined that fix IX39714 needs to be applied to a server as soon as possible. How can this fix be obtained if the system has Internet connectivity? A. Use the fixdist utility to download the fix. 第 83 页 B. FTP the fix from fixes.pseries.ibm.com. C. Send an E-mail to fixes.pseries.ibm.com with IX39714 in the subject line. D. Use the Web-Based System Manager to download the fix. 下面是作者增加的一些问题,以进一步检查你对本章内容的理解。 1. During the first reboot after the AIX 5L Version 5.1 operating system installation process has completed, what is the first screen the administrator will see? A. Login prompt B. Root shell prompt C. Installation Assistant D. Configuration Assistant 2. Which of the following commands lists the current fix level of the bos.net.nfs.client fileset? A. lsfs bos.net.nfs.client B. lslpp -l bos.net.nfs.client C. lppchk -l bos.net.nfs.client D. installp -ver bos.net.nfs.client 3. Which of the following commands can be used to verify the success of an operating system upgrade? A. oslevel B. lslpp -h bos.obj C. what_fileset -v D. lsattr -Vl bos.rte 4. If bos.up displays on your machine as being at 4.3.1.7, what is the modification level? A. 1 B. 3 C. 4 D. 7 4.10.1 答案 下面是对评测问题的回答。 1. D 2. B 3. A 下面是对附加问题的回答。 1. D 2. B 3. A 4. A 第 84 页 4.11 练习 以下的练习是为自学提供的例题。它们将帮助你加深对本章的理解。 1. 在一个系统上试图同时运行 installp 命令两次,观察所发生的事情。 2. 你刚安装了一个新发行版的操作系统,请确定你的系统的操作系统级别。 3. 请解释什么是 fileset,package,bundle? 4. 你的 root 文件系统表现异常;因此,你决定进行一次保留安装。但是,你不想覆盖你的 /var文件系统。怎样做才能保留它?执行保留安装并象这样保存你的/var文件系统。 5. 你的安装由于先决条件不足而反复失败。如何在SMIT中使用预览功能得到关于所有先决 条件的信息。 6. 有什么方式可用来将你的系统升级到最新的发行/维护级别,同时最小化停机时间? 7. 如果两个安装介质的先决条件分别指向对方,最好用什么办法来完成安装而不会产生错 误? 8. 安装基本操作系统有哪些不同的安装方式? 9. 使用 installation assistant 设置你的系统的时间和分页大小。 10. 更新你的系统,将所有文件集升级到最新修复级别。 11. IBM 刚宣布了一个新的修复软件包。从IBM FTP站点获得该 fixpack 并应用修复,将你 的系统更新到最新的修复级别。 12. 确定你的系统的最新修复级别。 13. 为一个 licensed program,filesets 等找到最新的修复级别。 14. 你如何使用 installp 命令,可以使用哪些不同选项? 15. 你刚下载了最新的IBM修复软件,但是在你进入生产运行之前,你想试运行安装了最新 修复软件包的系统。使用备用磁盘安装为你的系统制作一个复本,并考验安装了修复软件包 之后的改变。 16. 使用installp命令找出你有哪些不同的文件集以及它们的状态。接着,提交任何被应用的 软件,并删除任何你认为不再需要的文件集。应用一个修复软件包然后拒绝被这个fixpack 所作的改变。 17. 下载单个修复软件并使用SMIT安装。 18. 从你的安装介质将软件包下载到磁盘上,为 /usr/sys/inst.images 目录创建一个新的目录 文件,使用 SMIT 安装该软件包。 第 85 页 第五章 对象数据管理器(Object Data Manager) ODM 有许多用途。它的主要功能是维护RISC System/6000 的配置,相关的设备,以 及重要产品数据库。此外,它与AIX以前所使用的ASCII文件相比,提供了更多强大的,安 全的,而且可共享的资源。 ODM管理的系统数据包括: - 设备配置信息 - SMIT的显示信息(菜单,选择器和对话框) - 安装和更新操作的重要产品数据 - 通信配置信息 - 系统资源信息 多数系统对象类(system object classes)和对象( objects)被存在 /usr/lib/objrepos 目 录中;而ODM信息被存在下面三个目录中: - /usr/lib/objrepos - /usr/share/lib/objrepos - /etc/objrepos ODM的基本部件为对象类和对象。为了管理对象类和对象,你要使用ODM命令和子程 序。 特别是,你要使用这些接口的创建和增加功能为存储和管理你自己的数据而建立对象类 和对象。表5-1是对ODM概念的一个总结。 表 5-1 ODM 概念 项目 定义 类似于 类似于 ODM Object 被定义的一个ODM对象类中的 一个成员。是需要被管理和存储 数据的一个实体。 一个数组结构(array structure)中的一个元素 (element)。 一个固定格式的记录。 Object Class 有相同定义的对象的一个存储 集合。 C语言结构( C-Language structures )的一个数组 (array)。 一个由固定格式记录构 成的文件。 ODM Database ODM对象类的一个存储集合。 数组结构的集合。 包含文件的目录。 每个对象类包含一个或多个描述词(descriptors)。取值(values)与被加入到对象类 中时的对象的描述词有关。对象的描述词和相关的取值可以通过ODM工具找到并修改。 在ODM的设备配置区中包含了所有被配置的物理卷、卷组和逻辑卷的相关信息。这些 信息是对VGDA(卷组描述区)中信息的镜像。例如,导入(import)一个VGDA的过程包 括把被导入卷组的VGDA数据拷贝到ODM中。当一个卷组被导出( export)时,保存在ODM 中的有关该卷组的数据被从ODM数据库中删除。 5.1 ODM 命令 你可以使用ODM来创建(create),增加(add),修改(change),获取(retrieve), 显示(display),以及删除(delete)对象和对象类。ODM命令可从命令行输入。 注意:ODM命令应该仅在传统的系统维护方式如SMIT无效时才能被使用。对于一个刚入门第 86 页 的系统管理员,建议在使用这些命令前要多加阅读和练习。对这些命令使用不正确可能导致 系统不可用。这里描述ODM命令只是作为介绍性用途。 这些命令为: odmadd 把对象加入到对象类中。odmadd 命令使用一个ASCII stanza 文件作为输入, 并从该stanza文件中找到的对象值输出到相应的对象类。 odmchange 修改一个指定的对象类中的指定对象的属性。 odmcreate 创建空的对象类。odmcreate 命令使用一个描述对象类的ASCII 文件作为输入, 并生成C语言文件 .h 和 .c,应用程序可以使用它们来访问这些对象类中的对 象。 odmdelete 从一个对象类中删除对象。 odmdrop 删除整个对象类。 odmget 从对象类中撷取对象并把对象的信息置成odmadd命令的格式。 odmshow 显示对一个对象类的描述。odmshow 命令使用一个对象类名作为输入,并把 对象类信息置成odmcreate 命令的格式。 5.2 ODM 数据库的对象类举例 下面是定制设备数据库(CuDv)中对象类定义的一个例子: 5.3 测验 下面是作者提出的一些问题,以进一步检查你对本章内容的理解。 1. A system administrator wishes to determine if a newly configured tape drive is correctly added to the ODM database. Which command would the administrator use? A. odmshow B. odmadd C. odmget D. odmcreate 第 87 页 2. The ODM is located in: A. /etc/objrepos B. /usr/lib/objrepos C. /usr/share/lib/objrepos D. All of the above 5.3.1 答案 1. C 2. D 5.4 练习 以下的练习是为自学提供的例题。它们将帮助你加深对本章的理解。 1. 列出ODM的用途。 2. 使用正确的ODM 工具确定预定义设备数据库(PdDv)的格式。 第 88 页 第六章 存储管理,LVM 和文件系统 在本章中将包含存储管理,逻辑卷管理(Logical Volume Management,LVM),以及 文件系统支持等主题。我们把一些需要理解的基本概念划分成了独立的小节。 6.1 逻辑卷存储(Logical volume storage)概念 五个基本的逻辑存储概念为:物理卷(physical volumes),卷组(volume groups), 物理分区( physical partitions),逻辑卷( logical volumes),以及逻辑分区( logical partitions)。 这些概念之间的关系如图6-1所示: 图 6-1 逻辑存储概念之间的关系 下面是有关图 6-1的一些解释: - 每个独立的固定磁盘驱动器被称为一个物理卷(physical volume,PV),并具有一个名字 (例如:hdisk0,hdisk1或 hdisk2)。 - 所有物理卷属于一个名为rootvg的卷组(volume group,VG)。 - 一个卷组中的所有物理卷被分成多个具有相同大小的物理分区( physical partitions,PPs)。 - 在每个卷组中,定义了一个或多个逻辑卷(logical volumes,LVs)。逻辑卷是位于物理卷 上的信息的组合。逻辑卷上的数据在用户看起来是连续的,但实际在物理卷上可以是不连续 的。 - 每个逻辑卷包含一个或多个逻辑分区(logical partitions,LPs)。每个逻辑分区对应至少一 个物理分区。如果为逻辑卷定义了镜像,需要分配更多的物理分区来存放每个逻辑分区的附 加拷贝。 - 逻辑卷可以为多种系统用途服务(如页面调度),但是每个存放普通系统、用户数据或程 序的逻辑卷都包含一个日志文件系统(journaled file system,JFS)。每个 JFS 中包含一个 数据块池,由4KB页面大小的数据块构成(即大小为(1~N)* 4K)。 AIX Version 4.1 及以第 89 页 后版本中,一个给定的文件系统的碎块可以小于 4KB(512 bytes,1 KB,2 KB)。 系统安装结束以后,在系统中创建了一个卷组(rootvg卷组),它由启动系统所需的一 组基本的逻辑卷构成,同时系统中也包含了你在安装脚本中指定的任何其他卷组。 6.2 逻辑卷管理器(Logical Volume Manager) 允许你建立和控制逻辑卷存储的操作系统命令集、程序库子程序(library subroutines) 及其他工具都称为逻辑卷管理器(Logical Volume Manager,LVM)。 LVM通过在实际物理 磁盘与一个更简单灵活的存储空间逻辑视图之间进行数据映射来控制磁盘资源。 6.2.1 LVM 配置数据 描述 LVM 部件的数据并非都存在一个地方。你必须了解这些关于卷组、逻辑卷、物理 卷的描述数据是存放在多个地方,这一点非常重要。 对象数据管理器(Object Data Manager,ODM)数据库 ODM 数据库是多数的AIX系统配置数据所存放的地方。ODM数据库包含所有被配置的 物理卷、卷组和逻辑卷的相关信息。这些信息镜像了存放在VGDA(卷组描述区)中的信息。 例如,导入(import)一个VGDA的过程包括把被导入卷组的VGDA数据拷贝到ODM中。当 一个卷组被导出(export)时,保存在ODM中的有关该卷组的数据被从ODM数据库中删除。 ODM 数据还镜像了存放在逻辑卷控制块(Logical Volume Control Block)中的信息。 卷组描述区(Volume Group Descriptor Area,VGDA) VGDA位于每个物理卷的开始位置,包含描述该物理卷所属的卷组中的所有逻辑卷和所 有物理卷的信息。VGDA可被几乎所有的LVM命令更新。VGDA使每个卷组自描述 (self-describing)。 AIX系统可以读取一块磁盘上的VGDA,并从中确定整个卷组中包含的 物理卷和逻辑卷。 每块磁盘至少包含一个 VGDA。这在执行激活(vary on)时非常重要。VGDAs 中的时 标( time stamps)被用于确定哪些VGDA正确反映了卷组的状态。VGDAs 可能会脱离同步, 例如,当一个包含四块磁盘的卷组中有一块磁盘出故障时。那块磁盘上的VGDA 在不工作 时是不能被更新的。因此,当磁盘恢复工作时,你需要有一种方法来更新这个VGDA,这就 是vary on进程要做的事情。 当磁盘被指定为一个物理卷时(使用mkdev命令), VGDA 同时被分配。这里只是在磁 盘启用时为VGDA保留了一个空间。当物理卷被指派到一个卷组中时(使用mkvg或extendvg 命令),实际的卷组信息才被存入VGDA中。当一个物理卷被从卷组中删除时(使用reducevg 命令),卷组信息也被从其VGDA上删除。 卷组状态区(Volume Group Status Area,VGSA) VGSA 包含有关物理分区和物理卷的状态信息。例如,VGSA知道一个卷组中的某个物 理卷是否不可用。 卷组描述区和卷组状态区均具有起始时标和结束时标,它们都非常重要。这些时标使 LVM在 vary on 时能够识别 VGDA 和 VGSA 的最近的拷贝。 LVM 要求所选的VGDA的时标与所选的VGSA的时标一致。 逻辑卷控制块(Logical Volume Control Block,LVCB) LVCB 位于每个逻辑卷的开始位置。它包含逻辑卷的相关信息,只使用几百个字节。 下面举例说明如何使用getlvcb命令来显示存放在逻辑卷hd2的LVCB中的信息: 第 90 页 # getlvcb -TA hd2 AIX LVCB intrapolicy = c copies = 1 interpolicy = m lvid = 00011187ca9acd3a.7 lvname = hd2 label = /usr machine id = 111873000 number lps = 72 relocatable = y strict = y type = jfs upperbound = 32 fs = log=/dev/hd8:mount=automatic:type=bootfs:vol=/usr:free=false time created = Tue Jul 27 13:38:45 1993 time modified = Tue Jul 27 10:58:14 1993 6.2.2 磁盘定额(Disk quorum) 一个卷组中的每块物理磁盘至少具有一个 VGDA / VGSA。包含在单块磁盘上的 VGDAs 的数量根据卷组中磁盘总数的不同而不同,如表 6-1 所示。 表 6-1 VGDA 分配 条件 VGDA 分配 卷组包含一个 PV 一块磁盘上有两个 VGDAs 。 卷组包含两个 PVs 第一块磁盘上有两个 VGDAs ,第二块磁盘上有一个 VGDA。 卷组包含三个以上 PVs 每块磁盘上有一个 VGDAs 。 quorum(定额)是这样一种状态:在一个卷组中有51%以上的物理卷可以被访问。 quorum 即指要求处于活动状态的VGDA和VGSA的数量。quorum 确保当发生磁盘故障时数 据的完整性。 当一个卷组被建立在单个磁盘上时,初始有两个 VGDA/VGSA 区域存在于磁盘上。如 果一个卷组包含两块磁盘,其中一块磁盘仍然具有两个VGDA/VGSA 区域,而另一块磁盘 只有一个 VGDA/VGSA。当卷组中包含三块以上磁盘时,每块磁盘只被分配一个 VGDA/VGSA。 图 6-2 显示了当足够数额的磁盘和它们的 VGDA/VGSA 区域不可用而导致了 51%以上 的多数 VGDA/VGSA 区域不再存在时,quorum 被失去。 第 91 页 图 6-2 磁盘定额 一旦失去了 quorum,卷组将自行关闭(vary off),这样磁盘就不能再被LVM访问。当 发生物理故障时,这样做可防止在该卷组上发生更多的磁盘 I/O 而导致数据丢失或误以为数 据被写入磁盘。此外,vary off 引起的另一个结果是,在错误日志中通知用户发生了硬件错 误,需要执行维护工作。 这将影响到当你想使用磁盘镜像来确保高可用性时的情况。在一个双磁盘镜像的系统 中,如果第一块磁盘出错,你就会失去66%的VGDAs,则整个卷组不可用。这样镜像的作 用则失去意义。因此,当需要作镜像时,强烈推荐采用三个以上(通常为奇数个)的磁盘单 元,这样才可能提供更高程度的可用性。 注意:你可以关闭卷组上的磁盘定额保护机制。关闭定额保护将允许一个卷组即使在quorum 或半数以上的VGDAs不可用时还能保持在线。这样在前面描述的情形下,卷组仍然能够保 持在线。这个功能虽然可以提供更小开销的镜像解决方案,但是却带来了数据丢失的风险, 因为当磁盘出错后,虽然数据仍可被访问,但是不再被镜像。 6.2.3 磁盘镜像(Disk mirroring) 磁盘镜像是一个逻辑卷上的每个逻辑分区与两个或三个物理分区之间的关联。当数据被 写到逻辑卷中时,同时也被写到与该逻辑分区相关联的所有物理分区上。因此,数据的镜像 增加了数据的可用性。AIX和逻辑卷管理器在逻辑卷级别提供了磁盘镜像机制。如果建立了 镜像功能,这可以在创建一个逻辑卷时进行。 mklv 命令允许你为每个逻辑卷选择一个或两个附加拷贝。也可以使用mklvcopy命令为 一个已经存在的逻辑卷增加镜像。 以下与镜像有关的因素能够进一步提高数据的可用性: - 数据的拷贝数量:三份拷贝比两份拷贝更可靠。 - 拷贝的位置:将一个逻辑分区的多个拷贝分布在不同的物理卷上比将所有拷贝分布在同一 个物理卷上更可靠。因为磁盘子系统最常见的一种错误模式就是一块物理磁盘的丢失。拷贝 也可以分布在不同的磁盘适配器上以进一步加强故障隔离。 mirrorvg 命令 mirrorvg 命令对一个给定卷组的所有逻辑卷作镜像。这个功能同样也可以手工地实现, 如果你为卷组中的每个逻辑卷分别单独运行mklvcopy命令的话。与使用mklvcopy一样,要第 92 页 被进行数据镜像的目标物理驱动器必须已经是卷组的成员。这个命令只适用于 AIX Version 4.2.1 或更高版本。 下面是 mirrovg 命令的语法: mirrorvg [ -S | -s ] [ -Q ] [-c Copies[ -m ] VolumeGroup [PhysicalVolume .. ] mirrorvg 缺省时试图将逻辑卷镜像到一个卷组的所有磁盘上。mirrorvg 命令使用要被 镜像的逻辑卷的缺省设置来镜像该逻辑卷。如果你想违反镜像的严格规定或想影响创建镜像 的策略,你必须使用mklvcopy命令对所有逻辑卷执行手工镜像。 注意:要完成mirrorvg 命令可能需要花非常多的时间,其原因包括要执行复杂的错误检查, 卷组中需要镜像的逻辑卷的数量较多,同步刚被镜像的逻辑卷需要的时间较长,等等。 另外,你也可以使用SMIT快速路径命令 smitty mirrorvg 来执行卷组的镜像。 下面举例说明了mirrorvg命令的使用。 - 为了对一个卷组作三重镜像,运行下面的命令: mirrorvg -c 3 workvg 这样 workvg 中的逻辑卷的逻辑分区就有了三份拷贝。 - 为了对rootvg提供缺省镜像,运行下面的命令: mirrorvg rootvg rootvg 卷组现在有了两份数据拷贝。 注意:如果你试图将一块磁盘放回原来的系统,而这块磁盘曾被从卷组中删除,被更新过, 然后又被放回来,那么可能会发生问题。你没有办法控制应该用数据的哪一份拷贝来重新 同步另一份拷贝。 如果当磁盘在你的备份系统中时有任何 LVM 信息发生了变化,这些变化将不会被你 的主系统所知,即使使用该备份来重新同步主磁盘也不行。LVM 的变化包括:创建、删 除或扩展任何文件系统、分页空间和其他逻辑卷。 - 为了从一个镜像的卷组中替换掉一个失效的磁盘驱动器,运行下面的命令: unmirrorvg workvg hdisk7 reducevg workvg hdisk7 rmdev -l hdisk7 -d 用一块新磁盘替换失效的磁盘,将其命名为hdisk7,执行下面的命令: extendvg workvg hdisk7 mirrorvg workvg 注意:在这个例子中,缺省情况下 mirrorvg 将试图为 workvg 中的逻辑卷创建两个拷贝。 它也试图在被替换的磁盘驱动器上创建新的镜像。但是,如果原始系统是三重镜像的,就 不会有新的镜像被创建到hdisk7上,因为逻辑卷的其他拷贝已经存在。 - 下面的命令将同步新创建的镜像: mirrorvg -S -c 3 workvg -c 标记指定在 mirrorvg 命令执行完成后每个逻辑卷必须具有的最小的拷贝个数。-S 标记立即返回mirrorvg命令,并对卷组执行一个后台syncvg。当镜像被同步时没有任何显 示,但是一旦完成它们就立即被系统使用。 - 为了创建一个精确映射的卷组,运行下面的命令: mirrorvg -m datavg hdisk2 hdisk3 -m 标记允许以原始拷贝中精确的物理分区顺序进行逻辑卷的镜像。 Rootvg 镜像 第 93 页 当 rootvg 镜像完成后,下面三个任务必须被执行: 1. 运行 bosboot 命令。 bosboot 命令从一个 RAM(Random Access Memory)磁盘文件系统和内核(kernel) 创建一个引导文件(boot image)。 bosboot 命令需要被用来定制新镜像的驱动器的bootrec。 2. 运行 bootlist 命令。 bosboot 命令总是保存磁盘的设备配置数据。它不更新NVRAM(nonvolatile random access memory)中的引导设备列表。NVRAM列表可以使用bootlist命令修改。 3. 重启系统。 最后,mirrorv 命令的缺省操作是关闭 quorum。为了关闭rootvg卷组上的quorum,必 须重启系统。 注意:如果bosboot命令创建引导磁盘时失败,不要重启机器。应当把问题解决之后再运行 bosboot命令至成功完成。bosboot 命令需要在/tmp文件系统和目标映像将存在的文件系统中 使用一些空间,如果有这样一个映像。 非rootvg 镜像 当一个非rootvg 卷组被镜像时,quorum 状态是不被激活的。为了使quorum的不激活 状态生效,所有被打开的逻辑卷必须被关闭。然后 vary off 并 vary on 卷组以使改变生效。 如果没有对卷组执行 vary on,即使镜像工作正常,quorum 的改变也不会起作用。 Rootvg 与 非rootvg 镜像 系统DUMP(用于记载系统非正常宕机时的现场即时信息,以用于分析原因)设备(主 设备 /dev/hd6 和从设备 /dev/sysdumpnull)不能被镜像。在某些系统中,分页设备和DUMP 设备是同一个设备。无论如何,多数用户需要镜像分页设备。当mirrorvg 检测到DUMP设备 和分页设备相同时,逻辑卷将被自动镜像。 如果 mirrorvg 检测到 DUMP 和镜像设备是不同的逻辑卷,则分页设备被自动镜像,而 DUMP 设备不被镜像。 DUMP 设备可以被使用sysdumpdev命令查询和修改。 6.3 管理物理卷 下面的小节讨论如何增加新的磁盘驱动器,修改物理卷特征以及监控物理卷。 6.3.1 物理卷的配置 下面三种方法可以被用于配置一个新的磁盘驱动器。如果LVM要使用这块磁盘,它必须 也被做成一个物理卷。 方法 1 这种方法用于在连接磁盘之前可以关闭系统和切断电源的情况。 增加了一块磁盘驱动器后,在系统被引导的过程中,cfgmgr 命令被系统运行,它将自 动配置磁盘。在引导完成后,以root登录,运行lspv,并在输出中查找新磁盘的记录,如下 例所示: hdisk1 none none 或 hdisk1 00005264d21adb2e none 上面这行例子中第二列的16个数字组成的编号为物理卷标识(physical volume 第 94 页 identifier,PVID)。 如果输出显示了新磁盘及其 PVID,它就可以被LVM用来作配置了。如果显示的新磁盘 没有PVID,则使用第??18页的第6.3.2小节“使可用的磁盘成为物理卷”中描述的步骤来 使磁盘可被LVM使用。 方法 2 这种方法可用于在连接磁盘之前不可能关闭系统或切断电源的情况。执行下面的任务: 1. 运行 lspv 列出已经配置在系统中的磁盘,如下例中显示: # lspv hdisk0 000005265ac63976 rootvg 2. 为了配置所有在系统中被检测到的新设备(包括新磁盘),使用下面的命令: cfgmgr 3. 再次运行 lspv 并从输出中查找一个新磁盘的记录,如下例中显示: hdisk1 none none 或 hdisk1 00005264d21adb2e none 一旦你确定了新配置的磁盘的名字,使用在第??18页的第6.3.2小节“使可用的磁盘 成为物理卷”中描述的步骤来使磁盘可被LVM使用。 方法 3 这种方法可以用于在连接磁盘之前不可能关闭系统或切断电源的情况。这种方法需要与 新磁盘有关的下列信息: - 磁盘是如何连接的(subclass) - 磁盘的类型(type)。 - 磁盘被连接到哪个系统附件上(parent name)。 - 磁盘的逻辑地址(where connected)。 使用下面的命令配置磁盘并使用pv=yes属性确保它可以被用作一个物理卷。 mkdev -c disk -s subclass -t type -p parentname -w whereconnected -a pv=yes pv=yes 属性时磁盘成为一个物理卷并且向磁盘写入一个具有唯一物理卷标识的引导记 录(除非已经存在一个)。 6.3.2 使可用的磁盘成为物理卷 新的磁盘驱动器只有被分配到一个卷组以后才可被使用。为了能被LVM使用,磁盘必须 被配置成物理卷。下面的命令将通过分配一个物理卷标识(PVID)把一个可用的磁盘 (hdisk1)改为一个物理卷,如果目前还不是的话。 chdev -l hdisk1 -a pv = yes 这个命令对于已经是一个物理卷的磁盘不起作用。 6.3.3 修改物理卷特征 本节讨论可以被使用chpv命令修改的两种物理卷特征。 为物理卷设置分配许可权(allocation permission) 物理卷的分配许可权决定是否可以把包含在这块磁盘上的尚未被分配给逻辑卷的物理第 95 页 分区分配给逻辑卷使用。设置分配许可权也就是定义是否允许对指定物理卷上的新物理分区 进行分配。 下面的命令被用来关闭物理卷hdisk1的分配许可权: chpv -a n hdisk1 为了重新打开分配许可权,使用下面的命令: chpv -a y hdisk1 设置物理卷的可用性 物理卷的可用性定义了是否可以在指定的物理卷上执行任何逻辑输入/输出操作。当要 被从系统中删除或由于故障而丢失时,物理卷应当被置为不可用。 下面的命令用于设置物理卷的状态为不可用: chpv -v r pvname 这个命令将停止物理卷上所有的 VGDA 和 VGSA 拷贝,并且物理卷将不参与以后的 vary on quorum 检查。同时,有关指定卷的信息也被从所属卷组中的其他物理卷的VGDAs 上删除。 下面的命令将使一个物理卷可为系统使用: chpv -v a pvname 注意:chpv 命令使用/tmp目录中的空间来存放执行时的信息。如果它失败,可能是由于/tmp 目录空间缺乏引起的。可以在该目录中建立更多空间后再试试。 6.3.4 删除物理卷 在将物理卷从系统中删除之前,它必须被解除配置(unconfigured)。下面的例子显示 如何解除一个物理卷(hdisk1)的配置并使用 rmdev 命令将其状态从可用的(available) 改变成被定义的(defined): rmdev -l hdisk1 对这个物理卷的定义将被保留在ODM中。-d 标记则会从ODM中将定义删除。 6.3.5 列出关于物理卷的信息 正确安装在系统中的物理卷可以被分配给一个卷组,然后就可以被用来存放文件系统和 逻辑卷。关于分布在磁盘的不同扇区上的自由物理分区及其可用性的信息是非常有用的。下 面将讨论如何使用 lspv 命令来获取这些与物理卷相关的信息。 列出系统中的物理卷 lspv 命令不带标记运行时,将产生的输出中会标识出系统已知的物理卷的名字,如下例 所示: # lspv hdisk0 00615147ce54a7ee rootvg hdisk1 00615147a877976a rootvg # lsdev 命令带 -C 选项和 -c class 标记运行时,也会列出系统中的物理卷,并列出每个物 理卷的状态,如下例所示: # lsdev -C -c disk hdisk0 Available 40-58-00-0,0 16 Bit SCSI Disk Drive 第 96 页 hdisk1 Available 40-58-00-1,0 16 Bit SCSI Disk Drive hdisk2 Available 20-68-L SSA Logical Disk Drive hdisk3 Available 20-68-L SSA Logical Disk Drive hdisk4 Available 20-68-L SSA Logical Disk Drive hdisk5 Available 20-68-L SSA Logical Disk Drive hdisk6 Available 20-68-L SSA Logical Disk Drive 列出物理卷特征 下面的例子显示如何使用 lspv 命令获取关于一个物理卷的更多的详细信息: 左边两列显示物理卷自身的信息。右边两列显示物理卷所属的卷组的有关信息。 下面是上例中各个域的含义。 PHYSICAL VOLUME 指定的物理卷的名字。 PV IDENTIFIER 物理卷标识(在系统中唯一)。 PV STATE 物理卷的状态。它定义了物理卷是否可用于逻辑输入/输出操作。它 可以被chpv命令修改。 STALE PARTITIONS 陈旧分区的个数。 PP SIZE 每个物理分区的大小。这是卷组的一个特征,只有在创建卷组时才 能被作为mkvg命令的一个参数设置。缺省大小为4 MB。 TOTAL PPs 物理分区的总数,包括物理卷上可用的自由分区和已用分区。 FREE PPs 物理卷上可用的自由分区的个数。 USED PPs 物理卷上已用分区的个数。 FREE DISTRIBUTION 这个域依照所在的扇区总结了自由物理分区在物理卷上的分布。 USED DISTRIBUTION 与free distribution 一样,不过它显示的是已用物理分区的分布。 VOLUME GROUP 物理分区所在卷组的名字。 VG IDENTIFIER 物理分区所在卷组的数字标识。 VG STATE 卷组的状态。如果卷组已被用varyonvg命令激活,则状态可以是 active/complete(表明所有物理卷是活动的)或 active/partial(表 明有些物理卷未被激活)。如果卷组没有被用varyonvg命令激活, 状态为inactive。 ALLOCATABLE 系统是否被允许在这个物理卷上分配新的物理分区。 LOGICAL VOLUMES 卷组中逻辑卷的个数。 VG DESCRIPTORS 存放在该指定物理卷上的所属卷组的 VGDAs 的个数。 列出PV中的逻辑卷分布 下面的例子显示 lspv 命令使用 -l 选项列出物理卷 hdisk1 的信息。输出显示该物理卷上 所有逻辑卷的名字,所分配的物理和逻辑分区的数量,分区在物理卷上的分布,以及文件系第 97 页 统MOUNT点(如果有的话): 按PV区域列出物理分区的分配 图 6-3 的例子显示如何获得更多有关分配给逻辑卷的物理分区范围和那些分区所使用 的磁盘区域的详细信息。 图 6-3 按物理分区列出hdisk1的状态和特征 下面是对图6-3中显示的各个域的描述。 PP RANGE 当前数据行应用的物理分区范围。 STATE 分区是否已被分配。值可以是 used 或 free。 REGION 分区所在的磁盘区域。 LV NAME 分区所被分配在的逻辑卷的名字。 第 98 页 TYPE 存在于逻辑卷上的文件系统的类型。 MOUNT POINT 文件系统的MOUNT点(如果有)。 列出物理分区分配表 为了确定系统中数据的邻近程度,以便提高逻辑卷的I/O性能,你可以使用lspv 命令的 -M 选项,如图6-4所示。在分析了输出之后你可能会决定重新组织系统。 图 6-4 按磁盘区域的物理分区分配 第一列表明一个特定硬盘上的物理分区(如果存在一组相邻的自由分区,则用一个分区 范围表示)。第二列表明哪个逻辑卷的哪个逻辑分区被关联到对应的物理分区。 转移物理卷的内容 属于一个或多个指定的逻辑卷的物理分区可以被使用migratepv 命令从一个物理卷转 移到同一卷组内的一个或多个其他的物理卷上。 注意:migratepv 命令不能在不同的卷组之间转移数据,如图6-5所示。请见第??18页的 第6.5.5 小节“拷贝一个逻辑卷”中有关如何在卷组之间转移数据的范例。 第 99 页 图 6-5 migratepv 不能跨卷组工作 下面的过程描述如何在一个失效的磁盘被拆下进行维护或更换之前从中将数据转移出 来: 1. 确定卷组中有哪些磁盘。确认源和目标物理卷均属于同一个卷组。如果源和目标物理卷 是属于同一卷组,进入第3步。 # lsvg -p rootvg rootvg: PV_NAME PV STATE TOTALPPs FREE PPs FREE DISTRIBUTION hdisk0 active 159 0 00..00..00..00..00 2. 如果你计划转移到一块新磁盘上,例如当你有一块磁盘失效时,执行以下步骤: a. 输入以下命令以确认磁盘可用: # lsdev -Cc disk hdisk0 Available 00-08-00-30 670 MB SCSI Disk Drive hdisk1 Available 00-08-00-20 857 MB SCSI Disk Drive b. 如果磁盘被列出并且为可用(available)状态,则使用下面的命令确认它不属于其他卷 组。在下面的例子中,hdisk1 可被用作目标盘: # lspv hdisk0 0000078752249812 rootvg hdisk1 000000234ac56e9e none c. 如果磁盘没有被列出或不可用,你需要检查一下或者需要安装磁盘。 d. 使用下面的命令增加新的磁盘到卷组: extendvg VGName hdiskNumber 3. 确认你的上有足够的空间用于你想转移的源盘。 a. 使用下面的命令确定源盘上的物理分区个数。其中 SourceDiskNumber 即源盘的 hdiskNumber: lspv SourceDiskNumber | grep "USED PPs" 输出如下: USED PPs:159 (636 megabytes) 在这个例子中,你将需要在目标盘上提供 159 个自由的 PPs 以成功的进行转移。 b. 确定目标盘(一个或多个)的自由物理分区个数,对每块目标磁盘使用下面的命令第 100 页 (DestinationDiskNumber 即目标盘的 hdiskNumber)。 lspv DestinationDiskNumber | grep "FREE PPs" 把所有目标盘上的 PPs 个数相加。如果总数大于第 3a 步中的 USED PPs 个数,你将拥 有足够的空间用作转移。 4. 该步骤只用于当你从rootvg卷组的磁盘中转移数据的情况。如果你在从一块用户定义的卷 组的磁盘上转移数据,则跳到第5步。 检查是否引导逻辑卷(hd5)在源盘上。 lspv -l SourceDiskNumber | grep hd5 如果没有输出,则引导逻辑卷不在源盘上。 继续执行第 5 步。 如果得到类似下面的输出: hd5 2 2 02..00..00..00..00 /blv 则运行下面的命令: migratepv -l hd5 SourceDiskNumber DestinationDiskNumber 注意: - migratepv 命令在卷组被激活在并发(concurrent)模式下时是不允许使用的。 - migratepv 命令不能转移条带化的逻辑卷。如果在这种情形下,为了从一个物理卷把数据 转移到另一个物理卷上,使用 cplv 命令拷贝数据,然后使用 rmlv 命令删除旧的拷贝。 - 你必须具有 root 用户授权或是 system 组的成员才能运行 migratepv 命令。 接下来,你将得到一个消息警告你应在目标磁盘上执行 bosboot 命令。 注意:当引导逻辑卷被从一个物理卷转移时,源盘上的引导记录应当被清除。未正确清除的 话可能导致系统挂起。当你运行 bosboot 命令时,你也必须运行:mkboot -c 运行 mkboot -c 命令清除源盘上的引导记录。在 AIX Version 4.2 以前的系统中执行下面 的操作: bosboot -a -d /dev/DestinationDiskNumber 然后: bootlist -m normal DestinationDiskNumber 然后: mkboot -c -d /dev/SourceDiskNumber 5. 执行 SMIT 快速路径命令 smitty migratepv 来转移数据,屏幕显示如图6-6所示。 第 101 页 图 6-6 smitty migratepv 命令 6. 按 F4 列出物理卷,并选择你前面检查过的源物理卷。 7. 进入 DESTINATION 物理卷域。如果你接受缺省值,则卷组中的所有物理卷都可用于传 输。 否则,选择一个或多个磁盘以便有足够空间用于你要转移的分区。 8. 如果你愿意,进入 Move only data belonging to this LOGICAL VOLUME 域并列出和选 择一个逻辑卷。这个逻辑卷位于被选择作为源物理卷的物理卷上,你将只移动被分配在这个 逻辑卷上的物理分区 9. 按回车移动物理分区。 10. 为了从卷组移出源盘,如该盘已经坏了,输入下面的命令: reducevg VGNname SourceDiskNumber 11. 在执行从系统中物理移除源盘之前,输入下面的命令: rmdev -l SourceDiskNumber -d 下面是使用 migratepv 命令的其他例子: - 使用下面的命令从hdisk1移动物理分区到hdisk6和hdisk7(所有物理卷在一个卷组中): migratepv hdisk1 hdisk6 hdisk7 - 使用下面的命令将逻辑卷lv02中的物理分区从hdisk1移动到hdisk6: migratepv -l lv02 hdisk1 hdisk6 6.4 管理卷组 本节讨论可以在卷组上执行的功能。与物理卷一样,卷组也可以被创建和删除,它们的 特征也可以被修改。还有其他的功能,如激活和停止卷组,也可以被执行。 6.4.1 增加一个卷组 在一个新的卷组能被增加到系统中之前,系统中必须存在一个或多个没有被其他卷组使 用的并且处在可用状态的物理卷。 第 102 页 在增加卷组之间先决定一些信息是很重要的,如卷组名和要使用的物理卷。 新的卷组可以被使用mkvg命令或使用SMIT增加到系统。对于卷组创建时期的所有特征 集,以下各条都非常重要: - 卷组名必须在系统中唯一。 - 将被用在新卷组中的所有物理卷的名字。 - 可以存在于卷组中的物理卷最大个数。 - 卷组的物理分区大小。 - 在每次系统重启时激活卷组的标记。 下面的例子显示使用 mkvg 命令创建一个卷组myvg,使用物理卷hdisk1 和 hdisk5,物 理分区大小为 4 KB。卷组被限制最大具有10个物理卷。 mkvg -y myvg -d 10 -s 8 hdisk1 hdisk5 另外,你可以使用 SMIT 快速路径命令 smitty mkvg,得到如图6-7显示的屏幕,并在各 域中输入要创建的卷组特征。 图 6-7 smitty mkvg 命令 smitty mkvg 命令将通过调用varyonvg命令自动激活卷组。此外,相对于从命令行执行, SMIT 命令的下面一些功能有限制: - smitty mkvg 不提供 -d 标记设置物理卷的最大个数。它使用缺省值32。 - smitty mkvg 不提供 -m 标记设置物理卷大小的最大值。该标记将确定使用多少个物理分 区。SMIT 使用缺省设置值,为1016个分区的整数倍。 - smitty mkvg 总是使用 -f 标记强制创建卷组。 注意:如果要使用mkvg命令一个新的卷组成功地加入到系统中,root 文件系统应当具有约 2MB 自由空间。用df命令检查一下。需要这个自由空间是因为每当一个新卷组被加入时, 会有一个文件被写入到/etc/vg目录下。 6.4.2 修改卷组特征 下面的小节讨论修改卷组特征需要执行的任务。 修改卷组活动(activation)特征 第 103 页 下面的命令允许卷组newvg在每次系统重启时被自动激活: chvg -ay newvg 下面的命令将关闭卷组newvg在每次系统重启时的自动激活功能: chvg -an newvg 对卷组解锁 当在系统上执行LVM操作时系统突然崩溃,LVM命令的异常终止会导致卷组被锁住。 在 AIX Version 4 及以后版本中,可以对卷组解锁。下面的例子显示对卷组newvg解锁的命 令。 chvg -u newvg 增加一个物理卷 为了使卷组中的现有文件系统和逻辑卷可以进行扩展,或增加新的文件系统和逻辑卷, 可能需要增加在一个卷组中的可用自由空间。这需要卷组可以使用附加的物理卷。 可以往卷组中增加物理卷直至达到创建时指定的最大值。可以使用extendvg命令增加物 理卷。下面的例子显示增加物理卷hdisk3到卷组newvg中的命令。 extendvg newvg hdisk3 注意:如果被加入的物理卷已经属于同一系统中的某个被激活的卷组,则extendvg 命令会 失败。另外,如果被加入的物理卷属于一个当前未被激活的卷组,则用户将被询问是否要继 续。 你也可以使用 SMIT 快速路径命令 smitty vgsc 并选择 Add a Physical Volume to a Volume Group。 删除一个物理卷 卷组在删减之前必须是被激活的。下面的例子显示如何从卷组myvg中删除物理卷 hdisk3。 reducevg myvg hdisk3 此外,你也可以使用 SMIT 快速路径命令 smitty reducevg 来从卷组中删除一个物理卷。 注意:reducevg 命令提供 -d 和 -f 标记。 - -d 标记是很危险的,因为它在从卷组删除物理卷之前会自动删除物理卷上的所有卷组数 据。如果一个逻辑卷跨越多个物理卷,对任何一个物理卷的删除都会危害整个逻辑卷的完整 性。 - -f 标记将使 -d 标记更加危险,因为它禁止系统与用户交互,即根本不向用户请求对删除逻 辑卷进行确认。 如果指定要被删除的物理卷上的逻辑卷是跨越同一卷组中多个物理卷存在的,删除操作 可能会不考虑它们所在的其他物理卷,从而破坏逻辑卷的完整性。 当你从一个卷组中删除所有物理卷时,卷组本身也将被删除。 删除一个物理卷的索引(reference) 有时一块磁盘被从系统中卸除,而事先并未执行 reducevg VolumeGroup PhysicalVolume操作。VGDA 仍然具有这块被删除的磁盘的索引,但是物理卷名已经不存在 了或被重新分配了。为了删除对被卸除的磁盘的索引,你也可以通过被删除物理卷的 PVID 来使用 reducevg 命令。下面的命令将从卷组newvg中删除一个物理卷(PVID 为 000005265ac63976)的索引。 reducevg VolumeGroup 000005265ac63976 第 104 页 6.4.3 导入(importing)和导出(exporting)一个卷组 可能有时侯需要将一个卷组从一个 RS/6000 或 eServer pSeries 系统转移到另一个系 统中,以便卷组中的逻辑卷和文件系统数据可以在目标系统中被访问。 为了从ODM数据库中删除对卷组的系统定义,需要使用exportvg命令将卷组导出。这 个命令不会删除卷组中的任何用户数据,只是从ODM数据库中将其定义删除。 同样,当一个卷组被移动时,目标系统需要增加新卷组的定义。可以通过使用importvg 命令将卷组导入,在目标系统的ODM数据库中增加相应记录。 下面的例子显示对卷组myvg的导出。 exportvg myvg 下面的例子则显示对卷组myvg的导入。 importvg -y myvg hdisk12 你也可以使用 SMIT 快速路径命令,smitty exportvg 或 smitty importvg 来导出或导入 一个卷组。 如果指定的卷组名已经被使用了,importvg 命令会失败,并给出一个适当的错误消息, 因为不允许使用重复的卷组名。在这种情况下,可以指定一个唯一的卷组名重新运行该命令。 也可以不使用-y标记或卷组名重新运行该命令,被导入的卷组会被赋予一个唯一的系统缺省 名。 也有可能一些逻辑卷名与系统中已经存在的逻辑卷名发生冲突。importvg 命令会自动 重新分配给它们系统缺省名。当在两个系统之间移动卷组时,需要记住的一件重要事情是, exportvg 命令总是先在源系统上运行,然后再在目标系统上进行导入操作。 假设一个卷组被导入到系统Y之前并没有在系统X上实际执行exportvg。如果系统 Y 对 卷组作了一个改动,如从卷组中删除一个物理卷,然后将卷组导回系统X,则系统X上的ODM 数据库信息将会与卷组中被修改的信息不一致。 不管怎样,在源系统上未先执行导出之前就把卷组转移到另一个系统是毫无价值的。 你也可以使用 exportvg 和 importvg 来修改用户定义的卷组的名字,如下面例子所示: # lspv hdisk0 006151409772fa27 rootvg hdisk1 00382642e0e14dbd vg00 # varyoffvg vg00 # exportvg vg00 # importvg -y cadsvg hdisk1 cadsvg # lspv hdisk0 006151409772fa27 rootvg hdisk1 00382642e0e14dbd cadsvg 注意: - 如果当前具有相同名字的卷组已经存在于系统中,importvg 命令回修改被导入的逻辑卷的 名字。如果一个被导入的逻辑卷被改名,会有一个错误消息被打印在标准错误上。如果可能 的话(假设没有冲突), importvg 命令也会创建文件装载点和在/etc/filesystems中添加记录。 - 上面具有活动分页空间的卷组不能被导出。在导出一个具有活动分页空间的卷组之前,使 用下面的命令确保分页空间在系统初始化时不被自动激活: chps -a n paging_space_name 第 105 页 然后,重启系统,这样分页空间就是非激活的。AIX 5L Version 5.1 增加了分页空间的释放 功能。请见第202页的“释放分页空间”中的介绍。 - 如果你在 smitty importvg 中没有激活卷组,你必须运行 varyonvg 命令以允许对文件系统 和逻辑卷的访问。 - 如果你导出一个包含文件系统的卷组,或者如果你通过 smitty importvg 激活了卷组,强烈 建议你在装载文件系统之前先运行fsck命令。如果你在把卷组从一个系统转移到另一个系 统,要确保在移动之前先解除磁盘的配置。 - smitty exportvg 命令删除/etc/filesystems中对文件系统的索引,但是它在系统中保留了装 载点。 6.4.4 激活(varying on)和停止(varying off)卷组 一旦卷组已经存在,它可以被使用 varyonvg 命令激活以便可用于系统管理操作。这个过 程包含以下步骤: 1. 卷组中每个物理卷上的每个 VGDA 被读取。 2. 每个VGDA中的起始和结束时标被读取。这些时标必须匹配了,一个VGDA才有效。 3. 如果半数以上的 VGDAs(称为 quorum)有效,那么激活进程继续。否则,激活进程失 败。 4. 系统将取最近的一个 VGDA (具有最近的时标的一个),并将它写到所有其他VGDAs中, 这样所有VGDAs都匹配了。 5. syncvg 命令被运行来重新同步陈旧的分区,使之成为当前的(如当使用镜像时)。 varyonvg 命令具有下面的选项,可以用来防止对卷组结构的破坏或给出状态信息: - -f 标记可以被用于强制激活一个卷组,即使它被检测到不一致。这些不一致通常是因为存 放在ODM数据库中和VGDA中的卷组配置数据之间的差异。 - -n 标记将禁止在激活时调用syncvg命令。当一个卷组被激活时,如果检测到陈旧的分区, 激活进程会调用syncvg命令来同步陈旧的分区。这个选项在你希望谨慎地恢复一个卷组并想 确保不会意外地用坏的镜像拷贝覆盖好的拷贝时很有用。 - -s 标记允许一个卷组被激活到维护或系统管理模式。逻辑卷命令可以在卷组上操作,但是 任何逻辑卷都不能被打开进行输入或输出。 下面的例子显示激活卷组newvg的命令。 varyonvg newvg 你也可以使用SMIT快速路径命令 smitty varyonvg,屏幕显示如图6-8所示。输入要被激 活的卷组名以及所有选项。 第 106 页 图 6-8 smitty varyonvg 命令 varyoffvg 命令将停止一个卷组和与它相关的逻辑卷。这要求逻辑卷被关闭,而与逻辑卷 相关的文件系统必须先被卸载。varyoffvg 命令还允许使用 -s 标记把活动的卷组改成进入维 护或系统管理模式。 注意:在 AIX Version 4 记以后版本中,当一个卷组被导入时,它是自动被激活的;而在AIX Version 3 中,卷组必须被单独激活。 下例显示停止卷组myvg的命令。 varyoffvg myvg 你也可以使用 SMIT 快速路径命令 smitty varyoffvg, 它将显示一个如图6-9所示的屏幕。 你可以输入要被停止的卷组名,也可以把卷组置为系统管理模式。 第 107 页 图 6-9 smitty varyoffvg 命令 6.4.5 监控卷组 lsvg 命令向ODM数据库查询当前系统所知的所有卷组的信息。下面是显示使用lsvg命令监 控卷组的一些例子。 列出卷组 下面的例子显示不带任何标记使用lsvg命令来列出系统已知的卷组: # lsvg rootvg altinst_rootvg datavg testvg # 下面的例子显示如何列出当前活动(被激活)的卷组: # lsvg -o testvg datavg rootvg 列出卷组的特征 图 6-10 的例子显示用于列出有关卷组特征的详细信息和状态的命令。 图 6-10 lsvg rootvg 命令 列出卷组中的逻辑卷 图 6-11 的例子显示用于列出卷组rootvg中所有逻辑卷的名字、特征和状态的命令。 第 108 页 图 6-11 lsvg -l rootvg 命令 列出卷组中物理卷的状态 图 6-12 的例子显示使用lsvg命令和-p标记列出卷组中包含的所有物理卷信息以及包括物 理分区分配情况在内的一些状态信息。lsvg命令的这种形式对总结系统中的自由空间含量非 常有用。 图 6-12 lsvg -p vgname 命令 下面是对图 6-12 中各个域的描述。 PV_NAME 物理卷的名字。 PV STATE 物理卷是否为活动的(active)。 TOTAL PPs 物理卷上的物理分区总数。 FREE PPs 物理卷上未用的物理分区的总数。 FREE DISTRIBUTION 自由物理分区在物理卷上的位置。有五列显示,每个磁盘区域对 应一列,以下面的顺序:外边缘( Outside edge),外中部( Outside middle),中心( Center),内中部( Inside middle),内边缘( Inside edge)。 6.4.6 重新组织(Reorganizing)卷组 reorgvg 命令被用于重新组织为一个卷组分配的物理分区,按照每个逻辑卷的分配特征。 下面是reorgvg命令的语法: reorgvg [ -i ]VolumeGroup [ LogicalVolume ... ] 在使用reorgvg命令之前卷组必须被激活而且必须有自由分区存在。每个逻辑卷的重定位 (relocatable)标记必须被使用chlv -r命令设置为 y 后重组才能生效。否则,逻辑卷会被忽 略。 注意: 1. reorgvg 命令不会为条带化的逻辑卷重组对物理分区的分配。 第 109 页 2. 在指定的卷组上至少要存在一个自由的物理分区,reorgvg 命令才能成功运行。 3. 在 AIX Version 4.2或以后版本中,如果你输入 reorgvg 命令和卷组名但不带任何其他参 数,该命令将重新组织卷组中的第一个逻辑卷。第一个逻辑卷就是使用lsvg -l VolumeName 命令所列出的逻辑卷。 你也可以使用SMIT快速路径命令 smitty reorgvg 执行相同的工作。 参见表 6-2 提供的对reorgvg命令标记的详细解释。 表 6-2 reorgvg 命令标记 Flag Description -i 指定从标准输入读取物理卷名。只有在这些物理卷上的分区被重组。 重组卷组的命令举例如下。 - 下面的命令重组卷组vg02中的逻辑卷lv03,lv04 和 lv07: reorgvg vg02 lv03 lv04 lv07 在 vg02 上只有被列出的逻辑卷被重组。 - 下面的例子显示如何重组物理卷 hdisk04 和 hdisk06 上属于逻辑卷 lv203 和 lv205 的分区: echo "hdisk04 hdisk06" | reorgvg -i vg02 lv203 lv205 在卷组vg02中只有位于物理卷hdisk04 和 hdisk06上并属于逻辑卷lv203 和 lv205的 分区被重组。 6.4.7 同步(Synchronizing)卷组 syncvg 命令被用于同步非当前(陈旧)的逻辑卷拷贝。 下面是 syncvg 命令的语法: syncvg [-f ] [-i ] [ -H ] [ -P NumParallelLps ] { -l | -p | -v } Name ... syncvg 命令将同步非当前的物理分区,后者是原始物理分区的拷贝。syncvg 命令可以 被用于逻辑卷、物理卷或卷组,使用Name参数表示逻辑卷名、物理卷名或卷组名。同步进 程可能会很耗时,这要取决于硬件特征和数据量。 当使用 -f 标记时,选择一份没有被破坏的物理拷贝,并将它传递给逻辑分区的所有其 他拷贝,不管它们是否陈旧。 除非被禁止,当卷组被使用varyonvg命令激活时,卷组中的拷贝被自动同步。 syncvg 命令常用的标记如表6-3所示。 表 6-3 syncvg命令的关键标记 Flag Description -p 指定Name参数代表的是一个物理卷设备名。 -v 指定Name参数代表的是一个卷组设备名。 下面的例子显示了syncvg命令的使用: - 为了同步物理卷hdisk04 和 hdisk05上的拷贝,运行下面的命令: syncvg -p hdisk04 hdisk05 - 为了同步卷组vg04 和 vg05上的拷贝,运行下面的命令: syncvg -v vg04 vg05 6.5 管理逻辑卷 物理卷和卷组一般不会被用户和应用程序直接寻址以进行数据访问,它们也不能被操纵 来提供磁盘空间给用户和应用程序使用。然而,逻辑卷就提供了制造可以使用的磁盘空间的第 110 页 机制,使用户和应用程序能够访问存放在其上的数据。 当你创建一个逻辑卷时,你指定逻辑卷上逻辑分区的个数。每个逻辑分区映射到一个、 两个或三个物理分区,这取决于你想维护的数据拷贝的个数。例如,你可以指定一个逻辑卷 被镜像和拥有多于一个拷贝,如图6-13所示。逻辑卷只有一个拷贝(缺省)表明一个逻辑分 区被直接映射到一个物理分区。 图 6-13 为镜像和无镜像数据映射 LP 到 PP 逻辑卷的管理因此就是对可被使用的磁盘空间的管理。本节将回顾用户可在逻辑卷上执 行的功能。 6.5.1 增加一个逻辑卷 你可以用mklv命令创建另加的逻辑卷。这个命令允许你指定逻辑卷的名字和定义它的 特征,包括分配给它的逻辑分区个数。逻辑卷大小的最大值在创建时缺省为128个逻辑分区。 使用命令行创建逻辑卷 mklv 命令可用来创建一个新的逻辑卷。下面是mklv命令的语法,最常用的标记被显示 在表6-4中。 mklv [ -a Positi on ] [ -b BadBlocks ][ -c Copies ] [ -d Schedule ] [ -e Range ] [ -i ] [ -L Label ] [ -m MapFile ] [ -r Relocate ] [ -s Strict ] [ -t Type ] [ -u UpperBound ] [ -v Verify ] [ -w MirrorWriteConsistency ] [ -x Maximum ] [ -y NewLogicalVolume | -Y Prefix ] [ -S StripeSize ] [ -U Userid ] [ -G Groupid ] [ -P Modes ] VolumeGroup Number [ PhysicalVolume ... ] 表 6-4 mklv 命令标记 标记 描述 -c copies 设置被分配给每个逻辑分区的物理分区个数。copies 变量可以设置的值为1到3;缺省为1。 -i 从标准输入读取 PhysicalVolume 参数。只有当 PhysicalVolume 被从标准输入设备输入时 才能使用 -i 标记。 -L 设置逻辑卷标。缺省没有卷标。标签文件的长度最大可为127个字符。如果逻辑卷要被作为 日志文件系统(JFS)使用,则JFS将使用这个域存放文件系统在逻辑卷上的装载点以便将 来引用。 -P Modes 为逻辑卷专用文件指定许可权(文件模式)。 -t Type 设置逻辑卷类型。标准类型为JFS(文件系统), JFSLOG(日志文件系统的日志)和页面第 111 页 调度(分页空间),但是用户可以使用这个标记定义其他的逻辑卷类型。你不能创建一个类 型为boot的逻辑卷。缺省为JFS。如果为一个文件系统手工创建了一个日志,用户必须在日 志可以被使用之前先运行logform命令清除新的JFSLOG。使用下面的命令格式化逻辑卷 logdev: logform /dev/logdev 其中 /dev/logdev 是逻辑卷的绝对路径。 -y NewLV 指定要使用的逻辑卷名,而不是使用使用一个系统产生的名字。逻辑卷名必须是系统范围内 唯一的,可以有1到15个字符长度。如果卷组被激活在并发(concurrent)模式,新的名字 应当在卷组被激活的所有并发节点上唯一。名字不能以一个已经在设备配置数据库中的 PdDv类中为其他设备定义过的前缀开头。 下面的例子显示了使用 mklv 命令创建一个新的逻辑卷newlv。这将在rootvg中创建一个 新的逻辑卷 newlv,并且它将具有10 个逻辑分区,每个逻辑分区包括两个物理分区。 mklv -y newlv -c 2 rootvg 10 使用 SMIT 创建一个逻辑卷 你可以使用下面的SMIT对话框创建一个逻辑卷。 1. 运行命令 smitty mklv 2. 按 F4 获得系统中定义的所有卷组的列表。屏幕显示如图6-14: 图 6-14 选择存放新逻辑卷的卷组 3. 使用箭头键选择你想在其上创建新逻辑卷的卷组并按回车。屏幕显示如图6-15 所示。 第 112 页 图 6-15 设置新逻辑卷的特征 4. 在 Logical volume NAME 域,输入你要创建的逻辑卷名字(该例中使用newlv)。 5. 在 Number of LOGICAL PARTITIONS 域,输入你想分配给新逻辑卷的逻辑分区的个数 (该例中为10)。每个逻辑分区对应一个或多个物理分区,取决于你想保存的数据拷贝数量。 6. 在 PHYSICAL VOLUME names 域,输入你想给新逻辑卷使用的物理卷的名字。如果你 不指定,系统中的第一个PV 将被用来存放所有数据。 7. 在 Number of COPIES of each logical partition 域,输入你的数据所需的LP拷贝的个数。 允许的值为 1 到 3。 8. 按回车创建逻辑卷。 6.5.2 删除一个逻辑卷 如果一个逻辑卷不再被用户和应用程序用作存储用途,你可能需要删除它。rmlv 命令 可以被用来删除一个逻辑卷。 使用命令行删除一个逻辑卷 rmlv 命令可用于删除一个逻辑卷。下面显示该命令的语法,其常用标记如表6-5显示。 rmlv [ -f ][ -p PhysicalVolume ]LogicalVolume ... 表 6-5 rmlv 命令标记 Flag Description -f 删除逻辑卷,不要求任何确认。 -p PhysicalVolume 只删除Phys icalVolume上的逻辑分区。逻辑卷并不被删除,除非没有其他物理分 区被分配给它。 下面显示了删除逻辑卷newlv的命令: # rmlv newlv Warning, all data on logical volume newlv will be destroyed. rmlv: Do you wish to continue? y(es) n(o) y # 在对话框中输入 y 作为响应,按回车完成删除逻辑卷的过程。 使用SMIT删除逻辑卷 第 113 页 你也可以使用SMIT快速路径命令 smitty rmlv 来删除一个逻辑卷。 6.5.3 减少逻辑卷的大小 执行下面的步骤可以减少逻辑卷的大小,以释放过度占用的逻辑分区: 1. 备份逻辑卷上的所有数据。 2. 删除逻辑卷。 3. 以被减少的逻辑分区分配重建逻辑卷。 4. 恢复数据。 省出的自由空间可以被分配给其他需要它的逻辑卷以便更好地利用。 6.5.4 增加逻辑卷的大小 一个已存在的逻辑卷的大小可以被使用 extendlv 命令或SMIT进行扩充。如果逻辑卷被 一个日志文件系统使用,你也可以使用chfs命令或SMIT快速路径命令smitty chjfs增加逻辑 卷的大小。 使用命令行扩充一个逻辑卷 extendlv 命令被用于增加逻辑卷的大小。下面是该命令的常用语法和标记: extendlv [ -a Position ] [ -e Range ] [ -u Upperbound ] [ -s Strict ] LogicalVolume Partitions [ PhysicalVolume ... ] 下面的例子显示了使用 extendlv 命令增加三个逻辑分区给你新创建的逻辑卷: extendlv newlv 3 使用 SMIT 扩充一个逻辑卷 SMIT 快速路径命令 smitty extendlv 可以被用来增加一个逻辑卷的大小。 6.5.5 拷贝一个逻辑卷 因为某些原因可能需要拷贝逻辑卷。如果一块磁盘将被删除并用一块新的磁盘取代,则 老磁盘上的逻辑卷将需要被拷贝到新磁盘上。逻辑卷可以被拷贝到新的逻辑卷上或覆盖现有 的逻辑卷。 使用命令行拷贝逻辑卷 下面的例子显示了使用 cplv 命令拷贝一个逻辑卷: cplv -v myvg -y newlv oldlv 该命令拷贝oldlv的内容到位于卷组myvg中的新的逻辑卷newlv上。如果不指定卷组,新 的逻辑卷将被创建在旧逻辑卷所在的卷组中。该命令创建一个新的逻辑卷。 下面的例子显示了如何拷贝一个逻辑卷到一个现有的逻辑卷上: cplv -e existinglv oldlv 该命令拷贝oldlv的内容到相同卷组的逻辑卷existinglv 上。这个拷贝命令要求确认,因 为所有在existinglv上的数据将被覆盖。 如果 existinglv 比oldlv小,那么数据将会丢失,很可能引起讹误。 注意:不要从一个更大的逻辑卷拷贝数据到一个更小的逻辑卷。这样会引起文件系统出错, 因为有一些数据没被拷贝。如果cplv 创建一个新逻辑卷,并且卷组被激活到并发模式,该第 114 页 命令将失败。 使用SMIT拷贝逻辑卷 此外,你也可以使用 SMIT 快速路径命令 smitty cplv,屏幕显示如图6-16所示。 图 6-16 smitty cplv 命令 1. 选择 Copy over an existing logical volume。屏幕显示如图 6-17 所示。 图 6-17 选择源和目标逻辑卷 2. 在SOURCE logical volume name域输入你想拷贝的逻辑卷的名字。 3. 在DESTINATION logical volume name域输入你想把现有逻辑卷拷贝到其上的逻辑卷的 名字。这个名字可以是一个你已经创建了的现有的逻辑卷,也可以是一个你想创建的新的逻 辑卷。按回车完成该步骤。 注意:你可能会遇到下面的错误: cplv : Destination logical volume must have type set to copy 第 115 页 如果在这种情况下,使用下面的命令: chlv -t copy Destination_Logical_Volume_Name 返回 SMIT 会话窗。现在系统将允许你拷贝逻辑卷了。这个操作是特别用来确保安全的,这 样你就不会意外地覆盖你的数据。 6.5.6 分离(splitting)逻辑卷的拷贝 splitlvcopy 命令将拷贝从一个逻辑卷分离,并创建一个新的独立的逻辑卷。常用语法为: splitlvcopy [ -f ] [ -y NewLogicalVolumeName ] [ -Y Prefix ] LogicalVolume Copies [ PhysicalVolume ... ] 注意:虽然 splitlvcopy 命令可以分离打开着的逻辑卷,包括装载有文件系统的逻辑卷,但 是不建议这样做。如果逻辑卷同时在被多个进程访问,你可能会失去LogicalVolume和 NewLogicalVolume之间的一致性。当分离一个打开的逻辑卷时,意味着你接受了可能由该 操作引起的数据丢失和数据讹误的风险。为了避免潜在的讹误窗口,在分离之前先卸载文件 系统并关闭逻辑卷。 逻辑卷oldlv的每个逻辑分区目前有三份拷贝,为了其中一份拷贝分离出来,并创建逻 辑卷newlv,使用如下的splitlvcopy命令: splitlvcopy -y newlv oldlv 2 逻辑卷 oldlv 中的每个逻辑分区现在只有两个物理分区。逻辑卷 newlv 中的每个逻辑分 区现在各有一个物理分区。 6.5.7 列出逻辑卷 下面的逻辑卷是在系统安装时自动创建的: hd5 引导逻辑卷,存放引导代码。只在系统启动时可用。 hd6 缺省分页空间逻辑卷,被系统用于执行页面调度。 hd8 用作日志文件系统的缺省日志空间。 hd4 被 /(根)文件系统使用。 hd2 被 /usr 文件系统使用。 hd9var 被 /var 文件系统使用。 hd3 被 /tmp 文件系统使用。 hd1 被 /home 文件系统使用。 下面的命令将列出所有在系统中定义的逻辑卷,如图 6-18 所示: lsvg | lsvg -il 第 116 页 图 6-18 逻辑卷列表 lslv 命令可以被用来查看所有与一个逻辑卷(newlv)相关的属性,如图 6-19所示。 图 6-19 逻辑卷属性 6.5.8 逻辑卷大小 逻辑卷的大小即分配给逻辑卷的空间,由被分配给逻辑卷的逻辑分区的个数(LPs assigned to LV)和你告诉系统要维护的拷贝的个数(Number of copies of the LV)决定。 因此,由逻辑卷占用的总体空间由下面的公式确定: Total LV size = PP size * LPs assigned to LV * Number of copies of the LV 下面的例子说明了如何计算逻辑卷大小。 如果 PP size(物理分区大小)为 4 MB,被分配给逻辑卷的 LPs 个数为 10,逻辑卷的拷贝第 117 页 个数为 2,那么将被分配给逻辑卷的总体空间为 80 MB (4*10*2)。 6.6 管理日志文件系统(journaled file systems) 文件系统是一组文件、目录和其他结构的集合。文件系统维护信息并标识一个文件或目 录的数据所在的位置。除文件和目录外,文件系统可以包含一个引导块(boot block),一 个超级块(superblock),位图(bitmaps)和一个或多个分配组(allocation groups)。一个 分配组包含磁盘的索引节点(i-nodes)和分段(fragments)。 AIX系统支持下面三种类型文件系统: 日志文件系统(Journaled File System) 这种本地文件系统被称为日志文件系统(JFS)。每个日志文件系统处在一个独立逻辑 卷中。操作系统初始化时会装载一些日志文件系统(它们是为引导和使用系统所必需 的),另外还装载/etc/filesystems中指导要装载的其他文件系统(如果有)。 网络文件系统(Network File System) 网络文件系统(NFS)是一个分布式的文件系统,允许用户访问位于其他计算机上的文 件和目录,并且就象在本地一样使用那些文件和目录。 CD-ROM文件系统(CD-ROM File System) CD-ROM 文件系统(CDRFS)是这样一种文件系统类型,它允许你通过常规的文件系 统接口访问CD-ROM中的内容。 日志文件系统(JFS)把逻辑卷拆分成多个固定大小的单元,称为逻辑块。文件系统中 的逻辑块是如下组织的: Logical Block 0 文件系统中的第一个保留的逻辑块,用于自举程序(bootstrap program)或其它所需的信息;这个块不被文件系统使用。 Superblock 第一个和第三十一个逻辑块被保留作超级块(第31个块是一个备份 拷贝)。超级块包含的信息如,文件系统的总体大小(以512字节块 计),文件系统的名字,文件系统日志设备地址(日志将稍后在本 节中介绍),版本号,以及文件系统状态。 Allocation Groups 文件系统中其他的逻辑块被分成多个分配组。一个分配组中包含数 据块和引用那些被分配给目录或文件的数据块的索引节点。这些组 可以被用来处理数据在磁盘上的分布。 6.6.1 日志文件系统的特征 日志文件系统(JFS)的大小是在文件系统被创建时被定义的,考虑以下参数: - 索引节点(i-nodes)个数 - 分配组(Allocation group)大小 - 文件系统分段(fragment)的编址能力(addressability) - 日志文件系统(Journaled File System)的日志大小 - 最大的日志文件系统的大小 i-nodes 个数 一个文件系统中的 i-nodes 总数限制了文件总数和文件系统的总体大小。JFS 提供的 nbpi(number of bytes per i-node,每个索引节点的字节数)参数会影响一个文件系统中 第 118 页 i-nodes 的个数。JFS 支持的 nbpi 值为 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 和 131072。值 32768, 65536 和 131072 只能用于 AIX Version 4.2 或以后版本。 例如,为了以一个 nbpi 值 4096 创建一个 8 MB 的文件系统,则要为每 4096 字节的数 据产生一个 i-node。这样将导致一个 8MB 的文件系统最大具有 2048 个 i-nodes,意味着如 果文件系统中的每个文件都是 4KB 的理想长度,则该文件系统中最大可以创建 2048 个文 件。 JFS 对所有文件系统限定 16 MB (2 24 ) 个 i-nodes。 分配组(allocation group)大小 AIX Version 4.2 及以后版本支持不同的分配组大小。JFS 把文件系统空间为用户数据 隔离成 i-nodes 和磁盘块的分组。这些分组被称为分配组。分配组的大小可以在创建系统时 指定。分配组的大小为 8MB, 16 MB, 32 MB, 和 64 MB。每个分配组的大小有一个相关的 nbpi 范围。范围被定义如表 6-6。 表 6-6 允许的 nbpi 值 分配组的大小(MB) i-nodes 最大个数 8 512, 1024, 2048, 4096, 8192, 16384 16 1024, 2048, 4096, 8192, 16384, 32768 32 2048, 4096, 8192, 16384, 32768, 65536 64 4096, 8192, 16384, 32768, 65536, 131072 文件系统分段(fragment)的编址能力 JFS 支持四种分段大小:512,1024,2048 和 4096 个字节的连续磁盘空间单元。JFS 在 i-nodes 和间接块(indirect blocks)中以 28-bit 的数值来维护 fragment 编址。每个分段 必需被使用一个从0到228 的数值进行编址。如果一个文件系统中绝大多数文件为 400字节, 则一个512字节的分段大小将最为有效,因为4096 字节的分段将会浪费空间。分段是最小 的可编址存储单元。 日志文件系统(JFS)的日志 多个JFS共用一个日志,称为JFS日志,配置为 4MB大小。例如,初始安装后,所有根 卷组中的文件系统使用逻辑卷hd8作为公共JFS日志。缺省逻辑卷分区大小为4MB,缺省日 志大小为一个分区;因此根卷组通常包含一个4MB的JFS日志。当文件系统大于2GB时,或 当使用同一个日志的文件系统空间总数大于2GB时,缺省的日志大小需要被增加。JFS日志 最大长度被限制为256MB。 最大的日志文件系统大小 最大的 JFS 大小在创建系统时被定义。例如,选择分段大小为 512 将限制文件系统大 小为 8GB(512 * 2 24 = 8 GB)。 (可能512指半个block)当创建一个JFS文件系统时,所列的 因数(nbpi,fragment大小和分配组大小)需要被仔细权衡。文件系统大小的限制为NPBI * 2 24 或Fragment Size * 2 28中的最小值。 6.6.2 创建一个文件系统 AIX中的每个文件系统对应一个逻辑卷。为了创建一个JFS, 可使用下面的SMIT分级 菜单: 1. 执行 SMIT 快速路径命令 smitty crjfs 将显示如图 6-20 中的屏幕。 第 119 页 图 6-20 smitty crjfs 命令 2. 选择 Add a Standard Journaled File System 来增加一个新的JFS。屏幕显示如图 6-21。 图 6-21 选择存放新文件系统的卷组 3. 使用箭头键选择你想增加新文件系统的卷组。在这个例子中,因为只有一个卷组( rootvg), 因此只显示 rootvg。按回车键选择 rootvg 为你的目标卷组。 4. 一旦你选择了目标卷组,屏幕显示如图 6-22 所示。 第 120 页 图 6-22 为新文件系统设置特征 5. 在 Size of file system (in 512 byte blocks) 域,输入你想创建的文件系统的大小。例如, 如果你想创建一个4MB的文件系统,你可以简单地用2048乘以文件系统的megabytes数(这 里为4)得到将需要为创建这个大小的文件系统指定的 512-byte 块的个数(这里为8192)。 注意:在 AIX 中,所有 I/O 单元为 4 KB 的块;但是空间分配是以 512 byte 块的倍数进行 的。这样做只是为了与其他UNIX系统保持一致。你可以创建的最小的文件系统大小等于一 个PP;因此,即使你指定的块数小于一个PP,系统还是会以一个PP的大小创建文件系统。 下面的例子显示如何计算给定空间大小(MB)的块数: 因为,512 bytes = 1 block 所以,1024 bytes = 2 blocks 并且 1 MB = 2*1024 blocks 因此,x MB = x * 2048 blocks (这就是答案) 这表明对一个2MB的文件系统,等价的块数为4096(在Size of File System域中输入这个 值)。 6. 接下来,在 MOUNT POINT 域,输入你所希望的你的文件系统在整个文件系统分层结构 中所处位置的全路径。装载点就是一个目录或文件,从这里可以对新的文件系统、目录或文 件进行访问。 7. 按回车创建该JFS。屏幕显示如图 6-23,表明整个过程成功结束。 第 121 页 图 6-23 smitty crjfs 的结果 此外,你可以在命令行使用下面的命令执行相同的任务: crfs -v jfs -g rootvg -a size = 8192 -m /dummy 这将创建一个 4MB 大小的JFS,装载点为 /dummy,存在于 rootvg 卷组中。 6.6.3 装载(mount)一个文件系统 装载是这样一个概念,即在一个特定的位置使文件系统、文件、目录、设备和专用文件 可被使用。它是使一个文件系统可被访问的唯一途径。一旦你创建了文件系统,下面的任务 就是使其对你的用户可用。为了达到该目的,你必需知道AIX对使用装载点把新创建的文件 系统加入到它的文件树中是如何进行管理的。 图 6-24 显示了一个文件系统装载点(/u/kenzie)在文件系统被装载上之前的情况。 图 6-24 装载前的文件树视图 图 6-25 显示了一个被装载在装载点 /u/kenzie 上的文件系统 /u/kenzie 的情况。 第 122 页 图 6-25 装载后的文件树视图 注意: - 当一个文件系统被装载到一个目录上时,被装载的文件系统的根目录的许可权比装载点的 许可权要优先。 - 常见的一个问题是pwd命令的失败。因为没有在承载目录中的搜索许可权,pwd 命令会返 回下面的消息: pwd: Permission denied 只要总是把承载目录的许可权设置为111,就可以避免这个问题。 使用命令行装载文件系统 下面的命令显示如何装载一个文件系统(/FileSystemX)。 mount /FileSystemX 另外,如果你知道与你的文件系统相关联的设备的名字,你可以使用设备名来装载你新 创建的文件系统。如果你想装载所有文件系统,你可以使用下面的命令来一次性装载所有文 件系统。 mount {-a | all } 使用 SMIT 装载文件系统 你也可以使用 SMIT 快速路径分级菜单来装载文件系统。 1. 执行 smitty mount 将得到如图6-26的显示。 图 6-26 smitty mount 命令 2. 使用箭头键下移光标,选择 Mount a File System 按下回车键。屏幕显示如图 6-27: 第 123 页 图 6-27 Mount a File System 菜单 3. 使用箭头键下移光标到DIRECTORY over which to mount。 4. 按 F4 得到你为文件系统定义的装载点列表(参见第6.6.2小节,“创建文件系统”中你是 如何创建一个文件系统的,并且注意到你为文件系统创建了一个装载点。你将使用这个装载 点来使你的文件系统对用户可用)。按下F4后屏幕显示如图6-28。 图 6-28 选择装载点 5. 使用箭头键选择你想装载到的文件系统。按回车确定选择。你所选择的装载点将显示在 DIRECTORY over which to mount 域中。 6. 再次按下 Enter 并等候SMIT出现OK提示,它表明整个过程顺利完成。 自动装载 装载可以被设置成在系统初始化时自动发生。有两种自动装载类型: - 需要被用来引导和运行系统的装载。这些文件系统被引导进程明确装载。在文件第 124 页 /etc/filesystems中,这些文件系统的对应节(stanzas)中有 mount = automatic。当多用户 初始化开始时,当 /etc/rc 脚本运行mount all 命令时它不会再去试图装载这些文件系统。同 样,当umount all 命令被运行时,这些文件系统也不会被卸载。 - 第二种类型为用户控制的自动装载(user-controlled automatic mounts)。这些文件系统在 初始化过程中被/etc/rc脚本发出的mount all命令装载。在/etc/filesystems文件中,用户控制 的自动装载对应的节中有 mount=true。 你可以指定一个文件系统被使用mount all命令或/etc/rc脚本在初始化期间自动装载。这 需要你在创建文件系统时把Mount AUTOMATICALLY at system restart 域设置为TRUE (请 见第??19页的图 6-22),或使用 chfs –A yes file_system 命令。下面给出的/etc/filesystems 文件中的一节内容显示了一个自动装载的文件系统: /opt: dev = /dev/hd10opt vfs = jfs log = /dev/hd8 mount = true check = true 显示被装载的文件系统 下面的例子显示了使用不带标记的 mount 命令来显示有关所有当前被装载的文件系统 的信息。 6.6.4 删除一个文件系统 下面的例子显示删除一个文件系统的步骤: 1. 使用 mount 命令检查当前装载的文件系统,显示如下: 2. 检查你想删除的文件系统是否在列表中。是则继续第3步,否则跳到第5步。 3. 用umount命令卸载文件系统。 第 125 页 # umount filesystem_name 4. 重复第1步,检查是否文件系统已被成功卸载。 5. 使用 SMIT 快速路径命令 smitty rmjfs 删除一个日志文件系统,显示如图6-29。 图 6-29 smitty rmjfs 命令 6. 按 F4 得到系统中被定义的所有文件系统的列表。屏幕显示如图 6-30 所示。 图 6-30 选择要删除的文件系统 7. 使用箭头键选择要删除的文件系统并按回车。 8. 你刚选择的文件系统名将显示在FILE SYSTEM name 域中。 9. 如果你想保留这个用于装载文件系统的目录名,按回车结束命令;否则,修改 Remove Mount Point field 为 YES 并按回车结束整个过程。 另外,你也可以用rmfs命令完成第 5 步到第 9 步的工作。 # rmfs filesystem_name 第 126 页 为了在删除文件系统时也删除装载点,加入-r 标记。 6.6.5 增加文件系统大小 AIX 为你提供了动态增加文件系统大小的功能,只要你的磁盘上有足够的自由空间可 用。文件系统空间不足可能会引起无法预料的问题。 注意:当一个文件系统被填满,系统再不能对它进行写操作,并返回下面的错误消息: There is not enough room in the file system. 使用命令行增加文件系统的大小 文件系统可以通过 chfs 命令增大,步骤如下: 1. 使用 df 命令找出文件系统当前的大小。 2. 计算你需要增加的块数。 3. 在命令行输入命令: chfs -a size = new_size_in_512-byte_blocks file_system_name Filesystem size changed to new_size_in_512-byte_blocks 使用SMIT增加文件系统的大小 为了使用SMIT增加文件系统的大小,使用下面的步骤: 1. 运行 smitty chjfs 命令,显示如图 6-31。 图 6-31 smitty chjfs 命令 2. 使用箭头键选择你想改变的文件系统并按回车键。屏幕显示如图6-32,它报告当前文件 系统的属性: 第 127 页 图 6-32 设置文件系统的新特征 3. 在SIZE of file system (in 512 byte block)域中输入你所计算得到的文件系统大小的新值。 4. 按回车。SMIT 报告OK,表明该过程顺利完成。 6.6.6 减少文件系统的大小 你可能由于各种原因增加了文件系统的大小。例如,为了安装一个新产品,你增加了 /myfs 文件系统的大小。如果你之后卸装了该产品,/myfs 文件系统中的自由空间将增加。 因为这个空间已经被分配给了 /myfs 文件系统,它不能再被其他文件系统使用。 下面的例子显示如何减少 /myfs 文件系统的大小: 1. 使用下面任何一个命令对 / myfs 文件系统作一个备份: – cpio – backup – tar – 详见第??20页的第 8.2.2 小节,“如何备份当前目录”。该节也包括了对 backup 和 cpio 命令的介绍。 – savevg – 详见第??21页的第 8.2.1 小节,“备份单个卷组”。 2. 使用第??22页,第 6.6.4 小节,“删除一个文件系统”中介绍的步骤删除文件系统 (/myfs)。 3. 使用相同的名字和被减少的大小创建一个新的文件系统。你可以参考第??23页,第 6.6.2 小节,“创建一个文件系统”。 注意:如果你输入的值比容纳当前数据所需的最小空间(在 LV_MIN_LPs 记录中注明)还 小,重建进程将失败。使用 df -k 命令检查当前在文件系统中使用的块,然后用1024除这个 数值,得到文件系统的总 MB 数。 4. 使用第??24页,第8.3.3小节,“如何恢复一个目录”中介绍的步骤将文件系统的备份恢 复到被缩小的文件系统中。 使用 mksysb 缩小一个文件系统 在从一个mksysb恢复rootvg卷组的过程中,有一个选项是在你安装文件系统的磁盘上 收缩(shrink)文件系统。当你选择这个选项时,卷组中的逻辑卷和文件系统被重建,大小第 128 页 为容纳数据所需的最小值。用户定义的卷组也可以被通过执行 restvg 命令的-s标记来使用这 种方式恢复。 6.6.7 检查文件系统的一致性 fsck 命令检查文件系统的一致性并通过交互方式修复文件系统。fsck 命令的常用语法如 下: fsck [ -n ] [ -p ] [ -y ] [ -d BlockNumber ] [ -f ] [ -i i-NodeNumber ] [ -o Options ] [ -t File ] [ -V VfsName ] [ FileSystem1 - FileSystem2 ... ] fsck 命令中常用的标记和它们的含义如表 6-7 所示。 表 6-7 fsck 命令标记 标记 描述 -f 执行一次快速检查。在一般情况下,会被没有进行正确关机操作的系统中断所影响的文件系统 只可能是那些在系统停止时还被装载在系统中的文件系统。-f 标记提示 fsck 命令不检查文件 系统那些已经成功卸载的文件系统。这会由 fsck 命令通过检查文件系统超级块(superblock) 中的 s_fmod 标记来确定。 每当一个文件系统被装载时,该标记被置位;而当文件系统被成功卸载后,该标记被清零。如 果一个文件系统被成功的卸载,就不可能会有什么问题。因为多数文件系统都被成功地卸载, 不检查这些文件系统会减少检查时间。 -p 不显示有关较小的问题的消息,但是自动修复它们。这个标记不承认 -y 标记所认可的批量许 可(wholesale license),它主要是被用于执行系统常规启动时的自动检查。只要系统被自动 运行,你就应当使用这个标记作为系统启动过程的一部分。这个标记也允许分组并行检查。如 果主超级块被损坏,备用超级块就被检验并被拷贝给主超级块。 -t File 指定一个file参数,如果 fsck 命令不能得到足够的内存用来保存它的表,就使用在被检查的文 件系统以外的另一个文件系统中的被指定的文件作为它的临时文件(scratch file)。如果你不 指定 -t 标记,而 fsck 命令又需要一个 scratch file,则它会向你询问scratch file的名字。但是, 如果你已经指定了-p标记,则fsck命令将会失败。如果scratch file不是一个专用文件,它会在 fsck命令结束时被删除。 -y 对fsck命令提出的所有问题假定一个yes的回答。该标记允许fsck命令执行任何它认为必要的动 作。这个标记只在被严重损坏的系统中使用。 fsck 命令检查和交互地修复不一致的文件系统。你应当在装载任何文件系统之前先运行 该命令。你必需能够读取文件系统所在设备的设备文件(例如,/dev/hd0设备)。 一般地,文件系统是一致的,fsck命令只报告文件系统中文件、已用的块和自由块的个 数。如果文件系统是不一致的,fsck命令会显示所发现的不一致的信息并请求你确认修复它 们。如果文件系统不能被修复,则从备份中恢复它。装载一个不一致的文件系统可能会导致 系统崩溃。如果你不用FileSystem参数指定一个文件系统,fsck 命令将检查所有在 /etc/filesystems文件中具有属性 check=TRUE 的文件系统。 注意:缺省地,在/etc/filesystem文件中,/、/usr、/var 和 /tmp 文件系统在它们的区中check 属性被设置为False(check=false)。原因如下: 1. 引导进程会对 /、/usr、/var 和 /tmp 文件系统明确地执行fsck命令。 2. 当/etc/rc文件被运行时,/、/usr、/var 和 /tmp 文件系统被装载。fsck 命令不会修改一个 已被装载的文件系统,并且fsck 对已被装载的文件系统的影响是无法预料的。 6.6.8 初始化 JFS 日志设备 logform 命令初始化一个逻辑卷用作JFS的日志设备,它存放有关文件系统的元数据变 化的事务信息,可以被用来回滚机器崩溃时未完成的操作。下面是logform命令的常用语法: 第 129 页 logform LogName 注意: - logform 命令是破坏性的;它擦除逻辑卷上的所有数据。 - 在一个文件系统上意外运行该命令将完全破坏该文件系统的数据。如果一个日志设备因被 一个已装载的文件系统使用而打开,则在对该日志设备运行logform命令之前必需先卸载该 文件系统。logform 命令破坏在现有日志设备上的所有日志记录,这可能导致文件系统数据 丢失。你可以使用下面的命令进行检查以确认日志设备是关闭的: lsvg -l VGname 6.6.9 JFS 日志设备的放置 JFS 日志逻辑卷应被放置在与最活跃的文件系统不同的一个物理卷上,最好是在具有 最低的I/O占用的磁盘上,以提高并行资源利用率。为每个文件系统使用一个独立的JFS日 志也是被支持的。但是,要特别注意放置多个JFS日志在同一个物理磁盘上的情况,并尽可 能避免这样做。 6.6.10 允许大文件的文件系统 AIX Version 4.3 及以后版本支持文件大小超过2GB。64-bit进程不需要特别申明它们懂 得大文件便可以打开文件。 对AIX Version 4.2中支持的大文件,文件大小不能超过2 GB。 在允许大文件的文件系统中,存放在 4 MB 文件偏移(offset)之前的文件数据被分配 在 4096 字节的块中,而存放在4 MB 文件偏移之外的文件数据则被分配 128KB 的大磁盘 块。大磁盘块实际上是 32 组连续的 4096 字节块。 例如,在允许大文件的文件系统中,一个 132 MB 的文件具有1024 个4KB磁盘块和1024 个128KB磁盘块。在一个普通的文件系统中,132MB的文件将需要33个间接的磁盘块(每 个被填充1024个4KB块的磁盘地址)。但是,大文件的几何结构只需要两个间接的磁盘块被 用于 132 MB 文件。 确定允许大文件的文件系统 你可以使用lsfs -q file_system命令确定文件系统是否允许大文件,如图 6-33所示: 图 6-33 lsfs -q 命令输出 在上图的 bf: 输出域表明支持大文件。如果值为true,则该域指定文件系统是允许大文 件的。 6.7 文件系统问题排除 本节将讨论在管理LVM时可能遇到的一些问题以及如何解决它们。 第 130 页 6.7.1 修复超级块错误 如果你接收到下面所列的由 fsck 或 mount 命令发出的错误消息之中的一个,问题可能 就是超级块被破坏(或称为 dirty)。 fsck: Not an AIX3 file system fsck: Not an AIXV3 file system fsck: Not an AIX4 file system fsck: Not an AIXV4 file system fsck: Not a recognized file system typ mount: invalid argument 通过使用下面的命令将超级块的备份恢复到主超级块中,可以解决这个问题: dd count=1 bs=4k skip=31 seek=1 if=/dev/lv00 of=/dev/lv00 下面的命令只在 AIX Version 4中可用: fsck -p /dev/lv00 一旦恢复进程完成,使用fsck命令检查文件系统的完整性。 fsck /dev/lv00 在多数情况下,把备份的超级块恢复到主超级块中将恢复文件系统。如果这还不能解决 问题,只能重建文件系统并从备份中恢复数据。 6.7.2 不能卸载文件系统 如果一个文件系统中存在任何活跃着的引用(references),该文件系统就不能被卸载。 将显示下面的错误消息: Device busy 或 A device is already mounted or cannot be unmounted 在下面的情形中,在一个已装载的文件系统中可能会留下一个被打开的引用: - 文件系统中的文件被打开。在卸载文件系统之前先关闭这些文件。fuser 命令通常是确定有 什么还活跃在文件系统中的最佳途径。fuser 命令将返回在一个指定的文件系统中具有打开 的引用的所有进程的ID号,如下例所示: # fuser -xc /tmp /tmp: 2910 3466 11654 26400 具有打开的引用的进程可以被 kill 命令杀掉,卸载就能够顺利完成了。 - 如果文件系统仍然忙,而且仍然不能被卸载,可能是因为一个被载入的内核扩展(kernel extension)还存在于源文件系统中。fuser 命令不会显示这类引用,因为没有涉及任何用户 进程。但是 genkex 命令会报告所有被载入的内核扩展。 - 还有文件系统被装载在这个文件系统中。先卸载这些文件系统,然后再卸载这个文件系统。 如果有任何文件系统被装载在一个文件系统中,在源文件系统中其他文件系统的装载点上会 留下被打开的引用。使用 mount 命令得到已装载的文件系统的列表。卸载被装载在你想卸 载的文件系统中的所有文件系统。 - 一个进程在使用文件系统中的一个目录作为其当前工作目录。fuser 命令会在所有使用一个 目录作为其当前工作目录的进程的ID号后面标上一个 c,并且 -u 标记会标识出进程的属主。 它可以与find命令一起使用,如下例所示: 第 131 页 # find /home -type d -exec fuser -u {} \; /home: /home/lost+found: /home/guest: /home/kenzie: 3548c(kenzie) 对于一个不活跃的进程,让所标出的用户将他们的当前工作目录换到该文件系统之外的 一个目录中,否则就杀掉进程,则umount命令能够完成。 6.8 LVM 命令总结 本节将总结在本章各小节中用到的重要命令。 6.8.1 PV 命令 下面的命令是在与物理卷相关的操作中最常用的命令: lsdev 列出ODM中的设备。 chdev 修改设备的特征。 mkdev 增加一个设备到系统中。 chpv 修改物理卷的状态。 lspv 显示一个卷组中的一个物理卷的相关信息。 migratepv 将被分配在一个物理卷中的物理分区转移到另一个或多个物理卷中。 6.8.2 VG 命令 下面的命令是在与卷组相关的操作中最常用的命令: mkvg 创建一个新卷组。 extendvg 增加一个物理卷到一个卷组中。 reducevg 从一个卷组删除一个物理卷。 chvg 修改一个卷组。 lsvg 显示一个卷组的相关信息。 importvg 安装一个卷组。 exportvg 删除一个卷组。 reorgvg 重组一个卷组。 syncvg 同步一个卷组。 varyonvg 使一个卷组可用。 varyoffv 使一个卷组不可用。 6.8.3 LV 命令 下面是一些最常用的逻辑卷命令: mklv 创建一个逻辑卷。 lslv 列出一个逻辑卷的特征。 第 132 页 rmlv 删除一个逻辑卷。 extendlv 增加一个逻辑卷的大小。 chlv 修改一个逻辑卷的特征。 mklvcopy 为一个逻辑卷增加拷贝。 rmlvcopy 从一个逻辑卷删除拷贝。 6.8.4 文件系统命令 下面是本章中所讨论到的文件系统命令: chfs 修改一个文件系统的特征。 crfs 增加一个文件系统。 lsfs 显示一个文件系统的特征。 rmfs 删除一个文件系统。 mount 使一个文件系统可用。 fsck 检查文件系统的一致性并交互地修复文件系统。 umount 卸载一个以前装载的文件系统、目录或文件。 df 报告有关文件系统空间的信息。 6.9 测验 下面的认证评测问题将帮助检验你对本章内容的理解。 1. While using the SMIT install menus to install an LPP, the response yes has been selected for the option: EXTEND file systems if space needed. After successfully installing the LPP, the /usr file system appears to be unnecessarily large. Which of the following actions can be performed to reduce the size of the /usr file system? A. Backup, unmount, remove, recreate and restore the file system. B. Unmount, run defragfs /usr and the reducefs -size XXX /usr commands . C. Boot from mksysb tape and follow the procedure to reduce the file system. D. Update /etc/filesystems with the desired size for /usr and reboot the system. 2. A system administrator's daily monitoring has revealed a failing disk drive. While examining the system, the administrator identified an unallocated drive. Which of the following actions should be performed first to migrate the data from the failing drive to the unallocated drive? A. Migrate logical volumes to the new drive. B. Add the unallocated drive to the volume group. C. Create a copy of the file systems to the new drive. D. Create a mirror of the logical volumes to the new drive. 3. Due to high I/O volume to several file systems, the system administrator has decided to create a second JFS log volume to balance the I/O requests. After creating the logical volume to serve as the JFS log, what must be done to make the jfslog available for use? 第 133 页 A. Use the chv command to enable the JFS log volume. B. Use the chjfs command to enable the JFS log volume. C. Use the logform command to format the logical volume. D. Edit /etc/filesystems and add the logical volume name. 4. A system has been recovered from a hard disk failure and the failed disk has been replaced with a new unformatted one. When the system administrator varies on the volume group, an error message about a missing or unavailable disk matches the one the system administrator replaced. Which of the following commands will eliminate this error message? A. cfgmgr B. export VGName C. mkdev -1 hdisk 3 D. reducevg -df VGName PVID 下面是作者增加的一些问题,以进一步检查你对本章内容的理解。 1. The system administrator has created 20 file systems that are set to mount each time the system boots. Which of the following is the quickest method to mount these file systems? A. mount -a B. Reboot the system. C. /usr/lib/methods/cfgfs D. Mount each individual file system 2. To increase the size of a file system, the system administrator must: A. Unmount the file system. B. Boot the system into single user mode. C. Have enough free physical partitions within the volume group. D. Back up the file system, change the size, and restore the file system. 3. To decrease the size of the /home file system, the system administrator must: A. Use the chfs command. B. Use the reducefs command. C. Run the defragfs command and then use the reducefs command. D. Back up, delete, redefine, and restore the file system. 4. What is the correct sequence of steps to mirror a volume group? 1. extendvg 2. mirroring 3. syncvg 4. set quorum 5. mkfscopy 6. reorgvg A. 1, 2, 3, 4 B. 1, 5, 3, 4 C. 1, 2, 4, 6 D. 6, 5, 4, 3 5. Several error log entries indicate that hdisk5 is going bad. Before it completely fails, the system administrator decides to copy the information from that disk 第 134 页 to the other five hard disks in that volume group. Which of the following commands should be used? A. copyfs B. movelv C. populatefs D. migratepv 6. A system has one internal disk drive (hdisk0) and one external disk drive (hdisk1). – hdisk0 is a 2.2 GB SCSI/2 Fastwide disk drive and contains a volume group called rootvg. – hdisk1 is a 4.5 GB SSA drive and contains a volume group called appsvg. – The external SSA drive has over 3.0 GB of free space. The system administrator would like to make a mirrored copy of a 500 MB logical volume that currently is on hdisk0. What would prohibit the system administrator from establishing a mirrored copy between the internal and external disk drives? A. The disks are not the same physical size. B. The disks are not within the same volume group. C. AIX does not support mirroring logical volume mirroring. D. The disks are not the same drive type (for example, SSA verses SCSI/2). 7. Which of the following commands displays the status of a physical volume (hdisk1) before adding it to a volume group called cdvg? A. lsvg cdv B. chvg cdv C. lspv hdisk1 D. chpv hdisk1 8. What step must be taken prior to removing a file system? A. Unmount the file system. B. Remove the logical volume. C. Delete the data from the file system. D. Remove the NFS export for the file system 6.9.1 答案 下面是对评测问题的回答。 1. C 2. B 3. C 4. C 下面是对附加问题的回答。 1. A 2. C 3. D 4. A 第 135 页 5. D 6. B 7. C 8. A 6.10 练习 以下的练习是为自学提供的例题。它们将帮助你加深对本章的理解。 1. 列出你系统中的所有物理卷,卷组,逻辑卷,物理分区和文件系统。 2. 确定rootvg卷组位于哪块磁盘上。 3. 增加一个新的物理卷到你的系统中,并检查一下以确认驱动器可用。 4. 在这个物理卷上创建一个名为datavg的卷组。 5. 创建一个名为 datafiles 的文件系统。 6. 卸载 datafiles 文件系统。 7. 为 datavg 创建一个镜像。 8. 确定你是否具有一个磁盘定额。 9. 确定你的系统中有多少 VGDA 和 VGSA。 10. 增加文件系统 datafiles 的大小。 11. 减少文件系统 datafiles 的大小。 12. 列出文件系统 datafiles 和卷组 datavg 所在的磁盘。 13. 删除 datavg 的镜像,并检查一下以确认逻辑卷没有被镜像。 14. 删除 datavg 卷组。 15. 从除 rootvg 以外的任何一个其他卷组中把数据转移到一个没有被分配的驱动器上。 第 136 页 第七章 系统分页空间(System Paging Space) 为了给一个有限的实际内存空间提供一个大的虚拟内存空间,系统使用实际内存作为工 作空间,并把非活动数据和程序放置在一个磁盘上。包含这些数据的磁盘区域被称为系统分 页空间。本章将讨论对系统分页空间相关功能的管理。 7.1 分页空间概述 一个页面(page)是一个存放4KB数据的虚拟内存单元,可以被在实际存储空间和附 属存储空间之间传递。 一个分页空间(paging space),也被称为一个交换空间(swap space),是一个属性 类型等于paging的逻辑卷。这种类型的逻辑卷被称为分页空间逻辑卷或简单地称为分页空 间。当系统中自由的实际内存太低时,最近没有被用到程序或数据被从实际内存转移到分页 空间,以释放实际内存给其他活动。 系统安装会在驱动器hdisk0上创建一个缺省分页逻辑卷(hd6),也称为主分页空间。 缺省的分页空间大小在AIX安装的系统定制阶段被确定,并参照下面的标准: - 除了hd6,分页空间可以使用的空间不小于16MB。在AIX Version 4.2.1中,hd6 可以使用 的空间不小于 32 MB,而在 AIX Version 4.3 及以后版本中,不小于 64 MB。 - 分页空间可以使用的空间不能大于总体磁盘空间的20%。 - 如果实际内存小于 256 MB,分页空间为实际内存的两倍。 - 如果实际内存大于或等于 256 MB,分页空间为 512 MB。 7.1.1 对分页空间的考虑因素 应用所需的分页空间的大小取决于在系统中执行的动作的类型。如果分页空间过低,进 程可能会丢失。如果分页空间被用光,系统可能会不稳定(panic)。当检测到分页空间过低 的状态时,需要定义更多的分页空间。系统监视自由分页空间块的数量并检测一个分页存储 空间何时存在。vmstat 和 topas 命令获取与这个状态相关的统计数据。当自由分页空间块的 数量低于一个被称为分页空间警告级别(paging space warning level)的阈值时,系统会把 分页空间不足的状态通知给所有进程(除内核进程外)。 分页空间的放置 来往于分页空间的 I/O 是随机的,并且通常都是每次一个页面。vmstat 和 topas 命令的 报告会注明正在发生的分页空间 I/O的数量。vmstat 命令输出的一个例子如图 7-1所示。 第 137 页 图 7-1 vmstat 命令输出 topas 命令是在 AIX Version 4.3.3 中被引入的。topas 命令的输出如图7-2所示。 图 7-2 topas 命令输出 为了提高页面调度性能,你应当使用多个分页空间并尽可能将它们部署在独立的物理卷 上。多个分页空间可以被部署在同一个物理卷上,但是,我们不建议这样做。 分页空间大小 通常的建议是分页空间大小的总数至少应当等于机器实际内存大小的两倍,最大为 256 MB 内存空间的两倍(分页空间为 512 MB)。对于大于 256 MB 的内存,建议使用下面的规 则: Total paging space = 512 MB + (memory size - 256 MB) * 1.25 最理想的状况是拥有多个大小几乎相等的分页空间,各自位于一个单独的物理磁盘驱动 器上。如果你决定创建附加的分页空间,在比rootvg上的物理卷更少被调用的物理卷上创建第 138 页 它们。 在系统引导时,只有主分页空间(hd6)被激活。因此,所有在引导期间被分配的分页 空间块都在主分页空间上。这意味着主分页空间应当稍微大于备用分页空间。备用分页空间 应当全部大小一致,以确保循环调度(round-robin)算法能够有效工作。 lsps -a 命令提供系统中每个分页空间当前利用率的快照(snapshot),当 lsps -s 命令提 供对总体活动分页空间的总结及其当前利用率。 对具有分页空间的卷组的限制 在AIX 5L Version 5.1以前的系统中,避免在便携式磁盘上的卷组中增加分页空间。删 除一个在线的具有活动分页空间的磁盘将需要重启系统以释放分页空间,并且因此引起用户 中断(user disruption)。 注意:在 AIX 5L Version 5.1 以前的版本中,具有活动分页空间的卷组不能被停止或导出。 在停止一个具有活动分页空间卷的卷组之前,确保分页空间在系统初始化时不会被自动激 活,然后重启系统。 7.2 管理分页空间 使用下面的命令管理分页空间: chps 改变分页空间的属性。 lsps 显示分页空间的特征。 mkps 创建一个附加的分页空间。 rmps 删除一个不活动的分页空间。 swapon 激活一个分页空间。 swapoff 释放一个或多个分页空间。 swapon 命令在系统初始化(/sbin/rc.boot)过程的早期被用于激活初始分页空间设备。 在后面的初始化阶段中,当其他设备成为可用时,swapon 命令被用于激活附加分页空间, 这样页面调度操作可以跨越多个设备发生。活动的分页空间不能被删除。为了删除一个活动 的分页空间,它必须首先被停止。在AIX Version 4.3 及以前版本的AIX中,为了完成这个工 作,使用 chps 命令使分页空间在下次系统重启后不能再被使用。然后重启系统,分页空间 被停止,便可以使用 rmps 命令将其删除了。在AIX 5L Version 5.1中,使用swapoff命令可 动态释放分页空间,然后就可以运行rmps命令。 注意:在AIX Version 4.3 及以前版本的AIX中,分页空间不能被动态释放。它要求系统重启。 因此,任何需要删除分页空间的维护任务应当被安排在一个适当的时间以最小化用户中断。 被 swapon -a 命令激活的分页空间设备被列在 /etc/swapspaces 文件中,如下面的例子 所示。当使用 mkps -a 命令创建分页空间后,它被增加到这个文件中,而当使用 rmps 命令 删除它后,它就会被从这个文件中删除,并且使用 chps -a 命令也会将其增加或删除。 第 139 页 7.2.1 显示分页空间特征 lsps 命令显示分页空间特征,如分页空间名,物理卷名,卷组名,大小,已用分页空间 的百分比,是否空间被激活或停止,以及是否分页空间被设置成自动的。分页空间参数指定 其特征将要被显示的分页空间。 下面的例子显示使用带有不同标记的lsps命令得到分页空间信息。-c标记将信息以冒号 分隔的方式显示,并且分页空间大小被显示为物理分区个数。 7.2.2 增加和激活一个分页空间 为了使一个分页空间对系统可用,你必需增加这个分页空间,并激活它。系统中可以用 于页面调度的总体空间为所有活动的分页空间逻辑卷大小的总和。 注意:你不能在移动磁盘的卷组上增加分页空间,因为移除一个具有活动分页空间的磁盘将 导致系统崩溃。 下面的例子显示的如何创建一个新的 20 MB 分页空间逻辑卷: 1. 运行 SMIT 快速路径 smitty mkps,屏幕显示如图 7-3 所示。 第 140 页 图 7-3 smitty mkps 命令 2. 使用箭头键高亮显示 rootvg 卷组名,并按回车键,屏幕显示如图 7-4 显示。 图 7-4 Add Another Paging Space 菜单 3. 在SIZE of paging space (in logical partitions)域中输入5,4 MB 的5 倍则得到20 MB 的 分页逻辑卷。 4. 使用 Tab 键将 Start using this paging space NOW? 域从 no 置换成 yes,或使用 F4 键 选择它。 5. 使用 Tab 键将 Use this paging space each time the system is RESTARTED? 域从 no 置 换成 yes。 6. 按回车键创建分页逻辑卷。 7. SMIT 返回新的设备名 paging01 和一个 OK 提示。按 F10 键返回到命令行。 8. 你现在可以使用 lsps -a 命令检查被增加和激活的新设备。 # lsps -a Page Space Physical Volume Volume Group Size %Used Active Auto Type paging01 hdisk1 rootvg 20MB 1 yes yes lv paging00 hdisk1 rootvg 80MB 1 yes yes lv hd6 hdisk1 rootvg 256MB 1 yes yes lv 7.2.3 修改分页空间的属性 你只可以修改分页空间逻辑卷的两个属性。 第 141 页 - 为下次重启释放或激活分页空间。 - 为已存在的分页空间增加大小。 在 AIX 5L Version 5.1 中增加了新的功能,不必重启系统就可以释放一个分页空间和减 少分页空间的大小 释放分页空间 下面的例子显示如何停止一个分页逻辑卷 paging03: 1. 运行 SMIT 快速路径命令 smitty chps,得到如图 7-5 显示的 PAGING SPACE name 提示 菜单。 图 7-5 smitty chps 命令 2. 使用箭头键高亮显示分页空间名 paging03并按回车。 3. 使用 Tab 键将 Use this paging space each time the system is RESTARTED? 域从 yes 置 换成 no,如图 7-6 显示。 图 7-6 在AIX Version 4.3中修改分页空间的属性 4. 按回车键修改 paging03 分页逻辑卷。 5. 当 SMIT 返回一个 OK 提示,你可以按 F10 键返回到命令行。 6. 重启系统并运行 lsps -a 命令确认paging03的状态已变成不活动(inactive)的。 在 AIX 5L Version 5.1 系统中动态释放一个分页空间 swapoff 命令不必重启系统即可释放分页空间。 第 142 页 swapoff 命令语法如下: # swapoff DeviceName {DeviceName ...} 使用命令 swapoff /dev/paging03 释放分页空间 paging03,或使用如图 7-7 显示的 SMIT 快速路径 smitty swapoff 。 图 7-7 smitty swapoff 命令 注意:因为有必要从被释放的分页空间把所有在用的页面转移到其他分页空间上,所以在其 他活动的分页空间上必需有足够的可用空间。 增加分页空间的大小 下面的例子显示如何为一个已经存在的分页空间 paging03 增加 20MB 的大小。 1. 运行 SMIT 快速路径命令 smitty chps,进入如图 7-5 显示的 PAGING SPACE name 菜单。 2. 使用箭头键高亮显示分页空间名 paging03,然后按回车键。 3. 在 NUMBER of additional logical partitions 域中输入5,4 MB 的5 倍则得到增加 20 MB 的 分页逻辑卷。 4. 按回车键修改 paging03 分页逻辑卷。 5. 当 SMIT 返回一个 OK 提示,你可以按 F10 键返回到命令行。 6. 运行 lsps -a 命令确认 paging03 的大小已被增加。 减少分页空间大小 AIX 5L Version 5.1 引入了 chps -d 命令。它允许直接减少分页空间的大小,而不是先 释放它,然后重启,然后删除分页空间,然后用一个更小的大小重建它,然后重新激活它。 使用 chps -d 命令将 paging03 的大小减少 2 个逻辑分区,如下例显示: # chps -d 2 paging03 shrinkps: Temporary paging space paging04 created. shrinkps: Paging space paging03 removed. shrinkps: Paging space paging03 recreated with new size. 7.2.4 删除一个分页空间(除 hd6 之外) 下面的例子显示在 AIX Version 4.3 及以前的 AIX 版本中删除一个现存分页空间 第 143 页 paging00 所需要执行的步骤。 注意:不正确地删除缺省分页空间可能使系统无法重启。这个过程只能由有经验的系统管理 员来尝试。你必需在删除之前先释放这个分页空间,并需要重启。 执行 sysdumpdev –l 命令检查你在使用的主DUMP设备(primary dump device)。你不 能删除缺省的DUMP设备。你必需先将缺省DUMP备改为另一个分页空间或逻辑卷,然后再 删除这个分页空间。为了改变缺省DUMP设备,使用下面的命令: sysdumpdev -P -p /dev/new_dump_device 1. 参考第??25页的第 7.2.3 小节,“修改分页空间的属性”,修改分页空间paging00的属 性,这样重启后它就不会被激活。 2. 执行shutdown -Fr命令重启系统。 3. 系统启动后,以 root 登录并运行快速路径命令 smitty rmps 进入 Remove a Paging Space 菜单。另外,你也可以执行下面的命令来使用 SMIT: a. 运行 smitty。 b. 选择 System Storage Management (Physical & Logical Storage)。 c. 选择 Logical Volume Manager。 d. 选择 Paging Space。 e. 选择 Remove a Paging Space 进入相同的菜单。 4. 按 F4 键得出一个分页逻辑卷的列表。 5. 使用箭头键高亮显示 paging00 逻辑卷名,然后按回车键三次(一次是将名字输入到域中, 一次是得到警告,而第三次是运行命令)。 6. 当 SMIT 返回一个 OK 提示及下面的消息,你可以按 F10 键返回命令行。 rmlv: Logical volume paging00 is removed 下面的例子显示了你在试图删除一个活动分页空间 paging01 时得到的错误消息。 下面的例子显示在 AIX 5L Version 5.1 中你应如何删除分页空间 paging00: # swapoff /dev/paging00 # rmps paging00 rmlv: Logical volume paging00 is removed. 7.2.5 管理缺省分页空间(hd6) 缺省安装会在包含部分或所有忙碌的 /(root)和 /usr 文件系统的驱动器hdisk0上创建 一个分页逻辑卷(hd6)。系统管理员可能需要减少缺省分页空间或将其移动到一个较不忙 碌的硬盘上,以便: - 通过强制调页和交换到系统中其他较不忙碌的磁盘上来提高存储系统性能。 - 节省hdisk0上的磁盘空间。 删除缺省分页空间(hd6)需要执行一个特殊的过程。这个分页空间在引导期间就被配第 144 页 置系统的shell脚本激活。为了删除一个缺省分页空间,必需修改这些脚本,并创建一个新 的引导映像。 下面的例子显示了检查你的逻辑卷和文件系统在物理卷hdisk1上的分布情况的命令: 减少分页空间 hd6 的大小 下面的例子显示将分页空间 hd6 的大小从 160 MB 减少到 120 MB 所需要执行的步骤。 下面的各步全部都是必需的 – 即使没有与hd6直接相关。需要有附加的步骤是因为当系统在 运行时分页空间不能被释放。 注意: - AIX Version 4.2.1 及以后版本不允许将hd6的大小减少到低于32 MB。如果这样做,系统 将不能重启。 - 如果你决定要缩小 hd6,你必需为 rootvg 中的软件留出足够的空间。对于缩小分页空间, 有一个经验法则是保留相当于物理内存大小的足够空间。为了知道物理内存大小,使用下面 的命令: lsattr -E -l sys0 -a realmem 1. 执行下面的命令在rootvg上创建一个临时分页空间: mkps -a -n -s 30 rootvg hdisk0 该命令输出分页空间的名字(如果没有别的,则为 paging00)。 2. 使用下面的命令释放hd6分页空间以便为后面过程中的重启作好准备。 chps -a n hd6 3. 修改/sbin/rc.boot文件中的分页空间记录,从: swapon /dev/hd6 改为 swapon /dev/paging00. 4. 运行下面的命令检查主转储设备的名称: # sysdumpdev -l primary /dev/hd6 secondary /dev/sysdumpnull copy directory /var/adm/ras forced copy flag TRUE always allow dump FALSE 5. 如果主转储设备为 hd6,将其修改为另外一个分页空间。下面的命令显示如何把主转储 设备修改为 paging00: 第 145 页 # sysdumpdev -P -p /dev/paging00 primary /dev/paging00 secondary /dev/sysdumpnull copy directory /var/adm/ras forced copy flag TRUE always allow dump FALSE 6. 使用bosboot命令为一个硬盘映像创建一个可引导的映像。下面的步骤需要用来在初始化 过程中更新系统映像,以反映对rc.boot所作的修改。 bosboot -d /dev/hdisk0 -a 7. 将系统钥匙(如果有)置于normal 位置并使用下面的命令,将关闭并重启操作系统。 shutdown -r 8. 系统重启后,删除hd6分页空间。 rmps hd6 9. 为hd6分页空间创建一个新的大小为120 MB的分页空间逻辑卷。 mklv -t paging -y hd6 rootvg 30 10. 使用 lsps -a 命令检验缺省分页空间hd6大小的减少。 11. 将主转储设备名改回为分页空间 hd6。 sysdumpdev -P -p /dev/hd6 12. 修改/sbin/rc.boot文件中的分页空间记录,从: swapon /dev/paging00 改为 swapon /dev/hd6. 13. 使用bosboot命令为一个硬盘映像创建一个可引导的映像。 bosboot -d /dev/hdisk0 -a 14. 运行下面的命令将新的分页空间hd6改为在系统重启时自动被激活。 chps -a y hd6 15. 运行下面的命令修改临时分页空间paging00的属性,这样它在下次系统重启后就不会自 动被激活了。 chps -a n paging00 16. 将系统钥匙(如果有)置于normal位置并使用下面的命令关闭和重启系统: shutdown -r 17. 在系统重启后,删除临时分页空间。 rmps paging00 在 AIX 5L Version 5.1中缩小 hd6 你可以使用 chps -d 命令动态减少主分页空间hd6的大小。该命令会防止你把hd6的大小 减少到低于32 MB或真的删除它。如果你要缩小主分页空间,必需创建一个临时引导映像和 一个指向这个临时主分页空间的临时的 /sbin/rc.boot,以确保系统总是处在一个可以被安全 重启的状态。 将 hd6 分页空间转移到另一个卷组中 我们建议不要将一个名为hd6的分页空间从rootvg转移到另一个卷组中,因为在某些地 方,这个名字是被硬编码的(hard-coded)。 只有在rootvg中的分页空间会在引导进程的第二个阶段中被激活,而且如果在rootvg中 没有分页空间会严重影响系统引导的性能。如果你需要把大多数分页空间放在其他卷组中, 最好是先使hd6尽可能缩小(等于物理内存),然后在其他卷组中创建更大的分页空间。 第 146 页 在同一个VG中转移 hd6 分页空间 将缺省分页空间从hdisk0转移到相同卷组中的另一块磁盘上是不需要系统重启的。 下面的例子显示把缺省分页空间(hd6)从hdisk0转移到hdisk1的命令。 migratepv -l hd6 hdisk0 hdisk1 根据分页空间的大小,这需要花掉一些时间。 7.3 测验 下面的问题是作者提出来的,以进一步检查你对本章内容的理解。 1. The system administrator realizes that paging space, paging12, must first be removed from hdisk12. Which of the following is the correct sequence of events? A. chps -an paging12 , reboot, rmps paging12 B. swapoff paging12 , rmps paging12 C. swapoff paging12 , reboot , rmps paging12 D. chps -an paging12 , swapoff paging12 , rmps paging12 2. A customer would like to remove an unneeded, but active, paging space called paging00. What is proper sequence of steps to accomplish this? A. Remove the paging space by using the rmps command and reboot the system. B. Disable the paging space by using the chps command, reboot the system, and remove the paging00 logical volume by using the rmps command. C. Disable the paging space by using the chps command, remove the paging00 logical volume by using the rmps command, and reboot the system. D. Disable the paging space by using the chps command, reboot the system, and remove the paging00 logical volume by using the rmlv command. 3. A system administrator would like to list all of the paging spaces residing on the server. What is the correct syntax of the command to accomplish this? A. lsps -a B. lsps -s C. lsps -l D. lsps -all 7.3.1 答案 1. A 2. B 3. A 第 147 页 7.4 练习 以下的练习是为自学提供的例题。它们将帮助你加深对本章的理解。 1. 使用lsps命令确定系统中的分页空间。 2. 在系统中增加新的分页逻辑卷,大小为 5 MB。 3. 讨论在减少缺省分页空间大小中涉及的所有步骤 。 4. 讨论在删除一个分页空间之前你必需采取的预防措施。 5. 如何改变主转储设备? 6. 如何把 hd6 分页空间从一个硬盘转移到相同卷组中的另一个硬盘上? 7. 哪个命令可以显示系统中的分页活动状态? 8. 对分页空间逻辑卷大小增加 10MB。 9. 讨论减少 hd6 分页空间大小的过程与减少系统中其他任何分页空间大小的过程有什么不 同。 第 148 页 第八章 系统备份、恢复和可用性 你可以使用多种命令来对系统制作备份,下面是最常用的备份命令的一个列表。这里给 出了每个命令的简短描述,并在表8-1中列出了它们对应的标记。 tar tar 命令通过写文件到档案存储介质或从档案存储介质取文件来操作档案库。被 tar命令使用的文件由File参数表示。如果File参数指向一个目录,则该目录及其中 的所有文件和目录均被引用。 cpio cpio 命令将文件拷贝进/出档案存储器和目录。 dd dd 命令读取 InFile 参数或标准输入,执行指定的转换,然后将被转换的数据拷 贝到 OutFile 参数或标准输出。输入和输出块大小可以被指定以利用原始物理I/O (raw physical I/O)的优势。 pax pax 命令是为系统转储内像和大于 2 GB 的映像所应当选择的归档方式。 mksysb mksysb 命令为根卷组创建一个可安装的映像,写到一个文件中或一个可引导的 磁带上。 savevg savevg 命令保存非根卷组。 backup backup 命令创建文件的拷贝到一个备份介质上,如磁带或软盘。拷贝为以下两 种备份格式之一:特定文件备份(使用 -i 标记)或按 i-node 作的整个文件系统 备份。 restore restore 命令读取由backup命令创建的档案并提取其中存储的文件。这些档案既 可以是文件名格式也可以是文件系统格式。 restvg 使用 restvg 命令恢复一个卷组。 tctl 使用 tctl 命令控制磁带设备。 表 8-1 备份命令及其标记 命令 标记 描述 -x 从档案中提取文件。 -c 创建一个新的档案并写到指定文件。 -t 按照文件在档案中出现的顺序列出档案中的所有文件。 -f Archive 使用 Archive 变量作为要被读取或写入的档案。例如,/dev/fd0。 -p 说明恢复域到其原始模式,忽略当前的表征码(umask)。 tar -v 列出每个正在处理的文件的名字。 -i 从标准输入读取一个被cpio -o命令创建的档案文件,并将其中名字与 Pattern参数相匹配的文件拷贝出来。 -o 从标准输入读取文件路径名,并将这些文件拷贝到标准输出。 -c 以ASCII字符格式读写头信息。如果一个 cpio 档案是使用 -c 标记创建的, 则它必需被使用 -c 标记提取。 -v 列出文件名。 -d 创建所需的目录。 -u 无条件拷贝。现在一个旧文件取代了一个同名的新文件。 -m 保持以前的文件修改时间。这个标记在拷贝目录时不能使用。 cpio -B 执行 512 字节的块输入和输出到一个记录。 if=InFile 指定输入文件名;缺省为标准输入。 of=OutFile 指定输出文件名;缺省为标准输出。 dd skip=SkipInput Blocks 在开始拷贝之前先跳过 SkipInputBlocks 值指定个数的输入块。 -a 将文件附加在一个档案的尾部。 pax -f Archive 指定一个要使用的档案文件的路径,以代替标准输入(当 -w 标记未被指 定时)或标准输出(当 -w 标记被指定但是 -r 标记未被指定时)。 第 149 页 -r 从标准输入读取一个档案文件。 -v 写有关进程的信息。如果 -r 或 -w 标记都未被指定,-v 标记产生一个冗长 目录(table of contents );否则,档案成员路径名被写到标准错误 (standard error)中。 -w 以指定的档案格式写文件到标准输出。 -x Format 指定输出档案格式。如果不提供格式,pax 将缺省使用 pax 格式。 -e 不备份列在 /etc/exclude.rootvg 文件中的文件。 -i 调用 mkszfile 命令,在备份时自动产生 /image.data 文件。 -m 调用 mkszfile 命令产生映射文件。 mksysb -X 根据需要自动扩展 /tmp。 -i 调用mkvgdata命令创建数据文件。 -f Device 指定存储映像的设备或文件名。缺省为 /dev/rmt0 设备。 savevg -e 使用该命令时不备份在/etc/exclude.vgname文件中指定的文件。 -i 指定从标准输入读文件并用文件名归档。 -p 指定文件在归档前先被打包或压缩。只有小于 2GB 的文件才能被打包。 这个选项只能在从一个不活动的文件系统备份文件时才能用。当备份在进 行当中时修改一个文件将导致备份被破坏并不能被用于恢复数据。当备份 到一个执行压缩的磁带设备上时,这个选项可以省略。 -q 指示可移动的介质已准备好。当你指定 -q 标记时,backup 命令进行中不 再提示你准备备份介质。按回车键继续。 -u 更新 /etc/dumpdates 中的时间、日期和最近一次增量备份的级别。 backup -v 指示 backup 命令显示有关备份的附加信息。 -d 指示如果File参数是一个目录,则目录中所有文件将被恢复。这个标记只 有当档案为文件名格式时才能被使用。 -f Device 指定输入设备。为了从一个命名的设备接收输入,指定Device变量作为 路径名(如 /dev/rmt0)。为了从标准输出设备接收输入,指定一个 - (减 号)。 -q 指定第一个已卷准备好,restore命令不再提示你装载卷和按回车。 -r 恢复一个文件系统档案中的所有文件。 -s SeekBackup 指定备份从一个含多个备份的磁带档案进行查找和恢复。-s 标记只有当 档案是被写入到一个磁带设备时才可用。为了正确地使用 -s 标记,必须 指定一个no-rewind-on-close和 no-retension-on-open 磁带设备,如 /dev/rmt0.1 或 /dev/rmt0.5。 -t 显示有关备份档案的信息。如果档案是文件系统格式,把在档案中发现的 所有文件列表写到标准输出。 -T 显示有关备份档案的信息。如果档案是文件名格式,把包含在卷头的信息 和在档案中发现的所有文件的列表写到标准输出。 -v 在恢复时显示附加信息。 restore -x 单个地恢复由File参数指定的文件。 -f Device 指定备份介质的设备名,缺省为 /dev/rmt0。 -p PPsize 指定在每个物理分区中的MB数。如果不指定,restvg 使用最佳的PP大小 值,这取决于被恢复到的最大的磁盘。 restvg -s 指定以可容纳文件系统的最小的大小创建逻辑卷。 -b 指定被用于读写磁带设备的块大小的字节数。 tctl -f 指定要的磁带设备。 8.1 mksysb 命令 mksysb 命令为rootvg卷组上的所有已装载的文件系统创建一个可引导的映像。你可以 使用这个备份命令重装系统到其初始状态。 磁带格式包括一个 BOS 引导映像,一个 BOS 安装映像和一个伪目录表(dummy TOC),接着是系统备份(根卷组)映像。根卷组映像采用备份文件格式,以一个数据文件 开始,接着是任何可选的映射文件。 第 150 页 用户定义的分页空间和裸设备不被备份。 8.1.1 mksysb 磁带的数据布局 mksysb 磁带的布局如图8-1所示。 图 8-1 mksysb 磁带的布局 BOS 引导映像包含一个系统内核的拷贝和从mksysb磁带引导所需的设备驱动程序。它 是被bosboot命令创建的。 在mkinsttape映像(mksysb磁带的第二个映像)中有三个重要的文件:./tapeblksz, ./bosinst.data 和 ./image.data。 ./tapeblksz 文件包含当mksysb命令被运行时磁带驱动器被设置的块大小。 ./bosinst.data 文件允许你指定在目标系统上的需求及用户如何与目标系统交互。该文 件包含客户化的BOS安装过程并指示BOS安装程序如何工作。你可以在发出mksysb命令之 前定制该文件或在映像备份完成后使用一个过程定制该文件。 ./image.data 文件包含对在BOS安装过程中安装的映像的描述信息。该信息包含rootvg 中的逻辑卷和文件系统的大小、名称、映射和装载点。你可以在发出mksysb命令之前定制 该文件,或在备份过程中运行mksysb -i在磁带上产生一个新的./image.data文件。mkszfile 命 令产生 ./image.data 文件。./image.data 文件被以节(stanza)的格式编排。每节包含一个 或多个域。最重要的域有: SHRINK 当设为 YES 时,使系统创建为容纳文件系统中所有数据所需的最小的 文件系统。 BOSINST_FILE 提供在BOS安装结束后执行的文件或命令的全路径名。 EXACT_FIT 当设为 YES 时,使系统按照用mksysb命令的-m标记创建的物理分区映 射将逻辑卷放置在磁盘上。 使用伪目录(dummy TOC)是为了使 mksysb 磁带包含与BOS安装磁带数量相同的映 像。 rootvg 数据区包含所有被mksysb命令备份的在rootvg卷组中的数据。mksysb 命令使用 backup 命令保存rootvg中已装载的JFS的数据的内容,除了原始数据。 第 151 页 8.1.2 排除不用备份的文件系统 当你需要为系统制作一个 mksysb 备份时,如果想排除一些数据文件系统,你得编辑 /etc/exclude.rootvg文件。例如,假设你希望mksysb备份中不包含文件系统 /usr 和 /tmp, 在文件中加入: /usr/ /tmp/ 确保文件中没有空行,你可以列出文件的内容,如下所示: # cat /etc/exclude.rootvg /usr/ /tmp/ 然后运行 mksysb 命令,使用 -e 标记排除文件exclude.rootvg中的内容,如下所示: mksysb -e /dev/rmt0 8.1.3 如何创建一个可引导的系统备份 mksysb 命令为rootvg文件系统创建一个可引导的映像,存入一个文件系统目录中或写 到一个可引导的磁带设备上,它可被用于系统发生故障后的系统恢复或被用于系统复制 (cloning)。 为了使用 smitty 创建一个可引导的系统备份,使用下面的步骤: 1. 运行 smitty 命令。选择 System Storage Management (Physical & Logical Storage) 域, 如图8-2所示: 图 8-2 System Management 菜单 2. 进入 System Storage Management 菜单后,选择 System Backup Manager 域,如图8-3 所示。 第 152 页 图 8-3 System Storage Management (Physical & Logical Storage) 菜单 3. 在 System Backup Manager 窗口,选择 Back Up the System 域,如图8-4所示。 图 8-4 System Backup Manager 菜单 4. 在 Back Up the System 菜单中,选择 Backup DEVICE or FILE 域。这是你要选择备份 设备的地方。如果你按 F4,将得到一个备份设备列表。选择你需要的设备,然后按回车, 如图 8-5 所示。 第 153 页 图 8-5 Back Up the System 菜单 5. 现在显示的是 COMMAND STATUS 屏幕。图 8-6 显示的就是一个在备份过程中显示信息 的屏幕。在图 8-7 中显示的是备份过程成功结束后显示的信息。 图 8-6 操作期间的 COMMAND STATUS 屏幕 第 154 页 图 8-7 操作完成后的 COMMAND STATUS 屏幕 6. 系统现在就创建好了一个可引导的系统备份。 8.1.4 使用 mksysb 备份用户卷组 你可以在rootvg上运行 mksysb,但不能在任何用户的卷组上运行 mksysb。如果你想备 份一个用户卷组,必须使用 savevg,tar,cpio 或 backup。 8.2 备份用户信息 为了备份用户信息,你可以使用以下命令之一: savevg 查找和备份所有属于一个指定卷组的文件。 tar 通过写文件到一个档案存储介质或从档案存储介质中取文件来操作档案库。 cpio 拷贝文件进/出档案存储器和目录。 backup 在一个备份介质上创建你的文件拷贝。 8.2.1 备份单个卷组 savevg 命令查找和备份所有属于一个指定卷组的文件。卷组必须被激活,文件系统必 须被装载。savevg 命令使用被mkvgdata命令创建的数据文件。 为了备份 uservg 卷组,并创建一个新的uservg.data文件,执行下面操作: 1. 检查你想备份的卷组。 # lsvg rootvg uservg 2. 如果你同意必须备份的卷组为 uservg,继续下面的备份操作: 第 155 页 8.2.2 如何备份当前目录 为了将当前目录备份到磁带 /dev/rmt0 中,使用下面的例子。首先,检查你是否在正确 的目录下,然后列出目录内容: 现在你知道目录中有什么了,你可以使用下面的命令备份了: # tar -cvf /dev/fd0 * a DKLoadLog 0 blocks. a adnan.gif 0 blocks. a aixhelp 0 blocks. a backup1 100 blocks. a cde-help 0 blocks. a cde-main 0 blocks. a cfgvg.out 1 blocks. a dtappint.log 0 blocks. a filelist 0 blocks. a httpd-pid 0 blocks. a mk_netboot 0 blocks. a nim1.gif 0 blocks. a nimM.gif 0 blocks. 第 156 页 a tmp a tmp/.strload.mutex 0 blocks. a tmp/.oslevel.mlinfo.cache 53 blocks. a xlogfile 0 blocks. a xv 1688 blocks. 使用-c标记为创建档案,使用-v 标记为列出档案内容,使用-f标记为选择设备。前面的 表8-1中给出了更详细的标记列表。 注意:tar 命令是极少的不需要在每个标记前使用 -(减号)的命令之一。 还有其他两个命令可以用来创建备份。我们就使用备份 /userdirectory 的例子,你可以 使用backup或cpio命令。 - 使用 backup 命令: # cd /userdirectory # find . -depth | backup -i -f /dev/rmt0 它使用相对路径名进行备份,意味着当你使用restore命令恢复信息时,你需要处在 /userdirectory目录下,否则它会把信息恢复到你当前所在目录中。 注意:find 命令的-print 标记可以与backup命令中的-depth标记等价互换。 - 使用 cpio 命令: # cd / # find /userdirectory -print | cpio -o -c -v -B > /dev/rmt0 它使用绝对路径名备份信息。这些信息可使用cpio命令的-i标记恢复。你可以从任何 地方执行恢复,信息总会被恢复到/userdirectory目录中。 backup或 cpio命令均可以使用相对的或绝对的路径名。 8.2.3 增量备份 backup 命令允许管理员定期执行增量备份。这对于备份系统中经常变化的数据非常有 用。该命令的语法举例如下: # backup -0 -uf /dev/rmt0 /home 当backup命令使用 -u 标记时,系统将按照-level指定的数值执行一次用户数据的增量备 份。0级(level 0)备份将备份一个指定文件系统中的所有系统数据。每个后续级别的备份 将只备份从前一级备份以来所作的修改。例如,5级(level 5)备份将只备份在4级(level 4) 备份执行以来发生了变化的数据。级别范围可以是从0到9。backup命令缺省不带任何参数 时运行的是9级(level 9)备份。如果你想设计一个周备份计划,每夜备份在/data文件系统 中变化了的数据,每周日执行一次全备份,则backup命令可以轻松完成这个任务。 在周日,系统运行: # backup -0 -uf /dev/rmt0 /data 在周一,系统运行: # backup -1 -uf /dev/rmt0 /data 在周六,系统运行: # backup -6 -uf /dev/rmt0 /data 有关日期、时间和每次增量备份的级别的信息被写入到/etc/dumpdates文件中。数据被 以下面的格式存储: /dev/lv01 0 Mon Jun 04 14:00:00 2001 /dev/lv01 1 Wed Dec 05 14:00:00 2001 第 157 页 8.3 从备份介质恢复信息 当你恢复信息时,你要使用在前一节中备份的信息,并使用下面讨论的一种恢复方式。 8.3.1 tctl 命令 tctl 命令向一个流磁带设备(streaming tape device),如/dev/rmt0,发送子命令 (subcommands)。这个命令可以方便地操作磁带进行数据恢复。tctl命令常用语法如下: tctl [ -f Device ] [ eof | weof | fsf | bsf | fsr | bsr | rewind | offline | rewoffl | erase | retension | reset | status ] [Count ] 如果你不用 -f 标记指定 Device 变量,则TAPE 环境变量被使用。最常用的子命令如表 8-2所示。 表 8-2 常用的 tctl 子命令 子命令 描述 rewind 倒带。 rewoffl or offline 倒带并使磁带驱动器脱机。可在适当的时候卸下或弹出磁带。在设备可以再被使用之 前,必须重新插入磁带或加载另一盘磁带。 status 显示有关指定磁带设备的状态信息。 reset 发送一个总线设备重置(bus device reset,BDR)到磁带设备。BDR只在设备不能 被打开并且不忙碌时才发送。一旦完成,系统将把光标返回给提示符,没有任何通知。 fsf Count 按照Count参数指定的文件标志数量前进磁带,并将其定位在文件标志的磁带末端 (end-of-tape,EOT)一边。 bsf Count 按照Count参数指定的文件标志数量回退磁带,并将其定位在文件标志的磁带始端 (beginning-of-tape,BOT)一边。如果 bsf 子命令试图回退磁带至超过起始位置, 磁带将反绕,而tctl命令会返回一个EIO。 8.3.2 如何恢复一个文件 在这个例子中,你将从一个磁带设备 /dev/rmt0 恢复文件 /etc/hosts。你可以使用下面 命令之一,但要对应执行备份时使用的命令: - mksysb 在一个mksysb中,有三个映像(BOS boot image,mkinsttape image 和 dummy TOC) 位于backup文件前面。你可以在磁带上使用 mt 或 tctl 及 no-rewind 选项跳过它们,或者你 可以使用restore命令的-s4标记。 使用下面的命令使磁带退回到开头: tctl -f /dev/rmt0 rewind 使用以下命令列出备份介质的信息: 第 158 页 这个屏幕向下滚动,向你显示所有在备份介质上的文件。如果你想仅显示头信息,你可 以去掉-T和-v标记。 换到 /etc/ 目录并列出所有名字中含有单词hosts的文件。 注意缺少了 hosts 文件。 # cd /etc # ls -l hosts* -rw-r--r-- 1 root system 2060 Aug 25 09:41 hosts.equiv -rw-rw-r-- 1 root system 1906 Aug 25 09:41 hosts.lpd 换到根目录下,检查当前目录: # cd / # pwd / 使用下面的命令将磁带设备倒带: tctl -f /dev/rmt0 rewind 恢复你需要的文件。注意在 /etc/hosts 之前的 .(点号);这需要作为 restore 命令的一 部分。 # restore -x -d -v -q -s4 -f /dev/rmt0.1 ./etc/hosts New volume on /dev/rmt0.1: Cluster size is 51200 bytes (100 blocks). The volume number is 1. The backup date is:Tue Oct 27 10:15:25 CST 1998 第 159 页 Files are backed up by name. The user is root. x 1848 ./etc/hosts The total size is 1848 bytes. The number of restored files is 1. 在恢复过程中从磁带上读取的信息被显示出来。 换到/etc目录下,列出所有名字以 hosts 开头的文件: # cd /etc # ls -l hosts* -rw-rw-r-- 1 root system 1848 Sep 10 13:44 hosts -rw-r--r-- 1 root system 2060 Aug 25 09:41 hosts.equiv -rw-rw-r-- 1 root system 1906 Aug 25 09:41 hosts.lpd 检查文件是否已经恢复。 - tar 下面的例子显示你要使用tar命令恢复文件/etc/hosts的命令语法。 tar -x -v -f /dev/rmt0 /etc/hosts - cpio 下面的例子显示你要使用cpio命令恢复文件/etc/hosts的命令语法。注意到在文件选择 中使用了 " (引号)。 cpio -i -c -v -d -u -m -B < /dev/rmt0 "/etc/hosts" - restore 下面两个例子显示你要使用restore 命令恢复文件/etc/hosts的命令语法。 下面这个例子显示如何从一个使用-i标记选项制作的文件名格式的备份来恢复文件 /etc/hosts。注意使用了 -d 标记恢复文件。 restore -x -d -v -q -f /dev/rmt0 /etc/hosts 下面这个例子显示如何从一个文件系统备份来恢复文件: restore -x -v -q -f /dev/rmt0 /etc/hosts 8.3.3 如何恢复一个目录 在这个例子中,你将从一个磁带设备/dev/rmt0恢复目录 /var 及其内容。 你可以使用以下命令之一来进行恢复,但要与你用于制作备份的命令相对应。 - mksysb 在一个mksysb中,有三个映像( BOS boot image,mkinsttape image 和 dummy TOC) 位于backup文件前面。你可以在磁带上使用 mt 或 tctl 及 no-rewind 选项跳过它们,或者 你可以使用restore命令的-s4标记。 使用tctl命令使磁带退回到开头: tctl -f /dev/rmt0 rewind 使用restore命令列出备份介质上的文件: 第 160 页 这个屏幕向下滚动,向你显示所有在备份介质上的文件。如果你想仅显示头信息,你 可以去掉-T和-v标记。 换到 /var 目录并检查当前工作目录,如下所示: # cd /var # pwd /var 使用下面的命令列出当前目录的内容: 第 161 页 换到根目录下并检查当前目录: # cd / # pwd / 倒带并开始恢复目录 /var/dt。注意在目录名前面有一个 . (点号);当从一个mksysb 备份进行恢复时总是需要这样: 最前面的是在恢复操作中取自磁带设备的信息,列出了所有被恢复的文件。 换到/var目录下,列出/var目录的内容。 检查目录 /var/dt 是否已被恢复。 - tar 下面的例子使用tar命令恢复目录及其内容: tar -x -v -f /dev/rmt0 /var/dt - cpio 下面的例子使用cpio 命令恢复目录及其内容: 第 162 页 cpio -i -c -v -d -u -m -B < /dev/rmt0 "/var/dt/*" - restore 下面两个命令显示了使用restore命令恢复目录及其内容的方式。 下面这个例子显示如何从一个文件名备份来恢复目录: restore -x -d -v -q -f /dev/rmt0 /var/dt 下面这个例子显示如何从一个文件系统备份来恢复目录: restore -x -v -q -f /dev/rmt0 /var/dt 8.3.4 恢复的错误,不正确的块大小(incorrect block size) 在系统之间转移磁带时最典型的问题就是不正确的块大小(incorrect block sizes)。 Incorrect block sizes 会引起磁带暂时不可用。例如,一个 tar 备份被放在一盘512字节 块大小的磁带上。当磁带被放入一个具有2048字节块大小的系统中进行恢复操作时,系统 显示: # tar -tvf /dev/rmt0 tar: 0511-193 An error occurred while reading from the media. There is an input or output error. 有两种方法可以用来确定块大小: - 方法1 使用 tcopy 命令,如下: 这个命令将提供给你一个包含在介质上发现的所有文件及其字节数的列表。 - 方法2 使用 dd 命令从设备读取单个块,并找出档案所使用的块大小: dd if=/dev/rmt0 bs=128k count=1 | wc -c 该命令将返回被读取的块的大小的字节数。 为了修改块大小,使用chdev命令,如下: # chdev -l rmt0 -a block_size = 512 rmt0 changed. # tar tvf /dev/rmt -rw-rw-r--0 0 1817 Jun 09 16:24:17 2000 /etc/hosts 8.3.5 使用 rmfs 命令 rmfs 命令删除一个文件系统。虽然它不是一个在备份这章要讲述的常用命令,但是一 旦你已经恢复了一个备份后,你可以使用这个命令清除不再需要的文件系统或在备份时无意 间被装载的文件系统。为运行这个命令,输入: rmfs userfs 第 163 页 8.4 复制你的系统 mksysb 映像使你可以复制一个系统映像到多个目标系统中。目标系统可以不必与源系 统包含相同的硬件设备或适配器,使用相同内核(uniprocessor 或 microprocessor),或具 有相同硬件平台(rs6k,rspc或chrp)。 使用这个过程把一个 mksysb 备份安装到一个目标系统(不是在其上创建备份的系统) 中。确保从适合你的系统并且与源系统(在其上制作mksysb备份的系统)具有相同维护级 别的BOS的产品介质引导。例如,对于一个从BOS Version 4.2.1系统制作的mksysb备份, 你可以使用 BOS Version 4.2.1产品介质。这个过程是用来安装一个备份磁带到另一个系统 的。从产品介质引导,当Welcome to the Base Operating System Installation and Maintenance屏幕出现后,完成以下步骤。 1. 选择 Start Maintenance Mode for System Recovery 选项。 2. 选择 Install from a System Backup 选项。 3. 选择包含备份磁带的驱动器并插入介质。系统读取介质并开始安装。 4. 你将被再次询问提供 BOS 安装语言,并且Welcome屏幕被显示。继续Prompted Installation 过程,因为Nonprompted Installations不支持复制。 注意: - 在某些rspc平台系统中不支持从磁带产品介质引导。如果备份磁带是在这种系统中被创建 的,mksysb 命令将显示一个消息,表明系统不支持磁带引导。为了确定你的平台系统是什 么,输入下面的命令: bootinfo -p 或 lscfg -vp | grep Arch - 如果你在复制产品磁带以恢复一个备份磁带,制作一张包含一个./bosinst.data文件的软盘, 该文件的control_flow节中有SWITCH_TO_PRODUCT_TAPE=yes,如果在制作mksysb之 前它没有被设置。 - 如果 SWITCH_TO_PRODUCT_TAPE 被设置为 yes,系统将提示你删除 mksysb 介质并 在mksysb备份被恢复以后插入产品介质。 当 mksysb 备份安装结束后,安装程序自动使用你用来引导的原始产品介质在你的系统 上安装附加的设备和内核(uniprocessor 或microprocessor)。信息被存在BOS安装日志文 件中。要查看BOS安装日志文件的话,输入 cd /var/adm/ras 并查看在该目录下的devinst.log 文件。 如果源系统没有正确的口令和网络信息,你现在可以在目标系统上进行修改。还有些产 品本身附带了设备特定的文件如graPHIGS。如果你的图形适配器与目标系统不一样,检查 一下设备特定的文件集中是否安装了图形相关的LPPs。 如果你复制的系统使用的是 OpenGL 或 graPHIGS,可能在复制之后必须要从这些 LPPs中安装一些设备文件集。 8.5 复制一张软盘 dd 命令读取 InFile 参数或标准输出,执行任何指定的转换,然后把被转换的数据拷贝 到OutFile 参数或标准输出。 为了复制一张软盘,你首先要使用 dd 命令拷贝磁盘的内容到一个临时文件。一旦创建第 164 页 好临时文件,使用 dd 命令拷贝临时文件到 /dev/fd0 设备上,这样就创建了一张磁盘的副本。 下面的命令示范了这个过程: # dd if=/dev/fd0 of=/tmp/ddcopy 2880+0 records in. 2880+0 records out. # dd if=/tmp/ddcopy of=/dev/fd0 2880+0 records in. 2880+0 records out. 8.6 复制一盘磁带 tcopy 命令也可以拷贝磁带。源和目标文件名由Source 和 Destination 参数指定。tcopy 命令假定磁带的末端有两个磁带标志,并且当它发现双文件标志时便结束。 为了从一个磁带设备拷贝到另一个磁带设备,输入: 磁带的复制就完成了。 8.7 rmt 的专用文件说明 设备 rmt 的作用是提供对顺序存取大容量存储介质设备驱动程序(sequential-access bulk storage medium device driver)的访问。磁带主要被用于备份,文件归档和其他离线 存储。磁带被通过专用文件 /dev/rmt0,... ,/dev/rmt255 访问。 专用文件名中的 r 代表通过字符专用文件接口进行的原始访问。磁带设备不属于块设备 类型。因此只有提供字符接口专用文件。 表 8-3 是磁带设备专用文件字符特征的列表;/dev/rmt* 可以是从/dev/rmt0 到 /dev/rmt255。 表 8-3 磁带设备专用文件特征 Special file name Rewind-on-close Retension-on-open Bytes per inch /dev/rmt* Yes No Density setting #1 /dev/rmt*.1 No No Density setting #1 /dev/rmt*.2 Yes Yes Density setting #1 /dev/rmt*.3 No Yes Density setting #1 /dev/rmt*.4 Yes No Density setting #2 /dev/rmt*.5 No No Density setting #2 /dev/rmt*.6 Yes Yes Density setting #2 /dev/rmt*.7 No Yes Density setting #2 以下是有关上表中特征的一些描述: - density setting #1 和 density setting #2 的值取自磁带驱动器的属性,可以使用SMIT设置。 典型地,density setting #1 被设置为磁带驱动器的最高可能的密度,而density setting #2 被 设置为一个低密度。但是密度设置不是必须遵照这个模式。 - 当使用不支持多密度的磁带设备时,密度值(bytes per inch)被忽略。对于不支持多密度第 165 页 的磁带驱动器,密度值仅在写磁带时有用。当读磁带时,驱动器缺省使用写磁带时的密度。 - 旧的磁带驱动器使用 512-byte 块大小。8 mm 磁带驱动器使用最小的1024 字节块大小。 使用 SMIT 降低块大小会浪费空间。 8.8 高可用集群多路处理(HACMP) AIX的高可用集群多路处理(High Availability Cluster Multi-Processing,HACMP)是 一种应用解决方案,可以链接多达8台 RS/6000 服务器或 SP 节点到高可用的集群中。利用 增强的可伸缩特性,可以链接多达16个SP节点。集群服务器或节点支持对它们的数据进行 并行访问,可提供关键业务应用系统所需的冗余和容错功能。HACMP 包括基于图形用户接 口的工具,以高生产力的方式来帮助安装、配置和管理集群。 HACMP 的配置和使用很灵活。单处理器(uniprocessors),对称多处理器(symmetric multiprocessors,SMPs)和 SP 节点都可以参与到高可用集群中。微通道和基于PCI的系 统均被AIX支持。你可以混合和匹配系统大小、性能级别、网络适配器以及磁盘子系统, 以 满足应用系统、网络和磁盘性能的需求。 HACMP 集群可以使用多种模式进行配置以适应不同类型的处理需求。并行访问模式 (Concurrent access mode)适合于所有处理器必须同时为相同的工作负载工作并共享相 同的数据的环境。在互相接管模式下(mutual takeover mode),所有处理器共享工作负载 并互为备份。空闲备用(Idle standby)则允许一个节点备份集群中的任何其他节点。 不管你选择哪种模式,HACMP 都提供了数据访问和备份计划,在帮助防止代价昂贵的 计划外故障和停机时间的同时,还帮助优化应用程序的执行性能和可伸缩性。HACMP 也使 服务器集群能被为了应用的恢复/重启而配置,以通过冗余为你的关键业务应用提供一种故 障恢复机制。 了解 HACMP 是容错系统中的一个课题。如果你不想提交HACMP安装所需的所有资 源,通过增加冗余的磁盘驱动器、适配器卡、网络连接,以及通过实现软件 RAS 功能如 HACMP安装中描述的磁盘镜像和系统监控,你仍然可以排除很多潜在的系统宕b机隐患。 8.9 测验 下面的认证评测问题将帮助检验你对本章内容的理解。 1. What is the purpose of the -i flag with the mksysb command? A. It creates/updates the /.fsdata. B. It reports the size of a file in bytes. C. It creates a bootable system backup. D. It creates or updates the /image.data file. 2. The administrator of the Widget company has decided that doing full backups of the /apps directory each night is taking much more time than originally assumed and that incrementals should be done during the week with one Full backup each Saturday night. Which file if present can be used to manage this during the week? A. /last_full_backup B. /etc/last_full_backup C. /etc/incremental_dump_dates 第 166 页 D. /etc/incremental_file_backup 下面是作者增加的一些问题,以进一步检查你对本章内容的理解。 1. What is the purpose of the mkszfile command? A. It creates or updates the /image.data file. B. It reports the size of a file in bytes. C. It creates a bootable system backup. D. It creates/updates the /.fsdata. 2. After creating a tar archive on a tape and verifying that the backup was successful, a system administrator then inserts the tape into another machine to access the data and receives the following error: "Media Read Error -I/O Error" Which of the following is the most likely cause of the error? A. The blocksize or density setting is incorrect. B. There is a lack of disk space in the root file system. C. The tape is not read/writable. D. There is a bad cable on the tape drive..Chapter 8. System backup, restores, and availability 241 3. A system administrator would like to restore the third image from a mksysb tape. To position the tape to the correct image, which of the following commands should be run? A. lsattr B. tctl C. ffwd D. chdev 4. The finance group at the Widget Company has just approved a new financial package that runs on an RS/6000. They will be converting their old data to the new system. Currently, they have 10 GB of data but will be growing to 18 GB with the new system because they want to maintain one year of history online. The new system they have ordered is an F50 with 128 MB of RAM, an SSA card, two 9.1 GB SSA drives, and a single FDDI card. What would be the best addition to this system for redundancy? 1. One SSA card 2. Two 9.1 GB SSA disks 3. Error correcting RAM 4. Two additional processors A. 3 and 1 B. 4 and 1 C. 4 and 2 D. 1 and 2 8.9.1 答案 下面是对评测问题的回答。 1. D 2. B 第 167 页 下面是对附加问题的回答。 1. A 2. A 3. B 4. D 8.10 练习 以下的练习是为自学提供的例题。它们将帮助你加深对本章的理解。 1. 使用 mksysb 备份 uservg 卷组。 2. 从一个mksysb备份中排除文件系统。 3. 为你的系统设计一个有效的备份计划和策略。 4. 创建一个可引导的系统备份。 5. 从一个mksysb,一个 tar 备份和一个 cpio 备份中析取一个文件。 6. 从一个mksysb,一个 tar 备份和一个 cpio 备份中析取一个目录。 7. 使用 tar 备份当前目录。 8. 是什么使得 mkszfile 命令很重要? 9. 备份单个卷组。 10. 复制一个系统。为什么使用 rmfs 命令? 11. 制作一个软盘拷贝,然后制作一个磁带拷贝。 12. 将一个 mksysb备份定位到第三个映像的尾部。 第 168 页 第九章 系统资源控制和管理 系统资源控制器(System Resource Controller,SRC)提供一组命令和子程序,使系 统管理员和编程员更容易创建和控制子系统(subsystem)。子系统是任何能够独立运行或 与一个控制系统一起运行的程序、进程、程序集或进程集。子系统被设计为一个提供指定功 能的单元。子服务程序(subserver)是属于子系统的一个程序或进程。SRC的设计是为了 最小化对操作员干涉的需求。它提供了一种使用通用的命令行和C接口控制子系统进程的机 制。这种机制包括: - 为启动、停止和状态查询提供一致的用户接口。 - 子系统异常中断的日志记录。 - 在异常系统中断时调用相关进程的通知程序。 - 追踪一个子系统,一组子系统或一个子服务程序。 - 支持控制远程系统上的操作。 - 刷新一个子系统(如在配置数据变化后)。 如果你需要一种通用的方式启动、停止进程和收集进程的状态信息,则SRC是非常有 用的。 9.1 启动 SRC 系统资源控制器( SRC)在系统初始化过程中被启动,是由srcmstr 伺服程序( daemon) 提供的,在/etc/inittab文件中有一项对 /usr/sbin/srcmstr 伺服程序的记录。由于缺省的 /etc/inittab 文件中已经包含这样一项记录,因此可能不需要再启动SRC。如果你需要的话, 也可以从命令行、自述文件或shell脚本启动SRC,但是还有一些原因使得需要在初始化过 程中启动它: - 从/etc/inittab文件启动SRC允许 init 命令重启因任何原因被停止的 SRC。 - SRC 的设计目的为简化和减少操作员对控制子系统的干预。而从除/etc/inittab文件之外的 任何其他资源启动SRC却适得其反。 - 缺省的 /etc/inittab 文件包含一个使用startsrc命令启动打印调度子系统(qdaemon)的记 录。典型安装也会使其他子系统被/etc/inittab文件中的startsrc命令启动。因为 startsrc 命令 要求 SRC 在运行,因此从/etc/inittab文件中删除srcmstr daemon将导致startsrc命令失败。 使用man srcmstr命令参考操作手册上关于支持远程SRC请求的配置需求的内容。 如果 /etc/inittab 文件中还没有包含一项对 srcmstr daemon 的记录,你可以使用下面的 过程增加该项记录: 1. 使用mkitab命令在/etc/inittab文件中创建一项对srcmstr daemon的记录。例如,为了创建 一项与缺省/etc/inittab文件中完全相同的记录,输入: mkitab -i fbcheck srcmstr:2:respawn:/usr/sbin/srcmstr -i fbcheck 标记确保记录被插入在所有子系统记录之前。 2. 通知 init 命令重新处理 /etc/inittab 文件,输入: telinit q 当 init 再次访问 /etc/inittab 文件时,它会处理新输入的对srcmstr daemon的记录并启 动SRC。 第 169 页 9.1.1 telinit 命令 telinit 命令指导init进程(进程 ID 为1)的行为,它使用一个单字符参数并通知 init 进程 执行适当的操作。通常,telinit 命令把系统设置在一个特定的运行级别(run level)。运行级 别是一个软件配置,它只允许一组被选定进程存在。下面的参数作为telinit命令中的指令被 传递给init进程: 0-9 通知 init 进程把系统置于运行级别 0-9 中的一级。 S,s,M,m 通知 init 进程进入维护模式。 a,b,c 通知 init 进程只检查 /etc/inittab 文件里面在 run level 域中有 a、b 或 c 的记录。 Q,q 通知 init 进程重新检查整个 /etc/inittab 文件。 N 发送一个信号停止进程的重新产生(respawn)。 9.2 重启 SRC 一般情况下,你不需要重启 srcmstr。在AIX 5L Version 5.1 的 /etc/inittab 文件中,缺 省记录如表 9-1 所示。 表 9-1 /etc/inittab 文件中的缺省 srcmstr 记录 域 值 Identifier srcmstr RunLevel 23456789 Action respawn Command /usr/sbin/srcmstr 在以前版本的 AIX 中,srcmstr 的 RunLevel 值为 2。 如果 srcmstr daemon 异常终止,在/etc/inittab中指定的respawn 行为则重启srcmstr daemon。srcmstr daemon 然后确定有哪些 SRC 子系统在前一次调用中被激活。Daemon 会 重建与这些子系统之间的通信(如果以前是存在的)并初始化一个专用内核扩展及用来监视 子系统进程的srcd daemon。注意进程 ID 在 srcmstr 被终止和自动重启后发生了变化,如 图9-1所示。 图 9-1 srcmstr daemon的重启 无论如何,一旦你编辑了 /etc/inittab 文件并为/usr/sbin/srcmstr加上 -r 或 -B 标记,则 你必须使用 init -q 命令重新检查 /etc/inittab 或重启以使新的标记生效。-r 标记是防止 srcmstr 响应远程请求,而 -B 是在AIX Version 4.3.1以前版本的模式下运行 srcmstr。 9.3 startsrc 命令 startsrc 命令向SRC发送一个请求,为了启动一个子系统或一组子系统,或者是为了传 递一个启动子服务程序的包给子系统。 如果一个启动子服务程序的请求被传递给SRC,而该子服务程序所属的子系统当前并第 170 页 未被激活,则SRC 会启动子系统并将启动子服务程序的请求给子系统。 startsrc 命令的标记如表9-2所示。 表 9-2 startsrc 命令标记 标记 描述 举例 为了启动一个子系统 -a argument 指定一个参数字串,当子系统被执行 时,该参数字串被传递给子系统。 startsrc -s srctest -a "-D DEBUG" 该命令启动 srctest 子系统,"-D DEBUG" 为传给子系统的两个参数。 -e Environment 指定一个环境字串,当子系统被执行 时,该环境字串被放置在子系统的环 境中。 startsrc -s srctest -e "TERM=dumb HOME=/tmp" 该命令启动 srctest 子系统,在给子系统的 环境中有"TERM=dumb" 和 "HOME=/tmp"。 -g Group 指定要启动的一组子系统。 startsrc -g nfs 该命令启动所有在nfs 子系统组中的子系 统。 -s Subsystem 指定要启动的一个子系统。 startsrc -s srctest 为了启动一个子系统或一个子服务程序 -h Host 指定一个外部主机,该命令向其发送 启动操作请求。本地用户必须以root 身份运行。远程系统必须被配置为可 接受远程SRC请求。 startsrc -g nfs -h itsosmp 该命令启动在机器itsosmp中所有属于nfs 组的子系统。 为了启动一个子服务程序 -t Type 指定要被启动的子服务程序。 startsrc -t tester 该命令向拥有tester子服务程序的子系统发 送一个启动该子服务程序的请求。 -o Object 指定一个子服务程序对象,将其作为 一个字符串传递给系统。由子系统负 责确定Object字串的有效性。 startsrc -o tester -p 1234 子服务程序 tester 被作为一个字符串传递 给一个PID为1234的子系统。 -p SubsystemPID 指定子系统的一个特定例程,启动子 服务程序请求将被传递给该例程。 startsrc -t tester -p 1234 该命令启动属于PID 为1234 的srctest子系 统的子服务程序tester。 9.4 syslogd daemon AIX 的syslog 功能是由syslogd daemon提供的。syslogd daemon 读取一个数据报套接 字(datagram socket)并向配置文件/etc/syslog.conf中描述的每个目的地发送一条消息行。 当syslogd daemon 被激活时或接收到挂起(hangup)信号时都会读配置文件。 9.4.1 启动 syslogd daemon syslogd daemon 是在系统IPL过程中被srcmstr启动的。在ODM中的对应节如图9-2所 示。 第 171 页 图 9-2 ODM 中的 Syslogd 节 9.4.2 syslog 配置文件 配置文件告诉 syslogd daemon 应该按照消息的优先权级别和产生它的机制把系统消 息发往何处。 如果你不使用 -f 标记指定另外的配置文件,则使用缺省配置文件 /etc/syslog.conf。 syslogd daemon 忽略空行和以 #(英镑符)开始的行。 syslogd daemon的配置文件中的每行中包括一个选择器域(selector field)和一个动作 域(action field),用一个或多个制表符(tabs)来分隔。 选择器域命名了机制和优先级别。机制名之间用 ,(逗号)分隔。选择域的机制和优先 级别部分之间用 .(句号)分隔。而同一个选择器域中的多个记录之间用 ;(分号)分隔。 为选择所有机制,可使用 *(星号)。 动作域标识了接收消息的目的地(文件,主机或用户)。如果被路由到远程主机,远程 系统将按照它自己的配置文件的指示来处理消息。为了在一个用户终端上显示消息,目的地 域必需包含一个合法的已登录的系统用户名。 缺省的 /etc/syslog.conf 文件的最后一部分如图 9-3 所示。 第 172 页 图 9-3 syslog 配置文件样本 如果你决定在/var/spool/syslog文件中捕捉所有用户的警告消息,你必须执行下面的操 作: 1. 把下面一行加入到 /etc/syslog.conf 文件中,作为文件的最后一行。 *.warning /var/spool/syslog 2. 创建 /var/spool/syslog 文件。 touch /var/spool/syslog 3. 修改/var/spool/syslog文件的许可权位(permission bits),以使所有用户被允许向该文件 写消息。 chmod 666 /var/spool/syslog 4. 刷新 syslogd daemon,使对syslog配置文件的更新生效。 refresh -s syslogd 9.4.3 再循环( Recycling)和刷新( refreshing) syslogd daemon 当syslogd daemon 被激活或接收到一个挂起信号时,它读配置文件。刷新操作保持当 前的进程ID并且是一种较少侵犯性的读配置文件的方式。当你觉得服务有问题,需要完全重 启时,再循环操作就很有用。你可以通过停止和启动来再循环 syslogd daemon。 # stopsrc -s syslogd # startsrc -s syslogd 第 173 页 或者,你可以通过发送个HUP信号刷新 syslogd daemon。 ps -ef | grep syslogd 注意syslogd进程的 PID,在这个例子中为 5682。 kill -1 5682 9.4.4 从多个系统收集 syslog 数据 syslogd daemon 记录从远程主机上接收到的消息,除非你用了-r标记禁止这样做。 在远程主机的 /etc/syslog.conf 文件中,在目的地部分不再是指定一个文件的全路径名,而 是代之以 @Host,其中 Host 为远程系统的主机名。 9.5 刷新一个 daemon 使用 refresh 命令可告诉一个SRC资源,如一个子系统或一组子系统,刷新它自己。 使用 refresh 命令的先决条件为: - SRC 必须运行着。 - 你想刷新的资源必须没有使用信号通信方式(signals communications method)。 - 你想刷新的资源必须被编程以响应刷新请求。 refresh 命令向SRC发送一个子系统刷新请求,该请求被转发给子系统。刷新操作是与 子系统相关的。 为了启动 Lotus Domino Go Webserver,使用下面的命令: startsrc -s httpd 为了允许用户在一个新的目录 /newdir 中打开一个主页 index.html,你在/etc/httpd.conf 文件中增加了一条目录映射: pass /* /newdir/* 为了刷新 Web server,输入: refresh -s httpd 从这以后,用户就可以通过在他们的Web browser中输入下面的URL访问新的主页了: http://server_name[:port_number]/newdir/index.html 9.6 cron daemon cron daemon 在指定的日期和时间运行 shell 命令。下面的事件类型是被cron daemon 调度的: - crontab 命令事件 - at 命令事件 - batch 命令事件 - sync 子程序事件 - ksh 命令事件 - csh 命令事件 处理这些事件的方式在文件 /var/adm/cron/queuedefs 中被指定。 被定期调度的命令可以按照crontab文件中的指导来指定。你可以使用crontab命令提交第 174 页 你的 crontab 文件。使用 at 命令提交只运行一次的命令。因为 cron daemon 从不退出,因 此它只需要被运行一次。 cron daemon 只在被初始化的时候检查 crontab 文件和 at 命令文件。当你使用crontab 命令修改了crontab文件后,一个表明变化的消息被发送给 cron daemon。这样消除了定期 检查新文件或被修改的文件的开销。 当 TZ(时区) 环境变量被修改后,不管是使用 chtz 命令,一个基于Web的系统管理程 序(Web-based System Management application),还是通过 SMIT,cron daemon 都必 须被重启。这使 cron daemon 能够为新的 TZ 环境变量使用正确的时区和夏令时修改信息。 cron daemon 在/var/adm/cron/log文件中创建有关它自己行为的日志。 9.6.1 Crontab 文件记录格式 crontab 文件中包含对每个 cron 作业的记录项。记录之间被使用换行分隔。每项 crontab 文件记录中都包含六个域,由空格或制表符分隔,格式如下: minute hour day_of_month month weekday command 这些域可接受下面的值: minute 0 到 59 hour 0 到 23 day_of_month 1 到 31 month 1 到 12 weekday 0 到 6,即周日到周六 command 一个 shell 命令 你必须为每个域指定一个值。除了command域之外,这些域可以包含以下内容: - 指定范围内的一个数值。为了在五月执行一个命令,在month域中指定5 。 - 用一个破折号分隔的两个数值表示一个被包含的范围。为了在周二到周五运行一个 cron 作 业,在weekday域中填入2-5。 - 一个用逗号分隔的数值列表。为了在每月的第一天和最后一天运行一个命令,你可在 day_of_month域中指定1,31。 - 一个 * (星号),意思是所有被允许的值。为了使一个作业每小时运行一次,在hour域中填 入一个星号。 空行和第一个非空字符为#(数值号)的行将被忽略。 注意:任何以反斜线(包括%)为前缀的字符都被作为文字处理。 例如,如果你写了一个脚本 fullbackup 并存在 /root directory 目录中,并且你需要在每 月的15号上午1点调用它运行,则可以使用crontab -e命令增加下面的记录: 0 1 15 * * /fullbackup 注意:/fullbackup文件的执行许可权位必须被置为on。 9.6.2 允许对 crontab 命令的访问 /var/adm/cron/cron.allow 和 /var/adm/cron/cron.deny 文件控制哪个用户可以使用 crontab 命令。root 用户可以创建、编辑或删除这些文件。在这些文件中的记录为用户登录 名,每行一个。 如果 cron.allow 文件存在,只有登录名出现在该文件中的用户才能使用 crontab 命令。 第 175 页 注意:如果 cron.allow 文件存在,root 用户名必须出现在其中。 你可以在cron.deny文件中列出用户登录名来明确地禁止一个用户使用crontab命令。如 果只有 cron.deny 文件存在,任何名字未出现在该文件中的用户都可以使用crontab命令。 如果以下条件中的一条为真,则用户不能使用 crontab 命令: - cron.allow 文件和 cron.deny 文件都不存在(只允许 root 用户)。 - cron.allow 文件存在,但是用户的登录名没有列在其中。 - cron.deny 文件存在并且用户的登录名被列在其中。 如果 cron.allow 和 cron.deny 都不存在,只有 root 用户能够使用crontab命令提交一个 作业。 9.6.3 内务处理(Housekeeping) 当你以 root 登录后,或使用 su 命令成为 root 后,用 crontab -l 命令可显示在crontab 文件中有三条被注释的记录。它们是: - #0 3 * * * /usr/sbin/skulker - #45 2 * * 0 /usr/lib/spell/compress - #45 23 * * * ulimit 5000; /usr/lib/smdemon.cleanu > /dev/null 这些是内务处理作业( housekeeping jobs),你可以激活它们来清理系统。使用 crontab -e 命令删除在第一列中的 # 符号可激活这些作业。你也可以修改你希望这些作业运行的时 间。一个 crontab 文件的样本如图9-4所示。 第 176 页 图 9-4 crontab 文件样本 skulker 命令 skulker 命令是一个命令文件,用于定期从文件系统中清除过时的或不再需要的文件。 可被清除的文件包括在 /tmp 目录下的文件,比指定时间旧的文件,.out 文件,core 文件, 或 ed.hup 文件等。 skulker 命令一般每天被调用一次,通常被cron命令将其作为一个记帐程序的一部分在 非高峰期(off-peak periods)运行。依据分发版本中显示的模板修改 skulker 命令以适合本 地需求。系统用户应当清楚地了解自动删除文件的判定条件。 find 命令和 xargs 命令构成一个功能强大的组合,可用在 skulker 命令中。大多数文件 选择判定条件可以使用find表达式方便地表示出来。所得出的文件列表可以被使用 xargs 命 令分段并插入到 rm 命令中,这样大大减少了使用单条命令逐个删除每个文件所导致的开 销。 注意:因为 skulker 命令只被 root 用户运行,并且它的唯一目的就是为了删除文件,因此该 命令有可能会产生意料之外的结果。在安装一个新的 skulker 命令之前,应先测试任何文件 删除判定条件(file removal criteria)的组合,可手工使用 xargs -p 命令运行这些组合。当 你确定新的 skulker 命令只会删除你想删除的文件后,你才可以安装它。 为了启用 skulker 命令,你应当使用 crontab -e 命令删除注释语句,即在 /var/spool/cron/crontabs/root 文件中从 /usr/sbin/skulker 行的开头部位删掉 #(英镑符)。 第 177 页 /usr/lib/spell/compress 命令 这个命令不是 AIX 的 compress 命令。/usr/lib/spell/compress 命令是一个 shell 脚本, 用来压缩拼写程序日志(spell program log)。 为了启用 /usr/lib/spell/compress 命令,你应当使用 crontab -e 命令删除注释语句,即在 /var/spool/cron/crontabs/root 文件中从 /usr/lib/spell/compress 行的开头部位删掉 #(英镑 符)。 该脚本如图 9-5 所示。 图 9-5 /usr/lib/spell/compress 脚本 该脚本删除所有在/usr/lib/spell/spellhist文件中重复的单词。当用户调用spell命令时, 这个文件被更新。 /usr/lib/smdemon.cleanu 命令 smdemon.cleanu 命令是一个 shell 程序,用于清除 sendmail 命令队列并维护 /var/spool/mqueue/log 文件。 为了启用 smdemon.cleanu 命令,你应当删除注释语句,即在 /var/spool/cron/crontabs/root 文件中从 smdemon.cleanu 行的开头部位删掉 #(英镑符)。 如果 /var/spool/mqueue 目录不存在,不要修改 /var/spool/cron/crontabs/root 文件。 要注意的是,每个smdemon.cleanu会话的日志文件的平均大小乘以日志文件个数所占 用的空间不要多于你所需要的空间。你可以根据你的需要来适当安排日志文件数量。 注意:smdemon.cleanu 命令通常不会从命令行输入。该命令是被cron daemon执行的。 9.7 测验 下面的认证评测问题将帮助检验你对本章内容的理解。 1. The system administrator would like to log messages related to user login failures to a file. How could this be accomplished? A. Issue the command: alog -f /etc/security/failedlogin -q B. Modify the /etc/security/login to add an auth_method for logging. C. Add a line to the /etc/syslog.conf file to capture this information. D. Set log=true in the default stanza in the /etc/security/user file. 下面是作者增加的一些问题,以进一步检查你对本章内容的理解。 1. A system administrator would like to collect a log file of su activity on all hosts 第 178 页 across a network. The central logfile will reside on host mars. The syslog daemon is already operational on host mars. Which of the following is the first step in accomplishing this task? A. Edit the /var/adm/sulog file on all hosts except mars adding the line: remote:mars B. Edit the /etc/syslog.conf file on all hosts except mars adding the line: auth.debug @mars C. Edit the /var/adm/syslog file on all hosts except mars adding the line: sulog =mars D. Edit the /etc/security/user file on all hosts except mars adding the following line to the default stanza: sulog =mars 2. An overwrite installation has just been completed to bring the machine up to the latest AIX version. Which of the following is the next step to take in order to enable operation of skulker? A. Run the command: startsrc -s skulker B. Run the command: chitab "skulker:2:wait:/etc/rc.skulker" C. Remove the comment from the skulker entry of the root crontab D. Remove the comment from the skulker entry in the inetd.conf and refresh inetd. 9.7.1 答案 下面是对评测问题的回答。 1. C 下面是对附加问题的回答。 1. B 2. C 9.8 练习 以下的练习是为自学提供的例题。它们将帮助你加深对本章的理解。 1.在 AIX Version 4.3.2 或 AIX Version 4.2.1中启动 SRC 需要什么?是否需要重启?可否通 过刷新或使用其他命令完成? 2. startsrc 命令是什么,它的主要标记有什么用? 3. 启动 syslog 并检查结果。 4. 什么是 syslog 配置文件?要刷新它的daemon应该做什么工作? 5. 从多个系统收集 syslog 数据。 6. 刷新 syslogd daemon 以使修改生效。 7. 刷新一个 daemon。 8. 解释cron jobs的配置文件。 9. 启用 skulker 或其他命令的 daemons。 第 179 页 第十章 网络管理 网络是两个或多个计算机以及它们之间的连接线路的组合。 一个物理网络指构成网络 的硬件(设备,如适配器卡、线缆和集线器)。软件和概念模型则构成了逻辑网络。 从本章你将学习到在系统中管理 TCP/IP 的一些重要内容,包括管理IP编址、网络伺服 程序以及基本的网络安全。要注意这些远不足以代表网络管理的整个范畴。 10.1 引导期间的网络启动 在 IPL 期间,/init 进程将在启动 SRC 后运行 /etc/rc.tcpip。/etc/rc.tcpip 文件是一个 shell 脚本,当执行以后,使用 SRC 命令初始化所选择的 daemons。它也可以在任何时候被从 命令行执行。 多数可以被 rc.tcpip 文件初始化的 daemons 是 TCP/IP 专有的。这些 daemons 是: - inetd (缺省被启动) - gated - routed - named - timed - rwhod 注意:在相同的时间在同一个主机上运行 gated 和 routed daemons 可能引起无法预料的结 果。 还有一些 daemons 是基本操作系统专有的或其他应用程序专有的,也可以通过 rc.tcpip 文件启动。这些 daemons 是: - lpd - portmap - sendmail - syslogd (缺省被启动) 10.2 停止和重启 TCP/IP daemons 从 rc.tcpip 启动的子系统可以被使用 stopsrc 命令停止及使用 startsrc 命令重启。 10.2.1 使用 /etc/tcp.clean 命令停止 TCP/IP daemons /etc/tcp.clean 脚本可以被用于停止 TCP/IP daemons。它将停止下面的 daemons 并且 删除 /etc/locks/lpd TCP/IP 锁文件: - ndpd-host - lpd - routed - gated 第 180 页 - sendmail - inetd - named - timed - rwhod - iptrace - snmpd - rshd - rlogind - telnetd - syslogd 注意 /etc/tcp.clean 脚本不会停止 portmap 和 nfsd daemons。 如果你想停止 portmap 和 nfsd daemons,使用 stopsrc -s portmap 和 stopsrc -s nfsd 命 令。这个 /etc/tcp.clean 文件的执行位(execution bit)缺省未被置为 on。你将必须发出以 下命令调用它: sh /etc/tcp.clean 10.2.2 重启 TCP/IP daemons /etc/rc.tcpip 脚本可以被用来重启 TCP/IP daemons。另一方面,你可以使用 startsrc -s 命令启动单个的 TCP/IP daemons。 注意:不要使用下面的命令重启 TCP/IP daemons: startsrc -g tcpip 它将启动所有在ODM的tcpip组中定义的子系统,也包括 routed 和 gated。 10.3 系统引导时不启动 rc.tcpip TCP/IP 是一个端到端的面向连接的协议,没有主/从(master/slave)关系。但是应用 程序使用客户/服务器(client/server)模型进行通信。 在 /etc/inittab 中删除 rc.tcpip 记录意味着你在 IPL 过程中不会启动任何服务器应用程 序(server applications)。 注意:如果你有一个图形控制台,确保你在 /etc/inittab 中把 rc.dt 和 rc.tcpip 记录也删除掉。 否则,当你登录时你的控制台将挂起。除非你有一个 ASCII 终端连接到串口,否则没有办 法恢复,因为如果不启动 TCP/IP server application,你就不能通过 telnet 或 rlogin 命令与 机器通信。 如果没有启动 server applications,你就不能从另一台机器上 telnet 或 ftp 到这台机器 上。 不过,只要你还没有断开网络接口,你还是可以使用客户网络服务(client network services)。你可以 ping 其他主机,可以 telnet 到其他主机,也可以 ftp 到其他主机。 ping 命令发送一个因特网控制消息协议(Internet Control Message Protocol,ICMP) ECHO_REQUEST,并从目标主机获得一个 ICMP ECHO_RESPONSE,不需要 server application。因此,即使没有启动任何 server application,机器仍然会对从其他主机发来的 ping 请求作出响应。 第 181 页 10.4 inetd daemon /usr/sbin/inetd daemon 为一个网络提供因特网服务管理(Internet service management)。 这个 daemon 仅在需要时才调用其他的 daemons,并且可以在内部提供一些简单的 Internet 服务而无须调用其他 daemons,这样大大减少了系统负荷。 10.4.1 启动和刷新 inetd 当该 daemon 启动时,它会从由 Configuration File 参数指定的文件中读取它的配置信 息。如果这个参数没有被指定,inetd daemon 则从 /etc/inetd.conf 文件读取它的配置信息。 一旦被启动,inetd daemon 侦听在 /etc/inetd.conf 中的特定 Internet sockets 上的连接, 一旦在其中某个 socket 上接收到请求,它要么自己处理服务请求,要么调用适当的服务器 程序。 /etc/inetd.conf 文件可以被使用 SMIT 或 SRC 更新,或直接编辑该文件进行更新。 如果你使用 SMIT 修改了 /etc/inetd.conf,那么 inetd daemon 将被自动刷新并会读新的 /etc/inetd.conf 文件。如果你使用一个编辑器修改了该文件,需要运行 refresh -s inetd 或 kill -1 InetdPID 命令向 inetd daemon 通知它的配置文件所发生的变化。 如果你使用 kill -1 命令,你将不会接收到任何消息,如图 10-1 所示。 图 10-1 使用 refresh 或 kill 刷新 inetd daemon 10.4.2 被 inetd 控制的子服务程序(Subservers) inetd daemon 是一个子系统,控制了下面的 daemons(subservers): - comsat daemon - ftpd daemon - fingerd daemon - rlogind daemon - rexecd daemon - rshd daemon - talkd daemon - telnetd daemon - tftpd daemon - uucpd daemon ftpd,rlogind,rexecd,rshd,talkd,telnetd 和 uucpd daemons 是缺省被启动的。而 第 182 页 tftpd,fingerd 和 comsat daemons 则缺省不被启动。 为了启动它们中的任何一个,从 /etc/inetd.conf 文件中相应记录的第一列上删掉 #(英 镑符)。你可以使用 lssrc -ls 命令检查在 inetd 中启动的 subservers 的详细信息,如图 10-2 所示。 图 10-2 在 inetd 中启动的 subservers 10.4.3 /etc/services 文件 /etc/services 文件包含在 DARPA Internet 网络中被 inetd 使用的已知服务的相关信息。 每个被列在 /etc/services 文件中的服务都运行在一个特定的端口上进行通信,并使用一个 特定的格式,如 TCP 或 UDP。 每个服务被单独列在一行上,格式如: ServiceName PortNumber/ProtocolName Aliases 从 /etc/services 中节选的一段样例如下所示: echo 7/tcp echo 7/udp discard 9/tcp sink null discard 9/udp sink null daytime 13/tcp daytime 13/udp 第 183 页 chargen 19/tcp ttytst source chargen 19/udp ttytst source ftp 21/tcp time 37/tcp timeserver time 37/udp timeserver 如果你编辑了 /etc/services 文件,运行 refresh -s inetd 命令以使得你的修改生效。 10.4.4 停止 inetd 使用命令 stopsrc -s inetd 来停止 inetd daemon,如图 10-3 所示。 图 10-3 停止 inetd 当 inetd daemon 被停止后,以前被启动的 subserver 进程不会被影响。但是,新发起 的对 subservers 的服务请求将不再被满足。如果你试图 telnet 或 ftp 到一个 inetd 已经被停 止的服务器上,你将得到如图 10-4 所示的消息。 图 10-4 当sv1166f上的 inetd 停止时的 Telnet 和 FTP 换句话说,当inetd daemon被停止时,已存在的会话不会被影响,但是如果不先重启 inetd daemon的话,任何新的telnet和ftp会话都不会被建立。 10.5 portmap daemon portmap daemon 把远程过程调用( remote procedure call,RPC)的程序号码( program numbers)转换成因特网端口号(Internet port numbers)。 当一个 RPC 服务器启动时,它会向portmap daemon注册。服务器告诉 daemon 它在 侦听哪个 port number 以及在哪些 RPC program numbers 上服务。这样 portmap daemon 就能知道每个被注册的端口在主机上的位置,以及在每个端口上有哪些可用的程序。 一个客户为它想呼叫的每个程序只需要向 portmap daemon 询问一次。portmap daemon 告诉客户应该想哪个端口发送呼叫。客户把这个信息存储下来以便于以后的调用。 由于标准的 RPC servers 通常是被 inetd daemon 启动的,因此 portmap daemon 必须 在 inetd daemon 被调用之前先被启动。 注意:如果 portmap daemon 被停止或异常结束,主机上的所有 RPC servers 必须被重启。 nfsd 就是一个常用的 RPC server。 第 184 页 10.6 Internet 编址 如果你的机器需要与其他机器通过 TCP/IP 网络进行通信,你必须为它们分配唯一的 IP 地址。每个主机被分配了一个唯一的 32-bit 逻辑地址(IPv4),它被划分成两个主要部分: 网络号(network number)和主机号(host number)。网络号表示主机所属的一个逻辑网 络,在整个子网(subnets)上必须一致。主机号表示在特定逻辑网络上的某台主机。 10.6.1 IP 地址格式 IP 地址是一个 32-bit 地址,每 8 位为一组,用点号分隔,以十进制格式表示,被称为 点分十进制表示法。8 位位组(octet)中的每一位都有一个二进制权值(128, 64, 32,16, 8, 4, 2, 1)。一个8位位组的最小值为0,最大值为255。图 10-5 说明了 IP 地址的基本格式。 图 10-5 IP 地址格式 10.6.2 二进制到十进制的转换 在一个八位位组(一个字节)中,每个位对应的十进制值从高到低变化,每个字节中最 左边的位具有最大值 128。为了进行从二进制值到十进制值的转换,把位值为 1 的所有位 对应的十进制值加起来就可以了。 举例如图 10-6 所示。 第 185 页 图 10-6 二进制到十进制的转换 为了实现与二进制格式之间的转换,你可以使用 bc 命令。例如为了把十进制数 195 转 换成二进制格式,输入: # bc obase=2 195 11000011 为了把二进制数 11001100 转换成十进制格式,输入: # bc ibase=2 11001100 204 10.6.3 Internet 地址分类 IP 编址支持 5 种不同的地址类别:A,B,C,D 和 E。其中A类,B类和C类可用于商 业用途。通过检查网络地址中第一个八位位组中的位,你可以确定一个IP地址的网络类别。 通过把一个IP地址中的所有位转换成二进制格式并计算可用的主机位数和网络位数,你 可以得到类似图10-7所示的数据。 第 186 页 图 10-7 IP 地址分类 为了确定IP地址的类别,请参考表 10-1。 表 10-1 IP 地址分类 IP地址类别 格式 第一个八位位组 地址范围 网络位数 / 主机位数 主机个数 A N.H.H.H 0 1.0.0.0 127.0.0.0 7 / 24 2 24 - 2 B N.N.H.H 10 128.1.0.0 191.254.0.0 14 / 16 2 16 - 2 C N.N.N.H 110 192.0.1.0 223.255.254.0 22 / 8 2 8 - 2 D - 1110 224.0.0.0 239.255.255.255 - - N - Network number H - Host number 例如,在 IP 地址 195.116.119.2 中,第一个八位位组为 195。因为 195 处在 192 与 223 之间,因此 195.116.119.2 是一个 C 类地址。 A类、B类和C类地址中还提供了一定的地址范围用于定义一个不具有INTERNIC授权的 私有网络(private network)。一个私有网络可以采用如下的地址范围: Class A 10.0.0.0 到 10.255.255.255 Class B 172.16.0.0 到 172.31.255.255 Class C 192.168.0.0 到 192.168.255.255 10.6.4 特殊的 Internet 地址 有少数 IP 地址不能用作主机地址。那些地址被用于特殊场合。 回送接口(loopback interface)允许位于同一台主机上的客户和服务器通过 TCP/IP 相 互通信。A 类网络中网络地址为 127 的地址被保留给回送接口 lo0 使用。AIX 把 IP 地址 127.0.0.1 分配给这个接口,并为它分配一个名字 localhost。为了检查接口属性,可使用 ifconfig 或 lsattr 命令,如下所示: 第 187 页 网络地址是一个所有主机地址位均为0的IP地址。如果你有一个IP地址 195.116.119.2, 它的网络地址应该为 195.116.119.0。这种类型的地址被用在路由表(routing table)中,作 为网络目标地址(network destination address)。下面是一个路由表的例子(网络地址中的 0 被省略)。 有限广播地址(limited broadcast address)为 255.255.255.255(所有主机地址位和 网络地址位均为1的地址)。它可以被用作代表所有主机的目标地址,与网络号无关。路由 器绝对不会转发一个有限广播;它只能在本地线缆上传输。 直接广播地址(directed broadcast address)是一个所有主机地址位为1的 IP 地址。 它被用于代表同一个网络中的所有主机。 例如,考虑一个 IP 地址 195.116.119.2;因为它是一个 C 类地址,其网络地址为 195.116.119。因此,该网络的直接广播地址为 195.116.119.255。为了检查接口 en0 上的 广播设置,输入: # ifconfig en0 en0: flags=e080863 inet 195.116.119.2 netmask 0xffffff00 broadcast 195.116.119.255 表 10-1 中的最后一列显示了对应网络类别中的主机数量。注意减掉了两个主机。这是 因为其中一个地址被保留用作广播地址,另一个地址被保留用作网络地址。 10.6.5 子网划分(subnetting) 子网编址允许一个自治网络由多个系统构成,共享相同的 Internet 地址类。TCP/IP 的 子网功能使得把单个网络划分成多个逻辑网络(subnets)成为可能。这对于A类和B类地址 非常有意义,因为连接数千台主机到单个网络是几乎不可能的。 一个标准的 IP 地址有两个域(请见“IP 地址格式”一节):一个网络地址和一个主机 地址。一个子网地址是通过借用主机域中的位并将它们指派为子网域而生成的。要借用的子第 188 页 网位数取决于所选择的子网掩码(subnet mask)。 图 10-8 显示了要从主机地址域中借用多少位来生成子网地址域,还有子网掩码是如何 工作的。 图 10-8 Subnetting 举例 在决定如何把主机地址划分成子网地址和主机地址时,你应当考虑在这些子网上的子网 数量和主机数量。 当你在分配子网地址和网络地址时,你可以有很大的灵活性。你可以根据需要和组织的 潜在增长需求以及网络结构进行主机地址位的划分。仅有的限制就是: - 对于所有子网,其网络地址是固定不变的。 - 对于整个物理网络,其子网地址是固定不变的。 - 主机地址域一般至少有2位。 如果子网地址域的宽度为 0,则网络未被划分子网,网络编址就使用第??26页的第 10.6.1 节“Internet地址格式”中介绍的Internet网络地址来执行。 注意: 通常子网位应当是连续的,并且应当位于主机地址的最高位部分。 10.6.6 子网掩码(Subnet masks) 子网掩码向系统表明子网划分机制。这个位码包括了IP地址的网络地址部分和子网地址 部分。 当一个主机向一个目标发送一个消息时,系统必须确定目标是与源处在同一个网络中, 还是必须通过一个网关(gateway)才能到达目标。系统将使用子网掩码来比较目标地址和 主机地址。如果目标不在本网中,系统则把数据包发送给网关。网关执行相同的比较以确定 目标地址是否位于它可以直接访问的一个网络中。 表 10-2 显示如何计算子网掩码,以实现从二进制格式到点分十进制表示法的转换。 表 10-2 计算子网掩码 第 189 页 一个子网掩码也是 32 bits 长。子网掩码中值为1的位表明该位对应IP地址中的网络地址 部分。子网掩码中值为0的位表明该位对应IP地址中的主机地址部分。 对于每种网络类别的地址都有缺省的子网掩码设置(图10-9)。如果网络中使用的地址 具有某一地址类的缺省子网掩码,则说明该网络中并没有建立子网。 图 10-9 各网络类别的缺省子网掩码 B 类地址子网划分举例 未划分子网的 B 类地址的缺省子网掩码为 255.255.0.0。而一个指定了3位子网位的B 类地址 172.16.0.0 的子网掩码为 255.255.224.0,原因是 3 位子网提供了 2 3 - 2= 6 个可能 的子网(保留了 1 个用作网络地址,1个用作广播地址)。你还有第3个八位位组中的 5 位, 及最后一个八位位组中的所有 8 位,总共 13 位用于主机地址。这样为你提供了每个子网共 2 13 - 2 = 8190 个主机。图 10-10 显示了这个子网掩码地址提供的子网划分的例子。 第 190 页 图 10-10 子网划分举例 表 10-3 显示了对于B类网络,采用不同子网位数时的子网掩码、子网个数和主机个数。 表 10-3 B类网络子网划分参考 子网位数 子网掩码 子网个数 主机个数 2 255.255.192.0 2 16382 3 255.255.224.0 6 8190 4 255.255.240.0 14 4094 5 255.255.248.0 30 2046 6 255.255.252.0 62 1022 7 255.255.254.0 126 510 8 255.255.255.0 254 254 9 255.255.255.128 510 126 10 255.255.255.192 1022 62 11 255.255.255.224 2046 30 12 255.255.255.240 4096 14 13 255.255.255.248 8190 6 14 255.255.255.252 16382 2 C 类地址子网划分举例 一个指定了5位子网位的C类地址192.168.2.0 的子网掩码为 255.255.255.248,因为有 5 位可用于子网划分,即可提供 2 5 - 2= 30 个可能的子网。现在你还有 3 位留给主机部分, 提供了每个子网共 2 3 - 2 = 6 个主机。表 10-14 显示了对于C类网络,采用不同子网位数时 的子网掩码、子网个数和主机个数。 表 10-4 C类网络子网划分参考 子网位数 子网掩码 子网个数 主机个数 2 255.255.255.192 2 62 3 255.255.255.224 6 30 4 255.255.255.240 14 14 5 255.255.255.248 30 6 第 191 页 6 255.255.255.252 62 2 10.7 主机名字解析 TCP/IP 提供了一个命名系统,支持平坦的和分层的网络组织,这样用户可以使用有含 义且容易记忆的名字来代替Internet地址。 在平坦的 TCP/IP 网络中,网络中的每台机器上都有一个文件(/etc/hosts),它包含了 网络上每台主机的名字到Internet地址(name-to-Internet-address)的映射信息。 当TCP/IP 网络变得非常大时,就象在 Internet 上,命名系统被按层次进行了划分。典 型的划分是根据网络中的组织结构进行的。在 TCP/IP 中,分层命名系统即我们所知的域名 系统( domain name system,DNS),它使用 DOMAIN 协议。DOMAIN 协议是由 TCP/IP 中 的named daemon来实现的。 解析主机名的缺省顺序是: 1. BIND/DNS (named) 2. 网络信息服务(Network Information Service,NIS) 3. 本地 /etc/hosts 文件 缺省顺序可以被通过创建配置文件 /etc/netsvc.conf 并指定期望的顺序而覆盖。缺省顺 序和 /etc/netsvc.conf 文件又都可以被环境变量 NSORDER 覆盖。 你可以创建 /etc/netsvc.conf 文件并加入一条记录来覆盖缺省顺序。如果 /etc/netsvc.conf 不存在,缺省地就好象你制订了下面一条记录: hosts = bind, nis, local 你可以通过修改环境变量 NSORDER 来覆盖缺省顺序或配置文件顺序。如果你不设置, 缺省地就好象你发出了下面一条命令: export NSORDER=bind, nis, local 10.7.1 /etc/resolv.conf 文件 /etc/resolv.conf 文件为本地解析器程序定义了域名协议(Domain Name Protocol, DOMAIN)的名字服务器(name-server)信息。如果 /etc/resolv.conf 文件不存在,那么 BIND/DNS 被认为是没有被建立或运行,并且因此是不可用的。系统将尝试使用缺省路径、 /etc/netsvc.conf 文件或 NSORDER 环境变量进行名字解析。 /etc/resolv.conf 文件的一个样例如图 10-11 所示。 图 10-11 /etc/resolv.conf 文件样例 在这个例子中,只定义了一个名字服务器,地址为 9.3.1.74。系统将向这个域名服务器 请求名字解析。用来附加到没有以一个 .(句号)结束的名字后面的缺省域名为 itsc.austin.ibm.com。search 记录定义了当解析一个名字时的域搜索列表;在上面的例子中, 它们是 itsc.austin.ibm.com 和 austin.ibm.com。 第 192 页 10.7.2 与 /etc/resolv.conf 有关的问题 当你在使用名字服务器解析一个主机名时遇到问题,你应当: 1. 核查你的 /etc/resolv.conf 文件存在且为名字服务器指定了正确的域名和Internet 地址。如 果你试图以名字访问一个主机,但 /etc/resolv.conf 文件中的记录不正确,而且主机也没有 被定义在 /etc/hosts 文件中,则你将得到一个错误消息,如下例显示: # ping olympus 0821-062 ping: host name olympus NOT FOUND 2. 如果 /etc/resolv.conf 中包含的数据正确,则使用 ping 命令加上在 /etc/resolv.conf 文件中 找到的名字服务器 IP 地址进行核查,看作为本地名字服务器的主机是否在工作。 3. 如果本地名字服务器是在工作着,则在那台主机上使用 lssrc -s named 命令核查其本地系 统中的 named daemon 是否活跃的。 4. 如果你在运行 syslogd daemon,可能会有错误消息被记录下来。这些消息的输出是由 /etc/syslog.conf 文件定义的。 10.7.3 nslookup 命令 nslookup 命令向域名服务器查询不同主机和域的有关信息。nslookup 命令可以通过 IP 地址、主机名或域来确定 Internet 上的服务器系统的相关信息。nslookup 命令语法如下: # nslookup [ IPAddress | HostName ] 例如,为了确定IP地址为207.25.253.26的系统的主机名,你可以输入: # nslookup 207.25.253.26 Server: dhcp001.itsc.austin.ibm.com Address: 9.3.240.2 Name: service.boulder.ibm.com Address: 207.25.253.26 在这个例子中,IP地址为207.25.253.26的系统的主机名为 service.boulder.ibm.com。 nslookup 命令也可以通过主机名来确定系统的IP 地址。例如,为了显示 service.software.ibm.com 的IP地址,你可以输入: # nslookup service.software.ibm.com Server: dhcp001.itsc.austin.ibm.com Address: 9.3.240.2 Non-authoritative answer: Name: service.boulder.ibm.com Address: 207.25.253.26 Aliases: service.software.ibm.com 在这个例子中,service.software.ibm.com 的 IP 地址为 of is 207.25.253.26。 nslookup 的输出也显示了 service.software.ibm.com 是 service.boulder.ibm.com 的一 个别名。 第 193 页 10.8 对新适配器的考虑 如果想在基本硬件安装完成以后再在机器中更换网络适配器,可能会需要一些附加的配 置步骤。请考虑把下面的任务作为配置一块新适配器所需的附加步骤。 1. 如果你错过了在系统引导期间被调用的 cfgmgr 命令给出的信息性消息(informational messages),你应当再次调用该命令以检查所需的设备相关软件是否有缺漏。 2. 如果需要的话,使用 smitty devices 命令安装所需的设备软件。 3. 调用 diag -a 命令,确认新的适配器资源已被加入到硬件配置中。 4. 再次运行 cfgmgr。 5. 对新适配器调用 lsdev -Cl 命令,确保适配器在系统中可用。例如: # lsdev -Cl ent0 6. 从网络规划者处取得 IP 地址和网络掩码。 7. 使用SMIT快速路径 smit inet 配置网络接口。不要使用 smit mktcpip,它只用于第一次配 置 TCP/IP。 8. 如果机器连接了两个网络,则打开 IP 转发功能。 9. 增加到那些需要从任意私有网络访问的目标系统的路由。 10.8.1 使用 SMIT 配置一个网络适配器 为了修改网络适配器的高级特性,包括环(线)速、双工模式以及发送和接收信息使用 的队列大小等,对以太网适配器可使用SMIT快速路径 smit chgenet,对令牌环适配器可使用 smit chgtok。使用 smit chgenet 时的菜单显示如图 10-12 所示。 图 10-12 Change/Show Characteristics of an Ethernet Adapter 菜单 10.8.2 使用 SMIT 配置一个网络接口 用于配置 TCP/IP 的SMIT 快速路径命令为 smit tcpip。你可以使用快速路径 smit inet 配 置一个网络接口。在下面的例子中,我们将使用一个以太网接口 en0。 第 194 页 1. 选择 List All Network Interfaces,检查 en0 接口是否存在。如果它不存在,选择 Add a Network Interface,然后选择 Add a Standard Ethernet Network Interface。你将得到如图 10-13 所示的面板。 图 10-13 Available Network Interfaces 子菜单 2. 按回车选择 en0 填入到下面的对话框屏幕中。选择你要配置的接口并填入必要的信息。 屏幕举例如图10-14所示。 图 10-14 Add a Standard Ethernet Network Interface 菜单 3. 完成了增加标准以太网接口的操作后,你将看到 en0 可用的消息。 4. 如果 en0 已经存在,选择 Change/Show Characteristics of a Network Interface。SMIT 快速路径为 smit chinet。屏幕显示举例如图 10-15 所示。 第 195 页 图 10-15 Change/Show a Standard Ethernet Interface 菜单 5. 完成了修改标准以太网接口的操作后,你将看到 en0 接口已经被修改的消息。 10.9 启动 IP 转发(IP forwarding) 为了允许其他系统通过一台连接了两个网络适配器的机器访问不同的网络,你必须在这 台机器上启动IP转发功能。该系统将成为网络 A 与网络 B 之间的一个网关。 IP转发是一个运行时的属性。缺省值为 0,即阻止对不是发往本地系统的IP包的转发。值为 1 时则可以转发。使用以下命令启动 IP 转发: no -o ipforwarding=1 当系统重启后该设置将丢失(可以放在rc.net或rc.nfs等文件中以使其在重启后仍然可以 生效)。 10.10 增加网络路由 对于那些需要访问一个私有网络或主机的系统,使用SMIT快速路径 smit route 或 smit mkroute 增加一条通过两个网络之间的网关到达私有网络的路由。smit mkroute 的一个例子 如图 10-16 所示。 第 196 页 图 10-16 Adding a Static Route 菜单 如果不使用 SMIT,你也可以使用下面的命令: route add -net 192.168.1 -netmask 255.255.255.0 9.3.1.124 显示在图10-17中的这个过程说明了: - 一个主机不能访问 IP 地址 192.168.1.1 和 192.168.1.2。 - 使用 route add 命令增加一条路由,指定 9.3.1.124 将作为到达网络 192.168.1 的网关。 - traceroute 命令显示了到达 192.168.1.1 和 192.168.1.2 所经历的路由。 第 197 页 图 10-17 使用 route add 命令增加一条路由 10.11 使用 SMIT 修改 IP 地址 如果你把机器从一个网段移到另一个网段中,并需要修改其 IP 地址,就象你第一次配 置 TCP/IP 时一样地使用 smit mktcpip 命令。你可能需要修改主机名、IP地址和缺省网关。 屏幕显示举例如图 10-18 所示。 第 198 页 图 10-18 Minimum Configuration & Startup 菜单 注意:不要通过一个 Telnet 会话执行这个任务,因为一旦修改完成,你将失去连接。 如果你不是要在网段之间移动主机,而只是想改变 IP 地址,你只要把图10-18中显示的 START Now 域设置成 yes 就可以了。这将自动启动 TCP/IP daemons,或者如果它们已被 启动,则刷新它们。 10.12 ifconfig 命令 ifconfig 命令允许你直接配置和修改网络接口的属性,它比使用网络管理的 SMIT 面板 更简便。 使用 ifconfig 命令配置和修改网络接口的语法如下: ifconfig Interface [ AddressFamily [ Address [ DestinationAddress ] ] [Parameters .. ] ] 有三种地址族(address families)可以用在 ifconfig 命令中: inet 缺省的点分十进制表示法,采用它的系统属于 DARPA-Internet。这 个地址族是 ifconfig 缺省采用的。 inet6 缺省的点分十进制表示法,采用它的系统属于运行 IPv6 的 DARPA-Internet。 ns 缺省的点分十六进制表示法,采用它的系统属于 Xerox Network Systems 家族。 表 10-5 是 ifconfig 命令的常用命令参数及其功能的列表。 表 10-5 ifconfig 的常用参数 参数 描述 alias 为接口增加一个网络地址。 delete 从接口上删除指定的网络地址。 detach 从网络接口列表中删除一个接口。 down 将一个接口标记为 inactive (down),这样使系统不会试图通过该接口传输消息。 mtu Value 设置最大的 IP 包大小为 Value 字节,即最大传输单元(maximum transmission unit), 其取值范围可从 60 到 65535。 netmask Mask 指定在地址中保留多少位用于对网络进行子网划分。 up 将一个接口标记为 active (up)。 第 199 页 10.12.1 识别网络接口 在你可以使用 ifconfig 命令执行网络接口管理任务之前,先识别出服务器上的所有接口 将会有所帮助。有两种方式可以识别你的服务器上的网络接口。第一个可以运行的命令为: # lsdev -Cc if 它将产生包含系统中所有接口的一个简要列表,不管它们当前是否活动地被系统使用 着。例如: # lsdev -Cc if en0 Defined 10-80 Standard Ethernet Network Interface en1 Defined 20-60 Standard Ethernet Network Interface et0 Defined 10-80 IEEE 802.3 Ethernet Network Interfac et1 Defined 20-60 IEEE 802.3 Ethernet Network Interfac lo0 Available Loopback Network Interface tr0 Available 10-68 Token Ring Network Interface 第二个可以运行的命令是: # ifconfig -a 它所产生的列表中将包含系统中所有被分配了IP地址并活动地被系统使用着的网络接 口。例如: # ifconfig -a tr0: flags=e0a0043 inet 10.1.2.2 netmask 0xffffff00 broadcast 10.1.2.255 lo0: flags=e08084b inet 127.0.0.1 netmask 0xff000000 broadcast 127.255.255.255 inet6 ::1/0 为了得到关于一个特定网络接口的信息,包括状态、IP地址及网络掩码,使用命令: # ifconfig Interface 例如,为了得到关于 tr0 的信息,运行下面的命令: # ifconfig tr0 tr0: flags=e0a0043 inet 10.1.2.2 netmask 0xffffff00 broadcast 10.1.2.255 10.12.2 激活一个网络接口 在可以通过一个网络接口传输消息之前,该接口必须被置于 up 或 active 状态。为了激 活一个接口,可使用 ifconfig 命令,运行如下: # ifconfig Interface [ Address ] [netmask Netmask ] up 为了使用 ifconfig 激活一个网络接口,如 tr0,运行下面的命令: # ifconfig tr0 up 为了激活一个网络接口,如回送接口(loopback interface)lo0,并为它赋予一个IP地 址,运行下面的命令: # ifconfig lo0 127.0.0.1 up 第 200 页 为了激活一个网络接口,如令牌环接口 tr0,并为它赋予一个IP地址和网络掩码,运行 下面的命令: # ifconfig tr0 10.1.2.3 netmask 255.255.255.0 up 10.12.3 停止一个网络接口 为了停止通过一个接口传输消息,该接口必须被置于 down 或 inactive 状态。为了使用 ifconfig 命令停止一个接口,运行命令: # ifconfig Interface down 例如,为了停止网络接口 tr0,运行下面的命令: # ifconfig tr0 down 注意:这个命令并不删除任何被系统分配给该接口的IP地址,也不会把该接口从网络接口列 表中删掉。 10.12.4 从一个网络接口上删除一个地址 为了从一个接口上删除一个网络地址,该地址必须被从接口定义中删除。为了使用 ifconfig 从一个接口上删除一个网络地址,运行命令: # ifconfig Interface [ Address ] [netmask Netmask ] delete 例如,为了从 tr0 删除网络地址,运行下面的命令: # ifconfig tr0 delete 注意:这个命令并不把接口置于 down 状态,也不会把该接口从网络接口列表中删掉。 10.12.5 断开一个网络接口 为了从网络接口列表中删除一个接口,该接口必须被从系统中断开(detached)。当一 个网络接口卡从物理上就已经被从系统中移除,或当一个接口不再需要被定义在系统中时, 都可以使用这个命令。为了使用 ifconfig 从系统中断开一个网络接口,运行命令: # ifconfig Interface detach 例如,为了从网络接口列表中删除接口 tr0,运行下面的命令: # ifconfig tr0 detach 注意:这个命令删除所有被分配给接口的网络地址,并从 ifconfig -a 命令的输出中去掉该接 口。为了把一个接口加回到系统中,或增加一个新的接口到网络接口列表中,运行下面的命 令: # ifconfig Interface 其中 Interface 是你想增加的网络接口。 10.12.6 为一个网络接口创建一个 IP 别名 通过 ifconfig 命令,你可以定义一个别名把多个网络地址捆绑到一个网络接口上。这在 某些情形下非常有用,例如通过一个 Web server 应用提供两个不同的初始主页。为了将一 个别名捆绑到一个网络接口上,运行下面的命令: 第 201 页 # ifconfig Interface Address [ netmask Netmask ] alias 例如,为了将IP地址 10.1.2.3 和掩码 255.255.255.0 捆绑到 tr0 上,运行命令: # ifconfig tr0 10.1.2.3 netmask 255.255.255.0 alias 注意:使用这个命令将不会在 ODM 中创建别名的记录。为了保持这个别名,你将需要在每 次重启系统时调用相同的命令。如果你的系统配置在 /etc/inittab 文件中定义了一个本地启 动脚本,可以把这个命令加入到该本地启动脚本中。 如果不再需要这个别名,你可以使用下面的命令删除它: ifconfig tr0 10.1.2.3 netmask 255.255.255.0 delete 注意:如果你不指定要从一个接口上删除哪个别名,系统将缺省删掉接口上的主网络地址。 当该动作发生后,接口的网络地址表中的第一个别名就成为接口的主网络地址。为了从一个 接口上删除所有别名,你只能一个一个地将它们删除。 10.12.7 修改网络接口的 MTU 大小 当消息被通过一个网络接口传输时,它们是被放在被称为数据包的信息束中传递。这些 数据包的长度是可变的,每个数据包的长度可以从60字节到65535字节不等。缺省时,一个 16 Mb 的令牌环接口将传输1492字节长的数据包,而一个以太网接口将传输1500字节长的 数据包。对于 AIX 系统,这些数据包是通过最大传输单元(MTU)变量来进行管理的。 注意:对于特定接口,MTU 大小的最大值和最小值是可变的。欲了解更多信息,请阅读 AIX 产品文档之 AIX 5L Version 5.1 System Management Guide: Communications and Networks 中的“Automatic Configuration of Network Interfaces”部分。 MTU 大小对适当的网络通信非常关键。长度太小的数据包可能会在传输中丢失。而长 度过大的数据包则容易与其他在传输中的数据包发生碰撞。这些因素都会导致传输速率的降 低以及其他的网络问题,因为数据包必须被重传。 为了确定一个网络接口的 MTU 大小,运行下面的命令: # lsattr -El Interface 其输出如下: # lsattr -El tr1 mtu 1492 Maximum IP Packet Size for This Device True mtu_4 1492 Maximum IP Packet Size for 4 Mbit ring speed True mtu_16 1492 Maximum IP Packet Size for 16 Mbit ring speed True mtu_100 1492 Maximum IP Packet Size for 100 Mbit ring speed True ... ifconfig 命令可以调整一个网络接口的 MTU 大小。为了改变 MTU 大小,运行下面的命 令: # ifconfig Interface mtu Value 例如,为了将 tr1 的MTU大小修改为12000 字节长,运行下面的命令: # ifconfig tr1 mtu 12000 注意:当接口在被使用的时候 MTU 大小是不能被改动的。在同一个局域网(LAN)上的所 有系统必须具有相同的 MTU 大小,因此所有系统必须同步修改 MTU 大小以防止产生问题。 第 202 页 10.13 网络安全 网络安全是系统管理员们普遍关心的一个话题。我们非常需要有安全的连接,可信任的 网络,以及其他确保系统不被非授权访问的通信方式。本节将概要地描述一些比较常见的保 护方式,用于防止有人通过网络对你的系统进行非授权访问。 10.13.1 可信任的和不可信任的进程 一个可信任的程序,或者说可信任的进程,可以是一个shell脚本,一个伺服程序 (daemon),或一个程序,它能满足特定的安全标准。这些安全标准是被美国国防部( U.S. Department of Defense)设立和维护的,该机构也认证一些可信任的程序。 TCP/IP 包含一些可信任的伺服程序(trusted daemons)和许多不可信任的伺服程序 (non-trusted daemons)。 trusted daemons 已经通过测试,它们被确信为在特定安全标准 下运行,例如它们赋予用户一个特定的访问级别并只允许用户执行特定的任务。 trusted daemons 的例子包括: - ftpd - rexecd - telnetd 可信任类型的 daemons 要求对希望与服务器通信的用户进行检查和鉴别。典型地,可 通过使用登录过程和口令来实现。 non-trusted daemons 的例子包括: - rshd - rlogind - tftpd 不可信任类型的 daemons 不常要求对希望与服务器通信的用户进行检查和鉴别。对于 这类 daemons 的使用,登录过程和口令不是必需的。在你的系统中启动这些进程时,一定 要小心处理。 10.13.2 $HOME/.netrc 文件 $HOME/.netrc 文件中包含了 rexec 和 ftp 命令的自动登录功能所使用的信息。它是一 个隐含文件,位于用户的主目录(home directory)中,必须被执行命令的用户或根用户所 有。如果 .netrc 文件中包含一个登录口令,该文件的许可权必须被设置为600(只允许属主 读写)。登录口令是明文的。即使许可权被设置为 600,访问远程系统的口令仍易受到攻击, 因为它能被任何具有 root 授权的用户看到。 $HOME/.netrc 文件中的记录被以下面的格式存放(由空格、制表符或换行分隔): machine HostName 其中HostName 变量是远程主机的名字。该项记录开始对一台指定 主机的自动登录进程的定义。后续的记录都将应用于该主机,直到 下一个 machine 记录的开始或文件结束。 login UserName 其中 UserName 变量是在远程主机上要使用的完整域用户名。如 果找到该项记录,自动登录进程会使用指定的名字初始化一次登录 过程。如果该项记录不存在,自动登录进程不会成功。 第 203 页 password Password 其中 Password 变量是要使用的登录口令。自动登录进程将这个口 令提交给远程服务器。一个登录口令必须被在远程主机上设立,而 且它必须被输入到.netrc文件中。否则,自动登录进程将失败,并 且用户会被提示输入登录口令。 account Password 其中 Password 变量是要使用的帐户口令(account password)。 如果找到该项记录,而远程主机上确实要求一个帐户口令,则自动 登录进程将这个口令提交给远程服务器。如果远程主机要求一个帐 户口令,但是该项记录不存在,那么自动登录进程会提示用户输入 帐户口令。 macdef MacroName 其中 MacroName 变量是一个 FTP 子命令的宏指令(macro)的 名字。这个宏指令被定义用来包含后面的 FTP 子命令,直到下一 个空行或文件结束。如果宏指令被命名为 init,如果自动登录进程 成功结束,ftp 命令则执行该宏指令。rexec 命令不识别 macdef 记 录。 一个 $HOME/.netrc 文件的例子如图 10-19 所示。 图 10-19 .netrc 文件举例 注意:.netrc 文件的大小最大可以是 4096 字节。如果你需要使用多于 4096 字节的空间, 你必须把文件分割成多个部分,并写一个脚本来使程序如同 FTP 作业般自动运行。 10.13.3 /etc/hosts.equiv 和 $HOME/.rhosts 文件 /etc/hosts.equiv 文件,连同所有本地的 $HOME/.rhosts 文件,一起定义可以在一个本 地主机上无须提供口令即能调用远程命令的主机(网络上的计算机)和用户帐号。一个不需 要提供口令的用户或主机被视为可信任的,即使初始化连接的 daemons 本身可能是不可信 任的(例如rlogind)。 当一个本地主机接收到一个远程命令请求时,某个适当的本地 daemon 首先会检查 /etc/hosts.equiv 文件以确定该请求是否从一个可信任的用户或主机发起的。例如,如果本 地主机接收到一个远程登录请求,rlogind daemon 会检查本地主机上是否存在一个 hosts.equiv 文件。如果该文件存在,但是没有定义主机或用户,系统再检查适当的 $HOME/.rhosts 文件。该文件与 /etc/hosts.equiv 文件类似,不过它是由个别用户维护的。 注意:如果一个远程命令请求是被 root 用户发出的,/etc/hosts.equiv 文件则被忽略,只有 /.rhosts 文件被读到。 /etc/hosts.equiv 和 $HOME/.rhosts 这两个文件都必须具有拒绝组(group)和其他用 户(other)的写访问的许可权(600)。如果 group 或 other 对一个文件具有写权限,那么 这个文件将被忽略。不要把 /etc/hosts.equiv 文件的写权限赋给 group 和 others,因为这样第 204 页 将带来安全风险以及不受欢迎的用户对本地主机的访问。 /etc/hosts.equiv 和 $HOME/.rhosts 文件的格式如下所示: [ + | - ] HostName [ + | - ]UserName or @NetGroup 注意:/etc/hosts.equiv 和 $HOME/.rhosts 两者都是从上至下被读取的,因此记录被放置在 文件中的顺序可改变所需的结果。在一个列表中,deny 或 -(减号)语句必须位于 accept 或 +(加号)语句之前。 例如,为了允许主机 toaster 和 machine 上的所有用户登录本地主机,你应输入: toaster machine 如果只允许用户 bob 从主机 machine 上登录,则输入: toaster machine bob 如果允许用户 lester 从任何主机上登录,输入: toaster machine bob + lester 为了允许所有用户从主机上登录,但对用户 joel 和 mike 却需要提供口令才能登录,则 输入: toaster machine bob + lester tron -joel tron -mik tron 为了拒绝 forum 网络组(netgroup)中的所有成员自动登录,你可以输入: toaster machine bob + lester tron -joel tron -mik tron - @forum 注意:网络组(Netgroups)是 AIX 5L Version 5.1 的 NIS 的一个特性,允许管理员方便地 把主机和用户分类成公共的组。netgroups 的使用超出了本书的范围。想了解更多关于 netgroups 的信息,可以在 AIX 产品文档之 AIX 5L Version 5.1 System Management Guide: Communications and Networks 中找到相关内容。 10.13.4 securetcpip 命令 securetcpip 命令为一台主机的网络连接提供增强的安全性。它执行下面的任务: - 关闭不可信任的命令和伺服程序:rcp,rlogin,rlogind,rsh,rshd,tftp 及 tftpd。被关 闭的命令和 daemons 并未被删除;而是把它们置为模式 0000。你可以通过重新建立一个 合法模式来启动一个特定的命令或 daemon。当 securetcpip 命令在你的系统中运行时, /.netrc 文件不会被任何程序使用。 第 205 页 - 在 /etc/security/config 文件中增加一个 TCP/IP 安全的节(stanza)。该节的格式如下: tcpip: netrc = ftp,rexec /* functions disabling netrc */ 注意:在运行 securetcpip 命令之前,先停顿(quiesce)系统,即以 root 登录并执行 killall 命令停止所有 network daemons。killall 命令杀掉除了呼叫进程(calling process)之外的 所有进程。如果用户已登录或一个程序正在运行,等它们退出或结束后再执行 killall 命令。 发出 securetcpip 命令后,关闭并重启系统。系统重启后,所有的 TCP/IP 命令和网络 接口都会被适当地配置。 10.13.5 匿名(Anonymous)FTP 匿名 FTP 是这样一种功能,它允许用户通过 ftp 在你系统的一些文件目录下传输文件, 而无须每个用户具备一个唯一的登录身份。它在某些时候是一个非常有用的工具,例如发布 软件补丁包,尤其当全球的大量用户需要访问一个特定系统时。用户只需要使用登录名 anonymous 和口令 guest 或其他一些通用口令惯例(典型的如用户的 Internet e-mail ID)。 为了在一个运行 AIX 5L Version 5.1 的服务器上建立匿名 FTP 系统,运行下面的脚本: # /usr/samples/tcpip/anon.ftp 它将为使用匿名 FTP 创建适当的用户和目录。 10.13.6 FTP 日志 缺省情况下,FTP 不记录访问系统的用户的连接或文件传输信息。当用户使用匿名 FTP 与你的系统之间传输文件时,这就可能成为一个安全风险。为了启动 FTP 日志,执行下面 的操作: 1. 编辑 /etc/syslog.conf 文件,并加入下面这行: daemon.info FileName 其中 FileName 是日志文件的名字,它将追踪 FTP 行为,不管是anonymous用户还是其他 用户ID的。FileName 必须在你执行下面的步骤之前已经存在。 2. 运行命令 refresh -s syslogd 刷新 syslogd daemon。 3. 编辑 /etc/inetd.conf 文件,并修改包含 ftpd 的行,如下所示: ftp stream tcp6 nowait root /usr/sbin/ftpd ftpd -l 4. 运行命令 refresh -s inetd 刷新 inetd daemon。 当用户使用 ftp 命令访问你的系统时,它们的登录和文件传输行为将被记录在 FileName 文件中。这个日志的内容类似于: Sep 5 13:56:47 localhost ftpd [17958 ] : connection from server2.example.ibm.com at Wed Sep 5 13:56:47 2001 Sep 5 13:56:52 localhost ftpd [17958 ] : ANONYMOUS FTP LOGIN FROM server2.example.ibm.com, sampleid@server1.example.ibm.com Sep 5 13:57:17 localhost ftpd [17958 ] : FTPD: IMPORT file local testfile, remote 在这个例子中,用户从 server1.example.ibm.com 上建立了一个匿名 FTP 连接。用户 提供了 e-mail 地址 sampleid@server1.example.ibm.com 作为口令。用户使用了 FTP 命令 put 上载文件 testfile 到 server2 上。 FTP 日志不记录用户什么时候退出 FTP 会话。为了确定是否还有人登录在你的系统中,第 206 页 对方括弧中提供的 PID (如本例中的[17958])执行一次 ps -fp 命令。 FTP 日志文件将根据有多少用户访问你的系统和发生多少文件传输成比例增长。我们 建议你监控 FTP 日志文件的增长以防止潜在的系统问题。 10.14 uname 命令 除 hostname 命令外,你还可以使用 uname -n 命令显示系统的主机名。不带任何标记 的话,uname 命令将显示你正在使用的操作系统。 你也可以使用 uname -x 命令显示: - 你在使用的操作系统 - 主机名 - 运行系统的机器的硬件 ID 号(即CPU ID) - 操作系统的发行版本号 - 操作系统的版本 - 系统型号 使用 uname 命令的一些例子如图 10-20 所示。 图 10-20 uname 命令 10.15 判定基本网络问题 当一个用户告诉你某个系统不可访问了,你需要检查各种网络问题。典型地,你可以把 下面列出的任何一个适用于你的环境中的 TCP/IP 问题判定主题都检查一遍: - 通信问题 - 名字解析问题 - 路由问题 - 系统资源控制器(SRC)支持方面的问题 - Telnet 或 rlogin 问题 - 配置问题 - 网络接口的常见问题 - 包转发问题 - 动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)问题 此外,还有一些网络范畴之外的问题也需要你检查: - 服务器系统可能停机了。 当你检查通信问题时,这个问题通常就会自己呈现出来。 用 ping 命令将帮助你发现出问题的系统。可能整个系统都停止了,或者可能网络接 口停止工作。 - 分页空间已充满。 第 207 页 如果一个用户已经登录,那么这个问题将很明显,因为总会有一个表明没有足够分页 空间或没有足够内存系统消息出现。不管怎样,如果用户想 telnet 或 ftp 到系统上,将会 发生超时,因为系统不能再产生新的进程或系统正忙着杀掉进程。 - 文件系统可能已充满。 如果用户可以访问文件系统,但是某些功能有问题,你还是应当检查系统的各个方面。 如果用户不能启动基于Web的系统管理器(Web Based System Manager,WSM),可能 是 /tmp 文件系统已满。 - 文件系统可能未被加载。 通常,用户提到所有文件都丢失了。 并非所有问题都是被网络和网络功能引起的。在你判定是网络问题之前要先确保你完全 理解了用户遇到的问题。 10.16 测验 下面的认证评测问题将帮助检验你对本章内容的理解。 1. Which of the following actions allow a System Administrator to configure anonymous FTP? A. smit ftp B. /usr/samples/tcpip/anon.ftp C. startsrc -s ftp -a anonymous D. add the FTP anonymous user using smit 2. A System Administrator is given only one Ethernet network card (en0) in a system, with an IP address of 192.168.1.3. A user wants to host two different initial home pages on the Web server. The System Administrator has verified that the Web server does support multiple IP Addresses. To add another IP address to the already configured interface, which of the following choices should be selected? A. smitty chgenet B. smitty add_interface C. ifconfig en0 newipaddress netmask netmask alias D. This task cannot be accomplished without adding a new Ethernet interface. 3. When a RPC (remote procedural call) server starts up, it registers itself with which of the following daemons? A. yp daemons B. nfs daemons C. inetd daemons D. portmap daemon 下面是作者提出的一些附加问题,以进一步检查你对本章内容的理解。 1. Which of the following actions will allow the system administrator to stop and restart the TCP/IP daemons manually? A. Use the netstat command. B. Use the SRC utility to stop and restart. C. Use the netconfi utility menu. 第 208 页 D. Issue the rmdev command on the appropriate network adapter. 2. Two Web servers need to be configured on a single machine that has only one network interface. Each Web server needs to have its own unique IP address. How should an administrator accomplish this? A. Use the smitty alias command B. Add it in /etc/defaults C. Use the newaliases 192.127.10.10 command D. Use the ifconfig en0 alias 192.127.10.10 command 10.16.1 答案 下面是对评测问题的回答。 1. B 2. C 3. D 下面是对附加问题的回答。 1. B 2. D 10.17 练习 以下的练习是为自学提供的例题。它们将帮助你加深对本章的理解。 1. 在安装了一个新的网络适配器之后或用以太网适配器替换了令牌环适配器之后,需要用 什么步骤重启 TCP/IP? 2. 使用 SMIT 配置一个网络接口。 3. 使用 /etc/rc.tcpip 和 /etc/tcp.clean 启动和停止 TCP/IP daemons。 4. 列出网络相关的 SMIT 快速路径名,如对 tcpip,route 及其他。 5. 使用 SMIT 修改 IP 地址。 6. 描述 inetd,portmap 及其他 TCP/IP daemons。当任何一个 TCP/IP daemons 没有被启 动时,用户会遇到什么错误? 7. 如果 /etc/resolv 文件不正确会有什么错误? 8. 如何增加一条路由? 9. 使用 ifconfig 命令创建和删除一个 IP 别名。 10. 如果不启动 TCP/IP,ping 会不会工作? 11. 使用 $HOME/.netrc 文件取消 rexec 和 ftp 命令的用户登录和口令提示。 第 209 页 第十一章 网络文件系统管理 网络文件系统(Network File System,NFS)是一个分布式文件系统,允许用户象在本 地一样访问远程服务器上的文件和目录。例如,用户可以对远程文件和目录使用操作系统命 令进行创建、删除、读、写及设置文件属性等操作。NFS 是通过使用远程过程调用(remote procedure calls,RPC)实现的,与机器类型、操作系统和网络架构无关。本章将讨论管理 员在一个NFS环境下可以执行的任务。 11.1 NFS 服务 NFS 通过一个客户-服务器(client-server)关系提供它的服务。使其文件系统、目录 及其他资源可被远程访问的计算机被称为服务器(servers)。使文件系统可被远程访问的行 为被称为输出( exporting)。使用服务器资源的计算机或其运行的进程被视为客户( clients)。 当一个客户装载了服务器输出的一个文件系统后,客户就可以访问单个的服务器文件了。对 被输出目录的访问权利可以被限制给特定客户。 以下列出了上面的讨论中所用到的术语: Server 使其文件系统、目录及其他资源可被远程访问的计算机。 Clients 使用服务器资源的计算机或其运行的进程。 Export 使文件系统可被远程客户访问的行为。 Mount 客户访问服务器所输出的文件系统的行为。 NFS 提供的一些主要的服务包括: Mount 由服务器上的 /usr/sbin/rpc.mountd daemon 和客户机上的 /usr/sbin/mount 命令提供。mountd daemon 是一个远程过程调用 (RPC),它负责应答客户对装载一个文件系统的请求。mountd daemon 通过读 /etc/xtab 文件找出哪些文件系统是可用的。此外, mountd daemon 还提供了对当前被装载的文件系统及装载它们的 客户的列表。 Remote file access 由服务器上的 /usr/sbin/nfsd daemon 和客户机上的 /usr/sbin/biod daemon 提供。处理客户对文件的请求。biod daemon 运行在所有 的 NFS 客户系统中。当一个客户机上的一个用户想读或写服务器 上的一个文件时,biod daemon 就把其请求发送给服务器。 Boot parameters 由服务器上的 /usr/sbin/rpc.bootparamd daemon 为 SunOS 无盘 客户提供引导参数。 PC authentication 由服务器上的 /usr/sbin/rpc.pcnfsd daemon 为 PC-NFS 提供用户 鉴别服务(user authentication service)。 NFS 服务器是无状态的(stateless)。就是说,NFS 服务器不会记住任何有关客户的事 务(transaction)信息。换句话说,NFS 事务是原子性的(atomic):一个 NFS 事务对应 一个单一并完整的文件操作。NFS 要求客户记住任何以后的 NFS 应用所需的信息。 图 11-1 说明了在本章中将讨论的 NFS 环境的配置。 第 210 页 图 11-1 典型的 NFS 环境举例 图 11-1 所示的环境中包含两个 NFS 服务器和三个客户,其中有一个系统既为服务器又 为客户。服务器 CRoom 输出它的目录以允许所有其他系统访问它们。服务器 Accounts 共 享了一个目录,只允许 Marketing 访问。以下各节将参照这个图中所体现的环境来讨论当在 这个环境下管理 NFS 时会出现的挑战和任务。 11.2 NFS 的规划、安装和配置 NFS 不需要特别的安装任务,因为在基本操作系统(BOS)安装时就已经包括了网络 服务如TCP/IP和NFS的缺省安装 在启动任何一个系统中的NFS配置之前,先执行下面的任务: 1. 确定网络中有哪些系统将作为服务器,哪些系统将作为客户。 如上面的图 11-1 所示,CRoom 和 Accounts 为服务器,而 Hresources、Accounts 和 Marketing 均为客户。注意 Accounts 既是客户又是服务器。 2. 为每个系统启动 NFS daemons(无论是客户还是服务器)。 NFS daemons 缺省在新安装 的系统中是不被启动的。当一个系统第一次被安装时,所有文件被放入系统,但是激活 NFS 的步骤没有执行。NFS daemons 可以通过以下方式启动: – 使用 SMIT 快速路径 smitty mknfs – 使用 mknfs 命令立即启动 NFS daemons,它产生的输出如下: # mknfs -N 0513-059 The portmap Subsystem has been started.Subsystem PID is 23734. Starting NFS services: 0513-059 The biod Subsystem has been started.Subsystem PID is 27264. 0513-059 The nfsd Subsystem has been started.Subsystem PID is 30570. 0513-059 The rpc.mountd Subsystem has been started.Subsystem PID is 28350. 0513-059 The rpc.statd Subsystem has been started.Subsystem PID is 15298. 第 211 页 0513-059 The rpc.lockd Subsystem has been started.Subsystem PID is 30976. # 表 11-1 列出了mknfs命令最常用的标记。 表 11-1 mknfs 命令标记 标记 描述 -B 在inittab文件中增加一项在系统启动时执行/etc/rc.nfs文件的记录。mknfs命令也立即执行 /etc/rc.nfs文件启动NFS daemons 。该标记为缺省的。 -I 在inittab文件中增加一项在系统启动时执行/etc/rc.nfs文件的记录。 -N 立即执行/etc/rc.nfs文件启动NFS daemons 。当以这种方式启动时,daemons 会一直运行 直到下次系统重启。 -B 和 -l 选项在 inittab 文件中加入一项记录使得 /etc/rc.nfs 脚本每当系统重启时都会运 行。这个脚本将依次启动该特定系统所需的所有 NFS daemons。 根据下面的指导配置 CRoom 和 Accounts 作为 NFS 服务器: 1. 如果 NFS daemons 尚未启动,使用 SRC 启动它们。 NFS daemons 可以被逐个启动或一并启动。 使用下面的命令可以启动单个 NFS daemon: startsrc -s daemon 其中 daemon 为任何一个由 SRC 所控制的 daemon(请见第??27页的第11.4节, “NFS 文件、命令和 daemons 参考”)。例如,为了启动 nfsd daemon,使用: startsrc -s nfsd 要启动所有 NFS daemons,则使用下面的命令: startsrc -g nfs 注意:如果 /etc/exports 文件不存在,nfsd 和 rpc.mountd daemons 将不会启动。你可以 运行 touch /etc/exports 命令创建一个空的 /etc/exports 文件。这样就允许了 nfsd 和 rpc.mountd daemons 的启动,即使还没有任何文件系统被输出。 2. 在 /etc/exports 文件中创建输出。 11.2.1 输出 NFS 目录 本节讨论 exportfs 命令的使用。 使用SMIT输出一个NFS目录 为了使用SMIT输出文件系统,按照以下过程执行: 1. 使用 lssrc -g nfs 命令确认 NFS 已经在服务器 CRoom 和 Accounts 上运行。象在下面的 例子中,输出表明 nfsd 和 rpc.mountd daemons 是活动的( active)。如果不是,则按照第?? 28页中第11.2节“NFS的规划、安装和配置”的开头部分所提供的指导启动 NFS。 # lssrc -g nfs Subsystem Group PID Status biod nfs 15740 active nfsd nfs 11376 active rpc.mountd nfs 5614 active rpc.statd nfs 16772 active rpc.lockd nfs 15496 active # 2. 使用 smitty mknfsexp 输出目录;SMIT 屏幕如图11-2所示。 第 212 页 图 11-2 Adding a directory to the export list 菜单 3. 在 PATHNAME of directory to export 域中对服务器 CRoom 指定 /home1,并对服务器 Accounts 指定 /backup,把 MODE to export directory 域设置为 read-write,并把EXPORT directory now, system restart, or both 域设置为 both。 4. 指定其他任何你需要的选项特征,或者保留其他域的现有设置以接受缺省值。在这个例 子中,对于 Accounts,把 Hosts and NetGroups allowed client access 域设置为 Marketing 并保留其他所有部分的缺省值。 5. 在你完成修改后,SMIT 便更新 /etc/exports 文件。如果 /etc/exports 文件不存在, 则创 建一个。 6. 重复第三步到第五步,在CRoom中增加对目录 /home2、/home3、/home4 的设置。 Accounts 只输出 /backup;因此不需要作其他的输出。 7. 如果 NFS 当前在服务器上运行着,输入: /usr/sbin/exportfs -a -a 选项告诉 exportfs 命令把 /etc/exports 文件中的所有信息发送给内核。如果 NFS 还没有 运行,先按照第??28页中第11.2节“NFS的规划、安装和配置”的开头部分所提供的指导 启动 NFS。 8. 采用下面的方式检查是否所有文件系统都已经被正确地输出: 对服务器 CRoom: # showmount -e CRoom export list for CRoom: /home1 (everyone) /home2 (everyone) /home3 (everyone) /home4 (everyone) # 对服务器 Accounts: # showmount -e Accounts export list for Accounts: 第 213 页 /backup Marketing # 使用文本编辑器输出 NFS 目录 为了使用文本编辑器输出文件系统,执行下列步骤: 1. 使用你喜欢用的文本编辑器打开 /etc/exports 文件。如: vi /etc/exports 2. 为每个要输出的目录创建一条记录,使用目录的全路径名,如图 11-3 所示。 图 11-3 服务器 CRoom 的 /etc/exports 文件的内容 3. 把每个要输出的目录列在每行的最左边。没有一个目录会包含其他已经被输出的目录。 保存并关闭 /etc/exports 文件。 4. If NFS is currently running on the servers, enter: /usr/sbin/exportfs -a 临时输出一个 NFS 目录 一个文件系统可以在需要时被输出,这样不用修改 /etc/exports 文件。可输入: exportfs -i /dirname 其中 /dirname 是你想输出的文件系统名。exportfs -i 命令指定不用检查 /etc/exports 文件 以寻找特定目录,所有选项都是直接从命令行采用的。 对于每个作为客户的系统(Hresources、Accounts 和 Marketing),下面的步骤将确保它 们有访问服务器 CRoom 和 Accounts 上的目录和文件的权利。 1. 确定 NFS 是缺省的远程文件系统。如果不是,则你每次使用 mount 命令时都要指定 -v nfs 标记。使用一个文本编辑器打开 /etc/vfs 文件并查找下面的记录: %defaultvfs jfs nfs nfs 2 /sbin/helpers/nfsmnthelp none remot 如果在该行的开头有 #(井号符)标志,将其删除。 2. 保存并关闭 /etc/vfs 文件。 3. 按照第??28页中第 11.2 节“NFS的规划、安装和配置”的开头部分所提供的指导启动 NFS。 4. 转到第 ??29页的第11.2.3 小节,“装载 NFS 目录”。 第 214 页 11.2.2 停止输出 NFS 目录 你可以使用下面的任一种方式停止输出 NFS 目录: - 使用 SMIT 停止输出一个 NFS 目录: a. 在服务器 CRoom 上,输入下面的命令删除 /home4 的输出: smitty rmnfsexp b. 在 PATHNAME of exported directory to be removed 域中输入 /home4。这个目录就被 从 /etc/exports 文件中删除并不再被输出。 - 使用文本编辑器停止输出一个 NFS 目录: a. 使用一个文本编辑器打开 /etc/exports 文件。 b. 找到你想停止输出的目录的记录,即 /home4,并删除相应行。 c. 保存并关闭 /etc/exports 文件。 d. 如果 NFS 当前正在运行,输入: exportfs -u dirname 其中 dirname 是你刚从 /etc/exports 文件中删除的目录(/home4)的全路径名。 11.2.3 装载 NFS 目录 有三种 NFS 装载类型:预定义的,明确的和自动的。 预定义的装载(predefined mounts)被在 /etc/filesystems 文件中指定。该文件中的每一 节(或记录)定义了一个装载的特征,如图 11-4 所示。 图 11-4 /etc/filesystems 文件中的 NFS 节举例 该节中列出的数据包括主机名、远程路径、本地路径和各种装载选项。当客户的适当操 作总是需要特定的装载时,应当使用预定义的装载。 明确装载(explicit mounts)是服务于 root 用户的需要。明确装载通常为短期行为,用 于满足偶尔发生的计划外装载需求。如果一个装载为某些特殊的任务所需,但是该装载在客 户机上一般是不可用的,这时候也可以采用明确装载。这些装载通常是完全在命令行赋予的, 通过使用 mount 命令及所有需要的信息。 明确装载不需要更新 /etc/filesystems 文件。被装载的文件系统直到被使用 umount 命 令明确卸载或直到系统被重启之前一直保持可用。 自动装载是被 automount 命令控制的,它促使 AutoFS 内核扩展监控指定目录的行为。 如果有一个程序或用户试图访问一个当前未被装载的目录,那么 AutoFS 会截留请求,安排第 215 页 好文件系统的装载,然后再对请求提供服务。 NFS 装载过程 客户通过事先装载服务器所输出的目录来访问服务器上的文件。当客户装载一个目录时, 它不是为该目录建立一个拷贝,而是由装载过程使用一系列远程过程调用以使客户可以透明 地访问服务器上的目录。下面是对装载过程的描述: 1. 当服务器启动时,/etc/rc.nfs 脚本运行 exportfs 命令,它读取服务器的 /etc/exports 文件, 然后告诉内核应当输出哪个目录以及需要哪些访问限制。 2. 接着 rpc.mountd daemon 和一些 nfsd daemons(缺省为八个)被 /etc/rc.nfs 脚本启动。 3. 当客户启动时,/etc/rc.nfs 脚本启动一些 biod daemons(缺省为八个),它们将客户的装 载请求转发给适当的服务器。 4. 然后 /etc/rc.nfs 脚本执行 mount 命令,读列在 /etc/filesystems 文件中的文件系统信息。 5. mount 命令找到输出了客户所需信息的一个或多个服务器,并在它自己和服务器之间建 立通信。这个过程被称为绑定(binding)。 6. mount 命令请求一个或多个服务器允许客户访问在其 /etc/filesystems 文件中指定的目 录。 7. 服务器的 rpc.mountd daemon 接收到客户的装载请求,批准或拒绝它们。如果被请求的 目录对该客户是可用的,rpc.mountd daemon 向客户的内核发送一个标识符,被称为文件 处理(file handle)。 8. 客户的内核通过在一个装载记录中记下特定信息,把 file handle 标识符绑到装载点(一 个目录)上。 一旦文件系统被装载,客户就可以执行操作了。当客户执行一个文件操作时,biod daemon 把 file handle 发送给服务器,服务器上的一个 nfsd daemon 读该文件并处理文件请求。假 定客户对执行所请求的文件操作具有访问权,nfsd daemon 便会把必要的信息返回给客户 的 biod daemon。 以下过程将帮助你完成第??30页的图11-1中显示的配置。 1. 在 HResources 上,使用 mkdir 命令为服务器 CRoom 上的 /home1 建立本地装载点。 mkdir /home1 该目录应该是空的。这个装载点的创建与其他目录的创建一样,不需要什么特别的属性。 注意:在你可以装载一个 NFS 文件系统之前,所有的装载点必须已经存在于你的系统中。 但有一个例外,如果使用了 automount daemon,则可以不需要事先创建装载点。请见第?? 31页“自动装载一个 NFS 目录”一节。 2. 在 HResources 上,按照下一节“建立预定义的 NFS 装载”中的指导建立并装载预定义 的装载。 建立预定义的 NFS 装载 你可以采用以下介绍的方式之一来建立预定义的 NFS 装载。 注意:当建立一个需要在系统启动期间被装载的预定义装载时,应在 /etc/filesystems 文件 中定义 bg(后台运行)和 intr(可中断)选项。当启动客户系统时,如果网络中断或服务 器停机,不可中断的装载和前台运行的装载都会导致客户系统挂起。如果客户不能访问网络 服务,用户必须重启机器进入维护模式,并适当修改装载请求。 为了使用SMIT建立预定义装载(如图11-5所示),使用下面的命令: 第 216 页 smitty mknfsmnt 图 11-5 Add a File System for Mounting 菜单 在这个屏幕中为你需要预定义的每个装载指定相应值。你必须在每个必需的域(左边带 有 * 号的域)中指定值。你也可以在其他域中指定值,或接受它们的缺省值。这种方式在 /etc/filesystems 文件中为所需的装载创建了一个记录并尝试执行装载。 为了通过编辑 /etc/filesystems 文件建立 NFS 缺省装载(只在一些特殊场合使用这种方 式),执行以下步骤: 1. 使用一个文本编辑器打开 HResources 上的 /etc/filesystems 文件。为你需要的系统启动 时装载的每个远程文件系统增加一条记录。例如: /home1: dev = /home1 mount = false vfs = nfs nodename = CRoom options = ro, soft type = nfs_mount 这节指导系统在本地装载点上装载相同名字的远程目录 /home1。文件系统被装载为 只读(ro)模式。因为它也被装载为 soft 模式,如果服务器没有响应,则会返回一个错误。 通过把 type 参数设置为 nfs_mount,当 mount -t nfs_mount 命令被发出时,系统会尝试 装载 /home1 文件系统(连同其他任何被指定在 type = nfs_mount 组中的文件系统)。 下例中的节指导系统在系统启动时装载 /home2 文件系统。如果装载失败,bg 选项 会告诉系统继续在后台尝试装载。 /home2: dev = /home2 mount = true vfs = nfs nodename = CRoom 第 217 页 options = ro, soft, bg type = nfs_mount 注意:请参见第??32页“参数”一节中提供的更多参数。 2. 删除任何你不希望在系统启动时自动装载的目录的记录。 3. 保存并关闭文件。 4. 运行 mount -a 命令装载所有在 /etc/filesystems 文件中指定的目录。 5. 在 Marketing 上,重复执行对 Accounts 的 /backup 目录的装载。 NFS 目录现在就可以被使用了。 明确装载一个 NFS 目录 为了明确装载一个 NFS 目录,使用下面的过程: 1. 检查 NFS 服务器是否已经输出了目录,使用下面的命令: showmount -e ServerName 对于服务器 CRoom: # showmount -e CRoom export list for CRoom: /home1 (everyone) /home2 (everyone) /home3 (everyone) /home4 (everyone) # 其中 ServerName 是 NFS 服务器的名字。这个命令显示 NFS 服务器当前输出的目录名。 如果你想装载的目录没有列在其中,到服务器上输出该目录。 2. 使用 mkdir 命令建立本地装载点。为了使 NFS 成功地完成一次装载,作为 NFS 装载点 的目录必须事先存在。这个目录应当是空的。这个装载点可以被象其他目录一样创建,不需 要什么特别的属性。 3. 在主机 HResources 上,输入下面的 SMIT 快速路径: smitty mknfsmnt 4. 对下列域中适合于你的网络配置的域进行修改(参见第33页的图11-5)。你不需要对该屏 中所有记录进行配置。 – PATHNAME of mount point. – PATHNAME of remote directory. – HOST where remote directory resides. – MOUNT now, add entry to /etc/filesystems – /etc/filesystems entry will mount the directory on system RESTART. – MODE for this NFS. 注意:如果你使用的是 ASCII SMIT 接口,按 Tab 键对每个域进行修改,但是不要按回车, 直到你进行到第7步。 5. 对其余的域使用缺省值或根据你的 NFS 配置进行适当修改。 6. 当你结束了在这个屏幕中的所有修改后,SMIT 便会装载 NFS。 7. 当 Command: 域显示了 OK 状态,退出 SMIT。 现在 NFS 就可以被使用了。 自动装载一个 NFS 目录 第 218 页 AutoFS 依靠使用 automount 命令来把自动装载配置信息传递给 AutoFS 内核扩展,并 启动 automountd daemon。通过这个配置传递,只要在 NFS 文件系统中有一个文件或一个 目录被打开,内核扩展就会自动且透明地装载该文件系统。内核扩展把装载和卸载请求均通 报给 automountd daemon,由后者真正执行被请求的服务。 因为名字-位置的绑定( name-to-location binding)在 automountd daemon 中是动态的, 所以 automountd daemon 使用的网络信息服务(Network Information Service,NIS)映射 表的更新对用户而言是透明的。并且,对于那些对文件和目录具有硬编码引用(hard-coded references)的应用,既不需要预先装载共享文件系统,也不需要为特定的应用维护哪些主 机必须被装载的记录。 AutoFS 允许文件系统根据需要装载。通过这种目录装载方式,不需要在任何时候都装 载着所有的文件系统,只有那些被使用的文件系统才被装载。 例如,为了自动装载 /backup NFS 目录: 1. 通过下面的命令检查 NFS 服务器是否已经输出了该目录: # showmount -e Accounts export list for Accounts: /backup Marketing # 这个命令显示当前被 NFS 服务器输出的目录的名字。 2. 创建一个 AutoFS 映射文件。AutoFS 将装载和卸载这个映射文件中指定的目录。例如, 假设你需要使用 AutoFS 从服务器 Accounts 上装载 /backup 目录到远程的 /backup 目录 上。在这个例子中,映射文件名为 /tmp/mount.map。你可以在 /usr/samples/nfs 中找到映 射文件的一个样本。 3. 确保 AutoFS 内核扩展被载入并且 automountd daemon 在运行。有两种实现方式: a. 使用 SRC,输入: lssrc -s automountd 如果 automountd 子系统没有运行,发出命令:startsrc -s Automountd b. 使用 automount 命令,发出 /usr/sbin/automount -v 。使用命令行接口定义映射文件, 输入: /usr/sbin/automount -v /backup /tmp/mount.map 其中 /backup 是客户系统上的 AutoFS 装载点。现在,如果一个用户运行了 cd /backup 命令,AutoFS 内核扩展将会截停对目录的访问,并向 automountd daemon 发出一个远 程过程调用,后者将装载 /backup 目录,然后才允许 cd 命令继续。 4. 为了停止 automountd,发出 stopsrc -s automountd 命令。 如果由于某些原因,automountd daemon 的启动并没有使用 SRC,发出下面的命令: kill automountd_PID 其中 automountd_PID 是 automountd daemon 的进程 ID。(运行 ps -e 命令可以显示 automountd daemon 的进程 ID。) kill 命令向 automountd daemon 发出一个 SIGTERM 信号。 参数 在 /etc/filesystems 文件中对应 NFS 装载的节中所需的参数有: dev=file_system_name 指定被装载的远程文件系统的路径名。 mount=[ true | false ] 如果为 true,指定 NFS 将在系统引导时被装载。如果为 false,NFS 则不会在系统引导时被装载。 第 219 页 nodename=hostname 指定远程文件系统所在的主机。 vfs=nfs 指定被装载的虚拟文件系统是一个 NFS。 如果你不设置下面的选项,内核会自动将它们设置成下面的缺省值: - biods=6 - fg - retry=10000 - rsize=8192 - wsize=8192 - timeo=7 - retrans=3 - port=NFS_PORT - hard - secure=off - acregmin=3 - acregmax=60 - acdirmin=30 - acdirmax=60 11.3 管理 NFS 服务器和客户 在这节中,我们将讨论系统管理员在 NFS 环境下工作时所执行的操作。将要讨论的主 题包括: - NFS daemons 的状态 - 修改被输出的 NFSs - 使用 unmount 命令 11.3.1 获取 NFS Daemons 的当前状态 你可以逐个地或一并地查询 NFS daemons 的当前状态。 为了获取单个 NFS daemon 的当前状态,输入: lssrc -s daemon 其中 daemon 为任何一个被 SRC 控制的 daemon。例如,为了获取 rpc.lockd daemon 的当前状态,输入: lssrc -s rpc.lockd 为了一并得出所有 NFS daemons 的当前状态,输入: lssrc -g nf 11.3.2 修改被输出的文件系统 本节将讨论如何修改一个被输出的 NFS。 使用 SMIT 修改一个被输出的 NFS 目录 下面的过程将指导你使用 SMIT 修改一个被输出的文件系统。 第 220 页 1. 在服务器 CRoom 上停止输出文件系统,输入: exportfs -u /dirname 其中 /dirname 是你想修改的文件系统的名字。本例中为 /home3。 2. 在服务器 CRoom 上,输入: smitty chnfsexp 显示的屏幕如图 11-6 所示。 图 11-6 Change the Attributes of an Exported Directory 菜单 3. 在 PATHNAME of exported directory 域中输入适当的路径名。本例中为 /home3。 进行你想作的任何修改后按回车。 4. 退出 SMIT。 5. 重新输出该文件系统,输入: exportfs /dirname 其中 /dirname 是刚被你修改的文件系统的名字,本例中为 /home3。 使用文本编辑器修改一个被输出的 NFS 目录 下面的过程将指导你使用文本编辑器修改一个被输出的文件系统。 1. 停止输出文件系统,输入: exportfs -u /dirname 其中 /dirname 是你想修改的文件系统的名字。本例中为 /home3。 2. 使用你喜欢的文本编辑器打开 /etc/exports 文件。 3. 进行你想作的任何修改。 4. 保存并退出 /etc/exports 文件。 5. 重新输出该文件系统,输入: exportfs /dirname 其中 /dirname 是刚被你修改的文件系统的名字,本例中为 /home3。 11.3.3 卸载一个被装载的文件系统 为了卸载一个被明确或自动装载的 NFS 目录,输入 umount /directory 或 unmount 第 221 页 /directory 命令,例如: umount /backup 可以使用 rmfs 命令删除任何你所创建的文件系统。 11.4 NFS 文件、命令和 daemons 参考 本节将描述对重要的 NFS 文件、命令和 daemons 的定义。 11.4.1 NFS 文件列表 下面是重要的 NFS 文件的一个列表。 /etc/bootparams 列出可被无盘客户可于引导的服务器。 /etc/exports 列出可被输出给 NFS 客户的目录。 /etc/networks 包含有关 Internet 上的网络的信息。 /etc/pcnfsd.conf rpc.pcnfsd daemon 的选项。 /etc/rpc 包含远程过程调用(RPC)程序的数据库信息。 /etc/xtab 列出当前被输出的目录。 /etc/filesystems 列出所有可以被装载的文件系统及其装载配置。 NFS 命令列表 以下是 NFS 命令的列表。 chnfs 启动指定个数的 biod 和 nfsd daemons。 mknfs 配置系统以运行 NFS 并启动 NFS daemons。 nfso 配置 NFS 网络选项。 automount 自动配置一个 NFS。 chnfsexp 修改一个 NFS 输出目录的属性。 chnfsmnt 修改一个 NFS 装载目录的属性。 exportfs 对 NFS 客户输出和停止输出目录。 lsnfsexp 显示被使用 NFS 输出的目录的特征。 lsnfsmnt 显示被装载的 NFS 系统的特性。 mknfsexp 使用 NFS 输出一个目录。 mknfsmnt 使用 NFS 装载一个目录。 rmnfs 修改配置以停止 NFS daemons。 rmnfsexp 从一个服务器的输出列表中删除 NFS 输出的目录。 rmnfsmnt 从一个客户的装载列表中删除 NFS 装载的文件系统。 NFS daemons 列表 以下是 NFS Locking daemons 的列表。 /usr/sbin/rpc.lockd 通过 RPC 包处理加锁请求。 /usr/sbin/rpc.statd 为 NFS 的加锁服务提供崩溃恢复(crash-and-recovery)功能。 以下是 NFS Network Service daemons 及相关工具的列表。 /usr/sbin/biod 向服务器发送客户的读和写请求。biod daemon 是被 SRC 控制 的。 /usr/sbin/rpc.mountd 对客户的文件系统装载请求进行应答。mountd daemon 是被 SRC 控制的。 第 222 页 /usr/sbin/nfsd 启动处理客户的文件系统操作请求的 daemons。nfsd 是被 SRC 控制的。 /usr/sbin/nfsstat 显示一台机器接收呼叫的能力的相关信息。 /usr/sbin/portmap 把 RPC 程序号映射为 Internet 端口号。portmap 是被 inetd 控制的。 /usr/bin/rpcgen 产生 C 代码实现 RPC 协议。 /usr/bin/rpcinfo 报告 RPC 服务器的状态。 /usr/sbin/rpc.rstatd 返回从内核获取的性能统计信息。 /usr/bin/showmount 显示所有装载了远程文件系统的客户的列表。 /usr/sbin/rpc.pcnfsd 处理来自 PC-NFS 客户的服务请求。 11.5 NFS 问题判定 NFS 的问题排除涉及到一个包括追踪 NFS 问题、识别 NFS 相关错误消息及选择适当 解决方案在内的整体策略。当追踪到一个 NFS 问题时,把下面三个主要的问题点一一隔离 以确定是哪部分不正常:服务器、客户或网络本身。 11.5.1 确定 NFS 问题检查表 如果一个客户遇到了 NFS 问题,执行下面的任务: 1. 检查网络连接是否工作正常。 2. 检查 inetd、portmap 和 biod daemons 是否在客户机上运行着(参见第??34页,第 11.3.1 小节,“获取 NFS Daemons 的当前状态”。 3. 检查客户系统中是否存在有效的装载点可用于要装载的文件系统。若想了解更多的信息, 请参见第??35页的“建立预定义的 NFS 装载”一节。 4. 检查服务器是否启动且运行着,在客户机的 shell 提示符下执行下面的命令: /usr/bin/rpcinfo -p server_name 其中 server_name 是要被检查的服务器的名字。 如果服务器是启动的,则会显示一个包含程序、版本、协议和端口号的列表,如下所示: program vers proto port 100000 2 tcp 111 portmapper 100000 2 udp 111 portmapper 100005 1 udp 1025 mountd 100001 1 udp 1030 rstatd 100001 2 udp 1030 rstatd 100001 3 udp 1030 rstatd 100002 1 udp 1036 rusersd 100002 2 udp 1036 rusersd 100008 1 udp 1040 walld 100012 1 udp 1043 sprayd 100005 1 tcp 694 mountd 100003 2 udp 2049 nfs 100024 1 udp 713 status 第 223 页 100024 1 tcp 715 status 100021 1 tcp 716 nlockmgr 100021 1 udp 718 nlockmgr 100021 3 tcp 721 nlockmgr 100021 3 udp 723 nlockmgr 100020 1 udp 726 llockmgr 100020 1 tcp 728 llockmgr 100021 2 tcp 731 nlockmgr 如果系统没有返回一个类似的应答,从服务器控制台登录进服务器并根据第??34页, 第 11.3.1 小节,“获取 NFS Daemons 的当前状态”中的指导检查 NFS daemons 的状态。 5. 检查 mountd、portmap 和 nfsd daemons 是否在 NFS 服务器上运行着,可在客户的 shell 提示符下输入下面的命令: – /usr/bin/rpcinfo -u server_name mount. 如下例所示: # /usr/bin/rpcinfo -u CRoom mount program 100005 version 1 ready and waiting program 100005 version 2 ready and waiting program 100005 version 3 ready and waiting # – /usr/bin/rpcinfo -u server_name portmap. 如下例所示: # /usr/bin/rpcinfo -u CRoom portmap program 100000 version 2 ready and waiting program 100000 version 3 ready and waiting program 100000 version 4 ready and waiting # – /usr/bin/rpcinfo -u server_name nfs. 如下例所示: # /usr/bin/rpcinfo -u CRoom nfs program 100003 version 2 ready and waiting program 100003 version 3 ready and waiting # 其中每个程序号分别对应一个命令,如第 4 步中所示。如果系统没有返回一个类似的应 答,从服务器控制台登录进服务器并根据第??34页,第 11.3.1 小节,“获取 NFS Daemons 的当前状态”中的指导检查 daemons 的状态。 6. 检查服务器上的 /etc/exports 文件是否列出了客户想装载的文件系统的名字以及该文件 系统是否被输出。可输入下面的命令: showmount -e server_name 该命令将列出所有当前被 server_name 输出的文件系统。. 11.5.2 检查网络连接 如果 biod daemons 工作正常,则检查网络连接。nfsstat 命令可确定你是否有丢包。使用 nfsstat -c 和 nfsstat -s 命令确定客户或服务器是否在重传大块数据。重传通常可能是由于丢第 224 页 包或服务器忙而导致的。5%的重传率就被认为是高的了。 通过把通信适配器的传输队列参数(xmt_que_size)或 no 设置修改为2,可以降低重传 率。可以使用 SMIT 或 chdev 和 no 命令修改这些参数。 11.5.3 NFS 错误消息 下面的小节将介绍在使用 NFS 时可能遇到的错误代码。 硬装载(Hard-mounted)和软装载(soft-mounted)文件问题 当网络或服务器出现问题时,访问硬装载的远程文件的程序的出错情况将与访问软装载 的远程文件的程序出错情况有所不同。 如果一个服务器未能对硬装载的请求作出应答,NFS 将打印下面的消息: NFS server hostname not responding, still trying 如果一个服务器未能对软装载的请求作出应答,NFS 将打印下面的消息: Connection timed out Bad sendreply 错误消息 网络的传输缓冲区不足会引起下面的错误消息: nfs_server: bad sendreply 为了扩大传输缓冲区,使用 SMIT 快速路径 smitty commodev。然后选择你的适配器类 型并增加传输缓冲区数量。 服务器未应答 使用第??35页,第 11.5.1小节,“确定 NFS 问题检查表”中介绍的过程来解决这个 错误。该错误的发生通常是因为 NFS daemons 没有被启动或已被停止。如果服务器上的 mountd 或 nfsd daemons 没有被启动或已被停止,那么当一个客户试图装载一个被输出的 文件系统时,系统会显示一个 1831-010 错误消息。 例如,假设 rpc.mountd daemon 在启动以后死掉,并且客户机接收到这个错误消息, 那么执行下面的工作: 1. Telnet 到服务器上并以 root 登录。 2. cd 到 /etc 目录。 3. 输入 stopsrc -g nfs 。 4. 输入 stopsrc -s portmap 。 5. 输入 rm -rf state sm sm.bak xtab rmtab 。 6. 输入 startsrc -s portmap 。 7. 输入 startsrc -g nfs 。 8. 输入 exportfs -a 。 9. showmount -e servername 。 rm -rf 命令清除可能因过大而导致 mountd 无法处理的 mountd 文件。如果这个过程仍 不起作用,那么请参考第??36页,第 11.5 节,“ NFS 问题判定”的内容。 远程装载错误 下面列出了常见的装载错误及其可能的原因。 远程装载过程可能有多种故障方式。与装载故障相关的错误消息如下: 1.mount: ... already mounted 你试图装载的文件系统已经被装载。 2.mount: ... not found in /etc/filesystems 无法匹配指定的文件系统或目录名。 第 225 页 如果你发出的 mount 命令中带有一个目录名或文件系统名,但不是两个都带,该命令 会检查 /etc/filesystems 文件看是否有一个记录中的文件系统或目录域能与其所带的参数匹 配。如果 mount 命令找到一个记录,如下所示: /danger.src: dev=/usr/src nodename = danger type = nfs mount = false 则它会执行装载,就象是你从命令行输入了下面的命令: /usr/sbin/mount -n danger -o rw,hard /usr/src /danger.src 3. 如果你接收到下面的消息: mount ... not in hosts database a. 在一个没有网络信息服务(NIS)的网络中,这个消息表明在 mount 命令中指定的主 机不在 /etc/hosts 文件中。在一个运行 NIS 的网络中,这个消息表明 NIS 无法在 /etc/hosts 数据库中找到该主机名或者你机器上的 NIS ypbind daemon 被中断。如果 /etc/resolv.conf 文件存在,那么一个名字服务器就被用来进行主机名解析,则可能在 named 数据库中有 问题。 检查你的 mount 命令的拼写和语法。如果命令正确,而你的网络未运行 NIS,并且你 得到的错误消息只针对这个主机名,检查 /etc/hosts 文件中的记录。 b. 如果你的网络在运行 NIS,输入下面的命令以确定 ypbind daemon 是在运行: ps -ef | grep ypbind 你将会看到一个 ypbind daemon 的记录。试着用 rlogin 命令远程登录到另一台机器, 或使用 rcp 命令远程拷贝另一台主机上的东西。如果这样都失败了,你的 ypbind daemon 可能被停止或被挂起。 如果你只得到针对这个主机名的错误消息,你应该检查一下 NIS 服务器上的 /etc/hosts 文件记录。 4. mount: ... server not responding:port mapper failure -RPC timed out 可能你试图从其处装载目录的服务器停机了,也可能服务器的端口映射被停止或被挂 起。试着重启 inetd、portmap 和 ypbind daemons。 如果你不能用 rlogin 命令远程登录该服务器,但服务器是运行着的,你应该检查一下 网络连接,如试着远程登录到其他主机上。你还应该检查服务器的网络连接。 5. 1831-019 mount: ... server not responding: program not registered 这意味着 mount 命令通过了端口映射,但是 NFS 的 mount daemon(rpc.mountd)没 有注册。 6. mount: access denied... 你的机器名不在你想从服务器上装载的文件系统的输出列表中。 你可以通过运行下面的命令得到服务器的输出文件系统列表: showmount -e host_name 如果你想装载的文件系统不在列表中,或你的机器名或网络组名不在文件系统的用户列 表中,登录到服务器上并检查 /etc/exports 文件得到正确的文件系统记录。如果一个文件系 统名出现在 /etc/exports 文件中,但是不在showmount 命令的输出中,这表明 mountd daemon 发生了故障。可能是 daemon 不能解析文件中的相应行,或找不到该目录,或目 录名不是一个本地装载的目录。如果 /etc/exports 文件看上去没问题而你的网络在运行 NIS, 检查一下服务器的 ypbind daemon。可能它被停止或被挂起。 第 226 页 7. mount: ...: Permission denied 这个消息一般是表明在服务器上进行的鉴别有某部分失败了。可能就如在前面一个例子 中一样,是因为你不在输出列表中,服务器不识别你的机器的 ypbind daemon,或者服务 器不接受你提供的身份。 检查服务器的 /etc/exports 文件,并且如果可以的话,检查 ypbind daemon。在这种情 况下,你可以使用 hostname 命令修改你的主机名并再试一遍 mount 命令。 8. mount: ...: Not a directory 可能远程路径或本地路径并非一个目录。检查你的命令的拼写,并试着在远程和本地路 径上再运行它。 9. mount: ...: You are not allowed 你必须具有 root 授权或是 system 组成员才能在机器上运行 mount 命令,因为它会影 响机器上所有用户的文件系统。NFS 装载和卸载只允许 root 用户和 system 组成员执行。 11.6 测验 下面的认证评测问题将帮助检验你对本章内容的理解。 1. An AIX system administrator decides to experiment with NFS. She exports /home and /var, two file systems from a system called pluto . The system administrator now is on system called mars , another AIX machine on the same subnet as pluto. She now wishes to mount the exported file systems from pluto onto mars. Which of the following commands will she use to view the export list of 'pluto'? A. exportlist pluto B. rpcinfo -p pluto C. showmount -e mars D. showmount -e pluto 下面是作者提出的一些附加问题,以进一步检查你对本章内容的理解。 1. A system administrator has been working on a project for the last couple of months that requires writing different scripts on Server A. These scripts, which have been run nightly, have been collecting data within log files in a journaled file system called /project22. The system administrator would now like to access this JFS from a remote server called Server B. The system administrator has issued the command lssrc -g nfs and discovered that the daemons are inoperative on Server A. Which of the following actions should be performed to correct this situation? A. Run the nfs.start command. B. Run the startsrc -g nfs command. C. Run the refresh -s nfsd command. D. Log out and then log back into the system. 2. The same scenario from question one still applies. Which of the following actions should be performed by the system administrator to give Server B access to Server A's file system? A. Run the chfs command on Server A. B. Run the chfs command on Server B. 第 227 页 C. Run the exportfs command on Server A. D. Run the exportfs command on Server B. 11.6.1 答案 下面是对评测问题的回答。 1. D 下面是对附加问题的回答。 1. B 2. C 11.7 练习 以下的练习是为自学提供的例题。它们将帮助你加深对本章的理解。 图 11-7 NFS 练习的环境示例 1.现在需要你重建图 11-7 中的环境。考虑以下各项: – Client A 和 Client B 被允许访问 /finaldata 目录。 – /data 和 /accdata 为预定义装载的。使用一个文本编辑器在 /etc/filesystems 文件中创建 /data 装载记录。 – /finaldata 为明确装载的。 – /accfinal 为自动装载的。 – 在 Client A 中,/data 和 /accdata 被分别装载在装载点 /user/data 和 /user/accdata 上。 2. 确定在每个系统上的 NFS 可用性。 3. 从 Client A 上分别查看在 Server A 和 Server B 上输出的目录。 4. 停止从 Server B 输出 /accfinal。刷新 Server B 上的 NFS daemons。 5. 从 Client B 卸载 /finaldata。 6. 不允许 Client A 访问 Server A 上的 /finaldata。 7. 确定所有自动装载的文件系统。 8. 停止 Server A 上的 NFS daemon。试着从 Client A 上访问 Server A 上的 /data。记下任 何被显示的消息。重启 Server A 上的 NFS daemons。重试从 Client A 访问 /data。 第 228 页 第十二章 系统性能 对于任何系统,持续的客户满足和购买决策都非常依赖于系统的性能。系统管理员的部 分工作就是性能分析:理解系统行为并识别资源的利用。 本章所提供的是与访问和调整 RS/6000 系统上的 AIX 的性能有关的概念、工具和技术 的相关信息。本章所涵盖的主题包括评估 CPU 的使用、内存的使用、磁盘 I/O 和通信 I/O。 在本章中讨论的概念、工具和技术并非一个完整的列表,因此我们建议你从 AIX 产品文档 中寻找更多的有用信息。 12.1 系统动态和工作负荷 精确及完整地定义系统工作负荷(workload)对于预测或理解系统性能非常关键。工作 负荷的一个变化与CPU时钟速率或RAM大小的变化相比,在系统性能测量时所引起的偏差 要大得多。对工作负荷的定义不仅应当包括系统请求的类型和速率,还应当包括确切的软件 包和要执行的内部应用程序。 只要有可能,你就应当对现有应用程序的日常使用进行观察,以便真实可信地衡量用户 与其工作站或终端进行交互时的速率。 确保你把系统在后台运行的工作负荷也包括进来。例如,如果你的系统包含有 NFS 装 载的文件系统并频繁地被其他系统访问,处理那些访问可能是总体工作负荷中非常重要的一 个因素,即使你的系统并非一个正式的 server。 12.1.1 系统动态(System dynamics) 光拥有最有效率的程序是不够的。在许多情况下,实际上在运行的程序会脱离那个负责 满足组织性能目标的人的控制。一旦应用程序已经被尽可能高效率地实施了,那么对系统整 体性能的进一步提高便成为系统调整的一个重要问题。属于系统级调整的主要部件包括: 固定磁盘(Fixed disk) 逻辑卷管理器(Logical Volumn Manager,LVM)控制文 件系统和分页空间在磁盘上的分布,这对系统所经历的磁 盘搜索时间长度具有重大的影响。磁盘设备驱动器控制着 处理 I/O 请求的顺序。 实际内存(Real memory) 虚拟内存管理器(Virtual Memory Manager,VMM)控制 自由实存帧(free real-memory frames)区域,并决定何 时从何处挪用帧来补充这个区域。 运行线程(Running thread) 调度程序确定下一个应接受控制的可调度实体。(在 AIX Version 4 中,可调度实体已从进程变为线程。) 通信 I/O(Communications I/O)根据工作负荷的类型及通信链路的类型,可能需要调整 一个或多个通信设备驱动程序,TCP/IP 或 NFS。 第 229 页 12.1.2 工作负荷(workload)分类 工作负荷很自然地被分成几种类别。下面的这些类别有时也被用于提供系统分类。但是, 由于单个系统经常被要求处理多种类别的请求,因此在性能相关的讨论中,workload 看起 来更恰当一些。 工作站(Workstation)这种类型的工作负荷由通过系统本机的键盘提交工作和通过本机 的显示器接收结果的单个用户构成。对于这种工作负荷,通常最高 优先的性能目标就是对用户请求的最小响应时间。 多用户(Multiuser) 这种类型的工作负荷由通过独立终端提交工作的多个用户构成。对 于这种工作负荷,典型的性能目标就是在维持指定的最坏响应时间 的同时最大化系统吞吐量,或为相当恒定的工作负荷获取最佳可能 的响应时间。 服务器(Server) 这种类型的工作负荷由从其他系统发来的请求构成。例如,一 个文 件服务器的工作负荷绝大多数是磁盘读/写请求。实质上,它是多用 户工作负荷(加上 NFS 或 DFS 活动)中的磁盘 I/O 部分;因此, 相同的性能目标也适用于它,即在一个给定的响应时间限制下最大 化系统吞吐量。其他服务器工作负荷还包括强化运算的程序,数据 库事务,打印作业等等。 当单个系统在处理多于一种类型的工作负荷时,在用户和性能分析员之间必须对不同工 作负荷的可能有冲突的性能目标的相关属性要有一个清楚的认识。 12.1.3 性能和可用性的一般准则 这里有一些基本的准则可帮助你根据系统的用途进行适当配置。简要概括如下: - 多线程应用可最大获益于多个中央处理器。 - 强化 I/O 的应用可最大获益于多个 I/O 适配器和大量磁盘驱动器。 - 增加内存永远没坏处。 - 数据可用性可通过使用硬件或软件镜像得到提高。 - 如果你打算一旦主服务器发生故障时立即使用备份服务器,则它应当尽可能与主服务器相 同,最好是一个精确的复制。 12.2 系统性能概览 AIX 基本操作系统中包含一系列监视和调整工具,它们有的曾在历史上是 UNIX 系统中 的一部分,有的是为管理 AIX 特有的实现功能所需的。对性能分析员来说最重要的 BOS 功 能和命令有: iostat 报告 CPU 和 I/O 统计信息。 vmstat 报告虚存(virtual-memory)的活动及其他的系统统计信息。 netstat 显示网络相关的数据结构内容。 ps 显示进程状态。 lsattr 显示设备属性。 第 230 页 lslv 显示有关逻辑卷或逻辑卷在物理卷上的分布情况的信息。 nfsstat 显示有关网络文件系统(NFS)和远程过程调用(RPC)的活动的统计信息。 nice 以高于或低于正常值的优先权运行一个命令。 no 显示或设置网络选项。 renice 修改一个或多个进程的优先权。 reorgvg 识别物理分区在一个卷组中的分配。 sar 收集和报告或记录系统活动的信息。 schedtune 为 CPU 调度器和虚拟内存管理器的工作设置参数。 svmon 捕获和分析虚拟内存的快照(snapshot)。 time 打印已经过去了的属于一个命令的执行时间及用户和系统的处理时间。 tprof 报告单个程序和整个系统的 CPU 占用情况。 trace 记录和报告所选择的系统事件。 在下节中将讨论这些功能和命令的其中一部分。 12.3 基本操作系统工具 以下几个命令是本节内容的重点。 - vmstat - iostat - netstat - sar 12.3.1 使用 vmstat 命令 vmstat 命令语法如下: vmstat [ -f ] [ -i ] [ -s ] [ PhysicalVolume ... ] [ Interval [ Count ] ] vmstat 命令报告有关内核线程、虚拟内存、磁盘、陷阱(trap)以及CPU活动的统计信 息。被 vmstat 命令产生的报告可以被用来均衡系统负荷的活动。这些系统范围(在所有处 理器中间)的统计信息被计算成以百分数表示的平均值或和值。 PhysicalVolume 参数可以被用于指定一个到四个名字。对每个指定的驱动器,传输统 计数据被按照指定顺序给出。这个数值代表对物理设备的逻辑和物理请求个数,而不是指被 读或写的数据量。一些逻辑请求可以被组合成一个物理请求。 如果 vmstat 命令被调用时不带任何标记,则报告中将包含对自系统启动以来虚拟内存 的活动情况的总结。如果指定了 -f 标记,则 vmstat 命令会报告自系统启动以来的分叉( forks) 次数。PhysicalVolume 参数表明物理卷的名字。 Interval 参数指定每两个报告之间所间隔的时间的秒数。第一个报告包含自系统启动以 来的时间内的统计数据。后续的报告包含自上一次报告以来的时间间隔内所收集到的统计数 据。如果未指定 Interval 参数,那么 vmstat 命令只产生一个报告,然后退出。 Count 参数只能被与 Interval 参数一同指定。如果指定了 Count 参数,它的值将决定以 Interval 秒数的间隔产生报告的个数。如果只指定了 Interval 参数而没有指定 Count 参数, 报告会被连续不断地产生。Count 参数的值不允许为零(0)。 内核维护着 vmstat 命令可以访问的内核线程、页面调度和中断活动的统计信息。磁盘 输入/输出统计信息是由设备驱动程序维护的。对于磁盘,平均传输速率是通过活动时间和第 231 页 传输的信息量确定的。活动时间百分比是从报告期间驱动器处于忙碌的时间计算得来的。 注意:-f 和 -s 标记都可以从命令行输入,但是系统将只接收先被指定的标记,而忽略第二 个标记。 表 12-1 提供了 vmstat 命令的重要标记。 表 12-1 vmstat 命令的重要标记 标记 描述 -f 报告自系统启动以来产生分叉的次数。 -i 显示自系统启动以来每个设备发生中断的次数。 -s 把总计结构的内容写到标准输出,其中包含自系统初始化以来所发生的页面调度事件的绝对次 数。该选项与 vmstat 命令的其他选项不相容。 举例 以下是使用 vmstat 命令的一些例子。 1. 为了显示自引导以来的统计信息的汇总,输入 vmstat。一个输出的例子如下: 2. 为了以 2 秒为一个间隔显示 5 次汇总,输入 vmstat 2 5。一个输出的例子如下: 第一条汇总(报告的第一行)包含自引导以来的时间内的统计数据。 3. 为了显示自引导以来的统计信息的汇总,包括对逻辑磁盘 hdisk0 和 hdisk1 的统计数据, 输入:vmstat hdisk0 hdisk1。一个输出的例子如下: 4. 为了显示分叉统计值,输入:vmstat -f。一个输出的例子如下: # vmstat -f 13887 forks # 5. 为了显示各种事件的发生次数,输入:vmstat -s。一个输出的例子如下: 第 232 页 vmstat 报告输出 表 12-2 包含了 vmstat 命令输出中的列标题和对它们的描述。 表 12-2 vmstat 输出参数 参数 描述 Kthr:内核线程状态 r 在运行队列中等候的内核线程的个数。在一个空闲系统中,这个值为零,而在一个受 CPU 限制的系统(CPU bound system )中值比较高。 b 在等待队列中等候(等候资源,等候输入/输出)的内核线程的个数。 Memory:虚存和实存的占用 avm 活动的虚拟页面,即被分配在分页空间中的页面总数。高值并不代表性能差。 fre 自由列表 RAM 页面的大小。 Page:页面故障和页面调度活动 re 页面调度程序输入/输出列表。 pi 从分页空间调入的页面。 po 调出到分页空间的页面。 fr 自由的页面(替换的页面)。 sr 被页面替换算法(page-replacement algorithm )扫描的页面。 cy 被页面替换算法使用的时钟周期。 Faults:每秒的陷阱和中断率的平均值 in 设备中断 sy 系统调用 cs 内核线程的关联切换(context switches ) CPU: CPU 时间的占用率百分比(%) us 用户时间 sy 系统时间 id CPU 空闲时间 wa 确定当前进程在等待且还有没完成的磁盘输入/输出的 CPU 周期。 Disk:提供在抽样间隔时间内发生在指定物理卷上的每秒传输次数。 注意:大部分实际内存被用作文件系统数据高速缓存。自由列表的大小保持一个较小值并非 异常事件。 第 233 页 12.3.2 使用 iostat 命令 iostat 命令语法如下: iostat [ -d | -t ] [ PhysicalVolume ... ] [ Interval [ Count ] ] iostat 命令被用于监视系统输入/输出设备的装载,通过观察物理磁盘活动的时间与它们 的平均传输率之间的关系。iostat 命令产生的报告可以被用来决定应当对系统配置作什么样 的修改,以更好地均衡物理磁盘之间的输入/输出负载。 iostat 命令产生的第一个报告提供了自系统被引导以来的时间内所作的统计。 每个后续报告则包括自上次报告以来的时间。每次运行 iostat 命令时都会报告所有统计 数据。报告中包含了一个 TTY 和 CPU 标题行及接下来的 TTY 和 CPU 统计数据行。在多 处理器系统中,CPU 的统计数据是全系统范围的,是在所有处理器当中的平均值。下面还 显示了 disks 标题行,接着是对每块被配置的磁盘的统计数据行。如果指定了 PhysicalVolume 参数,则只有被指定名字的才能被显示。 如果指定了 PhysicalVolume 参数: - 可指定一个或多个物理卷。 - TTY 和 CPU 报告仍被显示。 - disk 报告只包含对指定驱动器的统计数据。 在 PhysicalVolume 参数中的第一个字符不能是数字。 Interval 参数指定每两个报告之间所间隔的时间的秒数。第一个报告包含自系统启动(引 导)以来的时间内的统计数据。后续的报告包含自上一次报告以来的时间间隔内所收集到的 统计数据。 Count 参数只能被与 Interval 参数一同指定。如果指定了 Count 参数,它的值将决定以 Interval 秒数的间隔产生报告的个数。如果只指定了 Interval 参数而没有指定 Count 参数, iostat 命令会连续不断地产生报告。 iostat 命令可用于确定一个物理卷是否已成为性能瓶颈及是否有可能改善这个状况。物 理卷的利用率百分数(%)域表明文件活动在驱动器上分布的均匀程度。在一个物理卷上的 高百分比的利用率明显地指出对这个资源有竞争。因为 CPU 利用的统计数据也出现在 iostat 的报告中,所以同时也可以确定 CPU 处于 I/O 等待状态的时间的百分率。如果 I/O 等 待时间很明显,并且对磁盘的使用并没有被均匀地分布到多个卷上,则要考虑把数据分布到 多个驱动器上。 注意:在为iostat命令维护磁盘 I/O 历史信息的时候,需要消耗一定的系统资源。使用 SMIT 的 sysconfig 子程序停止进行历史记录。 表 12-3 提供了常用的 iostat 命令标记的列表。 表 12-3 iostat 命令的重要标记 标记 描述 -d -d 选项与 -t 选项是不相容的,它只显示磁盘利用报告。 -t -t 选项与 -d 选项是不相容的,它只显示 TTY 和 CPU 的使用报告。 举例 下面是使用 iostat 命令的例子。 1. 为了显示自引导以来对所有 tty、CPU 和 Disks 的一个历史记录,输入: 第 234 页 2. 为了以两秒的时间间隔对名为 hdisk1 的磁盘连续显示磁盘的报告,输入: iostat -d hdisk1 2 3. 为了以两秒的时间间隔对逻辑名为 hdisk1 的磁盘显示六个报告,输入: iostat -d hdisk1 2 6 4. 为了以两秒的时间间隔对所有磁盘显示六个报告,输入: iostat -d 2 6 5. 为了以两秒的时间间隔对三块名字分别为 disk1、disk2、disk3 的磁盘显示六个报告,输 入: iostat -d disk1 disk2 disk3 2 6 iostat 报告输出 iostat 命令产生两种类型输出,tty & CPU Utilization 报告及 Disk Utilization 报告。输出 参数的含义如表 12-4 所示。 表 12-4 iostat 输出参数 参数 描述 TTY & CPU Utilization Report: iostat 命令产生的第一个报告为 TTY & CPU Utilization Report。在多处理器系统中,CPU 的统计值是在 所有处理器当中的全局平均值。 该信息被内核定期更新(典型为每秒60次)。 TTY 报告提供了每秒接收自系统上所有终端的字符总数,以 及每秒输出到系统上所有终端的字符总数。该报告提供了下列信息: tin 显示系统从所有 TTYs 读到的字符总数。 tout 显示系统写入所有 TTYs 的字符总数。 % user 显示在用户级(应用程序)执行时发生的 CPU 占用的百分率。 % sys 显示在系统级(内核)执行时发生的 CPU 占用的百分率。 % idle 显示中央处理器空闲且系统中没有未解决的磁盘I/O请求的时间的百分率。 % iowait 显示中央处理器空闲但系统中尚有未解决的磁盘I/O请求的时间的百分率。如果多个处理 器同时空闲,这个值可能会稍微被抬高。这是一种异常事件。 Disk Utilization Report: iostat 命令产生的第二个报告为 Disk Utilization Report。磁盘报告提供基于每块物理磁盘的统计数据。该 报告具有如下的格式: % tm_act 表明物理磁盘活动时间的百分率(驱动器的带宽占用率)。 Kbps 表明传输(读或写)到驱动器的数据量,以每秒的 KB 数表示。 tps 表明每秒被发往物理磁盘的传输次数。一个传输(transfer)是一个对物理磁盘的 I/O 请 求。多个逻辑请求可以被包含在一个 I/O 请求中发给磁盘。一个传输的大小是不确定的。 Kb_read 被读取的 KB 总数。 Kb_wrtn 被写入的 KB 总数。 对于配置有很大数目的磁盘的大型系统配置,可以设定在不执行 iostat 命令时避免系统 收集物理磁盘输入/输出统计信息。如果系统被配置为这种模式,那么第一次的 Disk 报告将 显示消息“Disk History Since Boot Not Available”(自引导以来的磁盘历史记录不可用), 而不是提供磁盘统计数据。被 iostat 命令产生的后续间隔性报告则包含在报告间隔时间内收 集的磁盘统计数据。引导以后的任何 TTY 和 CPU 的统计数据不受影响。如果用一个系统 管理命令重新启动磁盘统计功能,则 iostat 命令的第一个报告将显示自启动磁盘输入/输出 统计功能以来的时间内发生的活动。 第 235 页 12.3.3 使用 netstat 命令 netstat 命令语法如下: 为了显示每个协议的活动 sockets 或路由表信息: /bin/netstat [ -n ] [ { { -A -a } | { -r -i -I Interface } ] [ -f AddressFamily ] [ -p Protocol ] [Interval ] [System ] 为了显示一个网络数据结构的内容: /bin/netstat [ -m | -s | -u | -v ] [ -f AddressFamily ] [ -p Protocol ] [ Interval ] [ System ] 为了显示经过通信子系统的数据包个数: /bin/netstat -D netstat 命令(表 12-5)以符号方式为活动的连接显示各种网络相关的数据结构的内容。 Interval 参数以秒为单位定义,它连续不断地显示关于被配置的网络接口上的包流量的信息。 Interval 参数不跟任何标记。System 参数指定了被当前内核使用的内存。除非你在查阅一 个转储文件,否则 System 参数必须为 /unix。 表 12-5 netstat命令的重要标记 标记 描述 -n 以数字表示网络地址。当不指定该标记时,netstat 命令只要可能就把地址翻译成符号显示。 -r 显示路由表。当与 -s 标记一同使用时,-r 标记显示路由统计数据。 -s 为每个协议显示统计数据。 注意:在统计数据的输出中,在某个域值中显示 N/A 表明该处计数不适用。对于 NFS/RPC 的统计数据,通过 RPC 的输入数据包个数与通过 NFS 的数据包个数相等;因此,这些数 值不被汇总在 NFS/RPC Total 域中,所以显示 N/A。NFS 没有输出数据包或输出数据包丢 弃计数器专用于 NFS 和 RPC。因此,单个的计数的域值为 N/A,累积计数被存在 NFS/RPC Total 域中。以太网接 口不支持碰撞计数。 举例 下面是使用 netstat 命令的例子。 为了显示路由表,使用下面的命令: 为了显示路由表,并且网络地址以数字表示,使用下面的命令: 第 236 页 为了显示路由统计数据,使用下面的命令: # netstat -r -s routing: 0 bad routing redirect 0 dynamically created rout 0 new gateway due to redirects 0 destination found unreachabl 0 use of a wildcard route # netstat 输出报告 对于活动的 sockets 缺省显示如下各项: - 本地和远程地址 - 发送和接收队列大小(以字节数) - 协议 - 协议内部状态 Internet 地址格式为 host.port 或者如果一个 socket 的地址指定了一个网络但没有特定 主机地址则为 network.port。如果主机地址可以被解析为一个符号式的主机名,则主机地址 被以符号形式显示,而网络地址则被根据 /etc/networks 文件以符号形式显示。 NS 地址为 12 字节长,包含一个 4 字节网络号,一个 6 字节主机号,以及一个2 字节 端口号,所有这些都被以网络标准格式存储。对于 VAX 体系架构,这些地址为反转的单词 和字节;对于 Sun 系统,这些地址不被反转。 如果一个主机的符号名未知,或如果使用了 -n 标记,则地址被按照其地址家族的表示 以数字方式输出。未指定的地址和端口显示为 * (星号)。 接口显示(netstat -i) 接口显示(Interface Display)格式提供一个累积统计数据表,包括如下项目: - 错误(Errors) - 碰撞(Collisions) 以太网接口不支持 collision 计数。 - 传输的包(Packets transferred) 接口显示还提供: - 接口名称(interface name) - 接口编号(interface number) 第 237 页 - 接口地址(interface address) - 最大传输单元(maximum transmission units,MTUs) 路由表显示(netstat -r) 路由表显示(Routing Table Display)格式表明了可用的路由表及其状态。每条路由 包含一个目标主机或网络以及一个用于转发包的网关。 路由表的标记域显示路由的下列状态: U 在工作(Up)。 H 该路由是到一个主机而不是一个网络的。 G 该路由是到一个网关的。 D 该路由是被动态重定向创建的。 M 该路由已被重定向修改。 L 在路由记录中显示的是链路级的地址。 c 访问这条路由创建一条复制的路由。这个域只有在 AIX Version 4.2.1 或以后版本中 可用。 W 这条路由是一条复制路由。这个域只有在 AIX Version 4.2.1 或以后版本中可用。 直接路由是为每个直连到本地主机的接口创建的。 Gateway 这些记录的网关域显示输出接口(outgoing interface)的地址。 Refs 给出对该条路由的当前活动的使用数。面向对象(Connection-oriented)的 协议为一个连接过程一直保留这条路由,而无连接(connectionless)的协 议每次向同一个目的地发送数据时都要去取得这条路由。 Use 提供使用该条路由发送的数据包的个数。 PMTU 给出路径最大传输单元(Path Maximum Transfer Unit,PMTU)。这个域只 有在 AIX Version 4.2.1 或以后版本中可用。 Interface 表明被用于路由的网络接口。 Exp 显示路由超时之前保持的时间(分钟数)。这个域只有在 AIX Version 4.2.1 或 以后版本中可用。 Groups 提供与该条路由相关的组标识号(Group Ids)列表。这个域只有在 AIX Version 4.2.1 或以后版本中可用。 Netmasks 列出系统使用的网络掩码。 12.3.4 其他与性能相关的命令 下面的命令用于检查特定的系统区域,或者补充 vmstat、iostat 和 netstat 命令的结果, 或者提供更深入的信息。对这些工具的详细描述超出了本章范围,但是你应当对它们有所了 解。 svmon 命令 svmon 命令对内存使用提供更深入的分析。它比 vmstat 命令信息更丰富,但是也更具 有入侵性。 sar 命令 sar 命令把所选定的操作系统中累积活动计数器的内容写到标准输出。你可以使用标记 选择关于特定系统活动的信息。不指定标记则只选择系统单元活动,指定 -A 标记则选择所第 238 页 有活动。 tprof 命令 tprof 命令可以被用在一段时间内追踪 CPU 的活动。CPU 的利用被划分成内核、用户、 共享及其它,显示在每一个地址空间分别消耗了多少下时钟定时器滴答( clock timer ticks)。 schedtune 命令 schedtune 命令允许你修改线程和进程调度系统的缺省行为,必须由有经验的系统管理 员非常小心地使用。如果没有彻底掌握调度机制,千万不要操作调度程序。 12.4 控制资源利用 以下小节描述限制系统资源损耗的一些方式。 12.4.1 使用 nice 和 renice 命令 nice 和 renice 命令被用于修改进程的优先权。nice 命令以一个不同的优先权运行另一 个命令,而 renice 命令修改一个已在运行的进程的优先权。root 用户可以提高或降低任何 进程的优先权。其他用户只能降低它们自己拥有的进程的优先权。 下面的例子显示 nice 在以一个更低的优先权运行 cc 命令: # nice -n 15 cc -c *.c 下面的例子显示 renice 命令把进程 ID 为 16304 的进程的优先权降低了 5 级: # renice -n 5 16304 12.4.2 工作负荷管理器 工作负荷管理器(Workload Manager,WLM)允许系统管理员在作业之间分配资源。 WLM 提供对用户群体和极不同的系统行为之间的隔离。这样可以有效防止具有某些特征的 工作负荷被具有其他特征的工作负荷排挤以至资源缺乏,前者如交互式作业或低 CPU 占用 的作业,后者如批作业或高内存占用的作业。CPU 时间,内存和 I/O 带宽均被单独管理, 因此,不同风格的应用可以被有效管理。 AIX WLM 为系统管理员提供了基本的能力以控制调度程序(scheduler)、虚拟内存管 理器(VMM)以及设备驱动程序调用如何分配 CPU、物理内存和 I/O 带宽给基于分类的用 户( classes-based user)、组( group)、应用程序通道( application path)、进程类型( process type)或应用标签(application tags)。 在 AIX Version 4.3.3 中,AIX WLM 是一个操作系统特性。 12.5 性能分析 在本节中我们将分析系统性能以确定一个系统是否受 CPU 限制或受内存限制。本节也 对对称多处理器(SMP)和单处理器(UP)系统的空闲时间有一些讨论。 下面是一些在本节讨论中将用到的术语。 CPU bound 如果系统(sy)和用户(us)的 CPU 利用率的总数接近100%,我们 则说这个系统是受 CPU 限制的(CPU-bound)。这将表明 CPU 的空 第 239 页 闲时间和等待时间接近零。 Memory bound 如果一些虚拟内存被强制调出磁盘,这意味着系统在一个相对慢的磁盘 上等待而不是在相对快的 RAM 中等待,则我们说系统是受内存限制的 (memory-bound)。如果页面调入( page-in,pi)和页面调出( page-out, po)参数均为非零值,即表明这种状况。 12.5.1 确定 CPU-bound 和 memory-bound 系统 在本节中,你将观察 CPU 利用率的 sy 和 us 列,以确定系统是否在 vmstat 命令收集 系统信息这段期间正处于 CPU-bound 状态。 你需要初步观察一下如图 12-1 中显示的系统性能状况。 图 12-1 vmstat 报告受 cpu 限制的系统 记住如果系统和用户的 CPU 利用率总数接近100%,则系统为 CPU-bound。 我们看从第二行到第五行,系统 + 用户的 CPU 利用率为: 第 2 行 =(66+31)%=97% 且 r = 2 第 3 行 =(77+23)%=100% 且 r = 2 第 4 行 =(60+40)%=100% 且 r = 4 第 5 行 =(88+12)%=100% 且 r = 3 有两处表明系统是受 CPU 限制的。 - CPU 利用率值趋于100%,并且 - r 值非零说明 CPU 还有工作等待执行。前面第??37页,“ vmstat 报告输出”一节中提到 过,这个值是 CPU 活动情况的一个指示器。 为了确定一个系统是否受内存限制,考虑 pi 和 po 列。如在第 12.5 节“性能分析”的 开头部分中定义的,如果分页空间的平均页面调入速率(pi)和分页空间的平均页面调出速 率(po)均为非零值,则我们说系统是受内存限制的。 12.5.2 计算空闲时间 在对称多处理器系统(SMP)和单处理器系统上计算空闲时间的方式是一样的。在一 个 SMP 环境下,从 vmstat 和 iostat 命令得到的输出是对在所有处理器上的系统等待和空闲 时间的汇总。你只需要按照前面各节中介绍的方式使用这些工具,并根据得到的输出来计算 系统空闲时间。 当计算在一个时间间隔内的总体系统空闲时间时,空闲时间百分率(id)和等待时间百 分率(wa)均要被考虑到。这两个域都可以从 vmstat 命令的输出中得到。 注意:总体 CPU 空闲时间 % = 等待时间 % + 空闲时间 %。 为了利用 vmstat 命令的输出计算系统空闲时间,执行一下步骤: 第 240 页 1. 计算在一个时间间隔内的平均空闲时间百分率(Average CPU Idle Time percentage)。 一下的输出是由一个 SMP 系统提供的,我们可通过执行命令 vmstat 900 4 计算系统空闲时 间,该命令将在每 900 秒(或 15 分钟)输出一次,共输出 4 次。 平均 CPU 空闲时间百分率 = Sum(%空闲时间(id)+ %等待时间(wa)) / 输出次数 因此我们可以计算出: 平均 CPU 空闲时间百分率 = ((99+1) + (97+2) + (95+4) + (99+1))% / 4 = 99.5% 2. 然后计算总体CPU空闲时间(Total CPU Idle Time)的分钟数。 以上输出是在一个小时内得到的,因此对于这个系统: 总体 CPU 空闲时间 = 99.5% x 60 分钟 = ~59 分钟 12.5.3 计算换页速率 换页速率是在每个 CPU 周期内页面调入(page-ins)和页面调出(page-outs)的平均 数。 如果 pagein/pageout (pi/po) 的比率大于 1,表明对于每个 pagein,有至少一个 pageout,并且因此说明了频繁的页面调度活动。所以我们说这个系统具有一个高换页速率。 12.6 测验 下面的认证评测问题将帮助检验你对本章内容的理解。 1. The finance department at the Widget Company needs a larger server. The current server has 40 GB of hard drive space, two processors and 2 GB of memory. The application is a fully multi-threaded process and is very I/O intensive. What configuration should the company purchase to fix current problems and plan for future expansion? A. One 60 GB SCSI hard disk, 4 processors, and 2 GB of memory. B. Two 20 GB SSA hard disks, 4 processors, and 4 GB of memory. C. Two 20 GB SCSI hard disks, 2 processors, and 8 GB of memory. D. Three 20 GB SSA hard disks, 4 processors, and 2 GB of memory. 2. The Widget Company is trying to implement disaster recovery procedures and techniques. They currently have two daily backups taken of all data. In the event that they need to restore data to another machine, what type of machine would be ideal? A. A slightly slower machine of the same type. B. An exact duplicate of the original machine. C. A slightly slower machine of the same type with less processors. D. An exact duplicate of the original machine with less processors. 第 241 页 下面是作者提出的一些附加问题,以进一步检查你对本章内容的理解。 1. A system administrator is experiencing performance problems and runs the vmstat command. The output of vmstat is shown in the following exhibit. What can be concluded from this output? A. The machine is CPU bound. B. The machine needs memory optimized. C. The machine needs a FDDI card installed. D. A user program is causing unnecessary paging. 2. A system administrator runs the vmstat command. The output of vmstat is shown in the following exhibit (using a 15 minute interval). Based on this output, what is the average CPU idle time as a percentage? A. 45.5 B. 75.3 C. 44.04 D. 73.4 12.6.1 答案 下面是对评测问题的回答。 1. D 2. B 下面是对附加问题的回答。 1. A 2. D 12.7 练习 以下的练习是为自学提供的例题。它们将帮助你加深对本章的理解。 1. 使用 vmstat、iostat 和 netstat 命令收集统计数据。检查一下你系统的性能。 第 242 页 2. 计算你系统的空闲时间(分钟数)和分页速率。 3. 确定你的系统是否为 CPU bound 或 memory bound。 第 243 页 第十三章 用户管理 本章将讨论用户管理,包括创建和删除用户帐号,定义和修改用户属性以及要引用的重 要文件。 13.1 概述 用户是操作系统的主体。每个用户都需要登录系统。用户提供一个帐户的用户名,并且 如果帐户有口令的话,用户还需提供口令(对于一个安全的系统,所有帐户要么有口令,要 么是无效的)。如果口令正确,用户则登录到这个帐户中;用户获得该帐户的访问权利和授 权。/etc/passwd 和 /etc/security/passwd 文件维护着用户口令。 组是用户的集合,一个组中的用户可共享对受保护资源的访问许可权。每个组具有一个 ID,并且由成员和管理员组成。组的创建者通常是第一个管理员。有三种类型的组: User group 用户组应当为需要在系统中共享文件的人们创建,如工作 在同一个部门的人们,或者为同一个项目工作的人们。通 常,尽可能少地创建用户组。 System administrator groups 系统管理员组对应 SYSTEM 组。SYSTEM 组成员允许 管理员不使用 root 授权也可以执行一些系统维护工作。 System-defined groups 有一些系统定义的组。STAFF 组就是为在系统中创建的 非管理用户而定义的缺省组。你可以使用 chsec 命令编辑 /usr/lib/security/mkuser.default 文件以修改缺省组。 SECURITY 组是一个系统定义的组,它具有可执行安全 管理的有限特权。 属性是一个用户或一个组的特征,它定义用户或组可以执行的功能的类型,例如可以是 特别为用户分配的特权、约束和工作环境。属性控制着用户的访问权利、环境、鉴别方式以 及帐户可被访问的方式、时间和地点。当一个用户被通过 mkuser 命令创建时,这些属性也 同时被以缺省值创建。使用 chuser 命令可对它们进行修改。 有些用户和组可以被定义为管理者。这些用户和组只能被 root 用户创建和修改。 13.2 用户管理相关命令 以下是一些用于用户管理的重要命令: mkuser 创建一个新用户。 passwd 创建或修改一个用户的口令。 chuser 修改用户属性(不包括口令)。 lsuser 列出用户属性。 rmuser 删除一个用户及其属性。 chsec 修改与安全相关的节。 login 启动一个用户会话。 who 确定当前登录进来的用户。 第 244 页 dtconfig 启动或关闭桌面自动启动功能。 13.3 用户管理相关文件 以下是执行用户管理时引用的文件: /etc/security/environ 包含用户的环境属性。 /etc/security/lastlog 包含用户最近一次登录的属性。 /etc/security/limits 包含对用户的进程资源限制。 /etc/security/user 包含用户的扩充属性。 /usr/lib/security/mkuser.default 包含新用户的缺省属性。 /usr/lib/security/mkuser.sys 定制新的用户帐号。 /etc/passwd 包含用户的基本属性。 /etc/security/passwd 包含口令信息。 /etc/security/login.cfg 包含登录和用户鉴别的配置信息。 /etc/utmp 包含登录到系统中的用户记录。 /var/adm/wtmp 包含连接时间记帐信息。 /etc/security/failedlogin 记录所有失败的登录尝试。 /etc/motd 包含每当有一个用户登录到系统中时要显示的信息。 /etc/environment 指定所有进程的基本环境。 /etc/profile 为所有用户指定的附加环境设置。 $HOME/.profile 为特定用户需求指定的附加环境设置。 /etc/group 包含组的基本属性。 /etc/security/group 包含组的扩充属性。 13.3.1 /etc/security/environ /etc/security/environ 文件是一个 ASCII 文件,包含说明用户的环境属性的段。每节都 被使用一个用户名标识,包含以 Attribute=Value 的格式表示的属性,并且使用逗号分隔不 同属性。每行均以一个换行符结束,每 段则以另加的一个换行符结束。如果不定义环境变量, 系统将使用缺省值。 mkuser 命令在这个文件中创建一个用户的段 。属性的初始化取决于它们在 /usr/lib/security/mkuser.default 文件中的值。chuser 命令可修改这些属性,lsuser 命令可显 示它们。rmuser 命令删除对一个用户的全部记录。 下面的例子中显示了一个基本的 /etc/security/environ 文件,其中还没有定义任何环境 属性。因此,系统会使用缺省值。 # pg /etc/security/environ default: root: daemon: bin: sys: adm: 第 245 页 uucp: guest: 13.3.2 /etc/security/lastlog /etc/security/lastlog 文件是一个 ASCII 文件,包含用户最近一次登录属性的段。每节被 使用一个用户名标识,包含以 Attribute=Value 的格式表示的属性。每个属性以一个换行符 结束,每节则以另加的一个换行符结束。图 13-1 中显示了两个用户(root & john)的段。 mkuser 命令在 lastlog 文件中创建一个用户的段。这个用户节中的属性初始为空。域值 将被 login 命令设置,作为用户登录到系统的一个结果。lsuser 命令可显示这些属性的值; rmuser 命令在删除用户帐号时连带从这个文件中删除用户的段。 图 13-1 /etc/security/lastlog 段 13.3.3 /etc/security/limits /etc/security/limits 文件是一个 ASCII 文件,包含为每个用户指定的进程资源限制的段。 每段中的单个属性分别对这些限制进行设置。 每段被使用一个用户名标识,在用户名后紧跟着一个冒号,段中的内容是以 Attribute=Value 格式表示的属性。每个属性以一个换行符结束,每段则以另加的一个换行 符结束。如果你不为用户定义某个属性,那么系统会应用缺省值。 default 属性和用户 smith 的属性如图 13-2 所示。 当你使用 mkuser 命令创建一个用户时,系统将在 /etc/security/limits 文件中为用户增 加一段。一旦节存在于该文件中,你可以使用 chuser 命令修改用户限制。要显示当前对一 个用户的限制,可使用 lsuser 命令。要删除用户及它们的段,使用 rmuser 命令。 第 246 页 图 13-2 Contents of /etc/security/limits 文件 13.3.4 /etc/security/user /etc/security/user 文件包含扩充的用户属性。 这是一个 ASCII 文件,包含用户的属性 段。mkuser 命令在这个文件中为每个用户创建一段,并使用 /usr/lib/security/mkuser.default 文件中定义的缺省属性来初始化用户的属性。 /etc/security/user 文件中的每一段被使用一个用户名标识,后面紧跟一个冒号(:),并 且节中包含着以 Attribute=Value 格式表示并用逗号分隔的属性。 如果不为用户定义某个属性,则 default 段或属性的缺省值将被使用。你可以在 /etc/security/user 文件中包含多个 default 段。每个 default 节可应用于其后面的所有段,但 是不能应用于前面的段。 每个属性以一个换行符结束,每节则以另加的一个换行符结束。 mkuser 命令为每个新用户在 /etc/security/user 文件中创建一项记录,并用 /usr/lib/security/mkuser.default 文件中定义的属性对用户属性进行初始化。要修改这些属性 的值,使用 chuser 命令。要显示属性及其值,使用 lsuser 命令。要删除一个用户,使用 rmuser 命令。 口令控制 /etc/security/user 文件中包含的很多属性允许你对用户应当如何管理它们的口令进行 控制。这些属性包括: histsize 定义用户以前用过因而现在不能重新使用的口令个数。其值是一个十进 制整数串。缺省为 0。 histexpire 定义一个时间段(以周为单位),在这段时间内用户不能重新使用一个 已用过的口令。其值是一个十进制整数串。缺省为 0,表示没有限制。 maxexpired 定义当 maxage 的值被超过后,用户可修改一个过期口令的最大允许 时间(以周为单位)。超过这个定义的时间后,只有管理员才能修改这 第 247 页 个口令。其值是一个十进制整数串。缺省为 -1,表示没有限制。如果 maxexpired 属性被设为 0,则一旦 maxage 的值被达到,口令便过期。 如果 maxage 属性被设为 0,则 maxexpired 属性被忽略。 maxage 定义一个口令的最长寿命(以周为单位)。到了时间就必须修改口令。 其值是一个十进制整数串。缺省为 0,表示没有最长寿命限制。 minage 定义一个口令在可被修改前必须具有的最短寿命(以周为单位)。其值 是一个十进制整数串。缺省为 0,表示没有最短寿命限制。 minlen 定义口令的最小长度。其值是一个十进制整数串。缺省为 0,表示没有 最小长度限制。最大值缺省为 8。minlen 的最终取值还需根据 minalpha 值与 minother 值相加的和决定。如果该和值大于 minlen 属性值,则 该值被作为最终取值。 minalpha 定义在一个新的口令中必须含有的字母字符的最小个数。其值是一个十 进制整数串。缺省为 0,表示没有最小个数限制。 minother 定义在一个新的口令中必须含有的非字母字符的最小个数。其值是一个 十进制整数串。缺省为 0,表示没有最小个数限制。 maxrepeats 定义一个字符可以在一个新口令中重复出现的最大次数。因为 0 值是 没有意义的,缺省值为 8,表示没有最大次数限制。该值是一个十进制 整数串。 mindiff 定义要求在新口令中与在旧口令中不相同的字符的最小个数。其值是一 个十进制整数串。缺省为 0,表示没有最小个数限制。 13.3.5 /usr/lib/security/mkuser.default /usr/lib/security/mkuser.default 文件包含新用户的缺省属性。该文件是一个 ASCII 文 件,包含用户的节。这些节中包含了为使用 mkuser 命令创建的用户所定义的缺省属性值。 每个属性都使用 Attribute=Value 的格式表示。如果一个属性的值中有 $USER 字样, mkuser 命令则使用用户的名字替换它。每个属性对的结束和每节的结束都由换行符来标志。 user 和 admin 两节中包含了除 ID 和 admin 属性外所有被定义的属性。mkuser 命令将 生成一个唯一的 ID 属性值。admin 属性的值则要取决于在 mkuser 命令中是否使用了 -a 标 记。下面的例子显示了一个典型的 /usr/lib/security/mkuser.default 文件中的节。 # pg /usr/lib/security/mkuser.default user: pgrp = staff groups = staff shell = /usr/bin/ksh home = /home/$USER admin: pgrp = system groups = system shell = /usr/bin/ksh home = /home/$USER 第 248 页 13.3.6 /usr/lib/security/mkuser.sys /usr/lib/security/mkuser.sys 文件是一个 ASCII 文件,包含被 mkuser 命令调用的可运 行的命令。/usr/lib/security/mkuser.sys 文件创建新用户的主目录以及正确的属主和主组, 并为用户的外壳(shell)创建适当的自述文件(profile)。这个文件可以被用来裁剪对新用 户的创建。 13.3.7 /etc/passwd /etc/passwd 文件包含基本的用户属性。这是一个 ASCII 文件,为每个用户包含一项记 录。每项记录定义了被应用于一个用户的基本属性。 当你使用 mkuser 命令增加一个用户到系统中时,该命令会更新 /etc/passwd 文件。 /etc/passwd 文件中的每项记录具有下面的格式,其中各个属性之间被用冒号(:)分隔。 Name: Password: UserID: PrincipleGroup: Gecos: HomeDirectory: Shell Password 属性中可包含一个星号( *)以表明一个错误的口令,或包含一个感叹号(!) 以表明该口令在 /etc/security/passwd 文件中。在正常情况下,该域包含的是一个感叹号(!)。 如果该域中出现一个星号(*),而用户鉴别机制又要求有口令,则用户是无法登录的。 shell 属性指定当用户调用了 login 命令或 su 命令后被启动的初始程序或 shell(login shell)。 Korn shell 是标准的操作系统 login shell,可与 Bourne shell 后向兼容。如果用户 没有被定义 shell,则系统的缺省 shell —— /usr/bin/sh(Bourne shell)被使用。Bourne shell 是 Korn shell 的一个子集。 mkuser 命令增加新的记录到 /etc/passwd 文件中,并把 /usr/lib/security/mkuser.default 文件中定义的属性值填写到 /etc/passwd 文件中。Password 属性初始总是一个星号(*), 即一个无效口令。你可以使用 passwd 命令或 pwdadm 命令设置口令。当口令被修改后,一 个感叹号(!)被加入到 /etc/passwd 文件中,表明被加密的口令位于 /etc/security/passwd 文件中。 使用 chuser 命令可修改除 Password 之外的用户属性。chfn 命令和 chsh 命令分别可修 改 Gecos 属性和 Shell 属性。要显示这个文件中的属性,使用 lsuser 命令。要删除一个用 户及其所有属性,使用 rmuser 命令。 图 13-3 中给出的 /etc/passwd 文件中显示了两个用户(john 和 bob)的 Password 属 性分别为 ! 和 *,意味着用户 bob 不可以登录,因为它有一个无效口令。 第 249 页 图 13-3 Contents of /etc/passwd 文件 13.3.8 /etc/security/passwd /etc/security/passwd 文件是一个 ASCII 文件,包含口令信息的节。每节被使用一个后 面带冒号(:)的用户名标识并包含以 Attribute=Value 格式表示的属性。每个属性以一个换 行符结束,每节则以另加的一个换行符结束。 虽然每个用户名都必须出现在 /etc/passwd 文件中,但是却不需要每个都被列在 /etc/security/passwd 文件中。一个典型的 /etc/security/passwd 文件的内容如图 13-4 所示。 图 13-4 Contents of /etc/security/passwd 文件 第 250 页 13.3.9 /etc/security/login.cfg /etc/security/login.cfg 文件(如图 13-5)是一个 ASCII 文件,包含登录和用户鉴别的配 置信息节。每节具有一个名字,紧跟一个冒号(:)。属性以 Attribute=Value 格式表示。每 个属性以一个换行符结束,每节则以另加的一个换行符结束。有三种类型的节。 port stanza 定义端口的登录特征。 authentication stanza 定义用户的鉴别方式。 user configuration stanza 定义改变用户属性的程序(usw)。 图 13-5 Contents of /etc/security/login.cfg 文件 13.3.10 /etc/utmp, /var/adm/wtmp, /etc/security/failedlogin utmp 文件、wtmp 文件和 failedlogin 文件包含有关用户和记帐信息的记录。当一个用 户成功登录后,login 程序就会在下面两个文件中写记录: - /etc/utmp 文件,它包含登录到系统中的用户的记录。who -a 命令处理 /etc/utmp 文件,并 且如果该文件被破坏或丢失,则 who 命令不产生任何输出。 - /var/adm/wtmp 文件(如果它存在),它包含连接时间记帐信息的记录。 对一个无效的登录尝试,如因为登录名或口令不正确,login 程序会在 /etc/security/failedlogin 文件中增加一条记录,该文件包含对所有不成功的登录尝试的记录。 13.3.11 /etc/motd 每当有一个用户登录到系统的时候,问候消息(message of the day)就被显示。 它是 向所有用户通报信息的一种方便的途径,例如被安装的软件版本号或当前信息消息等。问候 消息被包含在 /etc/motd 文件中。要修改问候消息,只需编辑该文件。 第 251 页 一个典型的 /etc/motd 文件如图 13-6 所示。 图 13-6 Sample /etc/motd 文件 13.3.12 /etc/environment /etc/environment 文件包含为所有进程指定的基本环境变量。 当一个新的进程开始时, exec 子程序就会使一组具有 Name=Value 格式的字串生效。这组字串被称为环境。每个字 串中定义的一个名字被称为环境变量或 shell 变量。每当一个命令开始运行时,环境变量就 会被检查。 /etc/environment 文件并不是一个 shell 脚本。它只能包含 Name=Value 格式的数据, 并且不能含有任何 shell 命令。试图从这个文件中运行命令会导致初始化进程的失败。 当你登录后,系统在读取你的登录自述文件(.profile)之前会先从 environment 文件 进行环境变量设置。以下是一些构成基本环境的变量。 HOME 用户登录目录或主目录的全路径名。login 程序将其设置为 /etc/passwd 文 件中指定的目录。 LANG 当前有效的地区名。在安装期间 LANG 变量就被设置在 /etc/environment 文件中。 NLSPATH 消息目录的全路径名。 PATH 当命令如 sh、time、nice 和 nohup 等在寻找一个路径名不完整的命令时, 它们搜索的目录顺序。目录名被用冒号分隔。 LPDEST 一个没有指定目标打印机的打印相关的命令可使用的打印机。 TERM 终端类型。 EDITOR 执行编辑功能的各种命令(如 crontab)所使用的缺省编辑器。 TZ 时区信息。TZ 环境变量被 /etc/environment 文件所设置。 注意:修改时区只会影响以后发生的进程。init 进程只在启动时读取 /etc/environment,因 此 init 及其子进程都不会理会对 TZ 的改动,直到系统重启。 第 252 页 13.3.13 /etc/profile 和 $HOME/.profile /etc/profile 文件包含更多的环境变量,以及可以运行的命令,可应用于所有用户。使用 /etc/profile 文件可控制的变量如: - 输出(export)变量 - 文件创建的表征码(umask) - 终端类型 - 提示有新邮件到达的邮件消息 被包含在 /etc/profile 中的命令应当适用于系统中所有用户。举个例子,你也许希望所 有用户在登录时都会运行一个命令 news 。 $HOME/.profile 文件则使你可定制自己的个人工作环境。.profile 文件还会覆盖在 /etc/profile 文件中设置的命令和变量。可使用 .profile 文件控制的个人设置如: - 要打开的 Shells - 缺省编辑器 - 缺省打印机 - 提示符显示风格 - 键盘声音 13.4 用户管理任务 用户管理包括创建用户,定义或修改用户属性,定义用户的安全环境等。本节将讨论这 些主题。 13.4.1 增加一个新的用户帐号 mkuser 命令创建一个新用户帐号。Name 参数必须是一个唯一的最长 8 字节的字串。 mkuser 命令缺省创建一个标准用户帐号。为了创建一个管理员用户帐号,指定 -a 标记。 mkuser 命令不为用户创建口令信息,因此新帐号开始是无效的,直到 passwd 命令被 用于增加鉴别信息到 /etc/security/passwd 文件中。mkuser 命令只能用一个 *(星号)初始 化 /etc/passwd 文件中的 Password 属性。 - 要创建 smith 帐号并使其具有管理员身份,输入: mkuser -a smith 你必须是 root 用户才可以创建一个管理员用户。 - 要创建 smith 用户帐号并设置 su 属性值为 false,输入: mkuser su=false smith - 要使用 /usr/lib/security/mkuser.default 文件中的缺省值创建一个用户帐号 smith,输入: mkuser smith 此外,你也可以使用 SMIT: a. 运行 smitty mkuser 进入图 13-7 所示的菜单。 b. 在 User NAME 域敲入 smith。 c. 按回车键创建这个用户。 d. 当 SMIT 返回一个 OK 提示时,按 F10 键退回命令行。 第 253 页 图 13-7 Adding a user 菜单 13.4.2 创建或修改用户口令 passwd 命令将在 /etc/security/passwd 中创建一个加密的口令记录,并把 /etc/passwd 中的 Password 属性从 * 修改为 ! 。 - 要在 /etc/passwd 文件中修改你的全名,输入: passwd -f smith passwd 命令显示为你的用户 ID 所存储的名字。例如,对于一个登录名 smith,passwd 命令将显示下面例子中的消息。 # passwd -f smith smith's current gecos: "Mr J.Smith" Change (yes) or (no)? > n Gecos information not changed. 如果你输入 Y 即 yes,passwd 命令会向你显示新的名字。passwd 命令会把你输入的 名字记录到 /etc/passwd 文件中。 - 要修改你的口令,输入: passwd 如果你已经有一个口令并且你不是 root 用户,passwd 命令将提示你输入旧口令。当 你输入了旧口令之后,该命令会向你要求输入新口令两次。 此外,你可以使用 SMIT: a. 运行 smitty passwd 将向你显示图 13-8 中的菜单。 b. 在 User NAME 域中敲入 smith。 c. 按回车,你将被提示输入新口令(两次),如图 13-9 所示。 d. 输入完新口令按回车。 e. 当 SMIT 返回一个 OK 提示后,按 F10 键返回命令提示符。 第 254 页 图 13-8 Changing a user’ S password 菜单 图 13-9 输入一个用户口令 13.4.3 修改用户属性 chuser 命令修改被 Name 参数标识的用户的属性。用户名必须已经存在,并且为一个 最长 8 字节的字串。 注意:如果你的系统中安装了一个网络信息服务(NIS)数据库,则不要使用 chuser 命令。 只有 root 用户可以使用 chuser 命令执行下面的任务: - 通过把 admin 属性设为 true,使一个用户成为管理员用户。 - 修改一个管理员用户的任意属性。 第 255 页 - 增加用户到一个管理组。 下面的例子显示 chuser 带有不同标记时的使用情况。 - 为了使用户 smith 能够远程访问该系统,输入: chuser rlogin=true smith - 为了把用户 smith 的帐号过期的日期修改为 8 a.m.,1 December,1998,输入: chuser expires=1201080098 smith - 为了把用户smith 增加到组 programers 中,输入: chuser groups=programers smith 此外,你也可以使用 SMIT: a. 运行 smitty chuser 将向你显示图 13-10 中的菜单。 b. 在 User NAME 域中敲入 smith。 c. 使用箭头键高亮显示 Primary GROUP 域,并敲入 programmer。 d. 按回车。 e. 当 SMIT 返回一个 OK 提示后,按 F10 键返回命令提示符。 图 13-10 修改用户特征 13.4.4 显示用户属性 lsuser 命令显示用户帐户属性。你可以使用这个命令列出所有用户的所有属性或指定用 户的所有属性,除了它们的口令。因为没有缺省参数,你必须输入关键词 ALL 才可以看到 所有用户的属性。lsuser 命令缺省显示用户的所有属性。如果只想有选择地查看属性,使用 -a List 标记。如果有一个或多个标记无法被读取,则 lsuser 命令会尽其可能地列出信息。 注意:如果你地系统中安装了网络信息服务(NIS)数据库,则你使用 lsuser 命令时可能会 有一些用户信息显示不出来。 lsuser 命令缺省把每个用户的属性列在一行中。它以 Attribute=Value 定义的格式显示属 性信息,并用空格分隔属性。如果要以节的格式显示属性,则使用 -f 标记。如果要以冒号 分隔的记录形式显示信息,则使用 -c 标记。 第 256 页 下面的例子显示了 lsuser 命令带不同标记时的使用情况。 - 要以节的形式显示 root 帐号的用户 ID 及与组相关的信息,输入: # lsuser -f -a id pgrp home root root: id=0 pgrp=system home=/ - 要以冒号分隔的形式显示用户 smith 的 ID、组和主目录,输入: lsuser -c -a id home groups smith - 要以缺省格式显示用户 smith 的所有属性,输入: lsuser smith 所有属性信息被显示出来,且每两个属性之间被用空格分隔。 - 要显示所有用户的所有属性,输入: lsuser ALL 所有属性信息被显示出来,且每两个属性之间被用空格分隔。 - 此外,你可以使用 SMIT: a. 运行 smitty lsuser 将向你显示图 13-11 中的菜单。 b. 在 User NAME 域中敲入 smith 并按回车。得到如图 13-12 所示的菜单。 c. 当 SMIT 返回一个 OK 提示后,按 F10 键返回命令提示符。 图 13-11 smitty lsuser 命令 第 257 页 图 13-12 列出用户特征 13.4.5 删除一个用户帐号 rmuser 命令将删除由 Name 参数标识的用户帐号。该命令会删除用户的属性,但不删 除 用户的主目录和文件。用户名必须已经存在,并且为一个最长 8 字节的字串。如果指定 了 -p 标记,rmuser 命令还会从 /etc/security/passwd 文件中删除口令及其他用户鉴别信息。 只有 root 用户可以删除管理员用户。 - 下面这个例子显示使用 rmuser 命令从本地系统中删除一个用户帐号 smith 及其属性: rmuser smith - 要删除用户帐号 smith 及其所有属性,包括口令以及其他在 /etc/security/passwd 文件中 的用户鉴别信息,使用下面的命令: rmuser -p smith 此外,你也可以使用 SMIT: a. 运行 smitty rmuser 将向你显示图 13-13 中的菜单。 b. 在 User NAME 域中敲入 smith。 c. 按回车键。 d. 当 SMIT 返回一个 OK 提示后,按 F10 键返回命令提示符。 第 258 页 图 13-13 删除一个用户 13.4.6 修改用户的安全属性 chsec 命令修改存放在段格式的安全配置文件中的属性。下面的节式安全配置文件中包 含了你可以使用 Attribute = Value 参数指定的属性。 - /etc/security/environ - /etc/security/group - /etc/security/lastlog - /etc/security/limits - /etc/security/login.cfg - /usr/lib/security/mkuser.default - /etc/security/passwd - /etc/security/portlog - /etc/security/user 当你修改 /etc/security/environ , /etc/security/lastlog , /etc/security/limits , /etc/security/passwd 及 /etc/security/user 文件中的属性时,用 Stanza 参数指定的节名必须 是一个有效的用户名或为 default。 当你修改 /etc/security/group 文件中的属性时,用 Stanza 参数指定的节名必须是一个 有效的组名或为 default。 当你修改 /usr/lib/security/mkuser.default 文件中的属性时,Stanza 参数值必须为 admin 或 user。 当你修改 /etc/security/portlog 文件中的属性时,Stanza 参数值必须为一个有效的端口 名。当你修改 /etc/security/login.cfg 文件中的属性时,Stanza 参数值必须或者为一个有效 的端口名,或者为一个鉴别方式名,或者为 usw 属性。 当你修改 /etc/security/login.cfg 或 /etc/security/portlog 文件中的一个已经不存在的节 中的属性时,chsec 命令会自动创建这个段。 注意:你不能使用 chsec 命令修改 /etc/security/passwd 文件中的口令属性。你应当使用 第 259 页 passwd 命令。 下面的例子显示了如何使用 chsec 命令修改不同文件中的安全段。 - 要修改 /dev/tty0 端口,使得如果在 60 秒之内发生了五次不成功的登录尝试,它就会自动 加锁,输入: chsec -f /etc/security/login.cfg -s /dev/tty0 -a logindisable=5 -a logininterval=60 - 当 /dev/tty0 端口被系统锁住后,要对它解锁,输入: chsec -f /etc/security/portlog -s /dev/tty0 -a locktime=0 - 要在 8:00 a.m. 到 5:00 p.m. 之间允许所有用户登录,输入:发 chsec -f /etc/security/user -s default -a logintimes=:0800-1700 - 要把对用户 smith 的 CPU 时间限制修改为一小时(3600 秒),输入: chsec -f /etc/security/limits -s smith -a cpu=3600 13.4.7 显示当前登录的用户 who 命令显示有关当前在本地系统中的所有用户的信息。下面的信息将被显示:登录名、 tty、登录日期和时间。输入 who am i 或 who am I 将显示你自己的登录名、tty、登录日期 和时间。如果用户是从一台远程机器登录过来的,则那台机器的主机名也会显示出来。who 命令还能显示自从线路被激活以来已经过去的时间、命令解释器(shell)的进程 ID、登录、 退出、重启、系统时钟变化,以及被初始化进程产生的其他进程。 注意:/etc/utmp 文件包含了登录到系统中的用户的记录。who -a 命令处理 /etc/utmp 文件, 并且如果该文件被破坏或丢失,则 who 命令不产生任何输出。 下面的例子显示 who 命令带不同标记时的使用情况。 - 下面这个例子给出了显示所有登录到系统上的用户的相关信息的命令: # who root pts/0 Nov 17 10:20 (sv1166a.itsc.aus) root pts/2 Nov 23 10:45 (sv1121c.itsc.aus) root pts/3 Nov 23 10:48 (sv1121c) - 下面这个例子给出了显示你的用户名的命令: # who am I root pts/3 Nov 23 10:48 (sv1121c) - 下面这个例子给出了显示本地系统运行级别的命令: # who -r .run-level 2 Nov 17 10:19 2 0 S - 要显示被 init 产生的所有活动进程,运行下面的命令: 第 260 页 在 /etc/utmp 文件被破坏或丢失的情况下,你可以使用 ps 命令列出所有进程及其关联的 用户。 13.4.8 阻止用户登录 如果 /etc/nologin 文件存在,系统接受用户的名字和口令,阻止用户登录并显示 /etc/nologin 文件的内容。如果这个文件存在,系统还是允许 root 用户登录。当你重启系统 时,/etc/nologin 文件被删除。你也可以手工删除这个文件以重新允许用户登录。 13.4.9 修改用户的登录 shell chsh 命令修改一个用户的登录 shell 属性。shell 属性定义当用户登录到系统中后初始 运行的程序。这个属性在 /etc/passwd 文件中有定义。chsh 缺省会修改发出这个命令的用户 的登录 shell。 chsh 命令是交互式的。当你运行 chsh 命令时,系统显示所有可用的 shells 的列表和 shell 属性的当前值,如图 13-14 所示。除了缺省的 shells(/usr/bin/ksh, /usr/bin/sh, /usr/bin/bsh, /usr/bin/csh)之外,你的系统管理者还可以定义更多。接下来,系统将询问你 是否修改 shell。你必须输入一个可用的 shell 的全路径名。 如果你拥有 chuser 命令的执行许可权,你可以修改其他用户的登录 shell。 第 261 页 图 13-14 chsh 命令 13.4.10 修改 shell 提示符 shell 使用下面三个提示符变量。 PS1 用作标准的系统提示符。 PS2 当 shell 期望更多的输入时,使用这个提示符。 PS3 当你具有 root 授权时,使用这个提示符。 你可以通过修改 shell 变量的值来改变你的任何一种提示符。对你的提示符的改变可以 一直保持到你退出为止。为了进行永久改变,把它们放到你的 .env 文件中。 下面这个例子说明了如何显示 PS1 变量的当前值。 # echo "prompt is $PS1": prompt is $ 下面的例子显示了把提示符修改为 Ready > 的命令: export PS1="Ready>" 下面的例子显示了把延续的提示符修改为 Enter more-> 的命令: export PS2="Enter more->" 下面的例子显示了把 root 的提示符修改为 Root-> 的命令: export PS3="Root->" 13.4.11 启动 AIX 通用桌面环境 如果 AIX 通用桌面环境(Common Desktop Environment,CDE)没有被设置为在一 个本地连接的图形显示器上自动启动,你可以从 AIX 命令行使用下面的命令启动桌面。 xinit /usr/dt/bin/Xsession 使用 xinit 命令启动桌面并不会启动整个桌面环境。当你启动桌面时你将绕过登录窗口, 而当你退出时你将返回命令行而不是 AIX CDE 登录窗口。不过,你将使用的桌面应用与你第 262 页 从欢迎窗口启动桌面时可运行的应用是一样的。 你可以将系统设置成启动后自动进入 AIX CDE,或者你也可以手工启动 AIX CDE。你 必须以 root 登录以执行下面这些任务。 开启和关闭桌面自动启动功能 为了开启桌面自动启动功能,使用 smitty dtconfig 或 dtconfig –e。 为了关闭桌面自动启动功能,使用 smitty dtconfig 或 dtconfig -d。 在开启或关闭桌面自动启动功能后,重启系统。 注意:如果在一个没有图形功能的系统上开启桌面自动启动功能,可能会导致使用串行控制 台很困难。为了防止这个问题,关闭桌面自动启动功能并重启系统。 手工启动 AIX CDE 使用下面的命令从命令行启动 AIX CDE。 /usr/dt/bin/dtlogin -daemon 一个桌面登录窗口将被显示。当你登录后,你将启动一个桌面会话。 手工停止 AIX CDE 当你手工停止登录管理器时,所有被登录管理器启动的 X 服务器和桌面会话都被停止。 1. 打开一个终端防真窗口并以 root 登录。 2. 输入下面的命令以得到 Login Manager 的进程 ID: cat /var/dt/Xpid 3. 输入下面的命令停止 Login Manager: kill -term process_id 13.5 常见的登录错误 本节总结了一些 Component ID 3004(登录错误)的错误消息及其可能的原因。请参 考 AIX 产品文档获得更多信息。 3004-004 You must "exec" login from the lowest login shell . 你试图退出系统,但是在另一个 shell 中还有进程在运行。 3004-007 You entered an invalid login name or password. 你试图登录一个系统,但是系统不承认你的登录名或口令。 3004-008 Failed setting credentials. 登录失败。 3004-009 Failed running login shell. 你试图登录到一个登录 shell 被损坏的系统。登录 shell 不存在。 3004-030 You logged in using all uppercase characters. 你试图登录时 Caps Lock(大写锁定键)是亮的。 3004-031 Password read timed out--possible noise on port. 你登录系统但在一段指定的时间内没有输入你的口令。你的口令之所以在一段 指定的时间内没有生效,可能是由于网络连接的故障所致。 3004-302 Your account has expired.Please see the system administrator. 你的口令过期了。 3004-312 All available login sessions are in use. 你试图登录到一个系统,但是所有可用的登录会话当前都在使用中。 3004-687 User does not exist . 你在lsuser、chuser、rmuser 或 passwd 命令中指定了一个无效的用户名。 第 263 页 13.5.1 AIX CDE 和文件系统已满 当 /home 文件系统已满时,用户将不能使用 AIX CDE 登录。如果 /home 已满,AIX CDE 登录窗口还是会接受用户的名字和口令,但显示屏上将变成空白,看上去象是挂起了,然后 又会返回到 AIX CDE 登录窗口。为了可以登录进去探查情况,按下 AIX CDE 登录窗口的 Options 按钮,并选择 Command Line Login(命令行登录),或改从一台非图形显示器上登 录。 13.6 测验 下面是作者提出的一些问题,以进一步检查你对本章内容的理解。 1. A user is able to get a login prompt for the server but gets a failed login error message when trying to login with an ID. Which of the following is the most likely cause of this problem? A. The hard drive is bad. B. The /home file system is full. C. The server is low on paging space. D. The user has entered an invalid ID or password. 2. Which of the following files contains UID, home directory, and shell information? A. /etc/passwd B. /etc/security/user C. /etc/security/environ D. /etc/security/passwd 3. A customer has cloned a machine using mksysb . The source machine contained a graphics adaptor and display and was running Xwindows. The target machine has an IBM 3151 terminal and no graphics capability. The customer states that they are seeing the following message repeatedly scroll across the login screen. To prevent this message from appearing, which of the following actions should be performed? A. Run the cdecfg -disable command. B. Run the startx -no command and reboot. C. Run the dtconfig -d command and reboot. D. Remove the X=start line from the /etc/security/login.cfg file and reboot. 4. After completing the installation of the Base Operating System on one of the servers, the system administrator would like for all users who telnet into this machine to see a specific message each time they successfully log in. Which 第 264 页 file should be edited to provide this message? A. /etc/motd B. /etc/profile C. /etc/environment D. /etc/security/login.cfg 5. A marketing manager would like her shell prompt to reflect the directory she is in so that if she needs to remove a file, she will be sure to be in the proper directory. Which of the following environment variables can be set to accomplish this? A. PS1 B. PATH C. DISPLAY D. LOCPATH 13.6.1 答案 1. D 2. A 3. C 4. A 5. A 13.7 练习 以下的练习是为自学提供的例题。它们将帮助你加深对本章的理解。 1. 增加一个新的用户帐号(james)并尝试登录到新帐号中。如果不为它创建一个口令,你 能够登录进去吗? 2. 为一个新建的用户帐号(james)创建一个口令。 3. 你希望所有用户在登录时看到下面的消息: *************************************************************************** Please assemble in the meeting room at 13:00 hrs on Nov.20,2001 **************************************************************************** 你需要编辑哪个文件以加入这个消息,这样每当一个用户登录时该消息都会显示? 4. 把文件 /etc/utmp 移动到 /etc/wtmp.org 中。运行 who 命令,会有什么输出? 5. 为一个忘记了旧口令的用户修改帐号口令。 6. 如何关闭桌面自动启动功能? 7. 显示用户帐号的属性。 8. 永久修改你的 shell 提示符为显示当前目录。 第 265 页 第十四章 打印 本章将讨论 AIX 打印子系统,但是不包含 AIX 5L Version 5.1 中支持的可选的 SRV4 打 印子系统。 以下的术语会经常用在对 UNIX 打印的讨论中。 - 打印作业(Print job) 一个打印作业是要在一台打印机上运行的一个工作单元。一个打印作业可以包括打印 一个或多个文件,这取决于打印作业是如何被请求的。系统为它运行的每个作业分配一个 唯一的作业号。 - 队列(Queue) 队列是你指挥打印作业的地方。它是 /etc/qconfig 文件中的一个区,区名为队列的名字, 并指向关联的队列设备。 - 队列设备(Queue device) 队列设备是 /etc/qconfig 文件中的一个区,一般跟在本地队列区后面。它指定可被使用 的 /dev 文件(打印机设备)。 注意:可以有多于一个队列设备与一个队列关联。 - 队列伺服器(qdaemon) qdaemon 是在后台运行的一个进程,它控制着队列。它通常在 IPL 期间被 startsrc 命 令启动。要了解更多的信息,请参见第 9.1 节,“启动 SRC”。 - 打印假脱机程序(Print spooler) 一个假脱机程序(spooler)并不是专指打印作业的假脱机程序。相反,它提供的是 一类假脱机功能,可以为各种类型作业的排队而使用,其中就包括被排队在打印机上的打 印作业。 假脱机程序一般不知道是哪种类型的作业在排队。当系统管理员定义一个假脱机队列 时,该队列的用途是由为该队列专门指定的假脱机程序的后端程序定义的。例如,如果假 脱机程序的后端程序为 piobe 命令(打印机 I/O 后端),则队列为一个打印队列。同样, 如果假脱机程序的后端程序为一个编译程序,则队列是用于编译作业的。当假脱机程序的 qdaemon 命令从一个假脱机队列中选择了一个作业,它通过调用当队列被定义时由系统 管理员指定的后端程序来运行该作业。 主要的假脱机程序命令为 enq 命令。即使你可以直接调用这个命令来排队一个打印 作业,还是有三个前端命令被定义用于提交一个打印作业:lp、lpr 和 qprt 命令。被这些 命令中的任何一个发出的打印请求首先都是被传递给 enq 命令,然后再由它把文件的有 关信息放到队列中等待 qdaemon 来处理。 - 实打印机(Real printer) 实打印机即以一个唯一的硬件设备地址连接到一个串行口或一个并行口的打印机硬 件。内核中的打印机设备驱动程序与打印机硬件通信,并在打印机硬件与一个虚拟打印机 之间提供一个接口,但是它并不知道虚拟打印机的概念。实打印机有时候会用完纸。 - 本地和远程打印机(Local and remote printers) 当你把一台打印机连接到一个节点或主机时,该打印机被称为本地打印机。而一个远 程打印系统则允许没有直接连接到打印机的节点具有访问打印机的能力。 为了使用远程打印机制,单个节点必须被连接到一个 TCP/IP 网络中,并且必须支持 所需的 TCP/IP 应用。 第 266 页 - 打印机后端(Printer backend) 打印机后端是被假脱机程序的 qdaemon 命令调用的一组程序的集合,用于管理一个 被排队等候打印的打印作业。打印机后端程序执行下列功能: – 从 qdaemon 命令接收要被打印的一个或多个文件的列表。 – 使用打印机及从数据库格式化属性值;可被从命令行输入的标记覆盖。 – 在打印文件之前初始化打印机。 – 根据需要运行过滤程序,把打印数据流转换成打印机支持的一种格式。 – 为 ASCII 文档的简单格式化提供过滤程序。 – 为打印民族语言字符(national language characters)提供支持。 – 把被过滤的打印数据流传递给打印机设备驱动程序。 – 产生首页和尾页。 – 产生多份拷贝。 – 报告缺纸、需要干预以及打印机错误状态。 – 报告过滤程序检测到的问题。 – 清除被取消的打印作业。 – 提供可被系统管理员为特殊打印需求而定制的打印环境 表 14-1 提供了可以执行相同功能的命令列表。 表 14-1 打印命令及其对等关系 提交打印作业 打印作业状态 取消打印作业 enq enq -A enq -x qprt qchk qcan lp lpstat lprm lpr lpq 14.1 创建一个新的打印队列 创建一个新的打印队列的最佳途径就是使用 SMIT 接口。以下是你需要执行的步骤。输入 下面的命令: smitty 进入 System Management 菜单,在这里选择 Print Spooling,如图 14-1 所示,然后按 回车。 第 267 页 图 14-1 System Management 菜单 - Print Spooling 选项 进入 Print Spooling 菜单,在这里选择 Add a Print Queue,如图 14-2 所示,然后按回车。 图 14-2 Print Spooling 菜单 - Add a Print Queue 选项 图 14-3 显示了 Print Spooling 菜单,在这里会显示一个 Add a Print Queue 子菜单。选 择打印机所连接的位置,在这个例子中打印机是连接在本地的,因此选择 local,然后按回 车。 第 268 页 图 14-3 Add a Print Queue 子菜单 – 选择打印队列 一旦你选择了打印机连接的位置,接下来选择打印机类型并按回车。在图 14-4 中,选择 了 Other(select this if your printer type is not listed above) 这项。 图 14-4 Print Spooling 菜单 – 打印机类型选择 图 14-5 显示了选择 Printer Type 的地方,选择 generic Generic Printer 一项并按回车。 第 269 页 图 14-5 Print Spooling 菜单 –打印类型选择 现在你该选择打印机接口(Printer Interface)了。如图 14-6 所示,选择 parallel 然后按 回车。 图 14-6 Print Spooling 菜单 – 打印机接口选择 选择好打印机接口后,你需要选择 Parent Adapter,如图 14-7 所示,选择 ppa0 Available 01-D0 Standard I/O Parallel Port Adapter 一项然后按回车。 第 270 页 图 14-7 Print Spooling 菜单 – 选择父适配器 一旦这个过程完成,你将会增加一个打印队列(Add a Print Queue),如图 14-8所示。 在这里你将选择你需要用什么来称呼你的打印机。在这里例子中,打印机被称为 lpforu。如 果需要,你可以修改打印机的任何特征;但是,通常这是不需要的。 图 14-8 Add a Print Queue 菜单 – 打印机特征 一旦你输入完特征后,将会显示 COMMAND STATUS 菜单,告诉你操作成功,如图 14-9 所示。 第 271 页 图 14-9 新打印队列命令状态 一旦完成,按 F10 退出。 你现在已经在打印机 lp0 上安装了打印队列 lpforu。 14.2 打印配置文件 系统中存放打印机配置的文件为 /etc/qconfig 文件。它是在假脱机程序范围中最重要的文 件,因为如下三个理由: - 它包含对每个被假脱机程序所知的队列的定义。 - 系统管理员可以读这个文件并从中了解每个队列的功能。 - 这个文件可以被编辑,这样不用暂停假脱机程序也可以修改假脱机程序队列,但是我们不 建议这样做。 /etc/qconfig 文件描述了所有在 AIX 操作系统中定义的队列。队列是向一个特定设备发 出的请求的被命名的、有序的列表。设备(硬件或软件)能够一次一个地处理这些请求。队 列提供了对设备的串行访问。每个队列必须至少有一个设备为其服务;通常它可以被多于一 个设备处理。 下面是 /etc/qconfig 文件内容的一个例子: 第 272 页 第 273 页 /etc/qconfig 文件由被称为节(stanzas)的文本块构成。每个队列由一对节来表示。其中 第一个节被称为队列节(queue stanza);第二个节被称为设备节(device stanza)。节由 描述队列属性和功能的参数及参数值构成。 14.3 控制打印队列 本节将讨论一些你可以用于管理打印队列的命令。 - lpstat 命令显示行式打印机当前状态的有关信息。 lpstat 命令语法如下: lpstat [ -a List ] [ -c List ] [ -d ] [ -o List ] [ -p List ] [ -r ][ -s ] [ -t ] [ -u List ] [ -v List ] [ -W ] 下面是不带任何标记使用 lpstat 命令的一个例子: - qchk 命令显示关于特定打印作业、打印队列或用户的当前状态信息。 qchk 命令语法如下: qchk [ -A ][ -L | -W ] [ -P Printer ] [ -# JobNumber ] [ -q ] [ -u UserName ] [ -w Delay ] 下面是不带任何标记使用 qchk 命令的一个例子: - lpq 命令报告与指定的 UserName 和 JobNumber 变量相关的特定作业或所有作业的状态。 lpq 命令语法如下: lpq [ + [ Number ] ] [ -l | -W ] [ -P Printer ] [ JobNumber [ UserNam e ] 下面是不带任何标记使用 lpq命令的一个例子: - lpr 命令使用一个假脱机伺服程序(spooling daemon),一旦打印机制可用,便打印被 File 参数命名的文件。 lpr 命令语法如下: lpr [ -f ] [ -g ] [ -h ] [ -j ] [ -l ] [ -m ] [ -n ] [ -p ] [ -r ] [ -s ] [ -P Printer ] [ -# NumberCopies ] [ -C Class ] [ -J Job ] [ -T Title ] [ -i [NumberColumns ] ] [ -w Width ] [File ... ] 下面是使用 lpr 命令打印文件 /etc/passwd 的一个例子。 第 274 页 14.3.1 编辑 /etc/qconfig 你可以使用自己喜欢的文本编辑器来修改 /etc/qconfig 文件。当你无法通过其他方式删除 一个打印机定义时,可能就需要采用这种做法。有一些非强制性的规则关系到你何时可以或 不可以在不暂停或破坏假脱机程序的操作的情况下编辑 /etc/qconfig。这是在下一节中将要 讨论的主题。 14.3.2 当作业正在处理时修改 /etc/qconfig 如果作业正在处理当中,你绝对不能修改 /etc/qconfig 文件。尤其当你的系统有大量(多 于 25)总是繁忙的打印机时,你更不能这样做。当 qdaemon 从 enq 命令接收到一个新的 作业描述文件(Job Description File,JDF)存在的通知时,qdaemon 检查/etc/qconfig 和 /etc/qconfig.bin(/etc/qconfig 的二进制版本)的日期。如果 /etc/qconfig 比 /etc/qconfig.bin 年轻,则 qdaemon 不会接受任何新作业,包括促使它去检查前面提到的文件的那个作业, 一直到所有当前运行着的作业都结束了处理。当作业都结束了处理后,qdaemon 会创建一 个新版本的 /etc/qconfig.bin。 如果你在作业处理当中促使 qdaemon 进入这种状态,有可能会导致假脱机程序挂起。 14.4 停止打印队列 在下面的例子中,你有一个作业正在一个打印队列上进行打印,但是你需要停止队列以 便你可以向打印机中加纸。 使用 lpstat 命令检查打印队列,如下例中所示。使用 -v 标记的理由是这样你就不用看 到所有打印机的列表。请参考表 14-4 中列出的 lpstat 命令标记。 使用 enq 命令停止打印队列,如下例中所示。请参考后面的表 14-2 中列出的 enq 命令 标记。 # enq -D -P 'lpforu:lp0' 使用 qchk 命令检查打印机队列,如下例中所示。请参考后面的表 14-3 中列出的 qchk 命令标记。 表 14-2 enq 命令标记 标记 描述 -D 设备关闭(DOWN)。关闭与队列相关的设备。qdaemon 进程不再向该设备发送作业。 -U 启动与队列相关的设备。qdaemon 进程又再向该设备发送作业。 -P Queue 指定作业被发往的队列。通过输入 -P Queue:Device 可以指定在一个队列上使用一个特定 设备。 第 275 页 表 14-3 qchk 命令标记 标记 描述 -# JobNumber 询问由 JobNumber 变量指定作业号的作业的状态。当 -# JobNumber 标记被单独使用时, qchk 命令在缺省队列上寻找 JobNumber。如果要在所有队列上查找 JobNumber,-# 标 记必须与 -A 标记一同使用。-# 标记也可以与 -P Queue 标记一同使用。 -A 询问所有队列的状态。 -P Printer 询问由 Printer 变量指定的打印机的状态。 -u UserName 询问被由 UserName 变量指定的用户发送的所有打印作业的状态。 -w Delay 以由 Delay 变量指定的秒数时间间隔定期更新被询问的信息,直到所有打印作业全部结 束。 14.5 启动打印队列 你放好了纸,现在需要重启打印队列以完成你的打印作业。下面告诉你如何去做: enable 命令也可以被用于启动打印队列。它把打印机队列设备作为它唯一的参数,如下例 所示。 # enable lpforu:lp0 14.6 刷新一个打印作业 你发现你打印出来的第一个作业不是你想打印的。你打印了正确的作业,但是你现在想 删除第一个作业。例如,你可以这样做: 1. 检查打印队列的状态。 2. 打印 /etc/hosts 文件到缺省打印机。 # lpr -dlpforu /etc/hosts 3. 检查打印队列的状态。 4. 取消对 /etc/passwd 的打印作业,使用以下命令之一: # qcan -P lpforu -x 3 第 276 页 # cancel 3 # lprm -P lpforu 3 # enq -P lpforu -x 3 5. 使用 qchk 命令检查打印队列的状态。 14.7 如何检查打印假脱机程序 检查一个打印假脱机程序可以使用各种不同的命令。本节主要介绍 lpstat 命令以及你可 以使用的一些标记。enq 命令也有类似的功能。 在表 14-4 中给出了 lpstat 命令可使用的一些标记,并且只要有,也同时列出了等价的 enq 命令。 表 14-4 lpstat 命令标记和等价的 enq 命令 标记 等价 enq 命令 描述 -aList enq -q -P Queue1 提供队列的状态和作业信息。 -d enq -q 显示 lp 命令的系统缺省目的地的状态信息。 -oList 显示打印请求或打印队列的状态。 -pList 显示打印机的状态。 -r enq -A 提供队列的状态和作业信息。 -s enq -A 显示状态汇总,包括打印机及其关联设备的列表。 -t enq -AL 显示所有状态信息,包括打印机及其关联设备的列表。 -uList enq -u 打印在 List 中指定的用户的所有打印请求的状态。List 是登录名的一个 列表。 -vList 打印打印机的状态。List 变量是打印机名的一个列表。 下面是使用 lpstat 命令及不同的标记设置来获得打印队列 lpforu 的状态的例子: lpstat -t 命令的输出与 lpstat -u 及 lpstat -p 命令的输出基本一样,唯一不同之处在于它 除了给出队列文件外,还给出了文件在队列中的时标(time stamp)。 14.8 设置打印机超时 在一台打印机上设置超时是为了指定系统等候打印机上的一个操作完成的时间(秒数)。 值必须大于零(0)。缺省值是基于你所选择的设备计算出来的。 这个选项可以用在下面两种情形中: - 在一个大型网络中有很多用户在使用打印机。 第 277 页 - 在一个网络中,打印机与服务器之间相隔很远或在不同地点。 下面的例子显示 lpstat 命令的输出表明打印机超时时间必须被增加。 为了增加打印机超时,使用下面的 SMIT 快速路径: smitty spooler 在 Print Spooling 菜单中,选择 Change / Show Printer Connection Characteristics, 如图 14-10 所示。 图 14-10 Print Spooling 菜单 在 Change/Show Printer Connection Characteristics 子窗口中,选择打印机所连接的 位置。在图 14-11 中,local 被使用。 第 278 页 图 14-11 Print Spooling - Change/Show Printer Connection Characteristics 在图 14-12 中显示的是 Local Printers 选择子菜单。这里你选择 lp0 Available 01-d0-00-00 Other parallel printer,然后按回车。 图 14-12 Print Spooling 菜单 - Local Printers 一旦所有项都选择完毕,你便进入 Change/Show Printer Connection Characteristics 菜 单,如图 14-13 所示。这里你选择 Printer TIME OUT period (seconds) 并修改它,在这个 例子中,改为 60 秒。 第 279 页 图 14-13 Change/Show Printer Connection Characteristics 菜单 一旦命令完成,你将看到 COMMAND STAUS 菜单,如图 14-14 所示,它显示了命令 完成的状态。 图 14-14 修改打印机连接特征后的结果 14.9 基本打印机诊断检查表 本节给出了一些故障解决的提示。这里给出的不是一个完整列表,但是它将帮助你解决 一些较常见的问题。 - 确认 qdaemon 在运行。确保没有被分叉的进程在从 qdaemon 运行。 - 确保系统日期正确。当 qconfig 文件发生变化后,qdaemon 会自动重建 /etc/qconfig.bin 文 件。如果在 qconfig 文件上的日期比 /etc/qconfig.bin 文件上的日期还早,qconfig 文件不第 280 页 会被理会,即使它是刚被修改过的。使用 enq -Y 命令重新应用 qconfig 文件。 - 如果 /etc/qconfig.bin 文件和 /etc/qconfig 文件的日期都正确,并且对 qconfig 文件的修改 也正确,可能是 /etc/qconfig 文件不再被链接到 /usr/lpd/qconfig 文件。 - 检查 /tmp 目录是否已满。如果你接收到一个消息,如 No Virtual Printers Defined,或者 如果你不能从 InfoExplorer 打印,则可能是 /tmp 目录已满。 - 如果只有 root 用户可以打印,检查 /tmp 目录的许可权。同时,检查被使用的打印命令(包 括 enq)的许可权。 - 检查在 /var/spool/lpd/qdir 文件中是否有过时的队列名。如果一个队列已被从新的 /etc/qconfig 文件中删除,而被发出的打印请求中使用的还是过时的队列名,那么安装新 的 /etc/qconfig 文件时就会发生问题。在这种情况下 qdaemon 会记录一个错误消息。你 必须确定该消息是否指的是一个旧的队列。如果是,则问题将一直持续到你从 /var/spool/lpd/qdir 文件中删除过时队列的记录为止。 - 如果被远程打印命令请求的操作员注意(operator-attention)消息没有被接收到,检查线 路插座是否连接好及主机名是否可以被 ping 到。 14.10 测验 下面的认证评测问题将帮助检验你对本章内容的理解。 1. The Widget Company has installed a new laser printer on their network. The RS/6000 has been configured to print to that printer using the pcl queue. A print job was submitted to the pcl queue and was running until the printer ran out of paper. The printer was offline for 30 minutes before the paper was added. What needs to be done to continue the print job? A. enable pcl B. startsrc -s lpd C. refresh -s lpd D. resubmit the job 下面是作者提出的一些附加问题,以进一步检查你对本章内容的理解。 1. To list the print job 120 on printer lineprinter, which command would you use? A. qchk -P lineprinter B. qcan 120 C. ps lineprinter D. lsdev lineprinter |grep 120.Chapter 14. Printing 411 2. To print the file /etc/host to the printer lineprinter, which command would you use? A. lpr /etc/hosts -P lineprinter B. lpstat lineprinter C. lprm /etc/hosts -P lineprinter D. print /etc/hosts 第 281 页 14.10.1 答案 下面是对评测问题的回答。 1. A 下面是对附加问题的回答。 1. A 2. A 14.11 练习 以下的练习是为自学提供的例题。它们将帮助你加深对本章的理解。 1. 创建一个新的打印队列,名为 3k120。 2. 解释 /etc/qconfig 文件。 3. 启动打印队列 3k120。 4. 停止打印队列 3k120。 5. 把打印机上的 Time Out 修改为它原先 Time Out 的两倍。 6. 检查使用四个不同打印命令的打印队列。 7. 刷新一个打印作业。 第 282 页 第十五章 Sendmail 和 e-mail 邮件设施(mail facility)为在相同系统上或在多个通过网络互联的系统上的用户之间交换 电子邮件(electronic mail)提供了一种方式。本章将讨论邮件配置任务、邮件配置文件、 邮件别名及邮件日志。 15.1 邮件系统概述 邮件系统是一种互联网络邮件传递机制,由用户界面、消息路由程序和消息传递程序(或 称邮寄程序)组成。 邮件用户界面使用户可以创建消息、发送消息和接收来自其他用户的消息。 邮件系统 提供两种用户接口,mail 和 mhmail。mail 命令是UNIX系统上使用的标准邮件用户界面。 mhmail 命令是消息处理程序(Message Handler,MH)用户接口,它是一个增强的邮件用 户接口,为富有经验的用户而设计。 消息路由程序把消息路由到目的地。邮件系统的消息路由程序是 sendmail 命令(一个 伺服程序)。 根据到目的地的路由的不同类型,sendmail 命令使用不同的邮寄程序(mailer)传递消 息,如图 15-1 所示。 图 15-1 邮件系统概览 为了传递本地邮件,sendmail 程序把消息路由给 bellmail 程序。bellmail 程序通过把消第 283 页 息附加到用户的系统邮箱(mailbox)中实现所有本地邮件的传递,而用户的系统邮箱位于 /var/spool/mail 目录中。 为了在一条 UUCP(UNIX-to-UNIX Communication Protocol)链路上传递邮件, sendmail 程序使用基本网络工具(Basic Network Utilities,BNU)来路由消息。 为了传递传输控制协议 / 因特网协议( Transmission Control Protocol/Internet Protocol, TCP/IP)路由的邮件,sendmail 命令建立一条 TCP/IP 连接到远程系统,然后使用简单邮件 传输协议(Simple Mail Transfer Protocol,SMTP)把消息传输给远程系统。 图 15-2 显示了一个系统管理员的邮件管理任务。 图 15-2 邮件管理任务 15.2 邮件伺服程序(Mail daemons) 以下是对邮件伺服程序(mail daemons)的一个描述: Sendmail daemon 一个消息路由程序,把消息路由到它们的目的地。邮件系统的消息 路由程序为 sendmail 命令,它是基本操作系统(BOS)的一部分, 并伴随 BOS 一同被安装。sendmail 命令是一个伺服程序,它根据存 在在 /etc/sendmail.cf 文件,/etc/aliases 文件,和 /etc/sendmail.nl 文 件中的信息来执行必要的路由。 Syslogd daemon sendmail 命令通过 syslogd daemon 记录邮件系统的活动。为了 使记录能够发生,syslogd daemon 必须被配置并运行。请参考第 15.4 节“邮件日志”以了解更多有关 syslogd daemon 的信息。 15.2.1 启动 sendmail daemon 为了启动 sendmail daemon,输入以下的任一个命令: startsrc -s sendmail 或 /usr/lib/sendmail 当你输入上面命令中的一个时,如果系统发现 sendmail daemon 已经是活动的,你将 在屏幕上看到下面的消息: The sendmail subsystem is already active. Multiple instances are not supported . 如果 sendmail daemon 还没有被激活,那么系统将会产生一个表明 sendmail daemon 第 284 页 已经被启动的消息。 15.2.2 停止 sendmail daemon 为了停止 sendmail daemon,执行 stopsrc -s 命令。如果 sendmail daemon 不是由 startsrc 命令启动的,则使用下面的命令,先找到 sendmail 的 PID,然后杀掉该进程: ps -ef | grep sendmail kill -9 sendmail_pid 15.2.3 刷新 sendmail daemon 为了刷新 sendmail daemon,输入命令: refresh -s sendmail 15.2.4 获取 sendmail daemon 的状态 下面的例子显示如何使用 lssrc 命令及 -s 标记得到 sendmail daemon 的状态。状态可 以是活动的(active)或不起作用的(inoperative)。 # lssrc -s sendmail Subsystem Group PID Status sendmail mail 5422 active 15.2.5 sendmail daemon 的自动启动(/etc/rc.tcpip) 为了配置 /etc/rc.tcpip 文件以便使 sendmail daemon 在系统引导时就被启动: 1. 编辑 /etc/rc.tcpip 文件。 2. 找到以 start /usr/lib/sendmail 开始的行。缺省情况下,这行应当未被注释,也就是说, 在行的开头没有 # (井号)。但是,如果这行是被注释的,则删掉开头的英镑符。 15.2.6 在 sendmail 中指定时间值(在 rc.tcpip 中) 处理邮件队列的时间间隔是由启动 daemon 时的 -q 标记的值决定的。sendmail daemon 通常是在系统启动时被 /etc/rc.tcpip 文件启动的。/etc/rc.tcpip 文件包含一个叫作队 列处理间隔(queue processing interval,QPI)的变量,被它用来在启动 sendmail daemon 时指定 -q 标记的值。QPI 的缺省值为 30 分钟。为了定义一个不同的队列处理间隔: 1. 编辑 /etc/rc.tcpip 文件。 2. 找到为 qpi 变量分配一个值的行,如:qpi=30m 3.把分配给 qpi 变量的值修改为你希望的时间值。 这些修改将在下次系统重启时生效。如果需要使修改立即生效,可停止 sendmail daemon 并指定新的 -q 标记值重启它。 第 285 页 15.2.7 在 sendmail 中指定时间值(不在 rc.tcpip 中) 为了设置消息超时(message time-out)和队列处理间隔,你必须使用一个特定格式的 时间值。时间值的格式为:-qNumberUnit,其中 Number 是一个整数值,Unit 是单位字母。 Unit 可以使用以下各值之一: s Seconds m Minutes h Hours d Days w Weeks 如果没有指定 Unit,sendmail daemon 则使用分钟(m)作为缺省单位。这里有三个 例子。 为了每 15 天处理一次队列,使用命令: /usr/sbin/sendmail -q15d 为了每 15 小时处理一次队列,使用命令: /usr/sbin/sendmail -q15h 为了每 15 分钟处理一次队列,使用命令: /usr/sbin/sendmail -q15 15.3 邮件队列目录:/var/spool/mqueue 邮件队列是一个目录,为 sendmail 命令传递的邮件消息存放数据和控制文件。缺省邮 件队列为 /var/spool/mqueue。邮件消息可能因为各种原因被排队。首先,sendmail 命令可 能被配置为按特定时间间隔而不是立即处理队列。如果是这样,邮件消息必须被临时存储下 来。其次,如果一个远程主机没有对一个邮件连接请求作出应答,邮件系统会把消息排队, 以后再尝试发送。 15.3.1 打印邮件队列 队列的内容可以使用 mailq 命令打印出来(或通过对 sendmail 命令指定 -bp 标记)。这 样会产生一个包含队列 ID 号、消息大小、消息进入队列的日期及发送者和接收者的列表。 15.3.2 邮件队列文件 邮件队列目录 /var/spool/mqueue 包含四种邮件队列文件: - 数据文件 - 控制文件 - 临时文件 - 副本文件 队列中的每个消息都有一个文件编号与之相关联。例如,假设一个消息的队列 ID 为 AA00269,当 sendmail 命令试图传递这个消息时,下面的文件会被创建和删除于邮件队列第 286 页 目录中。 dfAA00269 数据文件 qfAA00269 控制文件 tfAA00269 临时文件 xfAA00269 副本文件 15.3.3 强制邮件队列运行 在某些情况下,邮件队列成为没有响应的。为了强制一个队列运行,使用 sendmail 命 令及 -q 标记(不带任何值)。你也可以使用 –v(verbose)标记查看所发生的事情。 /usr/sbin/sendmail -q -v 15.3.4 删除邮件队列 如果一台主机停机了较长的时期,可能会有大量被路由到(或经过)该主机的消息被存 在你的邮件队列中。其结果是,sendmail 命令要花费很长的时间来分类队列,这会严重地 降低你系统的性能。如果你把队列转移到一个临时位置并创建一个新的队列,旧的队列可以 在主机恢复服务以后再运行。为了把队列转移到一个临时位置并创建一个新的队列: 1. 停止 sendmail daemon。 2. 转移整个队列目录,可输入: cd /var/spool mv mqueue omqueu 3. 重启 sendmail daemon。 4. 通过输入下面的命令可处理旧的邮件队列: /usr/sbin/sendmail -oQ/var/spool/omqueue -q -oQ 标记指定一个另选的队列目录。-q 标记指定运行队列中的每个作业。为了得到关 于运行过程的报告,可使用 -v 标记。这个操作可能要花较长时间。 5. 当队列为空后,输入下面的命令删除日志文件和临时目录: rm /var/spool/omqueue/* rmdir /var/spool/omqueu 15.4 邮件日志 sendmail 命令通过 syslogd daemon 记录邮件系统的活动。为了使记录能够发生, syslogd daemon 必须被配置并运行。 特别地,/etc/syslog.conf 文件应包含一个未被注释的行: mail.debug /var/spool/mqueue/log 如果不是这样,使用一个编辑器修改成这样;确保路径名是正确的。如果是当 syslogd daemon 在运行的时候修改了 /etc/syslog.conf 文件,输入下面的命令刷新 syslogd daemon: refresh -s syslogd 如果 /var/spool/mqueue/log 文件不存在,你必须创建它,可输入下面的命令: 第 287 页 touch /var/spool/mqueue/log 15.4.1 管理邮件日志文件 因为信息是被连续地附加在日志文件尾部的,它可能会变得非常大。同时,错误状态会 导致意想不到的记录出现在邮件队列中。为了防止邮件队列和日志增长过大,执行 /usr/lib/smdemon.cleanu 外壳脚本(shell script)。这个脚本强制 sendmail 命令处理队列, 并维护四个渐次陈旧的拷贝,分别命名为log.0、log.1、log.2 和 log.3。每次运行这个脚本, 它会转移: 1. log.2 到 log.3 2. log.1 到 log.2 3. log.0 到 log.1 4. log 到 log.0 这样日志记录可以用一个新的文件开始。手工运行这个脚本或利用 cron daemon 以特 定时间间隔运行它。图 15-3 显示的是一个典型的日志文件。其中加亮以突出显示的域, stat=Deferred,表明一个消息不能被路由到目的地。 图 15-3 /var/spool/mqueue/log 文件 15.4.2 记录邮寄程序统计信息 sendmail 命令跟踪被每个与它有接口的邮寄程序(这些邮寄程序被定义在 /etc/sendmail.cf 文件中)所处理的邮件的量。 为了开始积累邮寄程序的统计数据,输入下面的命令创建 /var/tmp/sendmail.st(确切 的路径请参考 sendmail.cf 文件)文件: touch /var/tmp/sendmail.st 每次处理邮件时,sendmail 命令就会更新该文件中的信息。文件的大小不会增长,但 是文件中的数值会增加。它们代表自从你创建或重置 /var/tmp/sendmail.st 文件以来的邮件第 288 页 量。 15.4.3 显示邮寄程序信息 /var/tmp/sendmail.st 文件中的统计数据是以数据库格式存放的,不能被象一个文本文 件一样被阅读。为了显示邮寄程序的统计信息,输入命令: /usr/sbin/mailstats 该命令读取 /etc/sendmail.st 文件,将其格式化,并以图 15-4 所示的格式将其写到标 准输出。 图 15-4 显示邮寄程序信息 报告中的域的含义分别如下: msgs_from 包含本地机器从相应的邮寄程序(mailer)接收到的消息的个数。 bytes_from 包含本地机器从相应的邮寄程序接收到的消息的字节数。 msgs_to 包含本地机器使用相应的邮寄程序发送的消息的个数。 bytes_to 包含本地机器使用相应的邮寄程序发送的消息的字节数。 15.5 邮件别名和转发 别名把名字映射到地址列表。别名是由用户管理员在 /etc/aliases 文件中定义的。 /etc/aliases 文件包含一系列如下格式的记录: Alias: Name1, Name2, ... NameX 其中 Alias 可以是任何由你选择的字母数字串(但不能包括特殊字符如 @ 或 !)。Name1 到 NameX 是一连串一个或多个接收者的名字。/etc/aliases 文件必须包含下面三个别名(图 15-5 中显示了一个样例文件): - MAILER-DAEMON - postmaster - nobody 第 289 页 图 15-5 /etc/aliases 文件 15.5.1 创建或修改本地系统别名 为了给四个在同一部门工作的用户(John、Smith、Mary、Bob)增加 programer 别名, 执行下面的过程: 1. 编辑 /etc/aliases 文件。 2. 在一个空行上增加一个别名,跟着一个冒号(:),后面跟着一个逗号分隔的接收者列表。 例如,下面的记录定义了一个名为 programer 的别名,作为一个组中所有人的名字。 programer: john, smith, mary@sv1051c, bob@sv1051c 3. 为任何分配列表的别名创建一个属主。如果 sendmail 命令在发送邮件到一个分配列表时 有麻烦,它会给列表的属主发送一个错误消息。例如,上面这个列表的属主为系统 sv1051a 的root,通过 /etc/aliases 文件中的下面这条记录来定义: owner-programer: root@sv1051a 4. 重新编译 /etc/aliases 文件,如第 15.5.2 小节“建立别名数据库”中所描述的。 15.5.2 建立别名数据库 sendmail 命令不直接使用在本地系统 /etc/aliases 文件中的别名定义。而是读取 /etc/aliases 文件的一个被处理过的数据库管理器(database manager,dbm)版本。你可 以使用下面的方式编译别名数据库。 运行 /usr/sbin/sendmail 命令并使用 -bi 标记,或运行 newaliases。这个命令使 sendmail 命令读取本地系统 /etc/aliases 文件并创建两个包含别名数据库信息的附加文件: - /etc/aliases.dir - /etc/aliases.pag 在你成功地建立了别名数据库之后,你就可以使用mail 命令通过这个别名( programer) 来给本地系统中的用户(smith 和 john)及系统 sv1051c 中的用户(mary 和 bob)发送邮第 290 页 件,如下所示: mail programer 15.5.3 利用 /etc/aliases 转发邮件 /etc/aliases 文件也允许自动转发邮件到其他系统或本系统的其他用户。这是有帮助的, 例如,假设你在管理多个系统,并需要一个公共地址为每个系统的 root 放置邮件。为此, 你可以在 /etc/aliases 中增加一条如下格式的记录: User: Name1, Name2, ... NameX 其中 User 是一个存在于系统中的用户 ID,而 Name1 到 NameX 是一个邮件要被转发 给的用户的名字列表。 例如,假设给 root 的邮件是要被转发给 Smith 和 Bob 的,你可以在 /etc/aliases 的一 个空行中输入: root: smith, bob@sv1051c 但是这样做的话,root 不再会接收任何邮件。如果你希望在转发邮件到其他系统或本系 统的其他用户时还能使用户保留一份邮件的拷贝,在 /etc/aliases 中增加一条如下格式的记 录: User: \User, Name1, Name2, ... NameX 其中的反斜线(\)指示 sendmail 要为 User 保留一份邮件拷贝,并发送拷贝给 Name1 到 NameX。如果反斜线被省略,这将产生一个无穷的转发循环,并将导致列表中的所有名 字邮件泛滥。 例如,假设 root 的邮件要被转发给 Smith 和 Bob,而 root 需要保留一份拷贝,在 /etc/aliases 中你应输入: root: \root, smith, bob@sv1051c 在 /etc/aliases 被修改后,必须运行 /usr/sbin/sendmail -bi 或 newaliases 命令以使更改 生效,如第??38页的第15.5.2 小节“建立别名数据库”中所描述的。 15.5.4 利用 $HOME/.forward 转发邮件 通过在用户的主目录创建一个名为 .forward 的文件,也可以把邮件转发给其他系统或 同一系统中的其他用户。这对于不能编辑 /etc/aliases 文件的系统用户而言是一个有用的选 项。.forward 文件使用下面的格式: Name1, Name2, ... NameX 其中 Name1 到 NameX 是邮件要被转发给的用户的名字列表。 例如,假设 John 需要把他的邮件转发给 Smith 和 Mary,他将执行以下操作: vi $HOME/.forward 这将允许他通过 vi 在自己的主目录中创建 .forward 文件。他可以在一个空行中输入: smith, mary@sv1051c 然后,他保存并退出该文件。如果 John 需要保留一份邮件拷贝,他需要在 .forward 文 件中加入一个反斜线及自己的用户ID: \john, smith, mary@sv1051c 这里不需要运行 sendmail -bi 或 newaliases 命令以使修改生效。 任何对 .forward 文件的修改会在文件一被保存就即刻生效。为了停止邮件转发,需删第 291 页 除 .forward 文件: rm $HOME/.forward 15.5.5 把邮件转发给 /dev/null 为了给一个特定的用户 ID 自动删除邮件,可以把邮件转发给 /etc/aliases 或 $HOME/.forward 中的 /dev/null。这样做是有帮助的,例如,对于不需要积极地检查他们的 邮件的用户。为了在 /etc/aliases 中这样做,你可以输入: User: /dev/null 其中 User 是其邮件将被自动删除的用户 ID。然后你要运行 sendmail -bi 或 newaliases 以使修改生效。 为了在 $HOME/.forward 中这样做,你可以输入: /dev/null 15.6 邮件定址 邮件被发送到一个用户的地址。你如何对发给另一个用户的邮件定址取决于那个用户相 对于你的系统的位置,即取决于你是否在发送邮件: - 给你本地系统上的用户。 - 给你的网络上的用户。 - 给另一个网络上的用户。 - 通过一个 BNU 或 UUCP 链路。 15.6.1 为发往本地系统用户的邮件定址 为了给在你的本地系统上的一个用户(即其登录名被列在你的 /etc/passwd 文件中)发 送消息,使用其登录名作为地址。你可以在系统命令行提示符下使用mail命令,方法如下例 中所示: mail LoginName 如果 smith 在你的系统上,并且登录名为 smith,那么你使用的命令为: mail smith 15.6.2 为发往本网络用户的邮件定址 为了通过本地网络给在另一个系统上的用户发送消息,在命令行输入: mail LoginName@SystemName 例如,john 是在系统 sv1051c 上,使用下面的命令创建并发送一个消息给他: mail john@sv1051c 第 292 页 15.6.3 为发往其他网络用户的邮件定址 如果你的网络是与其他网络相连的,你可以给其他网络上的用户发送邮件。地址参数则 各不相同,这取决于你的网络和其他网络之间是如何相互定址的以及它们是如何互联的。 使用一个名字和地址的中央数据库: 以下例中显示的方式使用 mail 命令: mail LoginName@SystemName 使用域名定址 以下例中显示的方式使用 mail 命令: mail LoginName@SystemName.DomainName 例如,为了给一个位于远程的域名为 in.ibm.com 的网络上的用户 john 发送一个邮件, 使用下面的命令: mail john@in.ibm.com 15.6.4 为通过 BNU 或 UUCP 链路的邮件定址 为了给在另外一个通过 BNU 或其他版本的 UUCP 与你的系统连接的系统上的用户发 送消息,你必须知道他的登录名、另一个系统的名字以及到另一个系统的物理路由。 当你的计算机上具有一个 BNU 或 UUCP 链路时,你可以使用如下例所示的命令: mail UUCPRoute!LoginName 当 BNU 或 UUCP 链路是在另外一台计算机上,使用 mail 命令如下所示: mail @InternetSystem:UUCPSystem!username 请注意在这个格式中,你不是在给任何中间系统上的某个用户发送邮件;在域地址中的 @ 前面没有登录名。 15.7 存放邮件 依据特定的情形,邮件被以不同的方式存放,如图 15-6 中所示。邮件程序使用以下类 型的邮箱(mailboxes)或邮件夹(folders): System mailbox 位于 /var/spool/mail 目录中,且每个系统邮箱被以与之相关联的 用户 ID 命名。例如,如果用户 ID 为 smith,则系统邮箱为 /var/spool/mail/smith。当发给某个用户 ID 的邮件到达时,它被放置 在相应的系统邮箱中。shell 负责检查新邮件并在用户登录进来时发 出下面的消息:YOU HAVE NEW MAIL Personal mailbox 每个用户有一个个人邮箱。当用户使用 mail 命令读邮件时,如果 邮件没有被存入一个文件中或者被删除,则它被写入用户的个人邮 箱 $HOME/mbox ($HOME 为缺省登录目录)。例如对于用户 ID smith,个人邮箱为 /home/smith/mbox。 dead.letter file 如果用户中断了正在创建的消息而去完成其他任务,系统把未完成 的消息存入用户主目录($HOME)中的 dead.letter 文件。例如对于 用户 ID smith,/home/smith/dead.letter 是他的 dead.letter 文件。 Folders 为了以一种组织化的方式存放邮件,用户可以使用邮件夹。消息可 第 293 页 以被从系统邮箱或个人邮箱中取出并放入用户的个人邮件夹中,如 图 15-6 所示。 mail 命令可以被加上不同的标记使用,如下所示: mail 显示系统邮箱。 mail -f 显示你的个人邮箱(mbox)。 mail -f+folder 显示一个邮件夹。 mail user@address 对消息定址以发送给指定用户。 图 15-6 邮件的消息路径 15.8 邮件管理员的参考 本节对不同的邮件命令、文件和目录提供了一个快速参考。 15.8.1 邮件命令列表 以下列出的是使用和管理邮件程序的命令。 mailq 打印邮件队列的内容。 第 294 页 mailstats 显示邮件流量的统计。 newaliases 从 /etc/aliases 文件建立别名数据库的新拷贝。 sendmail 为本地或网络传递提供邮件路由。 smdemon.cleanu 为定期的内务处理清除 sendmail 队列。 15.8.2 邮件文件和目录列表 以下是按功能分的文件和目录的列表。 使用邮件程序 $HOME/.mailrc 使用户能够为邮件程序修改本地系统缺省值。 $HOME/mbox 为各个用户存放被处理过的邮件。 /usr/bin/Mail, /usr/bin/mail 和 /usr/bin/mailx 指定链接到同一个程序的三个名字。邮件程序是邮件系统的用户接 口之一。 /var/spool/mail 指定缺省的邮件丢弃目录。缺省所有邮件都被传递给 /var/spool/mail/UserName 文件。 /var/spool/mqueue 包含与邮件队列中的消息有关的日志文件和临时文件。 使用 sendmail 命令 /usr/sbin/sendmail sendmail 命令。 /usr/ucb/mailq 链接到 /usr/sbin/sendmail。使用 mailq 等价于使用 /usr/sbin/sendmail -bp 命令。 /usr/ucb/newaliases 链接到 /usr/sbin/sendmail 文件。使用 newaliases 等价于使 用 /usr/sbin/sendmail -bi 命令。 /usr/sbin/mailstats 格式化并打印在 /etc/sendmail.st 文件中找到的 sendmail 统 计,如果该文件存在的话。/etc/sendmail.st 文件是缺省的, 但是 你可以指定另一个文件。 /etc/aliases 为 sendmail 命令描述别名文件的一个文本版本。你可以编辑 这个文件以便在系统中增加、修改或删除别名。 /etc/sendmail.cf 包含 sendmail 配置信息,以文本格式。编辑该文件可修改这 个信息。 /etc/sendmail.cfDB 包含 /etc/sendmail.cf 配置文件的已被处理的版本。当你使用 /usr/sbin/sendmail -bz 命令时,这个文件被从 /etc/sendmail.cf 文件创建。 /etc/sendmail.nl 包含 sendmail 的民族语言支持(NLS)的配置信息,以文本 格式。编辑该文件可修改这个信息。 /usr/lib/smdemon.cleanu 指定一个运行邮件队列及在 /var/spool/mqueue 目录中维护 sendmail 日志文件的 shell 文件。 /var/tmp/sendmail.st 收集有关邮件流量的统计。该文件不会增大。使用 /usr/sbin/mailstats 命令可显示该文件的内容。 /var/spool/mqueue 描述一个包含与队列中每个消息有关联的临时文件的目录。目 录中可以包含日志文件。 第 295 页 15.9 测验 下面是作者提出的一些问题,以进一步检查你对本章内容的理解。 1. A Company would like to create an e-mail alias on an AIX workstation that will forward e-mail to a user on another workstation for collection of data. The system administrator would like to add this entry to the /etc/aliases file. Which of the following actions should be performed in order for the change to take affect? A. Reboot the workstation. B. Run the mailq command. C. Stop and start TCP/IP. D. Use the sendmail command. 2. A system administrator wants to process a mail queue after every 45 minutes. Which of the following commands should be used if the change must take effect immediately and be permanent? A. sendmail -q45d B. sendmail -q45h and also edit /etc/rc.tcpip to change qpi=45h C. sendmail -q45 and also edit /etc/rc.tcpip to change qpi=45m D. sendmail -q45 3. All mail sent to root on system mars needs to be redirected to user administrator on system earth. Prior to running the newaliases command, which command should be run to accomplish this goal? A. On system earth, run the command: echo "mars:earth">>/etc/hosts B. On system mars, run the command: echo "root:admin@earth">> /etc/aliases C. On system mars, run the command: echo "root:admin@earth">> /etc/sendmail.cf D. On system earth, run the command: echo "root:admin@earth">> /etc/sendmail.cf 15.9.1 答案 1. D 2. C 3. B 15.10 练习 以下的练习是为自学提供的例题。它们将帮助你加深对本章的理解。 1. 显示你的系统中的 sendmail daemon 的状态。如果 sendmail daemon 不是活动的,则启 动它。 2. 找到 /etc/rc.tcpip 文件中对于在系统引导期间启动 sendmail daemon 的记录。 第 296 页 3. 定制 sendmail daemon,使之每 45 分钟处理一次邮件队列。使这个修改立即生效。 4. 为你部门的所有用户定义一个别名并编译别名数据库。编译该数据库。 5. 停止 sendmail daemon。 第 297 页 第十六章 在线文档 AIX Version 4.3 及以后版本中为基于 Web 的文档提供了一个可选的安装组件—— 文档 搜索服务(Documentation Search Service)。它提供了一个显示在你的 Web 浏览器上的搜 索表格,允许你搜索在线 HTML 文档。当你在搜索表格中敲入词句后,它会搜索该词句, 然后呈现出一个搜索结果页面,其中包含有导向包含目标词句的文档的链接。 你可以把单位里的一个 AIX 系统建立为文档服务器,而其他所有系统则作为文档客户 端。 这样文档就只需要安装在一个系统中,而所有其他系统都能访问这个系统,并不需要 把文档安装在本地。为了实现一套完整的服务,你需要安装下面的产品和组件。 - 对于客户端: a. 一个 Web 浏览器 b. bos.docsearch.client.* 文件集(为 AIX 集成) - 对于文档服务器(同时可作为一个客户端) a. 整个 bos.docsearch 软件包 b. 文档库 c. 一个 Web 浏览器 d. 一个 Web 服务器 所安装的浏览器必须是具有表格能力的浏览器,并且 Web 服务器必须是遵从 CGI 的。 如果你在计划把你自己的文档集成到文档服务器上,你还需要建立文档索引。 除了在第??39页的第 16.6 节“调用文档搜索服务”中描述的端用户任务,你需要具 有 root 授权才能执行安装和配置任务。 有多种方式用于安装文档、 Web服务器和文档搜索服务。你可以使用 Configuration Assistant TaskGuide、Web-Based Systems Management 或 SMIT。 对于一个非技术用户而言,安装和配置文档搜索服务最简单的方式就是使用 Configuration Assistant TaskGuide。为了运行 Configuration Assistant TaskGuide,可使用 configassist 命令,然后选择标题为 Configure Online Documentation and Search 的项目。 如果你更宁愿手工安装文档搜索服务,你可以使用 SMIT。 16.1 安装 Web 浏览器 使用 smitty install_latest 安装 Netscape,它在 AIX Version 4.3 或以后版本的 Bonus Pack 光盘中都有提供。使用 smit list_installed 检查你是否已安装了下面的文件集,如图 16-1 所示。 第 298 页 图 16-1 Netscape 文件集 如果你在从其他来源安装 Netscape 浏览器,或者你在安装其他 Web 浏览器,请按照 软件所附带的安装指导进行。注意如果你的产品来源不是 installp 格式的,那么在 ODM 中 将不会有任何记录。 16.2 安装 Web 服务器 你可以安装任何遵从 CGI 的 Web 服务器。我们这里使用的是 Lotus Domino Go Webserver。在 AIX Version 4.3 或以后版本的 Bonus Pack 光盘中,有一张上面提供了该 软件。 文档搜索服务使用它自己的搜索引擎 CGIs。因此,你不需要安装 NetQ 文件集。图 16-2 显示了被安装的文件集。 第 299 页 图 16-2 Domino Go Webserver 文件集 如果你在从其他来源安装 Domino Go Webserver,或者你在安装其他的 Web 服务器, 请按照软件所附带的安装指导进行。注意如果你的产品来源不是 installp 格式的,那么在 ODM 中将不会有任何记录。 16.3 安装文档搜索服务 文档搜索服务是在 AIX Version 4.3 及以后版本的安装光盘中。为一个客户端 AIX 映像 安装客户部分,或者为一个文档服务器安装整个 bos.docsearch 软件包。 下面的文件集是安装其他文档搜索服务文件集(如 IMNSearch)的先决条件: - bos.docsearch.client.Dt - bos.docsearch.client.com - bos.docsearch.rte 对于文档客户端,你只需要一个 Web 浏览器。安装 bos.docsearch.client 文件集将为 你生成 CDE 桌面图表和 docsearch 命令。请参考第 16.6 节“调用文档搜索服务”以了解更 多细节。 使用 smit list_installed 检查你是否已经安装了下面的文件集,如图 16-3 所示。 图 16-3 Documentation Search Service 文件集 16.4 配置文档搜索服务 使用 wsm 或 smitty 配置文档搜索服务。如果你使用 Configuration Assistant TaskGuide 来安装和配置文档搜索服务,你将不需要执行任何进一步的配置。 如果使用 wsm,请双击 Internet Environment 图标,或者你也可以使用 smit web_configure 配置下列各项: - Change / Show Default Browser(修改 / 显示缺省浏览器) 敲入启动你希望适用于这台计算机上所有用户的缺省浏览器的命令,例如 第 300 页 /usr/prod/bin/netscape。这将把 /etc/environment 变量 DEFAULT_BROWSER 设置为你 所敲入的字串。 - Change Documentation and Search Server(修改文档和搜索服务器) 你可以定义文档搜索服务器的位置为: - None – 取消将此服务器作为文档搜索服务器 - Remote computer – 远程计算机 敲入远程文档服务器的名字。缺省的 TCP/IP 端口地址为 80。将其修改为文档服务 器所使用的端口地址。 - Local – 这台计算机 如果你在缺省位置中使用 Lotus Domino Go Webserver 或 IBM Internet Connection Server,cgi-bin 目录和 HTML 目录的所有缺省设置将被为你填好。如果你 在使用其他 Web 服务器,或者你没有使用缺省位置,你将必须手工填写 Web 服务器 所需要的 cgi-bin 目录和 HTML 目录。你可以修改服务器使用的端口地址。如果你修改 了端口地址,则你必须为所有文档客户端配置相同的端口地址。 16.5 安装在线手册 你可以安装文档信息到硬盘上,或装载文档光盘到光驱中。装载光盘可以节省一定的硬 盘空间,但是它要求光盘总是被放在光驱中。而且,从光驱搜索文档信息明显会比从硬盘上 搜索信息慢得多(在某些时候甚至慢上 10 倍)。另外,有两种文档光盘: - AIX Base Documentation CD-ROM - AIX Extended Documentation CD-ROM 使用 smit install_latest 安装在线手册到硬盘上。bos.docregister 文件集是所有在线手册的 先决条件。当你初次安装任何在线手册时它都会被自动安装,即使你并没有选择该文件集。 注意:位于 AIX Version 4.3 或以后版本的 Base Documentation 和 Extended Documentation 光盘上的安装映像中不包含 HTML 文件。这些文件被单独放置在允许从非 AIX 平台访问的光盘上。从该光盘安装映像是正确的;然而,单独地把安装映像拷贝到另一 个位置则不足以完成一次正确的安装。 16.6 调用文档搜索服务 配置完文档搜索服务后你必须退出并重新登录,这样你才能使在配置过程中设置的环境 变量起作用。 如果你在运行 CDE 桌面环境,双击 Application Manager 窗口中的 Documentation Search Service 图标。 另外,你也可以使用 docsearch 命令调用文档搜索服务。你的 Web 浏览器将启动,并 且你将看到 Documentation Search Service 页面。在本文中,Netscape 被用作缺省的 Web 浏览器。 你不用安装 docsearch 客户端组件便可以调用文档搜索服务。你甚至不需要从一台 AIX 机器上调用文档搜索服务。你只需要先调用浏览器并输入下面的 URL: http://server_name[ :port_number ]/cgi-bin/ds_form 这个 URL 指向文档服务器上的一个全局搜索表格,其中远程服务器的名字由 server_name 给出。port_number 只有当端口不等于 80 时才需要被输入。 第 301 页 如果以前你没有运行过 Netscape,那么当 Netscape 在你的主目录中设置环境时会显 示一系列信息性消息和窗口。这是第一次使用 Netscape 时的标准行为。下一次你启动 Netscape 时这些消息就不会再显示了。 Documentation Search Service 页面的上面部分允许你指定你的搜索条件,而下面部分 则显示了被安装的在线手册。图 16-4 显示的是只安装了命令参考手册和编程指导手册的文 档搜索服务页面。 图 16-4 Documentation Search Service 如果你启动 Documentation Search Service 时有问题,检查下面的环境变量是否正确。 这些环境变量可以被使用 SMIT 设置、显示和修改。启动 SMIT,选择 System Environments, 然后选择 Internet and Documentation Services。 - 在客户端机器上: a. 手工调用 Web 浏览器并输入下面的 URL http://server_name[:port_number ]/cgi-bin/ds_form 以确定服务器已被启动并正在运 行。 b. 确定 DEFAULT_BROWSER 变量是被设置为启动你的 Web 浏览器的命令。 使用命令 echo $DEFAULT_BROWSER 找出用于启动浏览器的命令。通过手工从命 令行输入该命令来测试它是否能够启动浏览器。 c. 确定 DOCUMENT_SERVER_MACHINE_NAME 变量是被设置为文档服务器的主机 名或 IP 地址。 d. 确定 DOCUMENT_SERVER_PORT 变量是被设置为文档服务器所使用的端口地 第 302 页 址。 - 在服务器机器上: a. 确定 DEFAULT_BROWSER 变量是被设置为启动你的 Web 浏览器的命令。 使用命令 echo $DEFAULT_BROWSER 找出用于启动浏览器的命令。通过手工从命 令行输入该命令来测试它是否能够启动浏览器。 b. 确定 DOCUMENT_SERVER_MACHINE_NAME 变量是被设置为本地主机名。 c. 确定 DOCUMENT_SERVER_PORT 变量是被设置为本地 Web 服务器所使用的端口 地址。 d. 确定 CGI_DIRECTORY 变量是被设置为本地 Web 服务器所使用的正确的 cgi-bin 目 录。 e. 确定 DOCUMENT_DIRECTORY 是被设置为象征性链接 doc_link 和 ds_images 所在 的目录。如果你没有修改缺省值,它应当是位于 /usr/lpp/internet/server_root/pub 目 录中,对 于 IBM Internet Connection Server 和 Lotus Domino Go Web Server 均如此。 f. 如果你没有使用缺省的目录,确保你已经在你的 Web 服务器配置文件中定义了必要的 目录映射,这样目录才能被解析。 16.7 测验 下面是作者提出的一些问题,以进一步检查你对本章内容的理解。 1. By installing the Documentation Search Services client fileset, the following will be made available to your AIX Version 4.3 system: A. CDE icon B. Web browser C. docsearch command and CDE icon D. info command and CDE icon 2. From a forms-capable Web browser, the URL used to access the online documentation server on an AIX Version 4.3 system is: A.http://server_:port_number/cgi-bin/ds_form B.http://server_:port_number/cgi-bin/docsearch C.http://server_:port_number/cgi-bin/info D.http://server_:port_number/cgi-bin/man 16.7.1 答案 1. C 2. A 16.8 练习 以下的练习是为自学提供的例题。它们将帮助你加深对本章的理解。 1. 安装一个 Web browser。 2. 安装一个 Web server。 第 303 页 3. 安装 Document Search Services 文件集。 4. 安装一些在线手册。 5. 配置 document search service。 6. 使用 docsearch 命令及从其他系统中的一个 Web browser 上访问在线手册。 第 304 页 第十七章 AIXwindows 字体服务器 XFS 为 AIXwindows 字体服务器子系统(在 AIX Version 4.3 以前,它被称为 fs),它对 AIXwindows 显示服务器提供字体库。在以下各节中,将讨论与管理字体服务器有关的主题。 注意:为了使用 AIXwindows 字体服务器,X11.fnt.fontserver 文件集必需被安装。 17.1 XFS 服务器的中断 xfs 服务器对下列信号作响应: SIGTERM 使字体服务器干净地退出。 SIGUSR1 使服务器重新读取它的配置文件。 SIGUSR2 使服务器刷新它可能有的任何被高速缓存的数据。 SIGHUP 使服务器重置,关闭所有活动连接并重新读取配置文件。 服务器通常是被一个系统管理员运行,并是以引导文件的方式启动的,如 /etc/rc.tcpip。 用户可能也希望为特定的字型集启动专用的字型服务器。 配置语言是一些关键词和值的一个列表。每个关键词后面跟着一个 =(等于号)和所希望 的值。 17.2 XFS 关键词 表 17-1 显示了被认可的关键词及其有效值的类型和描述。 表 17-1 XFS 关键词 关键词 描述 # 当放置在第一列中时为注释符。 catalogue (List of string) 字体路径元素名的有序列表。目前只支持一个 catalogue(“ all”),其中包含 所有指定的字体。 alternate-servers (List of string) 对这个字体服务器的可替换的服务器的列表。 client-limit (Cardinal) 这个字体服务器在拒绝服务之前可支持的最大客户数。这可用于调整每个字体 服务器上的负荷。 clone-self (Boolean) 当达到客户数限制时,这个字体服务器是否应当尝试复制自己 default-point-size (Cardinal) 当不指定时,字体缺省的点大小(分点数)。 default-resolutions (Series) 服务器缺省支持的分辨率。这个信息可以用作预先表现的一个提示,及用来替 代没有指定分辨率的比例字型(scaled fonts)。一个分辨率其实是一个用逗号 分隔的 x 和 y 分辨率对,计量单位为每英寸的像素数。用逗号分隔多种分辨 率。(??114) error-file (String) 错误文件的名字。所有警告和错误都被记录在此。 port (Cardinal) 服务器在哪个 TCP 端口上侦听连接。缺省为 7100。 use-syslog (Boolean) 是否使用 syslog 功能(在所支持的系统上)记录错误。 deferglyphs (String) 设置延迟提取和捕捉图示符的模式。String 可以为 none,意思是禁止延迟的 图示符(deferred glyphs );或者为 all,意思是对所有字型允许延迟的图示符; 也可以为 16,意思是只有对 16 位字型允许延迟的图示符。 第 305 页 17.3 XFS 格式约定 可以使用以下格式中的一种来命名一个接受 TCP 连接的字体服务器。 tcp/hostname:port tcp/hostname:port/cataloguelist hostname 指定运行字体服务器的机器的名字(或点分十进制数字地址)。 port 是字体服 务器侦听连接所用的十进制 TCP 端口号。cataloguelist 指定一个 catalogue 名的列表,使 用 '+' 作为分隔符。下面有一些例子: tcp/expo.lcs.mit.edu:7100, tcp/18.30.0.212:7101/all 可以使用以下格式中的一种来命名一个接受 DECnet 连接的字体服务器。 decnet/nodename::font$objname decnet/nodename::font$objname/cataloguelist nodename 指定运行字体服务器的机器的名字(或点分十进制数字地址)。 objname 是一 个常规的大小写无关的 DECnet 对象名。cataloguelist 指定一个 catalogue 名的列表,使用 '+' 作为分隔符。 17.4 XFS 命令标记 表 17-2 显示了 xfs 命令使用的标记。 表 17-2 xfs 命令标记 标记 描述 -cf ConfigurationFile 指定字体服务器将使用的配置文件。 -ls ListenSocket 指定一个已经被设置为用作侦听接口的文件描述符。这个选项只能在字体服务器自 动产生它自己的另一个拷贝用以处理额外的连接时被它自身使用。 -port Number 指定服务器用来侦听连接的 TCP 端口号。 17.5 字型服务器举例 以下是 /usr/lib/X11/fs/config 文件的一个例子。任何对字体服务器的修改都要在这个文件 中进行。 第 306 页 一旦你对 /usr/lib/X11/fs/config 文件作了修改,然后你要运行下面的命令: xfsconf 当这个脚本被运行时,你可以通过输入下面的命令启动 fontserver 子进程: startsrc -s xfs 0513-059 The xfs Subsystem has been started. Subsystem PID is 19746. 在这个例子中,系统给字体服务器子系统分配的 PID 为 19746。 17.6 测验 下面的认证评测问题将帮助检验你对本章内容的理解。 1. A system administrator uses the startsrc command to start the font server and gets the following message: subsystem not on fil Which of the following is the proper way to make this subsystem available? A. Run the definesrc -s xfs command. B. Run the fsconf script and then run startsrc -s xfs command. C. The font server can not be controlled by the system resource //controller. D. Run the startsrc -s xfs command and then refresh -s inetd command. 17.6.1 答案 1. B 第 307 页 17.7 练习 以下的练习是为自学提供的例题。它们将帮助你加深对本章的理解。 1. 配置和启动字体服务器。 2. 理解字体被放置的不同位置。 3. 安装一个双字节编码页并尝试使用它。 第 308 页 相关的出版物 本节所列的出版物被认为是特别适合作为对这本 redbook 中所涵盖的主题的更为详细的论 述。 IBM Redbooks 如果想更详细地了解如何购买这些出版物,请阅读第??页的“如何获得 IBM Redbooks”。 其他资源 下面这些出版物也是更多相关信息的来源: ? AIX 5L Version 5.1 Installation Guide, SC23-4374 ? AIX Version 4.3 Messages Guide and Reference, SC23-4129 ? 你可以用下面的 URL 通过 Internet 访问所有的 AIX 文档: http://www.ibm.com/servers/aix/library 下列类型的文档可以在 AIX 操作系统附带的产品光盘中找到: – 用户指南 – 系统管理指南 – 应用编程指南 – 所有命令参考卷 第 309 页 – 文件参考 – 应用编程员使用的文件参考卷 相关的 Web 站点 以下这些 Web 站点也是更多相关信息的来源: ? 主要 IBM 认证 URL。 http://www.ibm.com/certify ? AIX 基本光盘。 http://www.ibm.com/services/learning/spotlight/pseries/cdrom.html ? 可下载的 AIX 修复。 http://service.software.ibm.com 如何获取 IBM Redbooks 可从 Redbooks Web 站点搜索更多的 Redbooks 或 Redpieces,浏览、下载 或购买硬拷贝: ibm.com /redbooks 也可以从下面这个 Redbooks 站点下载更多资料(code samples or diskette/CD-ROM images)。 Redpieces 是还在制作中的 Redbooks;不是所有 Redbooks 都会成为 Redpieces,有时只有少量章节会被以这种方式发表。其目的是为了比正式的 出版过程更快地让人获得信息。 IBM Redbooks collections Redbooks 也提供光盘。点击 Redbooks Web 站点上的 CD-ROMs 按钮可得 到所有被提供的光盘的有关信息,以及更新和格式。 第 310 页 缩略语和首字母缩 写 ABI Application Binary Interface AC Alternating Current ACL Access Control List AFPA Adaptive Fast Path Architecture AH Authentication Header AIX Advanced Interactive Executive ANSI American National Standards Institute APAR Authorized Program Analysis Report API Application Programming Interface ARP Address Resolution Protocol ASCI Accelerated Strategic Computing Initiative ASCII American National Standards Code for Information Interchange ASR Address Space Register ATM Asynchronous Transfer Mode AuditRM Audit Log Resource Manager AUI Attached Unit Interface AWT Abstract Window Toolkit BCT Branch on CounT BFF Backup File Format BI Business Intelligence BIND Berkeley Internet Name Daemon BIST Built-In Self-Test BLAS Basic Linear Algebra Subprograms BLOB Binary Large Object BOS Base Operating System BSC Binary Synchronous Communications CAD Computer-Aided Design CAE Computer-Aided Engineering CAM Computer-Aided Manufacturing CATIA Computer-Graphics Aided Three-Dimensional Interactive Application CCM Common Character Mode CD Compact Disk CDE Common Desktop Environment CDLI Common Data Link Interface CD-R CD Recordable CD-ROM Compact Disk-Read Only Memory CE Customer Engineer CEC Central Electronics Complex CFD Computational Fluid Dynamics CGE Common Graphics Environment CHRP Common Hardware Reference Platform CISPR International Special Committee on Radio Interference 第 311 页 CLIO/S Client Input/Output Sockets CLVM Concurrent LVM CMOS Complimentary Metal-Oxide Semiconductor CMP Certificate Management Protocol COFF Common Object File Format COLD Computer Output to Laser Disk CORBA Common Object Request Broker Architecture CPU Central Processing Unit CRC Cyclic Redundancy Check CSID Character Set ID CSR Customer Service Representative CSS Communication Subsystems Support CSU Customer Set-Up CWS Control Workstation DAD Duplicate Address Detection DAS Dual Attach Station DASD Direct Access Storage Device DAT Digital Audio Tape DBCS Double Byte Character Set DBE Double Buffer Extension DC Direct Current DCE Distributed Computing Environment DDC Display Data Channel DDS Digital Data Storage DE Dual-Ended DES Data Encryption Standard DFL Divide Float DFP Dynamic Feedback Protocol DFS Distributed File System DHCP Dynamic Host Configuration Protocol DIMM Dual In-Line Memory Module DIP Direct Insertion Probe DIT Directory Information Tree DIVA Digital Inquiry Voice Answer DLT Digital Linear Tape DMA Direct Memory Access DMT Directory Management Tool DN Distinguished Name DNS Domain Naming System DOE Department of Energy DOI Domain of Interpretation DOS Disk Operating System DPCL Dynamic Probe Class Library DRAM Dynamic Random Access Memory DS Differentiated Service DSA Dynamic Segment Allocation DSE Diagnostic System Exerciser DSMIT Distributed SMIT DSU Data Service Unit DTE Data Terminating Equipment DW Data Warehouse EA Effective Address EC Engineering Change ECC Error Checking and Correcting EEPROM Electrically Erasable Programmable Read Only Memory 第 312 页 EFI Extensible Firmware Interface EHD Extended Hardware Drivers EIA Electronic Industries Association EISA Extended Industry Standard Architecture ELA Error Log Analysis ELF Executable and Linking Format EMU European Monetary Union EOF End of File EPOW Environmental and Power Warning ERRM Event Response resource manager ESID Effective Segment ID ESP Encapsulating Security Payload ESSL Engineering and Scientific Subroutine Library ETML Extract, Transformation, Movement, and Loading F/C Feature Code F/W Fast and Wide FC Fibre Channel FCAL Fibre Channel Arbitrated Loop FCC Federal Communication Commission FCP Fibre Channel Protocol FDDI Fiber Distributed Data Interface FDPR Feedback Directed Program Restructuring FDX Full Duplex FIFO First In/First Out FLASH EPROM Flash Erasable Programmable Read-Only Memory FLIH First Level Interrupt Handler FMA Floating point Multiply Add operation FPR Floating Point Register FPU Floating Point Unit FRCA Fast Response Cache Architecture FRU Field Replaceable Unit FSRM File System Resource Manager FTP File Transfer Protocol GAI Graphic Adapter Interface GAMESS General Atomic and Molecular Electronic Structure System GPFS General Parallel File System GPR General-Purpose Register GUI Graphical User Interface GUID Globally Unique Identifier HACMP High Availability Cluster Multi Processing HACWS High Availability Control Workstation HCON IBM AIX Host Connection Program/6000 HDX Half Duplex HFT High Function Terminal HIPPI High Performance Parallel Interface HiPS High Performance Switch HiPS LC-8 Low-Cost Eight-Port High Performance Switch HostRM Host Resource Manager HPF High Performance FORTRAN 第 313 页 HPSSDL High Performance Supercomputer Systems Development Laboratory HTTP Hypertext Transfer Protocol Hz Hertz I/O Input/Output I 2 C Inter Integrated-Circuit Communications IAR Instruction Address Register IBM International Business Machines ICCCM Inter-Client Communications Conventions Manual ICE Inter-Client Exchange ICElib Inter-Client Exchange library ICMP Internet Control Message Protocol ID Identification IDE Integrated Device Electronics IDS Intelligent Decision Server IEEE Institute of Electrical and Electronics Engineers IETF Internet Engineering Task Force IHV Independent Hardware Vendor IIOP Internet Inter-ORB Protocol IJG Independent JPEG Group IKE Internet Key Exchange ILS International Language Support IM Input Method INRIA Institut National de Recherche en Informatique et en Automatique IP Internetwork Protocol (OSI) IPL Initial Program Load IPSec IP Security IrDA Infrared Data Association (which sets standards for infrared support including protocols for data interchange) IRQ Interrupt Request IS Integrated Service ISA Industry Standard Architecture, Instruction Set Architecture ISAKMP Internet Security Association Management Protocol ISB Intermediate Switch Board ISDN Integrated-Services Digital Network ISMP InstallSheild Multi-Platform ISNO Interface Specific Network Options ISO International Organization for Standardization ISV Independent Software Vendor ITSO International Technical Support Organization JBOD Just a Bunch of Disks JDBC Java Database Connectivity JFC Java Foundation Classes JFS Journaled File System JTAG Joint Test Action Group 第 314 页 KDC Key Distribution Center L1 Level 1 L2 Level 2 L3 Level 3 LAN Local Area Network LANE Local Area Network Emulation LAPI Low-Level Application Programming Interface LDAP Lightweight Directory Access Protocol LDIF LDAP Directory Interchange Format LED Light Emitting Diode LFD Load Float Double LFT Low Function Terminal LID Load ID LLNL Lawrence Livermore National Laboratory LP Logical Partition LP64 Long-Pointer 64 LPI Lines Per Inch LPP Licensed Program Product LPR/LPD Line Printer/Line Printer Daemon LRU Least Recently Used LT G Logical Track Group LV Logical Volume LVCB Logical Volume Control Block LVD Low Voltage Differential LVM Logical Volume Manager MAP Maintenance Analysis Procedure MASS Mathematical Acceleration Subsystem MAU Multiple Access Unit MBCS Multi-Byte Character Support Mbps Megabits Per Second MBps Megabytes Per Second MCA Micro Channel Architecture MCAD Mechanical Computer-Aided Design MDI Media Dependent Interface MES Miscellaneous Equipment Specification MFLOPS Million of FLoating point Operations Per Second MII Media Independent Interface MIP Mixed-Integer Programming MLR1 Multi-Channel Linear Recording 1 MMF Multi-Mode Fibre MODS Memory Overlay Detection Subsystem MP Multiprocessor MPC-3 Multimedia PC-3 MPI Message Passing Interface MPOA Multiprotocol over ATM MPP Massively Parallel Processing MPS Mathematical Programming System MST Machine State MTU Maximum Transmission Unit MWCC Mirror Write Consistency Check MX Mezzanine Bus NBC Network Buffer Cache NCP Network Control Point ND Neighbor Discovery 第 315 页 NDP Neighbor Discovery Protocol NFB No Frame Buffer NFS Network File System NHRP Next Hop Resolution Protocol NIM Network Installation Management NIS Network Information System NL National Language NLS National Language Support NT-1 Network Terminator-1 NTF No Trouble Found NTP Network Time Protocol NUMA Non-Uniform Memory Access NUS Numerical Aerodynamic Simulation NVRAM Non-Volatile Random Access Memory NWP Numerical Weather Prediction OACK Option Acknowledgment OCS Online Customer Support ODBC Open DataBase Connectivity ODM Object Data Manager OEM Original Equipment Manufacturer OLAP Online Analytical Processing OLTP Online Transaction Processing ONC+ Open Network Computing OOUI Object-Oriented User Interface OSF Open Software Foundation, Inc. OSL Optimization Subroutine Library OSLp Parallel Optimization Subroutine Library P2SC POWER2 Single/Super Chip PAM Pluggable Authentication Mechanism PAP Privileged Access Password PBLAS Parallel Basic Linear Algebra Subprograms PCI Peripheral Component Interconnect PDT Paging Device Table PDU Power Distribution Unit PE Parallel Environment PEDB Parallel Environment Debugging PEX PHIGS Extension to X PFS Perfect Forward Security PGID Process Group ID PHB Processor Host Bridges PHY Physical Layer PID Process ID PII Program Integrated Information PIOFS Parallel Input Output File System PKR Protection Key Registers PMTU Path MTU POE Parallel Operating Environment POP Power-On Password POSIX Portable Operating Interface for Computing Environments POST Power-On Self-test POWER Performance Optimization with Enhanced Risc (Architecture) PPC PowerPC PPM Piecewise Parabolic Method PPP Point-to-Point Protocol PREP PowerPC Reference Platform 第 316 页 PSE Portable Streams Environment PSSP Parallel System Support Program PTF Program Temporary Fix PTPE Performance Toolbox Parallel Extensions PV Physical Volume PVC Permanent Virtual Circuit QoS Quality of Service QP Quadratic Programming RAID Redundant Array of Independent Disks RAM Random Access Memory RAN Remote Asynchronous Node RAS Reliability, Availability, and Serviceability RDB Relational DataBase RDBMS Relational Database Management System RDISC ICMP Router Discovery RDN Relative Distinguished Name RDP Router Discovery Protocol RFC Request for Comments RIO Remote I/O RIP Routing Information Protocol RIPL Remote Initial Program Load RISC Reduced Instruction-Set Computer RMC Resource Monitoring and Control ROLTP Relative Online Transaction Processing RPA RS/6000 Platform Architecture RPC Remote Procedure Call RPL Remote Program Loader RPM Red Hat Package Manager RSC RISC Single Chip RSCT Reliable Scalable Cluster Technology RSE Regis ter Stack Engine RSVP Resource Reservation Protocol RTC Real-Time Clock RVSD Recoverable Virtual Shared Disk SA Secure Association SACK Selective Acknowledgments SAN Storage Area Network SAR Solutions Assurance Review SAS Single Attach Station SBCS Single-Byte Character Support ScaLAPACK Scalable Linear Algebra Package SCB Segment Control Block SCO Santa Cruz Operations SCSI Small Computer System Interface SCSI-SE SCSI-Single Ended SDLC Synchronous Data Link Control SDR System Data Repository SDRAM Synchronous Dynamic Random Access Memory SE Single Ended SEPBU Scalable Electrical Power Base Unit SGI Silicon Graphics Incorporated SGID Set Group ID SHLAP Shared Library Assistant Process 第 317 页 SID Segment ID SIT Simple Internet Transition SKIP Simple Key Management for IP SLB Segment Lookaside Buffer SLIH Second Level Interrupt Handler SLIP Serial Line Internet Protocol SLR1 Single-Channel Linear Recording 1 SM Session Management SMB Server Message Block SMIT System Management Interface Tool SMP Symmetric Multiprocessor SMS System Management Services SNG Secured Network Gateway SOI Silicon-on-Insulator SP IBM RS/6000 Scalable POWER parallel Systems SPCN System Power Control Network SPEC System Performance Evaluation Cooperative SPI Security Parameter Index SPM System Performance Measurement SPOT Shared Product Object Tree SPS SP Switch SPS-8 Eight-Port SP Switch SRC System Resource Controller SRN Service Request Number SSA Serial Storage Architecture SSC System Support Controller SSL Secure Socket Layer STFDU Store Float Double with Update STP Shielded Twisted Pair SUID Set User ID SUP Software Update Protocol SVC Switch Virtual Circuit SVC Supervisor or System Call SWVPD Software Vital Product Data SYNC Synchronization TCE Translate Control Entry Tcl Tool Command Language TCP/IP Transmission Control Protocol/Internet Protocol TCQ Tagged Command Queuing TGT Ticket Granting Ticket TLB Translation Lookaside Buffer TOS Type Of Service TPC Transaction Processing Council TPP Toward Peak Performance TSE Text Search Engine TTL Time To Live UCS Universal Coded Character Set UDB EEE Universal Database and Enterprise Extended Edition UDI Uniform Device Interface UIL User Interface Language ULS Universal Language Support UP Uniprocessor USB Universal Serial Bus USLA User-Space Loader Assistant UTF UCS Transformation Format UTM Uniform Transfer Model 第 318 页 UTP Unshielded Twisted Pair UUCP UNIX-to-UNIX Communication Protocol VESA Video Electronics Standards Association VFB Virtual Frame Buffer VG Volume Group VGDA Volume Group Descriptor Area VGSA Volume Group Status Area VHDCI Very High Density Cable Interconnect VLAN Virtual Local Area Network VMM Virtual Memory Manager VP Virtual Processor VPD Vital Product Data VPN Virtual Private Network VSD Virtual Shared Disk VT Visualization Tool WAN Wide Area Network WLM Workload Manager WTE Web Traffic Express XCOFF Extended Common Object File Format XIE X Image Extension XIM X Input Method XKB X Keyboard Extension XLF XL Fortran XOM X Output Method XPM X Pixmap XSSO Open Single Sign-on Service XTF Extended Distance Feature XVFB X Virtual Frame Buffer 第 319 页 索引
还剩318页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 8 金币 [ 分享pdf获得金币 ] 3 人已下载

下载pdf

pdf贡献者

justin_sz

贡献于2014-07-04

下载需要 8 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf