CN111881085A - 一种读写带宽性能的优化方法及系统 - Google Patents
一种读写带宽性能的优化方法及系统 Download PDFInfo
- Publication number
- CN111881085A CN111881085A CN202010570901.XA CN202010570901A CN111881085A CN 111881085 A CN111881085 A CN 111881085A CN 202010570901 A CN202010570901 A CN 202010570901A CN 111881085 A CN111881085 A CN 111881085A
- Authority
- CN
- China
- Prior art keywords
- file
- read
- directory
- file system
- system api
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 230000008569 process Effects 0.000 claims abstract description 15
- 239000008186 active pharmaceutical agent Substances 0.000 abstract description 79
- 238000009825 accumulation Methods 0.000 abstract description 4
- 230000000694 effects Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/113—Details of archiving
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
- G06F16/183—Provision of network file services by network file servers, e.g. by using NFS, CIFS
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种读写带宽性能的优化方法及系统,方法包括在创建目录或文件时,将其对应的Inode信息均衡分布在文件系统API实例内;在处理读写请求时,根据创建目录或文件时对应的Inode信息,调用文件系统API实例进行读写操作。本发明在创建文件或目录的阶段,将文件或目录对应文件系统API均衡分配,避免文件和目录的创建请求堆积导致的非必要耗时,加快了请求读写的速度。在对文件进行读写操作时,当调用多个下层文件系统API时,进行NFS读写请求的均衡分配和自主切换,确保每个文件系统API实例都能尽可能的处理更多的请求;在读写请求的各个文件大小不固定或者相差很大时,能够在每个文件系统API实例上来回切换,避免API处理请求不均衡。
Description
技术领域
本发明涉及读写请求处理技术领域,尤其是一种读写带宽性能的优化方法及系统。
背景技术
NFS(Network File System,网络文件系统)服务端对外通过共享目录提供服务,客户端可以挂载到共享目录上,对服务端进行访问数据。对于客户端来说,文件数据的读写带宽是衡量服务端性能的重要指标。在一些业务场景下,比如卫星场景和高性能计算场景,由于数据量较大,读写操作频繁,文件数据的读写带宽是此业务的重大瓶颈,读写带宽的提升迫在眉睫。
NFS服务端接收到读写请求后,会在cache缓存层查找是否存在该读写请求的缓存信息,如果存在则返回缓存层的结构体entry,若不存在则需要调用其他接口函数来查找和构造结构体entry的信息,接着在FSAL(File System Abstraction Layer文件系统抽象层)抽象层根据不同的文件系统进行调用不同的读写请求处理API。
在很多业务场景下,读写请求并发数量较多,从NFS接收到读写请求到调用不同文件系统API这个过程中,经常遇到的情况是读写请求堆积,造成这些请求时延较高,带宽较低,严重时甚至会影响正常的业务运行。
发明内容
本发明提供了一种读写带宽性能的优化方法及系统,用于解决现有读写请求堆积,造成这些请求时延较高,带宽较低问题。
为实现上述目的,本发明采用下述技术方案:
本发明第一方面提供了一种读写带宽性能的优化方法,所述方法包括以下步骤:
在创建目录或文件时,将其对应的Inode信息均衡分布在文件系统API实例内;
在处理读写请求时,根据创建目录或文件时对应的Inode信息,调用文件系统API实例进行读写操作。
进一步地,所述方法还包括:
根据业务场景所传输的数据量,分为大文件业务场景和小文件业务场景;
对于所述大文件业务场景,采用按文件负载轮询策略,将不同文件的读写请求均衡到不同的文件系统API实例上;
对于所述小文件业务场景,采用按目录负载轮询策略,将不同目录下的文件读写均衡到不同的文件系统API实例上。
进一步地,所述目录或文件的创建过程为:
从缓存中获取待创建目录或文件对应的父目录结构体;
根据轮询策略,为当前目录或文件选择文件系统API实例;
通过选择的文件系统API实例和对应父目录结构体内的Inode信息,构建目录或文件的新handle,并保存当前文件系统API实例的编号;
形成新建的文件或目录结构体,保存对应的新handle信息。
进一步地,所述缓存中未获取到父目录结构体时,从某个文件系统API实例中获取待创建目录或文件对应的Inode信息,根据该Inode信息新建结构体。
进一步地,所述方法在选择文件系统API实例后,构建目录或文件的新handle前还包括:
若父目录结构体中没有文件系统API实例对应的handle信息,则在该文件系统API实例中,获取父目录结构体的Inode信息,新建handle,并将该新建的handle更新到父目录结构体中。
进一步地,所述方法还包括,在处理读写请求时,切换文件系统API实例。
进一步地,所述切换文件系统API实例在读写请求中主动增加切换逻辑时启动或在超过预设时间阈值仍未进行读写请求时启动。
进一步地,所述在处理读写请求时,切换文件系统API实例的具体过程为:
删除缓存中原有的结构体信息;
获取文件或目录在目标文件系统API实例中的Inode信息,基于该Inode信息新建结构体,通过新建的结构体进行读写操作。
本发明第二方面提供了一种读写带宽性能的优化系统,所述系统包括:
均衡创建单元,在创建目录或文件时,将其对应的Inode信息均衡分布在文件系统API实例内;
均衡读写单元,在处理读写请求时,根据创建目录或文件时对应的Inode信息,调用文件系统API实例进行读写操作。
进一步地,所述均衡读写单元包括切换模块,所述切换模块删除缓存中原有的结构体信息;获取文件或目录在目标文件系统API实例中的Inode信息,基于该Inode信息新建结构体,通过新建的结构体进行读写操作。
本发明第二方面的所述读写带宽性能的优化系统能够实现第一方面及第一方面的各实现方式中的方法,并取得相同的效果。
发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:
本发明通过在创建文件或目录的阶段,将文件或目录对应文件系统API均衡分配,保证文件或目录的创建请求达到均衡,避免在读写文件开始前,由于文件和目录的创建请求堆积导致的非必要耗时,加快了请求读写的速度。在对文件进行读写操作时,降低读写请求耗时,采取的策略是在NFS处理这些请求时,当调用多个下层文件系统API时,能够做到NFS读写请求的均衡分配和自主切换,请求的均衡分配可以保证在并发量较多时,确保每个文件系统API实例都能尽可能的处理更多的请求;自主切换的作用是保证读写请求的各个文件大小不固定或者相差很大时,能够在每个文件系统API实例上来回切换,避免这些实例处理请求不均衡。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明所述方法的流程示意图;
图2是本发明所述方法中创建文件或目录的流程示意图;
图3是本发明所述方法中处理文件读写请求的流程示意图;
图4是本发明所述系统的结构示意图。
具体实施方式
为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
如图1所示,本发明读写带宽性能的优化方法,包括以下步骤:
S1,在创建目录或文件时,将其对应的Inode信息均衡分布在文件系统API实例内;
S2,在处理读写请求时,根据创建目录或文件时对应的Inode信息,调用文件系统API实例进行读写操作。
本实施例中根据业务场景所传输的数据量,分为大文件业务场景和小文件业务场景,通常将百兆以上的业务称为大文件业务场景,百兆以下的业务称为小文件业务场景。
对于大文件业务场景,采用按文件负载轮询策略,将不同文件的读写请求均衡到不同的文件系统API实例上;对于小文件业务场景,采用按目录负载轮询策略,将不同目录下的文件读写均衡到不同的文件系统API实例上。
NFS本身有cache缓存,无论是目录或文件,创建后都会新建一个结构体entry(cache_entry_t),并添加到缓存中,通过entry可找到文件或目录对应的Inode信息,而NFS调用文件系统API的操作需要该Inode信息作为输入参数,如:创建目录或文件时,需要其所在父目录的Inode信息;打开文件时,需要该文件的Inode信息。
当NFS需要调用多个文件系统API实例时,对于同一个文件或目录,通过不同文件系统API实例会得到不同的Inode信息,且Inode信息只在所在文件系统API实例中有效,在其他实例中是无效的,因此当某些操作需要切换文件系统API实例执行时,其Inode信息也需要更新为该实例下的Inode信息。
NFS在处理创建目录或文件请求时,都需要依赖于父目录的Inode信息,因此当切换文件系统API创建目录或文件时,需要其父目录在该实例下有对应的Inode信息。
如图2所示,步骤S1中目录或文件的创建过程为:
从缓存中获取待创建目录或文件对应的父目录结构体entry,若未获取到父目录entry,则从某个文件系统API实例中获取待创建目录或文件对应的Inode信息,根据该Inode信息新建结构体entry;
根据轮询策略,为当前目录或文件选择文件系统API实例,其中的轮询策略以均衡选择文件系统API实例为准则;
若父目录结构体中没有文件系统API实例对应的handle信息,则在该文件系统API实例中,获取父目录结构体的Inode信息,新建handle,并将该新建的handle更新到父目录结构体中。
通过选择的文件系统API实例和对应父目录结构体内的Inode信息,构建目录或文件的新handle,并保存当前文件系统API实例的编号;
形成新建的文件或目录结构体,保存对应的新handle信息。
进行上述文件或目录的创建后,若有对应的取得请求,会基于新创建的结构体,调用对应的文件系统API实例进行读写操作,因为在文件或目录的创建过程中对文件系统API实例的选取进行均衡轮询设置,因此在后期处理读写请求时,能够达到均衡调用文件系统API实例的效果,从而避免请求堆积,提供数据处理效率。
步骤S2中,考虑要做到对于同一个大文件读写或在同一个目录下文件的读写IO,不仅做到只调用同一个文件系统API实例,也能够切换到不同的文件系统API实例。例如大文件场景下,文件大小如果不固定或者相差很大,同一个文件只调用同一个文件系统API实例,会导致不同文件系统API实例处理请求数量不均衡;小文件场景下,不同目录下文件数量大小不相同,同一个目录下只调用同一个文件系统API实例,同样会导致不同文件系统API实例处理请求数量不均衡,所以我们要做到同时调用多个文件系统API实例去处理请求,也能够保证多个文件系统API实例处理的请求数量大致是均衡的。
因此在处理读写请求时,增加切换文件系统API实例的过程。切换文件系统API实例的过程在读写请求中主动增加切换逻辑时或在超过预设时间阈值仍未进行读写请求时启动。
综上所述,NFS需要调用多个文件系统API要实现负载均衡切换,关键是需要在切换文件系统API实例之前,获取其父目录在该实例下的Inode信息。实现思路为:当创建目录时,仅通过某个实例创建,并获取其Inode信息,当需要切换文件系统API实例创建其子目录或文件时,先检测其父目录在目标实例下是否有Inode信息,如没有则主动获取其Inode信息;执行读写操作时,会先从缓存中查询文件对应的entry,如果查询到会直接使用entry中保存的文件系统API实例编号,去相应实例执行操作。
如图3所示,NFS在处理读写请求的具体过程为:
首先从缓存中获取对应的结构体entry信息,在无切换文件系统API实例的情况下,直接调用对应的文件系统API函数,进行读写操作。
在切换文件系统API实例的机制启动时,即需要重新负载时,删除缓存中原有的结构体信息;
根据轮询策略,重新负载文件系统API实例,为当前读写请求配置新的目标文件系统API实例;
获取文件或目录在目标文件系统API实例中的Inode信息,基于该Inode信息,调用getattr,创建handle,记录文件系统API实例编号,并根据创建的handle,新建结构体,通过新建的结构体调用目标文件系统API函数进行读写操作。若目标文件系统API实例中没有Inode信息,则调用icfs_ll_lookup_vinode创建inode信息。
如图4所示,本发明读写带宽性能的优化系统,包括均衡创建单元1和均衡读写单元2。
均衡创建单元1在创建目录或文件时,将其对应的Inode信息均衡分布在文件系统API实例内;均衡读写单元2在处理读写请求时,根据创建目录或文件时对应的Inode信息,调用文件系统API实例进行读写操作。
均衡读写单元2包括切换模块,切换模块删除缓存中原有的结构体信息;获取文件或目录在目标文件系统API实例中的Inode信息,基于该Inode信息新建结构体,通过新建的结构体进行读写操作。
经过多个场景实际测试,读写请求数目总量为800万时,应用本发明上述实施例的手段,能够很好的把这些请求均衡的分配到多个文件系统API实例中,对比统计修改前后的NFS读写耗时,性能提升大约20%-30%,能够很好的降低读写请求耗时,提升读写带宽。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
Claims (10)
1.一种读写带宽性能的优化方法,其特征是,所述方法包括以下步骤:
在创建目录或文件时,将其对应的Inode信息均衡分布在文件系统API实例内;
在处理读写请求时,根据创建目录或文件时对应的Inode信息,调用文件系统API实例进行读写操作。
2.根据权利要求1所述读写带宽性能的优化方法,其特征是,所述方法还包括:
根据业务场景所传输的数据量,分为大文件业务场景和小文件业务场景;
对于所述大文件业务场景,采用按文件负载轮询策略,将不同文件的读写请求均衡到不同的文件系统API实例上;
对于所述小文件业务场景,采用按目录负载轮询策略,将不同目录下的文件读写均衡到不同的文件系统API实例上。
3.根据权利要求1所述读写带宽性能的优化方法,其特征是,所述目录或文件的创建过程为:
从缓存中获取待创建目录或文件对应的父目录结构体;
根据轮询策略,为当前目录或文件选择文件系统API实例;
通过选择的文件系统API实例和对应父目录结构体内的Inode信息,构建目录或文件的新handle,并保存当前文件系统API实例的编号;
形成新建的文件或目录结构体,保存对应的新handle信息。
4.根据权利要求3所述读写带宽性能的优化方法,其特征是,所述缓存中未获取到父目录结构体时,从某个文件系统API实例中获取待创建目录或文件对应的Inode信息,根据该Inode信息新建结构体。
5.根据权利要求3所述读写带宽性能的优化方法,其特征是,所述方法在选择文件系统API实例后,构建目录或文件的新handle前还包括:
若父目录结构体中没有文件系统API实例对应的handle信息,则在该文件系统API实例中,获取父目录结构体的Inode信息,新建handle,并将该新建的handle更新到父目录结构体中。
6.根据权利要求1所述读写带宽性能的优化方法,其特征是,所述方法还包括,在处理读写请求时,切换文件系统API实例。
7.根据权利要求6所述读写带宽性能的优化方法,其特征是,所述切换文件系统API实例在读写请求中主动增加切换逻辑时启动或在超过预设时间阈值仍未进行读写请求时启动。
8.根据权利要求6所述读写带宽性能的优化方法,其特征是,所述在处理读写请求时,切换文件系统API实例的具体过程为:
删除缓存中原有的结构体信息;
获取文件或目录在目标文件系统API实例中的Inode信息,基于该Inode信息新建结构体,通过新建的结构体进行读写操作。
9.一种读写带宽性能的优化系统,其特征是,所述系统包括:
均衡创建单元,在创建目录或文件时,将其对应的Inode信息均衡分布在文件系统API实例内;
均衡读写单元,在处理读写请求时,根据创建目录或文件时对应的Inode信息,调用文件系统API实例进行读写操作。
10.根据权利要求9所述的读写带宽性能的优化系统,其特征是,所述均衡读写单元包括切换模块,所述切换模块删除缓存中原有的结构体信息;获取文件或目录在目标文件系统API实例中的Inode信息,基于该Inode信息新建结构体,通过新建的结构体进行读写操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010570901.XA CN111881085B (zh) | 2020-06-21 | 2020-06-21 | 一种读写带宽性能的优化方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010570901.XA CN111881085B (zh) | 2020-06-21 | 2020-06-21 | 一种读写带宽性能的优化方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111881085A true CN111881085A (zh) | 2020-11-03 |
CN111881085B CN111881085B (zh) | 2022-12-09 |
Family
ID=73156593
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010570901.XA Active CN111881085B (zh) | 2020-06-21 | 2020-06-21 | 一种读写带宽性能的优化方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111881085B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095817A (zh) * | 2016-06-01 | 2016-11-09 | 常熟理工学院 | 基于微内核的可扩展文件系统及文件访问方法 |
CN109783438A (zh) * | 2018-12-05 | 2019-05-21 | 南京华讯方舟通信设备有限公司 | 基于librados的分布式NFS系统及其构建方法 |
-
2020
- 2020-06-21 CN CN202010570901.XA patent/CN111881085B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095817A (zh) * | 2016-06-01 | 2016-11-09 | 常熟理工学院 | 基于微内核的可扩展文件系统及文件访问方法 |
CN109783438A (zh) * | 2018-12-05 | 2019-05-21 | 南京华讯方舟通信设备有限公司 | 基于librados的分布式NFS系统及其构建方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111881085B (zh) | 2022-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113377868B (zh) | 一种基于分布式kv数据库的离线存储系统 | |
US11151081B1 (en) | Data tiering service with cold tier indexing | |
CN109471843B (zh) | 一种元数据缓存方法、系统及相关装置 | |
US9307024B2 (en) | Efficient storage of small random changes to data on disk | |
CN107480205B (zh) | 一种进行数据分区的方法和装置 | |
CN109144413A (zh) | 一种元数据管理方法及装置 | |
CN109766318B (zh) | 文件读取方法及装置 | |
US8909677B1 (en) | Providing a distributed balanced tree across plural servers | |
CN113806300B (zh) | 数据存储方法、系统、装置、设备及存储介质 | |
CN109376125A (zh) | 一种元数据存储方法、装置、设备及计算机可读存储介质 | |
CN111159176A (zh) | 一种海量流数据的存储和读取的方法和系统 | |
US20180276267A1 (en) | Methods and system for efficiently performing eventual and transactional edits on distributed metadata in an object storage system | |
CN112148736A (zh) | 缓存数据的方法、设备及存储介质 | |
CN107181773A (zh) | 分布式存储系统的数据存储及数据管理方法、设备 | |
CN101483668A (zh) | 热点数据的网络存储和访问方法、设备及系统 | |
CN105808451B (zh) | 一种数据缓存方法以及相关装置 | |
CN109144403B (zh) | 一种用于云盘模式切换的方法与设备 | |
CN112463073A (zh) | 一种对象存储分布式配额方法、系统、设备和存储介质 | |
CN111881085B (zh) | 一种读写带宽性能的优化方法及系统 | |
CN111625500B (zh) | 文件快照方法及装置、电子设备和存储介质 | |
US11226778B2 (en) | Method, apparatus and computer program product for managing metadata migration | |
CN115604290B (zh) | Kafka消息执行方法、装置、设备及存储介质 | |
US11593355B2 (en) | Method, device and computer program product for processing metadata | |
CN117648297B (zh) | 基于对象存储小文件离线合并方法、系统、设备及介质 | |
CN117914867B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |