一种低成本的高可用系统实现方法及装置
技术领域
本发明涉及数据通信技术领域,尤其涉及一种低成本的高可用系统实现方法及装置。
背景技术
高可用(HA,High Availability)系统有效地提供了一种网络系统中由于单点故障带来风险最小化的解决方案。它通过缩短由于日常维护操作或突发系统崩溃而导致网络设备的停机时间,提高网络系统应用的可靠性。HA系统是目前企业防止核心计算机系统因故障停机的最有效手段。
高可用方案的核心是保证数据的安全性和服务的可用性。数据的安全性是指在系统故障出现时,数据本身是完整的,不会丢失,当服务恢复后,数据可以继续使用;服务的可用性是指系统出现故障后,对外提供的服务能够在最短时间内自动恢复,其中平均故障恢复时间(MTTR,Mean Time ToRestoration)是衡量系统服务可用性的重要指标。
如图1所示,高可用系统通常由多个(至少两个)计算资源和一个存储资源按如下方式构成。
正常情况下,多个计算资源中仅有一个资源(例如服务器A)处于活动状态,对外提供应用和服务,其同时接管该网络系统中的存储资源,该网络系统中所有的业务数据都保存在存储资源中。当处于活动状态的计算资源(例如服务器A)出现故障时(如宕机),该高可用系统自动切换到其他备用计算资源(如服务器B)上,此时服务器B自动接管存储资源,并继续对外提供应用和服务,故障恢复时间取决于计算资源的切换时间。
在该高可用系统中,存储资源通常是一个磁盘阵列或盘柜,其自身通过RAID(Redundant Arrays ofInexpensive Disks)互备、多点供电(使用UPS)等方式提供高可用特性,确保数据资源的安全和完整。
进一步地,在该高可用系统中,多个计算资源间互为备份,而存储资源则需确保一直可用,因为数据的备份和安全均是由存储资源(存储设备)来保证。
然而,现有技术方案存在以下缺陷:
1、数据保护代价高昂
为了保障数据的高可用性,现有高可用系统中存储资源的设计和实现相对复杂,无论对硬件和软件的要求都极高。一个商用存储设备价格往往为数十台服务器(计算资源)的价格,不适合中小企业应用环境。
2、数据仍然存在单点故障隐患
虽然现有高可用系统中的存储资源自身有充分的自我备份及保护机制,但由于设备的物理位置单一,一旦出现设备以外的重大事故(如火灾,地震等),数据安全性仍然无法得到保障。
3、存储资源与计算资源的同步复杂度高
现有高可用系统在同一时刻只允许有一个计算资源访问存储资源,如果两台服务器同时向存储设备写入数据,可能导致数据损坏,且不可再恢复。此外,由于计算资源与存储资源相互分离,数据访问的同步代价高昂,直接影响故障恢复时间。
4、资源浪费
计算资源(服务器)本身带有存储资源(服务器本地硬盘),但业务数据不能保存在这些资源上,造成资源浪费。
发明内容
有鉴于此,本发明提供一种低成本的高可用系统的实现方法及装置,可以解决现有技术方案中存在的所有缺陷,为用户提供一种经济、实时、安全、可靠的高可用系统,以提升高可用系统的价值及应用范围。
为实现本发明目的,本发明实现方案具体如下:
一种低成本的高可用系统实现装置,所述装置应用于所述高可用系统中,所述高可用系统包括至少两个以上的计算资源,其中一个计算资源处于活动状态,其余的计算资源处于备用状态,所述装置具体为高可用系统中的计算资源,其中所述装置包括:
上层应用模块,用于当所述计算资源为活动状态时,为当前高可用系统对外上层应用服务;
读写模块,用于根据请求将上层应用数据写入存储模块,或者从存储模块中读出已保存的上层应用数据;
存储模块,与所述读写模块相连接,用于存储来自上层应用模块的上层应用数据;
数据同步模块:用于对所述存储模块中将要保存的数据进行实时同步。
进一步地,当所述装置处于活动状态时,所述数据同步模块将以主动模式运行,自动将即将写入存储模块的数据使用网络传输协议传送给其他备用节点;当所述装置处于备用状态时,所述数据同步模块将以被动模式运行,自动将接收到的数据通过读写模块写入本机存储模块中。
进一步地,如果高可用系统中存在超过2台以上的所述装置时,仅有一个装置的数据同步模块以主动模式运行,其他装置的数据同步模块则均以备份模式运行。
进一步地,处于主动状态和备用状态的装置间的数据同步模块需要保持定期心跳,以确保各计算资源节点工作正常。
进一步地,当处于活动状态的装置发生故障后,所述高可用系统根据预定的策略,从所述备用状态的装置中选出一个装置作为新的活动状态节点,同时将该备用状态的装置上的数据同步模块设置为主动模式运行。
本发明同时提供一种低成本的高可用系统实现方法,所述高可用系统包括至少两个以上的计算资源,其中一个计算资源处于活动状态,其余的计算资源处于备用状态,其中所述方法包括如下步骤:
步骤1、处于活动状态的计算资源将上层应用数据通过读写模块保存到存储模块中;
步骤2、数据同步模块截获数据的写入请求后,将即将写入到存储模块中的数据通过网络传输协议经由本机网络适配器,发送给其他备用计算资源。
进一步地,在所述步骤2之后,还包括:所述处于备用状态的计算资源通过数据同步模块监听到来自处于活动状态的计算资源发送的数据写入请求后,通过本机网络适配器接收来自处于活动状态的计算资源发送的数据,并指示读写模块将接收到的数据保存到本机存储模块上。
进一步地,在所述步骤3之后,还包括:当处于活动状态的计算资源发生故障后,所述高可用系统根据预定的策略从处于备用状态的计算资源中选择一个计算资源作为新的活动节点,并对外继续提供服务。
进一步地,处于活动状态和备用状态的计算资源间的数据同步模块需要保持定期心跳,以确保各计算资源节点工作正常。
进一步地,当处于活动状态的计算资源发生故障后,如果活动节点的数据同步模块运行正常,通知其他备用计算资源接管服务,其他备用节点根据预定的策略选出一个备用节点作为新的活动节点;如果活动节点的数据同步模块运行异常,其他备用节点在心跳间隔超时后仍然收不到活动节点发送的心跳信息,则认为原活动节点出现故障,其他备用计算资源根据预定策略选出一个备用节点作为新的活动节点。
进一步地,当所述备用计算资源被选作为新的活动节点时,其数据同步模块的运行模式由被动模式改为主动模式,同时启动其上的上层应用模块,继续对外提供服务。
与现有的技术方案相比,本发明具有如下优点:
成本低廉:无需使用昂贵的独立存储设备,直接使用计算资源自带的硬盘存储数据,节省了硬件投资和维护成本。
可靠性高:本发明提供的数据安全性不低于使用独立存储设备方案的数据安全性。
易于控制:无需担心存储资源被多个计算资源同时写入而导致数据永久性损坏。由于在本发明中,存储资源与计算资源合并,均由服务器本机控制,因此不会出现多个计算资源同时写入的情况。
灾备能力更强:在保障网络带宽的前提下,本发明计算资源可以分布在不同的楼宇或地域,即使本地物理设备彻底损毁(如火灾、地震等灾害),最新的数据仍然完好保存在异地。
性能保障:在进行数据同步时,并非以文件系统格式(以文件为单位)进行同步,而是以底层的物理存储单元为单位进行同步,因而同步效率高。
附图说明
图1是现有技术高可用系统的示意图。
图2是本发明低成本的高可用系统的示意图。
图3是本发明低成本的高可用系统的装置结构示意图。
图4是本发明低成本的高可用系统的装置应用场景图。
图5是本发明低成本的高可用系统的实现方法流程图。
具体实施方式
为了实现本发明目的,本发明采用的核心思想为:在本发明提供的低成本的高可用系统中,不再使用独立的存储设备,其存储资源由各计算资源自身携带的本地硬盘提供,处于活动状态和备用状态的计算资源的本地硬盘间相互实时备份,当其中处于活动状态的计算资源(活动节点)发生故障后,处于备用状态的计算资源根据预定的策略从中选出一个计算资源作为新的活动节点,并立即接管高可用系统中对外提供的应用和服务,同时存储资源也随之切换。通过本发明方案,可以实现本发明的低成本高可用系统。
为使本发明技术方案更加清楚和明白,以下结合本发明具体实施例加以详细说明。如图2所示,为本发明低成本的高可用系统的示意图。其中,该高可用系统包括:
多个计算资源(服务器A、服务器B和服务器C),其中在每个计算资源上均安装有操作系统(OS),并在该操作系统上运行具体的应用(如Web应用),进而实现对外提供服务。另外,每一计算资源本身带有存储资源(服务器自带的磁盘),用于运行计算资源上安装的操作系统、上层应用程序,或者保存上层应用数据等。
另外,本发明提供的低成本高可用系统,在同一时刻,也只有一个计算资源处于活动状态(Active)对外提供服务,其他的计算资源则均处于备用状态(Standby),且处于活动状态的计算资源和处于备用状态的计算资源间彼此实时相互备份。
与现有的技术相比,本发明提供的低成本高可用系统中缺少独立的存储设备,其存储资源由各计算资源自身携带的本地硬盘提供,处于活动状态和备用状态的计算资源的本地硬盘间相互实时备份,当其中处于活动状态的计算资源(活动节点)发生故障后,处于备用状态的计算资源根据预定的策略从中选出一个计算资源作为新的活动节点,并立即接管高可用系统中对外提供的应用和服务,同时存储资源也随之切换。
进一步地,如图3所示,为本发明低成本的高可用系统的计算资源装置结构示意图。具体地,在本发明实施例中,所述计算资源装置具体为高可用系统中的服务器,所述计算资源包括:
上层应用模块,用于当所述计算资源为活动状态时,为当前高可用系统对外上层应用服务(如Web服务)。
读写模块,用于根据请求将上层应用数据写入存储模块,或者从存储模块中读出已保存的上层应用数据。
存储模块,与所述读写模块相连接,用于存储来自上层应用模块的上层应用数据。
需要说明的是,在本发明实施例中,所述存储模块即可以由所述计算资源中的物理硬盘构成,也可以由计算资源物理硬盘中的部分存储空间构成。从上层操作系统或应用的角度看,所述存储模块就是一块独立的硬盘或硬盘分区。
数据同步模块:用于对所述存储模块中将要保存的数据进行实时同步。
具体地,该模块在本发明实施例中具体有两种运行模式:主动模式(Master)与备份模式(Slave)。其中
在处于活动状态的计算资源(Active节点)上,该模块以主动模式运行,自动将即将写入存储模块的数据使用网络传输协议(例如TCP/IP协议)通过本机网卡传送给其他节点;
在处于不活动状态的计算资源(Standby节点)上,该模块以备份模式运行,自动将从网卡接收到的数据通过读写模块写入本机存储模块中。如果在一套高可用系统中存在超过2台以上的计算资源(服务器)时,在本发明实施例中,仅有一个计算资源(Active节点)中的数据同步模块以主动模式运行,其他计算资源(Standby)的数据同步模块则均以备份模式运行。
另外,在本发明实施例中,处于主动状态和备用状态的计算资源节点间的数据同步模块需要保持定期心跳,以确保各计算资源节点工作正常。
如图4所示,为本发明低成本的高可用系统的装置应用场景图。假设在该应用场景中,左侧为处于活动状态的计算资源(Active节点);右侧为处于备用状态的计算资源(Standby节点),在本应用场景中,上层应用数据实时从活动节点备份到备用节点上。
本发明低成本的高可用系统的实现方法如图5所示,具体如下:
步骤1、处于活动状态的计算资源将上层应用数据通过读写模块保存到存储模块中。
具体地,当处于活动状态的计算资源需要将上层应用数据保存到存储模块中时,首先通过读写模块将数据写入到对应的文件系统(文件系统具体是指操作系统提供的,用于访问存储模块的数据结构),文件系统经由数据缓存后,进一步执行将数据写入存储模块的操作。
步骤2、数据同步模块截获数据的写入请求后,将即将写入到存储模块中的数据通过网络传输协议经由本机网络适配器,发送给其他备用计算资源。
具体地,在本发明实施例中,数据同步模块是通过TCP/IP协议来实现处于活动状态和备用状态的计算资源(不同服务器)间的网络通信,需要说明的是,在本发明中,也可以采用其他网络传输协议来实现不同计算资源间的网络通信,不得以此作为限缩本发明的范围。所述数据同步模块通过本机网络适配器发送需要同步的数据并在收到备用计算资源的成功回应后,再经由磁盘驱动程序,将需要写入的数据写入本地硬盘。
步骤3、处于备用状态的计算资源通过数据同步模块监听到来自处于活动状态的计算资源发送的数据写入请求后,通过本机网络适配器接收来自处于活动状态的计算资源发送的数据,并指示读写模块将接收到的数据保存到本机存储模块上。
具体地,由于处于备用状态的计算资源节点中的应用/服务并没有运行,因此对上层应用模块而言,该处于备用状态的计算资源处于脱机状态,因此不会有来自于本机的数据写入请求。其数据同步模块监听到的数据写入请求只能是来自于处于活动状态的计算资源发送的数据写入请求。
当数据同步模块收到来自处于主动状态的计算资源发送的数据写入请求后,通过本机网络适配器接收来自处于活动状态的计算资源发送的数据,并指示读写模块将接收到的数据保存到本机存储模块上,并在保存成功后回应数据同步成功消息给处于活动状态的计算资源的数据同步模块。
步骤4、当处于活动状态的计算资源发生故障后,所述高可用系统根据预定的策略从处于备用状态的计算资源中选择一个计算资源作为新的活动节点,并对外继续提供服务。
具体地,当处于活动状态的计算资源(活动节点)发生故障后(如应用或系统崩溃),所述数据同步模块进行如下处理:
如果活动节点的数据同步模块运行正常(即能够与其他处于备用状态的计算资源节点的数据同步模块能够正常通信),其可以通知其他备用计算资源(备用节点)接管服务,其他备用节点根据预定的策略通过仲裁决策后,最终选出一个备用节点作为新的活动节点,将其数据同步模块的运行模式改为主动模式,同时启动其上的上层应用模块,继续对外提供服务。
如果活动节点的数据同步模块运行异常(即无法与其他处于备用状态的计算资源节点的数据同步模块通信),其他备用节点在心跳间隔超时后仍然收不到活动节点发送的心跳信息,则认为原活动节点出现故障,其他备用节点根据预定策略通过仲裁决策后,选出一个备用节点作为新的活动节点,其数据同步模块的运行模式改为主动模式,同时启动其上的上层应用模块,继续对外提供服务。
与现有的技术方案相比,本发明具有如下优点:
成本低廉:无需使用昂贵的独立存储设备,直接使用计算资源自带的磁盘存储数据,节省了硬件投资和维护成本。
可靠性高:本发明提供的数据安全性不低于使用独立存储设备方案的数据安全性。
易于控制:无需担心存储资源被多个计算资源同时写入而导致数据永久损坏。本发明中,存储资源与计算资源合并,均由服务器本机控制,不会出现多节点同时写入情况。
灾备能力更强:在保障网络带宽的前提下,节点可以分布在不同的楼宇或地域,即使本地物理设备彻底损毁(如火灾、地震等灾害),最新的数据仍然完好保存在异地。
性能保障:数据同步时,并非以文件系统格式(以文件为单位)进行同步,而是以底层的物理存储单元为单位进行同步,效率高。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。