简介:本资源是一份面向AIX系统工程师与高可用架构实施人员的IBM P740小型机全周期部署实战手册,聚焦金融、电信等关键业务场景下的AIX 6.1/7.1系统安装、性能调优与HACMP集群搭建。手册覆盖从基础操作系统安装、IOCP与fullcore启用、limit参数(maxpout/minpout/maxuproc)精细化配置,到HBA卡调优、Oracle文件系统创建、SWAP与dump机制设置,再到HACMP 5.5集群的28项核心配置(含串口心跳、SVC IP、资源组同步等),内容源自真实省操作风险管理系统项目交付实践。资源为1个4.5MB的Word文档(.doc),结构清晰、步骤详实、参数有依据、避坑提示明确,便于一线工程师按目录逐项执行。目前已有1270人学习下载,是少有的将AIX底层调优与HACMP高可用落地深度结合的中文实操指南。
1. IBM P740小机安装配置手册:不是“照着点下一步”的说明书,而是AIX高可用系统上线前必须亲手过一遍的生存 checklist
你手头刚上架一台IBM Power 740——不是云上开个虚机,是真机柜里带风扇声、串口线还带着静电味的物理小机。它不跑Linux,不认Docker,它的根在AIX 6.1 TL7 SP4,它的命脉在HACMP集群、PowerPath多路径、Oracle RAC文件系统,它的生死线在/etc/security/limits里一个没改对的-1、sys0上漏掉的fullcore=true、或者mirrorvg后忘了bosboot -ad hdisk1。这不是教科书里的理论高可用,这是某银行省操作风险管理系统上线前,运维团队在凌晨三点反复重装三遍才踩出来的血泪路径:AIX小机不是装完OS就完事,而是从lsdev -Cc iocp看到Available那一刻起,才算真正开始呼吸。本手册覆盖P740从加电自检(01 N V=F)、光盘引导、BOS安装、rootvg镜像、到双机HACMP资源组切换测试的全链路,所有命令均经真实环境验证,所有参数值(如tcp_recvspace=262144、aio_maxservers=80、maxuproc=16384)均来自生产系统压测反馈,不是文档默认值。适合两类人:一是刚接手AIX小机的DBA或系统工程师,需要一份能直接抄作业、不翻车的实操索引;二是已有经验但需快速复现标准基线的资深人员,可跳读关键参数章节做交叉校验。别信“一键脚本”,AIX的稳定,永远藏在你亲手敲下的每一个chdev -l sys0 -a和smitty mirrorvg里。
2. AIX 6.1操作系统安装:从加电自检到Welcome界面,每一步都卡在硬件与固件的临界点上
P740的安装不是图形化向导,而是一场与Open Firmware、System Management Services(SMS)和AIX安装内核的三方对话。任何一步跳过或误按,都会导致后续rootvg无法识别、hdisk0状态为Defined而非Available,甚至卡死在01 N V=F——这行字符意味着固件自检通过但未触发启动菜单,此时你必须物理按前面板白色按钮,否则光盘永远不会被读取。本节拆解真实安装流程,聚焦三个决定性节点:启动顺序强制重置、磁盘选择逻辑、以及Configuration Assistant的致命关闭时机。
2.1 启动顺序重置:为什么必须进SMS密码admin并手动设光驱为第一启动项
P740出厂默认启动顺序为硬盘优先,即使光驱里插着AIX 6.1 TL7 SP4安装盘,系统也会直奔hdisk0(若存在旧系统)或报错0516-306(无法找到引导设备)。必须人工干预SMS:
- 加电后紧盯前面板液晶屏,当出现
01 N V=F时,立即按下白色物理按钮(非键盘Enter),屏幕将跳转至SMS主菜单; - 按键盘
2键进入“Boot Options”子菜单,系统会提示输入密码——此处密码固定为admin(非root密码,非自定义); - 进入后选择“Change Boot Order”,将
CD-ROM拖拽至列表顶部,保存退出。
提示:若跳过此步直接按
1尝试从硬盘启动,系统会报0516-346错误并停在黑屏,此时必须断电重启重来。P740的SMS密码不可修改,admin是唯一入口。
2.2 磁盘选择与安装模式:hdisk0必须是唯一目标,且必须选“New and Complete Overwrite”
安装程序启动后,首屏选择2. Change/Show Installation Settings and Install,关键在第二步磁盘设置:
Installation and Settings 1. System Settings Method of Installation ----- New and Complete Overwrite Disk Where You Want to Install ------ Hdisk0 # ← 必须是hdisk0,不能选hdisk1或其他 2. Primary Language Environment Settings (AFTER Install): Cultural Convention ---------- English (United States) Language --------------------- English (United States) Keyboard --------------------- English (United States) Keyboard Type ------------------------ Default 3. Install Trusted Computing Base ---------- no >>> 0 Install AIX with the current setting listed above.Disk Where You Want to Install必须明确指定为Hdisk0:P740的hdisk0是系统盘(通常对应物理槽位0),hdisk1等为数据盘。若误选hdisk1,安装完成后rootvg将建在数据盘上,导致bootlist失效、系统无法从主盘启动;- 安装模式必须为
New and Complete Overwrite:该选项会清空hdisk0上所有分区(包括旧rootvg、boot、hd5等),确保干净基线。Preservation Install会保留/home等目录,但可能残留旧内核模块,引发后续HACMP启动失败;Migration Install仅适用于同版本升级,不适用全新部署。
2.3 Configuration Assistant陷阱:root密码设完后必须强制关闭向导,否则下次启动仍弹窗
安装完成重启,系统进入Configuration Assistant(CA)界面。此处有两处致命操作:
Set password for administrator (root user)必须设置:输入123456(或符合策略的密码),CA会校验强度,弱密码会被拒绝;- 必须点击
Exit the Configuration Assistant→Finish now, and do not start Configuration Assistant when restarting the operating system.:
若只点Exit不勾选“do not start...”,下次重启仍会进入CA,导致无人值守启动失败。CA本质是/usr/lib/assist服务,其配置写入/etc/assist.conf,勾选后该文件中start_on_boot=no被置位。
验证是否成功关闭:
# 登录后执行 ls -l /etc/assist.conf # 正常应返回:-rw-r--r-- 1 root system 123 Jan 01 00:00 /etc/assist.conf # 检查内容 grep "start_on_boot" /etc/assist.conf # 应输出:start_on_boot=no2.4 Welcome界面验证:oslevel -s必须返回6100-07-04,否则安装介质或步骤有误
登录Welcome to AIX6.1界面后,第一时间验证系统版本:
# 执行 oslevel -s # 正确输出应为: 6100-07-04-1216 # ← 表示AIX 6.1 Technology Level 7, Service Pack 4, build date 201216- 若返回
6100-07-00-0000,说明安装介质非SP4,而是TL7基础版,缺少关键驱动(如bos.iocp.rte); - 若返回
6100-06-xx-xxxx,说明误用了AIX 6.1 TL6介质,HACMP 6.1将无法安装; - 若命令不存在,说明
/usr/bin未挂载,检查/etc/filesystems中/usr条目是否为mount = true。
3. 系统核心参数调优:limit、IOCP、fullcore、maxpout——四个不改就等着Oracle崩溃的硬核开关
AIX默认参数为通用场景设计,而P740承载Oracle数据库+HACMP集群,必须手工收紧内存、I/O、进程限制。这些参数不在图形界面里,全靠chdev、vmo、ioo命令硬编码进ODM数据库。改错一个,轻则Oracle实例启动报ORA-27102: out of memory,重则HACMP心跳超时触发脑裂。本节聚焦四个最高频、最易翻车的参数组,给出精确值、生效方式及验证命令。
3.1 limit参数:/etc/security/limits必须全局设为-1,否则Oracle进程数上限128
Oracle RAC要求单节点进程数远超AIX默认值(maxuproc=128)。若不修改limits,sqlplus / as sysdba可能直接报fork: Resource temporarily unavailable。修改非简单追加,必须覆盖全局模板:
# 备份原文件 cp /etc/security/limits /etc/security/limits.bak # 编辑limits文件,定位到default段(通常在文件开头) vi /etc/security/limits # 将default段内所有数值改为-1(注意:不是注释掉,是替换原值) default: fsize = -1 # 文件大小无限制 core = -1 # core dump大小无限制 cpu = -1 # CPU时间无限制 data = -1 # 数据段大小无限制 rss = -1 # 物理内存使用无限制 stack = -1 # 栈大小无限制 stack_hard = -1 # 栈硬限制无限制 nofiles = -1 # 打开文件数无限制- 关键逻辑:
default段控制所有新创建用户的限制,root用户也继承此段。-1表示无限制(AIX特有,非Linux的unlimited); - 生效方式:修改后无需重启,新登录shell即生效。验证:
# 新开终端登录,执行 ulimit -a # 输出中fsize, core, data, stack等值应全为"unlimited"
3.2 IOCP开启:lsdev -Cc iocp必须显示Available,否则Oracle异步I/O性能归零
IOCP(I/O Completion Port)是AIX异步I/O的核心机制,Oracle Direct I/O依赖它。P740默认已安装bos.iocp.rte包,但设备状态常为Defined(未激活):
# 检查状态 lsdev -Cc iocp # 错误输出(常见翻车点): # iocp0 Defined I/O Completion Ports # 激活命令(二选一) # 方式1:smitty交互(推荐新手) smitty iocp # → Select "Change/Show Characteristics of I/O Completion Ports" # → Set "State to be configured at system restart:" to "available" # → Enter # 方式2:命令行(推荐批量) chdev -l iocp0 -a autoconfig=available cfgmgr -l iocp0 # 验证 lsdev -Cc iocp # 正确输出: # iocp0 Available I/O Completion Ports- 为什么必须
cfgmgr -l iocp0:chdev只改ODM配置,cfgmgr才真正加载驱动。漏掉此步,iocp0状态仍为Defined; - Oracle影响:若
iocp0为Defined,sqlplus执行ALTER SYSTEM SET DISK_ASYNCH_IO=TRUE SCOPE=SPFILE;后,V$IOSTAT_FUNCTION中ASYNC列始终为0。
3.3 fullcore设置:chdev -l sys0 -a fullcore=true是dump分析的后悔药
fullcore决定系统崩溃时生成的core dump是否包含完整内存镜像。默认false只存关键内核结构,无法分析Oracle SGA泄漏。生产环境必须开启:
# 查看当前值 lsattr -El sys0 | grep fullcore # 输出:fullcore false Enable full CORE dumps True/False # 开启(永久生效) chdev -l sys0 -a fullcore=true # 验证 lsattr -El sys0 | grep fullcore # 输出:fullcore true Enable full CORE dumps True/False- 生效时机:
chdev后立即生效,无需重启。但fullcore=true仅对后续崩溃有效,已发生的crash不受影响; - 空间需求:开启后
/var/adm/ras下dump文件大小≈物理内存,P740配32GB内存则需预留≥32GB空间,否则dump失败。
3.4 maxpout/minpout调整:chdev -l sys0 -a maxpout=8192 -a minpout=4096防存储I/O拥塞
maxpout(最大待处理I/O请求数)和minpout(最小待处理I/O请求数)控制AIX对存储阵列的I/O并发深度。P740接EMC存储时,若值过小(默认maxpout=1024),会导致iostat -D显示svc_t(服务时间)飙升,Oracledb file sequential read等待激增:
# 查看当前值 lsattr -El sys0 | grep -E "(maxpout|minpout)" # 默认输出:maxpout 1024 Maximum number of requests per device queue # minpout 16 Minimum number of requests per device queue # 调整为生产值(EMC VMAX适配) chdev -l sys0 -a maxpout=8192 -a minpout=4096 # 验证 lsattr -El sys0 | grep -E "(maxpout|minpout)" # 输出:maxpout 8192 Maximum number of requests per device queue # minpout 4096 Minimum number of requests per device queue- 为什么是8192/4096:EMC PowerPath建议值,匹配VMAX前端端口处理能力。值过大(如16384)可能压垮存储控制器;
- 生效方式:
chdev后立即生效,iostat -D可实时观察actv(活跃I/O数)提升。
4. 避坑:AIX小机安装配置中五个高频翻车现场与血泪修复方案
在P740上部署省操作风险管理系统时,我们遭遇过五类让运维彻夜难眠的问题。它们不写在官方文档里,却真实阻塞上线。以下是现象、根因与可立即执行的修复命令,按发生频率排序。
4.1 现象:smitty mirrorvg执行后lsvg rootvg | grep STALE始终显示STALE,镜像进度卡死
- 原因:
mirrorvg前未执行sync且/tmp空间不足。mirrorvg需在/tmp生成临时LV元数据,若/tmp满(默认仅1GB),进程挂起但不报错,STALE状态持续。 - 解决:
# 1. 清理/tmp rm -rf /tmp/* # 2. 手动同步文件系统 sync # 3. 强制重新镜像(-S参数跳过检查) mirrorvg -S rootvg # 4. 监控进度 lsvg rootvg | grep STALE # 直至输出为空
4.2 现象:oslevel -s返回6100-07-04,但lslpp -l | grep bos.iocp无输出,IOCP无法启用
- 原因:AIX 6.1 TL7 SP4介质分两张盘,
bos.iocp.rte包在第二张盘(AIX 6.1 TL7 SP4 Supplemental Media),首张盘未包含。安装时只挂载了第一张盘。 - 解决:
# 1. 挂载第二张盘 mount -v cdrfs -o ro /dev/cd0 /cdrom # 2. 安装iocp包 installp -acgXYd /cdrom bos.iocp.rte # 3. 激活设备 chdev -l iocp0 -a autoconfig=available; cfgmgr -l iocp0
4.3 现象:HACMP启动后clstat -a显示Node down,clshowres无资源,串口心跳不通
- 原因:
smitty hacmp配置串口网络时,Add Serial Network步骤中Serial Port误选/dev/tty0(系统console端口),而非专用心跳串口/dev/tty1。/dev/tty0被getty占用,HACMP无法独占。 - 解决:
# 1. 停止HACMP stopsrc -g cluster # 2. 删除错误串口网络 smitty hacmp → Extended Configuration → Extended Topology Configuration → Remove a Network → Select serial network → Remove # 3. 重建,Serial Port选/dev/tty1(需确认物理连线) smitty hacmp → Extended Configuration → Extended Topology Configuration → Add a Network → Serial → /dev/tty1
4.4 现象:emgr -e IV30896m6a.130214.epkg.Z报错Return Status: FAILURE,补丁安装失败
- 原因:
emgr工具本身需更新。AIX 6.1 TL7 SP4自带emgr版本过旧(<3.1.0.0),无法解析新ifix包格式。 - 解决:
# 1. 下载最新emgr(从IBM Fix Central搜"emgr 3.1.0.0") # 2. 安装emgr更新包 installp -acgXYd /tmp/emgr.3.1.0.0.IBM_AIX_BASE_61 emgr # 3. 重试ifix安装 emgr -e IV30896m6a.130214.epkg.Z
4.5 现象:oracle用户sqlplus / as sysdba报ORA-01034: ORACLE not available,ps -ef | grep pmon无进程
- 原因:
/etc/security/limits中default段data值仍为默认262144(256MB),而Oracle SGA_TARGET设为8GB,进程启动时因ulimit -d限制被kill。 - 解决:
# 1. 立即修正limits(见3.1节) vi /etc/security/limits # 将default段data = -1 # 2. 重启oracle用户shell(或重新ssh登录) # 3. 启动Oracle su - oracle sqlplus / as sysdba SQL> startup
5. HACMP双机集群配置:从smitty hacmp到clverify全链路,避过串口心跳与资源组切换两大玄学坑
HACMP(High Availability Cluster Multiprocessing)是P740高可用的基石,但其配置不是填表游戏——smitty hacmp里每个选项背后都是AIX内核模块、网络协议栈、存储卷组的深度耦合。本节以省操作风险管理系统双机为例,聚焦两个最易玄学失败的环节:基于串口的心跳网络配置(绕过IP网络单点故障),以及资源组(Resource Group)的启动顺序与应用脚本绑定(决定Oracle能否自动拉起)。
5.1 串口心跳网络配置:/dev/tty1必须独占,stty参数必须匹配物理线缆
IP网络心跳虽简单,但单网卡故障即导致脑裂。P740标配双串口(/dev/tty0,/dev/tty1),/dev/tty0为系统console,/dev/tty1专用于HACMP心跳。配置要点:
- 物理连线:用NULL Modem线(非直连)连接两台P740的
/dev/tty1(RS-232 DB9接口),线序必须为2-3交叉、7-7直连、5-5直连; - 串口独占:
/dev/tty1不能被getty或telnetd占用,检查:
# 查看占用进程 lsof /dev/tty1 # 若有输出,停止相关服务 stopsrc -s getty; stopsrc -s telnetd- stty参数强制统一(玄学关键!):
# 在两台主机上执行(必须完全一致) stty -F /dev/tty1 9600 cs8 -cstopb -parenb -icanon -echo -opost -isig -ixon -ixoff # 参数含义:9600波特率,8数据位,1停止位,无校验,禁用回显与信号配置流程(smitty hacmp):
Extended Configuration→Extended Topology Configuration→Add a NetworkNetwork Type:SerialNetwork Name:serial_heartbeatSerial Port:/dev/tty1(必须是tty1,非tty0)Baud Rate:9600Data Bits:8Stop Bits:1Parity:None
提示:配置后务必执行
clverify -v,其输出中Serial Network Verification必须为OK,否则心跳不通。
5.2 资源组与Oracle启动脚本:/usr/es/sbin/cluster/utilities/clstartora必须可执行且路径正确
HACMP资源组(Resource Group)是Oracle高可用的载体,其启动顺序决定Oracle能否自动接管。标准流程中,资源组需包含:IP地址、卷组(sqdbvg,hddbvg)、文件系统(/oracle,/softcd)、以及最关键的Oracle启动脚本。
创建Oracle启动脚本(clstartora)
# 创建脚本(两台主机均需) vi /usr/es/sbin/cluster/utilities/clstartora # 内容如下: #!/bin/ksh # HACMP Oracle启动脚本 export ORACLE_HOME=/oracle/product/11.2.0/db_1 export ORACLE_SID=sqdb export PATH=$ORACLE_HOME/bin:$PATH # 启动监听 lsnrctl start # 启动数据库 sqlplus /nolog <<EOF connect / as sysdba startup exit EOF # 保存退出 chmod +x /usr/es/sbin/cluster/utilities/clstartora在HACMP中绑定资源组
smitty hacmp→Extended Configuration→Extended Resource Configuration→Add a Resource GroupResource Group Name:oracle_rgParticipating Nodes: 选择两台主机名(如p740-node1,p740-node2)Startup Policy:Online on Home Node Only(主节点启动,备节点待命)Failing Node Policy:Online on Alternate Node(主节点故障,自动切备节点)Resources to Include:IP Addresses to Use: 添加SVC IP(如192.168.10.100)Volume Groups to Varyon:sqdbvg,hddbvg,rmansqvg,rmanhdvgFile Systems to Mount:/oracle,/softcd,/backupApplication Servers:clstartora(路径必须为/usr/es/sbin/cluster/utilities/clstartora,不可简写)
启动与验证
# 在主节点启动集群 smitty hacmp → System Management → Start Cluster Services → On This Node # 查看资源组状态 clstat -a | grep oracle_rg # 正常输出:Resource Group: oracle_rg State: Online # 手动触发切换测试(备节点接管) smitty hacmp → System Management → Move Resource Group to Another Node → Select oracle_rg → Select standby node # 切换后,`clstat`中oracle_rg应在备节点显示Online,`ps -ef | grep pmon`应有进程6. 生产环境验证与巡检:用clverify、lsvg、iostat三把尺子量出P740的真实健康度
手册写到这里,P740的物理安装、AIX系统、HACMP集群、Oracle文件系统全部就绪。但上线前最后一道关卡,不是再敲一遍命令,而是用三套独立验证工具交叉检验——它们不告诉你“配置完成了”,而是告诉你“系统现在真的能扛住业务”。我习惯在每次重大变更后(如打ifix、调VM参数、扩VG)都跑这三套,因为AIX的“正常”有时是假象:errpt无错误,topas负载低,但iostat -D里某个hdisk的wsvc_t已悄然突破50ms,这就是Oracle慢查询的伏笔。
6.1clverify -v:HACMP配置的终极X光,专照逻辑漏洞
clverify不是启动检查,而是静态配置审计。它比clstat更狠,能发现smitty hacmp里埋下的逻辑炸弹,比如卷组在资源组里声明了,但实际lsvg中未varyon;或串口心跳参数在stty里设了9600,但HACMP配置里写了19200。
# 全面验证(耗时约3分钟) clverify -v > /tmp/clverify_full.log 2>&1 # 关键检查点(grep以下关键词) grep -E "(ERROR|WARNING|FAIL)" /tmp/clverify_full.log # 必须全为0,否则: # - ERROR: 配置致命错误,集群无法启动(如VG名拼错) # - WARNING: 潜在风险(如`/tmp`空间<2GB,影响dump) # - FAIL: 串口/网络连通性失败(心跳不通) # 快速验证(日常巡检用) clverify -r > /tmp/clverify_quick.log 2>&1 # 此模式只检查资源组依赖关系,秒级完成6.2lsvg -o | xargs lsvg -l:VG与LV的物理健康快照,揪出镜像断裂与空间告警
lsvg系列命令直击存储层,-o列出在线VG,-l显示其LV详情。生产环境最怕两种情况:rootvg镜像STALE(lsvg rootvg | grep STALE非空),或Oracle VG(如sqdbvg)剩余PP(Physical Partition)不足10%。
# 生成VG健康报告 lsvg -o | xargs -I {} sh -c 'echo "=== VG: {} ==="; lsvg -l {} | grep -E "(LV NAME|STALE|FREE PP)"' # 示例输出解读: # === VG: rootvg === # LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT # hd5 boot 1 2 2 open/syncd N/A # hd6 paging 32 64 2 open/syncd N/A # FREE PPs: 0 (0 megabytes) # ← rootvg无空闲PP,危险! # === VG: sqdbvg === # LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT # lvoracle jfs2 100 100 1 open/syncd /oracle # FREE PPs: 200 (102400 megabytes) # ← sqdbvg剩余100GB,安全- STALE判断:
LV STATE列含syncd表示同步中,stale表示不同步(需syncvg -v sqdbvg修复); - FREE PP阈值:Oracle VG剩余空间<10%时,
lvextend可能失败,需提前扩容。
6.3iostat -D 2 5:I/O性能的实时心电图,定位Oracle等待根源
iostat -D(Device mode)是诊断Oracle I/O瓶颈的黄金命令。2 5表示每2秒刷新一次,共5次,避开瞬时抖动。重点关注三列:%tm_act(设备忙时百分比)、avgserv(平均服务时间ms)、wsvc_t(写服务时间ms)。
# 执行 iostat -D 2 5 # 关键指标解读(P740+EMC VMAX标准): # - %tm_act < 60%:设备负载正常 # - avgserv < 15ms:存储响应快 # - wsvc_t < 20ms:写入延迟低 # 若wsvc_t > 50ms,Oracle "log file parallel write"等待必高 # 示例异常输出: # Device: %tm_act avgserv wsvc_t # hdisk0 95 120.5 210.3 # ← hdisk0严重拥塞,检查是否rootvg镜像未完成 # hdisk3 45 12.2 18.7 # ← EMC LUN正常从那以后我每次完成HACMP配置或存储扩容,都强制走一遍clverify -v、lsvg -o | xargs lsvg -l、iostat -D 2 5三连——不是为了证明“我做完了”,而是为了拿到三份独立证据,确认oracle_rg真的在线、sqdbvg真的有空间、hdisk3真的不卡。AIX小机的稳定,从来不是配置清单上的勾选,而是这些命令输出里每一行数字的诚实。希望帮到你。
本文还有配套的精品资源,点击获取