NFS在AIX HACMP中的集群配置
题记:
xx中在我们的项目头一次设计了在Aix系统下建立NFS集群用来给uap挂载存储录音文件,之前在与华为客服的沟通中,客服信誓旦旦的说uap可以挂载aix系统的nfs,但在项目的真正实施中遇到问题时,客服又立马变卦说uap仅支持suse linux以及windows nfs。于是开始了在完全没有技术支持的情况下且要实现在网络上几乎找不到资料的hacmp nfs系统的苦难历程,前后耗费4天之久,在几乎准备放弃的情况下,最终还是坚持下来并实现了功能,中间做了各种各样的方式去尝试,甚至下载了ibm关于nfs的红皮书去查,可谓心力交瘁……写下上面的东西,只是想告诉自己,做技术千万不能被技术所打倒,只要努力去做,没有会或者不会。多分析,多总结,即便最终没有实现想要的功能,但只要过程中你没有敷衍自己,那就算是成功了。
文档参考部分:
1、集群环境:
两台P550小型机,操作系统Aix 5.3 ML 11已经部署hacmp 5.4。部署NFS之前已经在该集群中成功部署Oracle双机。共享卷组和浮动IP分别如下:共享卷组:appvg,大小约1.66T,其上建立文件系统并挂载为/fileserver浮动IP: 10.80.4.145,两台集群主机网卡IP分别为10.80.4.142/10.80.4.143
2、最终nfs配置
作为参考文档,先附上最终的必须配置l /etc/hosts文件(以一台为例)127.0.0.1 loopback localhost dbsvr2 # loopback (lo0) name/address localhost后边的DBSVR2S是主机hostname,添加的作用是解决oracleem创建失败(提示端口冲突)以及忽略后不能启动的故障10.80.4.142 dbsvr1_boot dbsvr1 hacmp boot192.169.100.1 dbsvr1_stb hacmpstandby10.80.4.143 dbsvr2_boot dbsvr2 hacmp boot10.80.4.144 dbsvr hacmp service ip(oracle)10.80.4.145 appsvr hacmp service ip(nfs)192.169.100.2 dbsvr2_stb hacmp standby10.80.4.132 uap1 指定的mrs板地址和hostname(hostname可自己指定,注意这里必须添加,而且必须是mrs板的ip地址,下同,共3块板)10.80.4.133 uap210.80.4.134 uap3
l /etc/passwd以及/etc/group默认情况下aix的nobody用户和组id是一个比较大的数字,而uap默认使用的uid是65534,所以需要修改nobody用户gid为65534,uid为65534
l 共享文件系统权限
l /etc/exports以及/etc/xtab文件其实只需要改/etc/exports文件就可以了
l 启动和关闭nfs的脚本首先是要给脚本执行权限。(ls –l中的x参数)Appstart和appstop是hacmp资源中加载的脚本。Appstart之所以加了一个先关闭再启动,是因为hacmp情况下,作为集群资源的文件系统只要检测到/etc/exports文件的存在,就会启动nfs,而实际测试的过程中,发现有时uap不能发现系统自动启动的nfs,所以加上一个关闭再启动。
l Nfs启动后的进程
l 最重要的,集群中资源卷组的参数设置执行smitty hacmp-extended configuration-entened resource configuration-hacmpextened resource group configuration-change/show-app_rg-关键在于图中椭圆标记的3个位置,这里都是需要手动添加和修改的。第一处修改告诉系统我们要接受hacmp nfs 管理的文件系统,第二处修改是告诉系统在ip配置之前配置卷组,第三处告诉系统要将哪个目录export出去给其他系统共享。
l 最后看看nfs的几个守护或者关联必须进程图中active的各进程任何一个没有启动都会无法正确执行nfs
3.Uap下nfs路径设置
看看这里的remotedir参数吧,客服肯定的告诉你,remotedir不需要加/,但是实际上,只有windows下的nfs是不需要/的,而linux和aix必须加/才能访问。
后记:搭建过程中的思路
l 最初的思路是认为让nfs不随机启动,在hacmp接管卷组和ip资源后,利用脚本中的启动nfs命令将 nfs启动起来实现切换。理论上确实没问题,关闭/etc/initab文件中的nfs自启动后,居然发现nfs又奇迹般的自动启动了!
而且在切换的过程中发现由于系统已经启动了一个nfs daemon,再启动另外的一个nfs的过程中居然会导致hacmp无法启动…l 这个时候在uap上发现无论如何uap也无法挂载已经启动的aixnfs,但是用linux、aix甚至windows系统都可以挂载aix nfs。并且在虚拟机上安装了两个不同类型的linux测试,发现uap只识别到了windows nfs。于是开始怀疑uap的问题,咨询了华为800后的答复居然是uap仅支持suse linux和windows nfs…但理论上分析,既然suse支持,那么就算aix不行,红帽也总可以吧?于是分析红帽的日志/var/log/messages,首先发现的报错是bad path fileserver,说明不加/是行不通的,但是加了/后日志显示验证成功,但是uap怎么也发现不了。于是开始有些灰心,决定放弃等华为支持。l 靠华为是靠不住的。再次重装了redhat as 5系统测试uap挂载。最初是按照华为uap开局指导书中的参数进行/etc/exports配置/share10.80.4.128/255.255.255.192 (rw,all_squash,async,anon-uid=65534,anongid=65533)" Exportfs时系统会提示你使用 10.80.4.128/255.255.255.192(sync) * (rw,all_squash,async,anon-uid=65534,anongid=65533)"进行配置。但是看参数说明,又找不出加了ip地址段有什么问题,几经分析后觉得既然*代表所有,那么要ip段要什么用呢?遂删之。结果就成了如下这个结果[root@localhost ~]# cat /etc/exports/fileserver *(rw,all_squash,anonuid=65534,anongid=65534)重启uap后,奇迹出现了,mrsnfs居然挂载成功了…但是在aix下仍然是disconnect,一筹莫展。 l 这个时候aix主机上/etc/hosts中记录的仍然是uap主板的ip地址,这一点其实从开始就犯错误了,但是由于windows下挂载时不要求hostname和ip的对应关系,而且linux下也不需要。再次开始怀疑是aix的exports问题,开始改client版本,改验证方式..无效。于是再和linux对比,在观察日志的时候,突然发现linux接收到的是mrs板ip地址的挂载请求,事情终于有了眉目,修改aix下的/etc/hosts后,果然uap可以挂载了。但是兴奋的的去切换双机时,系统提示/fileserver无法卸载,双机直接挂掉了。再次陷入低谷。l 查了很多资料,文件系统挂载有硬mount和软mount两种方式,其中软mount可以用用如下命令
# fuser -x -c /home
/home: 11630
# ps -fp 11630
UID PID PPID C STIME TTY TIME CMD
guest 11630 14992 0 16:44:51 pts/1 0:00 -sh
# kill -1 11630
# umount /home尝试之后,仍然是umount busy。难道只能做单机,但总觉得ibm既然在hacmp中支持nfs,不应该考虑不到卷组正在使用的情况,于是继续查资料,继续思索。终于查到一点可以把文件系统防在hacmp中管理的一点资料:原文如下: NFS mount
当servera宕机后, HACMP进行正常的接管过程,serverb 重新varyon sharedvg , 并且mountsharedfs 并把它输出,客户端重新mountsharedfs . 修改app_rg参数后终于可以正常切换了。Change/Show Resources/Attributesfor a Resource Group
Type or selectvalues in entry fields.Press Enter AFTERmaking all desired changes.
Resource Group Name appvg Node Relationship cascading Site Relationship ignore Participating Node Names / Default NodePriority servera serverb Dynamic Node Priority [] Service IP label [] Filesystems (default is All) [/fileserver Filesystems Consistency Check fsck Filesystems Recovery Method sequential Filesystems/Directories to Export [/fileserver] Filesystems/Directories to NFS mount [] Network For NFS Mount []l 继续测试双机切换,发现偶尔在切换到另外一台机器后,uap发现nfs是disconnect状态,而这时候hacmp发现client一直在连nfs,达到一定次数不能连接后,居然自动又切换了,然后hacmp又挂掉了…继续尝试,发现在双机切换后,手动执行下appstop和appstart脚本后,uap是可以正常连接的。看来hacmap下nfs并没有想象的那么美好,而活着uap的判断比较傻,继续修改appvg参数中允许卷组在IP配置之前挂载后,终于是没问题了。参考资料
参考:http://unix.ctocio.com.cn/483/11463483.shtml]http://unix.ctocio.com.cn/483/11463483.shtml详解AIX NFS服务的开启 http://www.adam8157.info/blog/2010/06/nfs-uid-mapping/]http://www.adam8157.info/blog/2010/06/nfs-uid-mapping/http://www.adam8157.info/blog/2010/06/nfs-uid-mapping/]nfs挂载之uid映射 http://jbweng.blog.163.com/blog/static/6771533200962832449498/]http://jbweng.blog.163.com/blog/static/6771533200962832449498/在AIX 5L上配置NFS Server http://blog.chinaunix.net/u/10070/showart_1164423.html]http://blog.chinaunix.net/u/10070/showart_1164423.htmlAIX 下出现umount busy的处理