基于虚拟磁盘实现分布式存储数据副本的方法和系统技术方案

技术编号:38871120 阅读:9 留言:0更新日期:2023-09-22 14:07
本发明专利技术提供了一种基于虚拟磁盘实现分布式存储数据副本的方法和系统,包括:将物理磁盘按照固定大小,格式化划分为多个副本磁盘;基于副本磁盘创建副本磁盘池,并对副本磁盘池中的副本磁盘进行管理;通过副本磁盘创建虚拟磁盘,并以虚拟磁盘为单位进行数据读写;将虚拟磁盘格式化为存储数据块,分配给数据读写客户端进行数据读写,每个存储数据块都具有集群唯一ID,客户端按照存储数据块的ID对存储数据块进行读写。本发明专利技术保障了分布式存储的数据安全、高并发读写及大容量存储。高并发读写及大容量存储。高并发读写及大容量存储。

【技术实现步骤摘要】
基于虚拟磁盘实现分布式存储数据副本的方法和系统


[0001]本专利技术涉及分布式数据存储
,具体地,涉及基于虚拟磁盘实现分布式存储数据副本的方法和系统。

技术介绍

[0002]在分布式存储领域,需要面临一系列难题,包括保障数据安全可靠、高并发读写、大容量、灵活扩展、数据均衡等。
[0003]专利文献CN114020750A公开了一种基于分布式存储的海量数据读写方法及系统,包括:获取高精度地图的采集数据,并将其存放到Hbase数据库中;根据采集数据的时间信息、设备信息和空间信息构建所述Hbase数据库的行键;将采集数据的描述信息存放在elasticsearch数据库中,并以Hbase数据库的行键作为通用唯一标识符;根据所述描述信息和所述通用唯一标识符建立数据索引;将用户的数据读写请求与数据索引匹配,对匹配到的Hbase数据库中的数据执行相应的读写操作。其通过首先将数据和索引分别存储,再通过行键实现Hbase与elasticsearch的互通,来解决高并发读写场景下性能不足的问题。
[0004]但是,专利文献CN114020750A没有解决如何按照需求动态分配的磁盘管理的技术问题。

技术实现思路

[0005]针对现有技术中的缺陷,本专利技术的目的是提供一种基于虚拟磁盘实现分布式存储数据副本的方法和系统。
[0006]根据本专利技术提供的一种基于虚拟磁盘实现分布式存储数据副本的方法,包括:
[0007]步骤S1:将物理磁盘按照固定大小,格式化划分为多个副本磁盘;
>[0008]步骤S2:基于副本磁盘创建副本磁盘池,并对副本磁盘池中的副本磁盘进行管理;
[0009]步骤S3:通过副本磁盘创建虚拟磁盘,并以虚拟磁盘为单位进行数据读写;
[0010]步骤S4:将虚拟磁盘格式化为存储数据块,分配给数据读写客户端进行数据读写,每个存储数据块都具有集群唯一ID,客户端按照存储数据块的ID对存储数据块进行读写。
[0011]优选地,在所述步骤S2中,副本磁盘池的管理规则包括:
[0012]规则A1:按照副本磁盘归属的物理磁盘分别管理,使得各物理磁盘平均分配数据;
[0013]规则A2:按照副本磁盘归属的主机节点分别管理,使得各主机节点平均分配数据。
[0014]优选地,多个物理磁盘构成分布式集群中的数据节点,划分在多个存储节点组中,存储节点组配备独立的机柜和/或电源。
[0015]在所述步骤S3中,每一个虚拟磁盘由与数据副本的数量相等的副本磁盘创建形成;创建虚拟磁盘的规则包括:
[0016]规则B1:副本磁盘不能来自于同一个数据节点;
[0017]规则B2:副本磁盘优先来自于不同的存储节点组;
[0018]规则B3:在满足规则B1、规则B2的基础上,副本磁盘优先来自于空闲空间最多的物
理磁盘和主机节点。
[0019]优选地,所述步骤S4包括:
[0020]步骤S4.1:将虚拟磁盘进一步格式化为存储数据块,并采用位图控制数据块的空闲状态
[0021]步骤S4.2:客户端申请写数据块时,按照位图分配空闲虚拟磁盘的存储数据块给客户端,然后将位图更新为0表示已分配;
[0022]步骤S4.3:客户端按照分配的虚拟磁盘的存储数据块,写数据到已分配存储数据块的各个副本磁盘对应的物理数据块,然后通知虚拟磁盘数据更新成功,否则虚拟磁盘在到达预设时间以后到各副本磁盘进行数据一致性校验,如果数据不一致,则认为存储数据块未写成功,将对应位图更新为1表示空闲,如果数据一致则认为存储数据块已写成功,将对应位图维持为0表示已分配;
[0023]步骤S4.4:客户端读数据时,按照存储数据块的ID计算对应的虚拟磁盘,然后获取虚拟磁盘对应的多个副本磁盘,然后随机到多个副本磁盘中的任一个读取对应的存储数据块数据。
[0024]优选地,还包括:
[0025]步骤S5:当物理磁盘或者主机节点损坏导致存储的副本数据丢失,则进行副本数据恢复;
[0026]所述步骤S5包括:
[0027]步骤S5.1:查询物理磁盘所包含的副本磁盘,查询到影响数据副本缺少的虚拟磁盘,对虚拟磁盘进行数据副本恢复;
[0028]步骤S5.2:删除丢失数据的副本磁盘,从副本磁盘池为虚拟磁盘选择一个新的副本磁盘,然后开始副本磁盘的数据恢复;
[0029]步骤S5.3:恢复数据的副本磁盘从虚拟磁盘其他正常的副本磁盘读取数据块位图,按照位图恢复对应的存储数据块,其中,只恢复状态为1表示已分配的存储数据块;
[0030]步骤S5.4:在虚拟磁盘数据块恢复过程中,虚拟磁盘仅提供数据读取,不提供数据写入,且读取数据只从其他正常的数据副本读取数据。
[0031]根据本专利技术提供的一种基于虚拟磁盘实现分布式存储数据副本的系统,包括:
[0032]模块M1:将物理磁盘按照固定大小,格式化划分为多个副本磁盘;
[0033]模块M2:基于副本磁盘创建副本磁盘池,并对副本磁盘池中的副本磁盘进行管理;
[0034]模块M3:通过副本磁盘创建虚拟磁盘,并以虚拟磁盘为单位进行数据读写;
[0035]模块M4:将虚拟磁盘格式化为存储数据块,分配给数据读写客户端进行数据读写,每个存储数据块都具有集群唯一ID,客户端按照存储数据块的ID对存储数据块进行读写。
[0036]优选地,在所述模块M2中,副本磁盘池的管理规则包括:
[0037]规则A1:按照副本磁盘归属的物理磁盘分别管理,使得各物理磁盘平均分配数据;
[0038]规则A2:按照副本磁盘归属的主机节点分别管理,使得各主机节点平均分配数据。
[0039]优选地,多个物理磁盘构成分布式集群中的数据节点,划分在多个存储节点组中,存储节点组配备独立的机柜和/或电源。
[0040]在所述模块M3中,每一个虚拟磁盘由与数据副本的数量相等的副本磁盘创建形成;创建虚拟磁盘的规则包括:
[0041]规则B1:副本磁盘不能来自于同一个数据节点;
[0042]规则B2:副本磁盘优先来自于不同的存储节点组;
[0043]规则B3:在满足规则B1、规则B2的基础上,副本磁盘优先来自于空闲空间最多的物理磁盘和主机节点。
[0044]优选地,所述模块M4包括:
[0045]模块M4.1:将虚拟磁盘进一步格式化为存储数据块,并采用位图控制数据块的空闲状态
[0046]模块M4.2:客户端申请写数据块时,按照位图分配空闲虚拟磁盘的存储数据块给客户端,然后将位图更新为0表示已分配;
[0047]模块M4.3:客户端按照分配的虚拟磁盘的存储数据块,写数据到已分配存储数据块的各个副本磁盘对应的物理数据块,然后通知虚拟磁盘数据更新成功,否则虚拟磁盘在到达预设时间以后到各副本磁盘进行数据一致性校验,如果数据不一致,则认为存储数据块未写成功,将对应位图更新为1表示空闲,如果数据一致则认为存储数据块已写本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于虚拟磁盘实现分布式存储数据副本的方法,其特征在于,包括:步骤S1:将物理磁盘按照固定大小,格式化划分为多个副本磁盘;步骤S2:基于副本磁盘创建副本磁盘池,并对副本磁盘池中的副本磁盘进行管理;步骤S3:通过副本磁盘创建虚拟磁盘,并以虚拟磁盘为单位进行数据读写;步骤S4:将虚拟磁盘格式化为存储数据块,分配给数据读写客户端进行数据读写,每个存储数据块都具有集群唯一ID,客户端按照存储数据块的ID对存储数据块进行读写。2.根据权利要求1所述的基于虚拟磁盘实现分布式存储数据副本的方法,其特征在于,在所述步骤S2中,副本磁盘池的管理规则包括:规则A1:按照副本磁盘归属的物理磁盘分别管理,使得各物理磁盘平均分配数据;规则A2:按照副本磁盘归属的主机节点分别管理,使得各主机节点平均分配数据。3.根据权利要求1所述的基于虚拟磁盘实现分布式存储数据副本的方法,其特征在于,多个物理磁盘构成分布式集群中的数据节点,划分在多个存储节点组中,存储节点组配备独立的机柜和/或电源。在所述步骤S3中,每一个虚拟磁盘由与数据副本的数量相等的副本磁盘创建形成;创建虚拟磁盘的规则包括:规则B1:副本磁盘不能来自于同一个数据节点;规则B2:副本磁盘优先来自于不同的存储节点组;规则B3:在满足规则B1、规则B2的基础上,副本磁盘优先来自于空闲空间最多的物理磁盘和主机节点。4.根据权利要求1所述的基于虚拟磁盘实现分布式存储数据副本的方法,其特征在于,所述步骤S4包括:步骤S4.1:将虚拟磁盘进一步格式化为存储数据块,并采用位图控制数据块的空闲状态步骤S4.2:客户端申请写数据块时,按照位图分配空闲虚拟磁盘的存储数据块给客户端,然后将位图更新为0表示已分配;步骤S4.3:客户端按照分配的虚拟磁盘的存储数据块,写数据到已分配存储数据块的各个副本磁盘对应的物理数据块,然后通知虚拟磁盘数据更新成功,否则虚拟磁盘在到达预设时间以后到各副本磁盘进行数据一致性校验,如果数据不一致,则认为存储数据块未写成功,将对应位图更新为1表示空闲,如果数据一致则认为存储数据块已写成功,将对应位图维持为0表示已分配;步骤S4.4:客户端读数据时,按照存储数据块的ID计算对应的虚拟磁盘,然后获取虚拟磁盘对应的多个副本磁盘,然后随机到多个副本磁盘中的任一个读取对应的存储数据块数据。5.根据权利要求1所述的基于虚拟磁盘实现分布式存储数据副本的方法,其特征在于,还包括:步骤S5:当物理磁盘或者主机节点损坏导致存储的副本数据丢失,则进行副本数据恢复;所述步骤S5包括:步骤S5.1:查询物理磁盘所包含的副本磁盘,查询到影响数据副本缺少的虚拟磁盘,对
虚拟磁盘进行数据副本恢复;步骤S5.2:删除丢失数据的副本磁盘,从副本磁盘池为虚拟磁盘选择一个新的副本磁盘,然后开始副本磁盘的数据恢复;步骤S5.3:恢复数据的副本磁盘从虚拟磁盘其他正常的副本磁盘读取数据块位图,按照位图恢复对应的存储数据块,其中,只恢复状态为1表示已分配的存储数据块;步骤S5.4:在虚拟磁盘数据块恢复过程中,虚拟磁盘仅提供数据读取,不提供数据写入,且读取数据只从其他正常的数据副本读取数据。6.一种...

【专利技术属性】
技术研发人员:吝晓军
申请(专利权)人:兴业数字金融服务上海股份有限公司
类型:发明
国别省市:

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

1