Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2031720
  • 博文数量: 220
  • 博客积分: 8531
  • 博客等级: 中将
  • 技术积分: 4976
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-18 13:33
文章分类

全部博文(220)

文章存档

2017年(1)

2015年(1)

2014年(5)

2013年(6)

2012年(6)

2011年(30)

2010年(37)

2009年(53)

2008年(41)

2007年(40)

分类: LINUX

2009-09-12 11:59:02

    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就停掉了。
阅读(2226) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~