发明名称 构建基于以太网的跨平台高可用系统的方法
摘要 构建基于以太网的跨平台高可用系统的方法涉及计算机技术领域,描述该方法所需定义的基本元素包括kernel_work模块、raw_send模块、raw_receive模块、raw_transfer模块;kernel_work模块是核心模块,负责节点状态管理、数据转发以及写入、灾难切换的工作,可以运行在多种平台上;raw_send模块是数据发送模块;raw­_receive模块是数据接收模块,功能是接收raw_send模块发送的块数据;raw_transfer模块是数据格式转换模块,主要功能是根据源以及目标系统的平台差异,自动进行raw数据的格式转换工作。与现有技术比较,本发明具有成本低、架构简单、管理方便、节点扩展和回收高度灵活、维护简单等特点。
申请公布号 CN106101208A 申请公布日期 2016.11.09
申请号 CN201610401443.0 申请日期 2016.06.10
申请人 北京银信长远科技股份有限公司 发明人 林性平
分类号 H04L29/08(2006.01)I;H04L12/24(2006.01)I 主分类号 H04L29/08(2006.01)I
代理机构 代理人
主权项 构建基于以太网的跨平台高可用系统的方法,描述该方法所需定义的基本元素包括kernel_work模块、raw_send模块、raw_receive模块、raw_transfer模块;kernel_work模块是核心模块,运行在所有数据节点上,kernel_work模块主要负责节点状态管理、数据转发以及写入、灾难切换的工作,可以运行在多种平台上;raw_send模块是一个独立运行的数据发送模块,运行在所有数据节点上;raw­_receive模块是一个独立运行的数据接收模块,运行在所有数据节点上,主要功能是接收raw_send模块发送的块数据,通过调用kernel_work模块由kernel_work模块驱动本地操作系统自带的Disk driver完成磁盘写入;raw_transfer模块是一个独立运行的数据格式转换模块,运行在所有数据节点上,主要功能是根据源以及目标系统的平台差异,自动进行raw数据的格式转换工作,经过raw数据的格式转换工作后的目标系统格式的raw数据通过raw_send模块发送给目标系统,使得目标系统的raw­_receive模块接收到目标系统格式的raw数据后可以直接调用kernel_work模块完成写入工作;实现构建基于以太网的跨平台高可用系统的方法的主要步骤包括:1)数据节点划分在基于以太网的跨平台服务器群的整个架构中,设定所有服务器作为单独的数据节点,数据节点分为主节点和备用节点,主节点可以有多个,每个主节点可以定义它的若干个备用节点;每个数据节点上运行kernel_work模块、raw_send模块、raw­_receive模块、raw_transfer模块;2)kernel_work模块的工作步骤①在主节点上的kernel_work模块和操作系统的Buffer cache做接口,当客户端向服务器提交数据时,数据通过操作系统的Buffer cache传递给kernel_work模块,当设备是裸设备时客户端向服务器提交的数据直接提交给kernel_work模块,kernel_work模块接收客户端提交到服务器的数据,将这些数据一方面转给Disk driver写入本地磁盘,另一方面将这些数据提交给raw_send模块;当客户端提交的数据是读请求,则不介入操作,由操作系统自带的Disk driver以及Buffer cache提供数据给客户端;②在备用节点上的kernel_work模块负责处理raw_receive模块接收到的数据,将raw_receive模块接收到的数据通过本地备用节点的Disk driver写入本地磁盘,并且向主节点返回一个状态;③主节点上的kernel_work模块时刻判断主节点以及备用节点的状态,判断状态的时间间隔通过网络心跳服务控制,当主节点出现宕机和无状态反馈的异常情况时,kernel_work模块自动激活备选备用节点接管主节点的服务,完成切换动作;④kernel_work模块维护一个节点目录,登记各个服务当前对应的主节点以及备用节点,并且通过网络心跳服务掌握各个节点状态;⑤kernel_work模块提供节点增删改接口,用户可以通过该接口智能动态的对节点的数量和状态进行修改;3)raw_send模块的工作步骤①raw_send模块接收kernel_work模块提交的由客户端向服务器提交的数据,将由客户端向服务器提交的数据通过高速以太网发送给备用节点的raw_receive模块;②当主节点和备用节点属于不同平台,raw_send模块调用raw_transfer模块进行跨平台数据格式转换,将由客户端向服务器提交的数据转换成备用节点的数据格式生成转换后的数据,转换后的数据直接由备用节点的raw_receive模块接收并由raw_receive模块提交给备用节点的kernel_work模块,备用节点的kernel_work模块将转换后的数据通过本地备用节点的Disk driver写入本地磁盘,并且向主节点返回一个状态;4)raw­_receive模块的工作步骤①raw­_receive模块负责接收raw_send模块发送的数据;②raw­_receive模块负责将收到的数据提交给本地节点的kernel_work模块,本地节点包括主节点和备用节点两种类型;5)raw_transfer模块的工作步骤接受raw_send模块调用,根据源节点以及目标节点的平台差异,自动进行raw数据的格式转换工作,达到目标节点接收到转换后的数据可以直接完成写入工作;源节点包括主节点和备用节点两种类型,目标节点包括主节点和备用节点两种类型;6)复制协议的选择 用户根据不同的应用场景的响应需求和可靠性需求可以选用以下三种复制协议:①同步复制协议,当本地磁盘以及所有备用节点磁盘都完成数据写入,写操作才被认为完成;这种协议可靠性最高,不会有数据丢失风险,但是如果网络带宽有瓶颈则会影响到io的吞吐量;②异步复制协议,本地磁盘完成数据写入即被认为写操作完成,所有备用节点的写入操作后续由kernel_work模块负责调度完成;这种协议可靠性不高,存在数据丢失风险,但是io的吞吐量不受网络带宽的影响;③半同步复制协议:本地磁盘完成数据写入并且转发数据已经由备用节点的raw_receive模块接收到,则认为写操作完成,备用节点的数据写入操作由备用节点上的kernel_work模块负责调度完成;这种协议是前面两种协议的一种妥协,在性能和可靠性上做了一些折衷。
地址 100080 北京市海淀区苏州街18号院长远天地大厦4号楼21层2101-2105房