应用和数据库发展cluster还需要HA软件吗?

应用和数据库发展cluster还需要HA软件吗?

所谓集群技术(cluster),也有译为群集,涵盖了三个技术方向:高可用HA(High Availability); 负载均衡LB(Load Balance); 高性能运算HPC(High Performance Computing)。对于商业领域的IT应用主要关心高可用HA和负载均衡LB这两部分。为了保证应用的高可用,在操作系统os以上发展出了一些系统级HA软件。不同的操作系统下有不同的HA软件,如IBM AIX操作系统下的PowerHA(HACMP),HP-UX下的MC-SG,Linux下的VCS(Veritas Cluster Server)、Rose、Heartbeat等。这其中也有一些跨平台的HA软件,如IBM TSA支持多平台,HACMP 版本5时出过for Linux on POWER的版本(v6后没有了),MC-SG有for Linux的版本,VCS也有不同平台的版本。

随着应用软件和数据库软件的发展,集群技术(cluster)越来越多地融入到应用软件和数据库软件内部。如oracle RAC, WAS ( Websphere Application Server), Weblogic,Tomcat等都支持cluster技术。这些cluster技术不仅涵盖了负载均衡LB (Load Balance)技术,同时也提供高可用HA(High Availability)功能。相比之下,传统的高可用HA系统软件主要只针对高可用这部分的功能提供支持。如PowerHA(HACMP),MC-SG,VCS等。这些HA软件虽然在提供主备(primary-backup)功能的同时也提供并发(concurrent)功能,但是其并发功能只是提供并发访问的存储管理。在数据一致性方面,仍然需要应用或数据库软件来协调并发访问、避免冲突。也就是说,并发能否实现主要依赖于数据库或应用软件的LB功能。那么现在还需要这些单独的HA软件吗?

首先,我们要看到,数据库和应用软件自身包含的cluster功能还是有限制的。主要有两方面的限制:价格差异和功能完善程度。

所谓价格差异,就是指不同功能不同价格,集群版的软件一般都会有更高的价格。以Oracle RAC为例,其价格要比单机版高出很多。当然,与单机版相比,RAC不仅提供了HA的功能,同时也提供负载均衡LB的功能。但是需要注意,负载均衡的效果并不是很容易调试出来的。这与应用访问数据的复杂性有很大关系。对于数据库来说,RAC只是增加了CPU和Memory,对disk IO方面没有增加。对于系统性能的限制因素主要是disk IO的应用场景,RAC不会有性能提升。另外,由于Oracle在内存中的SGA区内会cache大量的数据以供应用读写访问,RAC下的cache fusion机制就是将多个RAC节点的SGA区协调起来工作,必然需要在RAC的心跳网络里传输同步数据,这引起了很大的overhead(附加开销)。因此,如果期望通过RAC多节点并发来提升性能,必然需要对应用进行针对性地优化。而对于本身就比较复杂的应用,如SAP,针对RAC的优化就更加困难。所以,从价格因素和优化方面考虑,单机版Oracle DB + HA软件仍然是一些应用场景下更适合的解决方案。对于其他支持cluster技术的应用软件也可以参考如上分析。

所谓功能完善程度,是指应用软件的cluster功能的适用程度。任何技术都有其局限性,有些应用软件虽然在新版本中推出了cluster功能,但是其对HA功能的支持是有限制的,还有待于进一步完善。以Tomcat为例,虽然Tomcat早在5.0.x版本即推出了集成session集群功能,但其实现的主要是负载均衡LB方面的功能,而对于高可用HA的支持和配置都有所不同。Tomcat的HA配置需要考虑:Apache是采用http直接代理还是ajp代理? 是否采用sticky session黏性会话? TOMCAT端是否使用memcached session manager实现SESSION的共享存储和访问? MSM是否采用sticky方式?等方面。也就是说,实现完全无人工干预的高可用(自动侦测故障,自动切换,自动恢复服务),是有限制的,并且配置困难。

基于以上两点, HA软件目前还是有生命力的。

同时我们也应该看到,长久以来HA软件在应用实践中也存在一些问题。有些问题甚至严重影响了其口碑和市场推广。以相对来说比较“高大上”的PowerHA(HACMP)为例,在IBM POWER小型机上配置的比例相当高,基本上用于数据库的服务器如果数量超过2台,都会购买。这些年累计的装机量已经非常大了,技术人员对其评价也是相当高的。但是实际应用效果如何呢?故障发生时,都可以自动切换并恢复服务吗?切换不成功的例子还是很多的。主要的问题并不是产品本身的问题,而是规划、实施和运维的问题。

首先,PowerHA可以自动侦测四类故障:网卡故障,网络故障,节点故障,应用故障。但是,其中应用故障的检测是需要定制化配置的。IBM为了方便常用应用的侦测,提供一个单独的产品smart assist,在PowerHA v6.1以前是需要单独购买的。而实际在中国基本没有用户单独购买smart assist(用户当然不懂,但并不仅仅是因为售前没有推荐,同时也有实施需要收费的因素)。Smart assist可以帮助HA的实施者方便地配置自动监控oracle,DB2,WAS,SAP,Filenet等常见应用的进程(随版本不同,支持的范围也不同,早期版本支持的应用较少)。没有smart assist,也可以通过人工编制应用监控脚本,并且配置到PowerHA中来实现应用的监控。但这需要了解应用,同时需要负责应用的人员配合。而问题的关键是,这是单独收费项目。代理大多没有实施能力,而厂家至少要收几万实施费。

不仅是上面提到的应用监控方面的实施问题,在基本功能的实施方面有时也不能保证质量。厂家实施收费高,而代理互相压价恶性竞争,结果往往是免HA实施费。在用户基本不懂的情况下,免费实施的质量难以保证。虽然IBM也一直在积极培训代理,并有一整套代理技术认证制度,但对于最终用户的实施情况实际上没有监控。

另外,我们知道,与实施同等重要的是运维,而用户因为缺乏培训和英文资料阅读障碍的问题,经常不能正确维护HA系统。比如常见的添加共享存储卷LV或共享文件系统FS时,没有通过HA的DARE动态配置更新机制和C-SPOC单点控制工具来操作。造成共享配置信息在不同HA节点上不一致。一旦需要切换,已经无法正常切换了。

上面谈到的这些问题,相信不同HA软件和不同厂商或多或少都会有,有些更是IT系统建设过程中普遍存在的问题。值得高兴的是,这些年来随着中国IT市场环境的不断发展完善,用户的IT运维团队越来越成熟,IT人员素质的不断提高,这些问题已经或者正在得到解决。相信我们IT基础架构的高可用等技术一定会不断完善,达到新的高度。

应用和数据库发展cluster还需要HA软件吗?,布布扣,bubuko.com

时间: 2024-10-21 22:21:41

应用和数据库发展cluster还需要HA软件吗?的相关文章

集群(cluster)和高可用性(HA)的概念

1.1 什么是集群    简单的说,集群(cluster)就是一组计算机,它们作为一个整体向用户提供一组网络资源.这些单个的计算机系统就是集群的节点(node).一个理想的集群是,用户从来不会意识到集群系统底层的节点,在他/她们看来,集群是一个系统,而非多个计算机系统.并且集群系统的管理员可以随意增加和删改集群系统的节点. 更详细的说,集群(一组协同工作的计算机)是充分利用计算资源的一个重要概念,因为它能够将工作负载从一个超载的系统(或节点)迁移到集群中的另一个系统上.其处理能力是与专用计算机(

MySQL 数据库发展历程及缺点

传统关系数据库的瓶颈 传统的关系数据库具有不错的性能,高稳定型,久经历史考验,而且使用简单,功能强大,同时也积累了大量的成功案例.在互联网领域,MySQL成为了绝对靠前的王者,毫不夸张的说,MySQL为互联网的发展做出了卓越的贡献. 在90年代,一个网站的访问量一般都不大,用单个数据库完全可以轻松应付.在那个时候,更多的都是静态网页,动态交互类型的网站不多. 到了最近10年,网站开始快速发展.火爆的论坛.博客.sns.微博逐渐引领web领域的潮流.在初期,论坛的流量其实也不大,如果你接触网络比较

oracle学习入门系列之一 数据库发展与历史

oracle学习入门系列之一 数据库发展与历史 这个oracle学习入门系列是根据本人工作中的一些笔记.项目进行回忆.整理.一方面是自己知识积累,便于技能提升:另一方面是和小伙伴们共进退互通有无,做一个爱分享的好公民.当然最后也夹杂着自己的一个小心愿,改掉自己重理不重文的臭毛病.想想读书考试的时候,当时如果语文英语多个几分,现在可能就不会落到如此...(咳咳~~),做IT也挺好.那就这样开场白切入吧. 既然学习数据库,就不能不抛几个问题了. 1.        为什么需要数据库,什么是数据库 2

传统数据库没落,OLTP新型数据库发展火热(一)

越来越多的程序员开始做移动App的开发,真正做底层系统开发的程序员还是少数.看到国内数据库系统发展的资料不是很多,我也把自己对当前数据库系统发展的认识写成博文, 和大家分享,希望可以互相学习. 数据库系统的近期发展和分类 随着操作系统发展趋于稳定(不包括移动端OS),越来越的的研究集中在数据库系统的发展上,没有多少人说要重新做一个操作系统,更多的人是在现有的OS上做各式各样的应用.但是过去的10年,是数据库井喷式发展的阶段,各式各样的产品迸发出来,例如文件存储数据库(如MongoDB),列存储数

大数据十年回顾(1):大数据史前的数据库发展

是当前最热的技术之一,这十年它经历了哪些阶段?每个阶段分别创造和发展了什么?未来大数据又将朝着哪些方向继续前行?在这篇文章里,我们沿大数据发展时间线,从产品.行业.技术多角度讨论其发展脉络,究其发展承其脉络大家可以学习.借鉴.并最终推测未来大致走向. ? 引子 我一直认为大数据中文社区里面不乏各类技术大牛所著深度架构干货,同时亦不乏各类技术的总监 /VP/CXO 高屋建瓴指点行业江山的激情文字,所缺的往往是站在技术.产品.社区.市场交汇点的思考点滴.有如我经常在我部门中所说,中国当前不乏各类云计

未来数据库发展畅想

突发奇想,对于数据库,想到了一些有意思的事情和功能,算是对未来数据库发展的一种畅想吧,期待未来有实力的公司或是科研机构能真正实现. 一:分布式操作系统---永动机型操作系统 聊数据库,先要说说操作系统,毕竟数据库要安装部署在操作系统上.目前应用服务常见的硬故障分为电源.CPU.硬盘.内存.网络等,这些都是常见的.不可抗拒的故障.非分布式操作系统下,各个服务器资源不能最大化的得到合理利用,即使是现在的K8S容器时代,也是这样.目前在应用服务层面,存在读写性能.CPU.内存.网络等瓶颈,但在分布式操

浅谈Access数据库的发展 你还在了解吗

Access是Office办公套件中一个极为重要的组成部分.刚开始时微软公司是将Access单独作为一个产品进行销售的,后来微软发现如果将Access捆绑在OFFICE中一起发售,将带来更加可观的利润,于是第一次将 Access捆绑到OFFICE97中,成为OFFICE套件中的一个重要成员.现在它已经成为Office办公套件中不可缺少的部件了.自从1992年开始销售以来,Access 已经卖出了超过6000万份,现在它已经成为世界上最流行的桌面数据库管理系统. Access 是一款数据库应用的开

大数据将促进分布式数据库发展及去Oracle

2015-09-13 张晓东 东方云洞察 点击上面的链接文字,可以快速关注"东方云洞察"公众号 分布式数据库简介 分布式数据库系统通常使用较小的计算机系统,每台计算机可单独放在一个地方,每台计算机中都可能有DBMS的一份完整拷贝副本,或者部分拷贝副本,并具有自己局部的数据库, 通过网络互相连接共同组成一个完整的.全局的逻辑上集中.物理上分布的大型数据库. 分布式并行数据库通过并行使用多个CPU和磁盘来将诸如装载数据.建立索引.执行查询等操作并行化以提升性能的数据库系统.其中最重要的关键

传统数据库没落,OLTP新型数据库发展火热

參考资料: (1) <OLTP Through the Looking Glass, and What We Found There> (2) <The End of an Architectural Era>.VLDB 2007 越来越多的程序猿開始做移动App的开发,真正做底层系统开发的程序猿还是少数.看到国内数据库系统发展的资料不是非常多,我也把自己对当前数据库系统发展的认识写成博文, 和大家分享,希望能够互相学习. 数据库系统的最近发展和分类 随着操作系统发展趋于稳定(不包