CN103714014B - 处理缓存数据的方法及装置 - Google Patents

处理缓存数据的方法及装置 Download PDF

Info

Publication number
CN103714014B
CN103714014B CN201310577140.0A CN201310577140A CN103714014B CN 103714014 B CN103714014 B CN 103714014B CN 201310577140 A CN201310577140 A CN 201310577140A CN 103714014 B CN103714014 B CN 103714014B
Authority
CN
China
Prior art keywords
file
data block
ssd
invalid
caching
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
CN201310577140.0A
Other languages
English (en)
Other versions
CN103714014A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201310577140.0A priority Critical patent/CN103714014B/zh
Publication of CN103714014A publication Critical patent/CN103714014A/zh
Application granted granted Critical
Publication of CN103714014B publication Critical patent/CN103714014B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种处理缓存数据的方法,包括:获取磁盘中的被操作文件的文件操作信息,文件操作信息包括文件操作类型;当文件操作类型为文件删除操作时,将固态硬盘SSD缓存中的被操作文件对应的数据块置为无效。本发明通过获取删除磁盘中目标文件的操作信息,将SSD缓存中目标文件对应的数据块置为无效,从而避免出现在磁盘中的目标文件被删除之后,由于SSD缓存中仍然存有该目标文件,将该目标文件重新写回磁盘中的问题。

Description

处理缓存数据的方法及装置
技术领域
本发明涉及存储领域,具体涉及一种处理缓存数据的方法及装置。
背景技术
在计算机系统中,输入输出(Input/Output,I/O)性能是衡量系统整体性能的重要指标。为了提高I/O性能,目前开始使用I/O性能优异的固态硬盘(Solid State Device,SSD)设备作为硬盘驱动器(Hard Disk Driver,HDD)磁盘的缓存设备,将HDD磁盘的热点数据缓存到SSD设备中,利用SSD设备完成后续对热点数据的I/O操作。
具体的,如图1所示,在计算机存储系统中,对于业务发起的读操作,若所需读取的数据已缓存在SSD中,则从SSD读取该数据到内存并返回给业务,如读取数据块b的操作;若还未缓存到SSD上,则将数据读取到内存中,并将该数据写入到SSD中,如读取数据块c的操作。对于业务发起的写操作,若所需写入的数据已缓存在SSD中,则将数据写入到SSD设备的对应位置,如写入数据块a的操作;若未缓存,则从SSD中找出一个未被使用的块或缓存了较冷数据的块,将新数据写入到SSD中,并将该块数据置脏。当缓存中的脏数据块的达到预设的值后,会将部分脏数据块回写到HDD磁盘中。因此,将SSD作为缓存设备,可以提高SSD中的数据块的I/O的传输速度。但是,在实际进行文件操作过程中,我们发现,文件操作处理的对象是磁盘中的数据块,并没有包含缓存设备中保存的数据块,而且缓存设备无法感知文件操作,无法及时更新。例如,在对一个文件进行文件删除操作后,磁盘中的该文件数据被删除了,但是SSD仍然缓存着该文件数据,而且该文件数据还仍然为脏数据,这使得SSD中的该文件数据将在后续的某个时刻回写到磁盘中。因此,现有的这种处理缓存数据的方法由于无法及时删除SSD中的脏数据,导致SSD空间浪费,而且这些脏数据将被回写到磁盘上,使得文件删除操作删去的数据重新写入磁盘,导致无用功。
发明内容
本发明实施例中提供一种处理缓存数据的方法,通过获取删除磁盘中目标文件的操作信息,将SSD缓存中目标文件对应的数据块置为无效,从而避免出现在磁盘中的目标文件被删除之后,由于SSD缓存中仍然存有该目标文件,将该目标文件重新写回磁盘中的问题。
本发明第一方面提供一种处理缓存数据的方法,其包括:
获取磁盘中的被操作文件的文件操作信息,所述文件操作信息包括文件操作类型;
当所述文件操作类型为文件删除操作时,将固态硬盘SSD缓存中的所述被操作文件对应的数据块置为无效;
其中所述当所述文件操作类型为文件删除操作时,将所述SSD缓存中所述被操作文件对应的数据块置为无效,包括:
判断所述SSD缓存中的所述被操作文件对应的数据块是否为脏数据块,若所述被操作文件对应的数据块不是脏数据块,则取消所述被操作文件对应的数据块的有效标志。
结合本发明第一方面,在第一方面的第一种可能实现方式中,所述获取磁盘中的被操作文件的文件操作信息包括:
监听对文件进行的操作,将监听到的被操作文件的文件操作信息保存至预先分配的内存区中。
结合本发明第一方面的第一种可能实现方式,在第一方面的第二种可能实现方式中,所述监听对文件进行的操作包括:
指定需要监听的文件以及文件操作类型;
监听对需要监听的文件进行的文件操作,所述文件操作属于指定的需要监听的文件操作类型。
结合本发明第一方面的第二种可能实现方式,在第一方面的第三种可能实现方式中,所述指定需要进行监听的文件以及文件操作类型包括:
创建文件操作的监听实例;
将需要监听的文件以及文件操作类型加入到所述监听实例中;
将所述监听实例保存至所述预先分配的内存区中;
所述监听对需要监听的文件进行的文件操作包括:根据所述监听实例,监听对需要监听的文件进行的文件操作。
结合本发明第一方面的第三种可能实现方式,在第一方面的第四种可能实现方式中,所述创建文件操作的监听实例包括:
接收文件监听注册命令;
在接收到文件监听注册命令之后,确定需要监听的文件所在的设备;
判断所述需要监听的文件所在的设备是否为所述SSD缓存,若所述需要监听的文件所在的设备为所述SSD缓存,则创建文件操作的监听实例。
结合本发明第一方面或第一方面的第一至四任意一种可能实现方式,在第一方面的第五种可能实现方式中,所述当所述文件操作类型为文件删除操作时,将所述SSD缓存中所述被操作文件对应的数据块置为无效,包括:
判断所述SSD缓存中的所述被操作文件对应的数据块是否为脏数据块,若所述被操作文件对应的数据块不是脏数据块,则取消所述被操作文件对应的数据块的有效标志。
结合本发明第一方面的第五种可能实现方式,在第一方面的第六种可能实现方式中,在所述判断所述SSD缓存中的所述被操作文件对应的数据块是否为脏数据块之后,还包括:若所述被操作文件对应的数据块为脏数据块,则取消所述被操作文件对应的数据块的脏标志,以及取消所述被操作文件对应的数据块的有效标志。
结合本发明第一方面或第一方面的第一至四任意一种可能实现方式,在第一方面的第七种可能实现方式中,在所述获取磁盘中的被操作文件的文件操作信息之后,还包括:
当所述文件操作类型为文件删除操作时,判断当前条件是否符合预设条件,所述预设条件包括如下一项或多项条件:
所述SSD缓存的脏数据块数量大于或等于预设的数量、所述SSD缓存的脏数据块数量占所述SSD缓存的总数据块数量的比例大于或等于预设阈值、所述被操作文件的大小大于或等于预设的文件大小、所述SSD缓存的空间占用率大于或等于预设的占用率、所述被操作文件的大小大于或等于预设的文件大小;
所述当所述文件操作类型为文件删除操作时,将所述SSD缓存中的所述被操作文件对应的数据块置为无效,包括:
若当前条件符合所述预设条件,将所述SSD缓存中的所述被操作文件对应的数据块置为无效。
结合本发明第一方面或第一方面的第一至四任意一种可能实现方式,在第一方面的第八种可能实现方式中,所述获取磁盘中的被操作文件的文件操作信息包括:获取磁盘中的所述被操作文件的路径信息;
在所述获取磁盘中的被操作文件的文件操作信息之后,所述方法还包括:
当所述文件操作类型为文件删除操作时,根据所述被操作文件的路径信息,判断所述被操作文件是否记录于所述SSD缓存的文件列表中;
所述当所述文件操作类型为文件删除操作时,将所述SSD缓存中的所述被操作文件对应的数据块置为无效,包括:
若所述被操作文件记录于所述缓存的文件列表中,则将所述SSD缓存中的所述被操作文件对应的数据块置为无效。
结合本发明第一方面或第一方面的第一至四任意一种可能实现方式,在第一方面的第九种可能实现方式中,在所述获取磁盘中的被操作文件的文件操作信息之后,所述方法还包括:
判断所述SSD缓存的空间利用率是否大于或等于预设的利用率;
所述当所述文件操作类型为文件删除操作时,将所述SSD缓存中的所述被操作文件对应的数据块置为无效,包括:
若所述SSD缓存的空间利用率大于或等于预设的利用率,则将所述SSD缓存中的所述被操作文件对应的数据块置为无效;
或者,
判断所述SSD缓存的缓存命中率是否大于或等于预设缓存命中率;
所述当所述文件操作类型为文件删除操作时,将所述SSD缓存中的所述被操作文件对应的数据块置为无效,包括:
若所述SSD缓存的缓存命中率大于或等于预设的缓存命中率,则将所述SSD缓存中的所述被操作文件对应的数据块置为无效;
或者,
判断所述SSD缓存的输入输出负载是否大于或等于预设负载;
所述当所述文件操作类型为文件删除操作时,将所述SSD缓存中的所述被操作文件对应的数据块置为无效,包括:
若所述SSD缓存的输入输出负载大于或等于预设负载,则将所述SSD缓存中的所述被操作文件对应的数据块置为无效;
或者,
判断系统处理器的使用率是否大于或等于预设使用率;
所述当所述文件操作类型为文件删除操作时,将所述SSD缓存中的所述被操作文件对应的数据块置为无效,包括:
若系统处理器的使用率大于或等于预设使用率,则将所述SSD缓存中的所述被操作文件对应的数据块置为无效。
结合本发明第一方面或第一方面的第一至四任意一种可能实现方式,在第一方面的第十种可能实现方式中,在所述获取磁盘中的被操作文件的文件操作信息之后,还包括:
当所述文件操作类型为文件修改操作时,则判断所述被操作文件是否记录于所述SSD缓存的文件列表中;
若所述被操作文件没有记录于所述缓存的文件列表中,则在所述SSD缓存的文件列表中新建被操作文件的记录,以及从所述磁盘中读取存储所述被操作文件的磁盘块号,将所述磁盘块号存入到新建的被操作文件的记录中。
本发明第二方面提供一种缓存控制设备,包括:
监听模块,用于获取磁盘中的被操作文件的文件操作信息,所述文件操作信息包括文件操作类型;
处理模块,用于接收监听模块获取的所述被操作文件的文件操作信息,并在当所述文件操作类型为文件删除操作时,将固态硬盘SSD缓存中的所述被操作文件对应的数据块置为无效。
结合本发明第二方面,在第二方面的第一种可能实现方式中,所述监听模块还用于监听对文件进行的操作,将监听到的被操作文件的文件操作信息保存至预先分配的内存区中。
结合本发明第二方面的第一种可能实现方式,在第二方面的第二种可能实现方式中,所述监听模块还包括:
指定子模块,用于指定需要监听的文件以及文件操作类型,
监听子模块,用于监听对所述指定子模块指定的需要监听的文件进行的文件操作,所述文件操作属于所述指定子模块指定的需要监听的文件操作类型。
结合本发明第二方面的第二种可能实现方式,在第二方面的第三种可能实现方式中,所述监听模块还包括:监听实例创建子模块,所述监听实例创建子模块用于创建文件操作的监听实例,将需要监听的文件以及文件操作类型加入到所述监听实例中,将所述监听实例保存至所述预先分配的内存区中;
所述监听子模块还用于根据所述监听实例创建子模块创建的所述监听实例,监听对需要监听的文件进行的文件操作。
结合本发明第二方面的第三种可能实现方式,在第二方面的第四种可能实现方式中,所述监听实例创建子模块还用于接收文件监听注册命令,在接收到文件监听注册命令之后,确定需要监听的文件所在的设备,以及判断所述需要监听的文件所在的设备是否为所述SSD缓存,若所述需要监听的文件所在的设备为所述SSD缓存,则创建文件操作的监听实例。
结合本发明第二方面或第二方面的第一至四任意一种可能实现方式,在第二方面的第五种可能实现方式中,所述处理模块还用于判断所述SSD缓存中的所述被操作文件对应的数据块是否为脏数据块,若所述被操作文件对应的数据块不是脏数据块,则取消所述被操作文件对应的数据块的有效标志。
结合本发明第二方面的第五种可能实现方式,在第二方面的第六种可能实现方式中,所述处理模块还用于在判断所述SSD缓存中的所述被操作文件对应的数据块是否为脏数据块之后,若所述被操作文件对应的数据块为脏数据块,则取消所述被操作文件对应的数据块的脏标志,以及取消所述被操作文件对应的数据块的有效标志。
结合本发明第二方面或第二方面的第一至四任意一种可能实现方式,在第二方面的第七种可能实现方式中,所述处理模块还用于:
在接收监听模块获取的所述被操作文件的文件操作信息之后,当所述文件操作类型为文件删除操作时,判断当前条件是否符合预设条件,所述预设条件包括如下一项或多项条件:
所述SSD缓存的脏数据块数量大于或等于预设的数量、所述SSD缓存的脏数据块数量占所述SSD缓存的总数据块数量的比例大于或等于预设阈值、所述被操作文件的大小大于或等于预设的文件大小、所述SSD缓存的空间占用率大于或等于预设的占用率、所述被操作文件的大小大于或等于预设的文件大小;
若当前条件符合所述预设条件,将所述SSD缓存中的所述被操作文件对应的数据块置为无效。
结合本发明第二方面或第二方面的第一至四任意一种可能实现方式,在第二方面的第八种可能实现方式中,所述监听模块还用于获取磁盘中的所述被操作文件的路径信息;
所述处理模块还用于在接收监听模块获取的所述被操作文件的文件操作信息之后,当所述文件操作类型为文件删除操作时,根据所述被操作文件的路径信息,判断所述被操作文件是否记录于所述SSD缓存的文件列表中,若所述被操作文件记录于所述缓存的文件列表中,则将所述SSD缓存中的所述被操作文件对应的数据块置为无效。
结合本发明第二方面或第二方面的第一至四任意一种可能实现方式,在第二方面的第九种可能实现方式中,所述处理模块还用于:
在接收到监听模块获取的所述被操作文件的文件操作信息之后,当所述文件操作类型为文件删除操作时,
判断所述SSD缓存的空间利用率是否大于或等于预设的利用率,若所述SSD缓存的空间利用率大于或等于预设的利用率,则将所述SSD缓存中的所述被操作文件对应的数据块置为无效;
或者,
判断所述SSD缓存的缓存命中率是否大于或等于预设缓存命中率,若所述SSD缓存的缓存命中率大于或等于预设的缓存命中率,则将所述SSD缓存中的所述被操作文件对应的数据块置为无效;
或者,
判断所述SSD缓存的输入输出负载是否大于或等于预设负载,若所述SSD缓存的输入输出负载大于或等于预设负载,则将所述SSD缓存中的所述被操作文件对应的数据块置为无效;
或者,
判断系统处理器的使用率是否大于或等于预设使用率,若系统处理器的使用率大于或等于预设使用率,则将所述SSD缓存中的所述被操作文件对应的数据块置为无效。
结合本发明第二方面或第二方面的第一至四任意一种可能实现方式,在第二方面的第十种可能实现方式中,所述处理模块还用于在接收到监听模块获取的所述被操作文件的文件操作信息之后,当所述文件操作类型为文件修改操作时,则判断所述被操作文件是否记录于所述SSD缓存的文件列表中;
若所述被操作文件没有记录于所述缓存的文件列表中,则在所述SSD缓存的文件列表中新建被操作文件的记录,以及从所述磁盘中读取存储所述被操作文件的磁盘块号,将所述磁盘块号存入到新建的被操作文件的记录中。
本发明第三方面提供一种存储系统,其包括内存、固态硬盘SSD缓存、磁盘存储介质,所述内存、所述SSD缓存、所述磁盘存储介质通过数据线连接,所述存储系统还包括如本发明第二方面或第二方面的各种可能实现方式中所述的缓存控制设备,所述缓存控制设备分别与所述内存、所述SSD缓存和所述磁盘存储介质连接。
本发明第四方面提供一种处理缓存数据的方法,包括:
分布式节点根据分布式文件系统下发的数据无效操作信息,获取所述分布式节点的页高速缓存中需置无效的数据块的信息;
根据所述页高速缓存中需置无效的数据块的信息,确定所述分布式节点的固态硬盘SSD缓存中需置无效的数据块,并将所述SSD缓存中需置无效的数据块置无效,所述SSD缓存中的数据块与所述页高速缓存中需置无效的数据块对应。
结合本发明第四方面,在第四方面的第一种可能实现方式中,所述分布式节点根据分布式文件系统下发的数据无效操作信息,获取所述分布式节点的页高速缓存中需置无效的数据块的信息包括:
根据分布式文件系统下发的数据无效操作信息,查询所述页高速缓存中是否存在需置无效的数据块,若所述页高速缓存中存在需置无效的数据块,则获取所述页高速缓存中需置无效的数据块的信息。
结合本发明第四方面的第一种可能实现方式,在第四方面的第二种可能实现方式中,在所述分布式节点根据分布式文件系统下发的数据无效操作信息,获取所述分布式节点的页高速缓存中需置无效的数据块的信息之后,还包括:将获取的所述页高速缓存中需置无效的数据块的信息写入所述分布式节点上的存储有监听实例的内存区中。
结合本发明第四方面的第二种可能实现方式,在第四方面的第三种可能实现方式中,所述根据所述页高速缓存中需置无效的数据块的信息,确定所述分布式节点的SSD缓存中需置无效的数据块,包括:
根据所述页高速缓存中需置无效的数据块的信息,获取所述SSD缓存中需置无效的数据块的磁盘块号,所述磁盘块号与所述页高速缓存中需置无效的数据块对应;
根据所述磁盘块号,在所述SSD缓存中查询与所述磁盘块号对应的数据块;
将查询到的与所述磁盘块号对应的数据块确定为所述SSD缓存中需置无效的数据块。
结合本发明第四方面的第三种可能实现方式,在第四方面的第四种可能实现方式中,所述将所述SSD缓存中需置无效的数据块置无效,包括:
判断所述SSD缓存中需置无效的数据块是否为脏数据块,
若所述SSD缓存中需置无效的数据块是脏数据块,则取消所述SSD缓存中需置无效的数据块的脏标志;在取消所述SSD缓存中需置无效的数据块的脏标志之后,取消所述SSD缓存中需置无效的数据块的有效标志,并将所述SSD缓存中需置无效的数据块置为空闲状态;
若所述SSD缓存中需置无效的数据块是脏数据块不是脏数据块,则取消所述SSD缓存中需置无效的数据块的有效标志,并将所述SSD缓存中需置无效的数据块置为空闲状态。
本发明第五方面提供一种分布式节点,其包括:
监听模块,用于根据分布式文件系统下发的数据无效操作信息,获取所述分布式节点的页高速缓存中需置无效的数据块的信息;
处理模块,用于接收监听模块获取的所述页高速缓存中需置无效的数据块的信息,确定所述分布式节点的固态硬盘SSD缓存中需置无效的数据块,并将所述SSD缓存中需置无效的数据块置无效,所述SSD缓存中的数据块与所述页高速缓存中需置无效的数据块对应。
结合本发明第四方面,在第四方面的第一种可能实现方式中,所述监听模块还用于根据分布式文件系统下发的数据无效操作信息,查询所述页高速缓存中是否存在需置无效的数据块,若所述页高速缓存中存在需置无效的数据块,则获取所述页高速缓存中需置无效的数据块的信息。
结合本发明第四方面的第一种可能实现方式,在第四方面的第二种可能实现方式中,所述监听模块还用于在根据分布式文件系统下发的数据无效操作信息,获取所述分布式节点的页高速缓存中需置无效的数据块的信息之后,将获取的所述页高速缓存中需置无效的数据块的信息写入所述分布式节点上的存储有监听实例的内存区中。
结合本发明第四方面的第二种可能实现方式,在第四方面的第三种可能实现方式中,所述处理模块还包括:
获取子模块,用于在接收监听模块获取的所述页高速缓存中需置无效的数据块的信息之后,根据所述页高速缓存中需置无效的数据块的信息,获取所述SSD缓存中需置无效的数据块的磁盘块号,所述磁盘块号与所述页高速缓存中需置无效的数据块对应;
查询子模块,根据所述获取子模块获取到的所述磁盘块号,在所述SSD缓存中查询与所述磁盘块号对应的数据块;
无效子模块,将所述查询子模块查询到的与所述磁盘块号对应的数据块确定为所述SSD缓存中需置无效的数据块。
结合本发明第四方面的第三种可能实现方式,在第四方面的第四种可能实现方式中,所述无效子模块还用于:
判断所述SSD缓存中需置无效的数据块是否为脏数据块,若所述SSD缓存中需置无效的数据块是脏数据块,则取消所述SSD缓存中需置无效的数据块的脏标志;在取消所述SSD缓存中需置无效的数据块的脏标志之后,取消所述SSD缓存中需置无效的数据块的有效标志,并将所述SSD缓存中需置无效的数据块置为空闲状态;
若所述SSD缓存中需置无效的数据块是脏数据块不是脏数据块,则取消所述SSD缓存中需置无效的数据块的有效标志,并将所述SSD缓存中需置无效的数据块置为空闲状态。
本发明第六方面提供一种分布式存储系统,其包括:虚拟机、如本发明第五方面或第五方面的各种可能实现方式中所述的分布式节点和存储区域网络SAN,所述分布式节点挂载所述SAN上的数据块,所述虚拟机用于从所述分布式节点的页高速缓存中读取数据,并进行读或写操作。
在本发明实施例中提供的一种处理缓存数据的方法中,通过获取删除磁盘中目标文件的操作信息,将SSD缓存中目标文件对应的数据块置为无效,从而避免出现在磁盘中的目标文件被删除之后,由于SSD缓存中仍然存有该目标文件,将该目标文件重新写回磁盘中的问题。由于将SSD缓存中目标文件对应的数据块置为无效,从而将目标文件所占用的缓存空间释放,用于其他文件的存储,因此,本发明实施例可以提高缓存设备的缓存利用率。
在本发明实施例中提供的另一种处理缓存数据的方法中,分布式节点获取页高速缓存中需置无效的数据块的信息,确定所述分布式节点的SSD缓存中需置无效的数据块,将SSD缓存中需置无效的数据块置无效,从而可以在另一分布式节点对SAN中的数据进行写操作后,及时将该分布式节点的SSD缓存中该数据对应的数据块置无效,避免将写操作之前的该数据再次读取到页高速缓存中,防止分布式节点读取到旧数据。
附图说明
图1是现有的计算机系统中的存储结构示意图;
图2是本发明实施例1提供的一种处理缓存数据的方法的流程图;
图3是本发明实施例2提供的一种处理缓存数据的方法的流程图;
图4是监听步骤流程示意图;
图5是创建文件操作的监听实例的步骤示意图;
图6是计算机系统结构示意图;
图7是本发明实施例3提供的一种缓存控制设备结构示意图;
图8是本发明实施例4提供的一种缓存控制设备结构示意图;
图9是本发明实施例6提供的一种处理缓存数据的方法的流程图;
图10是多节点共享存储系统的结构示意图;
图11是本发明实施例7提供的一种处理缓存数据的方法的流程图;
图12是本发明实施例8提供的一种分布式节点的结构示意图;
图13是本发明实施例9提供的一种分布式节点的结构示意图;
图14是本发明实施例5提供的一种存储系统的结构示意图;
图15是本发明实施例10提供的一种分布式存储系统的结构示意图;
图16是本发明实施例11提供的一种缓存控制设备的结构示意图;
图17是本发明实施例12提供的一种分布式节点的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图2所示,本发明实施例1提供一种处理缓存数据的方法,包括:
101、获取磁盘中的被操作文件的文件操作信息,所述文件操作信息包括文件操作类型。
当用户对文件进行操作时,缓存控制设备获取磁盘中的被操作文件的文件操作信息。文件操作信息中的文件操作类型包括文件删除操作、文件修改操作、文件移动操作、文件打开操作和文件关闭操作等多种类型。
102、当所述文件操作类型为文件删除操作时,将SSD缓存中的所述被操作文件对应的数据块置为无效。
步骤102的具体实现方式可以为:判断被操作文件的所述文件操作类型是否为文件删除操作,若判断所述文件操作类型为文件删除操作,则将SSD缓存中的所述被操作文件对应的数据块置为无效。
由于在用户对文件进行操作之后,缓存控制设备可以获得被操作文件的文件操作类型,若文件操作类型为文件删除操作,则可以删除缓存中的被操作文件,即将缓存中的所述被操作文件对应的数据块置为无效。因此,在用户对文件进行文件删除操作之后,不仅磁盘中保存的被操作文件被删除,缓存中的被操作文件也将被删除,从而可以节省缓存的使用空间,提高缓存空间利用率,避免缓存中的被操作文件被回写到磁盘上。
如图3所示,本发明实施例2提供一种处理缓存数据的方法,包括:
201、监听对文件进行的操作,将监听到的被操作文件的文件操作信息保存至预先分配的内存区中。
在步骤201中,可以将内存缓冲buffer作为预先分配的内存区。缓存控制设备可以在实施监听之前,指定需要监听的文件以及文件操作类型,然后监听对需要监听的文件进行的文件操作,所述文件操作属于指定的需要监听的文件操作类型。
为了实现对需要监听的文件以及文件操作类型的指定,如图4所示,可以实施如下步骤:
301、创建文件操作的监听实例;
302、将需要监听的文件以及文件操作类型加入到所述监听实例中;
303、将所述监听实例保存至预先分配的内存区中。
在实施步骤301至303之后,根据所述监听实例,可以监听对需要监听的文件进行的文件操作。
在上述步骤301中,如图5所示,创建文件操作的监听实例的步骤可以包括:
401、接收文件监听注册命令;
402、在接收到文件监听注册命令之后,确定需要监听的文件所在的设备;
403、判断所述需要监听的文件所在的设备是否为SSD缓存,若所述需要监听的文件所在的设备为SSD缓存,则创建文件操作的监听实例。
在执行步骤201之后,所述缓存控制设备可以执行如下步骤:
202、从所述预先分配的内存区中获取所述被操作文件的文件操作类型。
203、判断所述文件操作类型是否为文件删除操作。
204、当所述文件操作类型为文件删除操作时,则遍历所述SSD缓存中的所述被操作文件对应的数据块,判断所述SSD缓存中的所述被操作文件对应的数据块是否为脏数据块。
205、若所述被操作文件对应的数据块不是脏数据块,则取消所述被操作文件对应的数据块的有效标志。
206、若所述被操作文件对应的数据块为脏数据块,则取消所述被操作文件对应的数据块的脏标志,以及取消所述被操作文件对应的数据块的有效标志。
在取消所述被操作文件对应的数据块的有效标识之后,所述被操作文件对应的数据块在缓存中的空间可以被重新利用,所述被操作文件对应的数据块将不会被回写至磁盘中。
为了进一步确认所述缓存中保存有被操作文件,本发明实施例还可以采取以下进一步技术措施。具体的,所述获取被操作文件的文件操作信息包括:获取被操作文件的路径信息。在所述获取磁盘中的被操作文件的文件操作信息之后,根据所述被操作文件的路径信息,判断所述被操作文件是否记录于所述缓存的文件列表中。若所述被操作文件记录于所述缓存的文件列表中,则表示所述缓存中保存有被操作文件,进而可以判断所述文件操作类型是否为文件删除操作,当所述文件操作类型是文件删除操作时,将所述SSD缓存中的所述被操作文件对应的数据块置为无效。
此外,在实际应用中,当存储系统的当前条件符合预设条件时,则说明存储系统中的SSD缓存有必要进一步提高缓存的利用率和I/O传输性能,因此,在执行步骤201之后,所述方法还可以包括:当所述文件操作类型为文件删除操作时,判断当前条件是否符合预设条件,所述预设条件包括如下一项或多项条件:
所述SSD缓存的脏数据块数量大于或等于预设的数量、所述SSD缓存的脏数据块数量占所述SSD缓存的总数据块数量的比例大于或等于预设阈值、所述被操作文件的大小大于或等于预设的文件大小、所述SSD缓存的空间占用率大于或等于预设的占用率、所述被操作文件的大小大于或等于预设的文件大小。
若当前条件符合所述预设条件,将所述SSD缓存中的所述被操作文件对应的数据块置为无效。
例如,当所述文件操作类型为文件删除操作时,判断所述缓存的脏数据块数量是否大于或等于预设的数量,若所述缓存的脏数据块数量大于或等于预设的数量,则将所述SSD缓存中的所述被操作文件对应的数据块置为无效。
还例如,当所述文件操作类型为文件删除操作时,判断所述缓存的脏数据块数量占所述缓存的总数据块数量的比例是否大于或等于预设阈值,若判断所述缓存的脏数据块数量占所述缓存的总数据块数量的比例大于或等于预设阈值,则将所述SSD缓存中的所述被操作文件对应的数据块置为无效。优选的,该预设阈值设为50%。
还例如,当所述文件操作类型为文件删除操作时,判断所述被操作文件的大小是否大于或等于预设的文件大小,若判断所述被操作文件的大小大于或等于预设的文件大小,则将所述SSD缓存中的所述被操作文件对应的数据块置为无效。优选的,预设的文件大小设为100KB。
还例如,当所述文件操作类型为文件删除操作时,判断缓存的空间占用率是否大于或等于预设的占用率,若判断缓存的空间占用率大于或等于预设的占用率,则将所述SSD缓存中的所述被操作文件对应的数据块置为无效。
此外,在实际应用中,存储系统中的SSD缓存资源可能富于,也可能紧张。为了避免SSD缓存资源出现紧张,提高缓存的利用率和I/O传输性能,可以采取以下进一步技术措施。具体的,在执行步骤201之后,所述方法还可以包括:
判断所述SSD缓存的空间利用率是否大于或等于预设的利用率;
若所述SSD缓存的空间利用率大于或等于预设的利用率,而且当所述文件操作类型为文件删除操作时,将所述SSD缓存中的所述被操作文件对应的数据块置为无效;
或者,
判断所述SSD缓存的缓存命中率是否大于或等于预设缓存命中率;
若所述SSD缓存的缓存命中率大于或等于预设的缓存命中率,而且当所述文件操作类型为文件删除操作时,将所述SSD缓存中的所述被操作文件对应的数据块置为无效;
或者,
判断所述SSD缓存的输入输出负载是否大于或等于预设负载;
若所述SSD缓存的输入输出负载大于或等于预设负载,而且当所述文件操作类型为文件删除操作时,将所述SSD缓存中的所述被操作文件对应的数据块置为无效;
或者,
判断系统处理器的使用率是否大于或等于预设使用率;
若系统处理器的使用率大于或等于预设使用率,而且当所述文件操作类型为文件删除操作时,将所述SSD缓存中的所述被操作文件对应的数据块置为无效。
另外,当被操作文件的文件操作类型为文件修改操作时,本发明实施例还可以采取以下进一步技术措施,以避免在调用缓存数据时出现错误。具体的,所述处理缓存数据的方法还可以包括:
在所述获取被操作文件的文件操作信息之后,判断所述文件操作类型是否为文件修改操作,当所述文件操作类型为文件修改操作时,则判断所述被操作文件是否记录于所述SSD缓存的文件列表中;若所述被操作文件没有记录于所述缓存的文件列表中,则在所述SSD缓存的文件列表中新建被操作文件的记录,以及从所述磁盘中读取存储所述被操作文件的磁盘块号,将所述磁盘块号存入到新建的被操作文件的记录中。
例如,当分布式式节点A将共享磁盘中的某个文件修改,则将该文件记录在SSD缓存的文件列表中,当分布式节点B需要读取该文件时,将查询文件列表中的记录,当发现文件列表中存在被操作文件的记录时,则确定SSD缓存中的该文件并不是最新的修改后的文件,将从磁盘中读取最新的修改后的文件。因此,采取上述技术措施可以避免分布式节点从SSD缓存中读取到过时的数据。
如图6所示,下面以Linux操作系统为例进行说明。
Linux操作系统内核包含有文件系统层和块设备层,文件系统层又包含文件操作模块、文件I/O模块和文件操作监听模块,其中的文件操作模块用于实施文件的操作,文件操作监听模块可以监听文件操作模块进行的文件操作,获得文件操作信息,文件操作信息包括文件操作类型等信息。其中,可以监听到的文件操作类型包括:
FILE_ACCESS,即文件被访问;
FILE_MODIFY,文件被写;
FILE_ATTRIB,文件属性被修改;
FILE_CLOSE_WRITE,可写文件被关闭;
FILE_CLOSE_NOWRITE,不可写文件被关闭;
FILE_OPEN,文件被打开;
FILE_MOVED_FROM,文件被移走,如mv;
FILE_MOVED_TO,文件被移来,如mv、cp;
FILE_CREATE,创建新文件;
FILE_DELETE,文件被删除,如rm;
FILE_DELETE_SELF,自删除,即一个可执行文件在执行时删除自己;
FILE_MOVE_SELF,自移动,即一个可执行文件在执行时移动自己;
FILE_UNMOUNT,宿主文件系统被解挂umount;
FILE_CLOSE,文件被关闭;
FILE_MOVE,文件被移动。
文件I/O模块用于从存储设备中输入输出文件数据。块设备层位于文件系统层的下级,其又包含磁盘缓存管理部分和块设备驱动部分,磁盘缓存管理部分包括I/O管理模块、空间管理模块和文件操作处理模块,块设备驱动部分包括缓存设备驱动模块和磁盘设备驱动模块,缓存设备驱动模块用于驱动缓存设备,磁盘设备驱动模块用于驱动磁盘设备。空间管理模块通过I/O管理模块控制缓存设备驱动和磁盘设备驱动,以对缓存设备和磁盘设备中的数据进行处理。文件操作处理模块用于读取文件操作监听模块获取的文件操作信息,如监听文件的文件操作类型,监听文件的路径信息、监听文件的修改信息等。文件操作处理模块将读取的文件操作信息传输给空间管理模块,以使空间管理模块对缓存设备中的被操作文件作出处理。这里需要指出的是,现有的操作系统内核并不包含有文件操作监听模块和文件操作处理模块,正是这两个模块使得缓存控制设备能够在文件被操作后,及时响应,并对缓存中的该文件做出相应的处理,以提高缓存利用率,避免调用的缓存数据出现错误。
为了更清楚的说明本发明实施例2的方法,以下构建一个实际场景对其进行详细介绍。现有一个Linux服务器,其上运行的业务特点为:所读写的文件以大文件为主(文件大小在1MB及以上),业务数据存放在数据盘/dev/sda上,该盘为本地磁盘,大小为10G;服务器上还设有一张SSD卡,路径为/dev/hioa,大小为2G。在业务开始前,已将该磁盘和SSD卡封装为一个带缓存的磁盘设备/dev/dm-0。在/dev/dm-0上格式化了ext3文件系统。并挂载到根文件系统的/home/datastore目录下。在该服务器中,所建立的共享信息的内存区指针为char*info_buffer。
将本发明实施例2中的方案应用到该服务器中。预设的操作处理条件:脏块比重大于等于30%,文件删除操作的响应信息:系统处理器的使用率低于20%、缓存设备缓存空间的利用率高于80%。以下为应用实施例2方法所包括的具体步骤:
例如,业务创建了20个文件,位于数据存储datastore中,分别为data1~data20。每个文件大小均为1G。分别对这20个文件启动了文件修改和删除监听操作。
业务读取data1的所有数据,这些数据缓存到SSD卡上;
业务读取data2的所有数据,这些数据缓存到SSD卡上,此时,SSD缓存空间已将全部用完;
业务重写了data1文件的所有数据,此时,data1文件缓存在SSD卡上的1G数据均变脏;文件操作监听模块检测到本次文件修改操作,将文件的路径名、文件操作类型信息存放到缓存单元info_buffer中,文件操作处理模块从info_buffer中读取data1文件修改记录,查询发现该文件还未记录在文件列表,将data1文件记录到磁盘缓存模块的文件列表中;
业务读取data3文件的所有数据,由于此时缓存空间已用完,且data1的数据为脏无法替换,故将data2的所有已缓存数据替换出SSD卡;此时SSD卡上缓存的数据为data1的1G脏数据以及data3的1G有效数据;
业务读取data4文件的所有数据,由于此时缓存空间已用完,且data1的数据为脏无法替换,故将data3的所有已缓存数据替换出SSD卡;此时SSD卡上缓存的数据为data1的1G脏数据以及data4的1G有效数据;
业务删除data1文件。文件操作监听模块检测到本次文件删除操作,将文件的路径名、文件操作类型信息存放到info_buffer中,文件操作处理模块从info_buffer中读取data1文件删除记录,查询发现该记录已位于文件列表中,处理模块获取data1文件所有的磁盘数据块号信息,为磁盘块201开始的250K个磁盘块;
处理模块从201号磁盘块开始,依次查询该块是否缓存在SSD上。查询发现201号磁盘块已缓存,且为脏,则取消其脏标志,再将其置为无效,依次完成250K个磁盘块处理。
此时SSD卡上缓存的数据为data4的1G有效数据;业务读取data5文件的所有数据,由于此时缓存空间还有1G剩余,故将data5的数据均缓存到SSD卡上;此时SSD卡上缓存的数据为data4和data5的共2G有效数据。
如图7所示,本发明实施例3还提供一种缓存控制设备,包括:
监听模块501,用于获取磁盘中的被操作文件的文件操作信息,所述文件操作信息包括文件操作类型;
处理模块502,用于接收监听模块501获取的所述被操作文件的文件操作信息,并在当所述文件操作类型为文件删除操作时,将固态硬盘SSD缓存中的所述被操作文件对应的数据块置为无效。
如图8所示,本发明实施例4还提供一种缓存控制设备,包括:
监听模块601,用于获取磁盘中的被操作文件的文件操作信息,所述文件操作信息包括文件操作类型;
处理模块602,用于接收监听模块601获取的所述被操作文件的文件操作信息,并在当所述文件操作类型为文件删除操作时,将固态硬盘SSD缓存中的所述被操作文件对应的数据块置为无效。
所述监听模块601还用于监听对文件进行的操作,将监听到的被操作文件的文件操作信息保存至预先分配的内存区中;
所述处理模块602还用于从所述预先分配的内存区中获取所述文件操作信息中的文件操作类型。
优选的,所述监听模块601包括:
指定子模块603,用于指定需要监听的文件以及文件操作类型;
监听子模块604,用于监听对所述指定子模块603指定的需要监听的文件进行的文件操作,所述文件操作属于所述指定子模块603指定的需要监听的文件操作类型。
优选的,所述监听模块601包括:监听实例创建子模块605,所述监听实例创建子模块605用于创建文件操作的监听实例,将需要监听的文件以及文件操作类型加入到所述监听实例中,以及将所述监听实例保存至预先分配的内存区中;
所述监听子模块604还用于根据所述监听实例创建子模块605创建的所述监听实例,监听对需要监听的文件进行的文件操作。
优选的,所述监听实例创建子模块605还用于接收文件监听注册命令,以及在接收到文件监听注册命令之后,获取需要监听的文件所在的设备,以及判断所述需要监听的文件所在的设备是否为缓存设备,若所述需要监听的文件所在的设备为缓存设备,则创建文件操作的监听实例。
优选的,所述处理模块602还用于遍历在所述SSD缓存中所述被操作文件对应的数据块,判断在所述缓存中所述被操作文件对应的数据块是否为脏数据块,若所述被操作文件对应的数据块不是脏数据块,则取消所述被操作文件对应的数据块的有效标志。
优选的,所述处理模块602还用于在判断所述SSD缓存中的所述被操作文件对应的数据块是否为脏数据块之后,若所述被操作文件对应的数据块为脏数据块,则取消所述被操作文件对应的数据块的脏标志,以及取消所述被操作文件对应的数据块的有效标志。
优选的,所述处理模块602还用于在接收监听模块获取的所述被操作文件的文件操作信息之后,当所述文件操作类型为文件删除操作时,判断当前条件是否符合预设条件,所述预设条件包括如下一项或多项条件:
所述SSD缓存的脏数据块数量大于或等于预设的数量、所述SSD缓存的脏数据块数量占所述SSD缓存的总数据块数量的比例大于或等于预设阈值、所述被操作文件的大小大于或等于预设的文件大小、所述SSD缓存的空间占用率大于或等于预设的占用率、所述被操作文件的大小大于或等于预设的文件大小;
若当前条件符合所述预设条件,将所述SSD缓存中的所述被操作文件对应的数据块置为无效。
优选的,所述监听模块601进一步用于获取被操作文件的路径信息;
所述处理模块602还用于在接收监听模块601获取的所述被操作文件的文件操作信息之后,当所述文件操作类型为文件删除操作时,根据所述被操作文件的路径信息,判断所述被操作文件是否记录于所述SSD缓存的文件列表中,若所述被操作文件记录于所述缓存的文件列表中,则将所述SSD缓存中的所述被操作文件对应的数据块置为无效。
优选的,所述处理模块602还用于:在所述接收到所述监听模块601获取的所述被操作文件的文件操作信息之后,当所述文件操作类型为文件删除操作时,
判断所述SSD缓存的空间利用率是否大于或等于预设的利用率,若所述SSD缓存的空间利用率大于或等于预设的利用率,则将所述SSD缓存中的所述被操作文件对应的数据块置为无效;
或者,
判断所述SSD缓存的缓存命中率是否大于或等于预设缓存命中率,若所述SSD缓存的缓存命中率大于或等于预设的缓存命中率,则将所述SSD缓存中的所述被操作文件对应的数据块置为无效;
或者,
判断所述SSD缓存的输入输出负载是否大于或等于预设负载,若所述SSD缓存的输入输出负载大于或等于预设负载,则将所述SSD缓存中的所述被操作文件对应的数据块置为无效;
或者,
判断系统处理器的使用率是否大于或等于预设使用率,若系统处理器的使用率大于或等于预设使用率,则将所述SSD缓存中的所述被操作文件对应的数据块置为无效。
优选的,所述处理模块602还用于在接收到监听模块601获取的所述被操作文件的文件操作信息之后,当所述文件操作类型为文件修改操作时,则判断所述被操作文件是否记录于所述SSD缓存的文件列表中;
若所述被操作文件没有记录于所述缓存的文件列表中,则在所述SSD缓存的文件列表中新建被操作文件的记录,以及从所述磁盘中读取存储所述被操作文件的磁盘块号,将所述磁盘块号存入到新建的被操作文件的记录中。
如图14所示,本发明实施例5提供一种存储系统1101,包括内存1102、固态硬盘SSD缓存1103、磁盘存储介质1104,所述内存1102、所述SSD缓存1103、所述磁盘存储介质1104通过数据线连接,所述存储系统还包括如上所述的缓存控制设备1105,所述缓存控制设备1105分别与所述内存1102、所述SSD缓存1103和所述磁盘存储介质1104连接。所述存储系统1101可以为分布式存储系统,也可以其他存储系统,这里不做限制。
如图9所示,本发明实施例6还提供另外一种处理缓存数据的方法,包括:
701、分布式节点根据分布式文件系统下发的数据无效操作信息,获取所述分布式节点的页高速缓存中需置无效的数据块的信息。
702、根据所述页高速缓存中需置无效的数据块的信息,确定所述分布式节点的固态硬盘SSD缓存中需置无效的数据块,并将所述SSD缓存中需置无效的数据块置无效,所述SSD缓存中的数据块与所述页高速缓存中需置无效的数据块对应。
本发明实施例方法可以应用于多节点共享存储系统,以下将结合多节点共享存储场景对本发明实施例方法做进一步说明。
如图10所示,多节点共享存储系统包括存储区域网络(Storage AreaNetwork,SAN)、计算节点代理(Computing Node Agent,CNA)和虚拟机,其中,图6示出了计算节点代理CNA1和CNA2,虚拟机VM1和VM2。所述SAN包含有逻辑卷lun1,逻辑卷lun1挂载到CNA1和CNA2上,其在CNA1和CNA2中的挂载分区均为sda。CNA1和CNA2设有挂载分区sda和页高速缓存,CNA1还设有SSD缓存,而且CNA1中的挂载分区sda和SSD缓存封装成与CNA1对应的虚拟机VM1上的一个逻辑卷。页高速缓存为内核的磁盘缓存,使用内存的部分空间作为磁盘数据的缓存。
当虚拟机VM1首次读取lun1上4kb的数据块x时,数据块x会被CNA1缓存到SSD上,并同时缓存到页高速缓存中。当虚拟机VM1非首次读取lun1上4kb的数据块x时,若页高速缓存中的数据块x为有效,则虚拟机VM1将从高速缓存中直接读取数据块x;若页高速缓存中未缓存有数据块x,则CNA1可以将SSD中缓存的数据块x读取到页高速缓存中,虚拟机VM1再从高速缓存中读取数据块x。当虚拟机VM2对数据块x进行写操作时,将数据写入CNA2节点的页高速缓存中,形成脏数据。此时,多节点共享存储系统中的分布式文件系统(如虚拟镜像管理系统(Virtual Image Management System,VIMS))将发起数据块x的无效操作。CNA1监听分布式文件系统发起的无效操作,获取数据块x的无效操作,并将所述CNA1的SSD缓存中的数据块x置无效。在虚拟机VM2对数据块x进行写操作之后,当虚拟机VM1再次读取数据块x时,由于页高速缓存和SSD缓存中的数据块x均置为无效,虚拟机VM1只能从所述SAN的逻辑卷中读取最新修改的数据x。如果未应用本发明实施例方法,SSD缓存中的数据块x仍然有效,则当虚拟机VM1再次读取数据块x时,页高速缓存可能将从SSD缓存中读取到不是虚拟机VM2对数据块x进行写操作之后的数据块x,从而不能读取到最新的数据。因此,本发明实施例方法可以避免不是最新的SSD缓存中的数据块x再被读入页高速缓存中,确保VM1读取到最新的数据块x。
如图11所示,本发明实施例7还提供一种处理缓存数据的方法,可以包括:
801、分布式节点监听分布式文件系统下发的数据无效操作信息。
802、分布式节点根据监听到的数据无效操作信息,查询所述页高速缓存中是否存在需置无效的数据块,若所述页高速缓存中存在需置无效的数据块,则获取所述页高速缓存中需置无效的数据块的信息,并将获取的所述需置无效的数据块的信息写入所述分布式节点上的存储有监听实例的内存区中。
803、从所述监听实例的内存区中获得所述需置无效的数据块的信息,并根据所述需置无效的数据块的信息,获取SSD缓存中需置无效的数据块的磁盘块号,所述磁盘块号与所述页高速缓存中需置无效的数据块对应。
804、根据所述磁盘块号,在所述SSD缓存中查询与所述磁盘块号对应的数据块。
805、将查询到的与所述磁盘块号对应的数据块确定为所述SSD缓存中需置无效的数据块。
806、将所述SSD缓存中需置无效的数据块置无效。
其中,步骤806可以通过如下方式实现:
判断所述SSD缓存中需置无效的数据块是否为脏数据块,若所述SSD缓存中需置无效的数据块是脏数据块,则取消所述SSD缓存中需置无效的数据块的脏标志;在取消所述SSD缓存中需置无效的数据块的脏标志之后,取消所述SSD缓存中需置无效的数据块的有效标志,并将所述SSD缓存中需置无效的数据块置为空闲状态;若所述SSD缓存中需置无效的数据块是脏数据块不是脏数据块,则取消所述SSD缓存中需置无效的数据块的有效标志,并将所述SSD缓存中需置无效的数据块置为空闲状态。
本发明实施例方法其实可以包括两个流程部分,一是监听流程,二是处理流程。以下对这两个流程进行简要说明。
监听流程可以包括:
读取监听消息。具体的,分布式文件系统下发数据无效操作,分布式节点读取数据无效操作信息。
判断分布式文件系统中是否创建在分布式节点的缓存设备上,若是,收集数据无效操作信息;
将本次数据无效操作信息写入监听实例的内存区中。
处理流程可以包括:
接收本次数据无效操作信息;
判断本次操作是否为无效操作;
若是,获取本次操作所需置无效的数据块的块号;
遍历SSD缓存;
判断所需置无效的数据块是否已缓存;
若所需置无效的数据块已缓存,则判断所需置无效的数据块是否为脏数据块;
若所需置无效的数据块为脏数据块,取消所需置无效的数据块的脏标志,再取消其有效标志。
若所需置无效的数据块不是脏数据块,则取消所需置无效的数据块的有效标志。
如图12所示,本发明实施例8还提供一种分布式节点,包括:
监听模块901,用于根据分布式文件系统下发的数据无效操作信息,获取所述分布式节点的页高速缓存中需置无效的数据块的信息;
处理模块902,用于接收监听模块901获取的所述页高速缓存中需置无效的数据块的信息,确定所述分布式节点的固态硬盘SSD缓存中需置无效的数据块,并将所述SSD缓存中需置无效的数据块置无效,所述SSD缓存中的数据块与所述页高速缓存中需置无效的数据块对应。
如图13所示,本发明实施例9还提供另一种分布式节点,包括:
监听模块1001,用于根据分布式文件系统下发的数据无效操作信息,获取所述分布式节点的页高速缓存中需置无效的数据块的信息;
处理模块1002,用于接收监听模块1001获取的所述页高速缓存中需置无效的数据块的信息,确定所述分布式节点的固态硬盘SSD缓存中需置无效的数据块,并将所述SSD缓存中需置无效的数据块置无效,所述SSD缓存中的数据块与所述页高速缓存中需置无效的数据块对应。
所述监听模块1001还用于根据分布式文件系统下发的数据无效操作信息,查询所述页高速缓存中是否存在需置无效的数据块,若所述页高速缓存中存在需置无效的数据块,则获取所述页高速缓存中需置无效的数据块的信息。
优选的,所述监听模块1001还用于在根据分布式文件系统下发的数据无效操作信息,获取所述分布式节点的页高速缓存中需置无效的数据块的信息之后,将获取的所述页高速缓存中需置无效的数据块的信息写入所述分布式节点上的存储有监听实例的内存区中。
优选的,所述处理模块1002还包括获取子模块1003、查询子模块1004和无效子模块1005,
所述获取子模块1003用于在接收监听模块获取的所述页高速缓存中需置无效的数据块的信息之后,根据所述页高速缓存中需置无效的数据块的信息,获取所述SSD缓存中需置无效的数据块的磁盘块号,所述磁盘块号与所述页高速缓存中需置无效的数据块对应;
所述查询子模块1004用于根据所述获取子模块1003获取到的所述磁盘块号,在所述SSD缓存中查询与所述磁盘块号对应的数据块;
所述无效子模块1005用于将所述查询子模块1004查询到的与所述磁盘块号对应的数据块确定为所述SSD缓存中需置无效的数据块。
优选的,所述无效子模块1005还用于判断所述SSD缓存中需置无效的数据块是否为脏数据块,若所述SSD缓存中需置无效的数据块是脏数据块,则取消所述SSD缓存中需置无效的数据块的脏标志;在取消所述SSD缓存中需置无效的数据块的脏标志之后,取消所述SSD缓存中需置无效的数据块的有效标志,并将所述SSD缓存中需置无效的数据块置为空闲状态;若所述SSD缓存中需置无效的数据块是脏数据块不是脏数据块,则取消所述SSD缓存中需置无效的数据块的有效标志,并将所述SSD缓存中需置无效的数据块置为空闲状态。
如图15所示,本发明实施例10还提供一种分布式存储系统1201,包括:虚拟机1202、如实施例8所述的分布式节点1203和存储区域网络SAN1204,所述分布式节点1023挂载所述SAN1204上的数据块,所述虚拟机1202用于从所述分布式节点1203的页高速缓存中读取数据,并进行读或写操作。
如图16所示,本发明实施例11提供一种缓存控制设备1301,包括:处理器1302和输入输出接口1303,所述处理器1302用于获取磁盘中的被操作文件的文件操作信息,所述文件操作信息包括文件操作类型;以及用于当所述文件操作类型为文件删除操作时,通过输入输出接口1303将固态硬盘SSD缓存中的所述被操作文件对应的数据块置为无效。
优选的,所述处理器1302用于监听对文件进行的操作,将监听到的被操作文件的文件操作信息保存至预先分配的内存区中。
优选的,所述处理器1302用于指定需要监听的文件以及文件操作类型;以及监听对需要监听的文件进行的文件操作,所述文件操作属于指定的需要监听的文件操作类型。
优选的,所述处理器1302用于:
创建文件操作的监听实例;
将需要监听的文件以及文件操作类型加入到所述监听实例中;
将所述监听实例保存至所述预先分配的内存区中;
根据所述监听实例,监听对需要监听的文件进行的文件操作。
优选的,所述处理器1302用于:
接收文件监听注册命令;
在接收到文件监听注册命令之后,确定需要监听的文件所在的设备;
判断所述需要监听的文件所在的设备是否为所述SSD缓存,若所述需要监听的文件所在的设备为所述SSD缓存,则创建文件操作的监听实例。
优选的,所述处理器1302用于当所述文件操作类型为文件删除操作时,将所述SSD缓存中所述被操作文件对应的数据块置为无效,包括:用于判断所述SSD缓存中的所述被操作文件对应的数据块是否为脏数据块,若所述被操作文件对应的数据块不是脏数据块,则取消所述被操作文件对应的数据块的有效标志。
优选的,所述处理器1302用于在所述判断所述SSD缓存中的所述被操作文件对应的数据块是否为脏数据块之后,若所述被操作文件对应的数据块为脏数据块,则取消所述被操作文件对应的数据块的脏标志,以及取消所述被操作文件对应的数据块的有效标志。
优选的,所述处理器1302用于在所述获取磁盘中的被操作文件的文件操作信息之后,当所述文件操作类型为文件删除操作时,判断当前条件是否符合预设条件,所述预设条件包括如下一项或多项条件:
所述SSD缓存的脏数据块数量大于或等于预设的数量、所述SSD缓存的脏数据块数量占所述SSD缓存的总数据块数量的比例大于或等于预设阈值、所述被操作文件的大小大于或等于预设的文件大小、所述SSD缓存的空间占用率大于或等于预设的占用率、所述被操作文件的大小大于或等于预设的文件大小;
若当前条件符合所述预设条件,当所述文件操作类型为文件删除操作时,将所述SSD缓存中的所述被操作文件对应的数据块置为无效。
优选的,所述处理器1302用于获取磁盘中的所述被操作文件的路径信息;在所述获取磁盘中的被操作文件的文件操作信息之后,当所述文件操作类型为文件删除操作时,根据所述被操作文件的路径信息,判断所述被操作文件是否记录于所述SSD缓存的文件列表中;若所述被操作文件记录于所述缓存的文件列表中,则当所述文件操作类型为文件删除操作时,将所述SSD缓存中的所述被操作文件对应的数据块置为无效。
优选的,所述处理器1302用于在所述获取磁盘中的被操作文件的文件操作信息之后,判断所述SSD缓存的空间利用率是否大于或等于预设的利用率;
若所述SSD缓存的空间利用率大于或等于预设的利用率,则当所述文件操作类型为文件删除操作时,将所述SSD缓存中的所述被操作文件对应的数据块置为无效;
或者,
判断所述SSD缓存的缓存命中率是否大于或等于预设缓存命中率;
若所述SSD缓存的缓存命中率大于或等于预设的缓存命中率,则当所述文件操作类型为文件删除操作时,将所述SSD缓存中的所述被操作文件对应的数据块置为无效;
或者,
判断所述SSD缓存的输入输出负载是否大于或等于预设负载;
若所述SSD缓存的输入输出负载大于或等于预设负载,则当所述文件操作类型为文件删除操作时,将所述SSD缓存中的所述被操作文件对应的数据块置为无效;
或者,
判断系统处理器1302的使用率是否大于或等于预设使用率;
若系统处理器1302的使用率大于或等于预设使用率,则当所述文件操作类型为文件删除操作时,将所述SSD缓存中的所述被操作文件对应的数据块置为无效。
优选的,所述处理器1302用于在所述获取磁盘中的被操作文件的文件操作信息之后,当所述文件操作类型为文件修改操作时,则判断所述被操作文件是否记录于所述SSD缓存的文件列表中;若所述被操作文件没有记录于所述缓存的文件列表中,则在所述SSD缓存的文件列表中新建被操作文件的记录,以及从所述磁盘中读取存储所述被操作文件的磁盘块号,将所述磁盘块号存入到新建的被操作文件的记录中。
如图17所示,本发明实施例12提供一种分布式节点1401,包括:处理器1402、固态硬盘SSD缓存1403和页高速缓存1404,处理器1402分别与固态硬盘SSD缓存1403和页高速缓存1404连接,所述固态硬盘SSD缓存1403和页高速缓存1404也通过相互连接,所述处理器1402用于根据分布式文件系统下发的数据无效操作信息,获取所述页高速缓存1404中需置无效的数据块的信息;以及用于根据所述页高速缓存1404中需置无效的数据块的信息,确定所述SSD缓存1403中需置无效的数据块,并将所述SSD缓存1403中需置无效的数据块置无效,所述SSD缓存1403中的数据块与所述页高速缓存1404中需置无效的数据块对应。
优选的,所述处理器1402用于根据分布式文件系统下发的数据无效操作信息,获取所述分布式节点1401的页高速缓存1404中需置无效的数据块的信息包括:用于根据分布式文件系统下发的数据无效操作信息,查询所述页高速缓存1404中是否存在需置无效的数据块,若所述页高速缓存1404中存在需置无效的数据块,则获取所述页高速缓存1404中需置无效的数据块的信息。
优选的,所述处理器1402用于在所述分布式节点1401根据分布式文件系统下发的数据无效操作信息,获取所述分布式节点1401的页高速缓存1404中需置无效的数据块的信息之后,将获取的所述页高速缓存1404中需置无效的数据块的信息写入所述分布式节点1401上的存储有监听实例的内存区中。
优选的,所述处理器1402用于根据所述页高速缓存1404中需置无效的数据块的信息,确定所述分布式节点1401的SSD缓存1403中需置无效的数据块,包括:用于根据所述页高速缓存1404中需置无效的数据块的信息,获取所述SSD缓存1403中需置无效的数据块的磁盘块号,所述磁盘块号与所述页高速缓存1404中需置无效的数据块对应;以及用于根据所述磁盘块号,在所述SSD缓存1403中查询与所述磁盘块号对应的数据块,将查询到的与所述磁盘块号对应的数据块确定为所述SSD缓存1403中需置无效的数据块。
优选的,所述处理器1402用于所述将所述SSD缓存1403中需置无效的数据块置无效,包括:用于:
判断所述SSD缓存1403中需置无效的数据块是否为脏数据块,
若所述SSD缓存1403中需置无效的数据块是脏数据块,则取消所述SSD缓存1403中需置无效的数据块的脏标志;在取消所述SSD缓存1403中需置无效的数据块的脏标志之后,取消所述SSD缓存1403中需置无效的数据块的有效标志,并将所述SSD缓存1403中需置无效的数据块置为空闲状态;
若所述SSD缓存1403中需置无效的数据块是脏数据块不是脏数据块,则取消所述SSD缓存1403中需置无效的数据块的有效标志,并将所述SSD缓存1403中需置无效的数据块置为空闲状态。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
以上对本发明实施例所提供的处理缓存数据的方法的方法、缓存控制设备、存储系统及分布式节点进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (32)

1.一种处理缓存数据的方法,其特征在于,包括:
获取磁盘中的被操作文件的文件操作信息,所述文件操作信息包括文件操作类型;
当所述文件操作类型为文件删除操作时,将固态硬盘SSD缓存中的所述被操作文件对应的数据块置为无效;
其中所述当所述文件操作类型为文件删除操作时,将所述SSD缓存中所述被操作文件对应的数据块置为无效,包括:
判断所述SSD缓存中的所述被操作文件对应的数据块是否为脏数据块,若所述被操作文件对应的数据块不是脏数据块,则取消所述被操作文件对应的数据块的有效标志。
2.根据权利要求1所述的处理缓存数据的方法,其特征在于,所述获取磁盘中的被操作文件的文件操作信息包括:
监听对文件进行的操作,将监听到的被操作文件的文件操作信息保存至预先分配的内存区中。
3.根据权利要求2所述的处理缓存数据的方法,其特征在于,所述监听对文件进行的操作包括:
指定需要监听的文件以及文件操作类型;
监听对需要监听的文件进行的文件操作,所述文件操作属于指定的需要监听的文件操作类型。
4.根据权利要求3所述的处理缓存数据的方法,其特征在于,所述指定需要进行监听的文件以及文件操作类型包括:
创建文件操作的监听实例;
将需要监听的文件以及文件操作类型加入到所述监听实例中;
将所述监听实例保存至所述预先分配的内存区中;
所述监听对需要监听的文件进行的文件操作包括:根据所述监听实例,监听对需要监听的文件进行的文件操作。
5.根据权利要求4所述的处理缓存数据的方法,其特征在于,所述创建文件操作的监听实例包括:
接收文件监听注册命令;
在接收到文件监听注册命令之后,确定需要监听的文件所在的设备;
判断所述需要监听的文件所在的设备是否为所述SSD缓存,若所述需要监听的文件所在的设备为所述SSD缓存,则创建文件操作的监听实例。
6.根据权利要求1所述的处理缓存数据的方法,其特征在于,在所述判断所述SSD缓存中的所述被操作文件对应的数据块是否为脏数据块之后,还包括:若所述被操作文件对应的数据块为脏数据块,则取消所述被操作文件对应的数据块的脏标志,以及取消所述被操作文件对应的数据块的有效标志。
7.根据权利要求1至5任意一项所述的处理缓存数据的方法,其特征在于,在所述获取磁盘中的被操作文件的文件操作信息之后,还包括:
当所述文件操作类型为文件删除操作时,判断当前条件是否符合预设条件,所述预设条件包括如下一项或多项条件:
所述SSD缓存的脏数据块数量大于或等于预设的数量、所述SSD缓存的脏数据块数量占所述SSD缓存的总数据块数量的比例大于或等于预设阈值、所述被操作文件的大小大于或等于预设的文件大小、所述SSD缓存的空间占用率大于或等于预设的占用率、所述被操作文件的大小大于或等于预设的文件大小;
所述当所述文件操作类型为文件删除操作时,将所述SSD缓存中的所述被操作文件对应的数据块置为无效,包括:
若当前条件符合所述预设条件,将所述SSD缓存中的所述被操作文件对应的数据块置为无效。
8.根据权利要求1至5任意一项所述的处理缓存数据的方法,其特征在于,
所述获取磁盘中的被操作文件的文件操作信息包括:获取磁盘中的所述被操作文件的路径信息;
在所述获取磁盘中的被操作文件的文件操作信息之后,所述方法还包括:
当所述文件操作类型为文件删除操作时,根据所述被操作文件的路径信息,判断所述被操作文件是否记录于所述SSD缓存的文件列表中;
所述当所述文件操作类型为文件删除操作时,将所述SSD缓存中的所述被操作文件对应的数据块置为无效,包括:
若所述被操作文件记录于所述缓存的文件列表中,则将所述SSD缓存中的所述被操作文件对应的数据块置为无效。
9.根据权利要求1至5任意一项所述的处理缓存数据的方法,其特征在于,在所述获取磁盘中的被操作文件的文件操作信息之后,还包括:
判断所述SSD缓存的空间利用率是否大于或等于预设的利用率;
所述当所述文件操作类型为文件删除操作时,将所述SSD缓存中的所述被操作文件对应的数据块置为无效,包括:
若所述SSD缓存的空间利用率大于或等于预设的利用率,则将所述SSD缓存中的所述被操作文件对应的数据块置为无效;
或者,
判断所述SSD缓存的缓存命中率是否大于或等于预设缓存命中率;
所述当所述文件操作类型为文件删除操作时,将所述SSD缓存中的所述被操作文件对应的数据块置为无效,包括:
若所述SSD缓存的缓存命中率大于或等于预设的缓存命中率,则将所述SSD缓存中的所述被操作文件对应的数据块置为无效;
或者,
判断所述SSD缓存的输入输出负载是否大于或等于预设负载;
所述当所述文件操作类型为文件删除操作时,将所述SSD缓存中的所述被操作文件对应的数据块置为无效,包括:
若所述SSD缓存的输入输出负载大于或等于预设负载,则将所述SSD缓存中的所述被操作文件对应的数据块置为无效;
或者,
判断系统处理器的使用率是否大于或等于预设使用率;
所述当所述文件操作类型为文件删除操作时,将所述SSD缓存中的所述被操作文件对应的数据块置为无效,包括:
若系统处理器的使用率大于或等于预设使用率,则将所述SSD缓存中的所述被操作文件对应的数据块置为无效。
10.根据权利要求1至5任意一项所述的处理缓存数据的方法,其特征在于,在所述获取磁盘中的被操作文件的文件操作信息之后,还包括:
当所述文件操作类型为文件修改操作时,则判断所述被操作文件是否记录于所述SSD缓存的文件列表中;
若所述被操作文件没有记录于所述缓存的文件列表中,则在所述SSD缓存的文件列表中新建被操作文件的记录,以及从所述磁盘中读取存储所述被操作文件的磁盘块号,将所述磁盘块号存入到新建的被操作文件的记录中。
11.一种缓存控制设备,其特征在于,包括:
监听模块,用于获取磁盘中的被操作文件的文件操作信息,所述文件操作信息包括文件操作类型;
处理模块,用于接收监听模块获取的所述被操作文件的文件操作信息,并在当所述文件操作类型为文件删除操作时,将固态硬盘SSD缓存中的所述被操作文件对应的数据块置为无效;
其中,所述处理模块还用于判断所述SSD缓存中的所述被操作文件对应的数据块是否为脏数据块,若所述被操作文件对应的数据块不是脏数据块,则取消所述被操作文件对应的数据块的有效标志。
12.根据权利要求11所述的缓存控制设备,其特征在于,
所述监听模块还用于监听对文件进行的操作,将监听到的被操作文件的文件操作信息保存至预先分配的内存区中。
13.根据权利要求12所述的缓存控制设备,其特征在于,所述监听模块还包括:
指定子模块,用于指定需要监听的文件以及文件操作类型,
监听子模块,用于监听对所述指定子模块指定的需要监听的文件进行的文件操作,所述文件操作属于所述指定子模块指定的需要监听的文件操作类型。
14.根据权利要求13所述的缓存控制设备,其特征在于,所述监听模块还包括:监听实例创建子模块,所述监听实例创建子模块用于创建文件操作的监听实例,将需要监听的文件以及文件操作类型加入到所述监听实例中,将所述监听实例保存至所述预先分配的内存区中;
所述监听子模块还用于根据所述监听实例创建子模块创建的所述监听实例,监听对需要监听的文件进行的文件操作。
15.根据权利要求14所述的缓存控制设备,其特征在于,所述监听实例创建子模块还用于接收文件监听注册命令,在接收到文件监听注册命令之后,确定需要监听的文件所在的设备,以及判断所述需要监听的文件所在的设备是否为所述SSD缓存,若所述需要监听的文件所在的设备为所述SSD缓存,则创建文件操作的监听实例。
16.根据权利要求11所述的缓存控制设备,其特征在于,所述处理模块还用于在判断所述SSD缓存中的所述被操作文件对应的数据块是否为脏数据块之后,若所述被操作文件对应的数据块为脏数据块,则取消所述被操作文件对应的数据块的脏标志,以及取消所述被操作文件对应的数据块的有效标志。
17.根据权利要求11至14任意一项所述的缓存控制设备,其特征在于,所述处理模块还用于:
在接收监听模块获取的所述被操作文件的文件操作信息之后,当所述文件操作类型为文件删除操作时,判断当前条件是否符合预设条件,所述预设条件包括如下一项或多项条件:
所述SSD缓存的脏数据块数量大于或等于预设的数量、所述SSD缓存的脏数据块数量占所述SSD缓存的总数据块数量的比例大于或等于预设阈值、所述被操作文件的大小大于或等于预设的文件大小、所述SSD缓存的空间占用率大于或等于预设的占用率、所述被操作文件的大小大于或等于预设的文件大小;
若当前条件符合所述预设条件,将所述SSD缓存中的所述被操作文件对应的数据块置为无效。
18.根据权利要求11至14任意一项所述的缓存控制设备,其特征在于,
所述监听模块还用于获取磁盘中的所述被操作文件的路径信息;
所述处理模块还用于在接收监听模块获取的所述被操作文件的文件操作信息之后,当所述文件操作类型为文件删除操作时,根据所述被操作文件的路径信息,判断所述被操作文件是否记录于所述SSD缓存的文件列表中,若所述被操作文件记录于所述缓存的文件列表中,则将所述SSD缓存中的所述被操作文件对应的数据块置为无效。
19.根据权利要求11至14任意一项所述的缓存控制设备,其特征在于,所述处理模块还用于:在所述接收到所述监听模块获取的所述被操作文件的文件操作信息之后,当所述文件操作类型为文件删除操作时,
判断所述SSD缓存的空间利用率是否大于或等于预设的利用率,若所述SSD缓存的空间利用率大于或等于预设的利用率,则将所述SSD缓存中的所述被操作文件对应的数据块置为无效;
或者,
判断所述SSD缓存的缓存命中率是否大于或等于预设缓存命中率,若所述SSD缓存的缓存命中率大于或等于预设的缓存命中率,则将所述SSD缓存中的所述被操作文件对应的数据块置为无效;
或者,
判断所述SSD缓存的输入输出负载是否大于或等于预设负载,若所述SSD缓存的输入输出负载大于或等于预设负载,则将所述SSD缓存中的所述被操作文件对应的数据块置为无效;
或者,
判断系统处理器的使用率是否大于或等于预设使用率,若系统处理器的使用率大于或等于预设使用率,则将所述SSD缓存中的所述被操作文件对应的数据块置为无效。
20.根据权利要求11至14任意一项所述的缓存控制设备,其特征在于,
所述处理模块还用于在接收到监听模块获取的所述被操作文件的文件操作信息之后,当所述文件操作类型为文件修改操作时,则判断所述被操作文件是否记录于所述SSD缓存的文件列表中;
若所述被操作文件没有记录于所述缓存的文件列表中,则在所述SSD缓存的文件列表中新建被操作文件的记录,以及从所述磁盘中读取存储所述被操作文件的磁盘块号,将所述磁盘块号存入到新建的被操作文件的记录中。
21.一种存储系统,包括内存、固态硬盘SSD缓存、磁盘存储介质,所述内存、所述SSD缓存、所述磁盘存储介质通过数据线连接,其特征在于,所述存储系统还包括如权利要求11至20任一项所述的缓存控制设备,所述缓存控制设备分别与所述内存、所述SSD缓存和所述磁盘存储介质连接。
22.一种处理缓存数据的方法,其特征在于,包括:
分布式节点根据分布式文件系统下发的数据无效操作信息,获取所述分布式节点的页高速缓存中需置无效的数据块的信息;
根据所述页高速缓存中需置无效的数据块的信息,确定所述分布式节点的固态硬盘SSD缓存中需置无效的数据块,并将所述SSD缓存中需置无效的数据块置无效,所述SSD缓存中的数据块与所述页高速缓存中需置无效的数据块对应;
其中,将所述SSD缓存中需置无效的数据块置无效,包括:
判断所述SSD缓存中需置无效的数据块是否为脏数据块,
若所述SSD缓存中需置无效的数据块是脏数据块,则取消所述SSD缓存中需置无效的数据块的脏标志。
23.根据权利要求22所述的处理缓存数据的方法,其特征在于,所述分布式节点根据分布式文件系统下发的数据无效操作信息,获取所述分布式节点的页高速缓存中需置无效的数据块的信息包括:
根据分布式文件系统下发的数据无效操作信息,查询所述页高速缓存中是否存在需置无效的数据块,若所述页高速缓存中存在需置无效的数据块,则获取所述页高速缓存中需置无效的数据块的信息。
24.根据权利要求22所述的处理缓存数据的方法,其特征在于,在所述分布式节点根据分布式文件系统下发的数据无效操作信息,获取所述分布式节点的页高速缓存中需置无效的数据块的信息之后,还包括:将获取的所述页高速缓存中需置无效的数据块的信息写入所述分布式节点上的存储有监听实例的内存区中。
25.根据权利要求24所述的处理缓存数据的方法,其特征在于,所述根据所述页高速缓存中需置无效的数据块的信息,确定所述分布式节点的SSD缓存中需置无效的数据块,包括:
根据所述页高速缓存中需置无效的数据块的信息,获取所述SSD缓存中需置无效的数据块的磁盘块号,所述磁盘块号与所述页高速缓存中需置无效的数据块对应;
根据所述磁盘块号,在所述SSD缓存中查询与所述磁盘块号对应的数据块;
将查询到的与所述磁盘块号对应的数据块确定为所述SSD缓存中需置无效的数据块。
26.根据权利要求25所述的处理缓存数据的方法,其特征在于,在取消所述SSD缓存中需置无效的数据块的脏标志之后,取消所述SSD缓存中需置无效的数据块的有效标志,并将所述SSD缓存中需置无效的数据块置为空闲状态;
若所述SSD缓存中需置无效的数据块是脏数据块不是脏数据块,则取消所述SSD缓存中需置无效的数据块的有效标志,并将所述SSD缓存中需置无效的数据块置为空闲状态。
27.一种分布式节点,其特征在于,包括:
监听模块,用于根据分布式文件系统下发的数据无效操作信息,获取所述分布式节点的页高速缓存中需置无效的数据块的信息;
处理模块,用于接收监听模块获取的所述页高速缓存中需置无效的数据块的信息,确定所述分布式节点的固态硬盘SSD缓存中需置无效的数据块,并将所述SSD缓存中需置无效的数据块置无效,所述SSD缓存中的数据块与所述页高速缓存中需置无效的数据块对应;
其中,将所述SSD缓存中需置无效的数据块置无效,包括:
判断所述SSD缓存中需置无效的数据块是否为脏数据块,若所述SSD缓存中需置无效的数据块是脏数据块,则取消所述SSD缓存中需置无效的数据块的脏标志。
28.根据权利要求27所述的分布式节点,其特征在于,所述监听模块还用于根据分布式文件系统下发的数据无效操作信息,查询所述页高速缓存中是否存在需置无效的数据块,若所述页高速缓存中存在需置无效的数据块,则获取所述页高速缓存中需置无效的数据块的信息。
29.根据权利要求28所述的分布式节点,其特征在于,
所述监听模块还用于在根据分布式文件系统下发的数据无效操作信息,获取所述分布式节点的页高速缓存中需置无效的数据块的信息之后,将获取的所述页高速缓存中需置无效的数据块的信息写入所述分布式节点上的存储有监听实例的内存区中。
30.根据权利要求29所述的分布式节点,其特征在于,所述处理模块还包括:
获取子模块,用于在接收监听模块获取的所述页高速缓存中需置无效的数据块的信息之后,根据所述页高速缓存中需置无效的数据块的信息,获取所述SSD缓存中需置无效的数据块的磁盘块号,所述磁盘块号与所述页高速缓存中需置无效的数据块对应;
查询子模块,根据所述获取子模块获取到的所述磁盘块号,在所述SSD缓存中查询与所述磁盘块号对应的数据块;
无效子模块,将所述查询子模块查询到的与所述磁盘块号对应的数据块确定为所述SSD缓存中需置无效的数据块。
31.根据权利要求30所述的分布式节点,其特征在于,所述无效子模块还用于:
判断所述SSD缓存中需置无效的数据块是否为脏数据块,若所述SSD缓存中需置无效的数据块是脏数据块,则取消所述SSD缓存中需置无效的数据块的脏标志;在取消所述SSD缓存中需置无效的数据块的脏标志之后,取消所述SSD缓存中需置无效的数据块的有效标志,并将所述SSD缓存中需置无效的数据块置为空闲状态;
若所述SSD缓存中需置无效的数据块是脏数据块不是脏数据块,则取消所述SSD缓存中需置无效的数据块的有效标志,并将所述SSD缓存中需置无效的数据块置为空闲状态。
32.一种分布式存储系统,其特征在于,包括:虚拟机、如权利要求27至31任一项所述的分布式节点和存储区域网络SAN,所述分布式节点挂载所述SAN上的数据块,所述虚拟机用于从所述分布式节点的页高速缓存中读取数据,并进行读或写操作。
CN201310577140.0A 2013-11-18 2013-11-18 处理缓存数据的方法及装置 Expired - Fee Related CN103714014B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310577140.0A CN103714014B (zh) 2013-11-18 2013-11-18 处理缓存数据的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310577140.0A CN103714014B (zh) 2013-11-18 2013-11-18 处理缓存数据的方法及装置

Publications (2)

Publication Number Publication Date
CN103714014A CN103714014A (zh) 2014-04-09
CN103714014B true CN103714014B (zh) 2016-12-07

Family

ID=50407011

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310577140.0A Expired - Fee Related CN103714014B (zh) 2013-11-18 2013-11-18 处理缓存数据的方法及装置

Country Status (1)

Country Link
CN (1) CN103714014B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105487898A (zh) * 2015-11-27 2016-04-13 国云科技股份有限公司 一种提高虚拟机批量开机关机速度的方法
CN106873902B (zh) * 2015-12-11 2020-04-28 杭州华为数字技术有限公司 一种文件存储系统、数据调度方法及数据节点
CN108762821B (zh) * 2017-04-18 2023-04-25 海马云(天津)信息技术有限公司 电子设备运行应用的装置及方法、电子设备
CN107122264B (zh) * 2017-05-15 2020-06-09 成都优孚达信息技术有限公司 海量数据容灾备份方法
CN109213420A (zh) * 2017-06-29 2019-01-15 杭州海康威视数字技术股份有限公司 数据存储方法、装置及系统
CN109284066B (zh) * 2017-07-19 2022-09-30 阿里巴巴集团控股有限公司 一种数据处理方法、装置、设备及系统
CN110308861B (zh) * 2018-03-20 2023-07-21 浙江宇视科技有限公司 存储数据保存方法、装置、电子设备和可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5119485A (en) * 1989-05-15 1992-06-02 Motorola, Inc. Method for data bus snooping in a data processing system by selective concurrent read and invalidate cache operation
CN1176433A (zh) * 1996-09-09 1998-03-18 株式会社东芝 高速缓存清理装置以及具备该装置的计算机系统
JP2004199317A (ja) * 2002-12-18 2004-07-15 Toyo Commun Equip Co Ltd コンピュータのセキュリティシステム
CN101887398A (zh) * 2010-06-25 2010-11-17 浪潮(北京)电子信息产业有限公司 一种动态提高服务器输入输出吞吐量的方法和系统
CN103136294A (zh) * 2011-12-05 2013-06-05 阿里巴巴集团控股有限公司 文件操作方法及装置
CN103365656A (zh) * 2013-06-28 2013-10-23 华为技术有限公司 保证缓存一致性的方法和终端

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012053572A (ja) * 2010-08-31 2012-03-15 Toshiba Corp 情報処理装置およびキャッシュの制御方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5119485A (en) * 1989-05-15 1992-06-02 Motorola, Inc. Method for data bus snooping in a data processing system by selective concurrent read and invalidate cache operation
CN1176433A (zh) * 1996-09-09 1998-03-18 株式会社东芝 高速缓存清理装置以及具备该装置的计算机系统
JP2004199317A (ja) * 2002-12-18 2004-07-15 Toyo Commun Equip Co Ltd コンピュータのセキュリティシステム
CN101887398A (zh) * 2010-06-25 2010-11-17 浪潮(北京)电子信息产业有限公司 一种动态提高服务器输入输出吞吐量的方法和系统
CN103136294A (zh) * 2011-12-05 2013-06-05 阿里巴巴集团控股有限公司 文件操作方法及装置
CN103365656A (zh) * 2013-06-28 2013-10-23 华为技术有限公司 保证缓存一致性的方法和终端

Also Published As

Publication number Publication date
CN103714014A (zh) 2014-04-09

Similar Documents

Publication Publication Date Title
CN103714014B (zh) 处理缓存数据的方法及装置
US11662936B2 (en) Writing data using references to previously stored data
US10649696B2 (en) Data set management
US7711916B2 (en) Storing information on storage devices having different performance capabilities with a storage system
US8856484B2 (en) Mass storage system and methods of controlling resources thereof
US9311252B2 (en) Hierarchical storage for LSM-based NoSQL stores
US7694103B1 (en) Efficient use of memory and accessing of stored records
CN102255962B (zh) 一种分布式存储方法、装置和系统
CN106021381A (zh) 一种云存储服务系统的数据访问/存储方法及装置
CN105094695B (zh) 一种存储方法和系统
CN107798130A (zh) 一种分布式存储的快照方法
CN103914516A (zh) 一种存储系统分层管理的方法与系统
JP6713934B2 (ja) 記憶装置及びその動作方法並びにシステム
CN104281535B (zh) 一种映射表在内存中的处理方法和装置
CN108664523A (zh) 一种虚拟磁盘文件格式转换方法和装置
CN106095817A (zh) 基于微内核的可扩展文件系统及文件访问方法
US9665436B2 (en) Creation and management of logical volume snapshots under hierarchical storage system
US10565159B2 (en) Archiving data sets in a volume in a primary storage in a volume image copy of the volume in a secondary storage
CN106293882A (zh) 一种虚拟磁盘快照实现方法及装置
CN104199926B (zh) 文件归档实现方法和装置以及文件访问方法和装置
CN109086462A (zh) 一种分布式文件系统中元数据的管理方法
CN109254958A (zh) 分布式数据读写方法、设备及系统
WO2015101083A1 (zh) 一种存储数据的保护方法及装置
CN100383721C (zh) 一种异构双系统总线的对象存储控制器
CN116069261A (zh) 一种数据处理方法、系统、设备以及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20161207

Termination date: 20181118