本公开涉及但不仅限于存储技术,尤指一种分布式存储系统、数据读取、写入、同步方法及客户端。
背景技术:
1、数据中心的数据库服务,要求极高的可靠性,一般需要分布式存储支持,需把同样的数据在多个(3个以上)不同的地点存储多个复制版本,防止某一个地点的服务器出现数据错误、故障、停电或意外事故,而造成数据丢失。
2、目前的分布式存储方案,只能由客户端来运行数据库应用,分布式存储提供块存储服务。这样每当发生数据查询,存储网络必须把不同地点的数据取出,进行比较,确认无错误或纠正错误后发送给客户端。
3、目前的分布式存储方案存在以下问题:一方面,网络的时延比较长,通过多个网关常常达到毫秒级,比读取ssd的速度慢数十倍,网络中多个数据存储的比较造成了很长的数据时延。另一方面,在客户端运行数据库,由于块存储必须整块地读数据,造成数据流量放大,增加了系统功耗。
技术实现思路
1、本公开实施例提供了一种分布式存储系统,包括:具有计算功能的多个存储节点,所述多个存储节点通过网络相互连接,所述多个存储节点中的n个存储节点均存储有第一数据;所述n个存储节点之间周期性地发起数据同步,对各自存储的所述第一数据进行比较,以保证所述n个存储节点各自存储的所述第一数据相同,n≥3。
2、本公开实施例还提供了一种数据读取方法,适用于分布式存储系统中具有计算功能的多个存储节点,所述多个存储节点中的n个存储节点均存储有第一数据,n≥3,所述方法包括:
3、存储节点接收到客户端对所述第一数据的读请求,一次读请求中所述n个存储节点中只有一个存储节点能接收到所述第一数据的读请求;
4、所述存储节点向所述客户端返回对所述读请求的响应;
5、其中,所述返回对所述读请求的响应包括:将存储的所述第一数据返回给所述客户端;或者,所述读请求包含数据处理信息,所述返回对所述读请求的响应包括:根据所述数据处理信息和存储的所述第一数据进行计算,将计算结果返回给所述客户端。
6、本公开实施例还提供了一种数据读取方法,适用于客户端,所述客户端通过网络与包括具有计算功能的多个存储节点的分布式存储系统连接,所述多个存储节点中的n个存储节点均存储有第一数据,n≥3,所述方法包括:
7、客户端向所述n个存储节点中的一个存储节点或所述分布式存储系统的中心服务器发送对所述第一数据的读请求;
8、接收所述存储节点或所述中心服务器返回的对所述读请求的响应;
9、其中,所述读请求的响应包括:所述分布式存储系统中存储的所述第一数据;或者,所述读请求包含数据处理信息,所述读请求的响应包括:根据所述数据处理信息和存储的所述第一数据计算得到的计算结果。
10、本公开实施例还提供了一种数据写入方法,适用于分布式存储系统中具有计算功能的多个存储节点,所述多个存储节点中的n个存储节点均存储有第一数据,n≥3,所述方法包括:
11、存储节点接收到客户端对所述第二数据的写请求,一次写请求中所述多个存储节点中有m个存储节点能接收到对所述第二数据的写请求,m≥3;
12、先将所述第二数据存储到缓存,再将所述第二数据存储到硬盘;在所述第二数据存储到缓存后,即向所述客户端返回对所述写请求的响应。
13、本公开实施例还提供了一种数据写入方法,适用于客户端,所述客户端通过网络与包括具有计算功能的多个存储节点的分布式存储系统连接,所述多个存储节点中的n个存储节点均存储有第一数据,n≥3,所述方法包括:
14、客户端向m个存储节点或所述分布式存储系统的中心服务器发送对所述第二数据的写请求,m≥3;
15、所述客户端检测是否收到存储节点或所述中心服务器发送的对所述写请求的响应,以确定是否能够删除缓存的数据。
16、本公开实施例还提供了一种数据同步方法,适用于分布式存储系统中具有计算功能的多个存储节点,所述多个存储节点中的n个存储节点均存储有第一数据,n≥3,所述方法包括:
17、获取所述n个存储节点中其他节点存储的所述第一数据的校验信息,及本地存储的所述第一数据的校验信息;
18、比较获取的所述校验信息,对所述n个存储节点各自存储的所述第一数据进行完整性校验;
19、经校验发现所述n个存储节点中有存储节点存储的所述第一数据缺失和/或存在错误的情况下,进行数据复制和/或数据更新,使所述n个存储节点均存储有相同的所述第一数据;
20、其中,所述第一存储节点为所述n个存储节点中执行对所述第一数据的完整性校验的一个或多个存储节点。
21、本公开实施例还提供了一种分布式存储系统的存储节点,包括用于存储数据的存储模块和具有计算和存储控制功能的存储控制模块,所述存储控制模块设置为执行存储节点端任一实施例所述的数据读取方法、数据写入方法,及数据同步方法中的至少一种。
22、本公开实施例还提供了一种客户端,通过网络与分布式存储系统中的具有计算功能的多个存储节点连接,所述多个存储节点中的n个存储节点均存储有第一数据,n≥3;
23、所述客户端包括缓存和与所述缓存耦合的存储控制器,所述存储控制器被配置为执行客户端侧任一实施例所述的数据读取方法、及数据写入方法中的至少一种。
24、本公开至少一个实施例提供的分布式存储系统、数据读取、写入、同步方法及客户端,与现有技术相比,具有以下有益效果:可对现有分布式存储进行改进,在分布式存储系统中的每个存储节点加入计算操作,客户端通过网络连接所有的存储节点,多个存储节点之间可以自协商通信完成数据同步,能够解决现有分布式存储系统在提供数据服务时,时延过长的问题,以及可以节省功耗。
25、本公开的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本公开而了解。本公开的其他优点可通过在说明书以及附图中所描述的方案来实现和获得。
1.一种分布式存储系统,其特征在于,包括:具有计算功能的多个存储节点,所述多个存储节点通过网络相互连接,所述多个存储节点中的n个存储节点均存储有第一数据;所述n个存储节点之间周期性地发起数据同步,对各自存储的所述第一数据进行比较,以保证所述n个存储节点各自存储的所述第一数据相同,n≥3。
2.根据权利要求1所述的分布式存储系统,其特征在于:
3.根据权利要求1或2所述的分布式存储系统,其特征在于:
4.根据权利要求3所述的分布式存储系统,其特征在于:
5.根据权利要求1或2所述的分布式存储系统,其特征在于:
6.根据权利要求5所述的分布式存储系统,其特征在于:
7.根据权利要求1所述的分布式存储系统,其特征在于:
8.根据权利要求1或7所述的分布式存储系统,其特征在于:
9.根据权利要求1所述的分布式存储系统,其特征在于:
10.根据权利要求9所述的分布式存储系统,其特征在于:
11.根据权利要求9所述的分布式存储系统,其特征在于:
12.一种数据读取方法,适用于分布式存储系统中具有计算功能的多个存储节点,所述多个存储节点中的n个存储节点均存储有第一数据,n≥3,其特征在于,所述方法包括:
13.根据权利要求12所述的方法,其特征在于,所述数据处理信息包括以下任意一种或多种:基于所述第一数据进行数据聚合的信息;基于所述第一数据进行数据清洗的信息;对所述第一数据进行加密的信息;及,对所述第一数据进行解密的信息;
14.根据权利要求12所述的方法,其特征在于,所述存储节点向所述客户端返回对所述读请求的响应,包括:
15.根据权利要求12所述的方法,其特征在于,所述存储节点为所述n个存储节点之间负载均衡选举出来的主节点,所述方法还包括:
16.一种数据读取方法,适用于客户端,所述客户端通过网络与包括具有计算功能的多个存储节点的分布式存储系统连接,所述多个存储节点中的n个存储节点均存储有第一数据,n≥3,其特征在于,所述方法包括:
17.根据权利要求16所述的方法,其特征在于,客户端向所述n个存储节点中的一个存储节点发送对所述第一数据的读请求之前,所述方法还包括:
18.一种数据写入方法,适用于分布式存储系统中具有计算功能的多个存储节点,所述多个存储节点中的n个存储节点均存储有第一数据,n≥3,其特征在于,所述方法包括:
19.根据权利要求18所述的方法,其特征在于,所述方法还包括:
20.一种数据写入方法,适用于客户端,所述客户端通过网络与包括具有多个计算功能的存储节点的分布式存储系统连接,所述多个存储节点中的n个存储节点均存储有第一数据,n≥3,其特征在于,所述方法包括:
21.根据权利要求20所述的方法,其特征在于,所述客户端检测是否收到存储节点或所述中心服务器发送的对所述写请求的响应,以确定是否能够删除缓存的数据,包括:
22.根据权利要求20所述的方法,其特征在于,所述客户端检测是否收到存储节点或所述中心服务器发送的对所述写请求的响应,以确定是否能够删除缓存的数据,包括:
23.根据权利要求20所述的方法,其特征在于,客户端向m个存储节点发送对所述第二数据的写请求之前,所述方法还包括:
24.一种数据同步方法,适用于分布式存储系统中具有计算功能的多个存储节点,所述多个存储节点中的n个存储节点均存储有第一数据,n≥3,其特征在于,所述方法包括:
25.根据权利要求24所述的方法,其特征在于,所述第一数据的校验信息包括以数据块为单位生成的数据标识和校验码,所述数据标识包括数据所属对象的标识和数据块索引。
26.根据权利要求24所述的方法,其特征在于,所述方法还包括:
27.一种分布式存储系统的存储节点,其特征在于,包括用于存储数据的存储模块和具有计算和存储控制功能的存储控制模块,所述存储控制模块设置为执行如权利要求12至15中任一项所述的数据读取方法,如权利要求18或19所述的数据写入方法,及如权利要求24至26中任一项所述的数据同步方法中的至少一种。
28.根据权利要求27所述的存储节点,其特征在于,所述存储节点包括:计算存储平台,所述存储控制模块为计算存储处理器csp,所述存储模块为ssd芯片或hdd芯片;
29.根据权利要求27所述的存储节点,其特征在于,所述存储节点内部设置有电容,用于异常掉电发生时对缓存数据完成数据持久化。
30.一种客户端,其特征在于,通过网络与分布式存储系统中的具有计算功能的多个存储节点连接,所述多个存储节点中的n个存储节点均存储有第一数据,n≥3;