CN117827757A - 一种分布式文件系统 - Google Patents
一种分布式文件系统 Download PDFInfo
- Publication number
- CN117827757A CN117827757A CN202211182514.4A CN202211182514A CN117827757A CN 117827757 A CN117827757 A CN 117827757A CN 202211182514 A CN202211182514 A CN 202211182514A CN 117827757 A CN117827757 A CN 117827757A
- Authority
- CN
- China
- Prior art keywords
- file system
- data storage
- modules
- request
- storage module
- 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
- 238000013500 data storage Methods 0.000 claims abstract description 176
- 230000002159 abnormal effect Effects 0.000 claims description 14
- 238000000034 method Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 6
- 238000012544 monitoring process Methods 0.000 claims description 5
- 230000007423 decrease Effects 0.000 claims description 3
- 230000008859 change Effects 0.000 claims description 2
- 238000005192 partition Methods 0.000 claims 1
- 230000015654 memory Effects 0.000 description 19
- 230000006870 function Effects 0.000 description 15
- 238000007726 management method Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 12
- 230000004044 response Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000013508 migration Methods 0.000 description 6
- 230000005012 migration Effects 0.000 description 6
- 239000002184 metal Substances 0.000 description 5
- 239000007787 solid Substances 0.000 description 3
- 206010047289 Ventricular extrasystoles Diseases 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000005129 volume perturbation calorimetry Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种分布式文件系统,应用于云存储领域,所述分布式文件系统包括多个请求接入模块、多个数据存储模块和至少一个元数据存储模块,所述多个请求接入模块、所述多个数据存储模块和所述至少一个元数据存储模块均位于云环境中,所述多个请求接入模块工作于并行模式。本申请提供的分布式文件系统面对故障情况能够灵活切换,在读写能力、扩展性、可用性方面有较好的性能。
Description
技术领域
本申请涉及云存储领域,尤其涉及一种分布式文件系统。
背景技术
操作系统中负责管理和存储文件信息的软件称为文件管理系统,简称文件系统,即文件系统是对存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。例如,文件系统负责将用户的文件写入存储设备;当用户需要获取文件时,还负责将用户的文件从存储设备中读出;文件系统还负责用户修改文件;还负责将用户的文件进行转储;文件系统还负责为用户创建文件、删除文件、修改文件的属性等等。
目前的文件系统存在性能瓶颈,比如故障切换不灵活等,已不能满足市场的需求。
发明内容
本申请提供了一种分布式文件系统,所述分布式文件系统位于云环境中,本申请提供的分布式文件系统具有故障切换灵活、高带宽、高IOPS性能、可用性好的特点。
第一方面,本申请提供了一种分布式文件系统,所述文件系统包括多个请求接入模块、多个数据存储模块和至少一个元数据存储模块,所述多个请求接入模块、所述多个数据存储模块和所述至少一个元数据存储模块均位于云环境中,所述多个请求接入模块工作于并行模式。
可以看到,本申请提供了一种分布式文件系统,所述分布式文件系统位于云环境中,相对于位于本地独立设备上的文件系统来说,位于云环境中的分布式文件系统具有更好的性能,比如更容易扩容、性能更容易扩展、稳定性更强等。分布式文件系统中包括多个请求接入模块,多个请求接入模块工作于并行模式,每秒钟分布式文件系统能够处理的请求数量更多,本申请提供的分布式文件系统具有高IOPS、高带宽的特性。
基于第一方面,在可能的实现方式中,所述多个请求接入模块中的各个请求接入模块分别部署在所述云环境中不同的物理主机上,所述多个数据存储模块中的各个数据存储模块分别部署在所述云环境中不同的物理主机上。
可以理解,多个请求接入模块中的各个请求接入模块分别部署在不同的物理主机上,可以避免将多个请求接入模块部署在一个物理主机上,在这一个主机发生故障的情况下,整个文件系统不能使用的情况。同理,将多个数据存储模块中的各个数据存储模块分别部署在不同的物理主机上,可避免将多个数据存储模块部署在一个物理主机上,在这个物理主机发生故障的情况下,整个文件系统不能使用的情况。
基于第一方面,在可能的实现方式中,所述一个请求接入模块、所述多个数据存储模块中的一个数据存储模块以及所述至少一个元数据存储模块中的一个元数据存储模块的任意两者或两者以上部署在所述云环境中的一个物理主机上,或者,所述一个请求接入模块、所述一个数据存储模块和所述一个元数据存储模块部署在所述云环境中的不同物理主机上。
基于第一方面,在可能的实现方式中,所述多个请求接入模块、所述多个数据存储模块和所述至少一个元数据存储模块部署在所述云环境中的虚拟机上。
可以理解,请求接入模块、数据存储模块、元数据存储模块均可以部署在云环境中的虚拟机上。
基于第一方面,在可能的实现方式中,所述至少一个元数据存储模块工作于主备模式,在所述主备模式下,所述至少一个元数据存储模块中的其中一个元数据存储模块处于工作状态。
可以理解,可以将至少一个元数据存储模块部署在不同的物理主机上,可以避免部署在一个物理主机上,在该物理主机发生故障的情况下,整个文件系统不能使用的情况。至少一个元数据存储模块工作于主备模式,文件系统中只需一个元数据存储模块处于工作状态即可,只有在该元数据存储模块发生故障的情况,启动另一个元数据存储模块,使其处于工作状态,保障文件系统能够正常运行。
基于第一方面,在可能的实现方式中,所述多个请求接入模块中的各个请求接入模块,用于并行接收至少一个请求。
可以理解,多个请求接入模块工作于并行模式,一方面体现在,多个请求接入模块并行接收多个请求,提高了每秒钟处理请求的数量(IOPS)。
基于第一方面,在可能的实现方式中,所述多个请求接入模块中的任意一个请求接入模块,用于将所述至少一个请求并行发送至所述多个数据存储模块或一个数据存储模块;
所述多个数据存储模块中的各个数据存储模块,用于并行处理所述至少一个请求;
或者,
所述多个请求接入模块中的各个请求接入模块,用于将所述至少一个请求发送至所述至少一个元数据存储模块中处于工作状态下的元数据存储模块中。
可以理解,多个请求接入模块工作于并行模式,一方面体现在,多个请求接入模块将多个请求并行发送至一个或多个数据存储模块,或者,多个请求接入模块将多个请求并行发送至元数据存储模块。多个数据存储模块也是工作于并行模式,体现在,多个数据存储模块并行处理多个请求。多个请求接入模块和多个数据存储模块工作于并行模式,提高了文件系统的处理请求的效率,本申请提供的分布式文件系统具有高IOPS、高带宽的特性。
基于第一方面,在可能的实现方式中,所述文件系统用于将云环境中的存储池划分为多个共享卷,所述多个共享卷中的每个共享卷的读写权限归属于所述多个数据存储模块中的其中一个数据存储模块。
基于第一方面,在可能的实现方式中,所述至少一个元数据存储模块中处于工作状态下的元数据存储模块还用于,在所述文件系统中的数据存储模块的数量增加或减少的情况下,改变所述多个共享卷中部分共享卷的读写权限的归属权,将所述多个共享卷的读写权限的归属权均衡地划分至所述文件系统中的各个数据存储模块中。
可以看到,分布式文件系统中的元数据存储模块具有改变共享卷的读写权限的归属权的功能,当文件系统中数据存储模块的数量发生改变的情况下,可以通过改变部分共享卷的读写权限的归属权,来均衡地将多个共享卷划分至各个数据存储模块中,无需复制数据,使得数据的迁移工作更加方便。
基于第一方面,在可能的实现方式中,所述至少一个元数据存储模块中处于工作状态下的元数据存储模块还用于:
监控所述多个数据存储模块的状态,所述状态包括异常状态和正常状态;
在监控到所述多个数据存储模块中存在异常状态的数据存储模块的情况下,其中所述异常状态的数据存储模块具有所述多个共享卷中的至少一个共享卷的读写权限,将所述至少一个共享卷的读写权限更改为归属于正常状态的一个或多个数据存储模块。
基于第一方面,在可能的实现方式中,所述文件系统用于增大或减小所述存储池中各个共享卷的大小。
基于第一方面,在可能的实现方式中,通过增加所述文件系统中所述请求接入模块的数量和/或所述数据存储模块的数量,提升所述文件系统的性能,所述性能包括每秒执行读写操作的次数IOPS。
可以理解,本申请提供的分布式文件系统,可以通过扩展请求接入模块的数量或者数据存储模块的数量,实现文件系统性能的扩展;可以通过扩展数据存储模块的容量,实现文件系统容量的扩展;可实现文件系统性能扩展和容量扩展。本申请提供的分布式文件系统具有高可用性。
第二方面,本申请提供了一种系统,包括文件系统和存储池,所述文件系统为上述第一方面或第一方面的任意一种可能的实现方式所描述的文件系统。
第三方面,本申请提供了一种包含指令的计算机程序产品,当所述指令被计算设备集群运行时,使得所述计算设备集群用于实现上述第一方面或第一方面的任意一种可能的实现方式所描述的文件系统。
第四方面,本申请提供了一种计算机可读存储介质,包括计算机程序指令,当所述计算机程序指令由计算设备集群执行时,使得所述计算设备集群用于实现上述第一方面或第一方面的任意一种可能的实现方式所描述的文件系统。
附图说明
图1为本申请提供的一种系统架构示意图;
图2为本申请提供的又一种系统架构示意图;
图3为本申请提供的一种场景示意图;
图4为本申请提供的又一种场景示意图;
图5为本申请提供的一种分布式文件系统的结构示意图;
图6为本申请提供的一种计算设备集群的结构示意图;
图7为本申请提供的又一种计算设备集群的结构示意图。
具体实施方式
本申请提供了一种系统,参见图1所示的系统架构示意图,所述系统涉及文件系统和存储池。
存储池由一个或多个硬盘组成。硬盘无法单独使用,需要插入至服务器中使用,可以通过对服务器上的硬盘进行操作,把数据存储在硬盘中。其中,所述存储池可以位于云环境中,简称为云存储池,云存储池由一个或多个云硬盘组成,云硬盘可以插入至云服务器中,云服务器例如可以是弹性云服务器(elastic cloud server,ECS)、容器、裸金属服务器(bare metal server,BMS)等。
文件系统主要包括请求接入模块、元数据存储模块和数据存储模块,文件系统中的各个模块均部署在一个虚拟机上。
其中,请求接入模块用于接收用户通过终端设备发送的请求,其中,终端设备例如可以是手机、台式电脑、笔记本、平板电脑等。请求例如可以是数据请求,数据请求包括写请求和读请求,写请求用于将数据写入某个文件,读请求用于读取某个文件中的数据;请求例如还可以是元数据请求,元数据请求例如包括创建文件的请求、删除文件的请求、修改/设置文件的属性的请求等;请求还可以是其他请求,比如建立连接请求,建立连接请求用于用户的终端设备与文件系统建立连接。这里请求的类型只是一种举例说明,并不是对本申请的限定。
请求中携带了标识,不同类型的请求携带的标识不同,请求接入模块能够根据携带的标识确定请求的类型。请求接入模块还用于将接收到的请求发送至元数据存储模块或数据存储模块,例如,在请求为元数据请求的情况下,请求接入模块用于将请求发送至元数据存储模块,在请求为数据请求的情况下,请求接入模块用于将请求发送至数据存储模块。
元数据存储模块,用于接收请求接入模块发送的请求,并根据请求生成元数据和目录树。
数据存储模块,用于将存储池中的硬盘格式化为多个xfs子文件系统,其中,一个xfs相当于一个卷。数据存储模块还用于接收请求接入模块发送的请求,若请求为写请求,则数据存储模块用于将写请求中携带的数据写入硬盘中,若请求为读请求,则数据存储模块用于从硬盘中读取数据,并将读取的数据通过请求接入模块发送至用户的终端设备。
可选的,可以在两个虚拟机上分别部署图1所示的文件系统,其中两个虚拟机位于不同的物理主机上,每个虚拟机上的文件系统均包括请求接入模块、元数据存储模块和数据存储模块。两个虚拟机上的文件系统中,只有一个虚拟机上的文件系统处于工作状态,在该虚拟机上的文件系统或该虚拟机故障的情况下,业务切换至另一个虚拟机上。
本申请提供了又一种系统,参见图2所示,图2为本申请提供的又一种系统架构示意图。系统涉及分布式文件系统和云存储池,其中,分布式文件系统包括多个请求接入模块、多个数据存储模块和至少一个元数据存储模块,分布式文件系统中的各个模块均部署在云环境中。
多个请求接入模块分别部署在不同的物理主机上,多个数据存储模块分别部署在不同的物理主机上,至少一个元数据存储模块中的各个元数据存储模块分别部署在不同的物理主机上,其中,物理主机为服务器,例如,弹性云服务器或裸金属服务器。可以理解,一个请求接入模块、一个数据存储模块和一个元数据存储模块中的任意一者或任意多者的组合可以位于同一物理主机上,例如,一个请求接入模块和一个数据存储模块位于一个物理主机上,或者,一个请求接入模块和一个元数据存储模块位于同一个物理主机上,或者,一个请求接入模块、一个数据存储模块和一个元数据存储模块均位于同一物理主机,等等。换个角度说,一个物理主机上可以包括一个请求接入模块、一个数据存储模块和一个元数据存储模块中的任意一者或任意多者的组合。
通常,一个物理主机上不可以包括两个或两个以上请求接入模块,一个物理主机上也不可以包括两个或两个以上数据存储模块,一个物理主机上不可以包括两个或两个以上元数据存储模块,这种部署方式是为了避免当一个物理主机发生故障的情况下,多个请求接入模块均不能使用或者多个数据存储模块均不能使用或者多个元数据存储模块均不能使用。
分布式文件系统中的各个模块均部署在虚拟机上,具体的,多个请求接入模块分别部署在不同物理主机上的虚拟机上,多个数据存储模块分别部署在不同物理主机上的虚拟机上,至少一个元数据存储模块分别部署在不同物理主机上的虚拟机上。
在一种实现方式中,分布式文件系统中包括两个元数据存储模块,两个元数据存储模块工作于主备模式,在主备模式下,只有一个元数据存储模块处于工作状态,这里工作状态指的是接收文件系统中的多个请求接入模块发送的请求,并对请求进行处理,以及对文件系统中的多个数据存储模块进行监控(这一点在下文中介绍,在此不展开描述)。只有在该元数据存储模块故障的情况下,业务才切换至另一个元数据存储模块,另一个元数据存储模块处于工作状态。简言之,虽然分布式文件系统中包括至少一个元数据存储模块,但只有其中一个元数据存储模块处于工作状态。
下面介绍一下文件系统中各个模块是如何处理用户发送的请求的。
多个请求接入模块,用于并行接收至少一个请求,至少一个请求是由至少一个用户发送的。并行接收指的是在同一时刻,多个请求接入模块中的各个请求接入模块均能接收请求,例如,请求接入模块1用于接收请求1,请求接入模块2用于接收请求2,请求接入模块n用于接收请求n。文件系统中设置多个请求接入模块,多个请求接入模块通过并行方式接收请求,提升了文件系统的带宽,提高了请求的处理效率。
多个请求接入模块中的各个请求接入模块还用于将请求发送至元数据存储模块,元数据存储模块用于对接收到的请求进行处理。或者,多个请求接入模块中的各个请求接入模块,用于并行将请求发送至一个或多个数据存储模块,多个数据存储模块用于并行处理请求,根据请求从云存储池中读取数据或将数据写入云存储池中。多个请求接入模块在将请求发送至一个或多个数据存储模块时是并行发送的,即在同一时刻多个请求接入模块可同时发送;对于多个请求接入模块中的一个请求接入模块来说,一个请求接入模块可以将多个请求并行发送至多个数据存储模块,即在同一时刻一个请求接入模块将多个请求并行发送至多个数据存储模块。文件系统中设置多个数据存储模块,请求接入模块通过并行发送方式将请求发送至多个数据存储模块,多个数据存储模块并行处理请求,增加了请求处理速率,提高了处理效率,增加了文件系统每秒处理读写操作的次数(input/outputoperations per second,IOPS),提升了文件系统的性能,提高了用户使用体验。
请求接入模块接收到的请求可以为元数据请求,元数据请求例如可以是创建文件的请求、删除文件的请求、设置/修改文件属性的请求等,也可以为数据请求,数据请求例如可以是读请求、写请求。请求中携带了标识信息,标识信息用于标识请求的类型,请求接入模块根据标识信息可以确定请求是什么请求,比如,根据标识信息可以确定该请求是读请求还是写请求还是元数据请求中的哪一种请求。请求还可以是其他请求,比如建立连接请求,建立连接请求用于建立终端设备与文件系统之间的连接,本申请对请求的类型不做限定。
在一种示例中,请求为元数据请求。请求接入模块接收到请求后,根据标识信息确定该请求为元数据请求,则将该请求发送至元数据存储模块;元数据存储模块接收到请求,对请求进行处理。例如,若请求为创建文件的请求,则元数据存储模块新建一个文件,若请求为删除文件的请求,则元数据存储模块删除请求中所指定的文件,若请求为设置/修改文件属性的请求,则元数据存储模块根据请求对指定文件设置/修改属性。可选的,元数据存储模块处理完成后,向请求接入模块发送响应消息,响应消息用于指示请求处理完成,请求接入模块再将响应消息发送至终端设备(用户)。
在一种示例中,请求为数据请求,具体的请求为写请求。请求接入模块接收到请求后,根据标识信息确定该请求为写请求,若请求中携带的数据量较大,则请求接入模块将请求中携带的数据打散、分块,例如,可以将请求中携带的数据按照4M大小分块,将划分后的多个数据块发送至一个数据存储模块或并行发送至多个数据存储模块。每个数据存储模块接收到请求接入模块发送的数据块后,请数据块中的数据写入缓存中,待到缓存中的数据达到阈值后,将缓存中的数据写入至存储池中。若请求中携带的数据量较小,比如,数据小于4M,则请求接入模块无需将数据打散、分块,可直接将数据发送至某个数据存储模块,数据存储模块接收到数据后,将数据写入缓存中,待到缓存中的数据达到阈值后,将缓存中的数据写入至存储池中。
其中,请求接入模块确定各个数据块存储至哪个或哪些数据存储模块中,以及存储至存储池中的哪个卷或哪些卷中,并保存各个数据块与数据存储模块、卷标识之间的对应关系。其中,打散、分块算法本申请不做限定。本实施例中,4M仅仅是一个示例,实际应用中,当数据大小超过多少时需要进行打散、分块,本申请不做限定,可以根据具体情况具体设置。每个数据块的大小是多少,本申请不做限定,可以具体情况具体设置。数据存储模块中当缓存中的数据达到阈值时,将缓存中的数据写入存储池中,其中,关于阈值本申请不做限定,实际应用中,可以根据具体情况具体设置。
可选的,数据存储模块将数据写入缓存后,向请求接入模块返回响应消息,响应消息用于指示请求处理完成,请求接入模块再将响应消息发送至用户所在的终端设备。
在一种示例中,请求为数据请求,具体的请求为读请求。请求接入模块接收到请求后,根据标识信息确定该请求为读请求,请求接入模块根据请求中携带的信息判断请求是否合理,比如,待读取文件是否存在,若合理,请求接入模块根据请求确定待读取文件所在的数据存储模块是哪一个,并向所在的数据存储模块发送读取请求。数据存储模块接收到读取请求后,从缓存中读取文件中的数据,并将读取的文件中的数据返回至请求接入模块,请求接入模块再将文件中的数据发送至终端设备(用户),若从缓存中未读取到文件中的数据,则数据存储模块向文件所在的卷中读取数据,再将数据通过请求接入模块发送至终端设备。若请求接入模块判断请求不合理,则向终端设备返回响应消息,这里的响应消息用于指示请求不合理。
可选的,如图2所示,元数据存储模块中包括元数据子模块和管理子模块。
元数据子模块用于根据请求生成并存储整个文件系统的元数据和整个文件系统的目录树,元数据例如包括文件大小、文件的属性等。
管理子模块用于管理文件系统中的各个数据存储模块与存储池中的卷之间的映射关系,比如,文件系统中包括数据存储模块1、数据存储模块2、数据存储模块3,存储池中包括卷1、卷2、卷3、卷4、卷5、卷6、卷7、卷8,管理子模块负责分配、管理它们之间的映射关系,比如,将卷1、卷2、卷3的读写权限归属于数据存储模块1,将卷4、卷5、卷6的读写权限归属于数据存储模块2,将卷7、卷8的读写权限归属于数据存储模块3。
管理子模块还用于监控文件系统中各个数据存储模块的状态。
例如,参见图3所示的场景示意图,管理子模块通过心跳检测机制来监控文件系统中各个数据存储模块的状态。在图3所示的场景示意图中,各个数据存储模块周期性地向元数据存储模块中的管理子模块上报心跳,管理子模块接收各个数据存储模块上报的心跳,若管理子模块在连续的一段时间内或者连续几次未收到某个数据存储模块发送的心跳,则管理子模块确定该数据存储模块状态异常,并将该数据存储模块上具有(承载)的多个共享卷迁移至其他一个或多个数据存储模块上。例如,若文件系统包括数据存储模块1、数据存储模块2和数据存储模块3,数据存储模块1上包括卷1、卷2、卷3,管理子模块在监控到数据存储模块1状态异常的情况下,将数据存储模块1上的卷1迁移至数据存储模块2上,将卷2和卷3迁移至数据模块3上。具体的,将状态异常的数据存储模块上的卷迁移至哪几个数据存储模块上,可由管理子模块计算确定,本申请不做限定。
需要说明的是,本申请中,云存储池可采用多个共享云硬盘组成,共享云硬盘中的卷称为共享卷。本申请结合SCSI(small computer system interface)模式使用共享云硬盘,即SCSI类型的共享云硬盘,SCSI锁的机制是,通过指令来执行锁的操作,当一个服务器给某个共享卷输入锁指令,则这个共享卷只允许该服务器执行读写操作,即只有该服务器对该共享卷具有读写操作的权限,其他服务器对该共享卷不具有读写操作的权限。
文件系统中的每个数据存储模块都有一个全局唯一的锁,每个数据存储模块通过SCSI锁向共享卷注册,只有在共享卷上注册成功的数据存储模块才具有对该共享卷的读写操作能力,其他数据存储模块对该共享卷不具有读写能力。其中,各个数据存储模块通过SCSI协议标准向共享卷注册。在管理子模块监控到某个数据存储模块状态异常的情况下,将状态异常的数据存储模块上的共享卷迁移至其他数据存储模块上时,迁移的过程无需复制数据,无需数据搬移,只需通过指令改变共享卷的读写权限的归属权。比如,在数据存储模块1状态异常的情况下,将数据存储模块1上的卷1的读写权限修改为归属于数据存储模块2,将数据存储模块1上的卷2和卷3的读写权限修改为归属于数据存储模块3。
可以理解,可以通过增加文件系统中数据存储模块的数量来提高文件系统的性能。例如,当用户对文件系统的读写能力有更高的要求时,可以通过扩展数据存储模块的数量,提升数据读写能力。
元数据存储模块中的管理子模块根据算法,将多个共享卷均衡地分布到文件系统中的数据存储模块中。参见图4所示的场景示意图,当文件系统中数据存储模块的数量增加时,元数据存储模块根据更新后数据存储模块的数量,重新分配各个共享卷的读写权限的归属权,使得各个数据存储模块上的共享卷的数量相对均衡。但在重新分配各个共享卷的读写权限的归属权时,尽可能减少各个数据存储模块上的共享卷的读写权的变化。比如,一共有56个共享卷,文件系统中包括3个数据存储模块,其中,数据存储模块1上有19个共享卷,数据存储模块2上有19个共享卷,数据存储模块3上有18个共享卷,当增加数据存储模块4时,则文件系统中包括4个数据存储模块,一共有56个共享卷,则均衡地将56个共享卷承载在4个数据存储模块上,每个数据存储模块上包括14个共享卷,从数据存储模块1上迁移出5个共享卷至数据存储模块4,从数据存储模块2上迁移出5个共享卷至数据存储模块4,从数据存储模块3上迁移出4个共享卷至数据存储模块4,这样数据存储模块4上共有14个共享卷,同时保证了其他数据存储模块上的共享卷的变化较小。
可以理解,在文件系统中的某个数据存储模块发生故障或状态异常的情况下,元数据存储模块中的管理子模块还用于将发生故障或状态异常的数据存储模块上的共享卷均衡地迁移至其他数据存储模块上,以保证各个数据存储模块上包括的共享卷的数量相对是均匀的。
可以理解,可以通过扩展每个共享卷的容量,来扩展文件系统所管理的云存储池中的存储空间大小,实现在线扩容。在线扩容时无需数据迁移。
可以看到,本申请提供了一种分布式文件系统,包括多个请求接入模块和多个数据存储模块,1)多个请求接入模块可用于并行接收各个用户发送的请求,多个数据存储模块可用于并行处理请求,因此本申请提供的分布式文件系统具有高IOPS、高带宽的特性;2)当文件系统中的数据存储模块数量增加或减少时,可将云存储池中的多个共享卷均衡地划分至文件系统中的各个数据存储模块中;3)在进行共享卷的迁移时,无需数据复制或数据搬移,只需改变需要迁移的共享卷的读写操作的归属权,实现数据的平滑迁移;4)本申请中,可以通过增加请求接入模块和/或数据存储模块的数量,来提高文件系统的性能,可以通过增加每个共享卷的大小,实现文件系统管理的云存储池中存储空间的扩展,文件系统的性能扩展和容量扩展可单独实现。
本申请提供了一种分布式文件系统500,参见图5所示,图5为本申请提供的一种分布式文件系统500的结构示意图,所述分布式文件系统500包括多个请求接入模块501、多个数据存储模块502和至少一个元数据存储模块503。请求接入模块501可以为图2至图4实施例中的请求接入模块,用于实现上述实施例中的请求接入模块的任意一种功能,元数据存储模块503可以为图2至图4实施例中的元数据存储模块,用于实现上述实施例中的元数据存储模块的任意一种功能,数据存储模块502可以为图2至图4实施例中的数据存储模块,用于实现上述实施例中的数据存储模块的任意一种功能,为了说明书的简洁在此不再赘述,具体参见上述实施例的相关描述。
模块作为硬件功能单元的一种举例,请求接入模块501可以包括至少一个计算设备,如裸金属服务器、虚拟机、容器等。或者,请求接入模块501也可以是利用专用集成电路(application-specific integrated circuit,ASIC)实现、或可编程逻辑器件(programmable logic device,PLD)实现的设备等。其中,上述PLD可以是复杂程序逻辑器件(complex programmable logical device,CPLD)、现场可编程门阵列(field-programmable gate array,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合实现。
请求接入模块501包括的多个计算设备可以分布在相同的region中,也可以分布在不同的region中。请求接入模块501包括的多个计算设备可以分布在相同的AZ中,也可以分布在不同的AZ中。同样,请求接入模块501包括的多个计算设备可以分布在同一个VPC中,也可以分布在多个VPC中。其中,所述多个计算设备可以是服务器、ASIC、PLD、CPLD、FPGA和GAL等计算设备的任意组合。
需要说明的是,在其他实施例中,请求接入模块501可以用于执行分布式文件系统的部分功能,数据存储模块502和元数据存储模块503均可以用于执行分布式文件系统的部分功能,请求接入模块501、数据存储模块502和元数据存储模块503负责实现的功能可根据需要指定,通过请求接入模块501、数据存储模块502和元数据存储模块503分别实现分布式文件系统中不同的功能,来实现分布式文件系统的全部功能。
本申请实施例提供了一种计算设备集群,参见图6,图6为本申请提供的一种计算设备集群的结构示意图,该计算设备集群包括至少一台计算设备600,计算设备600可以是裸金属服务器(物理主机)、虚拟机、容器等。计算设备600包括:总线602、处理器604、存储器606和通信接口608。处理器604、存储器606和通信接口608之间通过总线602通信。应理解,本申请不限定计算设备600中的处理器、存储器的个数。
总线602可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。总线602可包括在计算设备600各个部件(例如,存储器606、处理器604、通信接口608)之间传送信息的通路。
处理器604可以包括中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)、微处理器(micro processor,MP)或者数字信号处理器(digital signal processor,DSP)等处理器中的任意一种或多种。
存储器606可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。处理器604还可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器,机械硬盘(hard diskdrive,HDD)或固态硬盘(solid state drive,SSD)。
存储器606中存储有可执行的程序代码,处理器604执行该可执行的程序代码以分别实现前述请求接入模块501、数据存储模块502、元数据存储模块503中的一个或多个模块的功能,从而使得计算设备集群实现一种分布式文件系统。
通信接口608使用例如但不限于网络接口卡、收发器一类的收发模块,来实现计算设备600与其他设备或通信网络之间的通信。
在一些可能的实现方式中,该计算设备集群中的一个或多个计算设备600的存储器606中可以分别存有用于执行一种分布式文件系统的部分指令。换言之,多个计算设备600的组合可用于共同执行一种分布式文件系统的指令。
需要说明的是,计算设备集群中的不同的计算设备600中的存储器606可以存储不同的指令,分别用于执行分布式文件系统的部分功能。也即,不同的计算设备600中的存储器606存储的指令可以实现分布式文件系统中一个或多个模块的功能。
在一些可能的实现方式中,计算设备集群中的一个或多个计算设备600可以通过网络连接。其中,所述网络可以是广域网或局域网等等。图7示出了一种可能的实现方式。如图7所示,两个计算设备600A和600B之间通过网络进行连接。具体地,通过各个计算设备中的通信接口与所述网络进行连接。在这一类可能的实现方式中,计算设备600A中的存储器606中存有执行请求接入模块501、数据存储模块502、元数据存储模块503的功能的指令。同时,计算设备600B中的存储器606中存有执行请求接入模块501和数据存储模块502的功能的指令。
图7所示的计算设备集群之间的连接方式,计算设备600A可以看作为一个物理主机或虚拟机或容器,计算设备600A所在的物理主机或虚拟机或容器中包含了请求接入模块501、数据存储模块502、元数据存储模块503,计算设备600A上的处理器604可执行存储器606中请求接入模块501的代码、数据存储模块502的代码、元数据存储模块503的代码,用于实现请求接入模块501、数据存储模块502、元数据存储模块503所具有的功能。计算设备600B可以看作请求接入模块501、数据存储模块502所在的物理主机或虚拟机或容器,计算设备600B上的处理器604可执行存储器606中请求接入模块501的代码、数据存储模块502的代码,用于实现请求接入模块501、数据存储模块502所具有的功能。例如,计算设备600B上的请求接入模块501将请求发送至计算设备600A上的元数据存储模块503;计算设备600B上的数据存储模块502向计算设备600A上的元数据存储模块上报心跳;等等。
应理解,图7中示出的计算设备600A的功能也可以由多个计算设备600完成,或者云服务平台中包括多个与计算设备600A具有相同功能的计算设备。同样,计算设备600B的功能也可以由多个计算设备600完成,或者云服务平台中包括多个与计算设备600B具有相同功能的计算设备。
本申请实施例还提供了另一种计算设备集群。该计算设备集群中各计算设备之间的连接关系可以类似的参考图6和图7所述计算设备集群的连接方式。不同的是,该计算设备集群中的一个或多个计算设备600中的存储器606中可以存有不同的用于执行一种分布式文件系统的部分指令,用于执行分布式文件系统的部分功能。在一些可能的实现方式中,该计算设备集群中的一个或多个计算设备600的存储器606中也可以分别存有用于执行一种分布式文件系统的部分指令。换言之,一个或多个计算设备600的组合可以共同执行用于执行一种分布式文件系统的全部指令。
本申请提供了一种系统,所述系统包括分布式文件系统和存储池,分布式文件系统可以是上述图2至图7实施例所述的任意一种文件系统。
本申请提供了一种包含指令的计算机程序产品,当所述指令被计算设备集群运行时,使得所述计算设备集群用于实现上述实施例中的任意一种文件系统。
本申请提供了一种计算机可读存储介质,包括计算机程序指令,当所述计算机程序指令由计算设备集群执行时,使得所述计算设备集群用于实现上述实施例中的任意一种文件系统。所述介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,所述指令指示计算设备集群执行一种分布式文件系统。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的保护范围。
Claims (16)
1.一种分布式文件系统,其特征在于,所述文件系统包括多个请求接入模块、多个数据存储模块和至少一个元数据存储模块,所述多个请求接入模块、所述多个数据存储模块和所述至少一个元数据存储模块均位于云环境中,所述多个请求接入模块工作于并行模式。
2.根据权利要求1所述的文件系统,其特征在于,所述多个请求接入模块中的各个请求接入模块分别部署在所述云环境中不同的物理主机上,所述多个数据存储模块中的各个数据存储模块分别部署在所述云环境中不同的物理主机上。
3.根据权利要求1或2所述的文件系统,其特征在于,所述一个请求接入模块、所述多个数据存储模块中的一个数据存储模块以及所述至少一个元数据存储模块中的一个元数据存储模块的任意两者或两者以上部署在所述云环境中的一个物理主机上,或者,所述一个请求接入模块、所述一个数据存储模块和所述一个元数据存储模块部署在所述云环境中的不同物理主机上。
4.根据权利要求1-3任一项所述的文件系统,其特征在于,所述多个请求接入模块、所述多个数据存储模块和所述至少一个元数据存储模块部署在所述云环境中的虚拟机上。
5.根据权利要求1-4任一项所述的文件系统,其特征在于,所述至少一个元数据存储模块工作于主备模式,在所述主备模式下,所述至少一个元数据存储模块中的其中一个元数据存储模块处于工作状态。
6.根据权利要求1-5任一项所述的文件系统,其特征在于,所述多个请求接入模块中的各个请求接入模块,用于并行接收至少一个请求。
7.根据权利要求6所述的文件系统,其特征在于,
所述多个请求接入模块中的任意一个请求接入模块,用于将所述至少一个请求并行发送至所述多个数据存储模块或一个数据存储模块;
所述多个数据存储模块中的各个数据存储模块,用于并行处理所述至少一个请求;
或者,
所述多个请求接入模块中的各个请求接入模块,用于将所述至少一个请求发送至所述至少一个元数据存储模块中处于工作状态下的元数据存储模块中。
8.根据权利要求1-7任一项所述的文件系统,其特征在于,所述文件系统用于将云环境中的存储池划分为多个共享卷,所述多个共享卷中的每个共享卷的读写权限归属于所述多个数据存储模块中的其中一个数据存储模块。
9.根据权利要求8所述的文件系统,其特征在于,所述至少一个元数据存储模块中处于工作状态下的元数据存储模块还用于,在所述文件系统中的数据存储模块的数量增加或减少的情况下,改变所述多个共享卷中部分共享卷的读写权限的归属权,将所述多个共享卷的读写权限的归属权均衡地划分至所述文件系统中的各个数据存储模块中。
10.根据权利要求8或9所述的文件系统,其特征在于,所述至少一个元数据存储模块中处于工作状态下的元数据存储模块还用于:
监控所述多个数据存储模块的状态,所述状态包括异常状态和正常状态;
在监控到所述多个数据存储模块中存在异常状态的数据存储模块的情况下,其中所述异常状态的数据存储模块具有所述多个共享卷中的至少一个共享卷的读写权限,将所述至少一个共享卷的读写权限更改为归属于正常状态的一个或多个数据存储模块。
11.根据权利要求8至10任一项所述的文件系统,其特征在于,所述文件系统用于增大或减小所述存储池中各个共享卷的大小。
12.根据权利要求1-11任一项所述的文件系统,其特征在于,通过增加所述文件系统中所述请求接入模块的数量和/或所述数据存储模块的数量,提升所述文件系统的性能,所述性能包括每秒执行读写操作的次数IOPS。
13.一种系统,其特征在于,包括文件系统和存储池,所述文件系统为如权利要求1-12任一项所述的文件系统,所述存储池位于云环境中。
14.一种计算设备集群,其特征在于,包括至少一个计算设备,所述至少一个计算设备用于执行如权利要求1-12任一项所述的文件系统。
15.一种包含指令的计算机程序产品,其特征在于,当所述指令被计算设备集群运行时,使得所述计算设备集群用于执行如权利要求1-12任一项所述的文件系统。
16.一种计算机可读存储介质,其特征在于,包括计算机程序指令,当所述计算机程序指令由计算设备集群运行时,使得所述计算设备集群用于执行如权利要求1-12任一项所述的文件系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211182514.4A CN117827757A (zh) | 2022-09-27 | 2022-09-27 | 一种分布式文件系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211182514.4A CN117827757A (zh) | 2022-09-27 | 2022-09-27 | 一种分布式文件系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117827757A true CN117827757A (zh) | 2024-04-05 |
Family
ID=90519552
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211182514.4A Pending CN117827757A (zh) | 2022-09-27 | 2022-09-27 | 一种分布式文件系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117827757A (zh) |
-
2022
- 2022-09-27 CN CN202211182514.4A patent/CN117827757A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10409508B2 (en) | Updating of pinned storage in flash based on changes to flash-to-disk capacity ratio | |
US10282136B1 (en) | Storage system and control method thereof | |
EP3188449B1 (en) | Method and system for sharing storage resource | |
US8447943B2 (en) | Reduction of I/O latency for writable copy-on-write snapshot function | |
CN110096220B (zh) | 一种分布式存储系统、数据处理方法和存储节点 | |
US11809707B2 (en) | File operations in a distributed storage system | |
CN109582213B (zh) | 数据重构方法及装置、数据存储系统 | |
US20150199147A1 (en) | Storage thin provisioning and space reclamation | |
EP3992792A1 (en) | Resource allocation method, storage device, and storage system | |
JP2020101949A (ja) | ストレージシステム及びストレージシステム制御方法 | |
US11899533B2 (en) | Stripe reassembling method in storage system and stripe server | |
CN114253908A (zh) | 键值存储系统的数据管理方法及其装置 | |
JP4175083B2 (ja) | 記憶装置の管理用計算機、およびプログラム | |
US7849264B2 (en) | Storage area management method for a storage system | |
US11422893B2 (en) | Storage system spanning multiple failure domains | |
CN112749178A (zh) | 一种保证数据一致性的方法及相关设备 | |
CN115061634A (zh) | 一种系统业务负载分配方法、装置、介质 | |
EP3859506B1 (en) | Node expansion method in storage system and storage system | |
US11855868B2 (en) | Reducing the impact of network latency during a restore operation | |
CN117827757A (zh) | 一种分布式文件系统 | |
CN112445413A (zh) | 一种数据存储的方法、装置及相关设备 | |
CN113302597A (zh) | 分布式存储系统和分布式存储系统中垃圾回收方法 | |
US11150827B2 (en) | Storage system and duplicate data management method | |
JP2024049171A (ja) | ユニファイドストレージ及びユニファイドストレージの制御方法 | |
JP2022020744A (ja) | ストレージシステム及びストレージ制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |