双机热备系统的方案与软件浅析「建议收藏」

一、概述双机热备指基于高可用系统中的两台服务器的热备(或高可用),因两机高可用在国内使用较多,故得名双机热备。双机高可用按工作中的切换方式分为:主-备方式(Active-Standby方式)和双主机方式(Active-Active方式),主-备方式指的是一台服务器处于某种业务的激活状态(即Active状态),另一台服务器处于该业务的备用状态(即Standby状态)。而双主机方式即指两种不同业务分别在

大家好,又见面了,我是你们的朋友全栈君。

一、概述

双机热备指基于高可用系统中的两台服务器的热备(或高可用),因两机高可用在国内使用较多,故得名双机热备。双机高可用按工作中的切换方式分为:主-备方式(Active-Standby方式)和双主机方式(Active-Active方式),主-备方式指的是一台服务器处于某种业务的激活状态(即Active状态),另一台服务器处于该业务的备用状态(即Standby状态)。而双主机方式即指两种不同业务分别在两台服务器上互为主备状态(即Active-Standby和Standby-Active状态)。

双机热备系统,是集群的最小组成单位,是将中心服务器安装成互为备份的两台服务器,并且在同一时间内只有一台服务器运行。当其中运行着的一台服务器出现故障无法启动时,另一台备份服务器会迅速的自动启动并运行(一般为数分钟左右),从而保证整个网络系统的正常运行!双机热备的工作机制实际上是为整个网络系统的中心服务器提供了一种故障自动恢复能力。

双机热备针对的是服务器的故障。服务器的故障可能由各种原因引起,如设备故障、操作系统故障、软件系统故障等等。决定是否使用双机热备,正确的方法是要分析一下系统的重要性以及对服务中断的容忍程度,以此决定是否使用双机热备。

二、双机热备方案

组成双机热备的方案主要的三种方式分别为:基于共享存储(磁盘阵列)的方式,全冗余方式和复制方式

基于共享存储(磁盘阵列)的方式

共享存储双机热备方案中需要两台服务器以及一台共享存储设备(一般情况下就是共享磁盘阵列柜),共享存储设备同时连接至两台服务器,用户业务数据存储在共享存储设备中,由主服务器对外服务并访问共享存储设备进行数据读写,一旦主服务器发生故障(例如:操作系统宕机、服务器意外掉电、网络故障等),由ServHA双机热备软件自动将业务应用切换至备用服务器并接管共享存储设备的访问权继续对外服务,保护业务应用不间断运行。

共享存储双机热备方案拓扑图

但由于该方式仅使用一台存储设备,往往被称为磁盘单点故障。但一般来讲存储的安全性较高。所以如果忽略存储设备故障的情况下,这种方式也是业内采用最多的热备方式。

共享存储双机热备方案优缺点

优点:有独立的存储设备进行数据存储,能够容纳较高的数据吞吐量和具有较好的数据扩展性,适合数据量以及数据吞吐量比较大的应用。
缺点:需要引入昂贵的存储设备,成本有所增加,数据只有一份,在磁盘阵列中。

全冗余方式(双机双柜双机热备方案)

全冗余方式就是双机双存储,为实现存储冗余,存储高可用也已经越来越多的被用户接受。该方案需要两台服务器和两台共享磁盘阵列柜,每台服务器同时连接两台磁盘阵列柜,每台磁盘阵列柜同时同时连接两台服务器,ServHA双机双柜软件(ServHA DS Mirror)负责实时将数据写入两台磁盘阵列柜,保证两台磁盘阵列柜数据完全一致,在服务器读取数据时,会从两台磁盘阵列柜同时读取,提高读取效率,一旦主服务器发生故障(例如:操作系统宕机、服务器意外掉电、网络故障等),由ServHA双机热备软件自动将业务应用切换至备用服务器继续对外服务,保护业务应用不间断运行,当一台磁盘阵列柜发生故障时,ServHA双机热备软件会将故障磁盘阵列柜隔离,整个过程业务不间断,无缝使用单盘柜继续服务。

全冗余双机热备方案图

双机双柜双机热备方案优缺点

优点:数据双份存储,两台磁盘阵列柜各一份,数据安全性高,数据通过存储链路实时写入两台磁盘阵列柜,能承载较高的数据吞吐量。
缺点:硬件成本较高。

复制方式(镜像双机热备方案)

复制方式双机热备中仅需要两台服务器即可实现双机热备,两台服务器利用本地磁盘存储业务数据,ServHA镜像双机热备软件(ServHA Mirror)负责实时同步两台服务器数据,保证两台服务器数据完全一致,由主服务器对外服务并将业务数据实时同步至备用服务器,一旦主服务器发生故障(例如:操作系统宕机、服务器意外掉电、网络故障等),由ServHA双机热备软件自动将业务应用切换至备用服务器继续对外服务,保护业务应用不间断运行。

复制方式双机热备拓扑图

镜像双机热备方案优缺点

优点:性价比最高,硬件投入较少,只需要两台服务器即可,同时数据双份存储,两台服务器各一份,能够进行历史数据快照和查看历史数据能力,数据安全性更高。
缺点:数据通过网络实时同步,不适合数据吞吐量特别大的系统。

三、双机热备方案的选择

根据应用特性选择

  • 若用户应用要求数据吞吐量一般(每小时新增数据100G以下),更关注业务连续性(例如财务系统、OA系统、CRM系统等),可采用镜像双机热备方案,性价比高,数据安全性高,采用ServHAMirror双机热备软件产品。
  • 若用户应用要求数据吞吐量较高(每小时新增数据100G以上)、数据总量巨大且需要空间扩展,且关注业务连续性(例如视频监控、PACS、CRM系统等),可采用共享存储双机热备方案,采用ServHACluster双机热备软件产品。
  • 若用户应用要求数据吞吐量较高(每小时新增数据100G以上)、预算充足、对数据安全性有很高要求、数据总量巨大且需要空间扩展,可采用双机双柜双机热备方案,采用ServHA DS Mirror双机热备软件产品。

根据硬件配备选择

  • 若用户已经拥有一台服务器,可再增置一台服务器,采用镜像双机热备方案。
  • 若用户已经拥有一台服务器以及一台独存储设备,可再增置一台服务器,采用共享存储双机热备方案。
  • 若用户已经拥有两台台服务器,可以采用镜像双机热备方案。
  • 若用户已经拥有两台台服务器以及一台共享储设备,可采用共享存储双机热备方案。
  • 若用户已经拥有两台服务器以及两台共享储设备,可采用双机双柜双机热备方案。

四、双机热备软件

heartbeat(Linux-HA)

heartbeat最核心的包括两个部分,心跳监测部分资源接管。心跳监测可以通过网络链路和串口进行,而且支持冗余链路,它们之间相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未受到对方发送的报文,那么就认为对方失效,这时需启动资源接管模块来接管运 行在对方主机上的资源或者服务。

  • Heartbeat:(心跳检测)本身是整个集群的基础(cluster messaging layer),负责维护集群各节点的信息以及它们之前通信;只提供主从备份功能,并不能对各个节点进行监控,需要安装ldirectord。
  • Resource-agent:(资源代理)就是各种的资源的ocf脚本,这些脚本将被LRM调用从而实现各种资源启动、停止、监控等等。
  • Cluster-glue:相当于一个中间层,可以将heartbeat和crm(pacemaker)联系起来,主要包含2个部分,LRM和STONITH;
  • Ldirectord:负责realserver的健康检查,可以自动将realserver中宕机的机器移除,不再分配请求。

keepalived

keepalived的工作原理是VRRP(Virtual Router Redundancy Protocol)虚拟路由冗余协议。在VRRP中有两组重要的概念:VRRP路由器和虚拟路由器,主控路由器和备份路由器。VRRP路由器是指运行VRRP的路由器,是物理实体,虚拟路由器是指VRRP协议创建的,是逻辑概念。一组VRRP路由器协同工作,共同构成一台虚拟路由器。Vrrp中存在着一种选举机制,用以选出提供服务的路由即主控路由,其他的则成了备份路由。当主控路由失效后,备份路由中会重新选举出一个主控路由,来继续工作,来保障不间断服务。

Rose HA

通过Rose HA系统把两台服务器与磁盘阵列系统相连,操作系统、应用软件和Rose HA软件分别安装在两台服务器上,数据库放在磁盘阵列上,而两台服务器通过心跳线连接。

支持的系统:Windows 2008 R2、Linux,在应用方面,Rose HA支持Oracle、SQL Server、Sybase、MySQL等。

pluswell

pluswell部署双机热备的方法有多种,纯软双机,没有部署磁盘阵列,而是两个软件,一个软件负责双机热备,另一个负责数据同步。

支持的系统:Windows

EterneMirrorHA

EterneMirrorHA也是一款不需要共享磁盘,采用块镜像技术的纯软双机软件。

支持的系统:Windows

微软MSCS

利用微软的MSCS(集群服务)来实现双机热备,其原理是在集群中的多个服务器上分别安装应用程序,但在任一时刻,应用程序只在一个节点上处于联机状态;当该应用程序出现宕机时,此应用程序将在另一个节点上重新启动。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/125881.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java 笛卡尔积_使用Guava来计算笛卡尔积

    java 笛卡尔积_使用Guava来计算笛卡尔积以前做项目的时候计算笛卡尔积的时候,总是使用各种for循环来嵌套,最后往往在Sonar代码检查的时候总是会报警说for循环嵌套过深。今天才知道Guava原来已经为我们提供了优雅的计算笛卡尔积的方法。比如我们要计算3个List的笛卡尔积,每个list的内容都是[‘a’,’b’,’c’],请看下面的代码:publicclassCartesianProductUtil{publicstat…

    2022年7月27日
    3
  • Pytorch_hook机制的理解及利用register_forward_hook(hook)中间层输出[通俗易懂]

    Pytorch_hook机制的理解及利用register_forward_hook(hook)中间层输出[通俗易懂]参考文献:【1】梯度计算问题含公式:参考链接1.【2】pytorch改动和.data和.detch()问题:https://blog.csdn.net/dss_dssssd/article/details/83818181【3】hook技术介绍:https://www.cnblogs.com/hellcat/p/8512090.html【4】hook应用->中间层的输出:https://blog.csdn.net/qq_40303258/article/details/10688431

    2025年7月18日
    3
  • vue 计数器_vue实现计算器

    vue 计数器_vue实现计算器计数器的实现在页面上简单实现一个计数器<!DOCTYPEhtml><htmllang="en"><head><metach

    2022年7月30日
    6
  • 软件版本号规范与命名原则是什么_版本号格式

    软件版本号规范与命名原则是什么_版本号格式1.软件版本阶段说明*Alpha版:此版本表示该软件在此阶段主要是以实现软件功能为主,通常只在软件开发者内部交流,一般而言,该版本软件的Bug较多,需要继续修改。*Beta版:该版本相对于α版已有了很大的改进,消除了严重的错误,但还是存在着一些缺陷,需要经过多次测试来进一步消除,此版本主要的修改对像是软件的UI。*RC版:该版本已经相当成熟了,基本上不存在导致错误的B

    2025年10月17日
    2
  • 时序数据库 日志_mysql恢复数据库

    时序数据库 日志_mysql恢复数据库1.基础1.1时序数据的定义什么是时间序列数据(TimeSeriesData,TSD,以下简称时序)从定义上来说,就是一串按时间维度索引的数据。用描述性的语言来解释什么是时序数据,简单的说,就是这类数据描述了某个被测量的主体在一个时间范围内的每个时间点上的测量值。它普遍存在于IT基础设施、运维监控系统和物联网中。对时序数据进行建模的话,会包含三个重要部分,分别是:主体,时间点和测量值。套用这…

    2022年10月4日
    3
  • 使用socks4 socks5 http代理的客户端

    使用socks4 socks5 http代理的客户端///定义的结构structsock4req1{   charVN;   charCD;   unsignedshortPort;   unsignedlongIPAddr;   charother[1];};structsock4ans1{   charVN;   charCD;};structsock5req1{   charVer;   char

    2022年6月26日
    35

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号