CN113704027B - 文件聚合兼容方法、装置、计算机设备和存储介质 - Google Patents
文件聚合兼容方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN113704027B CN113704027B CN202111268961.7A CN202111268961A CN113704027B CN 113704027 B CN113704027 B CN 113704027B CN 202111268961 A CN202111268961 A CN 202111268961A CN 113704027 B CN113704027 B CN 113704027B
- Authority
- CN
- China
- Prior art keywords
- file
- small
- snapshot
- aggregated
- client
- 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
Links
- 230000002776 aggregation Effects 0.000 title claims abstract description 91
- 238000004220 aggregation Methods 0.000 title claims abstract description 91
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000004590 computer program Methods 0.000 claims description 25
- 238000012217 deletion Methods 0.000 claims description 19
- 230000037430 deletion Effects 0.000 claims description 19
- 238000006243 chemical reaction Methods 0.000 claims description 15
- 230000008569 process Effects 0.000 claims description 9
- 230000001960 triggered effect Effects 0.000 claims description 5
- 230000004931 aggregating effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 6
- 230000009467 reduction Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 101150050740 ino1 gene Proteins 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
-
- 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/128—Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
-
- 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/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/164—File meta data generation
-
- 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/17—Details of further file system functions
- G06F16/1737—Details of further file system functions for reducing power consumption or coping with limited storage space, e.g. in mobile devices
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/84—Using snapshots, i.e. a logical point-in-time copy of the data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种分布式文件存储***下快照和小文件聚合兼容方法、装置、计算机设备和存储介质。所述方法包括:元数据服务器接收到客户端发送的操作请求后,当操作请求是打开请求时,判断文件是否存在O_TRUNC标识,如果存在,则继续判断是否是聚合的小文件,并且是否存在快照,如果是,则返回给客户端错误标识,客户端在接收到错误标识后,将聚合的小文件转换成正常的小文件,并触发小文件对象的写时复制/删除操作,保证快照数据的正确。
Description
技术领域
本申请涉及分布式存储***领域,特别是涉及一种分布式文件存储***下快照和小文件聚合兼容方法、装置、计算机设备和存储介质。
背景技术
快照(Snapshot)是某个数据集在某一特定时刻的镜像,也称为即时拷贝,它是这个数据集的一个完整可用的副本,可以根据快照查看或者恢复之前的状态。若在使用快照的过程中发生对原存储***的写操作,将对应数据单元的原有数据存入快照,该数据单元分为快照中的某个时间点数据和当前数据,其他未发生更新的数据在快照和原存储***中共享。虚拟视图的灵活性及使用存储空间的高效性,使得它成为快照技术的主流。
文件***中的快照是基于对象的COW(copy-on-write)机制实现的,当文件发生变化时,触发写时复制,生成快照版本和head版本。
CephFS是Ceph提供的文件存储解决方案,是一个支持POSIX接口的文件***存储类型。在CephFS中,文件数据是以对象的形式存储,对象默认大小为4MB,当一个1KB的小文件存放时,数据也要占用一个对象,即为4MB,如果集存是以小文件数量较多时,就会造成大量的资源浪费。大文件聚合,小文件(小于或等于512KB)以紧密排列的方式(以4KB对齐)写入到一类特殊的文件(聚合文件)中。在读文件时也不再读取源文件的对象,而是从聚合文件的对象中读取源文件数据。通过这样的方式,针对小文件场景,可以极大的提高资源利用率(如图1所示)。
然而,小文件聚合后,对小文件的读写删等操作,实际操作的是对应的大文件。如果小文件存在快照,进行写删操作时,osd接收到的为大文件的快照域(为空),不能正常的触发cow(copy-on-write,写时复制),造成小文件快照无法正常工作。如图2中,小文件ino1发生修改写时,由于不能触发cow,导致快照和head版本仍然都指向聚合大文件中的数据,这样快照的数据,一直和head版本一致,失去了快照的意义。
发明内容
基于此,有必要针对上述技术问题,提供一种分布式文件存储***下快照和小文件聚合兼容方法、装置、计算机设备和存储介质。
一方面,提供一种分布式文件存储***下快照和小文件聚合兼容方法,所述方法包括:
步骤201:元数据服务器接收客户端发送的操作请求,当操作请求为打开请求时,执行判断步骤,判断文件是否存在O_TRUNC标识,如果是,则执行步骤202,如果否,则结束;
步骤202:元数据服务器判断文件是否为聚合的小文件,并且存在快照,如果是,则执行步骤203,如果否,则结束;
步骤203:元数据服务器向客户端返回错误标识;
步骤204:客户端在接收到错误标识后,将聚合的小文件转换成正常的小文件;
步骤205:转换完成后,客户端再次发送打开请求到元数据服务器;
步骤206:元数据服务器再次接收到打开请求后,进行truncate操作,触发小文件对象的写时复制操作,保证快照数据的正确。
在其中一个实施例中,还包括:步骤202中的判断文件是否为聚合的小文件包括:判断原始文件的大小是否小于第一阈值。
在其中一个实施例中,还包括:步骤204中的转换方法包括:
a)获取聚合的小文件的聚合属性,根据所述聚合属性找到并打开聚合大文件,从中读取小文件的数据,所述聚合属性包括该小文件的inode以及偏移量;
b)将小文件的数据写入到一个新的对象中;
c)发送setxattr请求,更新元数据服务器中小文件的元数据;
d)清空聚合大文件中对象头中该小文件的inode。
在其中一个实施例中,还包括:步骤201中,当以O_TRUNC的方式打开一个文件时,元数据服务器收到请求后,对文件执行truncate操作,清空文件的数据。
在其中一个实施例中,还包括:其中操作请求还包括删除操作。
在其中一个实施例中,还包括:
元数据服务器接收到客户端发送的删除请求后,判断文件是否存在O_TRUNC标识,如果不存在,则结束,如果存在,则继续判断是否是聚合的小文件,并且是否存在快照,如果是,则返回给客户端错误标识,如果否,则结束;客户端在接收到错误标识后,将聚合的小文件转换成正常的小文件,并再次发送删除请求到元数据服务器,元数据服务器再次接收到请求后,进行truncate操作,触发小文件对象的删除操作,保证快照数据的正确。
在其中一个实施例中,操作请求还包括读操作:
a)如果读的对象为快照,且快照存在聚合属性;
b)获取快照最新版本的元数据,并获取该元数据的聚合属性;如果快照最新版本的聚合属性和元数据的聚合属性不一致,则将元数据的聚合属性修改为快照最新版本的聚合属性;
c)继续后续的读操作。
另一方面,提供了一种分布式文件存储***下快照和小文件聚合兼容装置,包括元数据服务器和客户端,装置还包括:
判断模块,元数据服务器接收到客户端发送的读/删除请求后,所述判断模块判断文件是否存在O_TRUNC标识,如果不存在,则结束,如果存在,则继续判断是否是聚合的小文件,并且是否存在快照,如果是,元数据服务器向客户端返回错误标识,如果否,则结束;
执行模块,客户端在接收到错误标识后,将聚合的小文件,转换成正常的小文件,转换完成后,客户端再次发送打开/删除请求到元数据服务器;
操作模块,元数据服务器再次接收到打开/删除请求后,进行truncate操作,触发小文件对象的写时复制/删除操作,保证快照数据的正确。
再一方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
步骤201:元数据服务器接收客户端发送的操作请求,当操作请求为打开请求时,执行判断步骤,判断文件是否存在O_TRUNC标识,如果是,则执行步骤202,如果否,则结束;
步骤202:元数据服务器判断文件是否为聚合的小文件,并且存在快照,如果是,则执行步骤203,如果否,则结束;
步骤203:元数据服务器向客户端返回错误标识;
步骤204:客户端在接收到错误标识后,将聚合的小文件转换成正常的小文件;
步骤205:转换完成后,客户端再次发送打开请求到元数据服务器;
步骤206:元数据服务器再次接收到打开请求后,进行truncate操作,触发小文件对象的写时复制操作,保证快照数据的正确。
又一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
步骤201:元数据服务器接收客户端发送的操作请求,当操作请求为打开请求时,执行判断步骤,判断文件是否存在O_TRUNC标识,如果是,则执行步骤202,如果否,则结束;
步骤202:元数据服务器判断文件是否为聚合的小文件,并且存在快照,如果是,则执行步骤203,如果否,则结束;
步骤203:元数据服务器向客户端返回错误标识;
步骤204:客户端在接收到错误标识后,将聚合的小文件转换成正常的小文件;
步骤205:转换完成后,客户端再次发送打开请求到元数据服务器;
步骤206:元数据服务器再次接收到打开请求后,进行truncate操作,触发小文件对象的写时复制操作,保证快照数据的正确。
上述分布式文件存储***下快照和小文件聚合兼容方法、装置、计算机设备和存储介质,元数据服务器接收到客户端发送的操作请求后,判断文件是否存在O_TRUNC标识,如果存在,则继续判断是否是聚合的小文件,并且是否存在快照,如果是,则返回给客户端错误标识,客户端在接收到错误标识后,将聚合的小文件转换成正常的小文件,并触发小文件对象的写时复制/删除操作,保证快照数据的正确。
附图说明
图1为小文件聚合示意图;
图2为现有技术中聚合小文件进行写删操作示意图;
图3为分布式文件存储***下快照和小文件聚合兼容方法的应用环境图;
图4为一个实施例中分布式文件存储***下快照和小文件聚合兼容方法的流程示意图;
图5为一个实施例中分布式文件存储***下快照和小文件聚合兼容装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的分布式文件存储***下快照和小文件聚合兼容方法,可以应用于如图3所示的应用环境中。其中,客户端102通过网络与元数据服务器104进行通信。元数据服务器(MDS)104接收到客户端102发送的请求后,判断文件是否存在O_TRUNC标识,如果存在,则继续判断是否是聚合的小文件,并且是否存在快照,如果是,则返回给客户端102特殊的错误码,客户端在接收到错误码后,将聚合的小文件转换成正常的小文件,正常的触发小文件的对象的操作,保证快照数据的正确。其中,客户端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备元数据服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图4所示,提供了一种分布式文件存储***下快照和小文件聚合兼容方法,包括以下步骤:
当客户端以O_TRUNC的方式打开一个文件时,MDS收到请求后,首先会对文件执行truncate操作,清空文件的数据。client调用open接口的时候,文件还未完成打开,不能保证client中的缓存为最新的数据,所以是否为聚合的小文件,需要在MDS进行判断。
步骤201:元数据服务器接收客户端发送的操作请求,当操作请求为打开请求时,执行判断步骤,判断文件是否存在O_TRUNC标识,如果是,则执行步骤202;
步骤202:元数据服务器判断文件是否为聚合的小文件,并且存在快照,如果是,则执行步骤203;
步骤203:元数据服务器向客户端返回错误标识;
步骤204:客户端在接收到错误标识后,将聚合的小文件转换成正常的小文件;
步骤205:转换完成后,客户端再次发送打开请求到元数据服务器;
步骤206:元数据服务器再次接收到打开请求后,进行truncate操作,触发小文件对象的写时复制操作,保证快照数据的正确。其中错误标识可以为一种特殊的错误码。
以上,如果文件不存在O_TRUNC标识,或者,文件不是聚合的小文件,并且存在快照,本方法将结束,不执行后续步骤。
上述分布式文件存储***下快照和小文件聚合兼容方法中,当聚合的小文件数据发生变化时,首先将小文件转换成正常的小文件,再操作小文件的数据,这样就可以触发小文件的cow,保证快照数据的正确。
步骤202中的判断文件是否为聚合的小文件包括:判断原始文件的大小是否小于第一阈值。在CephFS中,文件数据是以对象的形式存储,对象默认大小为4MB,该第一阈值可以预先设置。
写操作时,由于文件已经被打开过,可以保证客户端缓存中的数据是正确,可以直接在客户端的写流程进行修改:如果文件是聚合的小文件,并且存在快照,则首先将聚合的小文件,转换成正常的小文件。具体的转换方法如下:
a) 获取小文件中的聚合属性,找到并打开聚合大文件,从中读取小文件的数据;所述聚合属性包括该小文件的inode以及该小文件的偏移量;
b) 将小文件的数据写入到一个新的对象中;
c)发送setxattr请求,更新MDS中小文件的元数据;
d) 清空聚合大文件中对象头中该小文件的inode。
其中操作请求还包括删除操作。其中删除操作与读操作相同。元数据服务器(MDS)接收到客户端发送的删除请求后,判断文件是否存在O_TRUNC标识,如果存在,则继续判断是否是聚合的小文件,并且是否存在快照,如果是,则返回给客户端错误标识,客户端在接收到错误标识后,将聚合的小文件转换成正常的小文件,并再次发送删除请求到元数据服务器(MDS),元数据服务器(MDS)再次接收到请求后,进行truncate操作的时候,触发小文件的对象的删除操作,保证快照数据的正确。
同样,以上,如果文件不存在O_TRUNC标识,或者,文件不是聚合的小文件,并且存在快照,本方法将结束,不执行后续步骤。在聚合文件中,多个源文件共用一个对象,删除源文件并不能真正释放所占用的空间,导致存储空间的浪费;同时源文件数量的减少,导致在读取文件时缓存命中率降低,影响读性能。
碎片整理的任务就是计算聚合文件中有效数据在聚合文件总大小的占比,低于设定的阈值时对聚合文件进行清理,以提高存储空间利用率、提升小文件读性能。
碎片整理,会将有效的小文件重新整合到一个新的聚合大文件中,这样就可以释放掉无效的空间,需要修改小文件元数据中的聚合属性。如果client中存在快照的缓存,同时发生了碎片整理,由于***中快照都是只读的,所以不会同步client中的快照元数据,这样client中快照的元数据仍然指向旧的聚合大文件。如果此时去获取快照的数据,会获取失败,因为旧的聚合大文件已经被删除。所以需要处理快照的读流程:
a)如果读的对象为快照,且快照存在聚合属性;
b)获取快照最新版本的元数据,并获取该元数据的聚合属性;如果快照最新版本的聚合属性和元数据的聚合属性不一致,则将元数据的聚合属性修改为快照最新版本的聚合属性;
具体的,获取head版本的元数据,如果head版本不存在聚合属性,说明小文件数据发生过变更,则也清楚快照的聚合属性;如果head版本的聚合属性和元数据的不一致,说明发生过碎片整理,则将元数据的聚合属性修改为head版本的;
c)继续后续的读操作。
应该理解的是,虽然图4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图5所示,提供了一种分布式文件存储***下快照和小文件聚合兼容装置,包括元数据服务器(MDS)和客户端(client),装置还包括:
判断模块,元数据服务器(MDS)接收到客户端发送的读/删除请求后,所述判断模块判断文件是否存在O_TRUNC标识,如果存在,则继续判断是否是聚合的小文件,并且是否存在快照,如果是,元数据服务器(MDS)向客户端(client)返回错误标识;
执行模块,客户端(client)在接收到错误标识后,将聚合的小文件,转换成正常的小文件,转换完成后,客户端(client)再次发送打开/删除请求到元数据服务器(MDS);
操作模块,元数据服务器(MDS)再次接收到请求后,进行truncate操作,触发小文件对象的写时复制/删除操作,保证快照数据的正确。
判断模块中的判断文件是否为聚合的小文件包括:判断原始文件的大小是否小于第一阈值。在CephFS中,文件数据是以对象的形式存储,对象默认大小为4MB,该第一阈值可以预先设置。
写操作时,由于文件已经被打开过,可以保证客户端缓存中的数据是正确,可以直接在客户端的写流程进行修改:如果文件是聚合的小文件,并且存在快照,则首先将聚合的小文件,转换成正常的小文件。具体的转换方法如下:
a)获取聚合的小文件的聚合属性,根据所述聚合属性找到并打开聚合大文件,从中读取小文件的数据,所述聚合属性包括该小文件的inode以及该小文件的偏移量;
b)将小文件的数据写入到一个新的对象中;
c)发送setxattr请求,更新元数据服务器中小文件的元数据;
d)清空聚合大文件中对象头中该小文件的inode。
其中操作请求还包括删除操作。其中删除操作与读操作相同。元数据服务器(MDS)接收到客户端发送的删除请求后,判断文件是否存在O_TRUNC标识,如果存在,则继续判断是否是聚合的小文件,并且是否存在快照,如果是,则返回给客户端错误标识,客户端在接收到错误标识后,将聚合的小文件转换成正常的小文件,并再次发送删除请求到元数据服务器(MDS),元数据服务器(MDS)再次接收到请求后,进行truncate操作的时候,触发小文件对象的删除操作,保证快照数据的正确。
在聚合文件中,多个源文件共用一个对象,删除源文件并不能真正释放所占用的空间,导致存储空间的浪费;同时源文件数量的减少,导致在读取文件时缓存命中率降低,影响读性能。
碎片整理的任务就是计算聚合文件中有效数据在聚合文件总大小的占比,低于设定的阈值时对聚合文件进行清理,以提高存储空间利用率、提升小文件读性能。
碎片整理,会将有效的小文件重新整合到一个新的聚合大文件中,这样就可以释放掉无效的空间,需要修改小文件元数据中的聚合属性。如果客户端中存在快照的缓存,同时发生了碎片整理,由于***中快照都是只读的,所以不会同步客户端中的快照元数据,这样客户端中快照的元数据仍然指向旧的聚合大文件。如果此时去获取快照的数据,会获取失败,因为旧的聚合大文件已经被删除。所以需要处理快照的读流程:
a)如果读的对象为快照,且快照存在聚合属性;
b)获取快照最新版本的元数据,并获取该元数据的聚合属性;如果快照最新版本的聚合属性和元数据的聚合属性不一致,则将元数据的聚合属性修改为快照最新版本的聚合属性;
c)继续后续的读操作。
关于分布式文件存储***下快照和小文件聚合兼容装置的具体限定可以参见上文中对于分布式文件存储***下快照和小文件聚合兼容方法的限定,在此不再赘述。上述分布式文件存储***下快照和小文件聚合兼容装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储聚合数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种分布式文件存储***下快照和小文件聚合兼容的方法。
本领域技术人员可以理解,图5-6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
步骤201:元数据服务器接收客户端发送的操作请求,当操作请求为打开请求时,执行判断步骤,判断文件是否存在O_TRUNC标识,如果是,则执行步骤202;
步骤202:元数据服务器判断文件是否为聚合的小文件,并且存在快照,如果是,则执行步骤203;
步骤203:元数据服务器向客户端返回错误标识;
步骤204:客户端在接收到错误标识后,将聚合的小文件转换成正常的小文件;
步骤205:转换完成后,客户端再次发送打开请求到元数据服务器;
步骤206:元数据服务器再次接收到打开请求后,进行truncate操作,触发小文件对象的写时复制操作,保证快照数据的正确。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
步骤202中的判断文件是否为聚合的小文件包括:判断原始文件的大小是否小于第一阈值。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
步骤204中的转换方法包括:
a)获取聚合的小文件的聚合属性,根据所述聚合属性找到并打开聚合大文件,从中读取小文件的数据,所述聚合属性包括该小文件的inode以及该小文件的偏移量;
b)将小文件的数据写入到一个新的对象中;
c)发送setxattr请求,更新元数据服务器中小文件的元数据;
d)清空聚合大文件中对象头中该小文件的inode。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
步骤201中,当以O_TRUNC的方式打开一个文件时,元数据服务器(MDS)收到请求后,对文件执行truncate操作,清空文件的数据。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
其中操作请求还包括删除操作。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
元数据服务器接收到客户端发送的删除请求后,判断文件是否存在O_TRUNC标识,如果存在,则继续判断是否是聚合的小文件,并且是否存在快照,如果是,则返回给客户端错误标识,客户端在接收到错误标识后,将聚合的小文件转换成正常的小文件,并再次发送删除请求到元数据服务器,元数据服务器再次接收到请求后,进行truncate操作,触发小文件对象的删除操作,保证快照数据的正确。在一个实施例中,处理器执行计算机程序时还实现以下步骤:
操作请求还包括读操作:
a)如果读的对象为快照,且快照存在聚合属性;
b)获取快照最新版本的元数据,并获取该元数据的聚合属性;如果快照最新版本的聚合属性和元数据的聚合属性不一致,则将元数据的聚合属性修改为快照最新版本的聚合属性;
c)继续后续的读操作。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
步骤201:元数据服务器接收客户端发送的操作请求,当操作请求为打开请求时,执行判断步骤,判断文件是否存在O_TRUNC标识,如果是,则执行步骤202;
步骤202:元数据服务器判断文件是否为聚合的小文件,并且存在快照,如果是,则执行步骤203;
步骤203:元数据服务器向客户端返回错误标识;
步骤204:客户端在接收到错误标识后,将聚合的小文件转换成正常的小文件;
步骤205:转换完成后,客户端再次发送打开请求到元数据服务器;
步骤206:元数据服务器再次接收到打开请求后,进行truncate操作,触发小文件对象的写时复制操作,保证快照数据的正确。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
步骤202中的判断文件是否为聚合的小文件包括:判断原始文件的大小是否小于第一阈值。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
步骤204中的转换方法包括:
a)获取聚合的小文件的聚合属性,根据所述聚合属性找到并打开聚合大文件,从中读取小文件的数据,所述聚合属性包括该小文件的inode以及该小文件的偏移量;
b)将小文件的数据写入到一个新的对象中;
c)发送setxattr请求,更新元数据服务器中小文件的元数据;
d)清空聚合大文件中对象头中该小文件的inode。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
步骤201中,当以O_TRUNC的方式打开一个文件时,元数据服务器(MDS)收到请求后,对文件执行truncate操作,清空文件的数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
其中操作请求还包括删除操作。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
元数据服务器接收到客户端发送的删除请求后,判断文件是否存在O_TRUNC标识,如果存在,则继续判断是否是聚合的小文件,并且是否存在快照,如果是,则返回给客户端错误标识,客户端在接收到错误标识后,将聚合的小文件转换成正常的小文件,并再次发送删除请求到元数据服务器,元数据服务器再次接收到请求后,进行truncate操作,触发小文件对象的删除操作,保证快照数据的正确。在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
还包括碎片整理步骤:
a)如果读的对象为快照,且快照存在聚合属性;
b)获取快照最新版本的元数据,并获取该元数据的聚合属性;如果快照最新版本的聚合属性和元数据的聚合属性不一致,则将元数据的聚合属性修改为快照最新版本的聚合属性;
c)继续后续的读操作。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (9)
1.一种分布式文件存储***下快照和小文件聚合兼容方法,其特征在于,包括:
步骤201:元数据服务器接收客户端发送的操作请求,当操作请求为打开请求时,执行判断步骤,判断文件是否存在O_TRUNC标识,如果是,则执行步骤202,如果否,则结束;
步骤202:元数据服务器判断文件是否为聚合的小文件,并且存在快照,如果是,则执行步骤203,如果否,则结束;
步骤203:元数据服务器向客户端返回错误标识;
步骤204:客户端在接收到错误标识后,将聚合的小文件转换成正常的小文件;
步骤205:转换完成后,客户端再次发送打开请求到元数据服务器;
步骤206:元数据服务器再次接收到打开请求后,进行truncate操作,触发小文件对象的写时复制操作,保证快照数据的正确;
其中所述将聚合的小文件转换成正常的小文件,包括:
a)获取聚合的小文件的聚合属性,根据所述聚合属性找到并打开聚合大文件,从中读取小文件的数据,所述聚合属性包括该小文件的inode以及偏移量;
b)将小文件的数据写入到一个新的对象中;
c)发送setxattr请求,更新元数据服务器中小文件的元数据;
d)清空聚合大文件中对象头中该小文件的inode。
2.根据权利要求1所述的方法,其中,步骤202中的判断文件是否为聚合的小文件包括:判断原始文件的大小是否小于第一阈值。
3.根据权利要求1所述的方法,其中,步骤201中,当以O_TRUNC的方式打开一个文件时,元数据服务器收到请求后,对文件执行truncate操作,清空文件的数据。
4.根据权利要求1所述的方法,其中操作请求还包括删除操作。
5.根据权利要求4所述的方法,元数据服务器接收到客户端发送的删除请求后,判断文件是否存在O_TRUNC标识,如果不存在,则结束,如果存在,则继续判断是否是聚合的小文件,并且是否存在快照,如果是,则返回给客户端错误标识,如果否,则结束;客户端在接收到错误标识后,将聚合的小文件转换成正常的小文件,并再次发送删除请求到元数据服务器,元数据服务器再次接收到请求后,进行truncate操作,触发小文件对象的删除操作,保证快照数据的正确。
6.根据权利要求1-5中任一所述的方法,操作请求还包括读操作:
a)如果读的对象为快照,且快照存在聚合属性;
b)获取快照最新版本的元数据,并获取该元数据的聚合属性;如果快照最新版本的聚合属性和元数据的聚合属性不一致,则将元数据的聚合属性修改为快照最新版本的聚合属性;
c)继续后续的读操作。
7.一种分布式文件存储***下快照和小文件聚合兼容装置,包括元数据服务器和客户端,其特征在于,所述装置还包括:
判断模块,元数据服务器接收到客户端发送的读/删除请求后,所述判断模块判断文件是否存在O_TRUNC标识,如果不存在,则结束,如果存在,则继续判断是否是聚合的小文件,并且是否存在快照,如果是,元数据服务器向客户端返回错误标识,如果否,则结束;
执行模块,客户端在接收到错误标识后,将聚合的小文件转换成正常的小文件,转换完成后,客户端再次发送打开/删除请求到元数据服务器;
操作模块,元数据服务器再次接收到打开/删除请求后,进行truncate操作,触发小文件对象的写时复制/删除操作,保证快照数据的正确;
其中所述将聚合的小文件转换成正常的小文件,包括:
a)获取聚合的小文件的聚合属性,根据所述聚合属性找到并打开聚合大文件,从中读取小文件的数据,所述聚合属性包括该小文件的inode以及偏移量;
b)将小文件的数据写入到一个新的对象中;
c)发送setxattr请求,更新元数据服务器中小文件的元数据;
d)清空聚合大文件中对象头中该小文件的inode。
8.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111268961.7A CN113704027B (zh) | 2021-10-29 | 2021-10-29 | 文件聚合兼容方法、装置、计算机设备和存储介质 |
US18/574,636 US20240241856A1 (en) | 2021-10-29 | 2022-03-29 | Method and apparatus for compatibility of file aggregation, computer device and storage medium |
PCT/CN2022/083738 WO2023071043A1 (zh) | 2021-10-29 | 2022-03-29 | 文件聚合兼容方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111268961.7A CN113704027B (zh) | 2021-10-29 | 2021-10-29 | 文件聚合兼容方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113704027A CN113704027A (zh) | 2021-11-26 |
CN113704027B true CN113704027B (zh) | 2022-02-18 |
Family
ID=78647639
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111268961.7A Active CN113704027B (zh) | 2021-10-29 | 2021-10-29 | 文件聚合兼容方法、装置、计算机设备和存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240241856A1 (zh) |
CN (1) | CN113704027B (zh) |
WO (1) | WO2023071043A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113704027B (zh) * | 2021-10-29 | 2022-02-18 | 苏州浪潮智能科技有限公司 | 文件聚合兼容方法、装置、计算机设备和存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111625515A (zh) * | 2020-05-28 | 2020-09-04 | 苏州浪潮智能科技有限公司 | 一种聚合小文件的操作请求的处理方法及装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060123209A1 (en) * | 2004-12-06 | 2006-06-08 | Devin Borland | Devices and methods of performing direct input/output operations using information indicative of copy-on-write status |
US7739312B2 (en) * | 2007-04-27 | 2010-06-15 | Network Appliance, Inc. | Data containerization for reducing unused space in a file system |
US20090204650A1 (en) * | 2007-11-15 | 2009-08-13 | Attune Systems, Inc. | File Deduplication using Copy-on-Write Storage Tiers |
CN105069090A (zh) * | 2015-08-05 | 2015-11-18 | 浪潮电子信息产业股份有限公司 | 一种实现文件一写多读的方法及装置 |
CN107872489B (zh) * | 2016-09-28 | 2020-06-05 | 杭州海康威视数字技术股份有限公司 | 一种文件切片上传方法、装置及云存储*** |
CN107506466B (zh) * | 2017-08-30 | 2020-08-04 | 郑州云海信息技术有限公司 | 一种小文件存储方法及*** |
CN107704203B (zh) * | 2017-09-27 | 2021-08-31 | 郑州云海信息技术有限公司 | 聚合大文件的删除方法、装置、设备及计算机存储介质 |
CN109101639B (zh) * | 2018-08-21 | 2021-03-23 | 赛凡信息科技(厦门)有限公司 | 一种提高文件***性能的聚合模式 |
CN110032541A (zh) * | 2019-04-12 | 2019-07-19 | 苏州浪潮智能科技有限公司 | 一种可写快照实现方法及*** |
CN111309687A (zh) * | 2020-01-21 | 2020-06-19 | 苏州浪潮智能科技有限公司 | 一种对象存储小文件处理方法、装置、设备及存储介质 |
CN111966637B (zh) * | 2020-08-21 | 2023-01-06 | 苏州浪潮智能科技有限公司 | 一种打开文件的方法、装置、设备及可读介质 |
CN111984196B (zh) * | 2020-08-21 | 2022-08-19 | 苏州浪潮智能科技有限公司 | 一种文件迁移方法、装置、设备及可读存储介质 |
CN113110801A (zh) * | 2021-04-15 | 2021-07-13 | 山东英信计算机技术有限公司 | 一种加快小文件读取速度的方法、***、设备和存储介质 |
CN113704027B (zh) * | 2021-10-29 | 2022-02-18 | 苏州浪潮智能科技有限公司 | 文件聚合兼容方法、装置、计算机设备和存储介质 |
-
2021
- 2021-10-29 CN CN202111268961.7A patent/CN113704027B/zh active Active
-
2022
- 2022-03-29 US US18/574,636 patent/US20240241856A1/en active Pending
- 2022-03-29 WO PCT/CN2022/083738 patent/WO2023071043A1/zh active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111625515A (zh) * | 2020-05-28 | 2020-09-04 | 苏州浪潮智能科技有限公司 | 一种聚合小文件的操作请求的处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US20240241856A1 (en) | 2024-07-18 |
CN113704027A (zh) | 2021-11-26 |
WO2023071043A1 (zh) | 2023-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109725840B (zh) | 利用异步冲刷对写入进行节流 | |
US10430292B2 (en) | Snapshot deletion in a distributed storage system | |
CN112698789B (zh) | 数据缓存方法、装置、设备及存储介质 | |
CN111198856A (zh) | 文件管理方法、装置、计算机设备和存储介质 | |
US20240129251A1 (en) | Data processing method and apparatus, computer device, and readable storage medium | |
CN113704027B (zh) | 文件聚合兼容方法、装置、计算机设备和存储介质 | |
CN114138549A (zh) | 基于kubernetes***的数据备份和恢复方法 | |
CN108829345B (zh) | 日志文件的数据处理方法和终端设备 | |
CN114253483B (zh) | 基于命令的写缓存管理方法、装置、计算机设备及存储介质 | |
CN115686932A (zh) | 备份集文件恢复方法、装置和计算机设备 | |
US10430110B2 (en) | Implementing a hybrid storage node in a distributed storage system | |
CN113312309B (zh) | 快照链的管理方法、装置和存储介质 | |
CN111158606B (zh) | 存储方法、装置、计算机设备和存储介质 | |
CN111966701A (zh) | 一种元数据更新方法、装置、设备及存储介质 | |
CN111966531A (zh) | 数据快照方法、装置、计算机设备及存储介质 | |
CN116954680A (zh) | 存储***的插件更新方法、装置、设备、介质及程序产品 | |
CN115617504A (zh) | 一种内存管理***、泄露检测方法及存储介质 | |
CN109284260B (zh) | 大数据文件读取方法、装置、计算机设备及存储介质 | |
US10452308B2 (en) | Encoding tags for metadata entries in a storage system | |
CN111191082A (zh) | 数据管理方法、装置、计算机设备和存储介质 | |
CN113986126B (zh) | 基于固态硬盘的tcg数据删除方法、装置及计算机设备 | |
CN114185620B (zh) | 加速ssd固件加载实现方法、装置、计算机设备及存储介质 | |
CN114546340B (zh) | 用于对象存储的桶回收站实现方法、装置、设备及介质 | |
CN115334000B (zh) | 基于多控存储***的数据传输方法、装置、设备及介质 | |
CN114003438A (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 |