znh实施的项目使用的红旗安全操作系统,全称是:redflag security os 4.0,整个系统是基于asianux 3.0 sp2来做的,其中加入了selinux。只是这个系统什么时候发布的,我从来都不知道,后来和研发的同事问了一下,原来安全操作系统的所有售前售后工作都是研发的两个同事负责的。我说我怎么一点都不知道呢。此次是因为部署ha,研发的同事不太了解,我才介入。
周三去是装了几套系统,升级了一下内核。默认内核只能识别出2g内存,内核升级之后,可以正确识别出16g内存。
昨天周五去znh,是为了实施ha,结果曲折不断。可惜的是,znh机房不让使用u盘,不让接笔记本,手机都锁办公楼门口的柜子里面了,当时比较忙,也没有来得及用笔记下来。所以此次分析过程,只能描述,不能贴中间执行的结果了。
到znh门口,门卫那没有我的名字,是bmj的人没有给我报上,跟我一起的还有两个oracle的哥们,也没有名字,进不去。我联系了bmj的人,说马上给我们报名字,稍等一会就能进。结果这“稍”等了40分钟,门卫还没有新报的名字过来。中间有两个一起做项目的进去了,我让他进去叫一下bmj的人,结果都没有结果。再打mbj的人手机,已经无法接通了。肯定是手机被收了。无可奈何的情况下,我给孙巍打了电话,让他再想办法。结果五分钟后,孙巍给我打电话,说已经报上名字了,这时门卫也在喊我的名字,我终于进znh了。oracle的两个哥们还在外面等着呢。我进去之后,碰到bmj的人,让她解决oracle俩哥们。后来孙巍还打电话问我是否进来了。我说我进来了,oracle的俩哥们还在外面呢,孙巍说你看我这事办得怎么样?你多有面子啊。进机房之后说起这事,太极的哥们也说你们销售还挺强。进办公楼的时候,把手机锁到门口的柜子里面了。
盘阵已经map完毕,但是系统上emcpowerpath装不上去。这我不奇怪,虽然powerpath和asianux做过认证,但是我们用的系统可是“安装操作系统”,肯定powerpath安装文件验证系统release文件时过不去。
这是一个rpm文件,直接安装时,的确提示需要“asianux”,但是没有找到,我直接将/etc/asianux-release文件改成和asianux3一样的,还是无法安装上。不过这难不倒我,我可以查看rpm包中的脚本是怎么判断的。rpm --scripts -qp emcpowerpath*.rpm。脚本输出出来,读了一些关于asianux判断的部分,发现的确就是验证的/etc/asianux-release文件,但是到底如何验证的,没有仔细看,因为我又发现提示的稍微变化:需要“asianux 2”,但是找到的是“asianux asianux server 3”。我突然想到,这个肯定是适合红帽4和asianux2的版本,而现在的系统是asianux3,需要下载for rhel5的。
[root@ora1 tmp]# rpm -ivh emcpower.linux-5.3.0.00.00-185.rhel5.i386.rpm preparing... ########################################### [100%] /var/tmp/rpm-tmp.16416: line 146: [: redflag: integer expression expected /var/tmp/rpm-tmp.16416: line 165: test: redflag: integer expression expected expecting asianux asianux-3.0 system. found asianux asianux-redflag secruity os 4.0 system. error: %pre(emcpower.linux-5.3.0.00.00-185.i386) scriptlet failed, exit status 1 error: install: %pre scriptlet failed (2), skipping emcpower.linux-5.3.0.00.00-185 [root@ora1 tmp]#
|
这地方不让用u盘,只能刻录到光盘上,然后拷贝到机器上。幸好旁边emc哥们有for
rhel5的包,刻盘时顺便把我ha相关的东西也刻录上去。这个rpm安装的时候,也无法安装成功,提示需要“asianux
3”,但是找到的是“asianux asianux server 3”。我明白了,这“asianux server
3”不就是我写到/etc/asianux-release文件中的内容吗?应该改成3就可以和前面对应上了。我随即把/etc/asianux-
release文件中内容就改成一个数字3,安装成功。
其实这个地方,我感觉是rpm安装文件的script脚本有问题,这个脚本应该只看看/etc/asianux-release文件中是否有3这个数字就行,不应该就拿/etc/asianux-release文件内容和3比较啊。如果这样,我相信这个rpm包在正式的asianux 3上面也无法安装。
安装成功之后,注册license。其实旁边有一个做emc的哥们,我一边分析问题的时候,他一边跟我聊天,他说他当时听过孙玉芳老师的课,可以算是孙玉
芳老师的学生,又说当时孙玉芳老师为linux如何做出了贡献。这点我倒非常同意,所以也说了一下我的看法。他对红旗并不排斥,这点我能感觉出来,因为跟
着他的还有一个年轻人,看似他带着那个人过来一起干活,那哥们就一直怀疑在红旗上powerpoth能否正常使用。在我解决问题的整个过程中,孙老师的学
生一直在旁边看着我做,而且问我每步都是如何判断的,尤其当看到我在/bin/bash后面加上-x可以看到shell执行过程,他非常兴奋,说原来
linux还是有个功能,这对以后分析问题很有帮助。最终我将powerpath问题解决,他一直称赞我能力强,解决这个问题思路也比较清楚,还要了我的
电话,说以后有问题咨询我。
书归正传。powerpath安装完毕,需要启动powerpath,但是启动的时候又报错。因为rpm安装完毕之后,我又把/etc/asianux-
release改回去了。结果发现powerpath启动的时候,也需要验证此文件。被迫又改回3,但是还是无法启动,提示变了,不支持此内核。这也并没
有出乎我意料。因为这个安全内核肯定是改过了。
查看/etc/init.d/powerpath没有发现具体在哪验证内核版本了,所以将此文件的最开始/bin/sh后面加上-x,这样在此脚本运行过
程中,把运行过程打印出来了,终于发现是/etc/opt/emcpower/emcpower.linux-5.3.0.00.00/enable文件验证一些信息。又在enable文件中也添加了-x,执行了一下,发现问题所在。
enable中有对内核判断的部分,可以通过检索gawk来检索到,其中大概是这样判断的:通过uname
-r得到内核版本号,然后看看内核版本号中是否有rhel或者ax,然后再分别判断是否有xen和pae,然后根据相应的内核加载相应的驱动。当然,现在
安全操作系统的内核是:2.6.18-128.7rfsos4pae,显然,里面即没有rhel也没有ax,那么报出不支持此内核也是正常的。解决办法很
简单,在后面加上对rf的判断,即可通过。powerpath正常使用。
gawk -v v=rhel5 -v m=$expected_isa \
'/2.6.[0-9.-] ((el5)|(ax)).*xen/ {print v "-xen-" m; exit 0}
/2.6.[0-9.-] ((el5)|(ax)).*pae/ {print v "-pae-" m; exit 0}
/2.6.[0-9.-] ((el5)|(rf)).*pae/ {print v "-pae-" m; exit 0}
/2.6.[0-9.-] ((el5)|(ax))/ {print v "-" m; exit 0}
{exit 1}'`
|
后面ha的部署就比较简单了,成熟的方案。只是mac地址不让拿走,只能让销售解决这个问题。测试序列号可是到9月30,如果之前拿不到正式序列号,ha就停掉了。
阅读(2199) | 评论(0) | 转发(1) |