曾几何时,网上段子手们的觉悟已经从生活百态,上升到了高可用和容灾备份,能有如此的觉悟,不仅IT技能够强大,连感情生活也应该很丰富。
今天我们就来讨论一下服务器的双机高可用,双机高可用概念也许小伙伴们在平常的工作中经常会遇到,那么小伙伴们对这个概念又了解多少呢,又能不能根据用户的需求选择合适的方案呢?下面就开始我们今天的主题-----“大话服务器双机高可用”。
一.高可能的定义
高可用,也即我们平时所说的HA,英文全称为High Availability,从广义上讲,我们通常所说的热备是根据意译而来,同属于高可用范畴,而双机热备只限定了高可用中的两台服务器。热备软件是用来解决一种不可避免的计划和非计划系统宕机问题的软件解决方案,当然也有硬件的。是构筑高可用集群系统的基础软件,对于任何导致系统宕机或服务中断的故障,都会触发软件流程来进行错误判定、故障隔离、以及自动联机恢复来继续执行被中断的服务。在这个过程中,用户只需要经受一定程度可接受的时延,而能够在最短的时间内恢复服务。
从狭义上讲,双机热备特指基于高可用系统中的两台服务器的热备(或高可用),因两台机器高可用在国内使用较多,故得名双机热备,双机高可用按工作中的切换方式分为:主-备方式(Active-Standby方式)和双主机方式(Active-Active方式),主-备方式即指的是一台服务器处于某种业务的激活状态(即Active状态),另一台服务器处于该业务的备用状态(即Standby状态)。而双主机方式即指两种不同业务分别在两台服务器上互为主备状态(即Active-Standby和Standby-Active状态)。
二.双机高可用的三种实现形式
2.1. 基于纯软件实现数据复制的方式
这种方式主要利用软件进行数据的同步,保证主备服务器的数据一致性。基于数据复制的方式有多种方法,其性能和安全也不尽相同,其主要方法有以下三种:
一、单纯的文件方式的拷贝,这种方式不适用于数据库等应用,因为打开的文件是不能被复制的,如果要复制必须将数据库闭,这显然是不可以的。以文件方式的复制主要适用于WEB页面的更新,FTP上传应用,对主备机数据完整性,连续性要求不高的情况下使用。
二、利用数据库所带有复制功能,比如SQL Server 2000或2005所带的定阅复制,这种方式要求用户根据自己的应用小心使用,原因主要是:(1)SQL Server的定阅复制会在用户表上增加字段,对那些应用软件编程要求较高,如果在应用软件端书写时未明确指定字段的用户,而使用此功能会造成应用程序无法正常工作。
(2)数据滞留,这个限制怕也是最要命的,因为SQL Server在数据传输过程中数据并非实时的到达备机,而是数据先写到主机,再写到备机,如此一来,备机的数据往往来不及更新,此时如果发生切换,备机的数据将不完整,也不连续,如果用户发现已写入的数据在备机找不到,重新写入的话,则主机修复后,就会发生主备机数据严重冲突,数据库会乱掉。
(3)复杂应用切莫使用定阅复制来做双机热备,包括数据结构中存储过程的处理,触发器和序列,一旦发生冲突,修改起来非常麻烦。
(4)服务器性能降低,对于大一点的数据库,SQL Server 2000或2005所带的定阅复制会造成服务器数据库运行缓慢。
总之SQL Server 2000或2005所带的定阅复制主要还是应用于数据快照服务,切莫用他来做双机热备中的数据同步。
三、硬盘数据拦截,目前国际国内,比较成熟的双机热备软件通常会使用硬盘数据拦截的技术,通常称为镜像软件即Mirror软件,这种技术当前已非常成熟,拦截的方式也不尽相同。
(1)分区拦截技术:采用的是一种分区硬盘扇区拦截的技术,通过驱动级的拦截方式,将写往硬盘的数据进行数据提取,并首先写到备用服务器,以保证备用服务器的数据最新,然后再将数据回写到主机硬盘。这种方式将绝对保证,主备机数据库的数据完全一致,无论发生哪种切换,都能保证数据库的完整性与连续性。由于采用分区拦截技术,所以用户可以根据需要在一块硬盘上划分适合大小的分区来完成数据同步工作。
(2)硬盘拦截技术:它采用的也是一种有效的硬盘拦截软件,他的拦截主要基于一整块硬盘,往往在硬盘初始化时需要消耗大量的时间。
2.2. 基于共享存储(双机单存储)的方式
共享存储方式主要是使用外置独立的磁盘阵列提供数据存储,当业务切换后可以保证数据的完整性和连续性。用户数据通常放在磁盘阵列上,当主机宕机后,备机继续从磁盘阵列上取得原有数据。
这种方式因为使用一台存储设备,往往被业内人士称为存储单点故障。但一般来讲存储的安全性较高。所以如果忽略存储设备故障的情况下,这种方式也是业内采用最多的热备方式
2.3. 基于共享存储全冗余(双机双存储)方式
2.3.1. 存储与服务器交叉连接方式
基于单台存储的传统双机热备方式,确实存在存储单点故障的情况,为实现存储冗余,存储高可用也已经越来越多的被用户接受。我们从理解上可以看出,双机热备最早是为解决服务器的计划性停机与非计划性宕机的解决方案,但是我们无法实现存储的计划性停机与非计划性宕机带来的服务器停机,而存储作为双机热备中唯一存储数据的设备,它一旦发生故障往往会造成双机热备系统全面崩溃。
随着信息技术的进步,双机热备也随着技术的进步,进入到了没有单点故障的全冗余双机热备方式。
1、存储之间的数据复制不经过局域网络,而是由存储之间进行复制。
2、两个存储之间的复制是完全实时的,不存在任何时间延时。
3、主备存储之间的切换时间小于500ms,以确保系统存储时不产生延时。
4、硬盘盘符及分区不因为主备存储之间的切换而改变。
5、服务器的切换,不影响存储之间的初始化,增量同步及数据复制。
6、某一存储设备的计划性停机,不影响整个服务器双机热备系统的工作。
7、存储设备之间使用增量方式完成数据同步。
8、真正的7×24小时全冗余双机解决方案。
2.3.2. 存储与服务器直连方式
看到这种连接方式,小伙伴们是不是觉得很眼熟呢,这难道不是纯软双机方案吗?在此,小黎同学告诉你们,这就是纯软双机方案。那么纯软双机方案为什么又是双机双柜方案呢,且看下面分解。我们前面说的纯软双机方案因为只使用了两台服务器来存储数据,在某些对存储空间要求较大的环境中,可能内置的存储空间无法满足要求,于是我们在每台服务器后端增加一台存储,通过软件复制技术保证两台存储中的数据实时同步,当某一台服务器或存储坏掉,业务均会切换到另外一台服务器和存储中去,持续对外提供访问服务。
此种方式要占用太多的网络资源,并且实时的数据复制会占用一定的服务器硬件资源,会对服务器的性能有一定的影响,而且当一台存储出现故障后,业务也会自动切换到另一台备用服务器上,会有一定的停机切换时延。
三. 集群失效切换的类型介绍
3.1. 主备方式
平时两台服务器均处于开机状态,一台机器提供业务服务能力,另一台机器处于备用状态,通过双机高可用软件实时进行监控,一旦主业务服务器出现故障,业务将切换到备份服务器上,持续对外提供业务访问服务。
3.2. 互备方式
平时两台服务器各自运行一个应用平台,比如服务器A运行数据库,服务器B运行WEB服务,通过双机高可用软件实时进行监控,一旦服务器A出现故障后,服务器B便接管A的业务,服务器B将同时运行数据库和WEB服务。
3.3. 一备N方式
平时群集中的多台服务器均正常运行,除开备份的服务器外,其它的所有服务器均运行各自的业务软件,一旦运行业务软件的某台服务器出现故障,在这台机器上承载的业务软件将会被备份服务器接管,并持续对外提供服务。
3.4. N备一方式
平时群集有一台服务器运行业务系统,另外的服务器均处理备用状态,一旦业务服务器出现故障后,其中的一台备份服务器会自动接管相应的业务,如果这台接管业务的服务器也出现故障后,另外的一台备用服务器将继续接管业务。
在此小伙伴们会不会觉得这种架构很神奇,是不是觉得钱多的没地方花了,用多台机器去备份一台机器的业务。其实小伙伴们不用觉得神奇,我们把这种方案延伸一下,比如本地机房我们放两台机器,另一栋楼的机房我们再放一台服务器,这样大家就比较容易理解这种方案的意义了。
3.5. N备N(M备N)方式
平时集群中有一部分机器运行业务系统,另外一部分机器处于备用状态,当业务服务器中的某一台出现故障后,备用服务器中的某一台将接管其业务,当业务服务器中的另一台机器又出现故障的时候,备用服务器中的另一台机器将接管其业务,这种方案可以尽量减少在同一机器上运行多个业务平台的机率,保证服务器的性能给某个业务平台来使用。
四.双机高可用方案的对比
网名:蓝色天空
邮箱:lihuanying@weidagroup.com.cn
本人现就职于威达高科技控股有限公司,目前负责联想企业级存储产品的售前工作,入行已经10年有余,从最早开始简单的服务器操作系统安装,到后来存储、双机的安装,再到时下流行的虚拟化、容灾备份方案都有不少的接触。
在工作的这么多年来,加班搬箱子的事属于家常便饭,但付出总会有收获,这么多年的工作也让我积累了较多的经验,我也已经从售后转为售前。我听别人说,售前总是给售后挖坑,我只想说合格的售前只会给售后铺平道路,也正是因为有了售前和售后的经历,所以也才能更好地、更加慎重地去做项目和产品的支持。
昨天已经无法找回,我们只有立足今天,把握明天,我们的生活才会过得更加精彩。
扫以下微信号并关注我哟~
长按图片,选择“识别图中二微码”并关注我~