CN103546580A - 一种应用于分布式文件系统的文件副本异步写方法 - Google Patents
一种应用于分布式文件系统的文件副本异步写方法 Download PDFInfo
- Publication number
- CN103546580A CN103546580A CN201310552010.1A CN201310552010A CN103546580A CN 103546580 A CN103546580 A CN 103546580A CN 201310552010 A CN201310552010 A CN 201310552010A CN 103546580 A CN103546580 A CN 103546580A
- Authority
- CN
- China
- Prior art keywords
- data
- data server
- write
- file system
- distributed file
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种应用于分布式文件系统的文件副本异步写方法,该发明应用于分布式文件系统写操作中,由元数据、定时检查、数据存储、写控制和数据服务器序号表五模块组成,该发明以保证数据可靠性为前提,完成用户向分布式文件系统写文件的操作,提高分布式文件系统写操作速率。
Description
技术领域
本发明涉及一种应用于分布式文件系统的文件副本异步写方法,以提高分布式文件系统中写文件的速度,属于计算机科学与技术领域。
背景技术
随着云时代的到来,每天互联网上都会产生数以亿计的数据,这种数量级的数据已经远远超出了一台计算机的存储能力和处理能力。分布式存储系统因为具有海量数据存储、高扩展性、高性能、高可靠性、高可用性的特点,目前正被作为企业海量数据存储方案被业界所广泛讨论和应用。文件包含元数据和数据两部分。元数据包括文件名字、大小、访问权限和数据存储位置等属性信息。数据是真正的文件内容。分布式文件系统采用元数据和数据分离的存储方式,元数据服务器存放元数据,数据服务器机群存放数据。
分布式文件系统采用多文件副本的方式存储文件,即一个文件的数据拥有多个文件副本,分别存储在不同数据服务器里。当一台或多台数据服务器意外宕机时,这个文件的数据依然可用。多文件副本的方式大大提高了分布式文件系统的可靠性。当用户上传一个文件到分布式文件系统,只有数据服务器机群指定的数据服务器都成功写入了文件副本,才会向用户响应上传成功。数据服务器机群一般采用链式写文件副本的方法。如图1所示,用户向第一台数据服务器发送数据包,第一台数据服务器先把数据包转发给下一台数据服务器,再写数据到本地硬盘,然后等待下一台数据服务器的响应。之后的所有数据服务器都是如此,数据包逐个向后传。直到最后一台数据服务器写数据到硬盘后,创建写成功的响应包并发给上一台数据服务器。上一台数据服务器收到响应包并且自己已经写数据到硬盘,才能向上一台数据服务器发送写成功响应包。直到用户收到写成功的响应包,则本次写操作完成。
链式写副本的方式需要所有指定的数据服务器都把文件数据写入到本地硬盘,然后由最后一台数据服务器依次向前一台发送写成功的响应,直到数据服务器。如果有一台数据服务器写失败,则认为是本次写操作失败,这次写操作需要重新执行。虽然这种方式保证所有副本都可以成功写入数据服务器,但只是由于某个数据服务器写副本失败,就要重新写,代价太大。而且每个数据服务器都写数据到本地硬盘,使得写的速度很慢。
为了解决链式写文件副本方法的缺点,本发明提出的一种应用于分布式文件系统的文件副本异步写方法,保留了链式转发数据的方式,减少了数据服务器写数据的时延,提前发送写成功的响应,大大提高了写文件的速度。
发明内容
本发明“一种应用于分布式文件系统的文件副本异步写方法”包括五个模块组成。下面详细介绍一种应用于分布式文件系统的文件副本异步写方法和各个组成部分的内容。
(1)本发明构架
本发明“一种应用于分布式文件系统的文件副本异步写方法”,本发明形成的架构如图2所示,主要由元数据服务器和数据服务器两大部分组成。元数据服务器包括元数据和定时检查两个模块。数据服务器包括数据存储、写控制和数据服务器序号表三个模块。
(2)本发明的五个组成模块
本发明“一种应用于分布式文件系统的文件副本异步写方法”由五个模块组成,它由元数据、定时检查、数据存储、写控制和数据服务器序号表五模块组成。以下就各功能模块及其方法作详细说明。
●元数据模块:存放元数据的模块,元数据包括文件大小、创建时间、修改时间、访问权限和数据存放在哪台数据服务器等元数据信息。
●定时检查模块:每过一段时间,此模块根据元数据信息检查各个数据服务器上的数据是否存在、完整或是最新的数据。如果副本数不满足,则元数据服务器根据一定规则选择数据服务器创建副本,以满足用户要求。它是整个方法的“检查模块”,也是数据可靠性的重要保障。
●数据存储模块:存放真正的数据。
●写控制模块:先把网络接口中收到的数据读到内存,再把数据写到下一台数据服务器的网络接口,最后把内存中的数据写到本地磁盘。
●数据服务器序号表:记录了本次写操作过程中数据服务器的序号。根据自己是第几台数据服务器,决定是否要向前一台数据服务器或客户端发送写成功的响应包。第一台数据服务器保证数据写到硬盘才能发送写成功的响应包。第二台数据服务器保证数据写到内存即可发送写成功的响应包。其他数据服务器只需写数据到本地硬盘和转发数据包给下一台数据服务器,无需返回是否写成功的响应包。
(3)本发明各模块的执行流程
为了说明本发明执行流程,图3详细描述了文件副本异步写的过程,图4描述了定时检查文件副本。两图共同说明了本发明各模块之间的关系和本发明的执行流程,本发明的具体执行流程如下:
客户端挂载到分布式文件系统,在某个目录下进行写文件操作。
副本数要求是n(n>=1),当客户端要向分布式文件系统中写数据时,首先向元数据服务器发送写数据的请求。元数据服务器接到请求后,选取空间使用率较低的n台数据服务器,并把n台数据服务器的IP地址发给客户端。
客户端向数据服务器写数据。客户端根据一定规则把数据服务器的IP地址排序,并与第一台数据服务器建立网络连接,把数据包发给第一台数据服务器。此数据包的内容包括剩余数据服务器的IP地址、数据服务器序号值(客户端默认为0)和真正的数据等信息。第一台数据服务器接收到数据包后,把数据包内容写入内存,将数据包中的数据服务器序号值加1,并把这个值存到数据服务器序号表中,再解析出下一台数据服务器的IP地址,把数据包发送给下一台数据服务器,然后把内存中的数据写到本地磁盘,完成后变为等待第二台数据服务器的状态。第二台数据服务器收到数据包后,把其内容写入内存,然后将数据包中的数据服务器序号值加1,并把这个值存到数据服务器序号表中,立即向前一台数据服务器发送写数据成功的响应包,再向下一台数据服务器发送数据包。第一台数据服务器收到响应包并且已经把数据写到本地磁盘,则向客户端发送写数据成功的响应包。其他数据服务器收到数据包后,都会将数据服务器序号值加1,作为自己本次写操作的序号,由于其数据服务器序号值大于2,所以只需写数据和向下一台数据服务器发送数据包,无需返回是否写成功的响应包。
最后,客户端将写入数据服务器的字节数等信息发给元数据服务器,元数据服务器根据这些内容修改元数据。
此外,每过一定的时间,元数据服务器的定时检查模块会根据元数据信息检查各个数据服务器上的文件副本是否存在、完整或是最新的数据。如果副本不符合要求,则元数据服务器根据一定规则选择数据服务器创建文件副本,以满足用户要求。以此来加强数据可靠性的保证。
附图说明
图1分布式文件系统链式写副本
图2一种应用于分布式文件系统的文件副本异步写方法架构图
图3文件副本异步写流程
图4定时检查文件副本
具体实施方式
下面对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例也仅仅是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了说明“一种应用于分布式文件系统的文件副本异步写方法”,这里给出一个“用户A把本地文件上传到分布式文件系统根目录下,副本数等于3的例子”。
用户A进入到分布式文件系统根目录后,首先向元数据服务器发送写数据的请求。元数据服务器接到请求后,选取空间使用率较低的N台数据服务器,让它们创建指定同一编号的文件块,这些空的文件块即用来存储数据。所有数据服务器创建好文件块后,元数据服务器把文件块编号和N台数据服务器的IP地址发送给用户A。
用户A向数据服务器写数据。用户A把数据服务器的IP地址根据一定规则排序,并与第一台数据服务器建立网络连接,把数据包发给第一台数据服务器。此数据包的内容包括剩余数据服务器的IP地址、数据服务器序号值(用户A默认为0)、文件块编号、文件版本和真正的数据等信息。第一台数据服务器接收到数据包后,把其内容写入内存,将数据包中的数据服务器序号值加1(此时序号为1),把这个值存到数据服务器序号表中,再解析出下一台数据服务器的IP地址,把数据包发送给下一台数据服务器,然后把内存中的数据写到本地磁盘,完成后变为等待第二台数据服务器的状态。第二台数据服务器收到数据包后,把其内容写入内存,然后将数据包中的数据服务器序号值加1(此时序号为2),并把这个值存到数据服务器序号表中,立即向前一台数据服务器发送写数据成功的响应包,再向下一台数据服务器发送数据包。第一台数据服务器只有收到第二台数据服务器的响应包并且已经把数据写到本地磁盘,才能向用户A发送写数据成功的响应包。其他数据服务器收到数据包后,都会将数据服务器序号值加1,作为自己本次写操作的序号,由于其数据服务器序号值大于2,所以只需写数据和向下一台数据服务器发送数据包,无需返回是否写成功的响应包。
最后,用户A将写入数据服务器的字节数等信息发给元数据服务器,元数据服务器根据这些内容修改元数据。
此外,每过一定的时间,元数据服务器的定时检查模块会根据元数据信息检查各个数据服务器上的文件副本是否存在、完整或是最新的数据。如果副本不符合要求,则元数据服务器根据一定规则选择数据服务器创建文件副本,以满足用户要求。
Claims (5)
1.一种应用于分布式文件系统的文件副本异步写方法,其特征在于,所述方法针对分布式文件系统链式写文件副本,以保证数据可靠性为前提,提高分布式文件系统写操作速率。
2.权利要求1所述方法,其特征在于,用户向数据服务器写文件,采用了写到内存即响应写成功的机制,减少了写磁盘的时延,提高了写操作速率。
3.权利要求1所述方法,其特征在于,采用了数据服务器序号表,标明了在一次链式写操作中数据服务器的序号,序号大于2的数据服务器不论写操作是否成功,都不向前一台数据服务器发送写操作的结果,减少了数据服务器之间的网络通信,提高了写操作速率。
4.权利要求1所述方法,其特征在于,采用了第一台数据服务器必须把文件写入磁盘才能向用户响应写成功的机制,保证了至少有一个文件副本真正存储到磁盘上,保证了数据的可靠性。
5.权利要求1所述方法,其特征在于,采用了文件副本定时检查的机制,补全不满足副本数要求的文件,保证了数据的可靠性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310552010.1A CN103546580A (zh) | 2013-11-08 | 2013-11-08 | 一种应用于分布式文件系统的文件副本异步写方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310552010.1A CN103546580A (zh) | 2013-11-08 | 2013-11-08 | 一种应用于分布式文件系统的文件副本异步写方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103546580A true CN103546580A (zh) | 2014-01-29 |
Family
ID=49969619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310552010.1A Pending CN103546580A (zh) | 2013-11-08 | 2013-11-08 | 一种应用于分布式文件系统的文件副本异步写方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103546580A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105141696A (zh) * | 2015-09-17 | 2015-12-09 | 成都华为技术有限公司 | 文件上传方法和装置 |
CN107332921A (zh) * | 2017-07-14 | 2017-11-07 | 郑州云海信息技术有限公司 | 一种延时更新元数据的方法、系统及分布式文件系统 |
CN107533438A (zh) * | 2015-08-14 | 2018-01-02 | 慧与发展有限责任合伙企业 | 存储器系统中的数据复制 |
CN107632781A (zh) * | 2017-08-28 | 2018-01-26 | 深圳市云舒网络技术有限公司 | 一种分布式存储多副本快速校验一致性的方法及存储架构 |
CN116541365A (zh) * | 2023-07-06 | 2023-08-04 | 成都泛联智存科技有限公司 | 文件存储方法、装置、存储介质及客户端 |
-
2013
- 2013-11-08 CN CN201310552010.1A patent/CN103546580A/zh active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107533438A (zh) * | 2015-08-14 | 2018-01-02 | 慧与发展有限责任合伙企业 | 存储器系统中的数据复制 |
CN107533438B (zh) * | 2015-08-14 | 2020-09-08 | 慧与发展有限责任合伙企业 | 存储器系统中的数据复制 |
CN105141696A (zh) * | 2015-09-17 | 2015-12-09 | 成都华为技术有限公司 | 文件上传方法和装置 |
CN107332921A (zh) * | 2017-07-14 | 2017-11-07 | 郑州云海信息技术有限公司 | 一种延时更新元数据的方法、系统及分布式文件系统 |
CN107632781A (zh) * | 2017-08-28 | 2018-01-26 | 深圳市云舒网络技术有限公司 | 一种分布式存储多副本快速校验一致性的方法及存储架构 |
CN107632781B (zh) * | 2017-08-28 | 2020-05-05 | 深圳市云舒网络技术有限公司 | 一种分布式存储多副本快速校验一致性的方法及存储结构 |
CN116541365A (zh) * | 2023-07-06 | 2023-08-04 | 成都泛联智存科技有限公司 | 文件存储方法、装置、存储介质及客户端 |
CN116541365B (zh) * | 2023-07-06 | 2023-09-15 | 成都泛联智存科技有限公司 | 文件存储方法、装置、存储介质及客户端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10776396B2 (en) | Computer implemented method for dynamic sharding | |
US8799238B2 (en) | Data deduplication | |
CN103020315B (zh) | 一种基于主从分布式文件系统的海量小文件存储方法 | |
CA2676593C (en) | Scalable secondary storage systems and methods | |
CN101997823B (zh) | 一种分布式文件系统及其数据访问方法 | |
US10659225B2 (en) | Encrypting existing live unencrypted data using age-based garbage collection | |
CN108170768A (zh) | 数据库同步方法、装置及可读介质 | |
CN103546580A (zh) | 一种应用于分布式文件系统的文件副本异步写方法 | |
CN103455631A (zh) | 一种数据处理方法、装置及系统 | |
CN103051681B (zh) | 一种面向分布式文件系统的协作式日志系统 | |
CN106446159B (zh) | 一种存储文件的方法、第一虚拟机及名称节点 | |
US11567899B2 (en) | Managing dependent delete operations among data stores | |
US10310904B2 (en) | Distributed technique for allocating long-lived jobs among worker processes | |
CN102541985A (zh) | 一种分布式文件系统中客户端目录缓存的组织方法 | |
US11409711B2 (en) | Barriers for dependent operations among sharded data stores | |
CN105701190A (zh) | 一种数据同步的方法和装置 | |
CN102622412A (zh) | 一种分布式文件系统中的并发写入方法及装置 | |
US20210165768A1 (en) | Replication Barriers for Dependent Data Transfers between Data Stores | |
CN104965835B (zh) | 一种分布式文件系统的文件读写方法及装置 | |
KR101254179B1 (ko) | 분산 파일 시스템에서 효율적인 자료 복구 방법 | |
US10990324B2 (en) | Storage node processing of predefined data functions | |
US11243777B2 (en) | Process stream replication for content management system synchronization | |
US10726046B2 (en) | Object storage system with ordered parallel replication | |
US11341159B2 (en) | In-stream data load in a replication environment | |
US11055018B2 (en) | Parallel storage node processing of data functions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140129 |
|
WD01 | Invention patent application deemed withdrawn after publication |