CN102594852B - 数据访问方法、节点及*** - Google Patents

数据访问方法、节点及*** Download PDF

Info

Publication number
CN102594852B
CN102594852B CN201110005099.0A CN201110005099A CN102594852B CN 102594852 B CN102594852 B CN 102594852B CN 201110005099 A CN201110005099 A CN 201110005099A CN 102594852 B CN102594852 B CN 102594852B
Authority
CN
China
Prior art keywords
data
memory node
blocks
memory
access
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
Application number
CN201110005099.0A
Other languages
English (en)
Other versions
CN102594852A (zh
Inventor
王旭
罗治国
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Mobile Communications Group Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Mobile Communications Group Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN201110005099.0A priority Critical patent/CN102594852B/zh
Publication of CN102594852A publication Critical patent/CN102594852A/zh
Application granted granted Critical
Publication of CN102594852B publication Critical patent/CN102594852B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据访问方法、装置及***,其中,该方法包括:接收包含块编号标识的访问请求;预建立的本地块单元根据块编号标识查找本地块单元的块编号与提供存储服务的存储节点资源信息的对应关系,获得块编号标识对应的存储节点位置以及块数据标识;本地块单元根据块编号标识对应的存储节点位置以及块数据标识,向存储节点发送块数据访问请求;其中,存储节点资源信息包括提供存储服务的存储节点位置信息及存储节点的块数据标识。本发明可以解决现有分布式文件***每次访问需要通过元数据服务器进行寻址,元数据服务器成为***的瓶颈,访问效率低的缺陷。

Description

数据访问方法、节点及***
技术领域
本发明涉及通信领域中数据业务技术,具体地,涉及数据访问方法、节点及***。
背景技术
数据存储***最常用的使用方式是文件***,例如,图1中文件***通过路径名,如/home/myname/novel/novell.txt访问文件,路径名处于一个命名空间中,路径处于一个树状空间中,树状空间表征一定的逻辑关系,对用户比较友好。数据库***是另一类存储***的使用方式,它不依赖于文件***路径来体现逻辑关系,以“表”或其他结构来表征逻辑,如图1中数据库***以“表”表征逻辑。
如图1,所有需要随机访问的数据存储***(文件***和数据库***)的底层均构建于块设备之上。所谓块设备,是可以通过指定一个块编号,来访问设备中的一个指定区域,块的编号可以在一个很大的寻址空间内进行随机寻址,但是块编号本身没有逻辑含义,用户需要借助上层的文件***或数据库***等有用户逻辑的***。
文件***的访问具有更好的逻辑结构,但是块访问可以支持各种文件***和其他存储***,如数据库***,灵活性更高。针对图1的文件读写流程如图2和图3所示,读写均由客户端发起,送到文件***层,文件***客户对应用提供了文件打开、定位、读写等操作接口,成功的文件打开操作会返回一个文件的描述符,该描述符为序号或指针,对应用来说是唯一的表征要操作文件的标识,对应用程序的文件访问操作,文件***层要分一次或多次去块设备访问一些块来读取信息或写入数据。有些块中存储着管理和组织文件用的元数据,有些块存储着用户数据,不同的文件***实现采用不同的方式来存放和读取这些块,文件***转化为的多个块操作,送达块设备层,最终到达磁盘进行操作,这里省略了缓存等优化措施。使用块设备服务的客户端以磁盘等形式获得一块存储区域,通过小型计算机***接口(SCSI)或先进技术附件接口(ATA)块操作指令来存放、读取、更新以及删除存储块。一般使用者会在磁盘上建立文件***来使用。
随着云计算的发展,存储***的挑战是容量和成本,既需要大容量的存储空间,又需要降低存储***的成本。面对这种需求,需要使用大量的普通服务器构建大容量的存储***,图1-图3的块访问不适于分布式访问。
上述图1-图3为通过文件***或数据***访问块设备,下面的图4-6为针对云计算的大容量低成本需求提供的一种并行网络文件***(pNFS),即用户以文件***接口的方式访问pNFS元数据服务器获取元数据,然后再从分布存储的设备(文件存储服务器)以块接口或文件***接口访问数据,以利用分布化的资源提高***的可扩展性和性能。其他如LustreFS等分布式文件***也都使用了类似的架构。
在图4中,元数据服务器的文件***层存储文件描述符和数据位置信息(块编号)的对应表,其中,图4的分布式***中,不是特别强调块的概念,数据位置信息需有文件存储节点信息和端口号,用户根据数据位置信息去访问对应的文件存储节点,文件存储节点根据文件名或块ID找到文件或数据块,图5和图6为图4所示***对应的读写访问控制流程图。
图5和图6中分布式文件***的客户端采用与图1-图3的文件***不同的操作,它可以感知文件***的分布式,并至少有元数据服务器的访问方式,关于文件创建、打开、关闭等操作,都是通过元数据服务器进行的操作,它承担的功能基本可以类比本机文件***的文件***层,两者之间是通过网络传送的操作消息。如图5,客户应用以文件***接口方式向元数据服务器发送文件打开访问请求,元数据服务器的文件***根据访问请求中的文件描述符找到对应的数据位置信息,并返回客户应用,客户应用即可根据数据位置信息读取对应的文件存储节点。如图6,客户应用以文件***接口方式向元数据服务器发送创建文件请求,元数据服务器的文件***创建对应的文件描述符,当客户应用写操作访问时,根据写操作访问中文件描述符分配指定的存储空间返回客户应用,分配空间时包括指定存储节点及数据描述标识。客户应用根据指定分配空间找到对应的存储节点,并对文件存储节点进行写入操作。
元数据服务器节点在分配空间或返回数据位置信息时,会指定用户数据的存储节点,和数据的描述标识,其中数据描述标识通常是一个数据位置的地址或者是数据编号。具体的用户数据读写操作是发生在存储节点上的,这些具体的分块的数据类似于单机文件***的块,但在不同的实现中可能是存储节点上的一些文件或某些集中块存储设备上的块。
在实现本发明过程中,发明人发现现有分布式文件***每次访问需要一次或多次通过元数据服务器进行寻址,然后访问存储节点,元数据服务器成为***的瓶颈。
发明内容
本发明的第一目的是提出一种数据访问方法,以减少现有技术通过元数据服务器寻址的访问开销。
本发明的第二目的是提出一种客户节点,以减少现有技术通过元数据服务器寻址的访问开销。
本发明的第三目的是提出一种存储控制节点,以减少现有技术通过元数据服务器寻址的访问开销。
本发明的第四目的是提出一种数据存储***,以实现提高访问效率。
为实现上述第一目的,根据本发明的一个方面,提供了一种数据访问方法,包括:接收包含块编号标识的访问请求;
预建立的本地块单元根据块编号标识查找本地块单元的块编号与提供存储服务的存储节点资源信息的对应关系,获得块编号标识对应的存储节点位置以及块数据标识;
本地块单元根据块编号标识对应的存储节点位置以及块数据标识,向存储节点发送块数据访问请求;
其中,存储节点资源信息包括提供存储服务的存储节点位置信息及存储节点的块数据标识。
优选地,接收包含块编号标识的访问请求之前还可以包括:向控制节点发送包含存储容量大小的块数据开通请求;接收控制节点根据存储节点的存储资源状态信息和/或发送块数据开通请求的客户节点位置信息,分配存储容量大小对应的存储节点资源信息;根据存储节点资源信息建立本地块设备单元。
优选地,接收包含块编号标识的访问请求之前还可以包括:通过块设备接口接收直接的包含块编号标识的访问请求和/或通过文件/数据库***接口接收文件名/表数据访问请求,解析文件名或表数据对应的块编号标识。
优选地。本地块单元为提供分布式存储服务的虚拟本地块设备驱动或者为提供应用服务的虚拟机。
为实现上述第二目的,根据本发明的另一个方面,提供了一种客户节点,包括:一至多个本地块单元,其中,本地块单元包括:接口模块,用于接收包含块编号标识的访问请求;存储模块,用于存储本地块单元的块编号与提供存储服务的存储节点资源信息的对应关系;存储节点资源信息包括提供存储服务的存储节点信息、存储节点的块数据标识;处理模块,用于根据块编号标识查找存储单元,获得块编号标识对应的存储节点位置以及块数据标识,通过接口模块向存储节点发送块数据访问请求。
为实现上述第三目的,根据本发明的另一个方面,提供了一种存储控制节点,包括:接口模块,用于接收块数据开通/释放请求;
控制模块,用于根据一至多个存储节点的存储资源状态信息和/或接收的块数据开通请求的客户节点位置信息,分配对应的存储节点资源信息;或者根据块数据释放请求释放对应的存储节点资源信息;
存储模块,用于存储一至多个存储节点已分配的存储节点资源信息;
其中,存储节点资源信息包括存储节点信息及存储节点的块数据标识。
为实现上述第四目的,根据本发明的另一个方面,提供了一种数据存储***,包括第二目的的客户节点以及第三目的的存储控制节点。
本发明各实施例的数据访问方法、装置和***,由于提供更底层的本地块单元,由本地块单元存储块编号与预先分配的存储节点资源信息的对应关系,因此在进行数据访问时,不需要通过现有技术中的元数据服务器等进行寻址,因此不存在性能瓶颈,可以大大减少访问开销,提高了访问效率。
本发明还有些实施例在使用时可以自己根据应用选择直接使用块设备接口或创建自己的文件***接口访问本地块单元,因此具有更好的***可扩展性。本发明中的本地块单元可以应用到虚拟机,用户只能访问分配的存储资源,对于公共服务的多租户隔离能力更强,安全性更高。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为根据现有技术中的块设备和文件***、数据库***的逻辑关系图;
图2为针对图1的读访问操作流程图;
图3为针对图1的写访问操作流程图;
图4为根据现有技术中的并行网络文件***(pNFS)的逻辑关系图;
图5为针对图4的读访问操作流程图;
图6为针对图4的写访问操作流程图;
图7为根据本发明数据访问方法实施例一流程图;
图8为根据本发明数据访问方法实施例二流程图;
图9为根据本发明数据访问方法的解析示意图,以及本发明的数据存储***结构示意图;
图10为针对图9的数据资源申请开通/释放流程示意图;
图11为本发明数据访问方法中访问过程实施例示意图;
图12为针对图11的读访问操作流程图;
图13为针对图11的写访问操作流程图;
图14为根据本发明存储控制装置实施例示意图;
图15为根据本发明客户节点实施例示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
方法实施例
图7为根据本发明数据访问方法实施例一流程图,如图7所示,本实施例包括:
步骤S102:接收包含块编号标识的访问请求;
步骤S104:预建立的本地块单元根据块编号标识查找本地块单元的块编号与提供存储服务的存储节点资源信息的对应关系,获得块编号标识对应的存储节点位置以及块数据标识;其中,存储节点资源信息包括提供存储服务的存储节点位置信息及该存储节点的块数据标识;
本实施例中的本地块单元可以通过向一控制节点申请块数据,从而获得能提供服务器的存储节点资源信息,并预先根据申请的块数据建立一个本地块单元,如提供分布式存储服务的虚拟本地块设备驱动提供给应用程序使用,应用程序根据该单元可以进行后续的数据访问;
步骤S106:本地块单元根据块编号标识对应的存储节点位置以及块数据标识,向该存储节点发送块数据访问请求。
由于本地块单元存储有一至多个存储节点资源信息,则可以根据各存储资源信息中的存储节点位置和块数据标识进行数据访问,存储节点也可以根据块数据标识区分来自不同客户节点的访问,具体可参见后续的图9实施例。本实施例由于提供更底层的本地块单元,由本地块单元存储块编号与预先分配的存储节点资源信息的对应关系,因此在进行数据访问时,不需要通过现有技术中的元数据服务器等进行寻址,因此不存在性能瓶颈,可以大大减少访问开销,提高了访问效率。
图8为根据本发明数据访问方法实施例二流程图,如图8所示,本实施例包括:
步骤S202:如图9所示,客户节点向控制节点发送包含存储容量大小的块数据开通/释放请求;
步骤S204:存储控制节点(也称管理节点或控制节点)监控各存储节点的资源使用状态,根据客户节点申请的分配空间,以及各存储节点的资源状态信息,分配给客户节点一至多个存储节点的资源,包括存储节点位置信息(地址/端口号)、块数据标识等;
管理节点还可以进一步根据发送该请求的客户节点的位置,分配较近的存储节点资源信息给客户节点;
管理节点也可以结合客户节点位置以及存储节点的资源状态,分配一至多个存储节点资源给客户节点;
步骤S206:客户节点获取存储节点资源信息;
步骤S208:根据存储节点资源信息创建为一个本地块设备驱动;
步骤S210:客户节点可以直接通过标准的块设备接口访问指令对本地块设备驱动访问,并映射成对存储节点的访问;还可以自己创建文件***或数据库***,并通过文件***接口或者数据库***接口将文件名或表数据进行解析,获得本地块设备驱动对应的块编号标识,进一步由本地块设备驱动映射成对某个存储节点的访问。
本实施例综合了集中式访问和分布式访问的优点,能访问到块数据且访问容量大,客户节点通过控制节点获得的分配空间并对应增加本地块设备驱动,用户在使用时可以根据应用选择直接使用块设备或创建自己的本地文件***,因此具有更好的***可扩展性。本实施例采用增加的本地块设备驱动,不用到元数据服务器中查找,因此不存在性能瓶颈。本实施例还可以应用到虚拟机,用户只能访问分配的存储资源,对于公共服务的多租户隔离能力更强,安全性更高。
图9为根据本发明数据访问方法的解析示意图,以及本发明的数据存储***结构示意图。
如图9所示的数据存储***包括存储控制节点和客户节点,控制节点是逻辑上的集中管理节点,对外提供一个可以用于申请、释放块数据的接口,并可以进行全局的、集中的、可靠的管理控制,提供与客户节点的应用接口,控制各存储节点的存储资源状态;存储节点(也可以称为服务节点),主要用于进行具体的块数据的分配和提供存储服务,当控制节点将某个存储节点的存储资源分配给客户节点后,存储节点可以不经过控制节点直接将该节点上的存储资源提供给用户使用。
如图9,物理部署上,控制节点不一定是一个单一的或独立的节点,可以是一个集群,甚至复用部分存储节点,位于存储节点内执行存储管理控制的功能。而存储节点对应于每一个提供块设备服务的拥有磁盘空间的物理服务器。控制节点接收并处理用户申请、释放块设备、调整块设备大小的操作;存储节点存储用户数据,执行数据块的增加、删除、获取、修改等操作。
下面通过图10-13对数据分配、访问过程进行详细说明。
图10为针对图9的数据资源申请开通/释放流程示意图,如图10所示,数据存储资源申请/释放流程发生在客户节点和控制节点之间,包括:
步骤1:客户节点可以申请指定大小的块设备,如向控制节点发送包含指定存储容量的块数据开通请求;
步骤2:控制节点接收到开通请求之前会检查各存储节点的可用空间以及有效状态等资源使用情况,可以主动监测或各存储节点上报;
步骤3:控制节点由于已经存储各节点的资源使用情况,根据存储节点的存储资源状态以及客户节点的位置、请求的存储容量空间大小等信息,在存储节点上分配空间,将分配的存储空间提供给客户节点使用,为了达到高可用性,控制节点可以分配多个存储节点的资源给同一个客户作为冗余。为了避免后续空间被占用,控制节点可以在分配后预先发送存储节点,使其预留相应的空间大小;
如客户节点请求2G的空间,管理节点根据各存储节点资源使用情况,分配:
存储节点1,端口号5,分配块数据标识lv0(对应存储节点1上的块数据1-10000);
存储节点2,端口号4,分配块数据标识lv1(对应存储节点2上的数据2000-12000);...
具体分配时可以根据情况分配多个冗余的存储节点给同一个客户节点。
步骤4:控制节点将分配后的存储节点资源信息发送给客户节点,并且控制节点存储已分配给该客户节点的存储节点资源信息,例如存储节点标识、位置信息、空间大小、块数据区域标识等等;
步骤5:客户节点根据返回的结果,包括存储节点地址、指定的具体服务的存储区域的标识,例如步骤3中分配的块数据对应的区域标识lv0、lv1等,依据这些信息,服务的存储节点可以区分来自不同客户节点的访问,客户节点随后将这些存储节点的资源信息建立一个本地块设备驱动提供给应用程序使用,至此申请流程完成。控制节点管理每个存储节点确定可以存储的空间大小。
本实施例仅以申请流程为例说明,具体地,在客户节点主动发起释放流程之前,这些存储资源对于用户来说始终是可以使用的。释放流程与申请类似,不再举例说明。
图10构建成的本地块设备使用的架构如图11所示。在图9和图10申请开通了存储资源后,后续的资源的使用流程,如读和写等只发生在客户节点和提供服务的存储节点(服务节点)之间,与现有技术必须每次到元数据服务器中查找块设备所在的位置不同,本实施例不存在性能瓶颈。
如图8实施例所描述的,图11中,客户节点在建立本地块单元后可以作为本地一块设备驱动,提供给应用程序使用,并可以直接对该本地块设备通过标准的块设备接口进行块编号访问或者通过创建文件***、数据库***等进行文件访问,因此具有更好的***可扩展性。其中图11的本地块单元与上层之间可以是标准的块设备接口。本地块设备接收到块访问指令后可以进行排队等处理以提高访问效率,具体可参见后续图12,处理后的块访问指令由本地块单元映射为对应的存储节点访问,并发送到对应的存储节点。
本实施例采用增加的本地块设备驱动进行映射访问,可以应用到虚拟机技术,如图11所示的***可以为大云弹性计算服务的虚拟机提供可以永久存储、具有高可用性的块设备服务。
现有技术中分布式文件***的方式用户可以看到全局的其他资源,安全性和可靠性存在隐患。本发明提供的数据存储访问服务,用户只能访问分配的存储资源,无法看到全局的其他的存储资源状态,对于公共服务的多租户隔离能力更强,安全性和可靠性更高。
现有技术虚拟机使用情况下,每个客户端虚拟机都只有一个磁盘,这个磁盘实际来自于“虚拟机镜像”文件,运行着客户操作***,当虚拟机被实例销毁之后,所有存在磁盘上的数据就都不存在了。本发明提供数据存储服务后,虚拟机可以有若干个映射的本地块设备来使用,本发明提供的本地块设备与虚拟机镜像是独立的,与客户端实际运行的操作***没有关系,即使虚拟机销毁后也会存在,并可以通过管理节点重新获得该块设备被用户的其他的虚拟机使用,甚至一个本地块设备可以被多个虚拟机同时使用,极大提高了服务质量。服务的本地块设备安装在提供虚拟机服务的主机(Host)或服务器上,将这个块设备直接提供给用户指定的虚拟机使用,虚拟机本身不需要任何变化、不需要安装驱动,就可以使用这个“本地”磁盘。本发明各实施例分配给用户的本地块设备可以允许用户充分自主定制,具有更好的灵活性。
对于图11中如果客户节点对本地块单元不创建文件***或数据库***,直接进行块数据访问,则根据块编号标识根据本地块单元存储的块编号与存储节点资源信息的对应关系,映射为对某存储节点的块数据的访问,并返回访问结果,过程比较简单,在此不画图举例说明。
为了与现有技术中的集中式和分布式文件***访问进行对比,下面通过图12、图13中使用本发明的本地块设备进行文件访问的过程。
图12为针对图11的读访问操作流程图,图13为针对图11的写访问操作流程图。
如图12和图13实施例中,客户节点创建的文件***存有文件描述符对应的块编号。通过文件***进行数据访问时,客户节点的应用通过文件***的文件名(描述符),获得对应的块编号,进而向本地块设备进行块数据访问,本地块设备驱动将此块数据映射为对应存储节点的块数据访问,从而返回数据结果。
下面解释下文件描述符对应的块编号和本地块设备驱动映射的块数据标识的含义,文件描述符对应的块编号是本地块设备上的例如0x0500001这样的编号;块数据标识是存储节点上的其中某个块设备对应的标识,如lv0、lv1、lv2。
例如,用户通过文件描述符访问自己本地块设备上的0x0500001块编号时,根据本地块设备驱动存储的块编号与存储节点资源信息的对应关系,实际映射成访问存储节点,例如主机host07(地址)上的lv1(块数据区域标识)上的0x50001。
在进行写操作时,本地块设备驱动可以根据块编号发给所有分配给用户的存储节点,进行并行写操作。在读操作时,可以仅发给块编号对应的存储节点。
相对比现有技术中,图12和图13客户应用在访问本地块设备驱动时,流程到达本地块设备驱动之前与图2和图3中的非分布式应用的场景类似,因此与传统应用兼容,但后续访问流程有所区别:本地块设备驱动根据申请时得到的存储节点资源信息,将访问本地块设备映射到访问提供服务的存储节点,如图12和图13,本地块设备驱动接收到块数据访问后可以进行下面的处理,包括:
1.在到达预设访问数量或时间阈值前缓存块设备数据访问;
2.对于缓存的块设备访问进行排序(如按照访问的块数据标识进行排序,便于提高访问相同存储节点的访问效率);
3.根据用户访问的特点,判断是否需要预读部分用户未请求数据;如,根据用户访问历史获知进行连续性访问,则可以进行预读;用户访问如果是非连续性的,可以不预读数据;
4.打包压缩块访问操作指令,根据申请时得到的信息,发送到对应到存储服务节点(读操作选择一个,写操作并发到多个服务节点)。
本发明上述实施例相对于现有技术中的集中式文件,可以分布式的提供存储节点,本地块设备驱动根据预先的资源申请找到对应的存储节点;若存储节点仅为一个,则与客户节点的文件***和本地块设备类似于现有集中式文件***的功能,此时,客户节点本地块设备相当于一个转发器,转发到存储节点。
上述各方法实施例具有如下优点:
1.与现有技术中分布式文件***类的存储***相比,现有技术分布式文件***的文件***层多了一个元数据服务器节点的网络访问过程,本发明却可以提供更底层的本地块设备访问接口,用户在使用时可以自己根据应用选择直接使用本地块设备驱动或创建自己的本地文件***,提供灵活性的同时,也减少了文件***层的开销。
2.通过客户节点的映射,客户节点将块数据访问映射到一个或多个存储节点的物理存储资源上,访问过程中无需请求控制节点;控制节点的调度管理仅在分配资源和出现故障时发挥作用,因此,不存在性能瓶颈。
3.与集中式的块设备相比,分布式体系架构具有更好的***可扩展性,由于可以集中利用集群中闲置的存储空间,具有更好的资源利用率和更高的性价比。
4.由于用户在使用存储资源时仅访问分配给用户的资源,其他
存储资源的对用户来说不可见,对于多租户的隔离能力更强。
如果控制节点分配多个存储节点资源信息给同一个客户节点作为冗余,通过映射得到的多个存储节点的的存储数据是一致的,存储节点中的若干个发生突然失效(故障)时,剩余有效存储节点的信息仍然是完整的可以提供服务。控制节点监测到存储节点失效后,可以根据之前已存储的各存储节点的资源使用情况,通知剩余有效节点,将相同存储数据的信息复制到新增的存储节点上,并将客户节点上的映射指向新的存储节点进行重新配置,达到高可用性。
例如,控制节点存储的各客户节点的用户与存储节点的映射关系可如下表1所示:
表1用户与存储节点(服务节点)的映射关系表
具体地,某存储节点失效后的处理过程可以包括:
步骤1:去除故障失效存储节点、添加新的存储节点,控制节点在新增存储节点上分配同样大小的分区;并且控制节点通知与失效节点存有相同数据的有效节点,以使进行后续数据恢复;
步骤2:仍服务的有效节点,接收到控制节点的通知后,对要求的块数据进行完全快照,并利用快照数据在新增节点中恢复数据;
步骤3:由于在执行步骤2过程中,数据可能进行更新,因此,对步骤2中的有效节点中的要求恢复的数据进行增量快照(执行步骤2过程中的更新数据),并将快照数据在新增节点中恢复数据,如果增量快照尺寸较大,大于预设的阈值,重复步骤3,否则进入步骤4;
步骤4:如果最后一次增量快照的尺寸小于阈值,但仍不为0,则可以锁定,快速恢复最后一次增量快照数据,使得新存储节点与进行快照的存储节点数据完全一致,锁定期间,可以利用客户节点本地块设备驱动缓存数据改动;
步骤5:解除步骤4中存储节点锁定,恢复正常服务。
本实施例在使用多个存储节点的情况下,当部分存储节点发生故障时,可以利用剩余节点继续提供连续的服务,并将数据自动复制到其他存储节点上,以维持服务的可用性,控制节点的调度管理仅在分配资源和出现故障时发挥作用,不存在性能瓶颈。
图14为根据本发明客户节点实施例示意图。如图14所示,本实施例客户节点包括一至多个本地块单元,其中,本地块单元包括:
接口模块,用于接收包含块编号标识的访问请求;
存储模块,用于存储本地块单元的块编号与提供存储服务的存储节点资源信息的对应关系;存储节点资源信息包括提供存储服务的存储节点信息、存储节点的块数据标识;
处理模块,用于根据块编号标识查找存储模块,获得块编号标识对应的存储节点位置以及块数据标识,向存储节点发送该块数据访问请求
其中,通信模块为客户节点本地块单元外的一模块,用于通过网络向控制节点申请块数据开通请求,并接收控制节点分配的存储节点资源信息,本地块单元为根据该存储节点资源信息建立的一本地块设备驱动,当本地块单元的接口模块接收到数据访问请求时,经过处理模块处理后将对应的存储节点块数据访问请求发送通信模块,通过通信模块返回访问结果。
其中本地块单元的接口模块可以包括:
直接访问子模块,用于通过块设备接口接收直接包含块编号标识的访问请求;和/或
***访问子模块,用于通过文件/数据库***接口接收文件名/表数据访问请求,解析文件名/表数据对应的块编号标识,向处理模块发送包含块编号标识的访问请求。
处理模块还可以包括:
块访问处理子模块,用于对块数据访问进行预处理,以提高访问效率,预处理包括以下任意组合:在块数据访问不大于预设访问数量或时间阈值时,缓存块数据访问;对块数据访问进行缓存及排序;根据块数据访问特点,确定是否预读未请求访问的块数据;打包压缩块数据访问。
本实施例的客户端具体访问过程可以参见上述方法实施例相关说明,在此不再对相同或相似内容进行重复描述。
图15为根据本发明存储控制节点实施例示意图。如图15,本实施例具体功能可参见上述方法实施例中的控制节点功能,如图,本实施例包括:
接口模块,用于接收客户节点的块数据开通/释放请求;
控制模块,用于根据一至多个存储节点的存储资源状态信息和/或接收的块数据开通请求的客户节点位置信息,分配对应的存储节点资源信息;或者根据块数据释放请求释放对应的存储节点资源信息;
存储模块,用于存储一至多个存储节点已分配的存储节点资源信息;
其中,存储节点资源信息包括存储节点位置信息、及存储节点的块数据标识。
该节点装置还可以包括:
监测模块,用于监测到存储节点失效后,查找存储模块中与失效的存储节点有相同存储数据的有效存储节点,将有效存储节点的存储数据复制到新建立的存储节点。
优选地,存储模块还存储客户节点与已分配的存储节点资源信息的对应关系,如表1所示;接口模块进一步接收包含客户节点标识的获取请求;控制模块进一步根据客户节点标识从存储模块查找对以的存储节点资源信息,并返回接口模块。
本实施例的存储控制节点,可以位于客户节点和一至多个存储节点之间,或者位于复合在存储节点上。具体控制过程可以参见上述方法实施例相关说明,在此不再对相同或相似内容进行重复描述。
可通过各种手段实施本文描述的技术。举例来说,这些技术可实施在硬件、固件、软件或其组合中。对于硬件实施方案,图15控制模块以及土14处理模块可实施在一个或一个以上专用集成电路(ASIC)、数字信号处理器(DSP)、可编程逻辑装置(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器、电子装置、其它经设计以执行本文所描述的功能的电子单元或其组合内。
对于固件和/或软件实施方案,可用执行本文描述的功能的模块(例如,过程、步骤、流程等)来实施所述技术。固件和/或软件代码可存储在存储器中并由处理器执行。存储器可实施在处理器内或处理器外部。
本发明能有多种不同形式的具体实施方式,上面以图7-图15为例结合附图对本发明的技术方案作举例说明,这并不意味着本发明所应用的具体实例只能局限在特定的流程或实施例结构中,本领域的普通技术人员应当了解,上文所提供的具体实施方案只是多种优选用法中的一些示例,任何通过将存储节点资源映射为本地块设备,并将对本地块设备的访问映射为对应存储节点访问的实施方式均应在本发明技术方案所要求保护的范围之内。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (14)

1.一种数据访问方法,其特征在于,包括:
接收包含块编号标识的访问请求;
预建立的本地块单元根据所述块编号标识查找所述本地块单元的块编号与提供存储服务的存储节点资源信息的对应关系,获得所述块编号标识对应的存储节点位置以及块数据标识;
所述本地块单元根据所述块编号标识对应的存储节点位置以及块数据标识,向所述存储节点发送块数据访问请求;
其中,所述存储节点资源信息包括提供存储服务的存储节点位置信息及所述存储节点的块数据标识;
接收包含块编号标识的访问请求之前还包括:
向控制节点发送包含存储容量大小的块数据开通请求;
所述控制节点根据存储节点的存储资源状态信息和/或所述块数据开通请求的客户节点位置信息,分配所述存储容量大小对应的存储节点资源信息,客户节点接收所述存储节点资源信息;
根据所述存储节点资源信息建立所述本地块单元。
2.根据权利要求1所述的数据访问方法,其特征在于,接收包含块编号标识的访问请求之前包括:
通过块设备接口接收包含块编号标识的访问请求;和/或
通过文件/数据库***接口接收文件名/表数据访问请求,所述文件/数据库***接口解析所述文件名/表数据对应的块编号标识,向所述本地块单元发送包含所述块编号标识的访问请求。
3.根据权利要求1所述的数据访问方法,其特征在于,向所述存储节点发送块数据访问请求之前还包括:
对块数据访问请求进行预处理,所述预处理包括以下任意组合:
在所述块数据访问不大于预设访问数量或时间阈值时,缓存所述块数据访问;对块数据访问进行缓存及进行排序;根据块数据访问特点,确定是否预读未请求访问的块数据;打包压缩所述块数据访问。
4.根据权利要求1-3任一项所述的数据访问方法,其特征在于,所述本地块单元为提供分布式存储服务的虚拟本地块设备驱动或为提供应用服务的虚拟机。
5.根据权利要求4所述的数据访问方法,其特征在于,还包括:
当所述虚拟机销毁后,向控制节点发送包含客户节点标识的存储节点资源信息的获取请求;
接收所述控制节点根据所述客户节点标识返回的存储节点资源信息。
6.一种客户节点,其特征在于,包括:
一至多个本地块单元,其中,所述本地块单元包括:
接口模块,用于接收包含块编号标识的访问请求;
存储模块,用于存储本地块单元的块编号与提供存储服务的存储节点资源信息的对应关系;所述存储节点资源信息包括提供存储服务的存储节点信息及所述存储节点的块数据标识;
处理模块,用于根据所述块编号标识查找所述存储模块,获得所述块编号标识对应的存储节点位置以及块数据标识,向所述存储节点发送块数据访问请求;
所述客户节点还包括:通信模块,用于通过网络向控制节点申请块数据开通请求,并接收控制节点分配的存储节点资源信息。
7.根据权利要求6所述的客户节点,其特征在于,所述接口模块包括:
直接访问子模块,用于通过块设备接口接收包含块编号标识的访问请求;和/或
***访问子模块,用于通过文件/数据库***接口接收文件名/表数据访问请求,解析所述文件名/表数据对应的块编号标识,向所述处理模块发送包含所述块编号标识的访问请求。
8.根据权利要求6或7所述的客户节点,其特征在于,所述处理模块还包括:
块访问处理子模块,用于对所述块数据访问进行预处理,所述预处理包括以下任意组合:在所述块数据访问不大于预设访问数量或时间阈值时,缓存所述块数据访问;对缓存的所述块数据访问进行排序;根据块数据访问特点,确定是否预读未请求访问的块数据;打包压缩所述块数据访问。
9.根据权利要求6或7所述的客户节点,其特征在于,所述本地块单元为提供分布式存储服务的虚拟本地块设备驱动或提供应用服务的虚拟机。
10.一种存储控制节点,其特征在于,包括:
接口模块,用于接收块数据开通/释放请求;
控制模块,用于根据一至多个存储节点的存储资源状态信息和/或接收的所述块数据开通请求的客户节点位置信息,分配所述块数据开通请求对应的存储节点资源信息,以使得所述客户节点根据分配的存储节点资源信息建立本地块单元并存储本地块单元的块编号与提供存储服务的存储节点资源信息的对应关系;或者根据所述块数据释放请求释放对应的存储节点资源信息;
存储模块,用于存储一至多个存储节点已分配的存储节点资源信息;
其中,所述存储节点资源信息包括存储节点信息及所述存储节点的块数据标识。
11.根据权利要求10所述的存储控制节点,其特征在于,还包括:
监测模块,用于监测到存储节点失效后,查找所述存储模块中与所述失效的存储节点有相同存储数据的有效存储节点,将所述有效存储节点的存储数据复制到新建立的存储节点。
12.根据权利要求10所述的存储控制节点,其特征在于,所述存储模块还存储客户节点与已分配的存储节点资源信息的对应关系;
所述接口模块进一步接收包含客户节点标识的获取请求;
所述控制模块进一步根据所述客户节点标识从所述存储模块查找对应的存储节点资源信息,并返回所述接口模块。
13.根据权利要求10-12任一项所述的存储控制节点,其特征在于,位于客户节点和一至多个存储节点之间,或者位于所述存储节点上。
14.一种数据存储***,其特征在于,包括权利要求7-9任一项所述的客户节点以及权利要求10-13任一项所述的存储控制节点。
CN201110005099.0A 2011-01-04 2011-01-04 数据访问方法、节点及*** Active CN102594852B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110005099.0A CN102594852B (zh) 2011-01-04 2011-01-04 数据访问方法、节点及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110005099.0A CN102594852B (zh) 2011-01-04 2011-01-04 数据访问方法、节点及***

Publications (2)

Publication Number Publication Date
CN102594852A CN102594852A (zh) 2012-07-18
CN102594852B true CN102594852B (zh) 2016-03-30

Family

ID=46483053

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110005099.0A Active CN102594852B (zh) 2011-01-04 2011-01-04 数据访问方法、节点及***

Country Status (1)

Country Link
CN (1) CN102594852B (zh)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103024053B (zh) * 2012-12-18 2015-11-25 华为技术有限公司 云存储方法、资源调度***、云存储节点及***
CN104040539B (zh) * 2012-12-31 2017-06-06 华为技术有限公司 数据存储方法和装置、数据操作方法、***及接入服务器
CN103366573A (zh) * 2013-07-10 2013-10-23 中兴智能交通(无锡)有限公司 一种基于云计算的车辆行驶信息追踪方法及***
CN104754021B (zh) * 2013-12-31 2018-04-13 伊姆西公司 用于促进对分布式存储***中的数据的访问的装置和方法
CN104184812B (zh) * 2014-08-20 2017-08-11 霍尔果斯智融未来信息科技有限公司 一种基于私有云的多点数据传输方法
CN104239517B (zh) * 2014-09-17 2018-05-15 新华三技术有限公司 一种分布式存储***的存储对象访问方法和装置
CN105446794A (zh) * 2014-09-30 2016-03-30 北京金山云网络技术有限公司 一种基于虚拟机的磁盘操作方法、装置及***
CN105745900B (zh) * 2014-10-31 2019-06-07 华为技术有限公司 访问文件的方法、分布式存储***和网络设备
CN104360915B (zh) * 2014-10-31 2017-08-01 北京思特奇信息技术股份有限公司 一种基于分布式存储的数据恢复方法及装置
CN104484236B (zh) * 2014-11-28 2017-11-03 曙光云计算集团有限公司 一种ha访问自适应的方法
CN104461736B (zh) * 2014-12-08 2018-11-30 畅捷通信息技术股份有限公司 资源分配与搜索方法、资源分配与搜索***和云服务器
CN104517067B (zh) * 2014-12-30 2017-12-15 华为技术有限公司 访问数据的方法、装置及***
CN106302607B (zh) * 2015-06-05 2019-08-16 腾讯科技(深圳)有限公司 应用于云计算的块存储***及方法
CN105187555B (zh) * 2015-09-29 2019-02-22 北京奇艺世纪科技有限公司 一种消息处理方法、装置及***
CN105704218B (zh) * 2016-01-19 2019-04-05 国家电网公司 云计算平台中数据存储与管理方法
CN107092437B (zh) 2016-02-17 2019-11-22 杭州海康威视数字技术股份有限公司 数据写入、读取方法及装置、云存储***
CN106503058B (zh) * 2016-09-27 2019-01-18 华为技术有限公司 一种数据加载方法、终端和计算集群
CN108156187B (zh) * 2016-12-02 2019-04-09 中科星图股份有限公司 一种云服务***
CN106993022B (zh) * 2016-12-30 2020-03-31 ***股份有限公司 用于集群的标识管理方法、标识服务器及相应的***
CN106850827A (zh) * 2017-02-24 2017-06-13 深圳市中博睿存信息技术有限公司 一种分布式文件***元数据处理方法和装置
CN107346341A (zh) * 2017-07-11 2017-11-14 王焱华 一种大数据的管理方法
CN107562376A (zh) * 2017-08-23 2018-01-09 北京小米移动软件有限公司 数据擦除方法及装置
CN108197159B (zh) * 2017-12-11 2020-07-10 厦门集微科技有限公司 基于分布式文件***的数据读取、写入方法及装置
CN110365719B (zh) * 2018-03-26 2021-10-01 华为技术有限公司 一种数据处理的方法以及相关设备
CN109120709A (zh) * 2018-09-03 2019-01-01 杭州云创共享网络科技有限公司 一种缓存方法、装置、设备及介质
CN109495568B (zh) * 2018-11-19 2021-06-18 北京金山云网络技术有限公司 一种数据获取方法、数据获取装置、服务器及存储介质
US11176054B2 (en) 2019-03-08 2021-11-16 International Business Machines Corporation Host virtual address space for secure interface control storage
US11283800B2 (en) 2019-03-08 2022-03-22 International Business Machines Corporation Secure interface control secure storage hardware tagging
US11182192B2 (en) 2019-03-08 2021-11-23 International Business Machines Corporation Controlling access to secure storage of a virtual machine
US11455398B2 (en) 2019-03-08 2022-09-27 International Business Machines Corporation Testing storage protection hardware in a secure virtual machine environment
US11068310B2 (en) 2019-03-08 2021-07-20 International Business Machines Corporation Secure storage query and donation
CN109977092B (zh) * 2019-03-26 2021-06-08 武汉深之度科技有限公司 一种复制文件的方法和计算设备
CN109831540B (zh) * 2019-04-12 2022-02-11 成都四方伟业软件股份有限公司 分布式存储方法、装置、电子设备及存储介质
CN110413694A (zh) * 2019-08-01 2019-11-05 重庆紫光华山智安科技有限公司 元数据管理方法及相关装置
CN110889121A (zh) * 2019-10-12 2020-03-17 中国平安财产保险股份有限公司 防止数据泄露的方法、服务器及存储介质
WO2021189306A1 (en) * 2020-03-25 2021-09-30 Beijing Didi Infinity Technology And Development Co., Ltd. Write operation in object storage system using enhanced meta structure
CN111881470A (zh) * 2020-07-20 2020-11-03 易通星云(北京)科技发展有限公司 数据访问方法及其装置、计算机可读存储介质
CN112015696B (zh) * 2020-08-21 2024-06-14 北京奇艺世纪科技有限公司 数据访问、数据关系设置方法、装置及存储介质
CN112597173A (zh) * 2021-03-08 2021-04-02 成都虚谷伟业科技有限公司 一种分布式数据库集群***对等处理***及处理方法
CN113419671B (zh) * 2021-05-20 2022-02-18 佛山市禅城区政务服务数据管理局 一种个人数据空间访问控制方法
CN115712660B (zh) * 2022-01-29 2023-05-30 杭州宇信数字科技有限公司 数据存储方法、装置、服务器及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1858748A (zh) * 2006-05-22 2006-11-08 上海怀瑾计算机科技有限公司 一种实现在usb从设备端直接访问usb主设备端文件的方法
CN101094129A (zh) * 2006-06-20 2007-12-26 腾讯科技(深圳)有限公司 一种域名访问方法及客户端
CN101510219A (zh) * 2009-03-31 2009-08-19 成都市华为赛门铁克科技有限公司 文件数据访问方法、装置以及***
CN101751233A (zh) * 2009-12-31 2010-06-23 成都索贝数码科技股份有限公司 存储设备容量的扩展方法及***

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100337218C (zh) * 2005-02-23 2007-09-12 北京邦诺存储科技有限公司 网络存储***中的数据管理方法及其构建的网络存储***
US8255420B2 (en) * 2006-05-23 2012-08-28 Noryan Holding Corporation Distributed storage

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1858748A (zh) * 2006-05-22 2006-11-08 上海怀瑾计算机科技有限公司 一种实现在usb从设备端直接访问usb主设备端文件的方法
CN101094129A (zh) * 2006-06-20 2007-12-26 腾讯科技(深圳)有限公司 一种域名访问方法及客户端
CN101510219A (zh) * 2009-03-31 2009-08-19 成都市华为赛门铁克科技有限公司 文件数据访问方法、装置以及***
CN101751233A (zh) * 2009-12-31 2010-06-23 成都索贝数码科技股份有限公司 存储设备容量的扩展方法及***

Also Published As

Publication number Publication date
CN102594852A (zh) 2012-07-18

Similar Documents

Publication Publication Date Title
CN102594852B (zh) 数据访问方法、节点及***
JP6607901B2 (ja) スケーラブル分散ストレージアーキテクチャ
US10521135B2 (en) Data system with data flush mechanism
US7269631B2 (en) Architecture for parallel distributed table driven I/O mapping
US11010064B2 (en) Data system with flush views
CN101997918B (zh) 异构san环境中的海量存储资源按需分配的实现方法
US10558565B2 (en) Garbage collection implementing erasure coding
US11074129B2 (en) Erasure coded data shards containing multiple data objects
KR100490723B1 (ko) 파일 레벨 스트라이핑 장치 및 방법
US11137940B2 (en) Storage system and control method thereof
US8856409B2 (en) Systems and methods for compression of data for block mode access storage
US8533420B2 (en) Thin provisioned space allocation
US20090019251A1 (en) Dynamic storage pools with thin provisioning
CN102405460A (zh) 虚拟存储***及其运行方法
CN103237046A (zh) 支持混合云存储应用的分布式文件***及实现方法
CN103037004A (zh) 云存储***操作的实现方法和装置
CN104023058A (zh) 一种存储资源的管理和分配方法和***
US20220083229A1 (en) Data storage system with configurable durability
CN102982182A (zh) 一种数据存储规划方法及装置
CN109871365A (zh) 一种分布式文件***
CN112988468A (zh) 虚拟化操作***使用Ceph的方法和计算机可读存储介质
CN105068896B (zh) 基于raid备份的数据处理方法及装置
US8868970B2 (en) Object based storage system and method of operating thereof
US11681443B1 (en) Durable data storage with snapshot storage space optimization
Brinkmann et al. Storage management as means to cope with exponential information growth

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant