投资界有一句至理名言――“不要把鸡蛋放在同一个篮子里”。说的是投资需要分解风险,以免孤注一掷失败之后造成巨大的损失。同样近年来自然灾害的频发为各行业的安全敲醒了警钟,对于IT系统来说如何通过灾备保证系统安全及业务连续性成为广大IT人关注的问题,而双活数据中心则是热门的解决方案。但双活真正能够实现业务的零中断吗?在建立双活之初,又该如何根据自己的实际情况来选择双活的实现方式(数据库双活、应用双活、存储双活、网络双活)?本文就来说一说道一道。
双活数据中心,区别于一个数据中心、一个灾备中心的模式。灾难是一个小概率事件,采用一主一备这种方式,备份数据中心只在灾难发生时才能起到作用,这对于某些用户来说是IT资源和资金的浪费。而双活数据中心的特点是两个数据中心都是在线运行的,如果断了一个数据中心,另外一个数据中心还是在正常运行的,对用户来说是不可感知的,业务几乎不受影响。这样就充分利用了资源,从而避免一个数据中心常年处于闲置状态而造成浪费。并且通过资源整合,“双活”数据中心的服务能力是双倍的。
一、网络双活
从网络上来看,双活数据中心需要将同一个网络扩展到多个数据中心,在数据中心间需要大二层网络连接并且实现服务器和应用的虚拟化数据中心互联技术。
大二层的网络技术有IRF、TRILL、SPB、EVI等。IRF是将多台网络设备(成员设备)虚拟化为一台网络设备(虚拟设备),并将这些设备作为单一设备管理和使用。
IRF把多台设备合并,简化了管理提高了性能,但IRF构建二层网络时,汇聚交换机最多是可达4台,在二层无阻塞的前提下可接入13824台双网卡的千兆服务器,如果客户期望其服务器资源池可以有效扩充到2万台甚至更大,就需要其他技术提供更大的网络容量。
TRILL的全称就是Transparent Interconnection of Lots of Links,顾名思义,其本质就是将很多条链路透明地组织在一起,以致于上层IP应用感觉这只是一条链路似的。它本质上是一个2.5层的技术,使用最短路径、多路径等三层路由技术来讲多条链路组织成为一个大二层网络,并支持VLAN、自配置、多播等二层功能。TRILL目前最大可以支持10核心组网,其最大能力可以无阻塞的接入27648台双网卡千兆服务器,但TRILL技术目前在芯片实现上存在客观缺陷,核心层不能支持三层终结,也就是说TRILL的核心层不能做网关设备。必须要在核心层上再增加一层设备来做网关,这导致网络结构变得复杂,管理难度增加,网络建设、运维成本都会增加。
SPB的组网方案和TRILL基本相同(同样可支持接入27648台),其优势在于能够方便的支持VLAN扩展功能,但同样存在网关与SPB核心必须分离的芯片缺陷,导致网络层次增加,管理、运维成本增加。
EVI可以通过汇聚层和核心层之间的IP网络实现二层互通,所以通过EVI扩展多个二层域的时候不需要更改布线或是设备,仅仅需要在汇聚设备上启用EVI特性即可,这样可以平滑的扩展二层网络的规模。其技术成熟、架构稳定,能够支持大规模二层网络(接入规模221184),运维也简单方便。思科的Cisco OTV技术与EVI同理;另外,也有部分虚拟化和软件厂商提出了软件的L2 over L3技术解决方案。例如VXLAN、NVGRE,前者是由VMware和思科提出的标准(使用了L2oUDP的封装方式),后者是由HP和微软提出的标准(使用了L2oGRE封装方式),在虚拟化层的vSwitch中将二层数据封装在UDP、GRE报文中,在物理网络拓扑上构建一层虚拟化网络层,从而摆脱对网络设备层的二层、三层限制。这两种技术的主要特点是隧道的起点和终点主要在vswitch上,而不是物理交换机上。隧道的封装在服务器内部的vswitch就已经打好,然后将物理网络当作大的IP背板加以穿透,大二层范围可以跨DC。以期达到快速部署,灵活创建虚拟化网络的目的。但这些技术由于性能、扩展性等问题,也没有得到广泛的使用。
在数据中心之间建设一张虚拟的大二层网络是实现网络双活的基础。通过大二层网络,可以实现跨数据中心的集群、资源共享和故障探测,它是保证故障发生后到故障切换中间过程不丢包的重要手段。
另外通过负载均衡技术,可以实现流量在不同数据中心间的调度以及在单数据中心内多服务器的负载分担;同时,负载均衡设备也是探测业务故障实现自动切换的关键实现点。
二、存储双活
存储双活使信息能在数据中心内部以及数据中心之间共享、存取或移动,从而将各种不同的存储系统联合成为单一资源。它允许地理上分离的两个数据中心间的存储系统同时进行数据存取,对客户透明,且保证了数据的可靠性和可用性。
利用跨数据中心的存储虚拟化功能和数据镜像功能,结合上层应用集群,使两个数据中心都处于运行状态,可同时承担相同业务,提高数据中心的整体服务能力和系统资源利用率,并且互为生产和备份,当单数据中心故障时,业务自动切换到另一数据中心,实现RPO=0,RTO≈0,解决了传统灾备中心不能承载业务和业务无法自动切换的问题。
典型的技术有IBM的SVC和EMC的VPLEX。IBM SVC是一个软硬件集成化的产品,专业的虚拟存储软件运行在集群式的硬件引擎上。主机集群可通过两边存储同时访问同一个虚拟卷,双中心同时提供对外服务,可提高资源利用率。EMC的VPLEX Metro技术则可以将在100公里之内的两个VPLEX集群连接起来,也就是会有8个VPLEX引擎,通过这些引擎能将两个数据中心内最多1.6万个虚拟存储卷整合在一起,并且将最大响应时间控制在5ms以内,同时保证两个数据中心中的应用都能访问这些存储卷。
存储双活是数据中心双活的重要基础。
三、数据库双活
数据库双活则是指两个数据库系统可以在相隔比较远的情况下同时运行、支持相同的应用负载,并且在一方出现故障时能够迅速切换到另一方(分钟级),保证业务高可用性。比如ORACLE扩展的RAC和DB2的purescale技术。但数据库的双活前提必须是网络和存储双活。以ORACLE扩展的11G RAC为例,其ASM卷则需要在两边存储做镜像绑定,以保证读写一致。
( 注:DB2 pureScale 是DB2的可选特性,它允许你通过“双机(active-active)”配置将数据库扩展到一组服务器上,以便交付高水平的可用性和可伸缩性。在这种配置中,运行于各主机(或服务器)上的 DB2 副本可以同时读取和写入相同的数据。)
在双活数据中心模式下,Oracle RAC数据库可以实现跨站点部署。两个Oracle RAC节点分别部署在两个数据中心(Oracle RAC 1部署在数据中心1,Oracle RAC 2部署在数据中心2),即使数据中心1发生故障,也不会影响到运行在数据中心2里的Oracle RAC 2应用。结合VMware HA技术,还可以保证数据中心2自动重启原来运行在数据中心1的Oracle RAC 1应用。相比运行在物理架构上RAC,则运行在VMware虚拟化平台之上的Oracle RAC不仅可以实现更高级别的业务连续性,而且可以在线进行维护和扩容。借助VMware vMotion技术,还可以在线迁移Oracle RAC节点,从而避免了硬件维护时的应用部分中断。此外,通过VMware Hot-Add技术,我们还可以在线增加RAC节点虚拟机的CPU数量以及内存容量,从而避免了硬件扩容时的应用中断。
四、应用双活
数据中心双活在应用处理层面上实现了完全冗余,在线交易通过负载均衡自动路由到不同数据中心的应用服务器,所有的业务系统同时在同城的两个数据中心运行,同时为用户提供服务。当某个数据中心的应用系统出现问题时,有另一个数据中心的应用来持续的提供服务。好处是服务能力是双倍的,业务连续性和稳定性得到了大大的提高且对用户来说服务体验更好,故障无需感知。
五、总结
1、各层面都要双活才能实现数据中心的双活
真正的双活,要在数据中心的从上到下各个层面,都要实现双活。存储、服务器、网络、数据库、应用,各层面都要有双活的设计,这样才能真正意义上实现数据中心层面的双活。
2、各个层面的整合是实现数据中心双活的难点
企业中的IT基础架构设施都是多年发展和积累起来的,从硬件设备、网络、存储、应用软件、中间件到数据库都是各种各样的,不同层面的整合各家又都有不同的技术,在多种可能的技术选择方案中寻求平衡和控制是比较复制的,所以整合我认为是目前实现数据中心双活的难点,技术选型的承上启下更是关键。
3、从某种程度上说,双活数据中心可以看做是一个云数据中心,因为它具有云计算所需的高可靠性、灵活性、高可用性和极高的业务连续性水平。不仅能够满足应用对性能、可用性的需求,而且还可以灵活动态扩展。
双活数据中心离我们并不遥远,未来随着技术的进步,还会实现的更完美!
本文出自 “滴水穿石孙杰” 博客,谢绝转载!