简介:《IBM P740小机安装配置手册》面向需要部署 IBM P740 小型机的运维与实施人员,围绕 AIX 系统落地及 HACMP 高可用环境搭建,整理出一套可对照执行的配置参考,适合具备一定 UNIX 基础、正在参与数据库或核心业务系统上线的人员使用。压缩包内共 1 个 doc 文件,大小约 4.5MB,以单份手册形式集中呈现安装配置流程。内容从 AIX 操作系统安装、bundle 与 limit 参数调整讲起,覆盖 IOCP、fullcore、maxpout/minpout、maxuproc、syncd、时区及 error log 等系统项,并延伸到网络、AIO、VM、HBA 卡参数、语言包与补丁包、Oracle 文件系统、系统镜像、SWAP、文件系统扩容和 dump 设置;后半部分还涉及 HACMP 软件及补丁安装、cluster 与资源组、SVC IP、应用脚本和串口心跳等配置。已有 1264 人学习,便于读者按目录定位关键环节,理解参数含义与配置顺序,减少实施中的反复试错。
1. 一台 P740 摆在机房:AIX 6100-07 SP4 装错一步,后面全是返工
IBM P740 小机安装配置这件事,真正让人头疼的往往不是拧螺丝上架,而是 AIX 和 HACMP 这一层没准备好。我见过最典型的翻车是:系统装完直接上 Oracle,limit 还是默认值、IOCP 停在 Defined、fullcore 没开,数据库跑两天开始报内存类错误,回头查才发现是装机阶段漏了参数。这套流程适合两类人:第一次独立接手 Power 小机、要完成 AIX 加 HACMP 双机的实施人员;以及接手别人装到一半的环境、需要把系统参数和集群配置逐项对齐的运维。P740 本身不复杂,复杂的是安装顺序和参数之间的依赖,顺序错了,后面每一步都在补窟窿。
2. AIX 6100-07 SP4 安装与参数打底:从光盘启动到 limit、IOCP 一次配到位
2.1 光盘安装:从 01 N V=F 到 Hdisk0 全新覆盖
硬件上电这一步,很多细节在文档里容易被一句“按提示操作”带过,但现场真正常卡住的就是这里。电源线插到小机后面对应接口,前面板液晶小屏会开始走硬件自检,等出现01 N V=F字样时按一下白色按钮,同时把 AIX 安装介质的第一张光盘放进光驱。屏幕变白并听到滴声后再按2,进入管理菜单,输入提示的密码admin,把启动顺序改成光驱优先,保存后重启。
从光驱引导成功之后,第一屏会让选择主控台,按现场接线选console;安装语言选English。主菜单里不要直接选默认安装,选第 2 项Change/Show Installation Settings and Install,先把安装方式和目标磁盘定死。
安装选项我一般按下面这张表逐项核对,避免手快选错:
| 界面 | 选项 | 值 |
|---|---|---|
| 主菜单 | 2 | Change/Show Installation Settings and Install |
| Installation and Settings | 1 | 修改系统设置 |
| Change Method of Installation | 1 | New and Complete Overwrite |
| Change Disk(s) | 1 → 0 | hdisk0 |
| 最终确认 | 0 | Install AIX with the current settings |
New and Complete Overwrite会清空所选磁盘上的所有内容,选盘时看清楚是hdisk0还是hdisk1,机房现场两块盘容量一样、位置码只差几位,选错就是整盘数据没了。选完磁盘回到确认页,输入0开始装 BOS。安装完成后系统自动重启,进入 Configuration Assistant,给 root 设密码,然后点Exit the Configuration Assistant,再选Finish now, and do not start Configuration Assistant when restarting the operating system,把配置向导关掉。这一步不关,下次重启还会反复弹向导,后面跑脚本容易被打断。
注意:如果走串口安装,可能根本没有图形界面,后面要补
cde的 bundle;用显示器安装的可以跳过。
2.2 bundle、语言包与 TL7 SP06 补丁链
系统装完只是能登录,离能装 Oracle 和 HACMP 还差一截。先装两个基础 bundle:server和app-dev。用smitty installp进去选安装包,这两个 bundle 装上之后,Oracle 和 HACMP 依赖的大部分基础包就齐了。另外单独补bos.cifs_fs和bos.data,这两个包在默认安装里不一定有。如果现场要求用 SSH 而不是只靠 telnet,还要把openssl和openssh开头的包一起装上,安装文件在第一张系统盘里。
语言包按项目要求装中文环境:smitty进System Environments→Manage Language→Add Additional Language,文化约定和语言转换都选IBM.... [Zh-CN] UTF-8以及[Zh-CN] GB这几项。装完用locale或重新登录确认LANG是否生效,没生效先查/etc/environment。
补丁基线是这套环境里最容易出错的地方。安装介质是 6100-07 SP4,装完先用oslevel -s看一眼,通常显示6100-07-04。项目要求打到 AIX 6.1 TL7 SP06,也就是6100-07-06-1241。TL 和 SP 要按顺序装,先 TL 后 SP,装完再补 ifix。
# 装 TL/SP 之前先记录基线,方便回退时对照 oslevel -s # 打完 TL7 SP06 后应返回 6100-07-06-1241 oslevel -s # ifix 按编号顺序装,最后一行状态要是 SUCCESS emgr -e IV30896m6a.130214.epkg.Z emgr -e IV32377s6a.130129.epkg.Z # 查已装的 ifix 列表,确认两个都在 emgr -loslevel -s输出四段:6100是 AIX 6.1,07是 TL7,06是 SP6,1241是补丁包的年周编号。emgr -e装的是临时补丁,重启后仍然在,但卸载要用emgr -r,别直接删文件。两个 ifix 的顺序不要反,IV30896m6a在前、IV32377s6a在后,反了会出现依赖检查不过。
提示:补丁装完别急着装 HACMP,先重启一次,让内核和库文件全部落到新版本上,再继续后面的参数调整。
2.3 limit、maxuproc 与 maxpout/minpout:先改限制再谈并发
limit参数是装机阶段最容易被跳过、后面又最容易出问题的一项。默认值对普通登录够用,但 Oracle 和 HACMP 一跑起来,文件句柄、栈大小、核心转储这些限制会直接卡住进程。项目要求把所有用户限制改成unlimited,也就是-1。
# 改之前先备份,改坏了直接覆盖回去 cp /etc/security/limits /etc/security/limits.bak vi /etc/security/limits配置文件里按下面这段对齐:
default: core = -1 rss = -1 fsize = -1 data = -1 stack = -1 stack_hard = -1 cpu = -1 nofiles = -1core = -1让核心转储不受大小限制,配合后面的 fullcore 才有意义;rss是常驻内存上限,fsize是单个文件大小,data是数据段,stack和stack_hard是栈的软硬限制,cpu是 CPU 时间,nofiles是打开文件数。全部给-1的意思是“不设上限”,代价是异常进程可能把资源吃得更狠,所以后面要靠maxuproc和监控兜底。
maxuproc控制每个用户能起的最大进程数,默认 128,跑数据库和集群软件根本不够。改法:
# 先看当前值 lsattr -El sys0 | grep maxuproc # 调到 16384,改完立即生效 chdev -l sys0 -a maxuproc=16384maxpout和minpout是文件系统页输出的高低水位。当某个文件系统的页输出排队达到maxpout,进程会被挂起;降到minpout以下再恢复。项目基线是maxpout=8192、minpout=4096,保持 2:1 的比例。值太小会频繁挂起进程,值太大又起不到保护作用。
# 查看当前水位 lsattr -El sys0 | egrep 'maxpout|minpout' # 按项目基线调整 chdev -l sys0 -a maxpout=8192 -a minpout=40962.4 IOCP、fullcore、syncd 与时区、error log
IOCP 是异步 I/O 完成端口,Oracle 的异步 I/O 要靠它。AIX 6.1 默认已经装了bos.iocp.rte,但不代表端口一定是 Available。
# 看 IOCP 端口状态,期望是 Available lsdev -Cc iocp # 如果是 Defined,改成 Available 并重新配置 chdev -l iocp0 -a autoconfig=available cfgmgr -l iocp0lsdev -Cc iocp正常输出是iocp0 Available I/O Completion Ports。显示Defined说明设备没被配置起来,先lslpp -l bos.iocp.rte确认包在不在,再走上面的chdev加cfgmgr。
fullcore决定核心转储是不是包含完整内存镜像。默认关闭时 dump 只有一部分,排查内存类故障基本没用。
# 查开关状态 lsattr -El sys0 | grep fullcore # 打开,重启后仍然有效 chdev -l sys0 -a fullcore=truesyncd是内存数据刷盘频率,默认 60 秒。项目要求改成 10 秒,降低宕机时丢数据的窗口。这个参数不在no里,要改/sbin/rc.boot:
vi /sbin/rc.boot # 找到下面这一行,把 60 改成 10 nohup /usr/sbin/syncd 10 > /dev/null 2>&1 &改小之后磁盘写压力会上升,但 Oracle 环境一般能接受,比起丢事务,这点 I/O 代价值得。时区用 POSIX 写法,东八区执行chtz BEIST-8,改完用date确认。
error log 默认只有 1MB,故障现场很容易被冲掉。项目要求调到 10MB:
# 调整 error log 大小到 10MB /usr/lib/errdemon -s 10485760 # 查看当前配置,确认 LOGSIZE 是 10485760 /usr/lib/errdemon -l # 确认 errdemon 进程在跑 ps -ef | grep errdemon如果进程不在,直接执行/usr/lib/errdemon拉起来,这个操作对系统没有附加影响。
3. 网络、AIO、VM 与 HBA:P740 上 Oracle 跑得稳不稳就看这几组参数
3.1 no 参数:端口、缓冲区与 keepidle
网络参数不是越多越好,但项目基线里的这一组基本覆盖了 Oracle 和 HACMP 的通信场景。用no改,-p表示持久化到下次启动,-r表示立即生效,部分参数只支持其中一种。
# TCP/UDP 缓冲区、keepalive 与端口范围,按项目基线一次性写入 no -p -o tcp_keepidle=1800 no -p -o tcp_finwait2=300 no -p -o udp_sendspace=65536 no -p -o udp_recvspace=655360 no -p -o tcp_tcpsecure=5 no -p -o tcp_sendspace=262144 no -p -o tcp_recvspace=262144 no -p -o tcp_nodelayack=1 no -p -o tcp_pmtu_discover=0 no -p -o tcp_nagle_limit=1 no -p -o sb_max=2097152 no -p -o rfc1323=1 no -p -o ipsendredirects=0 no -p -o ipignoreredirects=1 no -p -o ip6srcrouteforward=0 no -p -o clean_partial_conns=1 no -r -o ipqmaxlen=512 no -p -o tcp_ephemeral_low=9000 no -p -o tcp_ephemeral_high=65500 no -p -o udp_ephemeral_low=9000 no -p -o udp_ephemeral_high=65500rfc1323=1打开大窗口,跨网段高延迟链路上吞吐差别很明显;sb_max给到 2MB,才能覆盖 256KB 的tcp_sendspace和tcp_recvspace。tcp_nodelayack=1关掉延迟 ACK,减少小包交互的等待。tcp_pmtu_discover=0在私网和存储网里更稳,避免路径 MTU 探测不通导致连接卡死。ipignoreredirects=1忽略 ICMP 重定向,防止路由被意外改写。临时端口范围挪到 9000–65500,是为了避开 Oracle 监听和集群端口常用区间,减少端口冲突。ipqmaxlen用-r立即生效,重启后要再确认一次,稳妥做法是把它写进/etc/rc.net。
3.2 AIO 与 vmo:异步 I/O 和内存页的分配
AIO 参数只对文件系统有效,裸设备不走 AIO,这一点在规划表空间时要心里有数。aio_maxservers的估算原则是最大不超过并行磁盘数的 10 倍,最小取最大值的一半。项目给的是 80。
# 设置异步 I/O 服务进程数 ioo -p -o aio_maxservers=80 # 查看是否写入成功 ioo -o aio_maxservers另一种改法是chdev -l aio0 -a maxservers=80,带-T立即生效,带-P推迟到下次启动。两种方式不要混着用,最后以ioo -o的输出为准。
vmo管的是内存页分配,Oracle 小机上最常见的组合是让文件页优先回收、保护计算内存:
# 文件页与计算内存的取舍 vmo -p -o numperm_global=0 vmo -p -o maxperm%=90 vmo -p -o minperm%=3 vmo -p -o maxclient%=90 vmo -p -o strict_maxperm=0 vmo -p -o strict_maxclient=1 vmo -p -o lru_file_repage=0 vmo -r -o page_steal_method=1maxperm%和minperm%控制文件页占物理内存的比例区间,strict_maxclient=1让客户端页到上限就严格回收,不再挤占计算页。lru_file_repage=0是 Oracle 环境里经常被拿出来讨论的一项,作用是避免文件页反复挤占计算页。page_steal_method=1切换到基于页的窃取算法,用-r立即生效,重启后要再跑一次确认。
注意:
vmo的参数和数据库的 SGA 大小要一起看,SGA 占了物理内存大头时,文件页上限给太高反而会引发换页。
3.3 HBA 卡参数:dyntrk、fast_fail 与 num_cmd_elems
HBA 卡参数不调,存储链路出问题时多路径软件可能来不及切换。项目里四块卡统一处理:
# 四块 HBA 统一开启动态跟踪和快速失效,-P 写入 ODM for i in 0 1 2 3; do chdev -l fscsi$i -a dyntrk=yes -a fc_err_recov=fast_fail -P chdev -l fcs$i -a num_cmd_elems=500 -P donefscsi是协议层设备,fcs是适配器层设备,两者要分别改。dyntrk=yes让链路漂移后自动跟踪目标端口,存储端换口或重启后不用手工重新配。fc_err_recov=fast_fail让失效路径快速失败,PowerPath 才有机会把 I/O 切到另一条路径;如果设成delayed_fail,I/O 会挂在那里等,业务侧表现就是卡顿。num_cmd_elems=500提高队列深度,但要看存储端队列承受能力,不是越大越好。这几个参数都带-P,重启后生效,改完安排一次重启窗口。
3.4 Oracle 文件系统、镜像、SWAP 与 dump
Oracle 需要两个独立文件系统:一个放安装介质,逻辑卷lvsoftcd,挂载点/softcd;一个放程序,逻辑卷lvoracle,挂载点/oracle。初始按 1GB 创建,后面按文件系统规划表扩到 10GB 和 50GB。完整规划如下:
| 文件系统 | 大小 |
|---|---|
| / | 6GB |
| /tmp | 10GB |
| /usr | 10GB |
| /var | 90GB |
| /home | 10GB |
| /opt | 10GB |
| /softcd | 10GB |
| /oracle | 50GB |
/var给到 90GB 是因为 error log、dump 和集群日志都往这里写,给小了后期只能反复扩。文件系统建完做 rootvg 镜像,顺序不能乱:
# 加盘、镜像、重写引导、改启动顺序,一步都不能少 extendvg rootvg hdisk1 mirrorvg rootvg # 看镜像进度,STALE 消失才算同步完 lsvg rootvg | grep STALE bosboot -ad hdisk1 bootlist -m normal cd0 hdisk0 hdisk1 shutdown -Frmirrorvg只做逻辑卷镜像,boot image 还在旧盘上,不跑bosboot重启就可能起不来。bootlist里把cd0放前面是方便下次从光驱引导,生产环境交付前要确认顺序符合现场规范。SWAP 按内存 1:1 配,16GB 内存配 16GB swap,PP 默认 512MB 时增加 31 个 PP,加上原有的 1 个正好 32 个,也就是 16GB。用smitty chps改,改完lsps -a确认。
dump 设置要单独检查:
# 估算 dump 需要多大,再决定 dump LV 扩到多少 sysdumpdev -e sysdumpdev -l # 宕机后自动重启 chdev -l sys0 -a autorestart=true lsattr -El sys0 | grep autorestartsmit sysdumpdev里把always allow dump设为TRUE,系统挂死时才能强制 dump。autorestart=true让宕机后自动重启,配合 HACMP 的切换逻辑,能缩短业务中断时间。
4. HACMP 6.1 双机配置:安装、资源组与切换测试的完整链路
4.1 HACMP 安装与补丁:cluster.hativoli 不装
HACMP 6.1 用smitty installp安装,选包的时候除了cluster.hativoli之外全装。cluster.hativoli是 Tivoli 相关组件,本项目不用,装上反而多一层依赖。如果从光盘装,先建 cdrom 文件系统:
# 创建设备 cd0、挂载点 /cdrom 的光盘文件系统,开机自动挂载 smitty cdrfs菜单里设备名选cd0,挂载点填 `/
本文还有配套的精品资源,点击获取