CN111949629B - 一种面向边缘云的文件存储方法及终端 - Google Patents

一种面向边缘云的文件存储方法及终端 Download PDF

Info

Publication number
CN111949629B
CN111949629B CN202010757403.6A CN202010757403A CN111949629B CN 111949629 B CN111949629 B CN 111949629B CN 202010757403 A CN202010757403 A CN 202010757403A CN 111949629 B CN111949629 B CN 111949629B
Authority
CN
China
Prior art keywords
file
written
data block
data
block
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.)
Active
Application number
CN202010757403.6A
Other languages
English (en)
Other versions
CN111949629A (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.)
Jinqianmao Technology Co ltd
Original Assignee
Jinqianmao Technology Co ltd
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 Jinqianmao Technology Co ltd filed Critical Jinqianmao Technology Co ltd
Publication of CN111949629A publication Critical patent/CN111949629A/zh
Application granted granted Critical
Publication of CN111949629B publication Critical patent/CN111949629B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/185Hierarchical storage management [HSM] systems, e.g. file migration or policies thereof
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

本发明提供了一种面向边缘云的文件存储方法及终端,接收待写入文件的写入请求,为待写入文件分配第一标识,创建待写入文件对应的文件索引文件存储第一标识;根据第一标识,创建与待写入文件对应的数据块索引文件;将待写入文件按照第一预设值切割成多个待写入文件块,逐一判断待写入文件块中数据是否与已存储的数据相同,若否,则将待写入文件块写入数据存储块,为待写入文件块分配第二标识,并将第二标识写入数据块索引文件中;本发明将文件分块存储,判断每一文件块中的数据是否已被存储,只保存数据未被存储过的待写入文件块,对待写入文件进行去重处理,大大节约了存储空间实现文件特别是边缘数据的有效管理。

Description

一种面向边缘云的文件存储方法及终端
技术领域
本发明涉及数据存储领域,尤其涉及一种面向边缘云的文件存储方法及终端。
背景技术
近年来,5G时代的来临,使边缘云存储在整个IT行业中强劲崛起,预计将成为5G发展过程中增长最快的科技行业之一;由于物联网、汽车、AR、游戏和5G等的大量应用,在网络边缘生成了大量数据,国际数据公司(IDC)《数据时代2025》报告中预测,仅物联网设备就有望产生90ZB的数据;另外,根据预测,到2020年75%的数据将在边缘被处理,所以,边缘云存储、边缘计算具有广阔的发展前景。
同时,人工智能在实时应用中的出现,以及用户5G近地范围内的基础设施智能导航、智能计算、智能控制和智能监控等应用兴起,创造了对边缘云存储的大量需求;许多研究论文认为,人工智能终端一般是低延迟的应用程序,而终端生成的大部分数据又必须在终端实时传输到云中心进行计算、分析、处理,而现有的数据管理及存储模式,无法对边缘数据进行有序存储及管理。
发明内容
本发明所要解决的技术问题是:提供一种面向边缘云的文件存储方法及终端,实现对边缘节点数据的有效管理。
为了解决上述技术问题,本发明采用的一种技术方案为:
一种面向边缘云的文件存储方法,包括步骤:
S1、接收待写入文件的写入请求,为所述待写入文件分配第一标识,并创建所述待写入文件对应的文件索引文件存储所述第一标识;
S2、将所述待写入文件按照第一预设值切割成多个待写入文件块,逐一判断所述待写入文件块是否与已存储的数据块相同,若否,则为所述待写入文件块分配第二标识,并将所述待写入文件块写入数据存储块;
S3、根据所述待写入文件切割成的多个所述待写入文件块的第二标识,生成数据块索引文件。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种面向边缘云的文件存储终端,包括存储器、处理器及存储在存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
S1、接收待写入文件的写入请求,为所述待写入文件分配第一标识,并创建所述待写入文件对应的文件索引文件存储所述第一标识;
S2、将所述待写入文件按照第一预设值切割成多个待写入文件块,逐一判断所述待写入文件块是否与已存储的数据块相同,若否,则为所述待写入文件块分配第二标识,并将所述待写入文件块写入数据存储块;
S3、根据所述待写入文件切割成的多个所述待写入文件块的第二标识,生成数据块索引文件。
本发明的有益效果在于:为每一待写入文件创建文件索引文件,并分配第一标识,第一标识唯一标识待写入文件,将待写入文件切割成多个待写入文件块,并进行去重判断,为与已存储的数据块不同的待写入文件块分配第二标识,将待写入文件块写入数据存储块,根据待写入文件块的第二标识生成待写入文件对应的数据块索引文件,根据文件索引文件中存储的第一标识,能够计算出文件所对应的数据块索引文件路径,根据数据块索引文件中存储的第二标识,能够计算出切割后的文件具体存储的数据存储块路径,文件索引文件和数据块索引文件相配合,而不是直接在文件索引文件中存储待写入文件所对应的数据存储块的标识,减小了单个索引文件的大小,在创建索引时更加快速且能够提升根据索引查找文件的速度,也使文件的层级关系更加明晰,实现文件特别是边缘数据的有效管理;并且,将文件分块存储,判断每一文件块中的数据是否已被存储,只保存数据未被存储过的待写入文件块,对待写入文件进行去重处理,大大节约了存储空间,若传输失败无需将整个文件重新进行传输,分散了数据的传输压力,能够实现更高效、容错程度更大的传输,同时,打通了本地存储和云存储的连接。
附图说明
图1为本发明实施例的一种面向边缘云的文件存储方法的步骤流程图;
图2为本发明实施例的一种面向边缘云的文件存储终端的结构示意图;
图3为本发明实施例的文件索引文件、数据块索引文件和数据块文件的关系示意图;
图4为本发明实施例的文件存储过程示意图;
图5为本发明实施例的文件读取过程示意图;
图6为本发明实施例的数据上云过程示意图;
标号说明:
1、一种面向边缘云的文件存储终端;2、处理器;3、存储器。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
请参照图1,一种面向边缘云的文件存储方法,包括步骤:
S1、接收待写入文件的写入请求,为所述待写入文件分配第一标识,并创建所述待写入文件对应的文件索引文件存储所述第一标识;
S2、将所述待写入文件按照第一预设值切割成多个待写入文件块,逐一判断所述待写入文件块是否与已存储的数据块相同,若否,则为所述待写入文件块分配第二标识,并将所述待写入文件块写入数据存储块;
S3、根据所述待写入文件切割成的多个所述待写入文件块的第二标识,生成数据块索引文件。
从上述描述可知,本发明的有益效果在于:为每一待写入文件创建文件索引文件,并分配第一标识,第一标识唯一标识待写入文件,将待写入文件切割成多个待写入文件块,并进行去重判断,为与已存储的数据块不同的待写入文件块分配第二标识,将待写入文件块写入数据存储块,根据待写入文件块的第二标识生成待写入文件对应的数据块索引文件,根据文件索引文件中存储的第一标识,能够计算出文件所对应的数据块索引文件路径,根据数据块索引文件中存储的第二标识,能够计算出切割后的文件具体存储的数据存储块路径,文件索引文件和数据块索引文件相配合,而不是直接在文件索引文件中存储待写入文件所对应的数据存储块的标识,减小了单个索引文件的大小,在创建索引时更加快速且能够提升根据索引查找文件的速度,也使文件的层级关系更加明晰,实现文件特别是边缘数据的有效管理;并且,将文件分块存储,判断每一文件块中的数据是否已被存储,只保存数据未被存储过的待写入文件块,对待写入文件进行去重处理,大大节约了存储空间,若传输失败无需将整个文件重新进行传输,分散了数据的传输压力,能够实现更高效、容错程度更大的传输,同时,打通了本地存储和云存储的连接。
进一步的,所述步骤S2中还包括步骤:
创建数据块文件,所述数据块文件包括数据块头和所述数据存储块,所述数据块头和所述数据存储块一一对应,所述数据块头包括标识字段,所述标识字段为所述数据存储块的存储位置或级别,所述数据块文件与所述第二标识存在对应关系,该对应关系通过预设计算方式确定。
由上述描述可知,将存放待写入文件块的数据块文件分为数据块头和数据存储块,将待写入文件块存入数据存储块,而在数据块头存储标识字段,标识数据存储块的存储位置或级别,单独设置待写入文件切割后的待写入文件块,做为中间数据,易于比对哈希值确认是否有重复数据块存储的情况,将所述第二标识和哈希值单独存在数据库,方便对文件进行管理。
进一步的,所述步骤S2具体为:
将所述待写入文件按照所述第一预设值切割成多个所述待写入文件块;
计算多个所述待写入文件块的第一哈希值,并与哈希值数据库中的哈希值进行比较,判断所述哈希值数据库中是否存在与所述第一哈希值一致的第二哈希值;
若是,则所述待写入文件块与已存储的数据块相同,将所述第二哈希值对应的第二数据存储块的引用次数加一,并将所述第二数据存储块对应的所述第二标识作为所述待写入文件块的第二标识;
否则,所述待写入文件块与已存储的数据块不相同,为所述待写入文件块分配第二标识,将所述待写入文件块写入数据存储块,并在所述哈希值数据库中存入所述待写入文件块的第二标识与所述第一哈希值的对应关系。
由上述描述可知,计算待写入文件切割后生成的待写入文件块所对应对的哈希值,并和哈希值数据库中其他数据存储块所对应的哈希值比较,若哈希值相同,则说明此待写入文件块的内容与此数据存储块内容一致,此时将此数据存储块所对应的第二标识作为待写入文件块的第二标识,并将该数据存储块的引用次数加一,无需对内容相同的待写入文件块进行再次存储,而是直接引用已存储的相同数据块的第二标识,避免了同样内容的数据被多次存储,造成存储空间和传输带宽资源浪费的问题。
进一步的,所述步骤S2中将所述待写入文件块写入数据存储块具体包括:
将多个所述待写入文件块存储到对应的所述数据存储块内,并更新所述数据块文件中所述数据块头中的标识字段;
所述标识字段包括location字段;
当location字段的值小于等于第一阈值时,表示所述数据块文件保存在本地;
当location字段的值大于第一阈值时,表示所述数据块文件保存在云端;
当location字段的值小于等于第一阈值时:
若location字段的值等于第二阈值,表示所述数据块文件保存在SSD上;
若location字段的值等于第三阈值,表示所述数据块文件保存在SATA盘上。
由上述描述可知,根据数据块文件中数据存储块的位置更新数据块头中的标识字段,能够确定数据块文件的位置和级别信息,便于在文件查找时进行定位,提升文件搜索时的效率,即引入location字段标识数据存储块的存储位置,能够加快需获取文件时的检索速度。
进一步的,还包括:
接收文件读取请求,根据所述文件读取请求访问所述数据块文件,并记录每一所述数据块文件的访问频次;
判断所述访问频次是否超过第二预设值,若否,则所述数据块文件为冷数据块文件;
根据所述冷数据块文件的信息,生成数据迁移列表;
判断当前使用空间是否超过第一预设值,若是,则根据所述数据迁移列表,通过S3协议将所述冷数据块文件传输到云端;
判断当前使用空间是否低于第二预设值,若是,则停止将数据迁移到云端的操作;
保留所述冷数据块文件的所述数据块头,以使得能够对迁移到云端的所述冷数据块文件进行操作。
由上述描述可知,还能够根据文件读取请求记录每一数据块文件的访问频次,根据访问频次将数据块文件分类,访问频次低于阈值的冷数据块存储到云端,能够节约本地的存储空间,并且在本地保存数据块文件的数据块头,能够根据数据块头定位云端的数据块文件进行相应操作,因对云端的数据进行相应操作耗时更长,将访问频次低的数据块文件保存到云端,并且设置最大阈值和最小阈值,当前使用空间高于最大阈值时才开始数据迁移,当前使用空间低于最小阈值后则停止数据迁移,能够最大程度降低对用户访问数据的体验的影响。
请参照图2,一种面向边缘云的文件存储终端,包括存储器、处理器及存储在存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
S1、接收待写入文件的写入请求,为所述待写入文件分配第一标识,并创建所述待写入文件对应的文件索引文件存储所述第一标识;
S2、将所述待写入文件按照第一预设值切割成多个待写入文件块,逐一判断所述待写入文件块是否与已存储的数据块相同,若否,则为所述待写入文件块分配第二标识,并将所述待写入文件块写入数据存储块;
S3、根据所述待写入文件切割成的多个所述待写入文件块的第二标识,生成数据块索引文件。
从上述描述可知,本发明的有益效果在于:为每一待写入文件创建文件索引文件,并分配第一标识,第一标识唯一标识待写入文件,将待写入文件切割成多个待写入文件块,并进行去重判断,为与已存储的数据块不同的待写入文件块分配第二标识,将待写入文件块写入数据存储块,根据待写入文件块的第二标识生成待写入文件对应的数据块索引文件,根据文件索引文件中存储的第一标识,能够计算出文件所对应的数据块索引文件路径,根据数据块索引文件中存储的第二标识,能够计算出切割后的文件具体存储的数据存储块路径,文件索引文件和数据块索引文件相配合,而不是直接在文件索引文件中存储待写入文件所对应的数据存储块的标识,减小了单个索引文件的大小,在创建索引时更加快速且能够提升根据索引查找文件的速度,也使文件的层级关系更加明晰,实现文件特别是边缘数据的有效管理;并且,将文件分块存储,判断每一文件块中的数据是否已被存储,只保存数据未被存储过的待写入文件块,对待写入文件进行去重处理,大大节约了存储空间,若传输失败无需将整个文件重新进行传输,分散了数据的传输压力,能够实现更高效、容错程度更大的传输,同时,打通了本地存储和云存储的连接。
进一步的,所述步骤S2中还包括步骤:
创建数据块文件,所述数据块文件包括数据块头和所述数据存储块,所述数据块头和所述数据存储块一一对应,所述数据块头包括标识字段,所述标识字段为所述数据存储块的存储位置或级别,所述数据块文件与所述第二标识存在对应关系,该对应关系通过预设计算方式确定。
由上述描述可知,将存放待写入文件块的数据块文件分为数据块头和数据存储块,将待写入文件块存入数据存储块,而在数据块头存储标识字段,标识数据存储块的存储位置或级别,单独设置待写入文件切割后的待写入文件块,即在内存中先对待写入文件进行切割,所生成的待写入文件块做为中间缓存数据,易于比对哈希值确认是否有重复数据块存储的情况,将所述第二标识和哈希值单独存在数据库,方便对文件进行管理。
进一步的,所述步骤S2具体为:
将所述待写入文件按照所述第一预设值切割成多个所述待写入文件块;
计算多个所述待写入文件块的第一哈希值,并与哈希值数据库中的哈希值进行比较,判断所述哈希值数据库中是否存在与所述第一哈希值一致的第二哈希值;
若是,则所述待写入文件块与已存储的数据块相同,将所述第二哈希值对应的第二数据存储块的引用次数加一,并将所述第二数据存储块对应的所述第二标识作为所述待写入文件块的第二标识;
否则,所述待写入文件块与已存储的数据块不相同,为所述待写入文件块分配第二标识,将所述待写入文件块写入数据存储块,并在所述哈希值数据库中存入所述待写入文件块的第二标识与所述第一哈希值的对应关系。
由上述描述可知,计算待写入文件切割后生成的待写入文件块所对应对的哈希值,并和哈希值数据库中其他数据存储块所对应的哈希值比较,若哈希值相同,则说明此待写入文件块的内容与此数据存储块内容一致,此时将此数据存储块所对应的第二标识作为待写入文件块的第二标识,并将该数据存储块的引用次数加一,无需对内容相同的待写入文件块进行再次存储,而是直接引用已存储的相同数据块的第二标识,避免了同样内容的数据被多次存储,造成存储空间和传输带宽资源浪费的问题。
进一步的,所述步骤S2中将所述待写入文件块写入数据存储块具体包括:
将多个所述待写入文件块存储到对应的所述数据存储块内,并更新所述数据块文件中所述数据块头中的标识字段;
所述标识字段包括location字段;
当location字段的值小于等于第一阈值时,表示所述数据块文件保存在本地;
当location字段的值大于第一阈值时,表示所述数据块文件保存在云端;
当location字段的值小于等于第一阈值时:
若location字段的值等于第二阈值,表示所述数据块文件保存在SSD上;
若location字段的值等于第三阈值,表示所述数据块文件保存在SATA盘上。
由上述描述可知,根据数据块文件中数据存储块的位置更新数据块头中的标识字段,能够确定数据块文件的位置和级别信息,便于在文件查找时进行定位,提升文件搜索时的效率,即引入location字段标识数据存储块的存储位置,能够加快需获取文件时的检索速度。
进一步的,还包括:
接收文件读取请求,根据所述文件读取请求访问所述数据块文件,并记录每一所述数据块文件的访问频次;
判断所述访问频次是否超过第二预设值,若否,则所述数据块文件为冷数据块文件;
根据所述冷数据块文件的信息,生成数据迁移列表;
判断当前使用空间是否超过第一预设值,若是,则根据所述数据迁移列表,通过S3协议将所述冷数据块文件传输到云端;
判断当前使用空间是否低于第二预设值,若是,则停止将数据迁移到云端的操作;
保留所述冷数据块文件的所述数据块头,以使得能够对迁移到云端的所述冷数据块文件进行操作。
由上述描述可知,还能够根据文件读取请求记录每一数据块文件的访问频次,根据访问频次将数据块文件分类,访问频次低于阈值的冷数据块存储到云端,能够节约本地的存储空间,并且在本地保存数据块文件的数据块头,能够根据数据块头定位云端的数据块文件进行相应操作,因对云端的数据进行相应操作耗时更长,将访问频次低的数据块文件保存到云端,并且设置最大阈值和最小阈值,当前使用空间高于最大阈值时才开始数据迁移,当前使用空间低于最小阈值后则停止数据迁移,能够最大程度降低对用户访问数据的体验的影响。
请参照图1、图3及图4,本发明的实施例一为:
一种面向边缘云的文件存储方法,能够应用于边缘云环境的存储系统中,与现有的文件系统如xfs、ext4、BTRFS等文件系统连接,作为文件系统与云端之间的中间层,具体的,可通过POSIX(Portable Operating System Interface,可移植操作系统接口)接口与上述文件系统连接,具体包括:
S1、接收待写入文件的写入请求,为所述待写入文件分配第一标识(fid),并创建所述待写入文件对应的文件索引文件(metadata file)存储所述第一标识;
具体的,以所述待写入文件的文件名作为其对应的文件索引文件的文件名;
S2、将所述待写入文件按照第一预设值切割成多个待写入文件块block,逐一判断所述待写入文件块中数据是否与已存储的数据块相同,若否,则为多个所述待写入文件块分配第二标识(blockid),并将所述待写入文件块写入数据块文件(chunk file)中存储;
S3、将所述待写入文件切割成的多个所述待写入文件块的第二标识,写入到数据块索引文件(md file);
第一标识(fid)通过计算实现与数据块索引文件(md file)对应关系,使得存储灵活,读取效率高。
在一种可选的实施方式中,第一预设值为4MB,通过计算一待写入文件块的哈希值,判断已存储的数据存储块中,是否有数据存储块的哈希值与待写入文件块的哈希值相同,若有,则表示待写入文件块中数据与已存储的数据存储块中的数据相同;
步骤S2中,还包括:创建所述数据块文件(chunk file),所述数据块文件为数据实体文件,包括数据块头(chunk_header)和数据存储块,所述数据块头和所述数据存储块一一对应,所述数据块头包括标识字段,所述标识字段为所述数据存储块的存储位置或级别;
在一种可选的实施方式中,每一数据块文件对应第三标识(chunkid),并在数据库中创建数据块文件索引文件以记录数据块文件的相应信息,如chunkid、数据块文件大小、数据块文件存储时间(ctime)等;
所述数据块文件(chunk file)与所述第二标识(blockid)之间通过计算实现对应关系,使得存储灵活,读取效率高;
请参照图3,每一文件对应一个文件索引文件,文件索引文件中存储能够唯一标识文件的第一标识(fid)及文件的大小(fsize),每一文件索引文件对应一个数据块索引文件,数据块索引文件中存储该文件实际存储的数据存储块的第二标识,第二标识能够唯一标识数据存储块;根据第二标识能够确定文件所存放的数据存储块,数据存储块包含在数据块文件中,数据块文件中还包括数据块头;
请参照图4,步骤S2具体为:
S21、将所述待写入文件按照所述第一预设值切割成多个所述待写入文件块block;
S22、计算多个所述待写入文件块的第一哈希值,并与哈希值数据库中的哈希值进行比较,判断所述哈希值数据库中是否存在与所述第一哈希值一致的第二数据存储块,若是,则执行S23,否则,执行S24;
具体的,可通过sha256算法,计算待写入文件块的第一哈希值;
S23、将所述哈希值数据库中第二数据存储块的引用次数加一,并返回所述第二数据存储块对应的所述第二标识blockid;
S24、在所述哈希值数据库中创建新的一条记录,为待写入文件块创建一个新的第二标识blockid,并写入哈希值等信息,并返回创建的第二标识blockid;
S25、根据S24获得的待写入文件块第二标识blockid,计算出对应的chunkid,并创建数据块文件,将待写入文件块写入数据块文件。
在一种可选的实施方式中,在待写入文件写入完成后关闭数据块文件时,将内存中所有数据存储块的第二标识保存到数据块索引文件(md file)中,并在文件索引文件(metadata file)中更新待写入文件的大小(fsize);
其中,将多个所述待写入文件块写入数据块文件具体包括:
将多个所述待写入文件块存储到对应的所述数据存储块内,并更新所述数据块文件中所述数据块头中的标识字段;
所述标识字段包括location字段;
当location字段的值小于等于第一阈值时,表示所述数据块文件保存在本地;
当location字段的值大于第一阈值时,表示所述数据块文件保存在云端;
当location字段的值小于等于第一阈值时:
若location字段的值等于第二阈值,表示所述数据块文件保存在SSD上;
若location字段的值等于第三阈值,表示所述数据块文件保存在SATA盘上;
具体的,当location字段的值小于等于10时,表示数据块文件保存在本地;其中,当location字段的值等于0时,表示数据块文件保存在SSD上;当location字段的值等于1时,表示数据块文件保存在SATA盘上;
当location字段的值大于10时,表示数据块文件保存在云端;
在一种可选的实施方式中,默认将数据块文件保存在本地。
请参照图5及图6,本发明的实施例二为:
一种面向边缘云的文件存储方法,其与实施例一的不同之处在于:
请参照图5,还包括文件读取:
根据待读取文件的文件名,确定其对应的文件索引文件,获取待读取文件的第一标识fid和文件大小fsize;
根据待读取文件的开始读取位置,确定待读取文件的文件偏移量offset即开始读取位置与文件开始位置相对的偏移量offset;
根据fid进行相应计算,确定文件索引文件所对应的数据块索引文件,并根据文件偏移量offset确定数据存储块偏移量index,在数据块索引文件中确定第二标识blockid;
根据第二标识确定数据块文件的文件路径chunk_path,具体的,根据第二标识进行相应计算,获取数据块文件的第三标识(chunkid)并获取数据块文件中的数据块头chunk_header,根据数据块头中标识字段location的值,判断数据块文件的存储位置,将数据块文件中数据存储块block中的数据缓存到内存中,并返回实际肚子的总字节数;
请参照图6,还包括:
根据接口访问请求,生成日志,并对日志进行解析;
在一种可选的实施方式中,接收文件读取请求,根据所述文件读取请求访问所述数据块文件,并记录每一所述数据块文件的访问频次;
判断所述访问频次是否超过第二预设值,若否,则所述数据块文件为冷数据块文件;
判断本地存储使用空间是否超过第三预设值,若是,则说明使用空间达到高水位,触发数据迁移;
根据多个所述冷数据块文件的信息,生成数据迁移列表;
根据所述数据迁移列表,通过S3(Simple Storage Service简单存储服务)协议将多个所述冷数据块文件传输到云端;
其中,还包括设定高低水位,用于控制数据是否需要迁移到云上;如果当前使用空间已超过高水位上限,则开始迁移任务;根据所述数据迁移列表,通过S3协议将多个所述冷数据块文件传输到云端;并保留多个所述冷数据块文件的所述数据块头,以使得能够对迁移到云端的所述冷数据块文件进行操作;如果经过迁移以后,当前使用空间已小于等于低水位下限,则停止迁移任务;
在一种可选的实施方式中,在数据迁移列表中按照冷数据块文件的访问频次从低到高排列冷数据块文件,并从访问频次低的冷数据块文件开始迁移,将冷数据块文件保存到云端后,删除本地冷数据块文件中的数据存储块,并更新本地冷数据块文件中的数据块头中的标识字段;具体的,更新标识字段中的location字段;当本地存储使用空间低于第四预设值时,说明使用空间达到低水位,停止数据迁移,实现数据在本地与云端的分级存储;
具体的,通过云服务提供商所提供的接口,与云服务提供商所提供的对象存储服务器连接,将冷数据块文件传输到OSD(Object Storage Device,对象存储设备);
保留多个所述冷数据块文件的所述数据块头,以使得能够对迁移到云端的所述冷数据块文件进行操作;
具体的,根据本地保留的多个冷数据块文件的数据块头,搜索迁移到云端的相应冷数据块文件;因迁移到云端的冷数据块文件的数据块头与本地保留的数据块头一致;根据本地保留的数据块头确定云端的相应冷数据块文件后,建立相应映射路径,对云端的相应冷数据块文件进行增删改查等操作;
还包括:接收文件删除请求,根据文件删除请求确定所述数据块文件,判断数据块文件中数据存储块的引用次数是否为0,若为0,则删除数据块文件,若不为0,则将引用次数减1。
请参照图2,本发明的实施例三为:
一种面向边缘云的文件存储终端1,包括处理器2、存储器3及存储在存储器3上并可在所述处理器2上运行的计算机程序,所述处理器2执行所述计算机程序时实现实施例一或实施例二中的各个步骤。
综上所述,本发明提供了一种面向边缘云的文件存储方法及终端,为每一待写入文件创建文件索引文件,并分配第一标识,第一标识唯一标识待写入文件,将待写入文件切割成多个待写入文件块,并进行去重判断,为与已存储的数据块不同的待写入文件块分配第二标识,将待写入文件块写入数据存储块,根据待写入文件块的第二标识生成待写入文件对应的数据块索引文件,根据文件索引文件中存储的第一标识,能够计算出文件所对应的数据块索引文件路径,根据数据块索引文件中存储的第二标识,能够计算出切割后的文件具体存储的数据存储块路径,文件索引文件和数据块索引文件相配合,而不是直接在文件索引文件中存储待写入文件所对应的数据存储块的标识,减小了单个索引文件的大小,在创建索引时更加快速且能够提升根据索引查找文件的速度,也使文件的层级关系更加明晰,实现文件特别是边缘数据的有效管理;并且,将文件分块存储,判断每一文件块中的数据是否已被存储,只保存数据未被存储过的待写入文件块,对待写入文件进行去重处理,大大节约了存储空间,若传输失败无需将整个文件重新进行传输,分散了数据的传输压力,能够实现更高效、容错程度更大的传输,同时,打通了本地存储和云存储的连接;将文件分块进行存储,在传输文件时若传输失败,无需将整个文件重新传送,一定程度提高了文件传输的效率,利于将文件迁移到云端;并且,在进行文件写入时,计算待写入文件块的哈希值,并与哈希值数据库中其他数据存储块的哈希值进行比较,若相同,则将数据存储块的引用数加一,大幅避免了相同数据重复写入占用存储空间的问题;将数据块文件分为数据块头和数据存储块,数据块头中的标识字段能够标识数据存储块中数据的存储位置和重要程度等信息,且不会与数据本身混淆,在数据上传到云端时,设置高低水位,使得冷数据根据优化策略上云,实现了更高效的数据分级存储,本地只需保留数据块头,就能实现对数据块文件中存储数据的操作,实现对边缘数据的有效管理。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (8)

1.一种面向边缘云的文件存储方法,其特征在于,包括步骤:
S1、接收待写入文件的写入请求,为所述待写入文件分配第一标识,并创建所述待写入文件对应的文件索引文件存储所述第一标识;
S2、将所述待写入文件按照第一预设值切割成多个待写入文件块,逐一判断所述待写入文件块是否与已存储的数据块相同,若否,则为所述待写入文件块分配第二标识,并将所述待写入文件块写入数据存储块;
S3、根据所述待写入文件切割成的多个所述待写入文件块的第二标识,生成数据块索引文件;所述第一标识通过计算实现与所述数据块索引文件对应关系;
所述步骤S2中还包括步骤:
创建数据块文件,所述数据块文件包括数据块头和所述数据存储块,所述数据块头和所述数据存储块一一对应,所述数据块头包括标识字段,所述标识字段为所述数据存储块的存储位置或级别,所述数据块文件与所述第二标识存在对应关系,该对应关系通过预设计算方式确定;
每一数据块文件对应第三标识,并在数据库中创建数据块文件索引文件以记录数据块文件的所述第三标识、数据块文件大小以及数据块文件存储时间。
2.根据权利要求1所述的一种面向边缘云的文件存储方法,其特征在于,所述步骤S2具体为:
将所述待写入文件按照所述第一预设值切割成多个所述待写入文件块;
计算多个所述待写入文件块的第一哈希值,并与哈希值数据库中的哈希值进行比较,判断所述哈希值数据库中是否存在与所述第一哈希值一致的第二哈希值;
若是,则所述待写入文件块与已存储的数据块相同,将所述第二哈希值对应的第二数据存储块的引用次数加一,并将所述第二数据存储块对应的所述第二标识作为所述待写入文件块的第二标识;
否则,所述待写入文件块与已存储的数据块不相同,为所述待写入文件块分配第二标识,将所述待写入文件块写入数据存储块,并在所述哈希值数据库中存入所述待写入文件块的第二标识与所述第一哈希值的对应关系。
3.根据权利要求1所述的一种面向边缘云的文件存储方法,其特征在于,所述步骤S2中将所述待写入文件块写入数据存储块具体包括:
将多个所述待写入文件块存储到对应的所述数据存储块内,并更新所述数据块文件中所述数据块头中的标识字段;
所述标识字段包括location字段;
当location字段的值小于等于第一阈值时,表示所述数据块文件保存在本地;
当location字段的值大于第一阈值时,表示所述数据块文件保存在云端;
当location字段的值小于等于第一阈值时:
若location字段的值等于第二阈值,表示所述数据块文件保存在SSD上;
若location字段的值等于第三阈值,表示所述数据块文件保存在SATA盘上。
4.根据权利要求2所述的一种面向边缘云的文件存储方法,其特征在于,还包括:
接收文件读取请求,根据所述文件读取请求访问所述数据块文件,并记录每一所述数据块文件的访问频次;
判断所述访问频次是否超过第二预设值,若否,则所述数据块文件为冷数据块文件;
根据所述冷数据块文件的信息,生成数据迁移列表;
判断当前使用空间是否超过第一预设值,若是,则根据所述数据迁移列表,通过S3协议将所述冷数据块文件传输到云端;
判断当前使用空间是否低于第二预设值,若是,则停止将数据迁移到云端的操作;
保留所述冷数据块文件的所述数据块头,以使得能够对迁移到云端的所述冷数据块文件进行操作。
5.一种面向边缘云的文件存储终端,包括存储器、处理器及存储在存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现以下步骤:
S1、接收待写入文件的写入请求,为所述待写入文件分配第一标识,并创建所述待写入文件对应的文件索引文件存储所述第一标识;
S2、将所述待写入文件按照第一预设值切割成多个待写入文件块,逐一判断所述待写入文件块是否与已存储的数据块相同,若否,则为所述待写入文件块分配第二标识,并将所述待写入文件块写入数据存储块;
S3、根据所述待写入文件切割成的多个所述待写入文件块的第二标识,生成数据块索引文件;所述第一标识通过计算实现与所述数据块索引文件对应关系;
所述步骤S2中还包括步骤:
创建数据块文件,所述数据块文件包括数据块头和所述数据存储块,所述数据块头和所述数据存储块一一对应,所述数据块头包括标识字段,所述标识字段为所述数据存储块的存储位置或级别,所述数据块文件与所述第二标识存在对应关系,该对应关系通过预设计算方式确定;
每一数据块文件对应第三标识,并在数据库中创建数据块文件索引文件以记录数据块文件的所述第三标识、数据块文件大小以及数据块文件存储时间。
6.根据权利要求5所述的一种面向边缘云的文件存储终端,其特征在于,所述步骤S2具体为:
将所述待写入文件按照所述第一预设值切割成多个所述待写入文件块;
计算多个所述待写入文件块的第一哈希值,并与哈希值数据库中的哈希值进行比较,判断所述哈希值数据库中是否存在与所述第一哈希值一致的第二哈希值;
若是,则所述待写入文件块与已存储的数据块相同,将所述第二哈希值对应的第二数据存储块的引用次数加一,并将所述第二数据存储块对应的所述第二标识作为所述待写入文件块的第二标识;
否则,所述待写入文件块与已存储的数据块不相同,为所述待写入文件块分配第二标识,将所述待写入文件块写入数据存储块,并在所述哈希值数据库中存入所述待写入文件块的第二标识与所述第一哈希值的对应关系。
7.根据权利要求5所述的一种面向边缘云的文件存储终端,其特征在于,所述步骤S2中将所述待写入文件块写入数据存储块具体包括:
将多个所述待写入文件块存储到对应的所述数据存储块内,并更新所述数据块文件中所述数据块头中的标识字段;
所述标识字段包括location字段;
当location字段的值小于等于第一阈值时,表示所述数据块文件保存在本地;
当location字段的值大于第一阈值时,表示所述数据块文件保存在云端;
当location字段的值小于等于第一阈值时:
若location字段的值等于第二阈值,表示所述数据块文件保存在SSD上;
若location字段的值等于第三阈值,表示所述数据块文件保存在SATA盘上。
8.根据权利要求5所述的一种面向边缘云的文件存储终端,其特征在于,所述处理器执行所述计算机程序时还包括:
接收文件读取请求,根据所述文件读取请求访问所述数据块文件,并记录每一所述数据块文件的访问频次;
判断所述访问频次是否超过第二预设值,若否,则所述数据块文件为冷数据块文件;
根据所述冷数据块文件的信息,生成数据迁移列表;
判断当前使用空间是否超过第一预设值,若是,则根据所述数据迁移列表,通过S3协议将所述冷数据块文件传输到云端;
判断当前使用空间是否低于第二预设值,若是,则停止将数据迁移到云端的操作;
保留所述冷数据块文件的所述数据块头,以使得能够对迁移到云端的所述冷数据块文件进行操作。
CN202010757403.6A 2020-07-22 2020-07-31 一种面向边缘云的文件存储方法及终端 Active CN111949629B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010709989 2020-07-22
CN2020107099899 2020-07-22

Publications (2)

Publication Number Publication Date
CN111949629A CN111949629A (zh) 2020-11-17
CN111949629B true CN111949629B (zh) 2024-03-22

Family

ID=73338944

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202010756371.8A Active CN111949621B (zh) 2020-07-22 2020-07-31 一种基于场景切换的文件压缩存储方法及终端
CN202010757403.6A Active CN111949629B (zh) 2020-07-22 2020-07-31 一种面向边缘云的文件存储方法及终端

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202010756371.8A Active CN111949621B (zh) 2020-07-22 2020-07-31 一种基于场景切换的文件压缩存储方法及终端

Country Status (1)

Country Link
CN (2) CN111949621B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112559257B (zh) * 2021-02-19 2021-07-13 深圳市中科鼎创科技股份有限公司 基于数据筛选的数据存储方法
CN112866299B (zh) * 2021-04-12 2022-03-18 南京大学 移动边缘计算网络的加密数据去重与分享装置及方法
CN113064556A (zh) * 2021-04-29 2021-07-02 山东英信计算机技术有限公司 一种bios的数据存储方法、装置、设备及存储介质
CN114070471B (zh) * 2021-11-29 2023-11-21 广州禹迹科技有限公司 一种测试数据包传输方法、装置、系统、设备和介质
CN114666406B (zh) * 2022-02-24 2023-11-21 国电南瑞科技股份有限公司 一种基于物模型的电力物联网数据压缩方法及装置
CN114564928B (zh) * 2022-02-25 2024-02-27 北京圣博润高新技术股份有限公司 用于办公系统的文件管理方法、装置、设备及存储介质
CN116821102B (zh) * 2023-08-25 2023-11-17 腾讯科技(深圳)有限公司 数据迁移方法、装置、计算机设备和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101216791A (zh) * 2008-01-04 2008-07-09 华中科技大学 基于指纹的文件备份方法
CN101957836A (zh) * 2010-09-03 2011-01-26 清华大学 一种文件系统中可配置的实时透明压缩方法
CN102629247A (zh) * 2011-12-31 2012-08-08 成都市华为赛门铁克科技有限公司 一种数据处理方法、装置和系统
CN103246730A (zh) * 2013-05-08 2013-08-14 网易(杭州)网络有限公司 文件存储方法和设备、文件发送方法和设备
CN105306570A (zh) * 2015-10-27 2016-02-03 创新科软件技术(深圳)有限公司 一种集群数据的存储方法
US9880928B1 (en) * 2014-09-26 2018-01-30 EMC IP Holding Company LLC Storing compressed and uncompressed data in blocks having different allocation unit sizes

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6624761B2 (en) * 1998-12-11 2003-09-23 Realtime Data, Llc Content independent data compression method and system
CN102761540B (zh) * 2012-05-30 2014-11-19 北京奇虎科技有限公司 数据压缩方法、装置、系统以及服务器
CN111290697B (zh) * 2018-12-07 2022-01-28 上海寒武纪信息科技有限公司 数据压缩方法、编码电路和运算装置
CN109800182A (zh) * 2019-01-18 2019-05-24 深圳忆联信息系统有限公司 一种降低写放大的数据存储处理方法及其系统
CN110196836B (zh) * 2019-03-29 2024-05-10 腾讯云计算(北京)有限责任公司 一种数据存储方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101216791A (zh) * 2008-01-04 2008-07-09 华中科技大学 基于指纹的文件备份方法
CN101957836A (zh) * 2010-09-03 2011-01-26 清华大学 一种文件系统中可配置的实时透明压缩方法
CN102629247A (zh) * 2011-12-31 2012-08-08 成都市华为赛门铁克科技有限公司 一种数据处理方法、装置和系统
CN103246730A (zh) * 2013-05-08 2013-08-14 网易(杭州)网络有限公司 文件存储方法和设备、文件发送方法和设备
US9880928B1 (en) * 2014-09-26 2018-01-30 EMC IP Holding Company LLC Storing compressed and uncompressed data in blocks having different allocation unit sizes
CN105306570A (zh) * 2015-10-27 2016-02-03 创新科软件技术(深圳)有限公司 一种集群数据的存储方法

Also Published As

Publication number Publication date
CN111949621B (zh) 2023-12-29
CN111949629A (zh) 2020-11-17
CN111949621A (zh) 2020-11-17

Similar Documents

Publication Publication Date Title
CN111949629B (zh) 一种面向边缘云的文件存储方法及终端
US11741053B2 (en) Data management system, method, terminal and medium based on hybrid storage
US9355112B1 (en) Optimizing compression based on data activity
US9798754B1 (en) Method to efficiently track I/O access history using efficient memory data structures
US8521986B2 (en) Allocating storage memory based on future file size or use estimates
US9448927B1 (en) System and methods for removing obsolete data in a distributed system of hybrid storage and compute nodes
US20150142755A1 (en) Storage apparatus and data management method
US20070239747A1 (en) Methods, systems, and computer program products for providing read ahead and caching in an information lifecycle management system
US11861204B2 (en) Storage system, memory management method, and management node
US10540095B1 (en) Efficient garbage collection for stable data
CN109766312A (zh) 一种区块链存储方法、系统、装置及计算机可读存储介质
US20120284369A1 (en) System, method and computer program product for managing a remote storage
CN107430551B (zh) 数据缓存方法、存储控制装置、及存储设备
CN104092670A (zh) 网络缓存服务器处理文件的方法及处理缓存文件的设备
CN113672170A (zh) 一种冗余数据标记及去除方法
CN110502510B (zh) 一种wifi终端设备轨迹数据的实时分析和去重方法及系统
US10628305B2 (en) Determining a data layout in a log structured storage system
CN105915595B (zh) 一种集群存储系统存取数据的方法以及集群存储系统
CN112799590B (zh) 一种针对在线主存储重删的差异化缓存方法
TWI751580B (zh) 儲存空間暫存檔案的管理方法及用於儲存多個暫存檔案的記錄裝置
CN108959614A (zh) 一种快照管理方法、系统、装置、设备及可读存储介质
CN111858469A (zh) 一种基于时间滑动窗口的自适应分级存储的方法
US20240037067A1 (en) File system provisioning for workload
CN115904211A (zh) 一种存储系统、数据处理方法及相关设备
CN111581157A (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