暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

构建安全可靠的云计算资源池

顾炯的云世界 2016-04-20
620




2011年前,我们的系统都是烟囱式的,一个系统就是一个完整麻雀,虽然很小,但是五脏俱全。有独立的网络、安全、存储设备、服务器等。维护人员不但要维护软件还要维护硬件。系统内大部分设备的利用率很低,个别设备却还在不断的扩容。物理机时代大家预测的需求往往是一年起,甚至二年,IT资源的闲置、运营费用,都是极大的浪费。虽然那时开始集中采购,但是没有控制需求源头,没有按需分配,IT设备的单价下降不少,但是数量还在增长。

因此,我们按照IT资源集中建设,资源共享,按需分配的原则,建设了统一资源池。为了提高服务器的利用率,引进了计算虚拟化,搭建了以核心交换机虚拟化堆叠的共享网络和存储共享的存储网络。资源池可以根据用户的需求,灵活的配置各种资源,并能够弹性伸缩;虚拟机又提供了“迁移”的辅助维护手段;资源池快速提供资源的能力极大满足了业务快速部署、推广的需要。5年来资源池的规模逐步变大:


经过5年的建设和发展,实现了一个软件定义、双活、安全的“内外一朵云”的用户自定义云计算资源池体系。2015年整合了IT系统、大数据硬件平台形成了以核心交换机远距离虚拟堆叠,大2层互通的,金华、绍兴二个物理节点的统一资源池。网络采用核心交换机-接入交换机扁平设计。后期引入SDN的虚拟网络作为补充。二个物理节点各有一个网络出口,业务可以根据实际情况选择主备路由。目前资源池内上线了800多台各类服务器,100多台网络设备,4P的SRVSAN,1.5P的FCSAN,运行了400多个系统,8000多台的虚拟机。是目前业界实现最远距离的双活资源池。在中国电信集团内首先完成大型业务平台云化、首个语音类平台NVF化,是首个部署和商用SDN和SDS的资源池。目前浙江公司的大部分自有平台和政企客户的平台都运行在这个资源池内。但是资源池的规模越建越大,应用越来越多,林子大了,鸟多了,风险就更大了,一旦资源池发生故障,后果很严重。


5年来我们最担心、最害怕出现的事情就是资源池出现突然故障。资源池的本质是共享IT设备,提高设备的利用率。为了实现这个目标,我们采取在原有硬件设备上增加软件的方式来实现计算、网络、存储的虚拟化,从而提高整个资源池的利用率。资源池存在硬件故障以外,还增加了虚拟化等软件的BUG引发的风险,发生故障的概率其实比物理机时代更大,我们简单的从计算、网络、存储和数据安全上做一个分析:

1、        计算不可用是资源池中最常见的故障,除了计算资源故障意外,网络故障和存储故障都会导致计算不可用。物理服务器的硬件故障或驱动等软件故障,都会导致虚拟机故障,虽然大部分情况都可以利用虚拟机的“冷迁移”快速恢复,但是也有些故障迁移手段也爱莫能助。

2、        资源池内的网络往往是采用虚拟化堆叠技术,二台网络设备虚拟化成为一台,二条链路捆绑聚合成为一条链路,增加了网络的安全性和提高了带宽。所以传统网络设备出现问题导致资源池出现故障的案例不多。但是在资源池内除了传统的南北向流量,还有东西向流量,这些流量是传统流量的几十倍、几百倍。虚拟网络世界的网络安全往往会触发物理网络的安全,如虚拟机内部攻击防火墙、负载均衡器的事情也发生过,而且很难一下子定位故障。另外资源池出口网络会受到上级网络的影响,出现网络拥堵和网络中断的故障。

3、        存储设备本身是一个单点设备,也是整个资源池唯一的单点物理设备。存储和存储网络的故障概率虽然很小,但是一旦发生故障,破坏性是巨大的。虚拟机的系统盘、数据盘都依赖共享存储的提供,一旦存储系统故障,所有挂载在故障存储下的虚拟机都会故障,影响面极大。

4、        另外的一种事故叫数据丢失。这个往往是操作不慎或者应用BUG引起的。传统的业务系统中,都有一个“数据备份”的工作,将数据定时备份到不同存储介质中。这项工作在虚拟机上也一直在执行,但是备份的数据和运行的数据在都在同一个存储上,甚至在同一个LUN上,数据备份的安全性就打了折扣。

        资源池不是保险箱,它主要解决的是资源利用率的问题,提高资源利用率带来了新的发生故障的因素。



我们来看看这5年发生的故障,基本上每年都会发生故障,特别是资源池刚刚建设的初期,因为经验不足,资源池体系架构不完善,引发的故障次数较多,但由于加载的业务少,影响面不大。

2012年发生了HP刀片服务器后的共用的2块VC模块同时故障,导致FC网络中断,虚拟机丢失系统和数据盘,导致虚拟机冷迁移。但是不少虚拟机冷迁移后,系统不能顺利启动,导致出现不少系统出现业务中断。比如有些操作系统在突然关机后,会进行保护,需要人工介入后才能重启,有些在安装系统时候疏忽,配置为网络启动等,导致系统不能启动。2012还发生由于存储设备主备电源接入同一路,而恰好发生电力供应瞬断,导致存储掉电,导致资源池全面故障的事故。2012年还发生了由于共用跳板机导致的木马攻击和病毒传播事件。为了解决这些隐患,2013年部署了双活的资源池、虚拟堡垒机、东西向的防火墙和无代理的防病毒软件。

      2013年出现了tomcat应用中间件配置端口在运行中没有关闭,导致资源池内的物理防火墙受到从内部的攻击;2014年出现了触发负载均衡软件BUG,导致负载均衡连接数用尽等故障。分别采用了增加安全扫描和升级软件的方法解决,同时还积极引入新的SDN和SDS技术,提升资源池的灵活性和安全性。2015年在设备安装下电的过程中,发生新服务器主板冒烟的故障,还好处理及时,没有引发灾难。

 2016年3月初思科服务器FCOE交换模块出现故障,引发整框服务器“将死但未死”状态,无法触发“迁移”,大量虚拟机通信故障,事后思科及时查出故障原因,是不同虚拟机上的应用,先后触发2个不同BUG,最终导致出现FC网络故障。3月30日资源池内某一ip地址被上万台“肉机”攻击事件,导致资源池某一个物理节点网络入口被堵,导致一侧资源池网络故障。

      这些资源池的故障都很难防范,往往只能采取事后补救的方法。除了这些风险,还根据资源池的特点,列出了更多的风险。


        虚拟机内部的风险,如后门维护漏洞、虚拟机之间的安全隔离、木马病毒可以通过配置虚拟堡垒机、虚拟防火墙、无代理的防病毒软件、虚拟IPS/IDS来防范。应用的BUG触发的BUG,很难防范,只能通过缩小影响的范围上做点文章。

        存储存在单点故障,将通过引入SRVSAN来解决;服务器会出现硬件故障、软件BUG和硬件驱动等问题,通过引入计算型定制化服务器来解决。

        资源池出口网络的安全往往会出现拥堵或受到网络攻击,可以通过防火墙、数据清洗、调整路由策略、云堤、路由黑洞的方法解决。云堤是中国电信独有的分布式网络安全产品,可以在攻击源头上进行数据清洗。


        当硬件服务器的故障概率一定的情况下,资源池的规模越大,发生故障的次数就越多,这是无法避免的事实。另外,传统烟囱模式,一台服务器往往运行单一应用,而资源池模式,一台服务器被分成了几台、十几台虚拟机运行不同系统的应用,可能触发软件BUG的概率也大大增加。为了提高机架利用率,节能降耗,资源池内往往采用集成化程度很高的刀片服务器,当这些刀片的共用部分出现故障,引起的是整框服务器的故障,影响的是几百台甚至是上千台虚拟机的故障,影响面就更广了。

        由于物理服务器的故障是不可避免的,只能采取减小物理机故障影响的范围,即采用相对小规格的计算能力的服务器,每台服务器最好没有关联性,一台服务器发生故障不会波及其他服务器。浙江公司在2013年作为试点省,尝试使用2路8核的计算型服务器来承载虚拟机,起到了很好的效果。在资源池建设的初期采用的是PC服务器,机柜利用率不高,价格贵,但发生故障的时候,仅限于单台服务器;后来采用刀片服务器,机架的利用率提高了,成本也降低了,但是一旦共用部分出现故障,影响面很大;现在我们采取兼有PC服务器和刀片服务器特点的定制化服务器。


        定制化服务器采用高压直流供电,冷热通道分离,共享电源、,达到节能降耗的目的,节能达到20-30%;通过局部重点优化,简化功能、减少不符合特点的部件,达到节约投资的目的;降低投资20%以上;

        通过引入较小计算能力的服务器,匹配轻载的虚机应用,提高资源利用率,缩小故障范围,减轻故障的影响面;实施定制化远程管理,提高管理效率·、降低管理门槛,进一步提高资源的利用率。经过几年的实践证明,目前2路8核,128G内存的定制化计算型服务器是最适合目前资源池的需要,是资源池的计算资源的首选。

 


        我们利用核心交换机远距离虚拟化堆叠,形成跨域的大二层网络,不管服务器部署在那个物理节点上,实际都部署在同一个资源池内。但是不同物理节点采取不同的电源系统、有相对独立的网络架构和计算、存储资源,同时发生故障的概率很低。对于重要的业务系统采取双活部署,通过将应用部署在2个物理节点负载均衡,数据库同步或存储同步的方式,可以大大降低资源池故障带来的对业务的影响。同时双活部署可以取代大部分容灾部署的功能,而且相比容灾还有出现故障不中断业务、成本低等特点。但是静态数据的容灾功能也不能完全取代,比如要恢复到某个特点时间的状态,基于北京研究院研发的蓝存,就能实现数据的异地自动备份和灾难时候系统的快速恢复。双活和容灾全方面保障了资源池安全稳定的运行,保证了重要业务连续性运行。


        双活服务器部署的原理主要是利用大二层网络并将防火墙、负载均衡全局部署并进行N虚1后分区配置。而一般系统往往有2部分的服务器组成:无状态的应用服务器和有状态的数据库服务器。将应用服务器按照需求分别部署在两个物理节点上,二个物理节点的服务器采取轮询或主备的方式工作;有状态的数据库服务器由于需要状态数据同步,可以采取数据库同步或存储复制同步的方式。实践证明,采用数据库同步方式同步时间短,成本低,能很好的满足双活部署的需要,但数据库同步部署有一定门槛。每个物理节点都有独立的出口和同一个上级网络连接,采用BGP协议。每个业务可以根据需要设定主路由,当上级网络出现异常,可以进行主备倒换。这样,不光资源池内网络有了双活保障,资源池的出口网络也有双活保障。


        资源池内的存储是一个共享的中、高端FC存储,在资源池内还建设了一张FC网络,由于存储造价很高,一般存储设备都是单点设置。一旦存储网络或存储本身故障,给资源池带来的是灾难性的故障。我们通过X86服务器+廉价的SATA盘组成的分布式块存储,采用分布式机头,分布式IO多副本读写、分布式的缓存读写和数据的强一致性同步,可以大幅度提高存储的性能、进行线性扩容和提供高可靠性。采用软件定义的SRVSAN存储替代FCSAN,可以通过分布式的方式提高存储的可用性,而且可以用传统的以太网替代FC网络,降低了成本和维护门槛,减少故障点。

 


        通过基于开源ceph的对象存储,可以提供资源池内每台或每个用户一个备份路径,用户可以按照原有的备份习惯定义自动或手动的备份任务,实现数据的容灾备份。系统还根据虚拟机特有的特性,利用VMWARE提供的VDP工具,对虚拟文件(VMDK)进行自动全量或增量备份。目前可以支持8000台虚拟机的备份,IO性能超过300MB/s。这个存储还可以通过NFS接口的封装,提供NAS存储的服务。为资源池提供了独立的、廉价的存储资源服务。

 


        我们这次实施的是独立存储项目,采用的是异地数据备份,本地提供NAS服务的方案。即在绍兴和金华各部署8台35块4T硬盘的服务器的对象存储。绍兴存储备份金华节点服务器的数据,金华存储备份绍兴节点服务器的数据。而NAS存储的服务采用就近服务的方式,即绍兴的服务器使用绍兴的NAS服务,金华的服务器使用金华的NAS服务。经过测试平均每台虚拟机磁盘空间是100GB,每台虚拟机平均备份的时间为80s。

 


        前几个ppt中,我简单介绍过双活实现的方法,但怎么样实现快速的系统容灾呢?其实就是利用蓝存实现的。我们知道,虚拟机是由CPU+内存+虚机文件组成的。把绍兴资源池内的虚机文件都备份在金华蓝存中。并根据原有的虚拟机的配置,在金华节点利用蓝存的NAS接口配置同样的虚拟机。但这些虚拟机日常是不开机的,并不消耗资源。在灾难发生的时候能快速开启虚拟机,提供业务。由此看来,通过蓝存提供的容灾方案也是低成本的,避免了以前容灾方案中所有设备都必须冗余的高成本。 


        
其实,资源池内大部分系统发生故障是应用本身的故障。如果资源池的故障会影响不止一个系统。由于云计算知识的不普及,资源池的维护人员经常会背黑锅。

        目前资源池最大的风险还是人。云计算是一门综合的技术,融合了全部的IT和IP甚至是CT的技术,培养一个成熟的云计算的人才是一个长期和漫长的过程,一般需要2-3年的时间。资源池作为基础资源的提供者,需要灵活快速的为各种系统提供资源,当出现故障是能快速的定位故障并解决故障。这种维护的模式改变了原有监控为主,故障判断定位和处理厂家为主的维护模式。现在资源池是以1-2个全才核心人员为主的维护体系,已经无法匹配资源池的维护要求。随着系统不断迁移,如果还不改变现有的维护体系,资源池最终可能发生更大的故障。

      



文章转载自顾炯的云世界,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论