最近互联网故障是一件接着一件,仅在5月就发生了多起。网易的骨干网遇到攻击导致其游戏业务受到严重影响,由于传输光纤被挖断导致支付宝中断2小时,紧接着携程网由于人员误操作导致网络中断近12小时。从这些事件中不难看出,所有故障的产生都来自人为或者外部环境因素所导致,而不是数据中心设备本身。根据以往的统计数据也可以看出,数据中心发生的故障原因中人为因素占了80%。很多故障都是可以通过加强对人的管理而避免的,而并不是技术本身,导致数据中心故障的因素绝大部分来自外部而非自身,所以要保证数据中心稳定不间断运行,必须对其生存的外部环境进行各种可能的故障预测,以便考验数据中心的各种应对措施。
数据中心最终都是要接入到运营商的骨干网的,运营商的网络并不是数据中心能够控制的,所以就需要考虑骨干网的各种故障对数据中心产生的影响。比如最常见的骨干网业务中断,骨干网络一般是由环网组成,一边中断业务会马上切换到另一边,但实际应用中,也可能出现双双中断,比如骨干网络节点的路由器故障,或者广播风暴了,也可能出现了网络攻击,总之结果都是去往数据中心的链路中断了。这时数据中心无能为力了,如果没有很好的备份系统,只能坐等,按照运营商的故障处理效率,恐怕要达到小时级别,这对数据中心的业务会产生严重的影响,尤其是支付宝这样的大型数据中心,每小时的成交量都在几千万,小时级别的中断损失严重,并且一次这样的业务中断往往就可以使得数据中心的评级连降两级,因为高可靠性的数据中心要求全年无小时级别的业务中断。在这种情况下,有人提出异地数据中心的技术,即通过在多地建立数据中心,这些数据中心的业务可以备份,当承载业务的数据中心故障时,直接将业务切换到其它的数据中心,这样可以保证数据中心业务运行的连续性,甚至可以做到业务层面无感知,自动切换。这个切换很简单,基本都是通过调整路由的方式完成,将镜像到原来数据中心的访问流量通过路由指向可访问的正常的数据中心,路由的切换可以是通过协议探测来自动切换,当协议探测不通时候,路由自动切换,在这个切换过程中,通过技术手段可以做到不丢包或者很少量的丢包,这样业务层面没有感知。现在很多大型的数据中心都在建设灾备中心,就是要避免出现灾难级别的事故时,数据中心业务也不会受到影响,灾备中心和异地数据中心的作用差不多,主要目的都是对现有的数据中心业务做备份。当然,这样直接建设一个数据中心做灾备是耗资巨大的,而且绝大多数的时候也派不上用场,这个只有财大气粗的数据中心才会这样做,更多的是多数据中心备份,也就是处于多地的数据中心同时工作,当其中一个数据中心故障时,业务会切换到其它几个数据中心上进行分担,这样只要原有数据中心设计上有一定的冗余即可。在短时间内,其它几个数据中心运行可以保持业务不受到影响,等故障数据中心修复后,业务再切回。这些年关于灾备中心,异地数据中心,多数据中心等解决方案都得到广泛关注,从技术上讲不存在实施的难度,但是实际应用并不多,主要还是成本的因素。建设一个灾备中心,一年中可能一次也用不上,这对投资是极大的浪费,多数据中心方案可能更容易接受,多个异地数据中心共同承担故障数据中心的业务,这样,这些数据中心只要有一定的业务处理能力预留就可以了。
我们在数据中心设计上做到了尽善尽美,却经常忽略人为的因素。数据中心的业务系统是非常复杂的,但越复杂的系统越容易出现人为故障。不管人为故障是无意的还是有意的,都应该极力避免。避免人为故障最好的方法就是加强对操作人的管控,在数据中心运行的过程中,切记不要轻易对设备参数进行调整和改变,通过设置各种访问控制列表,不同级别的人访问的设备是不同的,在设备上敲入的命令也要经过命令行授权,没有通过命令行授权的命令是无法执行的。虽然有这些管理措施,但是还是无法完全避免人为的故障。比如很多时候要进行业务调整,这必然要对数据中心运行参数进行改变,这就和操作员的技术能力强相关,有些操作员对业务的理解能力很强,可以很快做出正确的调整指令,但有些操作员可能就会误操作,导致业务异常。这些无意的人为故障,那么可以通过增加操作员的培训或者让经验丰富的人员来执行,通过加强对人员技能的培训,基本可以减少这类故障的发生。而有意的人为故障更加隐讳,很难避免,毕竟每个人心里想的外人很少有人知道。数据中心内部包含有大量隐私数据,通过获取到这些数据中心甚至可以非法获利,还有可能有些人就是为了报复,这些有意识的操作导致的故障通过管理制度也难以避免。就像这几次空难,最后确认都是机长的原因,我们无法确知机长的心理活动,所以这种人为故障是最难发现和避免的。为了减少这种故障,只能从感情上去教育,提升数据中心人员的职业道德感,时常给数据中心人员敲敲警钟。虽然数据中心故障很少能够带来生命上的伤亡,却可以造成金钱上的严重损失,这往往是一个数据中心工作人员无法补偿的,让数据中心人员知道这样操作的严重后果,从而减少这类有意的人为故障。
故障给数据中心带来的负面影响是沉重的,但又是不可避免的,任何一个数据中心都出过大大小小的问题,关键是要做好这些故障的预防措施和补救措施,以便将影响降低。数据中心并不怕出故障,怕的是出了故障没有修复机制,或者无法及时修复,这样任何一个小故障都可以演化为重大事故。对于数据中心故障要保持一颗谨慎的心态,警钟长鸣。
作者:harbor
来源:51CTO