数据库位于现代企业应用的核心,它储存了组织机构中最有价值的资产,包括客户信息、产品信息、订单信息和历史数据等。另外,组织机构依赖于数据库来运行他们关键业务应用。几小时甚至是几分钟的宕机,往往会造成收入的大量流失和客户的不满。
因此,保证数据库高可用,可靠性和安全性是所有组织机构优先考虑的事情。对于希望在当今瞬息万变的经济环境立于不败之地并取得成功的企业来说,构建一个具有高可用性的 IT 基础架构至关重要。
具体需求:
1) 可伸缩性(Scalability),当服务的负载增长时,系统能被扩展来满足需求,且不降低服务质量。
2) 高可用性(Availability),尽管部分硬件和软件会发生故障,整个系统的服务必须是每天24小时每星期7天可用的。 3) 可管理性(Manageability),整个系统可能在物理上很大,但应该容易管理。 4) 价格有效性(Cost-effectiveness),整个系统实现是经济的、易支付的。
现状
单服务器显然不能处理不断增长的负载。 这种服务器升级方法有下列不足:
一, 是升级过程繁琐,机器切换会使服务暂时中断,并造成原有计算资源的浪费; 二, 是越往高端的服务器,所花费的代价越大;
三, 是一旦该服务器或应用软件失效,会导致整个服务的中断。
通过高性能网络或局域网互联的服务器集群正成为实现高可伸缩的、高可用网络服务的有效结构。这种松耦合结构比紧耦合的多处理器系统具有更好的伸缩性和性能价格比,组成 集群的PC服务器或RISC服务器和标准网络设备因为大规模生产,价格低,具有很高的性能 价格比。但是,这里有很多挑战性的工作,如何在集群系统实现并行网络服务,它对外是 透明的,它具有良好的可伸缩性和可用性。
针对上述需求,基于IP层和基于内容请求分发的负载平衡调度解决方法,并在Linux内核中实现了这些方法,将一组服务器构成一个实现可伸缩的、高可用网络服务的服务器集群,称之为Linux虚拟服务器(Linux Virtual Server)。在LVS集群中,使得服务器集群的结构对客户是透明的,客户访问集群提供的网络服务就像访问一台高性能、高可用的服务器一样。客户程序不受服务器集群的影响不需作任何修改。系统的伸缩性通过在服务机群中透明地加入和删除一个节点来达到,通过检测节点或服务进程故障和正确地重置系统达到高可用性。
实现目标
通过技术手段实现MySQL数据库的高可用性,从而减少停工时间保证服务的正常稳定运行。 目前,淘宝,京东,当当网等电商和大型电信企业的一些重点服务全部采用MYSQL集群来实现,那种靠少而精的硬件来提供服务的方式逐渐被数量多,配置低的集群所代替。
方案建设概要
现有高可用方案分析:
MySQL作为一款开源软件经过多年的发展,已经形成很多套实现高可用方案,并且均都投入生产使用,主要为这几种:MySQL + replication 、MySQL + heartbeat + 共享存储、MySQL + drbd + heartbeat 、 MySQL cluster。以下将依次对各个方案进行分析。
MySQL+replication 概述
MySQL的复制(Replication)是一个异步的复制,从一个MySQL instace(称之为Master)复制到另一个MySQL instance(称之Slave)。实现整个复制操作主要由三个进程完成的,其中两个进程在Slave(Sql进程和IO进程),另外一个进程在 Master(IO进程)上。
MySQL replication方案拓扑图
MySQL+replication主从复制拓扑图
方案具体解释:
要实施复制,首先必须打开Master端的binary log(bin-log)功能,否则无法实现。因为整个复制过程实际上就是Slave从Master端获取该日志然后再在自己身上完全顺序的执行日志中所记录的各种操作。
MySQL+replication优缺点
优点:易实施、成本低、经济实惠、后期维护方便,且由于整套系统架构简单,不涉及到存储及双机软件,因此系统出现故障率很低。方便做到读写分离。
缺点:在主机出现问题后不能自动切换到备份机,需要人工干涉更改IP地址。
MySQL + heartbeat + 共享存储 概述
HA双机热备软件将操作环境推广到一种群集操作系统。群集是一种松散耦合的计算节点集合,提供网络服务或应用程序(包括数据库、web 服务和文件服务)的单一客户视图。 HA双机热备软件的目标是:
1:减少或消灭由软件或硬件故障引起的系统停机时间
2:提供增强的系统可用性,能够不必关掉整个群集就可执行维护
MySQL+heartbeat+共享存储方案拓扑图
方案具体解释:
本方案采用高可靠性的HA双机热备软件来保证服务的高稳定性及连续性。默认情况下两台MySQL机器只有一台机器在工作,当工作机MySQL主机出现问题后,系统将自动切换到MySQL备机上继续提供服务,而整个过程只需要30秒的时间,当MySQL主机故障维修完毕后,服务将自动切换回MySQL主机上继续提供服务。
MySQL+heartbeat+共享存储优缺点
优点:安全性、稳定性高,出现故障系统将自动切换,从而保证服务的连续性。 缺点:相对MySQL replication成本提高,需要有共享存储设备。
MySQL+drbd+heartbeat 概述
此方案除了刚刚介绍完的heartbeat外,主要用了DRBD这个工具,DRBD是一种块设备,可以被用于高可用(HA)之中.它类似于一个网络RAID-1功能.当你将数据写入本地
文件系统时,数据还将会被发送到网络中另一台主机上.以相同的形式记录在一个文件系统中.本地(主节点)与远程主机(备节点)的数据可以保证实时同步.当本地系统出现故障时,远程主机上还会保留有一份相同的数据,可以继续使用.
MySQL+drbd+heartbeat方案拓扑图
MySQL+drbd+heartbeat优缺点
优点:安全性、稳定性高,出现故障系统将自动切换,从而保证服务的连续性,相对MySQL+heartbeat+存储来说对大优点是节约了存储这个硬件设备。
缺点:MySQL主机宕机,切换到备机,备机接管服务,待主机修复完配置failback机制的话会发生脑裂情况,需要手工执行命令进行主机接管。
MySQL cluster 概述
MySQL集群是一种分布式设计,目标是要达到没有任何单点故障点。因此,任何组成部分都应该拥有自己的内存和磁盘。任何共享存储方案如网络共享,网络文件系统和SAN设备是不推荐或不支持的。通过这种冗余设计,MySQL声称数据的可用度可以达到99。999%。
MySQL cluster方案拓扑图
MySQL cluster优缺点
优点:安全性、稳定性高,可以在线增加节点,官方声称可用度可达到99.999%。
缺点:至少三个节点,对主机的数量有要求,无形增加方案成本、对于数据节点要求内存一致、对于引擎只能使用ndb、不支持外键功能、管理复杂
方可行性案选择
在上面列出的四种方案,我们都根据公司的对数据库的生产要求,做了一些筛选。
MySQL cluster 这个方案管理复杂ndb引擎的硬性要求凸显出来的一些大的,我们将此先做了排除。(这种应该用的最多吧??????)
MySQL replication 这个方案公司目前正在使用,但是对MySQL的同步的主机的高可用没有保障,固先保留。
MySQL + drbd + heartbeat这个方案虽然能方便的做到主机到备机的切换,也能节约硬件的成本,但是备机向主机回切的过程中drbd的容易产生脑裂情况,须手工执行命令,此方案也先保留。
最后就剩下了myslq + heartbeat + 共享存储方案,此方案对硬件有要求需要一个共享存储设备,在出现问题后的故障切换以及主机恢复资源的回切都表现的相当良好,固此方案将被优先考虑。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- dcrkj.com 版权所有 赣ICP备2024042791号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务