CN104965835B - 一种分布式文件系统的文件读写方法及装置 - Google Patents
一种分布式文件系统的文件读写方法及装置 Download PDFInfo
- Publication number
- CN104965835B CN104965835B CN201410371520.3A CN201410371520A CN104965835B CN 104965835 B CN104965835 B CN 104965835B CN 201410371520 A CN201410371520 A CN 201410371520A CN 104965835 B CN104965835 B CN 104965835B
- Authority
- CN
- China
- Prior art keywords
- file
- information
- data
- family
- server
- 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 44
- 230000004048 modification Effects 0.000 claims description 27
- 238000012986 modification Methods 0.000 claims description 27
- 238000011084 recovery Methods 0.000 claims description 27
- 230000008569 process Effects 0.000 claims description 21
- 230000000977 initiatory effect Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种分布式文件系统的文件读写方法及装置,用于解决现有技术中访问较大文件时的效率低下,以及元数据服务器处理负荷过大的问题。该方法为:向元数据服务器发起文件创建请求,并接收元数据服务器根据文件创建请求返回的文件ID,文件ID中至少携带有数据节点信息;根据预设的编码规则将文件ID转换为字符串文件名;接收到用户通过字符串文件名发起的文件读写请求后,将字符串文件名按照预设的编码规则反编码为文件ID;根据文件ID读写数据节点信息指示的数据服务器中的文件。采用上述方法,有效降低了元数据服务器的处理负荷,提高了元数据服务器的并发处理能力,提高了文件访问的安全性、提高了大文件访问的效率。
Description
技术领域
本发明涉及文件系统领域,尤其涉及一种分布式文件系统的文件读写方法及装置。
背景技术
分布式文件系统是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。参阅图1所示,传统的分布式文件系统读写文件的具体步骤如下:
步骤100:客户端接收用户发送的创建文件请求;
步骤110:客户端向元数据服务器请求创建文件;
步骤120:客户端接收元数据服务器根据该创建文件请求将该文件在数据服务器中创建后返回的文件ID;
步骤130:客户端把文件ID编码为字符串文件名发送给用户;
步骤140:客户端接收用户通过该字符串文件名发起的文件读写请求;
步骤150:客户端将字符串文件名反编码为文件ID,并向元数据服务器请求该文件相关的数据服务器信息,该数据服务器信息用于指示将该文件被创建至在哪个数据服务器;
步骤160:客户端接收元数据服务器根据文件ID索引出的该文件的相关数据服务器信息;
步骤170:客户端根据元数据服务器返回的相关数据服务器信息读写该文件。
在执行步骤140后,客户端无法根据用户传入的该文件的文件名直接读写数据服务器,必须通过执行步骤150和步骤160之后,即必须通过从元数据服务器获取该文件的数据服务器信息之后,才能读写数据服务器。这种读写文件的方式降低了客户端访问文件的效率,同时也增大了元数据服务器的访问压力。
同时传统的分布式文件系统存储文件时,不区分文件的大小,对所有文件都采用副本的方式进行存储,其中,采用副本方式存储即存储一份源文件以及多份副本文件,如此在读写大文件时,必然导致访问效率低下。
另一方面,分布式文件系统接收多个进程读写文件时,元数据服务器只能按照请求的先后顺序,依次处理多个读写请求,也会降低元数据服务器的处理效率,增大元数据服务器的处理负荷。
发明内容
本发明实施例提供一种分布式文件系统的文件ID的生成方法及装置,用以解决现有技术中访问较大文件的效率低下,元数据服务器处理负荷大的问题。
本发明提供的解决方案如下:
一种分布式文件系统的文件读写方法,该方法包括:
向元数据服务器发起文件创建请求,并接收元数据服务器根据文件创建请求返回的文件ID,文件ID中至少携带有数据节点信息;
根据预设的编码规则将文件ID转换为字符串文件名;
接收到用户通过字符串文件名发起的文件读写请求后,将字符串文件名按照预设的编码规则反编码为文件ID;
根据文件ID读写数据节点信息指示的数据服务器中的文件。
本发明实施例提供的方案,利用文件ID携带的文件的各种关键信息来简化分布式文件系统的处理流程,降低了元数据服务器的访问压力,提高了读取和写入文件的效率,减少了客户端和元数据服务器交互的次数。
较佳的,文件ID,包括:
第一区域、第二区域、第三区域、第四区域、第五区域和第六区域,其中,
第一区域,用于存储文件系统信息,文件系统信息用于指示文件存储的文件系统;
第二区域,用于存储文件大小类型信息,文件大小类型信息用于指示文件的期望大小是否大于等于设定阈值;
第三区域,用于存储集群信息,集群信息用于指示文件归属的集群;
第四区域,用于存储文件族信息,文件族信息用于指示文件归属的文件族,其中,每一个文件族内的文件共享一个文件锁;
第五区域,用于存储文件族内ID,文件族内ID用于指示文件族内唯一标识;
第六区域,用于存储数据节点信息,数据节点信息用于指示文件存储的数据服务器信息。
较佳的,根据文件ID读写数据节点信息指示的数据服务器中的文件,包括:
根据文件的期望大小信息确定文件的期望大小大于等于设定阈值时,将文件分为多个数据块,并将数据块存储在数据节点信息指示的存储位置,其中,将每个数据块分为多个数据片,每个数据块中的数据片分别对应一个数据服务器进行存储;或者,
根据文件的期望大小信息确定文件的期望大小小于设定阈值时,将文件的源文件和源文件的多个副本文件存储在数据节点信息指示的存储位置,其中,源文件和源文件的多个副本文件分别对应一个数据服务器进行存储。
通过这种可能的实施方式,增强了数据存储的自适应性,分别针对文件的期望大小大于等于设定阈值的文件和文件的期望大小小于设定阈值的文件,采用不同的方式存储,有效提高了文件读写的效率。
较佳的,根据文件ID读写数据节点信息指示的数据服务器中的文件,还包括:
根据文件的期望大小信息确定文件的期望大小大于等于设定阈值时,向数据服务器请求读写数据片,若数据片被损坏,接收数据服务器返回的数据片在其他位置的恢复信息,根据恢复信息访问在其他位置的数据片;或者,
根据文件的期望大小信息确定文件的期望大小小于设定阈值时,向数据服务器请求读写源文件或副本文件,若源文件或副本文件被损坏,接收数据服务器返回的源文件或副本文件在其他位置的恢复信息,根据恢复信息访问在其他位置的源文件或副本文件。
通过这种可能的实施方式,利用受损数据及时恢复数据节点信息来解决数据损坏带来的文件数据分布漂移的问题。
较佳的,根据文件ID读写数据节点信息指示的数据服务器中的文件,还包括:
若接收到多个通过字符串文件名发起的元数据信息修改请求,则将各个字符串文件名按照预设的编码规则反编码为对应的文件ID,并令元数据服务器根据文件ID中携带的文件族信息判断采用何种方式处理各个元数据信息修改请求,其中,元数据服务器采用并发方式处理文件族信息不同的文件的元数据信息修改请求,以及采用顺序方式处理文件族信息相同的文件的元数据信息修改请求。
通过这种可能的实施方式,将一把全局文件锁分割为多个文件族锁,增加元数据服务器并发处理修改文件元数据信息的能力,降低了全局文件锁的并发度,提高了海量文件并发访问的能力。
一种分布式文件系统的文件读写装置,该装置包括:
接收单元,用于向元数据服务器发起文件创建请求,并接收元数据服务器根据文件创建请求返回的文件ID,文件ID中至少携带有数据节点信息;
编码单元,用于根据预设的编码规则将文件ID转换为字符串文件名;
反编码单元,用于接收到用户通过字符串文件名发起的文件读写请求后,将字符串文件名按照预设的编码规则反编码为文件ID;
读写单元,用于根据文件ID读写数据节点信息指示的数据服务器中的文件。
本发明实施例提供的方案,利用文件ID携带的文件的各种关键信息来简化分布式文件系统的处理流程,降低了元数据服务器的访问压力,提高了读取和写入文件的效率,减少了客户端和元数据服务器交互的次数。
较佳的,文件ID,包括:
第一区域、第二区域、第三区域、第四区域、第五区域和第六区域,其中,
第一区域,用于存储文件系统信息,文件系统信息用于指示文件存储的文件系统;
第二区域,用于存储文件大小类型信息,文件大小类型信息用于指示文件的期望大小是否大于等于设定阈值;
第三区域,用于存储集群信息,集群信息用于指示文件归属的集群;
第四区域,用于存储文件族信息,文件族信息用于指示文件归属的文件族,其中,每一个文件族内的文件共享一个文件锁;
第五区域,用于存储文件族内ID,文件族内ID用于指示文件族内唯一标识;
第六区域,用于存储数据节点信息,数据节点信息用于指示文件存储的数据服务器信息。
较佳的,读写单元,具体用于:根据文件的期望大小信息确定文件的期望大小大于等于设定阈值时,将文件分为多个数据块,并将数据块存储在数据节点信息指示的存储位置,其中,将每个数据块分为多个数据片,每个数据块中的数据片分别对应一个数据服务器进行存储;或者,
根据文件的期望大小信息确定文件的期望大小小于设定阈值时,将文件的源文件和源文件的多个副本文件存储在数据节点信息指示的存储位置,其中,源文件和源文件的多个副本文件分别对应一个数据服务器进行存储。
通过这种可能的实施方式,增强了数据存储的自适应性,分别针对文件的期望大小大于等于设定阈值的文件和文件的期望大小小于设定阈值的文件,采用不同的方式存储,有效提高了文件读写的效率。
较佳的,读写单元,还用于:
根据文件的期望大小信息确定文件的期望大小大于等于设定阈值时,向数据服务器请求读写数据片,若数据片被损坏,接收数据服务器返回的数据片在其他位置的恢复信息,根据恢复信息访问在其他位置的数据片;或者,
根据文件的期望大小信息确定文件的期望大小小于设定阈值时,向数据服务器请求读写源文件或副本文件,若源文件或副本文件被损坏,接收数据服务器返回的源文件或副本文件在其他位置的恢复信息,根据恢复信息访问在其他位置的源文件或副本文件。
通过这种可能的实施方式,利用受损数据及时恢复数据节点信息来解决数据损坏带来的文件数据分布漂移的问题。
较佳的,读写单元,还用于:
在接收到多个通过字符串文件名发起的元数据信息修改请求时,将各个字符串文件名按照预设的编码规则反编码为对应的文件ID,并令元数据服务器根据文件ID中携带的文件族信息判断采用何种方式处理各个元数据信息修改请求,其中,元数据服务器采用并发方式处理文件族信息不同的文件的元数据信息修改请求,以及采用顺序方式处理文件族信息相同的文件的元数据信息修改请求。
通过这种可能的实施方式,将一把全局文件锁分割为多个文件族锁,增加元数据服务器并发处理修改文件元数据信息的能力,降低了全局文件锁的并发度,提高了海量文件并发访问的能力。
附图说明
图1为现有技术中的分布式文件读写的流程图;
图2为本发明实施例中的分布式文件系统架构图;
图3为本发明实施例中的分布式文件系统的文件读写方法的流程图;
图4为本发明实施例中的文件ID组成示意图;
图5为本发明实施例中的文件存储方式示意图;
图6为本发明实施例中的读取损坏文件的流程图;
图7为本发明实施例中的分布式文件系统的文件读写方法的详细流程图;
图8为本发明实施例中的分布式文件系统的文件读写装置的结构图。
具体实施方式
为了给出提高元数据服务器的处理效率的实现方案,本发明实施例提供了一种分布式文件系统的文件读写方法及装置,有效降低了元数据服务器的处理负荷,提高了元数据服务器的并发处理能力,提高了文件访问的安全性、提高了大文件访问的效率。以下结合说明书附图对本发明的优选实施例进行说明。
参阅图2所示,本发明采用的分布式文件系统架构中,元数据服务器通过高可用性群集(High Available,HA)进行主备切换,提高系统可靠性,其中,HA是保证业务连续性的有效解决方案,一般有两个或两个以上的节点,且分为活动节点及备用节点。通常把正在执行业务的称为活动节点,而作为活动节点的一个备份的则称为备用节点。当活动节点出现问题,导致正在运行的任务不能正常运行时,备用节点此时就会侦测到,并立即接续活动节点来执行业务,从而实现业务的不中断或短暂中断。该分布式文件系统对用户以客户端呈现,文件存储在与客户端相连的服务器端。
参阅图3所示,本发明中的分布式文件系统的文件ID的生成方法的步骤如下:
步骤300:客户端向元数据服务器发起文件创建请求,并接收元数据服务器根据文件创建请求返回的文件ID,文件ID中至少携带有数据节点信息。
具体的,用户向客户端发起文件创建请求时,客户端将文件创建请求发送至元数据服务器,请求创建文件。元数据服务器将文件的相关信息编码成该文件的文件ID返回给客户端,该文件ID中至少携带有数据节点信息,该数据节点信息指示文件被存储在哪个数据服务器中。
步骤310:客户端根据预设的编码规则将文件ID转换为字符串文件名。
具体的,客户端接收到文件ID后,根据预设的编码规则再将文件ID转换为用户通常用来读写文件的字符串文件名。若用户之后要访问该文件,可以通过该字符串文件名进行访问。
步骤320:客户端接收到用户通过字符串文件名发起的文件读写请求后,将字符串文件名按照预设的编码规则反编码为文件ID。
具体的,创建文件完毕后,若客户端接收到用户通过该字符串文件名发起的文件读写请求,则客户端将该字符串文件名按照预设的编码规则反编码为文件ID。
步骤330:客户端根据文件ID读写数据节点信息指示的数据服务器中的文件。
具体的,客户端通过识别反编码后的文件ID便可解析出该文件的数据节点信息,进而得知该文件被存储于哪个数据服务器中,客户端便可以通过该数据节点信息在存放文件的数据服务器中读写该文件。
通过上述步骤,用户在读写文件时,不需要再向元数据服务器获取文件的数据节点信息,而是直接通过文件ID得知文件的数据节点信息,省去了向元数据服务器请求数据节点信息的步骤,进而降低了元数据服务器的访问压力。
参阅图4所示,上述至少携带数据节点信息的文件ID,主要包括如下几个区域:第一区域、第二区域、第三区域、第四区域、第五区域和第六区域,进一步的,还可以包括第七区域。
具体的,第一区域,用于存储文件系统信息,文件系统信息用于指示文件存储的文件系统。
第一区域占用4个字节,标识文件存储的文件系统,用户将文件拷贝至文件系统A时,客户端将反编码字符串文件名得到的文件ID中的4字节的文件系统信息与文件系统A设定的4字节文件系统标识进行比对,若第一区域数据相同,则客户端可以进一步读取该文件,如此可以保证客户端只能读写文件ID的文件系统信息与文件系统A的文件系统标识相同的文件,即客户端只能读写归属于文件系统A的文件,提高了客户端访问文件系统A的安全性。
第二区域,用于存储文件大小类型信息,文件大小类型信息用于指示文件的期望大小是否大于设定阈值。
第二区域占用1个字节,文件的期望大小大于等于设定阈值的文件,第二区域的值用1表示,小于设定阈值的文件,第二区域的值用0表示。通过该1个字节区分文件的期望大小,对于文件的期望大小大于等于设定阈值的文件采用将该文件分割成多个数据块,将多个数据块在各个数据服务器分割为数据片的形式进行存储;对于文件的期望大小小于设定阈值的文件以副本的方式进行存储。具体如下:
根据文件的期望大小信息确定文件的期望大小大于等于设定阈值时,将文件分为多个数据块,并将数据块存储在数据节点信息指示的存储位置,其中,将每个数据块分为多个数据片,每个数据块中的数据片分别对应一个数据服务器进行存储;或者,
根据文件的期望大小信息确定文件的期望大小小于设定阈值时,将文件的源文件和源文件的多个副本文件存储在数据节点信息指示的存储位置,其中,源文件和源文件的多个副本文件分别对应一个数据服务器进行存储。
通过1字节的文件大小类型信息使得文件系统可以分别处理文件的期望大小大于等于设定阈值的文件和文件的期望大小小于设定阈值的文件,解决了其他文件系统只能针对文件的期望大小小于设定阈值的文件进行存储的应用场景或者只能针对文件的期望大小大于等于设定阈值的文件进行存储的应用场景的局限性。
参阅图5所示,若文件的期望大小大于等于设定阈值,则按照设定大小将文件分为两个数据块,分别为数据块1和数据块2,将数据块1分成多个数据片,将数据块1的第一个数据片命名为1.1存储在数据服务器1中,将数据块1的第二个数据片命名为1.2存储在数据服务器2中,以此类推,对于数据块2也做相同的操作进行存储。
若文件的期望大小小于设定阈值,则将文件的源文件存储在其中一个数据服务器,以存储在数据服务器1为例,将文件的第一个副本文件命名为副本1,存储在数据服务器2,将文件的第二个副本文件命名为副本2,存储在数据服务器3,以此类推。
若数据服务器中的文件损坏,根据文件ID读写数据节点信息指示的数据服务器中的文件,还包括:根据文件的期望大小信息确定文件的期望大小大于等于设定阈值时,向数据服务器请求读写数据片,若数据片被损坏,接收数据服务器返回的数据片在其他位置的恢复信息,根据恢复信息访问在其他位置的数据片;或者,
根据文件的期望大小信息确定文件的期望大小小于设定阈值时,向数据服务器请求读写源文件或副本文件,若源文件或副本文件被损坏,接收数据服务器返回的源文件或副本文件在其他位置的恢复信息,根据恢复信息访问在其他位置的源文件或副本文件。
参阅图6所示,文件一旦创建,和文件存储有关的文件相关信息就全部确认下来,特别是数据节点信息,那么在数据节点损坏或者数据节点内磁盘发生漂移等情况导致数据片或副本文件存储位置发生改变时,再按照原有的文件ID中提供的数据节点信息就无法访问到真实数据。本发明实施例中的分布式文件系统中,采用在数据节点实时记录数据片或副本文件存储位置信息,若一个数据服务器上的数据片或副本文件的位置发生变化时,则记录位置变化后的信息,当客户端向数据服务器请求读写文件的时候,通知客户端数据片或副本文件的存储位置已经发生变化,客户端根据数据服务器返回的恢复信息访问存储数据片或副本文件的数据服务器。以文件的期望大小大于等于设定阈值的文件为例,具体步骤如下:
步骤600:客户端请求访问数据片1.1;
步骤610:客户端接收数据服务器返回的数据片1.1已损坏的消息,以及数据片1.1的恢复信息;
步骤620:客户端根据数据片1.1的恢复信息访问恢复完成的数据片1.1。
第三区域,用于存储集群信息,占用1个字节,集群信息用于指示文件归属的集群,主要用于区分不同集群中内容相同的文件。
第四区域,用于存储文件族信息,文件族信息用于指示文件归属的文件族,其中,每一个文件族内的文件共享一个文件锁。
第四区域占用1个字节,文件锁主要用来保证能够并发修改多个文件的元数据信息,方便元数据服务器管理。若元数据服务器只有1个全局文件锁,则只能串行修改每个文件的元数据信息。但通过文件族信息,可以将分布式文件系统中的一个全局文件锁分割成多个文件族锁,大大提高了分布式文件系统中多文件并发处理的性能,多个文件族锁保证了元数据服务器可以同时修改属于不同文件族中的文件的元数据信息,1个字节可以表示256个文件族,每个文件族都有一个文件族锁,即元数据服务器最多可以同时修改256个文件的元数据信息,若第四区域设置为2字节,则可以表示512个文件族,以此类推。
其中,通过文件锁读写文件的步骤如下:根据文件ID读写数据节点信息指示的数据服务器中的文件,还包括:若接收到多个通过字符串文件名发起的元数据信息修改请求,则将各个字符串文件名按照预设的编码规则反编码为对应的文件ID,并令元数据服务器根据文件ID中携带的文件族信息判断采用何种方式处理各个元数据信息修改请求,其中,元数据服务器采用并发方式处理文件族信息不同的文件的元数据信息修改请求,以及采用顺序方式处理文件族信息相同的文件的元数据信息修改请求。
第五区域,用于存储文件族内ID,占用8个字节,文件族内ID用于指示文件族内唯一标识。
第六区域,用于存储数据节点信息,占用4个字节,数据节点信息用于指示文件存储的数据服务器信息。
第六区域通过提供文件存储的数据节点信息,可以在请求读写文件时,降低元数据服务器的压力。客户端通过预设的反编码规则直接解析出文件存储的数据节点信息,得知文件存储的数据服务器信息,进而直接进行读写,不需要再次向元数据服务器请求文件的数据节点信息,减轻了元数据服务器的访问压力。
第七区域,是保留字节,占用1个字节,保留字节暂时不存储数据,用于后续拓展文件ID时,实现其他功能。
例如,参阅图7所示,以具体实施例介绍本发明中的分布式文件系统读写文件,降低元数据服务器的访问压力的方案,具体流程如下;
步骤700:用户向客户端发起创建文件请求;
步骤710:客户端向元数据服务器请求创建文件;
步骤720:元数据服务器根据客户端的请求,将文件的相关信息编码成20个字节的文件ID返回给客户端;
步骤730:客户端将文件ID编码成字符串文件名返回给用户;
步骤740:用户通过字符串文件名进行文件读写;
步骤750:客户端根据用户传入的字符串文件名反编码成20字节的文件ID,根据文件ID携带的数据节点信息读写数据服务器。
下面结合附图,用具体实施例对本发明提供的方法及装置和相应系统进行详细描述。
基于同一发明构思,根据本发明上述实施例提供的分布式文件系统的文件读写方法,相应地,本发明另一实施例还提供了一种分布式文件系统的文件读写装置,该装置的结构示意图如图8所示,具体包括:
接收单元800,用于向元数据服务器发起文件创建请求,并接收元数据服务器根据文件创建请求返回的文件ID,文件ID中至少携带有数据节点信息;
编码单元810,用于根据预设的编码规则将文件ID转换为字符串文件名;
反编码单元820,用于接收到用户通过字符串文件名发起的文件读写请求后,将字符串文件名按照预设的编码规则反编码为文件ID;
读写单元830,用于根据文件ID读写数据节点信息指示的数据服务器中的文件。
其中,文件ID,包括:
第一区域、第二区域、第三区域、第四区域、第五区域和第六区域,其中,
第一区域,用于存储文件系统信息,文件系统信息用于指示文件存储的文件系统;
第二区域,用于存储文件大小类型信息,文件大小类型信息用于指示文件的期望大小是否大于等于设定阈值;
第三区域,用于存储集群信息,集群信息用于指示文件归属的集群;
第四区域,用于存储文件族信息,文件族信息用于指示文件归属的文件族,其中,每一个文件族内的文件共享一个文件锁;
第五区域,用于存储文件族内ID,文件族内ID用于指示文件族内唯一标识;
第六区域,用于存储数据节点信息,数据节点信息用于指示文件存储的数据服务器信息。
读写单元830,具体用于:根据文件的期望大小信息确定文件的期望大小大于等于设定阈值时,将文件分为多个数据块,并将数据块存储在数据节点信息指示的存储位置,其中,将每个数据块分为多个数据片,每个数据块中的数据片分别对应一个数据服务器进行存储;或者,
根据文件的期望大小信息确定文件的期望大小小于设定阈值时,将文件的源文件和源文件的多个副本文件存储在数据节点信息指示的存储位置,其中,源文件和源文件的多个副本文件分别对应一个数据服务器进行存储。
读写单元830,还用于:
根据文件的期望大小信息确定文件的期望大小大于等于设定阈值时,向数据服务器请求读写数据片,若数据片被损坏,接收数据服务器返回的数据片在其他位置的恢复信息,根据恢复信息访问在其他位置的数据片;或者,
根据文件的期望大小信息确定文件的期望大小小于设定阈值时,向数据服务器请求读写源文件或副本文件,若源文件或副本文件被损坏,接收数据服务器返回的源文件或副本文件在其他位置的恢复信息,根据恢复信息访问在其他位置的源文件或副本文件。
读写单元830,还用于:
在接收到多个通过字符串文件名发起的元数据信息修改请求时,将各个字符串文件名按照预设的编码规则反编码为对应的文件ID,并令元数据服务器根据文件ID中携带的文件族信息判断采用何种方式处理各个元数据信息修改请求,其中,元数据服务器采用并发方式处理文件族信息不同的文件的元数据信息修改请求,以及采用顺序方式处理文件族信息相同的文件的元数据信息修改请求。
综上所述,本发明实施例提供的方案,利用文件ID携带的文件的各种关键信息来简化分布式文件系统的处理流程,降低了元数据服务器的访问压力,提高了读取和写入文件的效率,减少了客户端和元数据服务器交互的次数,并通过受损数据及时恢复数据节点信息来解决数据损坏带来的文件数据分布漂移的问题;通过比对文件系统信息,使其只可以读写本文件系统中的文件,避免访问不属于本文件系统的数据,提高了数据访问的安全性;增强了数据存储的自适应性,分别针对文件的期望大小大于等于设定阈值的文件和文件的期望大小小于设定阈值的文件,采用不同的方式存储,有效提高了文件读写的效率;并且,将一把全局文件锁分割为多个文件族锁,增加元数据服务器并发处理修改文件元数据信息的能力,降低了全局文件锁的并发度,提高了海量文件并发访问的能力。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种分布式文件系统的文件读写方法,其特征在于,所述方法应用于所述分布式文件系统的客户端,所述方法包括:
向元数据服务器发起文件创建请求,并接收元数据服务器根据所述文件创建请求返回的文件ID,所述文件ID中至少携带有数据节点信息;
根据预设的编码规则将所述文件ID转换为字符串文件名;
接收到用户通过所述字符串文件名发起的文件读写请求后,将所述字符串文件名按照所述预设的编码规则反编码为所述文件ID;
根据所述文件ID读写所述数据节点信息指示的数据服务器中的文件。
2.如权利要求1所述的方法,其特征在于,所述文件ID,包括:
第一区域、第二区域、第三区域、第四区域、第五区域和第六区域,其中,
第一区域,用于存储文件系统信息,所述文件系统信息用于指示所述文件存储的文件系统;
第二区域,用于存储所述文件大小类型信息,所述文件大小类型信息用于指示所述文件的期望大小是否大于等于设定阈值;
第三区域,用于存储集群信息,所述集群信息用于指示所述文件归属的集群;
第四区域,用于存储所述文件族信息,所述文件族信息用于指示所述文件归属的文件族,其中,每一个文件族内的文件共享一个文件锁;
第五区域,用于存储文件族内ID,所述文件族内ID用于指示文件族内唯一标识;
第六区域,用于存储数据节点信息,所述数据节点信息用于指示所述文件存储的数据服务器信息。
3.如权利要求2所述的方法,其特征在于,根据所述文件ID读写所述数据节点信息指示的数据服务器中的文件,包括:
根据所述文件的期望大小信息确定所述文件的期望大小大于等于设定阈值时,将所述文件分为多个数据块,并将所述数据块存储在所述数据节点信息指示的存储位置,其中,将每个数据块分为多个数据片,每个数据块中的数据片分别对应一个数据服务器进行存储;或者,
根据所述文件的期望大小信息确定所述文件的期望大小小于设定阈值时,将所述文件的源文件和源文件的多个副本文件存储在所述数据节点信息指示的存储位置,其中,所述源文件和源文件的多个副本文件分别对应一个数据服务器进行存储。
4.如权利要求3所述的方法,其特征在于,根据所述文件ID读写所述数据节点信息指示的数据服务器中的文件,还包括:
根据所述文件的期望大小信息确定所述文件的期望大小大于等于设定阈值时,向数据服务器请求读写数据片,若所述数据片被损坏,接收所述数据服务器返回的所述数据片在其他位置的恢复信息,根据所述恢复信息访问在所述其他位置的所述数据片;或者,
根据所述文件的期望大小信息确定所述文件的期望大小小于设定阈值时,向数据服务器请求读写源文件或副本文件,若所述源文件或所述副本文件被损坏,接收所述数据服务器返回的所述源文件或所述副本文件在其他位置的恢复信息,根据所述恢复信息访问在所述其他位置的所述源文件或所述副本文件。
5.如权利要求2-4任一项所述的方法,其特征在于,根据所述文件ID读写所述数据节点信息指示的数据服务器中的文件,还包括:
若接收到多个通过字符串文件名发起的元数据信息修改请求,则将各个字符串文件名按照所述预设的编码规则反编码为对应的文件ID,并令所述元数据服务器根据所述文件ID中携带的文件族信息判断采用何种方式处理所述各个元数据信息修改请求,其中,所述元数据服务器采用并发方式处理所述文件族信息不同的文件的元数据信息修改请求,以及采用顺序方式处理所述文件族信息相同的文件的元数据信息修改请求。
6.一种分布式文件系统的文件读写装置,其特征在于,所述装置为所述分布式文件系统的客户端,所述装置包括:
接收单元,用于向元数据服务器发起文件创建请求,并接收元数据服务器根据所述文件创建请求返回的文件ID,所述文件ID中至少携带有数据节点信息;
编码单元,用于根据预设的编码规则将所述文件ID转换为字符串文件名;
反编码单元,用于接收到用户通过所述字符串文件名发起的文件读写请求后,将所述字符串文件名按照所述预设的编码规则反编码为所述文件ID;
读写单元,用于根据所述文件ID读写所述数据节点信息指示的数据服务器中的文件。
7.如权利要求6所述的装置,其特征在于,所述文件ID,包括:
第一区域、第二区域、第三区域、第四区域、第五区域和第六区域,其中,
第一区域,用于存储文件系统信息,所述文件系统信息用于指示所述文件存储的文件系统;
第二区域,用于存储所述文件大小类型信息,所述文件大小类型信息用于指示所述文件的期望大小是否大于等于设定阈值;
第三区域,用于存储集群信息,所述集群信息用于指示所述文件归属的集群;
第四区域,用于存储所述文件族信息,所述文件族信息用于指示所述文件归属的文件族,其中,每一个文件族内的文件共享一个文件锁;
第五区域,用于存储文件族内ID,所述文件族内ID用于指示文件族内唯一标识;
第六区域,用于存储数据节点信息,所述数据节点信息用于指示所述文件存储的数据服务器信息。
8.如权利要求7所述的装置,其特征在于,所述读写单元,具体用于:根据所述文件的期望大小信息确定所述文件的期望大小大于等于设定阈值时,将所述文件分为多个数据块,并将所述数据块存储在所述数据节点信息指示的存储位置,其中,将每个数据块分为多个数据片,每个数据块中的数据片分别对应一个数据服务器进行存储;或者,
根据所述文件的期望大小信息确定所述文件的期望大小小于设定阈值时,将所述文件的源文件和源文件的多个副本文件存储在所述数据节点信息指示的存储位置,其中,所述源文件和源文件的多个副本文件分别对应一个数据服务器进行存储。
9.如权利要求8所述的装置,其特征在于,所述读写单元,还用于:
根据所述文件的期望大小信息确定所述文件的期望大小大于等于设定阈值时,向数据服务器请求读写数据片,若所述数据片被损坏,接收所述数据服务器返回的所述数据片在其他位置的恢复信息,根据所述恢复信息访问在所述其他位置的所述数据片;或者,
根据所述文件的期望大小信息确定所述文件的期望大小小于设定阈值时,向数据服务器请求读写源文件或副本文件,若所述源文件或所述副本文件被损坏,接收所述数据服务器返回的所述源文件或所述副本文件在其他位置的恢复信息,根据所述恢复信息访问在所述其他位置的所述源文件或所述副本文件。
10.如权利要求7-9任一项所述的装置,其特征在于,所述读写单元,还用于:
在接收到多个通过字符串文件名发起的元数据信息修改请求时,将各个字符串文件名按照所述预设的编码规则反编码为对应的文件ID,并令所述元数据服务器根据所述文件ID中携带的文件族信息判断采用何种方式处理所述各个元数据信息修改请求,其中,所述元数据服务器采用并发方式处理所述文件族信息不同的文件的元数据信息修改请求,以及采用顺序方式处理所述文件族信息相同的文件的元数据信息修改请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410371520.3A CN104965835B (zh) | 2014-07-30 | 2014-07-30 | 一种分布式文件系统的文件读写方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410371520.3A CN104965835B (zh) | 2014-07-30 | 2014-07-30 | 一种分布式文件系统的文件读写方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104965835A CN104965835A (zh) | 2015-10-07 |
CN104965835B true CN104965835B (zh) | 2018-12-07 |
Family
ID=54219871
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410371520.3A Active CN104965835B (zh) | 2014-07-30 | 2014-07-30 | 一种分布式文件系统的文件读写方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104965835B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105763604B (zh) * | 2016-02-04 | 2019-03-19 | 四川长虹电器股份有限公司 | 轻量级分布式文件系统及恢复下载文件原名的方法 |
CN107145303B (zh) * | 2016-03-01 | 2020-06-19 | 阿里巴巴集团控股有限公司 | 一种用于在分布式存储系统中执行文件写入的方法与设备 |
CN107145302B (zh) * | 2016-03-01 | 2020-06-19 | 阿里巴巴集团控股有限公司 | 一种用于在分布式存储系统中执行文件写入的方法与设备 |
CN108108376B (zh) * | 2016-11-25 | 2021-07-09 | 中标软件有限公司 | 一种线性自适应文件名长度调度系统及方法 |
CN106815298B (zh) * | 2016-12-09 | 2020-11-17 | 中电科华云信息技术有限公司 | 基于块存储的分布式共享文件系统 |
CN109710180B (zh) * | 2018-12-07 | 2022-04-01 | 国云科技股份有限公司 | 一种分布式存储块设备恢复方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102142032A (zh) * | 2011-03-28 | 2011-08-03 | 中国人民解放军国防科学技术大学 | 一种分布式文件系统的数据读写方法及系统 |
CN103092927A (zh) * | 2012-12-29 | 2013-05-08 | 华中科技大学 | 一种分布式环境下的文件快速读写方法 |
CN103399941A (zh) * | 2013-08-13 | 2013-11-20 | 广州中国科学院软件应用技术研究所 | 一种分布式文件处理方法、装置及系统 |
CN103678360A (zh) * | 2012-09-13 | 2014-03-26 | 腾讯科技(深圳)有限公司 | 一种分布式文件系统的数据存储方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004280283A (ja) * | 2003-03-13 | 2004-10-07 | Hitachi Ltd | 分散ファイルシステム、分散ファイルシステムサーバ及び分散ファイルシステムへのアクセス方法 |
-
2014
- 2014-07-30 CN CN201410371520.3A patent/CN104965835B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102142032A (zh) * | 2011-03-28 | 2011-08-03 | 中国人民解放军国防科学技术大学 | 一种分布式文件系统的数据读写方法及系统 |
CN103678360A (zh) * | 2012-09-13 | 2014-03-26 | 腾讯科技(深圳)有限公司 | 一种分布式文件系统的数据存储方法和装置 |
CN103092927A (zh) * | 2012-12-29 | 2013-05-08 | 华中科技大学 | 一种分布式环境下的文件快速读写方法 |
CN103399941A (zh) * | 2013-08-13 | 2013-11-20 | 广州中国科学院软件应用技术研究所 | 一种分布式文件处理方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104965835A (zh) | 2015-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11741048B2 (en) | Distributed write journals that support fast snapshotting for a distributed file system | |
US10764045B2 (en) | Encrypting object index in a distributed storage environment | |
US10261719B2 (en) | Volume and snapshot replication | |
CN104965835B (zh) | 一种分布式文件系统的文件读写方法及装置 | |
US10659225B2 (en) | Encrypting existing live unencrypted data using age-based garbage collection | |
CN106547859B (zh) | 一种多租户数据存储系统下的数据文件的存储方法及装置 | |
US20190005262A1 (en) | Fully managed account level blob data encryption in a distributed storage environment | |
WO2017049764A1 (zh) | 数据读写方法及分布式存储系统 | |
US20160006461A1 (en) | Method and device for implementation data redundancy | |
US20120011101A1 (en) | Integrating client and server deduplication systems | |
EP2863310B1 (en) | Data processing method and apparatus, and shared storage device | |
US20160246677A1 (en) | Virtual chunk service based data recovery in a distributed data storage system | |
CN106649676B (zh) | 一种基于hdfs存储文件的去重方法及装置 | |
CN104077380B (zh) | 一种重复数据删除方法、装置及系统 | |
CN103020255B (zh) | 分级存储方法和装置 | |
CN106708653B (zh) | 一种基于纠删码与多副本的混合税务大数据安全保护方法 | |
CN102024034B (zh) | 一种面向高清媒体的嵌入式文件系统的碎片处理方法 | |
WO2019001521A1 (zh) | 数据存储方法、存储设备、客户端及系统 | |
US9110820B1 (en) | Hybrid data storage system in an HPC exascale environment | |
JP2007241486A (ja) | 記憶装置システム | |
CN106528338B (zh) | 一种远程数据复制方法、存储设备及存储系统 | |
CN107852349B (zh) | 用于多节点集群的事务管理的系统、方法及存储介质 | |
CN106873902B (zh) | 一种文件存储系统、数据调度方法及数据节点 | |
US11853165B2 (en) | Using file system extended attributes to update databases in hierarchical file systems | |
CN106991118A (zh) | 基于ceph纠删除容错的读取文件方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |