CN109189731A - 一种联合文件系统文件负载均衡方法及装置 - Google Patents
一种联合文件系统文件负载均衡方法及装置 Download PDFInfo
- Publication number
- CN109189731A CN109189731A CN201810708747.0A CN201810708747A CN109189731A CN 109189731 A CN109189731 A CN 109189731A CN 201810708747 A CN201810708747 A CN 201810708747A CN 109189731 A CN109189731 A CN 109189731A
- Authority
- CN
- China
- Prior art keywords
- priority
- file
- file system
- union
- level
- 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
Abstract
本发明公开了一种联合文件系统文件负载均衡方法及装置,在联合文件系统的多个层级目录中进行文件IO负载均衡,按照联合文件系统的次序,将各个层级的优先级映射到以[0,优先级总值]为端点的一条线段上,用于查找IO目标的标识在该线段中的位置所对应的层级目录;通过使用文件IO的路径作为哈希的主体,来进行一致性的哈希,保证了同一文件的IO总是发生在同一个层级,大大的提升了IO的效率,不需要进行复杂的文件发现和同步,该方法具有调度均衡,性能优秀的特点。
Description
技术领域
本公开涉及计算机领域,具体涉及一种联合文件系统文件负载均衡方法及装置。
背景技术
联合文件系统是一种虚拟的文件系统,它并不具备真正的实体,而是通过将多个实体的文件系统聚合在一起,形成一个层级,构成的一个虚拟的文件系统,对这个文件系统的读写,将会映射到层级聚合的实体文件系统中。联合文件系统(UnionFS)是一种轻量级的高性能分层文件系统,它支持将文件系统中的修改信息作为一次提交,并层层叠加,同时可以将不同目录挂载到同一个虚拟文件系统下,应用看到的是挂载的最终结果。
联合文件系统是一种linux系统中常见的文件系统,这种文件系统的核心结构是将多个不同的目录挂载成一个独立的文件目录,在这个独立的文件目录中,文件分层级的存储在多个组成的目录中,上层的文件将遮盖下层的文件,当发生文件写入的时候,可以选择多种策略将文件分散在各个层级目录中。
联合文件系统中容易出问题的地方和主要是文件更新写入的性能比较低下,自带均衡方式在文件更新方面并没有太大的优势。
发明内容
本公开提供一种联合文件系统文件负载均衡方法及装置,在联合文件系统的多个层级目录中进行文件IO负载均衡的方法,该方法具有调度均衡,性能优秀的特点。
为了实现上述目的,根据本公开的一方面,提供一种联合文件系统文件负载均衡方法,所述方法包括以下步骤:
步骤1,为联合文件系统中的每一个层级目录设置一个IO优先级数值;
步骤2,收到文件IO请求时对IO目标文件的完整路径进行CRC计算,得到一个32bit的数据作为IO标识;
步骤3,将联合文件系统中所有层级的IO优先级的数值进行相加得到优先级总值;
步骤4,使用优先级总值对IO标识进行取整得到IO目标的标识;
步骤5,按照联合文件系统的次序,将各个层级的优先级映射到以[0,优先级总值]为端点的一条线段上;
步骤6,查找IO目标的标识在该线段中的位置所对应的层级目录;
步骤7,将该层级目录作为目标IO点执行本次文件IO。
进一步地,在步骤1中,所述IO优先级数值为人工设置,设置依据为:如果某个层级的存储介质访问速度为所有介质的70%到100%,就将这个层级的存储截至的IO优先级设为高,高的取值范围为70~100;如果某个层级的存储介质访问速度为所有介质的35%到70%,就将这个层级的存储截至的IO优先级设为中,中的取值范围为35到70;如果某个层级的存储介质访问速度为所有介质的0%到35%,就将这个层级的存储截至的IO优先级设为低,低的取值范围为1到35;数值在使用过程中可根据实际情况调整。这样能让更多文件的IO发生在IO优先级设为高的层级,获取更好的性能或者某个层级的存储介质更稳定,更健壮,IO优先级设为中、低的层级减少文件IO错误带来的影响。
进一步地,所述联合文件系统包括至少一个文件层级目录,每个文件层级目录都有唯一的层级ID,所述层级目录包括文件更新队列、文件同步程序,所述文件更新队列为文件信息的队列,文件信息排列顺序为更新时间的先后;所述当前层为待同步文件层级目录的上一层文件层级目录,所述文件同步程序用于待同步文件层级目录从上一层的文件层级目录中同步文件及文件更新队列,所述文件信息包括有文件名,数据偏移地址,发生更新的层级ID。
进一步地,在步骤2中,所述CRC计算为根据CRC32算法进行计算。
进一步地,在步骤3中,所述IO优先级的数值为正整数,优先级越高该数字越大,是一个相对的概念,各个层级的优先级相比较,大的优先级高,小的优先级低。
进一步地,在步骤5中,所述联合文件系统的次序为层级目录从上到下的次序。
进一步地,在步骤5中,所述将各个层级的优先级映射到以[0,优先级总值]为端点的一条线段上方法为按照层级目录从上到下的次序将IO优先级数值依次映射到以[0,优先级总值]为端点的一条线段。
本发明还提供了一种联合文件系统文件负载均衡装置,所述装置包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序运行在以下装置的单元中:
优先级设置单元,用于为联合文件系统中的每一个层级目录设置一个IO优先级数值;
标识计算单元,用于在收到文件IO请求时对IO目标文件的完整路径进行CRC计算,得到一个32bit的数据作为IO标识;
总值计算单元,用于将联合文件系统中所有层级的IO优先级的数值进行相加得到优先级总值;
目标计算单元,用于使用优先级总值对IO标识进行取整得到IO目标的标识;
线段映射单元,用于按照联合文件系统的次序,将各个层级的优先级映射到以[0,优先级总值]为端点的一条线段上;
标识定位单元,用于查找IO目标的标识在该线段中的位置所对应的层级目录;
目标执行单元,用于将该层级目录作为目标IO点执行本次文件IO。
本公开的有益效果为:本发明提供一种联合文件系统文件负载均衡方法及装置,通过使用文件IO的path作为哈希的主体,来进行一致性的哈希,保证了同一文件的IO总是发生在同一个层级,大大的提升了IO的效率,不需要进行复杂的文件发现和同步。
附图说明
通过对结合附图所示出的实施方式进行详细说明,本公开的上述以及其他特征将更加明显,本公开附图中相同的参考标号表示相同或相似的元素,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,在附图中:
图1所示为一种联合文件系统文件负载均衡方法的流程图;
图2所示为一种联合文件系统文件负载均衡装置图。
具体实施方式
以下将结合实施例和附图对本公开的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本公开的目的、方案和效果。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
如图1所示为根据本公开的一种联合文件系统文件负载均衡方法的流程图,下面结合图1来阐述根据本公开的实施方式的一种联合文件系统文件负载均衡方法。
本公开提出一种联合文件系统文件负载均衡方法,具体包括以下步骤:
步骤1,为联合文件系统中的每一个层级目录设置一个IO优先级数值;
步骤2,收到文件IO请求时对IO目标文件的完整路径进行CRC计算,得到一个32bit的数据作为IO标识;
步骤3,将联合文件系统中所有层级的IO优先级的数值进行相加得到优先级总值;
步骤4,使用优先级总值对IO标识进行取整得到IO目标的标识;
步骤5,按照联合文件系统的次序,将各个层级的优先级映射到以[0,优先级总值]为端点的一条线段上;
步骤6,查找IO目标的标识在该线段中的位置所对应的层级目录;
步骤7,将该层级目录作为目标IO点执行本次文件IO。
进一步地,在步骤1中,所述IO优先级数值为人工设置,设置依据为:如果某个层级的存储介质访问速度为所有介质的70%到100%,就将这个层级的存储截至的IO优先级设为高,高的取值范围为70~100;如果某个层级的存储介质访问速度为所有介质的35%到70%,就将这个层级的存储截至的IO优先级设为中,中的取值范围为35到70;如果某个层级的存储介质访问速度为所有介质的0%到35%,就将这个层级的存储截至的IO优先级设为低,低的取值范围为1到35;数值在使用过程中可根据实际情况调整。这样能让更多文件的IO发生在IO优先级设为高的层级,获取更好的性能或者某个层级的存储介质更稳定,更健壮,IO优先级设为中、低的层级减少文件IO错误带来的影响。
进一步地,所述联合文件系统包括至少一个文件层级目录,每个文件层级目录都有唯一的层级ID,所述层级目录包括文件更新队列、文件同步程序,所述文件更新队列为文件信息的队列,文件信息排列顺序为更新时间的先后;所述当前层为待同步文件层级目录的上一层文件层级目录,所述文件同步程序用于待同步文件层级目录从上一层的文件层级目录中同步文件及文件更新队列,所述文件信息包括有文件名,数据偏移地址,发生更新的层级ID。
进一步地,在步骤2中,所述CRC计算为根据CRC32算法进行计算。
进一步地,在步骤3中,所述IO优先级的数值为正整数,优先级越高该数字越大,是一个相对的概念,各个层级的优先级相比较,大的优先级高,小的优先级低。
进一步地,在步骤5中,所述联合文件系统的次序为层级目录从上到下的次序。
进一步地,在步骤5中,所述将各个层级的优先级映射到以[0,优先级总值]为端点的一条线段上方法为按照层级目录从上到下的次序将IO优先级数值依次映射到以[0,优先级总值]为端点的一条线段。
例如,有3个层级的联合文件系统,第一层优先级为5,第二层优先级为8,第三层优先级为3,则在线段0-16上面:
0-5标识第一层;
5-13标识第二层;
13-16标识第三层。
将IO标识对优先级总值取余,得到一个0-16之间的数字,如果这个数字大小为0-5则标识这个文件应该在层级一中进行IO,如果这个数字大小为5-13,则标识这个文件应该在第二层中IO,如果这个数字大小为13-16则标识这个文件应该在层级3中IO。
在步骤6中,IO标识对优先级总值,进行取余处理,这样可以保证IO标识一定是在[0,优先级总值]之间。
本公开的实施例提供的一种联合文件系统文件负载均衡装置,如图2所示为本公开的一种联合文件系统文件负载均衡装置图,该实施例的一种联合文件系统文件负载均衡装置包括:处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述一种联合文件系统文件负载均衡装置实施例中的步骤。
所述装置包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序运行在以下装置的单元中:
优先级设置单元,用于为联合文件系统中的每一个层级目录设置一个IO优先级数值;
标识计算单元,用于在收到文件IO请求时对IO目标文件的完整路径进行CRC计算,得到一个32bit的数据作为IO标识;
总值计算单元,用于将联合文件系统中所有层级的IO优先级的数值进行相加得到优先级总值;
目标计算单元,用于使用优先级总值对IO标识进行取整得到IO目标的标识;
线段映射单元,用于按照联合文件系统的次序,将各个层级的优先级映射到以[0,优先级总值]为端点的一条线段上;
标识定位单元,用于查找IO目标的标识在该线段中的位置所对应的层级目录;
目标执行单元,用于将该层级目录作为目标IO点执行本次文件IO。
所述一种联合文件系统文件负载均衡装置可以运行于桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备中。所述一种联合文件系统文件负载均衡装置,可运行的装置可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述例子仅仅是一种联合文件系统文件负载均衡装置的示例,并不构成对一种联合文件系统文件负载均衡装置的限定,可以包括比例子更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述一种联合文件系统文件负载均衡装置还可以包括输入输出设备、网络接入设备、总线等。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述一种联合文件系统文件负载均衡装置运行装置的控制中心,利用各种接口和线路连接整个一种联合文件系统文件负载均衡装置可运行装置的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述一种联合文件系统文件负载均衡装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
尽管本公开的描述已经相当详尽且特别对几个所述实施例进行了描述,但其并非旨在局限于任何这些细节或实施例或任何特殊实施例,而是应当将其视作是通过参考所附权利要求考虑到现有技术为这些权利要求提供广义的可能性解释,从而有效地涵盖本公开的预定范围。此外,上文以发明人可预见的实施例对本公开进行描述,其目的是为了提供有用的描述,而那些目前尚未预见的对本公开的非实质性改动仍可代表本公开的等效改动。
Claims (6)
1.一种联合文件系统文件负载均衡方法,其特征在于,所述方法包括以下步骤:
步骤1,为联合文件系统中的每一个层级目录设置一个IO优先级数值;
步骤2,收到文件IO请求时对IO目标文件的完整路径进行CRC计算,得到一个32bit的数据作为IO标识;
步骤3,将联合文件系统中所有层级的IO优先级的数值进行相加得到优先级总值;
步骤4,使用优先级总值对IO标识进行取整得到IO目标的标识;
步骤5,按照联合文件系统的次序,将各个层级的优先级映射到以[0,优先级总值]为端点的一条线段上;
步骤6,查找IO目标的标识在该线段中的位置所对应的层级目录;
步骤7,将该层级目录作为目标IO点执行本次文件IO。
2.根据权利要求1所述的一种联合文件系统文件负载均衡方法,其特征在于,在步骤1中,所述IO优先级数值为人工设置,设置依据为:如果某个层级的存储介质访问速度为所有介质的70%到100%,就将这个层级的存储截至的IO优先级设为高,高的取值范围为70~100;如果某个层级的存储介质访问速度为所有介质的35%到70%,就将这个层级的存储截至的IO优先级设为中,中的取值范围为35到70;如果某个层级的存储介质访问速度为所有介质的0%到35%,就将这个层级的存储截至的IO优先级设为低,低的取值范围为1到35;数值在使用过程中可根据实际情况调整。
3.根据权利要求1所述的一种联合文件系统文件负载均衡方法,其特征在于,在步骤2中,所述CRC计算为根据CRC32算法进行计算。
4.根据权利要求1所述的一种联合文件系统文件负载均衡方法,其特征在于,在步骤5中,所述联合文件系统的次序为层级目录从上到下的次序。
5.根据权利要求1所述的一种联合文件系统文件负载均衡方法,其特征在于,在步骤5中,所述将各个层级的优先级映射到以[0,优先级总值]为端点的一条线段上方法为按照层级目录从上到下的次序将IO优先级数值依次映射到以[0,优先级总值]为端点的一条线段。
6.一种联合文件系统文件负载均衡装置,其特征在于,所述装置包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序运行在以下装置的单元中:
优先级设置单元,用于为联合文件系统中的每一个层级目录设置一个IO优先级数值;
标识计算单元,用于在收到文件IO请求时对IO目标文件的完整路径进行CRC计算,得到一个32bit的数据作为IO标识;
总值计算单元,用于将联合文件系统中所有层级的IO优先级的数值进行相加得到优先级总值;
目标计算单元,用于使用优先级总值对IO标识进行取整得到IO目标的标识;
线段映射单元,用于按照联合文件系统的次序,将各个层级的优先级映射到以[0,优先级总值]为端点的一条线段上;
标识定位单元,用于查找IO目标的标识在该线段中的位置所对应的层级目录;
目标执行单元,用于将该层级目录作为目标IO点执行本次文件IO。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810708747.0A CN109189731A (zh) | 2018-07-02 | 2018-07-02 | 一种联合文件系统文件负载均衡方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810708747.0A CN109189731A (zh) | 2018-07-02 | 2018-07-02 | 一种联合文件系统文件负载均衡方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109189731A true CN109189731A (zh) | 2019-01-11 |
Family
ID=64948769
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810708747.0A Pending CN109189731A (zh) | 2018-07-02 | 2018-07-02 | 一种联合文件系统文件负载均衡方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109189731A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114363346A (zh) * | 2020-02-14 | 2022-04-15 | 北京百度网讯科技有限公司 | Ip挂载、数据处理方法和装置 |
CN116821001A (zh) * | 2023-08-30 | 2023-09-29 | 上海燧原智能科技有限公司 | 输入输出子系统的验证方法、装置、电子设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104486402A (zh) * | 2014-12-11 | 2015-04-01 | 江苏爱信诺航天信息科技有限公司 | 一种基于大型网站组合均衡的方法 |
CN106293533A (zh) * | 2016-08-11 | 2017-01-04 | 浪潮(北京)电子信息产业有限公司 | 一种基于存储多路径间的负载均衡方法及系统 |
CN106781506A (zh) * | 2017-02-21 | 2017-05-31 | 济南全通信息科技有限公司 | 基于公交车gps数据的大范围城市公交线网实时运行水平评价方法 |
CN107483562A (zh) * | 2017-07-28 | 2017-12-15 | 国网江西省电力公司南昌供电分公司 | 一种多用户智能插座的功率动态分配方法及系统 |
CN107491858A (zh) * | 2017-07-05 | 2017-12-19 | 北京科东电力控制系统有限责任公司 | 一种基于微服务应用架构的电力交易平台 |
-
2018
- 2018-07-02 CN CN201810708747.0A patent/CN109189731A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104486402A (zh) * | 2014-12-11 | 2015-04-01 | 江苏爱信诺航天信息科技有限公司 | 一种基于大型网站组合均衡的方法 |
CN106293533A (zh) * | 2016-08-11 | 2017-01-04 | 浪潮(北京)电子信息产业有限公司 | 一种基于存储多路径间的负载均衡方法及系统 |
CN106781506A (zh) * | 2017-02-21 | 2017-05-31 | 济南全通信息科技有限公司 | 基于公交车gps数据的大范围城市公交线网实时运行水平评价方法 |
CN107491858A (zh) * | 2017-07-05 | 2017-12-19 | 北京科东电力控制系统有限责任公司 | 一种基于微服务应用架构的电力交易平台 |
CN107483562A (zh) * | 2017-07-28 | 2017-12-15 | 国网江西省电力公司南昌供电分公司 | 一种多用户智能插座的功率动态分配方法及系统 |
Non-Patent Citations (1)
Title |
---|
周伟明: "《多核计算与程序设计》", 31 March 2009 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114363346A (zh) * | 2020-02-14 | 2022-04-15 | 北京百度网讯科技有限公司 | Ip挂载、数据处理方法和装置 |
CN116821001A (zh) * | 2023-08-30 | 2023-09-29 | 上海燧原智能科技有限公司 | 输入输出子系统的验证方法、装置、电子设备及介质 |
CN116821001B (zh) * | 2023-08-30 | 2023-11-21 | 上海燧原智能科技有限公司 | 输入输出子系统的验证方法、装置、电子设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10375167B2 (en) | Low latency RDMA-based distributed storage | |
US11347747B1 (en) | Ordering data stream events in a streaming data storage platform | |
US11075991B2 (en) | Partitioning data according to relative differences indicated by a cover tree | |
US20120137062A1 (en) | Leveraging coalesced memory | |
CN105373342A (zh) | 异构统一存储器 | |
CN103905540A (zh) | 基于两级哈希的对象存储数据分布机制 | |
CN102810116B (zh) | 一种基于数据库连接的自动路由和负载均衡的方法及系统 | |
CN108664523A (zh) | 一种虚拟磁盘文件格式转换方法和装置 | |
CN106713250B (zh) | 基于分布式系统的数据访问方法和装置 | |
CN104156381A (zh) | Hadoop分布式文件系统的副本存取方法、装置和Hadoop分布式文件系统 | |
CN109189731A (zh) | 一种联合文件系统文件负载均衡方法及装置 | |
CN103488523A (zh) | 一种页的访问方法和页的访问装置、服务器 | |
AU2020308941A1 (en) | Dynamic allocation of computing resources | |
US11500822B2 (en) | Virtualized append-only interface | |
CN109032788A (zh) | 预留资源池动态调度方法、装置、计算机设备及存储介质 | |
US9646102B2 (en) | Intelligent categorization of bookmarks | |
CN107908365A (zh) | 用户态存储系统数据交互的方法、装置及设备 | |
CN108234551A (zh) | 一种数据处理方法及装置 | |
CN102904917A (zh) | 海量图片的处理系统及其方法 | |
CN104391947B (zh) | 海量gis数据实时处理方法及系统 | |
US9760577B2 (en) | Write-behind caching in distributed file systems | |
CN108833200A (zh) | 一种大数据文件自适应单向传输方法及装置 | |
CN109460406A (zh) | 一种数据处理方法及装置 | |
Yang et al. | D^ 2PS: a dependable data provisioning service in multi-tenant cloud environment | |
CN108959124A (zh) | 基于动态缓冲的虚拟机磁盘复制过程写入方法及装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190111 |
|
RJ01 | Rejection of invention patent application after publication |