分布式存储方法、设备及介质技术

技术编号:38850914 阅读:7 留言:0更新日期:2023-09-17 09:59
本发明专利技术涉及计算机技术领域,提供一种分布式存储方法、设备及介质,其方法应用于分布式系统,包括服务器集群及基于ETCD服务集群构建的服务管理中心,服务器集群包括主服务器及多个备服务器,服务器集群中的每个服务器包括软件开发工具包、父进程文件、子进程文件,能够提供一种轻量级高性能的分布式存储服务,基于共享内存技术提高了数据存储的速度,保证了主备服务器间数据同步的性能,并通过负载均衡方式实现了灵活的分布式存储服务的部署,及通过服务管理中心实现了有效的存储服务管理和监控,进而保证应用程序故障时能够快速进行故障恢复。复。复。

【技术实现步骤摘要】
分布式存储方法、设备及介质


[0001]本专利技术涉及计算机
,尤其涉及一种分布式存储方法、设备及介质。

技术介绍

[0002]现有技术中,将数据存储到磁盘是十分常见的应用场景,比如将数据写入文件、写入到数据库等。一般而言,将数据存储到磁盘中进行备份,在应用故障后重启可以从磁盘中读取备份的数据进行业务恢复。
[0003]但在分布式系统中,数据库服务太重且数据同步性能不高,尤其在高性能分布式系统中,无法保证应用主备切换后在备份服务器磁盘中可以读取到故障前的完整数据,导致故障后无法快速且准确的恢复服务。

技术实现思路

[0004]鉴于以上内容,有必要提供一种分布式存储方法、设备及介质,能够在分布式系统中的主服务器宕机时快速切换至备服务器进行数据恢复,且在切换后,能够保证服务正常执行。
[0005]一种分布式存储方法,应用于分布式系统,所述分布式系统包括服务器集群及基于ETCD服务集群构建的服务管理中心,所述服务器集群包括主服务器及多个备服务器,所述服务器集群中的每个服务器包括软件开发工具包、父进程文件、子进程文件;所述分布式存储方法包括:当检测到所述主服务器的应用程序向所述主服务器的子进程文件发起登录请求时,所述主服务器的子进程文件向所述服务管理中心发起查询请求;所述服务管理中心在接收到所述查询请求后,从所述多个备服务器中选择目标服务器,并将所述目标服务器的连接地址反馈给所述主服务器的子进程文件;所述主服务器的子进程文件根据所述目标服务器的连接地址连接至所述目标服务器的子进程文件;在连接成功后,所述主服务器的子进程文件向所述主服务器的应用程序反馈登录成功;所述主服务器的应用程序调用所述主服务器的软件开发工具包所提供的接口,并基于负载均衡算法连接至所述目标服务器的目标共享内存,将应用数据写入所述目标共享内存;所述主服务器的子进程文件从所述目标共享内存中读取所述应用数据,并将所述应用数据同步至所述目标服务器的子进程文件;所述目标服务器的子进程文件将所述应用数据加密写入所述目标服务器的磁盘中,及所述主服务器的子进程文件将所述应用数据加密写入所述主服务器的磁盘中;当检测到所述主服务器宕机时,所述目标服务器拉起所述目标服务器上与所述主服务器的应用程序对应的目标应用程序;
所述目标应用程序从所述目标服务器的磁盘中读取数据并解密,利用解密后得到的数据对所述主服务器的服务进行恢复。
[0006]根据本专利技术优选实施例,所述从所述多个备服务器中选择目标服务器包括:所述服务管理中心检测所述主服务器是否有指定的服务器;当检测到所述主服务器有指定的服务器时,所述服务管理中心将所述主服务器所指定的服务器确定为所述目标服务器;或者当检测到所述主服务器没有指定的服务器时,所述服务管理中心从所述多个备服务器中获取在线服务器,并从所述在线服务器中选择空闲率最高的服务器作为所述目标服务器。
[0007]根据本专利技术优选实施例,所述服务器集群中的每个服务器所包括的子进程文件配置有至少一个共享内存;所述基于负载均衡算法连接至所述目标服务器的目标共享内存包括:所述主服务器的应用程序获取所述目标服务器的共享内存中每个共享内存已连接应用程序的数量;所述主服务器的应用程序从所述目标服务器的共享内存中获取所述已连接应用程序的数量最小的共享内存作为所述目标共享内存;所述主服务器的应用程序连接至所述目标共享内存。
[0008]根据本专利技术优选实施例,所述服务器集群中每个服务器的父进程文件及子进程文件在后台运行,且一直处于运行状态;所述服务器集群中每个服务器的父进程文件及子进程文件为所在服务器上的所有应用程序提供服务;所述方法还包括:每个服务器的父进程文件连续监控对应子进程文件的进程状态;当监控到有子进程文件异常退出时,对应的父进程文件拉起新的子进程文件。
[0009]根据本专利技术优选实施例,所述从所述多个备服务器中选择目标服务器前,所述方法还包括:在有服务器启动后,所述服务器获取自身的服务器标识码及监听的地址端口信息;所述服务器将获取到的服务器标识码及地址端口信息注册至所述服务管理中心作为注册信息,并利用租约机制在自身异常后对所述注册信息进行失效处理;所述服务管理中心获取注册过的所有服务器作为所述多个备服务器。
[0010]根据本专利技术优选实施例,所述方法还包括:所述目标服务器获取当前应用场景;当所述当前应用场景为高吞吐场景时,在所述主服务器的应用程序将一条数据写入所述目标共享内存后,返回继续处理下一条数据;当所述当前应用场景为高可靠性场景时,在所述目标服务器的子进程文件将一条数据加密写入所述目标服务器的磁盘后,返回继续处理下一条数据;当所述当前应用场景为除所述高吞吐场景及所述高可靠性场景外的其他场景时,在所述目标共享内存将一条数据同步至所述目标服务器的子进程文件后,返回继续处理下一条数据。
[0011]根据本专利技术优选实施例,不同服务器间的子进程文件间采用数据面与控制面分离
的方式进行交互;其中,所述控制面采用GRPC短连接进行交互;其中,所述数据面采用TCP连接或者RDMA

Write连接进行交互;当网卡类型为RDMA类型时,所述数据面采用所述RDMA

Write连接进行交互,当所述网卡类型为除所述RDMA类型外的其他类型时,所述数据面采用所述TCP连接进行交互。
[0012]根据本专利技术优选实施例,所述利用解密后得到的数据对所述主服务器的服务进行恢复后,所述方法还包括:所述目标服务器的子进程文件从除所述主服务器及所述目标服务器外的其他服务器中选择服务器;所述目标服务器的子进程文件与选择的服务器的子进程文件建立新的连接进行数据同步。
[0013]一种分布式存储装置,运行于分布式系统,所述分布式系统包括服务器集群及基于ETCD服务集群构建的服务管理中心,所述服务器集群包括主服务器及多个备服务器,所述服务器集群中的每个服务器包括软件开发工具包、父进程文件、子进程文件;所述分布式存储装置包括:所述主服务器的子进程文件,用于当检测到所述主服务器的应用程序向所述主服务器的子进程文件发起登录请求时,向所述服务管理中心发起查询请求;所述服务管理中心,用于在接收到所述查询请求后,从所述多个备服务器中选择目标服务器,并将所述目标服务器的连接地址反馈给所述主服务器的子进程文件;所述主服务器的子进程文件,还用于根据所述目标服务器的连接地址连接至所述目标服务器的子进程文件;所述主服务器的子进程文件,还用于在连接成功后,向所述主服务器的应用程序反馈登录成功;所述主服务器的应用程序,还用于调用所述主服务器的软件开发工具包所提供的接口,并基于负载均衡算法连接至所述目标服务器的目标共享内存,将应用数据写入所述目标共享内存;所述主服务器的子进程文件,还用于从所述目标共享内存中读取所述应用数据,并将所述应用数据同步至所述目标服务器的子进程文件;所述目标服务器的子进程文件,用于将所述应用数据加密写入所述目标服务器的磁盘中;所述主服务器的子进程文件,还用于将所述应用数据加密写入所述主服务器的磁盘中;所述本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式存储方法,应用于分布式系统,其特征在于,所述分布式系统包括服务器集群及基于ETCD服务集群构建的服务管理中心,所述服务器集群包括主服务器及多个备服务器,所述服务器集群中的每个服务器包括软件开发工具包、父进程文件、子进程文件;所述分布式存储方法包括:当检测到所述主服务器的应用程序向所述主服务器的子进程文件发起登录请求时,所述主服务器的子进程文件向所述服务管理中心发起查询请求;所述服务管理中心在接收到所述查询请求后,从所述多个备服务器中选择目标服务器,并将所述目标服务器的连接地址反馈给所述主服务器的子进程文件;所述主服务器的子进程文件根据所述目标服务器的连接地址连接至所述目标服务器的子进程文件;在连接成功后,所述主服务器的子进程文件向所述主服务器的应用程序反馈登录成功;所述主服务器的应用程序调用所述主服务器的软件开发工具包所提供的接口,并基于负载均衡算法连接至所述目标服务器的目标共享内存,将应用数据写入所述目标共享内存;所述主服务器的子进程文件从所述目标共享内存中读取所述应用数据,并将所述应用数据同步至所述目标服务器的子进程文件;所述目标服务器的子进程文件将所述应用数据加密写入所述目标服务器的磁盘中,及所述主服务器的子进程文件将所述应用数据加密写入所述主服务器的磁盘中;当检测到所述主服务器宕机时,所述目标服务器拉起所述目标服务器上与所述主服务器的应用程序对应的目标应用程序;所述目标应用程序从所述目标服务器的磁盘中读取数据并解密,利用解密后得到的数据对所述主服务器的服务进行恢复。2.如权利要求1所述的分布式存储方法,其特征在于,所述从所述多个备服务器中选择目标服务器包括:所述服务管理中心检测所述主服务器是否有指定的服务器;当检测到所述主服务器有指定的服务器时,所述服务管理中心将所述主服务器所指定的服务器确定为所述目标服务器;或者当检测到所述主服务器没有指定的服务器时,所述服务管理中心从所述多个备服务器中获取在线服务器,并从所述在线服务器中选择空闲率最高的服务器作为所述目标服务器。3.如权利要求1所述的分布式存储方法,其特征在于,所述服务器集群中的每个服务器所包括的子进程文件配置有至少一个共享内存;所述基于负载均衡算法连接至所述目标服务器的目标共享内存包括:所述主服务器的应用程序获取所述目标服务器的共享内存中每个共享内存已连接应用程序的数量;所述主服务器的应用程序从所述目标服务器的共享内存中获取所述已连接应用程序的数量最小的共享内存作为所述目标共享内存;所述主服务器的应用程序连接至所述目标共享内存。
4.如权利要求1所述的分布式存储方法,其特征在于,所述服务器集群中每个服务器的父进程文件及子进程文...

【专利技术属性】
技术研发人员:牛亮亮赵楠林泽南张卫
申请(专利权)人:深圳华锐分布式技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1