CN109254958B - 分布式数据读写方法、设备及系统 - Google Patents
分布式数据读写方法、设备及系统 Download PDFInfo
- Publication number
- CN109254958B CN109254958B CN201811217915.2A CN201811217915A CN109254958B CN 109254958 B CN109254958 B CN 109254958B CN 201811217915 A CN201811217915 A CN 201811217915A CN 109254958 B CN109254958 B CN 109254958B
- Authority
- CN
- China
- Prior art keywords
- client
- data
- data read
- point
- read
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种分布式数据读写方案,云主机平台包括至少一个宿主机,宿主机上运行有至少一个客户端,在客户端的接入时增加了一个接入层系统,该接入层系统中多个前端机,客户端在创建时会与一个挂载点挂接,客户端通过其所挂接的挂载点关联于一个前端机,前端机用于获取来自客户端的数据读写请求,根据数据读写请求确定访问分布式存储集群中的文件位置,完成数据读写请求的处理,以及向数据客户端返回数据读写请求的处理结果。在增加了包含多个前端机的接入层系统之后,可以有效的分流来自客户端的数据读写请求,此时客户端接入的性能瓶颈将转化至前端机提供获取元数据的过程,可以避免客户端的接入成为数据读写的瓶颈点。
Description
技术领域
本申请涉及信息技术领域,尤其涉及一种分布式数据读写方法、设备及系统。
背景技术
传统的集中式文件存储的优点是软件设计相对简单,并且从使用者的角度来说,也同样非常简单,仅需要直接在存储设备上对操作数据即可。但集中式文件存储设备的容量和性能都有单点的上限,如果考虑到容灾,将更加影响容量和性能的上限。而分布式存储的副本机制可以很好地解决容灾的问题,更加可以在容量和性能上进行动态扩展。
目前市场上成熟的分布式存储系统不多,能提供块存储服务的更少。基于块存储服务提供云主机平台的存储服务是一个比较主流的选择,但这带来了两个问题:1、需要为每个分存式存储系统设计一个相应的块存储服务,而存储服务的设计及其稳定都需要时间的证明,考虑到要兼容网络和硬件的相应协议,分布式一致性等问题,技术相对比较复杂。2、云主机平台需要基于这个块存储服务进行相应的适配,这就为云主机平台的推广和普及带来了巨大的成本问题。
为解决上述问题,市场上出现了一些基于分布式系统的文件存储服务,即分布式nas(network attached storage,网络附属存储)系统。在分布式nas 系统,可以提供与集中式文件存储服务一致的接口,因此用户可以简单地像使用集中式文件存储服务一样去使用。同时由于其底层的数据存储是基于分布式存储系统设计的,因此在容量或性能不能满足要求时,可以随时进行动态扩展或缩容,兼具了分布式存储系统的优点。而在底层的容量或性能可以动态调节的情况下,目前客户端的接入方式可能无法充分利用底层的高性能,成为数据读写的瓶颈点。
发明内容
本申请实施例提供了一种分布式数据读写方法、设备及系统,以至少解决目前客户端的接入方式可能成为数据读写的瓶颈点的问题。
为实现上述目的,本申请实施例提供了一种应用于接入层系统的分布式数据读写方法,该方法应用于接入层系统,该接入层系统包括多个前端机,包括:
所述前端机获取来自客户端的数据读写请求,其中,所述客户端通过其所挂接的挂载点关联于所述前端机;
所述前端机根据所述数据读写请求,确定待读写数据的元数据;
所述前端机根据所述元数据访问分布式存储集群中的文件位置,完成所述数据读写请求的处理;
所述前端机向所述数据客户端返回所述数据读写请求的处理结果。
进一步地,所述前端机根据所述数据读写请求,确定待读写数据的元数据,包括:
所述前端机根据所述数据读写请求在缓存中进行查询,获取所述待读写数据的元数据;或
所述前端机根据所述数据读写请求向对应的元数据服务器进行查询,获取所述待读写数据的元数据。
进一步地,所述前端机根据所述数据读写请求,确定待读写数据的元数据,包括:
所述前端机根据所述数据读写请求在缓存中进行查询,若未获取到所述待读写数据的元数据,再向对应的元数据服务器进行查询,以获取待读写数据的元数据。
此外,本申请实施例提供了一种应用于云主机平台上的分布式数据读写方法,其中,该方法应用于包括至少一个宿主机的云主机平台,所述宿主机上运行有至少一个客户端,所述客户端在创建时与一个挂载点挂接,所述客户端通过其所挂接的挂载点关联于一个前端机,所述方法还包括:
所述客户端根据其所挂接的挂载点,向该挂载点关联的前端机发送数据读写请求,以使所述前端机根据所述数据读写请求,在分布式存储集群中完成所述数据读写请求的处理;
所述客户端从所述前端机获取所述数据读写请求的处理结果。
进一步地,所述客户端在创建时与一个挂载点挂接,包括:
所述客户端在创建时,所述云主机平台的宿主机判断是否存在可用的挂载点;
若存在,所述宿主机将所述客户端与所述可用的挂载点挂接,完成所述客户端的创建;
若不存在,所述宿主机创建挂载点,将所述挂载点与前端机关联后,再将所述客户端与所述挂载点挂接,完成所述客户端的创建。
进一步地,所述宿主机上的挂载点包括一个控制流挂载点和至少一个数据流挂载点,其中,所述控制流挂载点用于管理所述数据流挂载点的创建、删除和更改,所述数据流挂载点与客户端挂接,以使所述客户端在进行分布式数据读写时通过其所挂接的挂载点关联于所述前端机。
进一步地,所述云主机平台还包括一数据库,用于保存所述宿主机上的挂载点的信息,所述方法还包括:
所述宿主机发生异常之后,从所述数据库获取挂载点的信息,恢复所述宿主机上的挂载点。
进一步地,所述云主机平台还包括一数据库,用于保存所述宿主机上的挂载点的信息,所述方法还包括:
所述宿主机定时与所述数据库通信,比较宿主机自身的挂载点的信息与所述数据库中保存的挂载点的信息是否一致。
进一步地,该方法还包括:
所述宿主机定时检测前端机的状态,并在所述前端机的状态异常时,将对应的挂载点与另一前端机关联。
此外,本申请实施例还提供了一种计算设备,该设备包括用于存储计算机程序指令的存储器和用于执行计算机程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发所述设备执行前述的分布式数据读写方法。
本申请实施例还提供了一种计算机可读介质,其上存储有计算机程序指令,所述计算机可读指令可被处理器执行以实现前述的分布式数据读写方法。
此外,本申请实施例还提供了一种分布式数据读写系统,该系统至少包括云主机平台、接入层系统和分布式存储集群;
所述云主机平台包括至少一个宿主机,所述宿主机上运行有至少一个客户端,所述客户端在创建时与一个挂载点挂接,所述客户端通过其所挂接的挂载点关联于一个前端机,所述客户端用于根据其所挂接的挂载点,向该挂载点关联的前端机发送数据读写请求,以使所述前端机根据所述数据读写请求,在分布式存储集群中完成所述数据读写请求的处理,以及从所述前端机获取所述数据读写请求的处理结果;
所述接入层系统包括多个前端机,所述前端机用于获取来自客户端的数据读写请求,所述前端机根据所述数据读写请求,确定待读写数据的元数据,根据所述元数据访问分布式存储集群中的文件位置,完成所述数据读写请求的处理,以及向所述数据客户端返回所述数据读写请求的处理结果;
所述分布式存储集群用于对数据进行分布式的存储。
本申请提供的分布式数据读写方案中,云主机平台包括至少一个宿主机,所述宿主机上运行有至少一个客户端,在客户端的接入时增加了一个接入层系统,该接入层系统中多个前端机,客户端在创建时会与一个挂载点挂接,客户端通过其所挂接的挂载点关联于一个前端机,前端机用于获取来自客户端的数据读写请求,所述前端机根据所述数据读写请求,确定待读写数据的元数据,根据所述元数据访问分布式存储集群中的文件位置,完成所述数据读写请求的处理,以及向所述数据客户端返回所述数据读写请求的处理结果。在增加了包含多个前端机的接入层系统之后,可以有效的分流来自客户端的数据读写请求,此时客户端接入的性能瓶颈将转化至前端机提供获取元数据的过程,可以避免客户端的接入成为数据读写的瓶颈点。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1为本申请实施例中在宿主机上创建云盘的处理流程图;
图2为本申请实施例中前端机分流来自客户端的数据读写请求的示意图;
图3为本申请实施例中在实现分布式数据读写时客户端和前端机之间的处理流程;
图4为本申请实施例提供的一种分布式数据读写系统的层级划分示意图;
图5为本申请实施例提供的另一种分布式数据读写系统在数据读写操作时的处理流程图;
图6为本申请实施例中一个宿主机上的挂载点的示意图;
图7为本申请实施例提供的一种计算设备的示意图;
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备均包括一个或多个处理器(CPU)、图像处理单元(GPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的装置或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
本申请实施例提供了一种分布式数据读写系统,该系统至少包括云主机平台、接入层系统和分布式存储集群,可以提供数据存储服务,增加了包含多个前端机的接入层系统,可以有效的分流来自客户端的数据读写请求,此时客户端接入的性能瓶颈将转化至前端机提供获取元数据的过程,可以避免客户端的接入成为数据读写的瓶颈点。其中,云主机平台、接入层系统和分布式存储集群,可以是采用基于云计算的计算机集合来实现。在此,云由基于云计算(Cloud Computing)的大量主机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟计算机。
所述云主机平台包括至少一个宿主机,所述宿主机(HOST)可以是组成云计算平台的物理机。每个宿主机上运行有至少一个客户端,在实际场景中客户端用于向用户提供云计算服务,例如在提供存储服务时,所述客户端可以是云盘。所述云盘在创建时会与一个挂载点挂接(mount),从而通过其所挂接的挂载点关联于一个前端机,由此完成创建。图1以一个云盘的创建为例,对客户端创建过程进行说明,包括如下处理步骤:
步骤S101,云主机平台的宿主机判断是否存在可用的挂载点。若不存在,执行步骤S102,若存在,执行步骤S103。
步骤S102,宿主机创建挂载点,并为该挂载点分配一台前端机,使得所述挂载点与前端机关联,然后执行步骤S103。
步骤S103,宿主机将云盘与所述可用的挂载点挂接,完成云盘的创建。
系统中的接入层系统包括多个前端机,每个前端机可以与一个或者多个挂载点关联。在实际场景中,每个挂载点可以看作一个URL(Uniform Resource Locator,统一资源定位符),例如通常可以是IP/域名+路径的形式,由此使得各个客户端的接入能够通过不同的前端机实现分流,避免客户端的接入成为数据读写的瓶颈点,图2示出了前端机分流来自云盘(客户端)的数据读写请求的示意图。
在实现分布式数据读写时,客户端和前端机之间的处理流程如图3所示,包括以下步骤:
步骤S301,客户端根据其所挂接的挂载点,向该挂载点关联的前端机发送数据读写请求(IO请求)。
步骤S302,前端机获取来自客户端的数据读写请求后,根据所述数据读写请求,确定待读写数据的元数据。由此,可以将客户端接入时单点瓶颈转化为元数据服务,由于元数据服务可以由不同的前端机负责处理,因此可以克服现有技术中单点瓶颈的问题。
步骤S303,前端机根据所述元数据访问分布式存储集群中的文件位置,完成所述数据读写请求的处理。例如,若底层的分布式存储集群是能够提供块存储服务的分布式存储系统,所述元数据即为数据的IO路径,表示了每个数据文件和存储块之间的映射关系,所述存储块即为需要读写的数据文件在分布式存储集群中的文件位置。通过对确定的存储块进行数据读写的操作,即可完成所述数据读写请求的处理,获得处理结果。
步骤S304,前端机前端机向所述数据客户端返回所述数据读写请求的处理结果,使得客户端获取处理结果,完成本次数据读写请求的处理过程。
在本申请的一种实施例中,前端机在根据所述数据读写请求,确定待读写数据的元数据时,可以根据所述数据读写请求在缓存中进行查询,获取所述待读写数据的元数据。例如,待读写数据的元数据可以记录在前端机的cache中,前端机在获取到数据读写请求时,可以从cache中获取读写路径,直接将IO转发至底层的分布式存储集群,从而对特定的存储块进行处理,完成数据读写请求。
或者,前端机也可以根据所述数据读写请求向对应的元数据服务器进行查询,获取所述待读写数据的元数据。例如,元数据服务器可以提供元数据的查询,其具体实现可以是文件系统的一部分,能够提供待读写的数据文件在分布式存储集群中的文件位置。由于在缓存中获取元数据时不需要与其它设备进行数据交互,因此其效率较高,但是在实际场景中也存在一些无法通过缓存获取到元数据的情况,例如对于第一次处理的数据读写请求,由于前端机无法预先获取该请求所涉及的数据文件的元数据,因此需要向元数据服务器进行查询。此外,在缓存被清除的情况下,也需要向元数据服务器进行查询。
由此,本申请的一种实施例中,前端机可以结合上述两种方式来获取待读写数据的元数据,具体方式如下:前端机可以先根据所述数据读写请求在缓存中进行查询,若查询到所述待读写数据的元数据,则获取该元数据。若无法从缓存中获取到所述待读写数据的元数据,再向对应的元数据服务器进行查询,以获取待读写数据的元数据。
基于上述获取元数据的方式,本申请另一种实施例提供的分布式数据读写系统可以包括云主机平台、接入层系统、文件系统和分布式存储集群,并以如图4所示的结构进行层级划分。其中,层级1为云主机平台,包括至少一个宿主机,所述宿主机上运行有至少一个客户端,挂接挂载点之后可以通过对应的前端机访问文件系统或者底层的分布式存储集群。
层级2为接入层系统,包括多个前端机,用于分流来自云主机平台的数据读写请求。由于前端机可以通过缓存记录元数据,因此可以直接从缓存中读取元数据,跳过层级3,直接转发数据读写请求对应的IO转发至层级4进行处理。此外,在无法利用缓存的情况下,则可以先向层级3请求获取元数据,在获取到元数据之后再转发数据读写请求对应的IO转发至层级4进行处理。
层级3为文件系统,为底层的分布式存储集群提供一个供外部读写的接口。其至少包括用于提供元数据服务的元数据服务器,记录了分布式存储集群中所有数据文件的元数据。为了保证元数据服务不会成为读写处理的瓶颈,元数据服务器也可以设置多个,使得接入层系统中的前端机可以向各自对应的元数据服务器请求获取元数据。
层级4为分布式存储集群,用于对数据进行分布式的存储数据。文件进入后会进行切块存储,一个完整的数据文件可能分散在不同的物理节点的存储块中。
图5示出了本申请实施例提供的另一种分布式数据读写系统在数据读写操作时的处理流程,具体如下:
步骤1,客户端(client)100向前端机(Front-end)200发起数据读写请求。其中,所述客户端100对应前述层级划分中的层级1,前端机200 对应前述层级划分中的层级2。
步骤2,前端机200可以向元数据服务器(MetaData Server)300查询文件位置,请求获取元数据。在本申请的一个实施例中,元数据实际可以由文件系统服务器(NasServer)400来实际管理,文件系统服务器400可以向分布式存储集群(Cluster)500检测元数据,以获取文件的元数据(即文件与其所在节点(Node)的存储块之间的映射关系),而元数据服务器 300可以向文件系统服务器400请求同步这些元数据。其中,所述元数据服务器300和文件系统服务器400对应前述层级划分中的层级3,而所述分布式存储集群500对应前述层级划分中的层级4。
步骤3,当前端机200查询时,元数据服务器300可以将需要的文件位置返回给前端机200。
步骤4,前端机200根据获取到的文件位置,直接请求分布式存储集群500的某个节点,对其中的存储块进行读写文件的操作。在实际场景中,也由于前端机也可以利用cache记录数据读写请求对应的元数据,因此也可以跳过步骤2、3,从cache中读取数据读写请求的元数据,从而获取文件位置。
步骤5,前端机获得读写文件的操作结果之后,将数据读写请求的结果返回给客户端。
在本申请实施例的一个方案中采用了控制流挂载点和数据流挂载点的分离设计,即宿主机上的挂载点包括一个控制流挂载点和至少一个数据流挂载点。每个宿主机上都会先创建一个控制流挂载点,所述控制流挂载点用于管理所述数据流挂载点的创建、删除和更改,用于处理与数据读写无关的内容。所述数据流挂载点则用于处理与数据读写相关的内容,数据流挂载点与客户端挂接,以使所述客户端在进行分布式数据读写时通过其所挂接的挂载点关联于所述前端机,所有数据读写的操作则只会指向数据流挂载点,利用数据流挂载点进行处理。
例如,图6为本申请实施例中一个宿主机上的挂载点的示意图,其中, /mnt/opt/commons为控制流挂载点,每个宿主机上都有这个挂载点, /mnt/opt/datas为数据流挂载点的目录,数据流挂载点都在这个目录下。从云盘挂接的URL可以看到,在网络文件系统的服务端,这些云盘都指向 /prim-64d9321dd3ba4595a65f64ad18ce5ab这个目录,因此这些云盘下面的数据都是相同的,其区别仅在于是分散开从不同的前端机去访问这个目录。
此外,由于挂载点分散,且会动态的创建和删除,因此挂载点信息的正确性对于正确完成数据读写十分重要。例如,客户端挂载了一个实际不存在的挂载点,对分布式数据读写系统来说,会导致该客户端的数据存储服务不可用。因此,如何保证在出现断电、断网、系统bug或其它不可预测的异常时宿主机上的挂载点信息始终是正确,也是本方案的一个重要内容。
为解决上述问题,本申请实施例提供了两种保障机制,可以单独或者结合使用。其中,保障机制1为无状态设计,所述云主机平台还包括一数据库,用于保存所述宿主机上的挂载点的信息,这样只要数据库中的信息不丢失,无论宿主机发生何种异常,在发生异常之后可以重新连接数据库,从所述数据库获取挂载点的信息,来恢复所述宿主机上的挂载点。
保障机制2为心跳检测,所述宿主机定时与所述数据库通信,比较宿主机自身的挂载点的信息与所述数据库中保存的挂载点的信息是否一致。例如在实际场景中,可以由云主机平台的管理节点来控制该过程,每隔一定的周期,云主机平台的管理节点会下发命令,让宿主机去执行系统命令来检测自身的所有挂载点是否和数据库中的信息一致,如果不一致,则会根据不同的情况执行不同的操作,来确保两者的一致性。通过上述两种保障机制,可以保证即使系统中出现不可预测的突发事件,也能恢复到正确的状态。
此外,所述宿主机还可以定时检测前端机的状态,判断前端机是否处于正常的状态,若所述前端机的状态为异常时,宿主机会主动切换前端机,将对应的挂载点与另一前端机关联。
综上所述,本申请提供的分布式数据读写方案中,云主机平台包括至少一个宿主机,所述宿主机上运行有至少一个客户端,在客户端的接入时增加了一个接入层系统,该接入层系统中多个前端机,客户端在创建时会与一个挂载点挂接,客户端通过其所挂接的挂载点关联于一个前端机,前端机用于获取来自客户端的数据读写请求,所述前端机根据所述数据读写请求,确定待读写数据的元数据,根据所述元数据访问分布式存储集群中的文件位置,完成所述数据读写请求的处理,以及向所述数据客户端返回所述数据读写请求的处理结果。在增加了包含多个前端机的接入层系统之后,可以有效的分流来自客户端的数据读写请求,此时客户端接入的性能瓶颈将转化至前端机提供获取元数据的过程,可以避免客户端的接入成为数据读写的瓶颈点。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一些实施例包括一个如图7所示的计算设备,该计算设备包括存储有计算机可读指令的一个或多个存储器710和用于执行计算机可读指令的处理器720,其中,当该计算机可读指令被该处理器执行时,使得所述设备执行基于前述本申请的多个实施例的方法和/ 或技术方案。
此外,本申请的一些实施例还提供了一种计算机可读介质,其上存储有计算机程序指令,所述计算机可读指令可被处理器执行以实现前述本申请的多个实施例的方法和/或技术方案。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (11)
1.一种分布式数据读写方法,其中,该方法应用于接入层系统,该接入层系统包括多个前端机,包括:
所述前端机获取来自客户端的数据读写请求,其中,所述客户端在创建时与一个挂载点挂接,所述客户端通过其所挂接的挂载点关联于所述前端机;
其中,所述客户端所在的宿主机上的挂载点包括一个控制流挂载点和至少一个数据流挂载点,所述控制流挂载点用于管理所述数据流挂载点的创建、删除和更改,所述数据流挂载点与客户端挂接,以使所述客户端在进行分布式数据读写时通过其所挂接的挂载点关联于所述前端机;
所述前端机根据所述数据读写请求,确定待读写数据的元数据;
所述前端机根据所述元数据访问分布式存储集群中的文件位置,完成所述数据读写请求的处理;
所述前端机向所述客户端返回所述数据读写请求的处理结果。
2.根据权利要求1所述的方法,其中,所述前端机根据所述数据读写请求,确定待读写数据的元数据,包括:
所述前端机根据所述数据读写请求在缓存中进行查询,获取所述待读写数据的元数据;或
所述前端机根据所述数据读写请求向对应的元数据服务器进行查询,获取所述待读写数据的元数据。
3.根据权利要求2所述的方法,其中,所述前端机根据所述数据读写请求,确定待读写数据的元数据,包括:
所述前端机根据所述数据读写请求在缓存中进行查询,若未获取到所述待读写数据的元数据,再向对应的元数据服务器进行查询,以获取待读写数据的元数据。
4.一种分布式数据读写方法,其中,该方法应用于包括至少一个宿主机的云主机平台,所述宿主机上运行有至少一个客户端,所述客户端在创建时与一个挂载点挂接,所述客户端通过其所挂接的挂载点关联于一个前端机,所述方法还包括:
所述客户端根据其所挂接的挂载点,向该挂载点关联的前端机发送数据读写请求,以使所述前端机根据所述数据读写请求,在分布式存储集群中完成所述数据读写请求的处理;
其中,所述宿主机上的挂载点包括一个控制流挂载点和至少一个数据流挂载点,所述控制流挂载点用于管理所述数据流挂载点的创建、删除和更改,所述数据流挂载点与客户端挂接,以使所述客户端在进行分布式数据读写时通过其所挂接的挂载点关联于所述前端机;
所述客户端从所述前端机获取所述数据读写请求的处理结果。
5.根据权利要求4所述的方法,其中,所述客户端在创建时与一个挂载点挂接,包括:
所述客户端在创建时,所述云主机平台的宿主机判断是否存在可用的挂载点;
若存在,所述宿主机将所述客户端与所述可用的挂载点挂接,完成所述客户端的创建;
若不存在,所述宿主机创建挂载点,将所述挂载点与前端机关联后,再将所述客户端与所述挂载点挂接,完成所述客户端的创建。
6.根据权利要求4所述的方法,其中,所述云主机平台还包括一数据库,用于保存所述宿主机上的挂载点的信息,所述方法还包括:
所述宿主机发生异常之后,从所述数据库获取挂载点的信息,恢复所述宿主机上的挂载点。
7.根据权利要求4所述的方法,其中,所述云主机平台还包括一数据库,用于保存所述宿主机上的挂载点的信息,所述方法还包括:
所述宿主机定时与所述数据库通信,比较宿主机自身的挂载点的信息与所述数据库中保存的挂载点的信息是否一致。
8.根据权利要求4所述的方法,其中,该方法还包括:
所述宿主机定时检测前端机的状态,并在所述前端机的状态异常时,将对应的挂载点与另一前端机关联。
9.一种计算设备,其中,该设备包括用于存储计算机程序指令的存储器和用于执行计算机程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发所述设备执行权利要求1至8中任一项所述的方法。
10.一种计算机可读介质,其上存储有计算机程序指令,所述计算机程序 指令可被处理器执行以实现如权利要求1至8中任一项所述的方法。
11.一种分布式数据读写系统,其中,该系统至少包括云主机平台、接入层系统和分布式存储集群;
所述云主机平台包括至少一个宿主机,所述宿主机上运行有至少一个客户端,所述客户端在创建时与一个挂载点挂接,所述客户端通过其所挂接的挂载点关联于一个前端机,所述客户端用于根据其所挂接的挂载点,向该挂载点关联的前端机发送数据读写请求,以使所述前端机根据所述数据读写请求,在分布式存储集群中完成所述数据读写请求的处理,以及从所述前端机获取所述数据读写请求的处理结果;
其中,所述宿主机上的挂载点包括一个控制流挂载点和至少一个数据流挂载点,所述控制流挂载点用于管理所述数据流挂载点的创建、删除和更改,所述数据流挂载点与客户端挂接,以使所述客户端在进行分布式数据读写时通过其所挂接的挂载点关联于所述前端机;
所述接入层系统包括多个前端机,所述前端机用于获取来自客户端的数据读写请求,所述前端机根据所述数据读写请求,确定待读写数据的元数据,根据所述元数据访问分布式存储集群中的文件位置,完成所述数据读写请求的处理,以及向所述客户端返回所述数据读写请求的处理结果;
所述分布式存储集群用于对数据进行分布式的存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811217915.2A CN109254958B (zh) | 2018-10-18 | 2018-10-18 | 分布式数据读写方法、设备及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811217915.2A CN109254958B (zh) | 2018-10-18 | 2018-10-18 | 分布式数据读写方法、设备及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109254958A CN109254958A (zh) | 2019-01-22 |
CN109254958B true CN109254958B (zh) | 2021-07-16 |
Family
ID=65045581
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811217915.2A Active CN109254958B (zh) | 2018-10-18 | 2018-10-18 | 分布式数据读写方法、设备及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109254958B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111399760B (zh) * | 2019-11-19 | 2023-01-24 | 杭州海康威视系统技术有限公司 | Nas集群元数据处理方法、装置、nas网关及介质 |
CN111858509B (zh) * | 2020-07-06 | 2022-11-25 | 苏州浪潮智能科技有限公司 | 一种基于容器的分布式计算方法和装置 |
CN116301561A (zh) * | 2021-12-14 | 2023-06-23 | 中兴通讯股份有限公司 | 分布式系统的数据处理方法、系统、节点和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106462544A (zh) * | 2014-03-31 | 2017-02-22 | 亚马逊科技公司 | 分布式存储系统中的会话管理 |
CN106603325A (zh) * | 2016-10-25 | 2017-04-26 | 上海斐讯数据通信技术有限公司 | 一种控制客户端挂载网络文件服务器的方法与系统 |
CN106850273A (zh) * | 2016-12-30 | 2017-06-13 | 上海帝联信息科技股份有限公司 | 服务器及其流媒体服务提供方法 |
CN107656871A (zh) * | 2017-09-30 | 2018-02-02 | 郑州云海信息技术有限公司 | 一种基于Postmark的后端存储性能自动化测试方法 |
-
2018
- 2018-10-18 CN CN201811217915.2A patent/CN109254958B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106462544A (zh) * | 2014-03-31 | 2017-02-22 | 亚马逊科技公司 | 分布式存储系统中的会话管理 |
CN106603325A (zh) * | 2016-10-25 | 2017-04-26 | 上海斐讯数据通信技术有限公司 | 一种控制客户端挂载网络文件服务器的方法与系统 |
CN106850273A (zh) * | 2016-12-30 | 2017-06-13 | 上海帝联信息科技股份有限公司 | 服务器及其流媒体服务提供方法 |
CN107656871A (zh) * | 2017-09-30 | 2018-02-02 | 郑州云海信息技术有限公司 | 一种基于Postmark的后端存储性能自动化测试方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109254958A (zh) | 2019-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11481289B2 (en) | Method and apparatus for reading and writing committed data | |
JP7378870B2 (ja) | ファイルシステムデータアクセス方法およびファイルシステム | |
US11755415B2 (en) | Variable data replication for storage implementing data backup | |
JP6522812B2 (ja) | 分散型データベースシステム用高速クラッシュ回復 | |
CN111124301B (zh) | 一种对象存储设备的数据一致性存储方法及系统 | |
US9996421B2 (en) | Data storage method, data storage apparatus, and storage device | |
US8171100B2 (en) | Reducing latency of access requests in distributed storage systems having a shared data set | |
US10126946B1 (en) | Data protection object store | |
US8515915B2 (en) | System and method for enhancing availability of a distributed object storage system during a partial database outage | |
CN110046133B (zh) | 一种存储文件系统的元数据管理方法、装置及系统 | |
CN104618482B (zh) | 访问云数据的方法、服务器、传统存储设备、系统 | |
CN105549905A (zh) | 一种多虚拟机访问分布式对象存储系统的方法 | |
EP3862883B1 (en) | Data backup method and apparatus, and system | |
AU2015360953A1 (en) | Dataset replication in a cloud computing environment | |
CN105027070A (zh) | 卷操作的安全性 | |
CN109254958B (zh) | 分布式数据读写方法、设备及系统 | |
JP2013544386A (ja) | 分散型データベースにおいてインテグリティを管理するためのシステム及び方法 | |
JP2013544386A5 (zh) | ||
US20190188309A1 (en) | Tracking changes in mirrored databases | |
JP2017526066A (ja) | ストレージ動作の合体 | |
CN114564339A (zh) | 一种磁盘镜像文件跨平台迁移方法及系统 | |
WO2016101662A1 (zh) | 一种数据处理方法及相关服务器 | |
US20230205638A1 (en) | Active-active storage system and data processing method thereof | |
CN113282563A (zh) | 基于对象存储的文件网关高可用实现方法及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |