你要如何选择RHEL CentOS系统
在如此之多的操作系统中,如何选择一个你最适用的操作系统呢,选择错了一个操作系统会有很大的麻烦的。下面我们就来看一看下面这个故事。
两台过百万的硬件集群设备上,跑着某个证券交易所的一个业务。然后你选了debian和CentOS系统, 很牛X的对你的老板说,看,我给公司省了多少万,这种东西这么容易,自己都可以搞定的,Red Hat/Novell公司的售后支持啥都不懂,还不如自己用google,网上论坛或者邮件列表问呢。
老板赞许的看着你,心想你这个手下真的能力很强,这下今年IT基础建设的预算,又可以有一笔钱节省出来挪作他用了。
某天,你运气不好,CentOS系统出了问题,然后你们公司紧急要求服务器厂商的人,存储厂商的人,oracle的人,应用开发公司的人都紧急到场,开协调会讨论排错问题,而且要求到场的都是各个原厂商的资深技术专家。 这套集群上每天交易开盘,有大概50万股民会上来做交易(做股票的同学都知道,一个证券公司如果有开户交易股民50万,那是一个小证券公司), 现在离天亮还有7个小时。
一大堆人,包括你在内,你的老板在内,都忙起来勒。大家压力都很大,因为如果找不出故障原因和解决方案,基本上你们公司的麻烦大了,碰巧这几天股票不稳定,股民情绪本来就不好。
服务器和存储厂商的人做了诊断,拿出勒诊断报告,排除了硬件问题,Oracle的牛人拿出了详细的诊断报告,排除勒数据库的问题, 业务应用开发商也是如此。
最后,大家的目光聚焦到了你的身上, 没错,就是你。 你的确从一个技术人员的角度,给公司推荐了成本低廉的方案,但是你的过于自信和欠缺成熟的考虑,现在要让你付出代价勒。
我不知道这里同学知道不知道,一个正常的小证券公司,前一天的交易数据量,在清算后,为了排错,做一次完全的数据移动前前后后要花多少时间? 2个多小时 ! 光纤柜柜对倒 !
你还有4个小时,你的老板,老板的老板,那个负责证券公司业务的老总,意料之中的出现在你面前,问你,为什么CentOS系统厂商没有来?为什么不参与排错? 你无语了。你的老板给你打圆场, 如此这般的解释勒一下, 你的老板的老板严厉质问你老板还有你,他说: 我们缺这些钱么?我们需要你们的个人的小聪明么?还有4个小时开盘,到时候CentOS系统还没有弄好,你们都等着股民打上门吧。
这不是一个搞笑的故事,这是一个真实的故事,发生在2004年的国庆节以后, 我就是那个服务器厂商在现场的一个顾问, 故事中的"你" 是某个证券公司数据中心的IT运维经理,那天,大家的运气都不错,而且各个原厂商来的技术专家都非常资深,在第二天开盘的前3个小时内,我们找到并排除了问题,并且重写了数据移动的脚本,将数据移回服务器花了1个半小时,然后顺利撑过了这一天的交易。
那两台系统上跑的就是CentOS系统. 故障的原因是,CentOS系统虽然在源代码级和RHEL非常接近,但是CentOS系统组织没有和任何硬件厂商有战略合作,他们编译出的二进制系统,也就是CentOS linux,和RHEL 企业版有至少10%以上的差异,主要是编译过程的工程手段不同,以及硬件厂商的特定patchset造成的,另外CentOS系统组织作为一个非营利性的组织,无法对编译出的CentOS linux二进制系统在各种平台上做广泛的和完整的测试,所以在上面这个故事中,由于我们在每台服务器上都部署了光纤双环路,两块FC HBA卡需要在linux下面做绑定,CentOS linux在安装了厂商提供的 FC HBA驱动之后,CentOS linux并没有在这种卡上做完整测试,而且更要命的是,那个提供FC HBA卡的硬件厂商也没有对CentOS做测试和认证,所以CentOS系统只能支持这种FC HBA上芯片家族中的一种,但是却把这两块卡当作那种芯片识别出来而且去驱动勒,由于是双环,卡之间除了failover还需要做load balance,因此触发勒CentOS和驱动之间的兼容性问题,导致系统出现问题。
我通过修改卡厂商的srpm包,调整了驱动源代码里面的参数,冒险尝试了一下重新编译挂到了CentOS系统上,结果运气好被蒙对,驱动本身的确可以支持相近系列的芯片,但是需要在驱动源代码的参数上做调整且重新编译。我, 后来和那个IT运维经理成为了关系非常不错的朋友,一直到现在。
我的逻辑是,非商业版本的linux,自己家用玩玩是没有问题的,但是只要你不是写这个linux的人或者你对这个linux的熟悉程度远远没有把握,你就不要盲目自大去把它用在关键的生产环境。 里面的细微末节你是根本不知道的,而且不可能指望每次都像上面这个故事的主人公运气这么好,弄不好会出人命的。
中国和国外的证券公司和期货公司用redhat RHEL很普遍,他们有些公司的技术人员linux水平也都是不错的,你看哪个敢用没有专业服务的?