CN114327283B - 分布式存储系统内的数据迁移方法及分布式存储系统 - Google Patents
分布式存储系统内的数据迁移方法及分布式存储系统 Download PDFInfo
- Publication number
- CN114327283B CN114327283B CN202111653946.4A CN202111653946A CN114327283B CN 114327283 B CN114327283 B CN 114327283B CN 202111653946 A CN202111653946 A CN 202111653946A CN 114327283 B CN114327283 B CN 114327283B
- Authority
- CN
- China
- Prior art keywords
- data
- file
- client
- information
- data block
- 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
- 238000000034 method Methods 0.000 title claims abstract description 57
- 230000005012 migration Effects 0.000 title claims abstract description 50
- 238000013508 migration Methods 0.000 title claims abstract description 50
- 230000008569 process Effects 0.000 claims abstract description 28
- 238000004364 calculation method Methods 0.000 claims description 5
- 238000005516 engineering process Methods 0.000 description 8
- 239000004744 fabric Substances 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000012790 confirmation Methods 0.000 description 4
- 230000008676 import Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Abstract
本发明提供一种分布式存储系统内的数据迁移方法和分布式存储系统,该方法包括:迁移方向为从数据节点到客户端的第一数据迁移过程;第一数据迁移过程包括:客户端向元数据节点发送请求以获取第一元数据信息,客户端根据接收到的第一元数据信息对第一文件系统中的数据相关信息进行更新,根据更新后的数据相关信息计算出第一列表中各个数据块文件在客户端对应的写入位置信息;客户端将第一列表中的每一个数据块文件的标识和对应的写入位置信息发送给该数据块文件当前所在的数据节点,数据节点将该数据块文件写入到客户端磁盘的对应位置中,在写入完成后向客户端返回写入完成的消息。本发明可以提高客户端磁盘和数据节点之间的数据迁移效率。
Description
技术领域
本说明书一个或多个实施例涉及分布式存储技术领域,尤其涉及一种分布式存储系统内的数据迁移方法及分布式存储系统。
背景技术
客户端使用的传统的本地文件系统拥有很强大的功能和复杂的索引逻辑,如ext4。参见图1,现有技术中在分布式存储系统HDFS集群的客户端和数据节点之间进行数据传输时,例如,数据从数据节点的磁盘导入到客户端磁盘的过程中,需要数据节点的本地文件系统Ext4将其磁盘Disk上的数据通过网卡NIC、网络、客户端的网卡NIC后,进入客户端,进而利用客户端的本地文件系统存储到磁盘中。
但是在分布式存储系统之间进行数据迁移的过程中仅用到文件系统中的一部分功能,例如,读取、写入等简单操作,这就使得本地文件系统会产生一些不必要的索引开销对数据的读写性能产生影响。
发明内容
本说明书一个或多个实施例描述了一种分布式存储系统内的数据迁移方法及分布式存储系统。
根据第一方面,提供了一种分布式存储系统内的数据迁移方法,分布式存储系统包括客户端、元数据节点和多个数据节点,所述客户端上安装有第一文件系统;所述方法包括:迁移方向为从所述数据节点到所述客户端的第一数据迁移过程;其中,所述第一数据迁移过程包括:
所述客户端向所述元数据节点发送请求以获取第一元数据信息,所述第一元数据信息包括待迁移文件的标识、组成所述待迁移文件的各个数据块文件的标识所形成的第一列表以及各个数据块文件当前所在的数据节点的标识;
所述客户端根据接收到的所述第一元数据信息对所述第一文件系统中的数据相关信息进行更新,并根据更新后的数据相关信息计算出所述第一列表中各个数据块文件在所述客户端对应的写入位置信息;
所述客户端将所述第一列表中的每一个数据块文件的标识和对应的写入位置信息发送给该数据块文件当前所在的数据节点,以使所述数据节点根据所述写入位置信息将该数据块文件写入到所述客户端磁盘的对应位置中,并在写入完成后向所述客户端返回写入完成的消息。
根据第二方面,提供了一种分布式存储系统,包括客户端、元数据节点和多个数据节点,所述客户端上安装有第一文件系统;所述客户端用于执行:迁移方向为从所述数据节点到所述客户端的第一数据迁移过程;
其中,所述客户端具体包括:
第一信息获取模块,用于向所述元数据节点发送请求以获取第一元数据信息,所述第一元数据信息包括待迁移文件的标识、组成所述待迁移文件的各个数据块文件的标识所形成的第一列表以及各个数据块文件当前所在的数据节点的标识;
第一位置计算模块,用于根据接收到的所述第一元数据信息对所述第一文件系统中的数据相关信息进行更新,并根据更新后的数据相关信息计算出所述第一列表中各个数据块文件在所述客户端对应的写入位置信息;
第一信息发送模块,用于将所述第一列表中的每一个数据块文件的标识和对应的写入位置信息发送给该数据块文件当前所在的数据节点,以使所述数据节点根据所述写入位置信息将该数据块文件写入到所述客户端磁盘的对应位置中,并在写入完成后向所述客户端返回写入完成的消息。
本发明实施例提供的分布式存储系统内的数据迁移方法及分布式存储系统,客户端向元数据节点发送请求,这样元数据节点在接收到该请求时会返回客户端第一元数据信息,而第一元数据信息中包含待迁移文件的标识、组成待迁移文件所需的各个数据块文件的标识以及各个数据块文件目前所在的数据节点的标识,这样客户端就会得知需要对哪个或哪些文件进行迁移,而文件中包含哪些数据块文件,以及这些数据块文件目前存储在哪个数据节点上。客户端根据第一元数据信息对第一文件系统进行信息更新,而第一文件系统中存储的是客户端磁盘上的数据块文件的相关信息,对这些相关信息进行更新后,得到的是完成写入操作之后的相关信息。即先对相关信息进行更新,然后再进行数据块的写入。在进行信息更新之后,可以计算出每一个数据块文件应该被写入的位置,即一个数据块文件应该被写入在客户端磁盘上的位置的起始偏移量,将起始偏移量作为写入位置信息。根据每一个数据块文件当前所在的数据节点的标识,客户端将该数据块文件对应的写入位置信息和写入请求发送至该数据节点,该数据节点在接收到写入请求后,会根据写入位置信息将自身节点中存储的该数据块文件写入到客户端磁盘上的对应位置,该数据节点在写入完成后,会告知客户端已经写入完成的消息。由于该过程可以实现多个数据节点同时进行数据写入操作,而且在写入过程中不需要再经过第一文件系统,而是直接写入到客户端的磁盘上,因此可以大大减少不必要的开销,提高数据迁移的速度,实现高效数据迁移。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中在分布式存储系统HDFS集群的客户端和数据节点之间进行数据传输时的流程示意图;
图2是本发明实施例中数据迁移方法对应的系统架构图;
图3是本发明实施例中将数据从HDFS集群的数据节点导出至客户端的大致流程图;
图4是本发明实施例中将数据从HDFS集群的数据节点导出至客户端的具体流程图;
图5是本发明实施例中将数据从客户端磁盘导入数据节点的大致流程图;
图6是本发明实施例中将数据从客户端磁盘导入数据节点的具体流程图;
图7是本发明实施例中第一文件系统所管理的信息的布局示意图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
第一方面,本发明实施例提供一种分布式存储系统内的数据迁移方法,分布式存储系统包括客户端、元数据节点和多个数据节点,所述客户端上安装有第一文件系统;所述方法包括:迁移方向为从所述数据节点到所述客户端的第一数据迁移过程;
其中,所述第一数据迁移过程包括:
S1、所述客户端向所述元数据节点发送请求以获取第一元数据信息,所述第一元数据信息包括待迁移文件的标识、组成所述待迁移文件的各个数据块文件的标识所形成的第一列表以及各个数据块文件当前所在的数据节点的标识;
S2、所述客户端根据接收到的所述第一元数据信息对所述第一文件系统中的数据相关信息进行更新,并根据更新后的数据相关信息计算出所述第一列表中各个数据块文件在所述客户端对应的写入位置信息;
S3、所述客户端将所述第一列表中的每一个数据块文件的标识和对应的写入位置信息发送给该数据块文件当前所在的数据节点,以使所述数据节点根据所述写入位置信息将该数据块文件写入到所述客户端磁盘的对应位置中,并在写入完成后向所述客户端返回写入完成的消息。
也就是说,客户端向元数据节点发送请求,这样元数据节点在接收到该请求时会返回客户端第一元数据信息,而第一元数据信息中包含待迁移文件的标识、组成待迁移文件所需的各个数据块文件的标识以及各个数据块文件目前所在的数据节点的标识,这样客户端就会得知需要对哪个或哪些文件进行迁移,而文件中包含哪些数据块文件,以及这些数据块文件目前存储在哪个数据节点上。客户端根据第一元数据信息对第一文件系统进行信息更新,而第一文件系统中存储的是客户端磁盘上的数据块文件的相关信息,对这些相关信息进行更新后,得到的是完成写入操作之后的相关信息。即先对相关信息进行更新,然后再进行数据块的写入。在进行信息更新之后,可以计算出每一个数据块文件应该被写入的位置,即一个数据块文件应该被写入在客户端磁盘上的位置的起始偏移量,将起始偏移量作为写入位置信息。根据每一个数据块文件当前所在的数据节点的标识,客户端将该数据块文件对应的写入位置信息和写入请求发送至该数据节点,该数据节点在接收到写入请求后,会根据写入位置信息将自身节点中存储的该数据块文件写入到客户端磁盘上的对应位置,该数据节点在写入完成后,会告知客户端已经写入完成的消息。由于该过程可以实现多个数据节点同时进行数据写入操作,而且在写入过程中不需要经过第一文件系统,而是直接写入到客户端的磁盘上,因此可以大大提高数据迁移的速度,实现高效数据迁移。
参见图2,本发明实施例中,客户端上安装有第一文件系统LiFS,数据节点上安装有第二文件系统Ext4,图2示出的是数据从DataNode到客户端的过程。在向客户端的磁盘写入数据块文件时,客户端会从元数据节点中获取到第一元数据信息,然后计算出每一个数据块文件的写入地址信息,将写入地址信息发送给对应的数据节点,这样数据节点就会通过本地的第二文件系统将其磁盘中的数据块文件通过网络写入到客户端磁盘中,写入过程不需要经过客户端的第一文件系统。
参见图3,为本发明实施例中的数据从HDFS集群的数据节点导出至客户端的大致流程图,HDFS集群底层使用支持NVMe over Fabric技术的存储介质,客户端上安装有第一文件系统LiFS。第一文件系统会计算出各个数据块文件应该被写入到客户端磁盘中的位置的起始偏移量。客户端和DataNode进行通信时,将数据块文件对应的写入位置信息发送给对应的DataNode,DataNode会使用NVMe over Fabric技术将数据块文件直接写入客户端中的存储介质中,即客户端磁盘中。
如图4所示,为本发明实施例中将数据从HDFS集群的数据节点导出至客户端的具体流程图。具体的顺序如下:
(1)客户端与NameNode进行通信,发送需要获取数据的请求。NameNode对客户端发来的请求进行分析,返回客户端需要的第一元数据信息;
(2)客户端本地的第一文件系统LiFS根据接收到的第一元数据信息后,对第一文件系统中的数据相关信息(例如,block info、bitmap、file info,具体见下文)进行更新,并计算出组成待迁移文件的每一个数据块的写入位置信息;
(3)客户端将数据块文件的标识及其写入位置信息发送至存储该数据块文件的DataNode;
(4)DataNode收到客户端发送的数据块文件的标识和写入位置信息后,使用NVMeover Fabric技术将本地存储的该标识对应的数据块文件写入到客户端磁盘中的对应位置上,每个DataNode写完数据之后都需要向客户端发送数据已写完的确认信息。直到客户端接收到所有的数据节点返回的数据已写完的确认信息后,数据导出工作完成。
在具体实施时,本发明实施例提供的方法还可以包括:迁移方向为所述客户端到所述数据节点的第二数据迁移过程。
其中,所述第二数据迁移过程包括:
S4、所述客户端计算待迁移文件中各个数据块文件的读取位置信息,将所述待迁移文件对应的第二元数据信息发送至所述元数据节点,所述第二元数据信息包括待迁移文件的标识以及组成待迁移文件的各个数据块文件的标识;
S5、所述元数据节点根据所述第二元数据信息对所述元数据节点中元数据进行更新,根据更新后的元数据生成第二列表,并将所述第二列表发送至所述客户端;所述第二列表包括针对所述待迁移文件为各个数据节点分配的各个数据块文件的标识;
S6、所述客户端在接收到所述第二列表后,将每一个数据块对应的读取位置信息发送至对应的数据节点,以使所述数据节点根据所述读取位置信息将该数据块文件读取至自身节点中,并在读取完成后向所述客户端返回读取完成的消息。
也就是说,在第二数据迁移过程中,数据块文件是存储在客户端磁盘上的,因此客户端的第一文件系统中存储有这些数据块文件的相关信息,利用这些相关信息可以计算出待迁移文件中每一个数据块的位置,即每一个数据块在客户端磁盘中位置的起始偏移量,将该起始偏移量作为读取位置信息。然后客户端将待迁移文件的标识以及组成该待迁移文件中的各个数据块文件的标识发送给元数据节点。元数据节点在接收到这些信息后,会对元数据节点中的元数据进行更新。在更新前,元数据节点中的元数据为每一个数据节点中目前已经存储的各个数据块文件的标识,也就是说每一个数据节点中目前存储有哪些数据块文件。在更新后,元数据节点中的元数据为每一个数据节点在读取操作后应该存储的各个数据块文件的标识,即在读取操作后每一个数据节点应该会存储有哪些数据块文件。元数据节点在进行信息更新后,便可以生成第二列表,第二列表中包含组成待迁移文件中的各个数据块文件对应的数据节点的标识,也就是说,根据第二列表可以得知,待迁移文件中的每一个数据块文件应该被存储到哪一个数据节点上。当客户端接收到元数据节点发送来的第二列表后,将每一个数据块文件对应的读取位置信息发送给对应的数据节点,这样该数据节点就会根据读取位置信息从客户端磁盘上进行数据块文件的读取,在读取之后存储在自身节点中。
如图5所示,为本发明实施例中将数据从客户端磁盘导入数据节点磁盘的大致流程图。客户端本地的第一文件系统LiFS中存放着每个数据块文件的信息,例如、数据块文件的大小、数据块文件的个数以及具体的标识ID等信息,客户端在与NameNode进行通信时将待迁移文件中的各个数据块文件的相关信息发送给NameNode,NameNode获取信息后更新自身节点上的元数据,然后根据更新后的元数据生成第二列表发送给客户端,客户端通过本地的第一文件系统LiFS计算每一个数据块文件在磁盘中的起始偏移量作为读取位置信息。客户端与对应的DataNode通信,将需要获取的每个数据块文件对应的读取位置信息发送给DataNode,DataNode使用NVMe over Fabric技术直接从Client的磁盘中获取数据块文件。
如图6所示,为本发明实施例中将数据从客户端磁盘中导入数据节点中的具体流程图,具体过程如下:
(1)客户端从本地的第一文件系统LiFS获取相关信息,进而根据这些信息计算出每一个数据块文件的起始偏移量作为读取位置信息;
(2)客户端与NameNode建立通信,将待迁移文件中各个数据块文件的相关信息发送给NameNode;
(3)NameNode接收到客户端发来的数据后,对自身节点上的元数据metadata进行更新,并返回第二列表给客户端;
(4)客户端在接收到第二列表后,将数据块文件的标识和对应的读取位置信息发送给对应的DataNodes;
(5)DataNodes使用NVMe over Fabric技术直接从客户端磁盘中相应的位置上读取数据块文件,并存储到自身节点的存储介质中。
(6)每个DataNode读取完数据块文件后,向客户端发送确认导入完成信息,直至所有DataNode都发送完确认信息,数据导入完成。
下面对客户端上的第一文件系统进行介绍:
所述第一文件系统用于管理所述数据相关部分,数据相关部分用于存储所述数据相关信息;所述数据相关部分包括超级块、数据块信息、位图和文件信息;其中:所述超级块中用于存储客户端的磁盘信息,所述磁盘信息中包括磁盘的大小、存储的数据块文件的总数量和第一个数据块文件的偏移地址;所述位图中用于存储客户端的磁盘的可用空间信息和已用空间信息;所述数据块信息中用于存储每一个数据块的标识、长度、创建时间和更新时间;所述文件信息中用于存储文件和数据块文件之间的对应关系。
也就是说,第一文件系统可以用于对一些相关信息进行管理,例如,对客户端的磁盘信息、磁盘的可用空间信息和已用空间信息、对各个数据块的信息、文件和数据块之间的关系等进行管理。
除此之外,本发明实施例中第一文件系统还可以用于管理数据部分,所述数据部分包含多个块,每一个块用于存储一个数据块文件,每一个数据块文件包含元数据和数据。
也就是说,第一文件系统还可以存储多个数据块文件,而每一个数据块文件中包括元数据和数据本身。
如图7所示,本发明实施例中第一文件系统所管理的数据相关信息和数据信息的示意图。第一文件系统LiFS可以更加高效的存储和读写数据节点中的数据块文件。而数据块文件中包含两部分:一种是数据本身,其命名blk加数字的形式,另一种是元数据,具体为数据块长度、校验和以及时间戳等信息,其命名特点是有mate后缀。数据块文件存储在数据部分,而数据相关信息存储在数据相关部分,数据相关部分分为四部分:超级块(即SuperBlock,缩写为sb)、位图(即Bitmap)、数据块信息(即Block Info,缩写为bi)、文件信息(即File Info)。其中:
超级块(即Super Block)中存放了客户端磁盘的基本信息,包括磁盘大小、数据块文件的大小、块的总数量、第一个数据块文件的偏移地址等信息。
位图(即Bitmap)是用来记录磁盘中可用空间和已用空间的信息,通过位图可以获得的两个列表,一个列表中存放的是磁盘中已被占用的数据块文件的信息,另一个列表中存放的是磁盘中可用的数据块文件的信息,列表中的数据块data_block_id是数据块文件在磁盘中的编号。
数据块信息(即Block Info)中存储着每个数据块文件的标识(即block_id)、磁盘中存储的数据块文件的长度,数据块文件的创建时间和更新时间等信息,在每次写入新的数据块文件或者修改数据块文件时block info中的信息也会被修改。图7中的csm是指元数据。
文件信息(即File Info)中记录着文件和数据块文件的对应关系,通常一个文件对应许多个数据块文件。
数据部分包含多个块,每一个块中存放一个数据块文件,而一个数据块文件中包含数据本身和后缀有meta的元数据,由于数据本身和元数据的后缀是不同的,可以通过后缀区分出是数据本身还是元数据。
在具体实施时,为了在第一文件系统中更加便捷、简单的获取相关信息,可以设置一个结构体。具体的,在第一文件系统LiFS挂载之后,会在内存中建立一个file结构体,即下文中的预设结构体。file结构体用来记录已经写入到客户端磁盘中的数据块文件的信息,例如,数据块文件的名称、标识、在客户端磁盘中的起始偏移量、长度等信息,减少第一文件系统在读写时候对磁盘的操作次数,可以提高索引效率。
也就是说,在本发明实施例中所述第一文件系统可以用于载挂载之后在内存中建立一个预设结构体,所述预设结构体用于存储写入所述客户端的磁盘的各个数据块文件的信息,所述信息包括每一个数据块文件的名称、标识、在客户端磁盘上的起始偏移量以及长度。
在建立预设结构体的基础上,S4中所述客户端计算待迁移文件中各个数据块文件的读取位置信息,可以包括:所述客户端从所述预设结构体中获取每一个数据块文件的起始偏移量,将所述起始偏移量作为该数据块文件对应的读取位置信息。
也就是说,如果建立了预设结构体,就不必在第一文件系统中获取相关的信息来计算读取位置信息,而是可以从预设结构体中直接获取数据块文件的起始偏移量,将起始偏移量作为读取位置信息即可,这样可以减少对磁盘的操作次数,提高效率。
可理解的是,本发明实施例提供的方法应用在分布式存储系统的内部进行数据迁移的场景中。分布式存储系统具有高性能、高可用性和高可扩展等特性,已成为大数据时代主流的底层存储系统。可以将实际产生的大量数据导入到分布式存储系统中,例如,大型科学仪器(例如,风洞实验)或车载系统产生的海量数据需要一次性导入分布式存储系统。风洞实验一次产生的数据量可达TB级,车载系统累计的数据也在数百GB。也可以将分布式存储系统中的数据导出至系统外部,例如,互联网企业通过爬虫、日志分析等方法累积的数据,数据产生速度较慢,但积累的数据量大。这些数据需要导出至其他系统用于备份或分析时速度很慢。即使现在网速已提高很多,城市间的数据传输仍需耗费较长时间。以4TB数据为例,传输速率达到5MB/s时,仍需要将近10天才能传输完成。
本发明实施例提供的数据迁移方法适用于分布式存储系统内部的高速数据导入和导出方法,是一种新的数据传输机制,数据节点在读取或写入客户端磁盘中的数据时,例如,写入操作,客户端在获取元数据信息后,根据第一文件系统中的数据布局方式,通知各个数据节点直接将自身节点中的数据块文件写入到客户端磁盘中,在写入过程中不必再经过第一文件系统,可以大大提高数据迁移的效率。
其中,第一文件系统在本发明实施例中的命名为LiFS(即Li filesystem),LiFS的存储逻辑是专门为了存储分布式存储系统的数据块文件所设计,其通过用户空间文件系统Fuse(即filesystem in userspace)提供的接口来实现所需要的功能。与ext4相比,第一文件系统没有冗余的功能和索引逻辑,只针对分布式存储系统中数据块文件的高效存储和读取。第一文件系统是一个只用于存储数据块文件的文件系统,其不能存储数据块文件以外的文件或者目录。在对客户端磁盘进行格式化时根据LiFS设计的索引关系,对磁盘进行逻辑分区并将磁盘信息存储在超级块中。
可理解是,Fuse在读取或写入文件时,可以将数据块文件切分成小块进行操作的。客户端在写入或读取数据块文件时会先判断该文件是否已经存在,如写入的时候已经存在可以追加写,读取的时候已经存在就直接读取数据。
本发明实施例在数据迁移的过程中,使用数据节点直接写入客户端磁盘的方法(如使用NVMe over Fabric技术)减少不必要的开销,具体应用于数据在客户端的磁盘和数据节点间的传输。数据在客户端和DataNode间进行传输的时候,DataNode可以使用NVMeover Fabric技术直接将数据写入磁盘中的相应位置,或者将数据从磁盘的相应位置读取出来,来实现数据的导入和导出。其中,数据在磁盘的位置可以由上述的第一文件系统LiFS根据数据块的信息计算得出。
第二方面,本发明实施例提供一种分布式存储系统,该系统包括客户端、元数据节点和多个数据节点,所述客户端上安装有第一文件系统;所述客户端用于执行:迁移方向为从所述数据节点到所述客户端的第一数据迁移过程;
其中,所述客户端具体包括:
第一信息获取模块,用于向所述元数据节点发送请求以获取第一元数据信息,所述第一元数据信息包括待迁移文件的标识、组成所述待迁移文件的各个数据块文件的标识所形成的第一列表以及各个数据块文件当前所在的数据节点的标识;
第一位置计算模块,用于根据接收到的所述第一元数据信息对所述第一文件系统中的数据相关信息进行更新,并根据更新后的数据相关信息计算出所述第一列表中各个数据块文件在所述客户端对应的写入位置信息;
第一信息发送模块,用于将所述第一列表中的每一个数据块文件的标识和对应的写入位置信息发送给该数据块文件当前所在的数据节点,以使所述数据节点根据所述写入位置信息将该数据块文件写入到所述客户端磁盘的对应位置中,并在写入完成后向所述客户端返回写入完成的消息。
在一些实施例中,所述客户端还用于执行:迁移方向为所述客户端到所述数据节点的第二数据迁移过程;其中,所述客户端还具体包括:
第二位置计算模块,用于计算待迁移文件中各个数据块文件的读取位置信息,将所述待迁移文件对应的第二元数据信息发送至所述元数据节点,以使所述元数据节点根据所述第二元数据信息对所述元数据节点中元数据进行更新,根据更新后的元数据生成第二列表,并将所述第二列表发送至所述客户端;所述第二元数据信息包括待迁移文件的标识以及组成待迁移文件的各个数据块文件的标识;所述第二列表包括针对所述待迁移文件为各个数据节点分配的各个数据块文件的标识;
第二信息发送模块,用于在接收到所述第二列表后,将每一个数据块对应的读取位置信息发送至对应的数据节点,以使所述数据节点根据所述读取位置信息将该数据块文件读取至自身节点中,并在读取完成后向所述客户端返回读取完成的消息。
在一些实施例中,所述第一文件系统用于管理所述数据相关部分,数据相关部分用于存储所述数据相关信息;所述数据相关部分包括超级块、数据块信息、位图和文件信息;其中:所述超级块中用于存储客户端的磁盘信息,所述磁盘信息中包括磁盘的大小、存储的数据块文件的总数量和第一个数据块文件的偏移地址;所述位图中用于存储客户端的磁盘的可用空间信息和已用空间信息;所述数据块信息中用于存储每一个数据块的标识、长度、创建时间和更新时间;所述文件信息中用于存储文件和数据块文件之间的对应关系。
在一些实施例中,所述第一文件系统还用于管理数据部分,所述数据部分包含多个块,每一个块用于存储一个数据块文件,每一个数据块文件包含元数据和数据。
可理解的是,本发明实施例提供的分布式存储系统和上述迁移方法是相对应的,第二方面提供的分布式存储系统中的有关内容的解释、举例、有益效果等内容可以参考第一方面中的相关内容,此处不再赘述。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域技术人员应该可以意识到,在上述一个或至少一个示例中,本发明所描述的功能可以用硬件、软件、挂件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或至少一个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (10)
1.一种分布式存储系统内的数据迁移方法,其特征在于,分布式存储系统包括客户端、元数据节点和多个数据节点,所述客户端上安装有第一文件系统;所述方法包括:迁移方向为从所述数据节点到所述客户端的第一数据迁移过程;其中,所述第一数据迁移过程包括:
所述客户端向所述元数据节点发送请求以获取第一元数据信息,所述第一元数据信息包括待迁移文件的标识、组成所述待迁移文件的各个数据块文件的标识所形成的第一列表以及各个数据块文件当前所在的数据节点的标识;
所述客户端根据接收到的所述第一元数据信息对所述第一文件系统中的数据相关信息进行更新,并根据更新后的数据相关信息计算出所述第一列表中各个数据块文件在所述客户端对应的写入位置信息;
所述客户端将所述第一列表中的每一个数据块文件的标识和对应的写入位置信息发送给该数据块文件当前所在的数据节点,以使所述数据节点根据所述写入位置信息将该数据块文件写入到客户端磁盘的对应位置中,并在写入完成后向所述客户端返回写入完成的消息。
2.根据权利要求1所述的方法,其特征在于,所述方法包括:迁移方向为所述客户端到所述数据节点的第二数据迁移过程;其中,所述第二数据迁移过程包括:
所述客户端计算待迁移文件中各个数据块文件的读取位置信息,将所述待迁移文件对应的第二元数据信息发送至所述元数据节点,所述第二元数据信息包括待迁移文件的标识以及组成待迁移文件的各个数据块文件的标识;
所述元数据节点根据所述第二元数据信息对所述元数据节点中元数据进行更新,根据更新后的元数据生成第二列表,并将所述第二列表发送至所述客户端;所述第二列表包括针对所述待迁移文件为各个数据节点分配的各个数据块文件的标识;
所述客户端在接收到所述第二列表后,将每一个数据块对应的读取位置信息发送至对应的数据节点,以使所述数据节点根据所述读取位置信息将该数据块文件读取至自身节点中,并在读取完成后向所述客户端返回读取完成的消息。
3.根据权利要求1或2所述的方法,其特征在于,所述第一文件系统用于管理数据相关部分,数据相关部分用于存储所述数据相关信息;所述数据相关部分包括超级块、数据块信息、位图和文件信息;其中:
所述超级块中用于存储客户端的磁盘信息,所述磁盘信息中包括磁盘的大小、存储的数据块文件的总数量和第一个数据块文件的偏移地址;所述位图中用于存储客户端的磁盘的可用空间信息和已用空间信息;所述数据块信息中用于存储每一个数据块的标识、长度、创建时间和更新时间;所述文件信息中用于存储文件和数据块文件之间的对应关系。
4.根据权利要求3所述的方法,其特征在于,所述第一文件系统还用于管理数据部分,所述数据部分包含多个块,每一个块用于存储一个数据块文件,每一个数据块文件包含元数据和数据。
5.根据权利要求2所述的方法,其特征在于,所述第一文件系统用于载挂载之后在内存中建立一个预设结构体,所述预设结构体用于存储写入所述客户端的磁盘的各个数据块文件的信息,所述信息包括每一个数据块文件的名称、标识、在客户端磁盘上的起始偏移量以及长度。
6.根据权利要求5所述的方法,其特征在于,所述客户端计算待迁移文件中各个数据块文件的读取位置信息,包括:
所述客户端从所述预设结构体中获取每一个数据块文件的起始偏移量,将所述起始偏移量作为该数据块文件对应的读取位置信息。
7.一种分布式存储系统,其特征在于,包括客户端、元数据节点和多个数据节点,所述客户端上安装有第一文件系统;所述客户端用于执行:迁移方向为从所述数据节点到所述客户端的第一数据迁移过程;
其中,所述客户端具体包括:
第一信息获取模块,用于向所述元数据节点发送请求以获取第一元数据信息,所述第一元数据信息包括待迁移文件的标识、组成所述待迁移文件的各个数据块文件的标识所形成的第一列表以及各个数据块文件当前所在的数据节点的标识;
第一位置计算模块,用于根据接收到的所述第一元数据信息对所述第一文件系统中的数据相关信息进行更新,并根据更新后的数据相关信息计算出所述第一列表中各个数据块文件在所述客户端对应的写入位置信息;
第一信息发送模块,用于将所述第一列表中的每一个数据块文件的标识和对应的写入位置信息发送给该数据块文件当前所在的数据节点,以使所述数据节点根据所述写入位置信息将该数据块文件写入到客户端磁盘的对应位置中,并在写入完成后向所述客户端返回写入完成的消息。
8.根据权利要求7所述的系统,其特征在于,所述客户端还用于执行:迁移方向为所述客户端到所述数据节点的第二数据迁移过程;
其中,所述客户端还具体包括:
第二位置计算模块,用于计算待迁移文件中各个数据块文件的读取位置信息,将所述待迁移文件对应的第二元数据信息发送至所述元数据节点,以使所述元数据节点根据所述第二元数据信息对所述元数据节点中元数据进行更新,根据更新后的元数据生成第二列表,并将所述第二列表发送至所述客户端;所述第二元数据信息包括待迁移文件的标识以及组成待迁移文件的各个数据块文件的标识;所述第二列表包括针对所述待迁移文件为各个数据节点分配的各个数据块文件的标识;
第二信息发送模块,用于在接收到所述第二列表后,将每一个数据块对应的读取位置信息发送至对应的数据节点,以使所述数据节点根据所述读取位置信息将该数据块文件读取至自身节点中,并在读取完成后向所述客户端返回读取完成的消息。
9.根据权利要求7或8所述的系统,其特征在于,所述第一文件系统用于管理数据相关部分,所述数据相关部分用于存储所述数据相关信息;所述数据相关部分包括超级块、数据块信息、位图和文件信息;其中:
所述超级块中用于存储客户端的磁盘信息,所述磁盘信息中包括磁盘的大小、存储的数据块文件的总数量和第一个数据块文件的偏移地址;所述位图中用于存储客户端的磁盘的可用空间信息和已用空间信息;所述数据块信息中用于存储每一个数据块的标识、长度、创建时间和更新时间;所述文件信息中用于存储文件和数据块文件之间的对应关系。
10.根据权利要求9所述的系统,其特征在于,所述第一文件系统还用于管理数据部分,所述数据部分包含多个块,每一个块用于存储一个数据块文件,每一个数据块文件包含元数据和数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111653946.4A CN114327283B (zh) | 2021-12-30 | 2021-12-30 | 分布式存储系统内的数据迁移方法及分布式存储系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111653946.4A CN114327283B (zh) | 2021-12-30 | 2021-12-30 | 分布式存储系统内的数据迁移方法及分布式存储系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114327283A CN114327283A (zh) | 2022-04-12 |
CN114327283B true CN114327283B (zh) | 2024-03-12 |
Family
ID=81018649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111653946.4A Active CN114327283B (zh) | 2021-12-30 | 2021-12-30 | 分布式存储系统内的数据迁移方法及分布式存储系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114327283B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103744875A (zh) * | 2013-12-19 | 2014-04-23 | 记忆科技(深圳)有限公司 | 基于文件系统的数据快速迁移方法及系统 |
CN105630808A (zh) * | 2014-10-31 | 2016-06-01 | 北京奇虎科技有限公司 | 基于分布式文件系统的文件读取、写入方法及节点服务器 |
CN106354840A (zh) * | 2016-08-31 | 2017-01-25 | 北京小米移动软件有限公司 | 文件处理方法、装置及分布式文件系统 |
CN106682227A (zh) * | 2017-01-06 | 2017-05-17 | 郑州云海信息技术有限公司 | 基于分布式文件系统的日志数据存储系统及读写方法 |
CN109471836A (zh) * | 2018-11-01 | 2019-03-15 | 浪潮电子信息产业股份有限公司 | 一种数据迁移方法、装置和系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6981005B1 (en) * | 2000-08-24 | 2005-12-27 | Microsoft Corporation | Partial migration of an object to another storage location in a computer system |
US20100070474A1 (en) * | 2008-09-12 | 2010-03-18 | Lad Kamleshkumar K | Transferring or migrating portions of data objects, such as block-level data migration or chunk-based data migration |
US20100070466A1 (en) * | 2008-09-15 | 2010-03-18 | Anand Prahlad | Data transfer techniques within data storage devices, such as network attached storage performing data migration |
-
2021
- 2021-12-30 CN CN202111653946.4A patent/CN114327283B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103744875A (zh) * | 2013-12-19 | 2014-04-23 | 记忆科技(深圳)有限公司 | 基于文件系统的数据快速迁移方法及系统 |
CN105630808A (zh) * | 2014-10-31 | 2016-06-01 | 北京奇虎科技有限公司 | 基于分布式文件系统的文件读取、写入方法及节点服务器 |
CN106354840A (zh) * | 2016-08-31 | 2017-01-25 | 北京小米移动软件有限公司 | 文件处理方法、装置及分布式文件系统 |
CN106682227A (zh) * | 2017-01-06 | 2017-05-17 | 郑州云海信息技术有限公司 | 基于分布式文件系统的日志数据存储系统及读写方法 |
CN109471836A (zh) * | 2018-11-01 | 2019-03-15 | 浪潮电子信息产业股份有限公司 | 一种数据迁移方法、装置和系统 |
Non-Patent Citations (1)
Title |
---|
朱颂 ; .分布式文件系统HDFS的分析.福建电脑.2012,(第04期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN114327283A (zh) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110554834B (zh) | 文件系统数据访问方法和文件系统 | |
CN106407040B (zh) | 一种远程数据复制方法及系统 | |
JP5661188B2 (ja) | ファイルシステム及びデータ処理方法 | |
CN106951375B (zh) | 在存储系统中删除快照卷的方法及装置 | |
CN108255647B (zh) | 一种samba服务器集群下的高速数据备份方法 | |
CN105224546B (zh) | 数据存储和查询方法及设备 | |
CN110647514B (zh) | 一种元数据更新方法、装置及元数据服务器 | |
CN111177143B (zh) | 键值数据存储方法、装置、存储介质与电子设备 | |
CN113407550A (zh) | 数据存储及查询方法、装置及数据库系统 | |
CN113377292B (zh) | 一种单机存储引擎 | |
CN102779088B (zh) | 事务处理设备、事务处理方法及事务处理程序 | |
CN112748877A (zh) | 一种文件的整合上传方法及装置、文件的下载方法及装置 | |
CN104516945A (zh) | 一种基于关系数据库的hdfs元数据存储方法 | |
CN114327283B (zh) | 分布式存储系统内的数据迁移方法及分布式存储系统 | |
CN116501736A (zh) | 一种数据库延迟回放的控制方法以及控制系统 | |
CN116010359A (zh) | 一种基于日志进行数据存储和查询的方法及系统 | |
CN113032408B (zh) | 数据处理方法、系统及设备 | |
CN114281267B (zh) | 分布式存储系统间的数据迁移方法和装置 | |
CN109325023B (zh) | 一种数据处理方法及装置 | |
CN113076298A (zh) | 分布式小文件存储系统 | |
CN114356232B (zh) | 数据读写方法和装置 | |
CN110866068A (zh) | 一种基于hdfs的公告数据存储方法及其装置 | |
CN110569221A (zh) | 具有版本功能的文件系统管理方法、装置、设备和存储介质 | |
WO2021189312A1 (en) | Meta server crash recovery in object storage system using enhanced meta structure | |
WO2021189315A1 (en) | Proxy server crash recovery in object storage system using enhanced meta structure |
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 |