一种将数据写入数据服务器的方法及存储系统的制作方法

文档序号:8318904阅读:512来源:国知局
一种将数据写入数据服务器的方法及存储系统的制作方法
【技术领域】
[0001] 本发明涉及存储系统领域,尤其涉及一种将数据写入数据服务器的方法及存储系 统。
【背景技术】
[0002] 在当前的分布式存储系统中,用户会从不同的分布式客户端访问系统中的数据, 在这种场景下,分布式锁管理(Distributed Lock Manager,简称:DLM)机制应运而生,分 布式锁管理机制是保证分布式存储系统正常运行和数据一致性的关键,在实现DLM机制 时,系统通常包括:分布式锁客户端(Distributed Lock Manager Client,简称:DLMC)与 分布式锁服务器(Distributed Lock Manager Server,简称:DLMS),其中DLMC为系统的业 务层提供锁管理接口,业务层在针对业务进行操作的前后,都需要通过锁管理接口向DLMC 进行锁操作,DLMC再与DLMS通信完成锁的授权操作,以保证DLMC并发访问时数据的一致 性。图1为现有技术提供的分布式存储系统文件创建写机制的流程示意图,参照图1,该 分布式存储系统包括:客户端代理(Client Agent,简称:CA),DLMC,DLMS,元数据服务器 (Meta Server)和数据服务器(Data Server);该流程包括:步骤1、CA向元数据服务器发 送创建文件的请求消息;步骤2,DLMC与元数据服务器进行交互获得元数据并行读锁(Meta Concurrent Read Lock);步骤3, CA与元数据服务器进行操作元数据的交互,CA根据元数 据并行读锁提供的权限,对创建文件相关的元数据进行读写操作;步骤4、DLMC与DLMS进行 交互获得条带独占锁(Stripe Exclusive Lock);步骤5、DLMC与数据服务器进行数据写入 的操作交互,具体的,CA根据条带独占锁提供的权限,进行数据写的操作。
[0003] 但是,采用现有技术的写入数据的机制,DLMC与DLMS、DLMC与元数据服务器之间 需要进行多次交互才能够完成锁的授权操作,导致存储系统在完成创建写的过程中,不同 节点之间的交互次数过多,从而降低了写数据的效率。

【发明内容】

[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] 图1为现有技术提供的分布式存储系统文件创建写机制的流程示意图;
[0037] 图2为一种分布式存储系统部署示意图;
[0038] 图3为本发明实施例提供的存储系统不意图;
[0039] 图4为本发明实施例提供的一种将数据写入数据服务器的方法的流程示意图; [0040] 图5为本发明实施例提供的另一种将数据写入数据服务器的方法的流程示意图; [0041] 图6为本发明实施例提供的另一种将数据写入数据服务器的方法的流程示意图;
[0042] 图7为本发明实施例提供的一种将数据写入数据服务器的方法的信令交互示意 图;
[0043] 图8为本发明实施例提供的另一种将数据写入数据服务器的方法的信令交互示 意图;
[0044] 图9为本发明实施例提供的另一种将数据写入数据服务器的方法的信
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1