多云集群数据管理系统、方法及装置转让专利

申请号 : CN202210320081.8

文献号 : CN114415980B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吴鹏飞何思源王鲲陈飞邹懋

申请人 : 维塔科技(北京)有限公司

摘要 :

本公开涉及一种多云集群数据管理系统、方法及装置,所述多云集群数据管理系统包括多个云集群,第一管理层用于,响应于接收到数据写入请求,确定该数据写入请求对应的第一数据集待写入的第一集群;根据第一数据集标识以及第一集群标识写入第一元数据;将该数据写入请求转发至该第一集群;该第二管理层用于,响应于接收到该数据写入请求,接收该第一数据集;对该第一数据集进行第一操作后发送至第三管理层;根据第一操作写入相应的第二元数据;该第三管理层用于,响应于接收到进行第一操作之后的该第一数据集,对该第一数据集执行第二操作后进行数据落盘,并根据该第二操作以及数据落盘信息写入相应的第三元数据。

权利要求 :

1.一种多云集群数据管理系统,其特征在于,所述多云集群数据管理系统包括多个云集群,所述多个云集群中包括配置有第一管理层作为中央控制集群的一个云集群,并且,所述多个云集群中每一云集群中均配置有一第二管理层以及第三管理层;

所述第一管理层用于,响应于接收到数据写入请求,确定所述数据写入请求对应的第一数据集待写入的第一集群;根据第一数据集标识以及第一集群标识写入第一元数据;将所述数据写入请求转发至所述第一集群;

所述第二管理层用于,响应于接收到所述数据写入请求,接收所述第一数据集;对所述第一数据集进行第一操作后发送至第三管理层;根据第一操作写入相应的第二元数据,所述第一操作包括数据分块、数据快照,所述第二元数据包括所述第一数据集的文件目录结构、快照元数据、快照与文件的关联信息元数据的一者或多者;

所述第三管理层用于,响应于接收到进行第一操作之后的所述第一数据集,对该第一数据集执行第二操作后进行数据落盘,并根据所述第二操作以及数据落盘信息写入相应的第三元数据,所述第二操作是根据该第三管理层所处的集群的存储系统确定的。

2.根据权利要求1所述的系统,其特征在于,

所述第一管理层用于,响应于接收到数据读取请求,根据第一元数据确定所述数据读取请求对应的第二数据集所在的第二集群;将所述数据读取请求转发至所述第二集群;

所述第二管理层用于,响应于接收到所述数据读取请求,确定所述第二数据集对应的第二元数据;

所述第三管理层用于,根据所述第二数据集对应的第二元数据以及第三元数据,读取所述数据读取请求对应的数据,以使得所述第二集群将该数据发送至目标用户。

3.根据权利要求1所述的系统,其特征在于,

所述第一管理层用于,响应于接收到数据同步请求,确定所述数据同步请求对应的第三数据集所在的第三集群,以及待同步的第四集群,并增加相应的第一元数据,并将所述数据同步请求转发至所述第四集群;

所述第二管理层用于,响应于接收到所述数据同步请求,根据所述第三数据集在所述第三集群中对应的第二元数据,在当前集群中写入对应的第二元数据;

所述第三管理层用于,根据所述第三数据集在所述第三集群中的第二元数据以及第三元数据,获取所述数据同步请求对应的数据,并对该数据执行第二操作后进行数据落盘,并根据所述第二操作以及数据落盘信息写入相应的第三元数据。

4.根据权利要求3所述的系统,其特征在于,

所述第一管理层还用于,响应于接收到针对第五集群的第一读取请求,确定所述第五集群中是否存储有所述第一读取请求对应的数据集;

在所述第五集群中未存储有所述第一读取请求对应的数据集的情况下,确定存储有所述第一读取请求对应的数据集的第六集群;并,生成第一同步请求,并将该第一同步请求发送至所述第五集群,以将所述第六集群中的与所述第一读取请求对应的数据同步至所述第五集群。

5.根据权利要求3所述的系统,其特征在于,

所述第一管理层还用于,在确定第七集群中的第四数据集中的数据被修改的情况下,确定存储有所述第四数据集的其他集群;

根据所述第四数据集中的数据的修改情况,生成第二同步请求,并将该同步请求发送至所述其他集群,以将所述第七集群中的修改后的第四数据集同步至所述其他集群。

6.根据权利要求1‑3任一项所述的系统,其特征在于,

所述第一管理层还用于,在将所述数据同步请求转发至第四集群之前,向所述第四集群的第二管理层发送读写锁定请求,以对所述第四集群中与所述数据同步请求对应的数据加锁。

7.一种多云集群数据管理方法,其特征在于,所述方法应用于多云集群数据管理系统,所述多云集群数据管理系统包括多个云集群,所述多个云集群中包括配置有第一管理层作为中央控制集群的一个云集群,并且,所述多个云集群中每一云集群中均配置有一第二管理层以及第三管理层;

通过所述第一管理层,响应于接收到数据写入请求,确定所述数据写入请求对应的第一数据集待写入的第一集群;根据第一数据集标识以及第一集群标识写入第一元数据;将所述数据写入请求转发至所述第一集群;

通过所述第二管理层,响应于接收到所述数据写入请求,接收所述第一数据集;对所述第一数据集进行第一操作后发送至第三管理层;根据第一操作写入相应的第二元数据,所述第一操作包括数据分块、数据快照,所述第二元数据包括所述第一数据集的文件目录结构、快照元数据、快照与文件的关联信息元数据的一者或多者;

通过所述第三管理层,响应于接收到进行第一操作之后的所述第一数据集,对该第一数据集执行第二操作后进行数据落盘,并根据所述第二操作以及数据落盘信息写入相应的第三元数据,所述第二操作是根据该第三管理层所处的集群的存储系统确定的。

8.根据权利要求7所述的方法,其特征在于,所述方法包括:

通过所述第一管理层,响应于接收到数据读取请求,根据第一元数据确定所述数据读取请求对应的第二数据集所在的第二集群;将所述数据读取请求转发至所述第二集群;

通过所述第二管理层,响应于接收到所述数据读取请求,确定所述第二数据集对应的第二元数据;

通过所述第三管理层,根据所述第二数据集对应的第二元数据以及第三元数据,读取所述数据读取请求对应的数据,以使得所述第二集群将该数据发送至目标用户。

9.根据权利要求7所述的方法,其特征在于,所述方法包括:

通过所述第一管理层,响应于接收到数据同步请求,确定所述数据同步请求对应的第三数据集所在的第三集群,以及待同步的第四集群,并增加相应的第一元数据,并将所述数据同步请求转发至所述第四集群;

通过所述第二管理层,响应于接收到所述数据同步请求,根据所述第三数据集在所述第三集群中对应的第二元数据,在当前集群中写入对应的第二元数据;

通过所述第三管理层,根据所述第三数据集在所述第三集群中的第二元数据以及第三元数据,获取所述数据同步请求对应的数据,并对该数据执行第二操作后进行数据落盘,并根据所述第二操作以及数据落盘信息写入相应的第三元数据。

10.一种多云集群数据管理装置,其特征在于,所述装置应用于多云集群数据管理系统,所述多云集群数据管理系统包括多个云集群,所述多个云集群中包括配置有第一管理层作为中央控制集群的一个云集群,并且,所述多个云集群中每一云集群中均配置有一第二管理层以及第三管理层;

第一写入模块,用于通过所述第一管理层,响应于接收到数据写入请求,确定所述数据写入请求对应的第一数据集待写入的第一集群;根据第一数据集标识以及第一集群标识写入第一元数据;将所述数据写入请求转发至所述第一集群;

第二写入模块,用于通过所述第二管理层,响应于接收到所述数据写入请求,接收所述第一数据集;对所述第一数据集进行第一操作后发送至第三管理层;根据第一操作写入相应的第二元数据,所述第一操作包括数据分块、数据快照,所述第二元数据包括所述第一数据集的文件目录结构、快照元数据以及快照与文件的关联信息元数据;

第三写入模块,用于通过所述第三管理层,响应于接收到进行第一操作之后的所述第一数据集,对该第一数据集执行第二操作后进行数据落盘,并根据所述第二操作以及数据落盘信息写入相应的第三元数据,所述第二操作是根据该第三管理层所处的集群的存储系统确定的。

说明书 :

多云集群数据管理系统、方法及装置

技术领域

[0001] 本公开涉及多云管理领域,具体地,涉及一种多云集群数据管理系统、方法及装置。

背景技术

[0002] 在相关技术中,为保证用户对数据具有唯一正确视角,元数据通常跨云集中保存。这种方案导致数据读写时,虽然数据本身无需进行跨云访问,但是却不得不频繁跨云访问元数据,导致数据读写性能差,同时对元数据管理服务造成巨大压力。

发明内容

[0003] 为了解决相关技术中存在的问题,本公开提供一种多云集群数据管理系统、方法及装置。
[0004] 为了实现上述目的,本公开第一方面提供一种多云集群数据管理系统,所述多云集群数据管理系统包括多个云集群,所述多个云集群中包括配置有第一管理层作为中央控制集群的一个云集群,并且,所述多个云集群中每一云集群中均配置有一第二管理层以及第三管理层;
[0005] 所述第一管理层用于,响应于接收到数据写入请求,确定所述数据写入请求对应的第一数据集待写入的第一集群;根据第一数据集标识以及第一集群标识写入第一元数据;将所述数据写入请求转发至所述第一集群;
[0006] 所述第二管理层用于,响应于接收到所述数据写入请求,接收所述第一数据集;对所述第一数据集进行第一操作后发送至第三管理层;根据第一操作写入相应的第二元数据,所述第一操作包括数据分块、数据快照,所述第二元数据包括所述第一数据集的文件目录结构、快照元数据、快照与文件的关联信息元数据的一者或多者;
[0007] 所述第三管理层用于,响应于接收到进行第一操作之后的所述第一数据集,对该第一数据集执行第二操作后进行数据落盘,并根据所述第二操作以及数据落盘信息写入相应的第三元数据,所述第二操作是根据该第三管理层所处的集群的存储系统确定的。
[0008] 可选地,所述第一管理层用于,响应于接收到数据读取请求,根据第一元数据确定所述数据读取请求对应的第二数据集所在的第二集群;将所述数据读取请求转发至所述第二集群;
[0009] 所述第二管理层用于,响应于接收到所述数据读取请求,确定所述第二数据集对应的第二元数据;
[0010] 所述第三管理层用于,根据所述第二数据集对应的第二元数据以及第三元数据,读取所述数据读取请求对应的数据,以使得所述第二集群将该数据发送至目标用户。
[0011] 可选地,所述第一管理层用于,响应于接收到数据同步请求,确定所述数据同步请求对应的第三数据集所在的第三集群,以及待同步的第四集群,并增加相应的第一元数据,并将所述数据同步请求转发至所述第四集群;
[0012] 所述第二管理层用于,响应于接收到所述数据同步请求,根据所述第三数据集在所述第三集群中对应的第二元数据,在当前集群中写入对应的第二元数据;
[0013] 所述第三管理层用于,根据所述第三数据集在所述第三集群中的第二元数据以及第三元数据,获取所述数据同步请求对应的数据,并对该数据执行第二操作后进行数据落盘,并根据所述第二操作以及数据落盘信息写入相应的第三元数据。
[0014] 可选地,所述第一管理层还用于,响应于接收到针对第五集群的第一读取请求,确定所述第五集群中是否存储有所述第一读取请求对应的数据集;
[0015] 在所述第五集群中未存储有所述第一读取请求对应的数据集的情况下,确定存储有所述第一读取请求对应的数据集的第六集群;并,
[0016] 生成第一同步请求,并将该第一同步请求发送至所述第五集群,以将所述第六集群中的与所述第一读取请求对应的数据同步至所述第五集群。
[0017] 可选地,所述第一管理层还用于,在确定第七集群中的第四数据集中的数据被修改的情况下,确定存储有所述第四数据集的其他集群;
[0018] 根据所述第四数据集中的数据的修改情况,生成第二同步请求,并将该同步请求发送至所述其他集群,以将所述第七集群中的修改后的第四数据集同步至所述其他集群。
[0019] 可选地,所述第一管理层还用于,在将所述数据同步请求转发至第四集群之前,向所述第四集群的第二管理层发送读写锁定请求,以对所述第四集群中与所述数据同步请求对应的数据加锁。
[0020] 本公开第二方面提供一种多云集群数据管理方法,所述方法应用于多云集群数据管理系统,所述多云集群数据管理系统包括多个云集群,所述多个云集群中包括配置有第一管理层作为中央控制集群的一个云集群,并且,所述多个云集群中每一云集群中均配置有一第二管理层以及第三管理层;
[0021] 通过所述第一管理层,响应于接收到数据写入请求,确定所述数据写入请求对应的第一数据集待写入的第一集群;根据第一数据集标识以及第一集群标识写入第一元数据;将所述数据写入请求转发至所述第一集群;
[0022] 通过所述第二管理层,响应于接收到所述数据写入请求,接收所述第一数据集;对所述第一数据集进行第一操作后发送至第三管理层;根据第一操作写入相应的第二元数据,所述第一操作包括数据分块、数据快照,所述第二元数据包括所述第一数据集的文件目录结构、快照元数据、快照与文件的关联信息元数据的一者或多者;
[0023] 通过所述第三管理层,响应于接收到进行第一操作之后的所述第一数据集,对该第一数据集执行第二操作后进行数据落盘,并根据所述第二操作以及数据落盘信息写入相应的第三元数据,所述第二操作是根据该第三管理层所处的集群的存储系统确定的。
[0024] 可选地,所述方法包括:
[0025] 通过所述第一管理层,响应于接收到数据读取请求,根据第一元数据确定所述数据读取请求对应的第二数据集所在的第二集群;将所述数据读取请求转发至所述第二集群;
[0026] 通过所述第二管理层,响应于接收到所述数据读取请求,确定所述第二数据集对应的第二元数据;
[0027] 通过所述第三管理层,根据所述第二数据集对应的第二元数据以及第三元数据,读取所述数据读取请求对应的数据,以使得所述第二集群将该数据发送至目标用户。
[0028] 可选地,所述方法包括:
[0029] 通过所述第一管理层,响应于接收到数据同步请求,确定所述数据同步请求对应的第三数据集所在的第三集群,以及待同步的第四集群,并增加相应的第一元数据,并将所述数据同步请求转发至所述第四集群;
[0030] 通过所述第二管理层,响应于接收到所述数据同步请求,根据所述第三数据集在所述第三集群中对应的第二元数据,在当前集群中写入对应的第二元数据;
[0031] 通过所述第三管理层,根据所述第三数据集在所述第三集群中的第二元数据以及第三元数据,获取所述数据同步请求对应的数据,并对该数据执行第二操作后进行数据落盘,并根据所述第二操作以及数据落盘信息写入相应的第三元数据。
[0032] 本公开第三方面提供一种多云集群数据管理装置,所述装置应用于多云集群数据管理系统,所述多云集群数据管理系统包括多个云集群,所述多个云集群中包括配置有第一管理层作为中央控制集群的一个云集群,并且,所述多个云集群中每一云集群中均配置有一第二管理层以及第三管理层;
[0033] 第一写入模块,用于通过所述第一管理层,响应于接收到数据写入请求,确定所述数据写入请求对应的第一数据集待写入的第一集群;根据第一数据集标识以及第一集群标识写入第一元数据;将所述数据写入请求转发至所述第一集群;
[0034] 第二写入模块,用于通过所述第二管理层,响应于接收到所述数据写入请求,接收所述第一数据集;对所述第一数据集进行第一操作后发送至第三管理层;根据第一操作写入相应的第二元数据,所述第一操作包括数据分块、数据快照,所述第二元数据包括所述第一数据集的文件目录结构、快照元数据以及快照与文件的关联信息元数据;
[0035] 第三写入模块,用于通过所述第三管理层,响应于接收到进行第一操作之后的所述第一数据集,对该第一数据集执行第二操作后进行数据落盘,并根据所述第二操作以及数据落盘信息写入相应的第三元数据,所述第二操作是根据该第三管理层所处的集群的存储系统确定的。
[0036] 通过上述技术方案,通过在多云集群中配置第一管理层、第二管理层以及第三管理层,在接收到用户的数据写入请求时,用户仅需要与配置有第一管理层的中央集群以及写入的集群进行交互,无需进行元数据以及数据的读写,显著的提高了数据读写性能,降低了元数据管理的压力,并且,通过第二管理层向用户以及第一管理层提供统一的数据接口,并通过各集群的第三管理层进行数据落盘,使得该系统能够支持不同的云服务提供商的存储方案,保证上层的存储特性一致。
[0037] 本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

[0038] 附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
[0039] 图1是根据一示例性实施例示出的一种多云集群数据管理方法的流程图;
[0040] 图2是根据一示例性实施例示出的一种多云集群数据管理方法的另一流程图;
[0041] 图3是根据一示例性实施例示出的一种多云集群数据管理方法的又一流程图;
[0042] 图4是根据一示例性实施例示出的一种多云集群数据管理系统的示意图;
[0043] 图5是根据一示例性实施例示出的一种多云集群数据管理装置的框图;
[0044] 图6是根据一示例性实施例示出的一种电子设备的框图。

具体实施方式

[0045] 以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
[0046] 图1是根据一示例性实施例示出的一种多云集群数据管理方法的流程图,所述方法可以应用于多云集群数据管理系统,所述多云集群数据管理系统包括多个云集群,所述多个云集群中包括配置有第一管理层作为中央控制集群的一个云集群,应理解的是该中央控制集群可以是该多云集群中的任意一个集群。并且,所述多个云集群中每一云集群中均配置有一第二管理层以及第三管理层。应理解的是,每一云集群中还可以包括多个节点,集群中的数据实际上是存储于该集群的各个节点中的。各个集群均能够与用户的计算机设备构建通信连接,各个集群之间也能够构建通信连接。
[0047] 如图1所示,所述方法包括步骤:
[0048] S101、通过所述第一管理层,响应于接收到数据写入请求,确定所述数据写入请求对应的第一数据集待写入的第一集群;根据第一数据集标识以及第一集群标识写入第一元数据;将所述数据写入请求转发至所述第一集群。
[0049] 可以理解的是,用户在需要对该多云集群进行数据写入时,先将该数据写入请求发送至该多云数据集群的中央云集群,也就是配置有该第一管理层的集群,以使得该第一管理层根据该数据写入请求对应的待写入集群,写入第一元数据,例如:在数据写入请求表征将数据集A写入集群1,则可以生成并管理表征“数据集A存储于集群1”。进一步,将该数据写入请求转发至该待写入集群,也就是上述第一集群,以使得该第一集群与用户直接进行信息交互。
[0050] 其中,数据集可以是抽象概念,示例地,在实际业务场景中,该数据集可以为一个内容主题固定的文件夹,也可以是AI业务场景下的一组训练或者推理数据集。该第一管理层的第一元数据只负责管理以数据集为最小单位的分布问题。可以理解的是,该第一元数据在该多云数据管理系统中在逻辑只维持全局可读写的一份,无需考虑该第一元数据据分发到不同云集群并保持一致性的问题。
[0051] S102、通过所述第二管理层,响应于接收到所述数据写入请求,接收所述第一数据集;对所述第一数据集进行第一操作后发送至第三管理层;根据第一操作写入相应的第二元数据,所述第一操作包括数据分块、数据快照,所述第二元数据包括所述第一数据集的文件目录结构、快照元数据、快照与文件的关联信息元数据的一者或多者。
[0052] 其中,应理解的是,上述第一数据集的文件目录结构、快照元数据以及快照与文件的关联信息元数据可以理解为数据集的存储特性逻辑元数据,因此,该第二管理层也可以被认为是存储特性层。根据不同的实施需求,该层可以基于工程师的配置,具备数据缓存加速能力、数据快照能力、数据去重能力以及数据集大小计量等能力,并且,能够基于以上能力,对接收到的数据集进行上述第一操作,并基于该第一操作生成写入第二元数据。
[0053] 示例地,写入第二元数据可以表征:“数据集A有3个快照,数据集A的文件目录结构形式,数据集A在某个路径下有文件f,其中文件f被切分成3个块,每个块通过哈希索引与文件f关联”。
[0054] S103、通过所述第三管理层,响应于接收到进行第一操作之后的所述第一数据集,对该第一数据集执行第二操作后进行数据落盘,并根据所述第二操作以及数据落盘信息写入相应的第三元数据,所述第二操作是根据该第三管理层所处的集群的存储系统确定的。
[0055] 示例地,基于上述第二数据集,执行第二操作可以包括:将文件f的逻辑块b作为输入,通过自身存储能力,相应的做多副本、擦除码等操作,实现最后数据落盘。该第三元数据可以是数据块的落盘持久化信息,如数据位置信息,如逻辑块b存储于某个节点的某个磁盘的哪些块中。
[0056] 应理解的是,该第三管理层被视作数据持久化层,根据工程师的配置,能够做到兼容不同的底层存储方案以支持不同的持久化接口,使得该层只管理数据落盘,并可以统一利用不同厂商提供的存储方案,例如,能够实现分布式存储系统,也可以直接使用现有存储系统,例如:S3,OBS,OSS,NFS。
[0057] 在本公开实施例中,通过在多云集群中配置第一管理层、第二管理层以及第三管理层,在接收到用户的数据写入请求时,用户仅需要与配置有第一管理层的中央集群以及写入的集群进行交互,无需进行元数据以及数据的读写,显著的提高了数据读写性能,降低了元数据管理的压力,并且,通过第二管理层向用户以及第一管理层提供统一的数据接口,并通过各集群的第三管理层进行数据落盘,使得该系统能够支持不同的云服务提供商的存储方案,保证上层的存储特性一致。
[0058] 图2是根据一示例性实施例示出的一种多云集群数据管理方法的另一流程图,如图2所示,所述方法包括:
[0059] S201、通过所述第一管理层,响应于接收到数据读取请求,根据第一元数据确定所述数据读取请求对应的第二数据集所在的第二集群;将所述数据读取请求转发至所述第二集群。
[0060] 具体地,用户将数据独权请求发送至该多云集群后,配置有第一管理层的中央控制集群接收该数据读取请求,该第一管理层响应于接收到该请求,可以根据该请求对应的数据集的表示,根据预先存储的第一元数据,确定该请求对应的数据集存储的集群,并将该请求转发至该集群,以使得用户能够直接与该集群进行交互,并该集群执行以下步骤S202‑S203。
[0061] 应理解的是,数据读取请求对应的第二数据集所在的集群可以有多个,例如,第一元数据包括:“数据集A存储于集群A以及集群B”,此时,即可根据用户的地理位置,选择与用户距离较近的集群作为第二集群。
[0062] S202、通过所述第二管理层,响应于接收到所述数据读取请求,确定所述第二数据集对应的第二元数据。
[0063] S203、通过所述第三管理层,根据所述第二数据集对应的第二元数据以及第三元数据,读取所述数据读取请求对应的数据,以使得所述第二集群将该数据发送至目标用户。
[0064] 示例地,若该数据读取请求表征用户需要访问数据集A中的数据B,则第一管理层根据第一元数据确定“数据集A存储于集群C中”,并将该读取数据请求转发至该集群C,集群C的第二管理层根据该请求,确定数据集A文件目录结构、数据集A的快照元数据、快照与文件的关联信息元数据、文件与数据块的关联信息元数据等信息,以使得该集群C的第三管理层根据预先存储的第三元数据,即落盘信息,提取数据B,并通过该集群C的第二管理层将该数据B,发送给用户。
[0065] 采用上述方案,在数据读取场景中,用户仅与存储有数据读取请求对应的集群进行数据交互,没有跨云元数据读写过程,
[0066] 图3是根据一示例性实施例示出的一种多云集群数据管理方法的又一流程图,如图3所示,所述方法包括:
[0067] S301、通过所述第一管理层,响应于接收到数据同步请求,确定所述数据同步请求对应的第三数据集所在的第三集群,以及待同步的第四集群,并增加相应的第一元数据,并将所述数据同步请求转发至所述第四集群。
[0068] 应理解的是,该数据同步请求可以是用户发送的,也可以是该多云集群中的任一集群根据其同步需求发送的,本公开对此不作限定。例如,当用户需要在某个集群上进行数据读写操作,而该集群并没有对应的数据集副本时,则会触发数据移动动作,即,生成数据同步请求并发送至中央控制集群的第一管理层,以使得该多云集群响应于该请求进行数据移动或同步。或者,用户在某一集群中对某一数据集进行了修改,而该数据集在多个集群中均存在副本,即可生成对应地数据同步请求,以将修改后的数据集同步至多个集群中。
[0069] S302、通过所述第二管理层,响应于接收到所述数据同步请求,根据所述第三数据集在所述第三集群中对应的第二元数据,在当前集群中写入对应的第二元数据。
[0070] S303、通过所述第三管理层,根据所述第三数据集在所述第三集群中的第二元数据以及第三元数据,获取所述数据同步请求对应的数据,并对该数据执行第二操作后进行数据落盘,并根据所述第二操作以及数据落盘信息写入相应的第三元数据。
[0071] 其中,数据集的跨集群同步可以是通过数据同步引擎完成的。由于第二元数据完整管理了数据集在单个集群的所有逻辑信息,因此,在跨集群数据同步时,需要全量同步元数据,即根据待同步数据集的第二元数据在待同步集群中写入对应的第二元数据。例如,第三集群中对应第三数据集的第二元数据可以表征:“数据集A有3个快照,数据集A的文件目录结构形式,数据集A在某个路径下有文件f,其中文件f被切分成3个块,每个块通过哈希索引与文件f关联”,则可以直接在第四集群中写入相同的第二元数据。进一步,数据同步引擎将第三数据集同步到第四集群后,其第三管理层即可进行数据落盘,并写入对应的第三元数据。
[0072] 应理解的是,跨云进行数据移动或者数据同步时,如果需要同时管理逻辑层与物理层元数据,则问题设计复杂度高,稳定性、正确性较难以保证。特别是物理层元数据,因所在云的不同而不同,难以通过简单的数据强一致同步方式进行保证。
[0073] 采用本方案,在进行数据同步时,该待同步的集群不用关心数据如何落盘,只需要完整同步第二元数据并将相应的数据同步读写信号传递给对应集群的第三管理层即可,将文件逻辑管理(即第二元数据)与数据落盘管理(即第三元数据)分离,使得跨云数据同步较为容易实现。
[0074] 可选地,所述方法还包括:通过所述第一管理层,响应于接收到针对第五集群的第一读取请求,确定所述第五集群中是否存储有所述第一读取请求对应的数据集;在所述第五集群中未存储有所述第一读取请求对应的数据集的情况下,确定存储有所述第一读取请求对应的数据集的第六集群;并,生成第一同步请求,并将该第一同步请求发送至所述第五集群,以将所述第六集群中的与所述第一读取请求对应的数据同步至所述第五集群。
[0075] 采用上述方案,即可在用户需要在某个集群上进行数据读写操作,而该集群并没有对应的数据集副本时,则会触发数据移动动作,以使得将第六集群从存储的用户所需的数据集同步至第五集群中,使得用户使用跨云数据时,体验上应与使用本地数据尽可能接近,有效地提高了用户数据访问的效率。
[0076] 可选地,所述方法还包括:
[0077] 通过所述第一管理层,在确定第七集群中的第四数据集中的数据被修改的情况下,确定存储有所述第四数据集的其他集群;
[0078] 根据所述第四数据集中的数据的修改情况,生成第二同步请求,并将该同步请求发送至所述其他集群,以将所述第七集群中的修改后的第四数据集同步至所述其他集群。
[0079] 采用上述方案,用户在某一集群中对某一数据集进行了修改,而该数据集在多个集群中均存在副本时,即可生成对应的数据同步请求,以将修改后的数据集同步至多个集群中,使得无论数据有几个副本,存在何处,在哪几朵云上,用户永远需要获取到一致正确的数据。
[0080] 可选地,所述方法还包括:
[0081] 通过所述第一管理层,在将所述数据同步请求转发至第四集群之前,向所述第四集群的第二管理层发送读写锁定请求,以对所述第四集群中与所述数据同步请求对应的数据加锁。
[0082] 由于第二管理层管理的数据与元数据只在一个集群上,即该第二管理层所在的集群,因此,第二管理层并不关心数据集A是否在其它集群上有副本,采用本方案,通过第一管理层控制面控制第二管理层读写锁,避免数据集A的多个副本同时发生写行为而导致脑裂。
[0083] 为了使得本领域技术人员更加理解本公开提供的技术方案,本公开对上述第一管理层、第二管理层以及第三管理层再进行整体的介绍。
[0084] 第一管理层(L1,多云数据管理层):
[0085] 本层负责全局多云数据管理控制面工作,包括多云数据保存策略和多云数据调度策略,以及对应策略的执行引擎。
[0086] 特别的,本层负责管理多云数据集位置与分布元数据。为了应对多云环境复杂的数据管理问题,本方案将系统全局管理的数据最小粒度定义为数据集。数据集为抽象概念,不具体对应到实施方案。实际业务场景中,数据集可以为一个内容主题固定的文件夹,也可以是AI业务场景下的一组训练或者推理数据集。第一管理层元数据只负责管理以数据集为最小单位的分布问题。例如:本层元数据负责记录[数据集A 在集群a和c上]。本层元数据不负责管理数据集A中任何数据细节,也不负责保证数据集A的多个位置副本的一致性。上述两个问题由下层(第二管理层及第三管理层)管理。
[0087] 由于本层元数据负责给出全系统统一数据视图,且数据集级别元数据粒度较粗,不在数据面路径上,因此本层元数据可以全系统只维持全局可读写的一份(逻辑上),无需考虑元数据分发到不同云并保持一致性的问题。
[0088] 第二管理层(L2,存储特性层):
[0089] 作为多云存储系统的中间层,本层只管理存储特性逻辑元数据,屏蔽底层数据持久化细节的同时,对上层(即L1)负责提供统一的文件访问接口,并提供统一的存储特性,例如:数据缓存加速能力、数据快照能力、数据去重能力、数据跨云同步能力,供上层(L1)调用、数据集大小计量。
[0090] 本层需要管理数据集的目录结构,以及数据分块、快照等元数据信息,例如:数据集A有3个快照,数据集A的文件目录结构形式,数据集A在某个路径下有文件f,其中文件f被切分成3个块,每个块通过哈希索引与文件f关联。
[0091] 本层管理的数据与元数据只在一个云上,不需要关心数据集A是否在其它集群上有副本(L1关心)。L1层控制面同时需要控制L2读写锁,避免数据集A的多个副本同时发生写行为而导致脑裂。
[0092] 本层也不需要管理文件f对应的分块具体如何落盘(例如:数据块对应存储节点与路径)。本层只负责管理数据集A,文件f,块b之间的逻辑关系,具体的数据落盘组织结构,由下层(第三管理层)管理。
[0093] 数据集A的读写操作,无论是数据还是元数据,均可以在集群内完成,故而性能较好。
[0094] 本层设计将文件逻辑管理与数据落盘管理分离,使得跨云数据同步较为容易实现(只需进行逻辑同步,不用同时处理数据块同步),数据块同步完全交由下层(第三管理层)处理。
[0095] 第三管理层(L3,数据落盘层):
[0096] 作为多云数据管理的最下层,本层负责内容与传统存储系统负责内容类似,用于处理数据最后落盘。本层可以独立实现分布式存储系统,也可以直接使用现有存储系统,例如:S3,OBS,OSS,NFS。本层最终将文件f的逻辑块b作为输入,通过自身存储能力,相应的做多副本、擦除码等操作,实现最后数据落盘。
[0097] 综上所述,本方案L3层可以兼容不同传统底层存储方案。对用户暴露的统一视图由L1级元数据控制。单集群数据读写过程,由L2级元数据控制。由于多云环境下不同集群下层的存储方案不同,本方案通过L3层将L2层逻辑数据最终落盘,下层存储供应商可以是不同的对象存储、块存储,例如S3、Ceph等。
[0098] 基于同样的发明构思,图4是根据一示例性实施例示出的一种多云集群数据管理系统400,所述多云集群数据管理系统400包括多个云集群,如集群401,402,403以及404,所述多个云集群中包括配置有第一管理层410作为中央控制集群的一个云集群,即集群401,并且,所述多个云集群中每一云集群中均配置有一第二管理层420以及第三管理层430。
[0099] 所述第一管理层410用于,响应于接收到数据写入请求,确定所述数据写入请求对应的第一数据集待写入的第一集群;根据第一数据集标识以及第一集群标识写入第一元数据;将所述数据写入请求转发至所述第一集群;
[0100] 所述第二管理层420用于,响应于接收到所述数据写入请求,接收所述第一数据集;对所述第一数据集进行第一操作后发送至第三管理层430;根据第一操作写入相应的第二元数据,所述第一操作包括数据分块、数据快照,所述第二元数据包括所述第一数据集的文件目录结构、快照元数据、快照与文件的关联信息元数据的一者或多者;
[0101] 所述第三管理层430用于,响应于接收到进行第一操作之后的所述第一数据集,对该第一数据集执行第二操作后进行数据落盘,并根据所述第二操作以及数据落盘信息写入相应的第三元数据,所述第二操作是根据该第三管理层430所处的集群的存储系统确定的。
[0102] 可选地,所述第一管理层410用于,响应于接收到数据读取请求,根据第一元数据确定所述数据读取请求对应的第二数据集所在的第二集群;将所述数据读取请求转发至所述第二集群;
[0103] 所述第二管理层420用于,响应于接收到所述数据读取请求,确定所述第二数据集对应的第二元数据;
[0104] 所述第三管理层430用于,根据所述第二数据集对应的第二元数据以及第三元数据,读取所述数据读取请求对应的数据,以使得所述第二集群将该数据发送至目标用户。
[0105] 可选地,所述第一管理层410用于,响应于接收到数据同步请求,确定所述数据同步请求对应的第三数据集所在的第三集群,以及待同步的第四集群,并增加相应的第一元数据,并将所述数据同步请求转发至所述第四集群;
[0106] 所述第二管理层420用于,响应于接收到所述数据同步请求,根据所述第三数据集在所述第三集群中对应的第二元数据,在当前集群中写入对应的第二元数据;
[0107] 所述第三管理层430用于,根据所述第三数据集在所述第三集群中的第二元数据以及第三元数据,获取所述数据同步请求对应的数据,并对该数据执行第二操作后进行数据落盘,并根据所述第二操作以及数据落盘信息写入相应的第三元数据。
[0108] 可选地,所述第一管理层410还用于,响应于接收到针对第五集群的第一读取请求,确定所述第五集群中是否存储有所述第一读取请求对应的数据集;
[0109] 在所述第五集群中未存储有所述第一读取请求对应的数据集的情况下,确定存储有所述第一读取请求对应的数据集的第六集群;并,
[0110] 生成第一同步请求,并将该第一同步请求发送至所述第五集群,以将所述第六集群中的与所述第一读取请求对应的数据同步至所述第五集群。
[0111] 可选地,所述第一管理层410还用于,在确定第七集群中的第四数据集中的数据被修改的情况下,确定存储有所述第四数据集的其他集群;
[0112] 根据所述第四数据集中的数据的修改情况,生成第二同步请求,并将该同步请求发送至所述其他集群,以将所述第七集群中的修改后的第四数据集同步至所述其他集群。
[0113] 可选地,所述第一管理层410还用于,在将所述数据同步请求转发至第四集群之前,向所述第四集群的第二管理层420发送读写锁定请求,以对所述第四集群中与所述数据同步请求对应的数据加锁。
[0114] 其中,应理解的是,上述第一集群、第二集群……以及第七集群,可以是上述集群401、402、403以及404中的任一集群。
[0115] 图5是根据一示例性实施例示出的一种多云集群数据管理装置50的框图,所述装置50可以应用于多云集群数据管理系统,所述多云集群数据管理系统包括多个云集群,所述多个云集群中包括配置有第一管理层作为中央控制集群的一个云集群,并且,所述多个云集群中每一云集群中均配置有一第二管理层以及第三管理层,所述装置包括50:
[0116] 第一写入模块51,用于通过所述第一管理层,响应于接收到数据写入请求,确定所述数据写入请求对应的第一数据集待写入的第一集群;根据第一数据集标识以及第一集群标识写入第一元数据;将所述数据写入请求转发至所述第一集群;
[0117] 第二写入模块52,用于通过所述第二管理层,响应于接收到所述数据写入请求,接收所述第一数据集;对所述第一数据集进行第一操作后发送至第三管理层;根据第一操作写入相应的第二元数据,所述第一操作包括数据分块、数据快照,所述第二元数据包括所述第一数据集的文件目录结构、快照元数据、快照与文件的关联信息元数据的一者或多者;
[0118] 第三写入模块53,用于通过所述第三管理层,响应于接收到进行第一操作之后的所述第一数据集,对该第一数据集执行第二操作后进行数据落盘,并根据所述第二操作以及数据落盘信息写入相应的第三元数据,所述第二操作是根据该第三管理层所处的集群的存储系统确定的。
[0119] 可选地,所述装置50还包括:
[0120] 第一确定模块,用于通过所述第一管理层,响应于接收到数据读取请求,根据第一元数据确定所述数据读取请求对应的第二数据集所在的第二集群;将所述数据读取请求转发至所述第二集群;
[0121] 第二确定模块,用于通过所述第二管理层,响应于接收到所述数据读取请求,确定所述第二数据集对应的第二元数据;
[0122] 读取模块,用于通过所述第三管理层,根据所述第二数据集对应的第二元数据以及第三元数据,读取所述数据读取请求对应的数据,以使得所述第二集群将该数据发送至目标用户。
[0123] 可选地,所述装置50还包括:
[0124] 第三确定模块,用于通过所述第一管理层,响应于接收到数据同步请求,确定所述数据同步请求对应的第三数据集所在的第三集群,以及待同步的第四集群,并增加相应的第一元数据,并将所述数据同步请求转发至所述第四集群;
[0125] 第四写入模块,用于通过所述第二管,响应于接收到所述数据同步请求,根据所述第三数据集在所述第三集群中对应的第二元数据,在当前集群中写入对应的第二元数据;
[0126] 第五写入模块,用于通过所述第三管理层,根据所述第三数据集在所述第三集群中的第二元数据以及第三元数据,获取所述数据同步请求对应的数据,并对该数据执行第二操作后进行数据落盘,并根据所述第二操作以及数据落盘信息写入相应的第三元数据。
[0127] 可选地,所述装置50还包括:
[0128] 第一生成模块,用于通过所述第一管理层,响应于接收到针对第五集群的第一读取请求,确定所述第五集群中是否存储有所述第一读取请求对应的数据集;
[0129] 在所述第五集群中未存储有所述第一读取请求对应的数据集的情况下,确定存储有所述第一读取请求对应的数据集的第六集群;
[0130] 生成第一同步请求,并将该第一同步请求发送至所述第五集群,以将所述第六集群中的与所述第一读取请求对应的数据同步至所述第五集群。
[0131] 可选地,所述装置50还包括:
[0132] 第二生成模块,用于通过所述第一管理层,在确定第七集群中的第四数据集中的数据被修改的情况下,确定存储有所述第四数据集的其他集群;
[0133] 根据所述第四数据集中的数据的修改情况,生成第二同步请求,并将该同步请求发送至所述其他集群,以将所述第七集群中的修改后的第四数据集同步至所述其他集群。
[0134] 可选地,所述装置50还包括:
[0135] 加锁模块,用于通过所述第一管理层还,在将所述数据同步请求转发至第四集群之前,向所述第四集群的第二管理层发送读写锁定请求,以对所述第四集群中与所述数据同步请求对应的数据加锁。
[0136] 关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0137] 图6是根据一示例性实施例示出的一种电子设备600的框图。例如,电子设备600可以被提供为一服务器。参照图6,电子设备600包括处理器622,其数量可以为一个或多个,以及存储器632,用于存储可由处理器622执行的计算机程序。存储器632中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器622可以被配置为执行该计算机程序,以执行上述的多云集群数据管理方法。
[0138] 另外,电子设备600还可以包括电源组件626和通信组件650,该电源组件626可以被配置为执行电子设备600的电源管理,该通信组件650可以被配置为实现电子设备600的通信,例如,有线或无线通信。此外,该电子设备600还可以包括输入/输出(I/O)接口658。电TM子设备600可以操作基于存储在存储器632的操作系统,例如Windows Server ,Mac OS TM TM TM
X ,Unix ,Linux 等等。
[0139] 在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的多云集群数据管理方法的步骤。例如,该非临时性计算机可读存储介质可以为上述包括程序指令的存储器632,上述程序指令可由电子设备600的处理器622执行以完成上述的多云集群数据管理方法。
[0140] 在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的多云集群数据管理方法的代码部分。
[0141] 以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
[0142] 另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
[0143] 此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。