CN110008188B - 一种文件系统级的应用软件外存限额系统 - Google Patents

一种文件系统级的应用软件外存限额系统 Download PDF

Info

Publication number
CN110008188B
CN110008188B CN201910254771.6A CN201910254771A CN110008188B CN 110008188 B CN110008188 B CN 110008188B CN 201910254771 A CN201910254771 A CN 201910254771A CN 110008188 B CN110008188 B CN 110008188B
Authority
CN
China
Prior art keywords
file
interface layer
database
quota
cloud
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.)
Expired - Fee Related
Application number
CN201910254771.6A
Other languages
English (en)
Other versions
CN110008188A (zh
Inventor
吴一民
刘旭
梁鑫波
从瑶
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
South China University of Technology SCUT
Original Assignee
South China University of Technology SCUT
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by South China University of Technology SCUT filed Critical South China University of Technology SCUT
Priority to CN201910254771.6A priority Critical patent/CN110008188B/zh
Publication of CN110008188A publication Critical patent/CN110008188A/zh
Application granted granted Critical
Publication of CN110008188B publication Critical patent/CN110008188B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种文件系统级的应用软件外存限额系统,包括数据库接口层、对象存储接口层和文件系统接口层;所述数据库接口层负责文件系统接口层和数据库的对接;对象存储接口层用于从云端取回文件、往云端推送文件、查询云端文件属性和删除云端文件的函数的封装;文件系统接口层包含inotify监控和fanotify监控,fanotify监控负责监控使文件发生变化的应用程序,所述inotify监控负责监控文件发生的变化。运行本系统前,需要指定限额目录,编译配置文件。由于本系统提供了文件系统自动监控功能,能自动监测应用程序对文件的操作,从而能灵活管理文件数据,节省本地硬盘开销,满足用户对应用数据的特定需求。

Description

一种文件系统级的应用软件外存限额系统
技术领域
本发明涉及计算机领域,具体涉及一种文件系统级的应用软件外存限额系统。
背景技术
在当今社会,应用软件更新换代频繁,而这些应用软件动辄产生海量的应用数据,虽然存储空间也越做越大,但如不及时清理,有限的存储空间很快就被占满。而且,许多应用数据,有时候我们并不想清除,因此需要解决这方面的问题。云存储技术蓬勃发展,为我们提供了契机。目前市面上的大部分云存储客户端,使得云存储数据只能通过对应客户端的软件访问, 不同应用之间获取云存储的数据需要应用层面上的跨进程访问, 这种基于应用层的云存储方式与操作系统解耦,无法真正的像文件系统一样组织与管理数据。因此,从文件系统级开发一种系统,优化处理应用软件产生的应用数据,从而达到高效利用存储空间,满足用户对应用数据特定需求,是一个重要需求和亟待解决的问题。
发明内容
针对背景技术里提到的问题,本发明提供了一种文件系统级的应用软件外存限额系统(Application quota file system ,AQFS)。AQFS的目的是尽量避免消耗大量硬盘空间的情况下,在文件系统层级解决应用软件产生的应用数据问题,通过对应用软件运行时产生的应用数据进行一定额度限制,从而能有效利用硬盘空间,有效组织和管理应用数据。
一种文件系统级的应用软件外存限额系统,包括数据库接口层、对象存储接口层和文件系统接口层;
数据库接口层主要负责文件系统接口层和数据库的对接;
对象存储接口层用于实现从云端取回文件、往云端推送文件、查询云端文件属性和删除云端文件的函数的封装;
文件系统接口层包含inotify监控和fanotify监控,所述fanotify监控使文件发生变化的应用程序,所述inotify负责监控文件发生的变化。
进一步的,所述数据库接口层封装操纵数据库的函数,所述函数包括增添数据库字段函数、查询数据库字段函数、修改数据库字段函数和删除数据库字段函数;
所述数据库接口层有表和字段,数据接口层的后端为关系数据库,所述关系数据库包括限额表和文件表,当需要记录字段时,通过数据库接口层将数据存储在后端的关系数据库中。
进一步的,所述限额表负责记录各个应用软件当前的限额信息,需要限额的软件和限额的大小,此表由用户事先在配置文件中指定;
所述文件表主要负责记录文件信息,记录导致的文件状态发生变化的操作。
进一步的,对象存储接口层的后端是一个云端对象存储即云端,能在云端对象存储上面存储文件。
进一步的,所述文件系统接口层用于实现文件系统接口层、数据库接口层和对象存储接口层的对接;所述文件系统接口层具有外存限额功能;
所述文件系统接口层是运行的主体,当需要对数据库操作时,调用数据库接口层;当需要往云端推送文件、从云端取回文件、查询文件属性时,文件系统接口层会调用对象存储接口层进行相关操作。
所述文件系统接口层的后端采用树形结构的本地文件存储的形式。
进一步的,用户通过配置文件,自定义限额的应用程序和大小,根据限定的额度,实现对文件的自动化的限额管理,当应用程序为指定的限额程序并超过其限额大小时,文件系统接口层自动对文件进行从云端取回和推送的操作;
所述配置文件包括段名、限额程序字段和限额大小字段。
进一步的, 所述fanotify和inotify用于对同一文件的监控。
进一步的,应用软件不断写入文件时,会触发修改事件,文件系统接口层的监控得到应用程序名称后,在限额表和文件表中记录和修改相应的信息;当写的文件被关闭,会触发关闭事件,文件系统接口层通知数据库接口层检测关系数据库限额表中此应用程序已占用额度大小有没有超过用户自定义的限额大小,如果没超过限额大小,则文件正常存储到本地文件目录下,反之,文件系统接口层把限额目录中已经写入的文件推送到云端对象存储。
进一步的,应用软件读取文件时,会触发打开事件,文件系统接口层通知数据库接口层检测关系数据库文件表中记录文件的标志位,由此判断文件在本地还是云端,如果本地存在目标文件,则从本地中直接读取文件,如果文件存在于云端,则对象存储接口层从云端对象存储中读取文件;当打开读取的文件被关闭,会触发关闭事件,文件系统接口层通知数据库接口层检测关系数据库限额表中此应用程序已占用额度大小是否超过用户自定义的限额大小,如果没超过限额大小,则文件正常存储到本地文件目录下,反之,文件系统接口层把限额目录中已经写入的文件推送到云端对象存储。
进一步的,应用软件删除文件时,会触发删除事件,如果文件在本地,删除本地文件后,文件系统接口层通知数据库接口层删除后端关系数据库文件表中此文件的信息,同时修改限额表中此文件对应的应用程序已占用的限额大小的值;如果文件在云端,则直接删除云端的文件和文件表中此文件的信息。
与现有的技术相比,本发明的的有益效果:
(1)AQFS在文件系统层级利用云存储大容量特点,能自动监测应用程序对文件的操作,并根据限定额度大小,自动对文件进行从云端取回和推送的操作,从而能灵活管理文件数据,节省本地硬盘开销,满足用户对应用数据的特定需求。由于云存储的大容量的特点,本系统尤其对产生数据量较大的应用软件有明显优化作用。
(2) AQFS使用对象存储作为云后端,相比块存储与文件存储,对象存储集中了块存储读写性能优秀与文件存储共享性强的特点, 同时对象存储离散的读写方式使得在编程方面无需考虑繁琐的磁盘块结构设计。
(3) AQFS类似一个插件功能,在使用时,用户可以根据自己的实际需求在配置文件中设置自己需要限额的程序和限额的大小,增加了系统的灵活性。
附图说明
图1是本发明提供的AQFS系统结构图;
图2是本发明提供的AQFS运行工作流程图。
具体实施方式
下面结合实施例及附图对本发明的实施作进一步详细的描述,但本发明的实施方式不限于此。
本实施例的一种文件系统级的应用软件外存限额系统,如图1所示,包括:数据库接口层、对象存储接口层和文件系统接口层;
数据库接口层,具体地,设计了对本系统具有关键性作用的表和字段,具体的表和字段在实施例中进行了详细地说明,数据库接口层主要负责文件系统接口层和数据库的对接,因此数据库接口层需要封装好操纵数据库的函数,如增添数据库字段函数、查询数据库字段函数、修改数据库字段函数、删除数据库字段函数。如图1所示,数据接口层的后端是一个关系数据库,当需要记录字段时,通过数据库接口层将数据存储在后端的关系数据库中。
所述关系数据库包括限额表和文件表,数据库接口层具有关键性作用的表和字段,如表1和表2所示:
表1 限额表
表1属性 功能
应用名称 标识应用名称
限额大小 标识应用的限额的大小
已占额度 标识应用已占用额度
表2 文件表
表2属性 功能
应用名称 标识应用名称
文件目录标志 标识文件或目录
文件所处位置标志 标识文件在本地或云端
本地文件路径 标识本地文件路径
云端对象存储名 标识云端对象存储名
文件大小 标识文件大小
文件状态改变时间 标识文件状态修改时间
文件访问时间 标识文件最后访问时间
文件修改时间 标识文件内容修改时间
网络标志位 网络标记
其中,表1为限额表,负责记录各个应用软件当前的限额信息,需要限额的软件和限额的大小,此表由用户事先在配置文件中指定。表2为文件表,主要负责记录文件信息,凡是对文件的操作导致的文件状态的变化,都由此表负责记录。
对象存储接口层,具体地,对象存储接口层后端为云端对象存储,通过文件的对象名,可以访问对象存储中的文件。对象存储接口层主要实现了和文件系统接口层进行交互的操作,如把需要推送的文件以对象存储的形式推送到云端,在需要时从云端取回文件,从云端访问文件的属性等,凡是需要从端对象存储中对文件进行的操作都由对象向存储接口层负责。如图1所示,对象存储接口层的后端是一个云端对象存储,能在上面存储文件。
文件系统接口层,具体地,此文件系统接口层需要实现文件系统的自动监控功能,考虑到inotify文件系统监控方式不能监控应用程序的变化,fanotify文件系统监控方式不能监控文件的多种变化,本系统把两者结合起来,对于同一文件变化,由fanotify负责监控哪种应用程序对此文件造成了变化,由inotify负责此文件发生了哪些变化。文件系统接口层还需要实现和数据库接口层、对象存储接口层的对接。另外,本层的核心功能是外存限额功能,具体的限额方法,将会在以下进行详细的说明。如图1所示,文件系统接口层的后端,是本地文件存储的形式,采用树形结构,如1.txt文件存储的路径为/bak/TEST/1.txt,2. txt文件存储的路径为/bak/TEST/2. Txt。
在运行本系统之前,需要编辑配置文件,配置文件是一个文本文件,文本文件的内容接下来详细介绍。用户通过配置文件,自定义限额的应用程序和大小,根据限定的额度,实现对文件的自动化的限额管理,当应用程序为指定的限额程序并超过其限额大小时,系统自动对文件进行从云端取回和推送的操作。
将所需限额的程序以及大小填写到配置文件中,配置文件包括段名、限额程序字段、限额大小字段。为了区分不同字段,段名命名为[aqfs],限额程序字段依次命名为task_name[i], i为1到n之间的一个数字;限额大小字段依次命名为aqsize[j],j为1到n之间的一个数字。如下所示:
[aqfs]
task_name[1]=application
aqsize[1]=102400
在运行本系统之前,需要指定限额目录,限额目录为本地任意可以写的目录。当指定一个目录为限额目录时,此时在此限额目录下的操作就会被AQFS自动监测到。
上述为AQFS的整体架构,即构造AQFS的过程,接下来结合图2说明运行系统时,本系统是如何对应用软件进行限额的,如图2所示,读取配置文件,运行AQFS,系统是首先监测事件类型,监测文件的变化,进而进行不同的处理,导致文件变化的行为通常有三种,即写入文件、读取文件、删除文件,AQFS对这三种行为做了限额处理,具体过程如下:
1)写入文件的限额处理
当应用程序在指定的限额目录下不断写入文件时,一般来说,文件是直接写入本地路径下的。但运行了本系统后,写入文件的操作会触发修改事件,文件系统接口层的监控部分会获取到执行当前写操作的进程的进程号,然后,由该进程号的值去获取写操作的应用程序的名称,接着在文件表中写入该应用程序的名称、文件路径、文件大小等字段。如果配置文件中有指定此应用程序为限额程序,要去修改限额表中此应用程序已占用的限额大小的值。
当写的文件被关闭时,会触发关闭事件,文件系统接口层会通知数据库接口层检测关系数据库限额表中此应用程序已占用额度大小有没有超过用户自定义的限额大小,如果没超过限额大小,则文件正常存储到本地文件目录下。随着文件的不断写入,数据库接口层后端关系数据库中的文件表,不断记录文件的信息,数据库接口层后端关系数据库中的限额表,不断记录此应用的限额信息。
当AQFS检测到由此应用程序写入的文件大小总和已经超过系统设定的限额大小时。文件系统接口层会把限额目录中已经写入的文件推送到云端对象存储,具体的推送原则是:文件系统接口层会把所有文件中,最近最少未使用的文件不断循化推送到云端,直至此应用程序已占应用额度低于用户限定的额度,并将推送到云端的文件在本地进行文件截断处理,只保留文件名,这样本地文件就不会占用存储空间了。在不断推送到云端的过程中,当本地文件发生变化时还要及时在关系数据库表中进行同步更新记录。
2)读取的文件的限额处理
当用户打开文件进行读取操作时,会触发打开事件,文件系统接口层会通知数据库接口层检测关系数据库文件表中记录文件的标志位是在本地还是云端,如果本地存在目标文件,则从本地中直接读取文件,并在数据库接口层后端的关系数据库文件表中修改相应的文件属性。如果文件存在于云端,则要从对象存储接口层后端的云端对象存储中读取文件, 首先把文件从云端对象存储中下载到本地,修改关系数据库文件表中相应文件属性。
当打开读取的文件被关闭,同样会触发关闭事件, 文件系统接口层会通知数据库接口层检测关系数据库限额表中记录的已占用的限额值有没有超过规定的限定额度,如果超出,文件系统接口层会把限额目录中已经写入的文件推送到云端对象存储,具体的推送原则是:文件系统接口层会把所有文件中,最近最少未使用的文件不断循化推送到云端,直至此应用程序已占应用额度低于限定的额度,并进行相应的文件截断工作和关系数据库记录修改工作。
3)删除文件的限额处理
当用户对文件进行删除操作时,会触发删除事件,如果文件在本地,删除本地文件后,对象存储接口层会通知数据库接口层删除后端关系数据库文件表中此文件的信息,同时修改限额表中此文件对应的应用程序已占用的限额大小的值。如果文件在云端,则直接删除云端的文件和文件表中此文件的信息。
以上所述,仅为本发明较佳的实施例,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明所公开的范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都属于本发明的保护范围。

Claims (6)

1.一种文件系统级的应用软件外存限额系统,其特征在于,包括数据库接口层、对象存储接口层和文件系统接口层;
所述数据库接口层主要负责文件系统接口层和关系数据库的对接;
所述对象存储接口层用于实现从云端取回文件、往云端推送文件、查询云端文件属性和删除云端文件的函数的封装;
所述文件系统接口层包含inotify监控和fanotify监控,所述fanotify监控负责监控使文件发生变化的应用程序,所述inotify监控负责监控文件发生的变化;
用户通过配置文件,自定义限额的应用程序和大小,根据限定的额度,实现对文件的自动化的限额管理,当应用程序为指定的限额程序并超过其限额大小时,文件系统接口层自动对文件进行从云端取回和推送的操作;
所述配置文件包括段名、限额程序字段和限额大小字段;应用软件不断写入文件时,会触发修改事件,文件系统接口层的监控得到应用程序名称后,在限额表和文件表中记录和修改相应的信息;当写的文件被关闭,会触发关闭事件,文件系统接口层通知数据库接口层检测关系数据库限额表中此应用程序已占用额度大小有没有超过用户自定义的限额大小,如果没超过限额大小,则文件正常存储到本地文件目录下,反之,文件系统接口层把限额目录中已经写入的文件推送到云端对象存储;
应用软件读取文件时,会触发打开事件,文件系统接口层通知数据库接口层检测关系数据库文件表中记录文件的标志位,由此判断文件在本地还是云端,如果本地存在目标文件,则从本地中直接读取文件,如果文件存在于云端,则对象存储接口层从云端对象存储中读取文件;当打开读取的文件被关闭,会触发关闭事件,文件系统接口层通知数据库接口层检测关系数据库限额表中此应用程序已占用额度大小是否超过用户自定义的限额大小,如果没超过限额大小,则文件正常存储到本地文件目录下,反之,文件系统接口层把限额目录中已经写入的文件推送到云端对象存储;
应用软件删除文件时,会触发删除事件,如果文件在本地,删除本地文件后,文件系统接口层通知数据库接口层删除后端关系数据库文件表中此文件的信息,同时修改限额表中此文件对应的应用程序已占用的限额大小的值;如果文件在云端,则直接删除云端的文件和文件表中此文件的信息。
2.根据权利要求1所述的一种文件系统级的应用软件外存限额系统,其特征在于,所述数据库接口层封装操纵数据库的函数,所述函数包括增添数据库字段函数、查询数据库字段函数、修改数据库字段函数和删除数据库字段函数;
所述数据库接口层有表和字段,数据接口层的后端为关系数据库,所述关系数据库包括限额表和文件表,当需要记录字段时,通过数据库接口层将数据存储在后端的关系数据库中。
3.根据权利要求2所述的一种文件系统级的应用软件外存限额系统,其特征在于,所述限额表负责记录各个应用软件当前的限额信息,需要限额的软件和限额的大小,此表由用户事先在配置文件中指定;
所述文件表主要负责记录文件信息,记录导致的文件状态发生变化的操作。
4.根据权利要求1所述的一种文件系统级的应用软件外存限额系统,其特征在于,对象存储接口层的后端是一个云端对象存储即云端,能在云端对象存储上面存储文件。
5.根据权利要求1所述的一种文件系统级的应用软件外存限额系统,其特征在于,所述文件系统接口层用于实现文件系统接口层和数据库接口层、对象存储接口层的对接;所述文件系统接口层具有外存限额功能;
所述文件系统接口层是运行的主体,当需要对数据库操作时,调用数据库接口层;当需要往云端推送文件、从云端取回文件、查询文件属性时,文件系统接口层会调用对象存储接口层进行相关操作;
文件系统接口层的后端采用树形结构的本地文件存储的形式。
6.根据权利要求1所述的一种文件系统级的应用软件外存限额系统,其特征在于,所述fanotify和inotify用于对同一文件的监控。
CN201910254771.6A 2019-03-31 2019-03-31 一种文件系统级的应用软件外存限额系统 Expired - Fee Related CN110008188B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910254771.6A CN110008188B (zh) 2019-03-31 2019-03-31 一种文件系统级的应用软件外存限额系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910254771.6A CN110008188B (zh) 2019-03-31 2019-03-31 一种文件系统级的应用软件外存限额系统

Publications (2)

Publication Number Publication Date
CN110008188A CN110008188A (zh) 2019-07-12
CN110008188B true CN110008188B (zh) 2022-11-18

Family

ID=67169161

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910254771.6A Expired - Fee Related CN110008188B (zh) 2019-03-31 2019-03-31 一种文件系统级的应用软件外存限额系统

Country Status (1)

Country Link
CN (1) CN110008188B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111581165B (zh) * 2020-04-29 2023-04-21 华南理工大学 Android应用外存限额监控工具及其使用方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102035881A (zh) * 2010-11-19 2011-04-27 清华大学 一种云端存储系统的数据缓存方法
CN105094692A (zh) * 2014-05-22 2015-11-25 Tcl集团股份有限公司 一种基于Android系统的磁盘配额控制方法及系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2628091A4 (en) * 2010-10-11 2016-04-27 Hsbc Technology & Services Usa Inc Computer Architecture and Method for an Application Processing Machine
US20170208052A1 (en) * 2016-01-19 2017-07-20 Hope Bay Technologies, Inc Hybrid cloud file system and cloud based storage system having such file system therein
US20170208125A1 (en) * 2016-01-19 2017-07-20 Hope Bay Technologies, Inc Method and apparatus for data prefetch in cloud based storage system
US20170206218A1 (en) * 2016-01-19 2017-07-20 Hope Bay Technologies, Inc Method and apparatus for data deduplication in cloud based storage system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102035881A (zh) * 2010-11-19 2011-04-27 清华大学 一种云端存储系统的数据缓存方法
CN105094692A (zh) * 2014-05-22 2015-11-25 Tcl集团股份有限公司 一种基于Android系统的磁盘配额控制方法及系统

Also Published As

Publication number Publication date
CN110008188A (zh) 2019-07-12

Similar Documents

Publication Publication Date Title
CA2837984C (en) Systems and methods for classifying and transferring information in a storage network
CN1329858C (zh) 一种动态的基于对象格式的用于数据操纵的系统和方法
US7822749B2 (en) Systems and methods for classifying and transferring information in a storage network
JP4249267B2 (ja) ファイル・システムにおけるディスク・スペースの解放
CN105912687A (zh) 海量分布式数据库存储单元
CN100507919C (zh) 一种fat文件系统及其处理方法
CN111708895B (zh) 一种知识图谱系统的构建方法及装置
CN108334541A (zh) 一种数据存储方法、装置、设备及存储介质
JP2006301892A (ja) 階層ストレージ管理装置、方法、およびプログラム
CN110008188B (zh) 一种文件系统级的应用软件外存限额系统
CN102799583B (zh) 一种面向对象的存取方法及系统
US7451279B2 (en) Storage system comprising a shared memory to access exclusively managed data
CN111752941A (zh) 一种数据存储、访问方法、装置、服务器及存储介质
CN100447758C (zh) 逻辑磁盘管理器的快照管理方法
CN115543931A (zh) 一种基于大文件的图像管理方法
CN111581165B (zh) Android应用外存限额监控工具及其使用方法
JP4079244B2 (ja) 追記型記憶媒体ボリュームの再編成処理方法
CN105549903B (zh) 易于移植的文件系统及其对外置存储器数据的管理方法
JP3890212B2 (ja) 情報格納システム及び情報格納方法
CN116266100A (zh) 一种分布式对象存储管理方法和装置
CN109359116A (zh) 一种实体关系的存储方法及设备
JPS6337427A (ja) ソースプログラムの世代管理方法
JPH04246773A (ja) データベース管理システム

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20221118

CF01 Termination of patent right due to non-payment of annual fee