CN109947732A - 一种集群文件系统优化对文件描述符使用效率的方法 - Google Patents
一种集群文件系统优化对文件描述符使用效率的方法 Download PDFInfo
- Publication number
- CN109947732A CN109947732A CN201910216988.8A CN201910216988A CN109947732A CN 109947732 A CN109947732 A CN 109947732A CN 201910216988 A CN201910216988 A CN 201910216988A CN 109947732 A CN109947732 A CN 109947732A
- Authority
- CN
- China
- Prior art keywords
- file system
- filec descriptor
- file
- cluster file
- open
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种集群文件系统优化对文件描述符使用效率的方法,具体涉及集群文件系统领域,包括分布式集群文件系统,所述分布式集群文件系统包括堆栈式架构和多层功能层,所述堆栈式架构连接顶端连接有客户端以及连接底端连接有服务器磁盘,多层所述功能层包括应用程序、open文件描述符优化层和存储介质。本发明在集群文件系统层面暂缓文件描述符的申请,杜绝了申请后较长时间不使用的占用情况,减少申请文件描述符到真正使用文件描述符之间的空闲时间,只有在真正需要对文件进行操作时才去获取文件描述符,降低被耗尽的风险,提高了其使用效率,解决了对集群文件系统而言,无法控制文件描述符的释放的问题。
Description
技术领域
本发明涉及集群文件系统技术领域,更具体地说,本发明涉及一种集群文件系统优化对文件描述符使用效率的方法。
背景技术
集群文件系统是指运行在多台计算机之上,之间通过某种方式相互通信从而将集群内所有存储空间资源整合、虚拟化并对外提供文件访问服务的文件系统。其与NTFS、EXT等本地文件系统的目的不同,前者是为了扩展性,后者运行在单机环境,纯粹管理块和文件之间的映射以及文件属性。
文件描述符对于Linux内核而言,所有打开的文件都是通过文件描述符进行操作的。文件描述符是Linux内核返回给应用程序的一个非负整数。当打开一个现有文件或者创建一个新文件时,Linux内核向操作发起进程返回一个文件描述符,它将作为参数传递给对文件进行操作的函数。但在Linux内核中,对于每个进程而言,文件描述符的数量是有限的(其范围为0~OPEN_MAX-1)。
现有技术方案:
在应用程序中执行read、write等操作前需要先执行open或者creat操作获取文件描述符,尽量在实际操作前执行获取文件描述符操作,减少空闲时间,并且在使用完成后进行释放获取到的文件描述符;
现有技术方案的缺点:对文件描述符的获取与释放完全取决于应用程序,对集群文件系统而言,只能去传递并执行命令而不能够控制它的发生。如果应用程序中对文件描述符使用不当,集群文件系统也无法有效避免问题。
发明内容
为了克服现有技术的上述缺陷,本发明的实施例提供一种集群文件系统优化对文件描述符使用效率的方法,由于对集群文件系统而言,无法控制文件描述符的释放,因此本发明在集群文件系统层面对文件描述符的申请进行了控制,可以暂缓文件描述符的申请,杜绝了申请后较长时间不使用的占用情况,减少申请文件描述符到真正使用文件描述符之间的空闲时间,只有在真正需要对文件进行操作时才去获取文件描述符,降低被耗尽的风险,提高了其使用效率。
为实现上述目的,本发明提供如下技术方案:一种集群文件系统优化对文件描述符使用效率的方法,包括分布式集群文件系统,所述分布式集群文件系统包括堆栈式架构和多层功能层,所述堆栈式架构连接顶端连接有客户端以及连接底端连接有服务器磁盘,多层所述功能层包括应用程序、open文件描述符优化层和存储介质,所述集群文件系统优化文件描述符使用效率的方法步骤如下:
S101、应用程序下发open文件操作,该操作直接到达集群文件系统中的open文件描述符优化层,并不真正的直接去存储介质上打开对应文件;
S102、集群文件系统文件描述符优化层保存文件相关信息,并直接open操作成功返回给应用程序;
S103、应用程序对之前下发open操作的文件下发write、read操作或者再次open操作时候,会到达集群文件的文件描述符优化层,此时创建相应操作的同步任务,获取文件描述符fd相关的信息;
S104、获取文件描述符fd信息成功之后,则会对需要操作的文件下发真正open操作,此时才会去存储介质上对相应文件执行open操作;
S105、文件open操作完成后会在此返回返回到集群文件系统的文件描述符优化层,取出对应文件描述符fd对应struct ob_fd_t结构体中的任务链表;
S106、遍历取出的对应文件描述符fd的任务链表,获取链表中对应任务后下发对该文件的write、read操作;
S107、write、read文件操作完成后则直接操作返回结果给应用程序。
在一个优选地实施方式中,所述堆栈式架构用于将多层功能层一一堆叠起来的,每一层功能层都只实现一个单一的功能,且每一层功能层接受上一层功能层传来的数据。
本发明的技术效果和优点:
1、本发明在集群文件系统层面对文件描述符的申请进行了控制,可以暂缓文件描述符的申请,杜绝了申请后较长时间不使用的占用情况,减少申请文件描述符到真正使用文件描述符之间的空闲时间,只有在真正需要对文件进行操作时才去获取文件描述符,降低被耗尽的风险,提高了其使用效率,解决了对集群文件系统而言,无法控制文件描述符的释放的问题;
2、本发明对于文件描述符的申请不去实际执行仅返回成功;
3、本发明将实际操作的命令组成任务加入队列,申请成功后直接遍历取出全部执行;
4、本方案在集群文件系统的上层进行,完全适应于各种数据保护算法,如冗余副本、纠删码技术等。
附图说明
图1为本发明的整体结构示意图。
图2为本发明的具体方法流程结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1:
根据图1所示的一种集群文件系统优化对文件描述符使用效率的方法,包括分布式集群文件系统,所述分布式集群文件系统包括堆栈式架构和多层功能层,所述堆栈式架构连接顶端连接有客户端以及连接底端连接有服务器磁盘,多层所述功能层包括应用程序、open文件描述符优化层和存储介质,所述集群文件系统优化文件描述符使用效率的方法步骤如下:
S101、应用程序下发open文件操作,该操作直接到达集群文件系统中的open文件描述符优化层,并不真正的直接去存储介质上打开对应文件;
S102、集群文件系统文件描述符优化层保存文件相关信息,并直接open操作成功返回给应用程序;
S103、应用程序对之前下发open操作的文件下发write、read操作或者再次open操作时候,会到达集群文件的文件描述符优化层,此时创建相应操作的同步任务,获取文件描述符fd相关的信息;
S104、获取文件描述符fd信息成功之后,则会对需要操作的文件下发真正open操作,此时才会去存储介质上对相应文件执行open操作;
S105、文件open操作完成后会在此返回返回到集群文件系统的文件描述符优化层,取出对应文件描述符fd对应struct ob_fd_t结构体中的任务链表;
S106、遍历取出的对应文件描述符fd的任务链表,获取链表中对应任务后下发对该文件的write、read操作;
S107、write、read文件操作完成后则直接操作返回结果给应用程序。
实施例2:
根据图2所示的一种集群文件系统优化对文件描述符使用效率的方法,文件操作分成两种,具体的方法步骤如下:
S101、对于第一种操作命令:开始,应用程序下发open文件操作,该操作直接到达集群文件系统中的open文件描述符优化层,open文件描述符优化层收到open命令,并不真正的直接去存储介质上对该文件执行open操作获取文件描述符,检查对应inode是否已经存在打开文件;
S102、如果该文件尚未被打开,则集群文件系统文件描述符优化层保存文件相关信息,并将其信息保存到描述该文件信息相关的结构体struct ob_fd_t中,操作成功返回给应用程序;
S103、当检查对应inode已经存在打开文件时,对于后一种write、read操作命令以及被打开文件再次执行open操作,open文件描述符优化层收到open命令,当命令下发到集群文件系统中时,将下发的操作命令及相关信息创建成一个任务,然后下发open操作去存储介质上获取fd相关延迟打开结构体ob;
S104、若获取fd相关延迟打开结构体ob信息失败,则直接执行解析任务;若获取文件描述符fd相关延迟打开结构体ob信息成功,则判断ob是否执行open失败过;
S105、若ob执行open失败过,则销毁任务,对调用命令返回错误码表示对应fd操作失败,然后结束;若ob执行open没有失败过,则将任务加入到struct ob_fd_t结构体的任务链表中,并且注册回调函数ob_wake_cbk,使用ob结构体重的参数下发open命令,然后结束;
S106、使用ob结构体重的参数下发open命令后,异步回调,取出fd对应结构体ob中的任务链表,判断open是否执行成功;
S107、若open执行成功,则销毁ob,然后遍历任务链表;若open执行失败,则将错误码记录在ob中,然后遍历取出的对应文件描述符fd的任务链表,获取链表中对应任务后下发对该文件的write、read等操作;
S108、遍历任务链表后,从链表中去除当前节点,判断open是否执行成功,若成功,则解析该节点任务并执行,遍历结束,则直接操作返回结果给应用程序;若失败,则对该节点任务返回错误码表示对应fd操作失败,然后重新遍历任务链表,当write、read等文件操作完成后,遍历结束,则直接操作返回结果给应用程序。
最后应说明的几点是:首先,在本申请的描述中,需要说明的是,除非另有规定和限定,术语“安装”、“相连”、“连接”应做广义理解,可以是机械连接或电连接,也可以是两个元件内部的连通,可以是直接相连,“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变,则相对位置关系可能发生改变;
其次:本发明公开实施例附图中,只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计,在不冲突情况下,本发明同一实施例及不同实施例可以相互组合;
最后:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (2)
1.一种集群文件系统优化对文件描述符使用效率的方法,包括分布式集群文件系统,其特征在于:所述分布式集群文件系统包括堆栈式架构和多层功能层,所述堆栈式架构连接顶端连接有客户端以及连接底端连接有服务器磁盘,多层所述功能层包括应用程序、open文件描述符优化层和存储介质,所述集群文件系统优化文件描述符使用效率的方法步骤如下:
S101、应用程序下发open文件操作,该操作直接到达集群文件系统中的open文件描述符优化层,并不真正的直接去存储介质上打开对应文件;
S102、集群文件系统文件描述符优化层保存文件相关信息,并直接open操作成功返回给应用程序;
S103、应用程序对之前下发open操作的文件下发write、read操作或者再次open操作时候,会到达集群文件的文件描述符优化层,此时创建相应操作的同步任务,获取文件描述符fd相关的信息;
S104、获取文件描述符fd信息成功之后,则会对需要操作的文件下发真正open操作,此时才会去存储介质上对相应文件执行open操作;
S105、文件open操作完成后会在此返回返回到集群文件系统的文件描述符优化层,取出对应文件描述符fd对应struct ob_fd_t结构体中的任务链表;
S106、遍历取出的对应文件描述符fd的任务链表,获取链表中对应任务后下发对该文件的write、read操作;
S107、write、read文件操作完成后则直接操作返回结果给应用程序。
2.根据权利要求1所述的一种集群文件系统优化对文件描述符使用效率的方法,其特征在于:所述堆栈式架构用于将多层功能层一一堆叠起来的,每一层功能层都只实现一个单一的功能,且每一层功能层接受上一层功能层传来的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910216988.8A CN109947732B (zh) | 2019-03-21 | 2019-03-21 | 一种集群文件系统优化对文件描述符使用效率的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910216988.8A CN109947732B (zh) | 2019-03-21 | 2019-03-21 | 一种集群文件系统优化对文件描述符使用效率的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109947732A true CN109947732A (zh) | 2019-06-28 |
CN109947732B CN109947732B (zh) | 2022-10-11 |
Family
ID=67011297
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910216988.8A Active CN109947732B (zh) | 2019-03-21 | 2019-03-21 | 一种集群文件系统优化对文件描述符使用效率的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109947732B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112925754A (zh) * | 2021-03-31 | 2021-06-08 | 四川虹美智能科技有限公司 | 文件描述符溢出上报方法、装置及计算机可读介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7188128B1 (en) * | 2003-12-12 | 2007-03-06 | Veritas Operating Corporation | File system and methods for performing file create and open operations with efficient storage allocation |
US20120310892A1 (en) * | 2004-12-21 | 2012-12-06 | Dam Tru Q | System and method for virtual cluster file server |
US20130066928A1 (en) * | 2011-09-08 | 2013-03-14 | International Business Machines Corporation | Caching socket connections while ensuring that there are file descriptors available for the applications |
US20160371322A1 (en) * | 2015-06-22 | 2016-12-22 | Vmware, Inc. | Efficient management of large number of file descriptors |
CN107992504A (zh) * | 2016-10-26 | 2018-05-04 | 中兴通讯股份有限公司 | 一种文件处理方法及装置 |
-
2019
- 2019-03-21 CN CN201910216988.8A patent/CN109947732B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7188128B1 (en) * | 2003-12-12 | 2007-03-06 | Veritas Operating Corporation | File system and methods for performing file create and open operations with efficient storage allocation |
US20120310892A1 (en) * | 2004-12-21 | 2012-12-06 | Dam Tru Q | System and method for virtual cluster file server |
US20130066928A1 (en) * | 2011-09-08 | 2013-03-14 | International Business Machines Corporation | Caching socket connections while ensuring that there are file descriptors available for the applications |
US20160371322A1 (en) * | 2015-06-22 | 2016-12-22 | Vmware, Inc. | Efficient management of large number of file descriptors |
CN107992504A (zh) * | 2016-10-26 | 2018-05-04 | 中兴通讯股份有限公司 | 一种文件处理方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112925754A (zh) * | 2021-03-31 | 2021-06-08 | 四川虹美智能科技有限公司 | 文件描述符溢出上报方法、装置及计算机可读介质 |
CN112925754B (zh) * | 2021-03-31 | 2023-04-07 | 四川虹美智能科技有限公司 | 文件描述符溢出上报方法、装置及计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109947732B (zh) | 2022-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10277525B2 (en) | Method and apparatus for disaggregated overlays via application services profiles | |
CN103281197B (zh) | 一种基于NETCONF的ForCES配置方法 | |
CN102792270B (zh) | 经由bios配置概要文件的bios参数虚拟化 | |
US10284418B2 (en) | Network switch management via embedded management controller using management information base (MIB) to JSON parser | |
US20220004462A1 (en) | Past-state backup generator and interface for database systems | |
WO2012166166A1 (en) | Dependency-based impact analysis using multidimensional models of software offerings | |
CN107391045B (zh) | 一种目录空间配额方法及系统 | |
CN109547537A (zh) | 基于SAN存储共享卷实现openstack高可用的方法 | |
CN105278991B (zh) | 一种云应用部署配置模型的构造方法 | |
CN106814977A (zh) | 基于多存储厂商的多路径软件的管理方法及系统 | |
CN112506691B (zh) | 一种多能源系统数字孪生应用故障恢复方法及系统 | |
CN110888636A (zh) | 一种基于Kettle的ETL Web应用系统架构方法 | |
CN111130962A (zh) | 一种交换机自动化配置方法、设备、系统及存储介质 | |
CN104793981B (zh) | 一种虚拟机集群的在线快照管理方法及装置 | |
CN109947732A (zh) | 一种集群文件系统优化对文件描述符使用效率的方法 | |
CN104704473A (zh) | 融合基础架构系统中支持远程故障排除的基于模型的配置捕获和重放 | |
CN107528871A (zh) | 存储系统中的数据分析 | |
CN113177088A (zh) | 一种材料辐照损伤多尺度模拟大数据管理系统 | |
KR101376226B1 (ko) | 오픈 소스 통합 관리 방법 및 그 서버 | |
CN112948118B (zh) | 边缘计算方法、平台、计算机设备和可读存储介质 | |
CN113688009B (zh) | 一种云平台的云主机监控数据采集方法、系统及设备 | |
US7039707B2 (en) | Disk subsystem, computer system, storage managing method and program | |
CN102123171B (zh) | 一种面向海量存储管理的存储虚拟化方法 | |
CN109144892A (zh) | 一种管理内存中高频变化数据的缓冲链表数据结构设计方法 | |
CN101197698B (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 |