CN105068760B - 数据存储方法、数据存储装置和存储设备 - Google Patents

数据存储方法、数据存储装置和存储设备 Download PDF

Info

Publication number
CN105068760B
CN105068760B CN201510460167.0A CN201510460167A CN105068760B CN 105068760 B CN105068760 B CN 105068760B CN 201510460167 A CN201510460167 A CN 201510460167A CN 105068760 B CN105068760 B CN 105068760B
Authority
CN
China
Prior art keywords
operation information
file operation
controller
data
protection area
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
CN201510460167.0A
Other languages
English (en)
Other versions
CN105068760A (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 CN201510460167.0A priority Critical patent/CN105068760B/zh
Priority claimed from CN201380001618.3A external-priority patent/CN103765373B/zh
Publication of CN105068760A publication Critical patent/CN105068760A/zh
Application granted granted Critical
Publication of CN105068760B publication Critical patent/CN105068760B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明实施例提供了一种数据存储方法、装置和存储设备,包括:接收文件处理请求,将所述文件处理请求拆分成多个文件操作,分别对每个文件操作进行文件处理生成多个文件操作信息;将所述多个文件操作信息全部写入所述缓存保护区;当第一控制器发生故障后又上电时,在所述缓存保护区中恢复所述多个文件操作信息;根据所述多个文件操作信息获得数据信息,并将所述数据信息写入所述第一写缓存,以供所述主机访问所述数据信息。可以提高主机访问数据的效率。

Description

数据存储方法、数据存储装置和存储设备
技术领域
本发明涉及存储技术,尤其涉及一种数据存储方法、数据存储装置和存储设备。
背景技术
对于具有文件系统的存储设备来说,写入存储设备的数据需要具有原子性。所谓原子性是指事务的完整操作,与该事务相关的数据要么全部写入,要么全部不写入。在现有技术中,数据的原子性是在磁盘中保证的,缓存中的数据通常不具有原子性,也就是说只有磁盘中存储的数据才能被认为是可靠的数据,可以提供给主机。通常情况下,若存储设备出现故障,需要先在缓存中恢复出数据,然后将缓存中的数据写入磁盘,在将缓存中的数据写入磁盘时通过日志手段保证写入磁盘的数据是具有原子性的。当主机向存储设备发送访问请求要求访问该数据时,也需要先从磁盘中获取具有原子性的数据,再提供给主机,这就延长了处理主机发送的访问请求的时间。
发明内容
本发明实施例提供了一种数据存储方法、装置和存储设备,以提高主机访问数据的效率。
第一方面,本发明实施例提供了一种数据存储方法,所述方法应用于存储系统中,所述存储系统包括存储设备和主机,所述存储设备包括第一控制器,所述第一控制器包括缓存保护区和第一写缓存,所述缓存保护区具有数据保护功能,所述方法包括:
第一控制器接收文件处理请求,将所述文件处理请求拆分成多个文件操作,分别对每个文件操作进行文件处理生成多个文件操作信息;
将所述多个文件操作信息全部写入所述缓存保护区;
当第一控制器发生故障后又上电时,在所述缓存保护区中恢复所述多个文件操作信息;
根据所述多个文件操作信息获得数据信息,并将所述数据信息写入所述第一写缓存,以供所述主机访问所述数据信息。
结合第一方面,在第一种可能的实现方式中,所述将所述多个文件操作信息全部写入所述缓存保护区包括:
为每个文件操作信息在所述缓存保护区中申请存储空间;
将所述每个文件操作信息保存在所述申请的存储空间中;
确定所述多个文件操作信息均已保存在对应的存储空间中;
将所述保存有所述多个文件操作信息的存储空间中的数据,保存在所述缓存保护区对应的数据结构中。
结合第一方面,在第二种可能的实现方式中,所述将所述多个文件操作信息全部写入所述缓存保护区包括:
依次将每个文件操作信息发送给所述缓存保护区;
确定所述多个文件操作信息均已发送给所述缓存保护区;
设置所述缓存保护区中接收的所述多个文件操作信息对应的标记,所述标记用于表示所述多个文件操作信息已全部写入所述缓存保护区。
结合第一方面的第一种可能的实现方式,在第三种可能的实现方式中,所述存储设备包括存储器,所述存储器包括保护区;
所述方法还包括:
当第一控制器发生故障时,根据所述缓存保护区对应的数据结构确定所述缓存保护区中包括所述多个文件操作信息;
通过掉电保护程序将所述多个文件操作信息保存在所述存储器的保护区。
结合第一方面的第二种可能的实现方式,在第四种可能的实现方式中,所述存储设备包括存储器,所述存储器包括保护区;
所述方法还包括:
当第一控制器发生故障时,根据所述标记确定所述缓存保护区中包括所述多个文件操作信息;
通过掉电保护程序将所述多个文件操作信息保存在所述存储器的保护区。
结合第一方面,在第五种可能的实现方式中,所述存储设备包括第二控制器,所述第二控制器包括第二写缓存;
所述方法还包括:第一控制器将所述多个文件操作信息发送给所述第二控制器,使得所述第二控制器根据所述多个文件操作信息获得所述文件处理请求对应的数据信息,并将所述数据信息写入所述第二写缓存。
第二方面,本发明实施例提供了一种数据存储方法,所述方法应用于存储系统中,所述存储系统包括存储设备和主机,所述存储设备包括第一控制器、第二控制器和存储器,所述第二控制器包括写缓存,所述方法包括:
所述第一控制器接收文件处理请求,将所述文件处理请求拆分成多个文件操作,分别对每个文件操作进行文件处理生成多个文件操作信息;将所述多个文件操作信息发送给所述第二控制器;
所述第二控制器根据所述文件操作信息获得数据信息,将所述数据信息写入写缓存,以供第一控制器发生故障时,主机访问所述数据信息或者对所述存储器执行与所述文件处理请求相应的操作。
结合第二方面,在第一种可能的实现方式中,所述将所述多个文件操作信息发送给所述第二控制器包括:所述第一控制器向所述第二控制器发送第一镜像消息,所述第一镜像消息包括所述多个文件操作信息。
结合第二方面,在第二种可能的实现方式中,所述将所述多个文件操作信息发送给所述第二控制器包括:
所述第一控制器向所述第二控制器发送多个第二镜像消息,每个所述第二镜像消息包括所述多个文件操作信息中的一个文件操作信息。
结合第二方面,在第三种可能的实现方式中,所述第二控制器包括缓存保护区,所述缓存保护区具有数据保护功能;在所述第二控制器根据所述文件操作信息获得数据信息,将所述数据信息写入写缓存之前所述方法还包括:
所述第二控制器将所述文件操作信息全部写入所述缓存保护区。
结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,还包括:
当所述第二控制器发生故障又上电时,在所述缓存保护区中恢复所述多个文件操作信息;
所述第二控制器根据所述文件操作信息获得数据信息,将所述数据信息写入写缓存包括:
所述第二控制器根据所述缓存保护区中保存的所述多个文件操作信息获得所述数据信息,将所述数据信息写入所述写缓存。
结合第二方面的第三种可能的实现方式,在第五种可能的实现方式中,所述第二控制器将所述文件操作信息全部写入所述缓存保护区包括:
为每个文件操作信息在所述缓存保护区中申请存储空间;
将所述每个文件操作信息保存在所述申请的存储空间中;
确定所述多个文件操作信息均已保存在对应的存储空间中;
将所述保存有所述多个文件操作信息的存储空间中的数据,保存在所述缓存保护区对应的数据结构中。
结合第二方面的第三种可能的实现方式,在第六种可能的实现方式中,所述第二控制器将所述文件操作信息全部写入所述缓存保护区包括:
依次将每个文件操作信息发送给所述缓存保护区;
确定所述多个文件操作信息均已发送给所述缓存保护区;
设置所述缓存保护区中接收的所述多个文件操作信息对应的标记,所述标记用于表示所述多个文件操作信息已全部写入所述缓存保护区。
第三方面,本发明实施例提供了一种数据存储的装置,包括:
文件处理模块,用于接收文件处理请求,将所述文件处理请求拆分成多个文件操作,分别对每个文件操作进行文件处理生成多个文件操作信息;
写入模块,用于将所述多个文件操作信息全部写入缓存保护区;
恢复模块,用于当第一控制器发生故障后又上电时,在所述缓存保护区中恢复所述多个文件操作信息;
所述写入模块,还用于根据所述多个文件操作信息获得数据信息,并将所述数据信息写入第一写缓存,以供所述主机访问所述数据信息。
结合第三方面,在第一种可能的实现方式中,所述写入模块用于:
为每个文件操作信息在所述缓存保护区中申请存储空间;
将所述每个文件操作信息保存在所述申请的存储空间中;
确定所述多个文件操作信息均已保存在对应的存储空间中;
将所述保存有所述多个文件操作信息的存储空间中的数据,保存在所述缓存保护区对应的数据结构中。
结合第三方面,在第二种可能的实现方式中,所述写入模块用于:
依次将每个文件操作信息发送给所述缓存保护区;
确定所述多个文件操作信息均已发送给所述缓存保护区;
设置所述缓存保护区中接收的所述多个文件操作信息对应的标记,所述标记用于表示所述多个文件操作信息已全部写入所述缓存保护区。
结合第三方面的第一种可能的实现方式,在第三种可能的实现方式中,还包括保护模块;
所述保护模块,用于当第一控制器发生故障时,根据所述缓存保护区对应的数据结构确定所述缓存保护区中包括所述多个文件操作信息;
通过掉电保护程序将所述多个文件操作信息保存在存储器的保护区。
结合第三方面的第二种可能的实现方式,在第四种可能的实现方式中,还包括保护模块;
所述保护模块,用于当第一控制器发生故障时,根据所述标记确定所述缓存保护区中包括所述多个文件操作信息;通过掉电保护程序将所述多个文件操作信息保存在存储器的保护区。
结合第三方面,在第五种可能的实现方式中,还包括发送模块;
所述发送模块,用于将所述多个文件操作信息发送给第二控制器,使得所述第二控制器根据所述多个文件操作信息获得所述文件处理请求对应的数据信息,并将所述数据信息写入所述第二控制器的第二写缓存。
第四方面,本发明实施例提供了一种存储设备,所述存储设备包括第一控制器、第二控制器和存储器,所述第二控制器包括写缓存;
所述第一控制器,用于接收文件处理请求,将所述文件处理请求拆分成多个文件操作,分别对每个文件操作进行文件处理生成多个文件操作信息;将所述多个文件操作信息发送给所述第二控制器;
所述第二控制器,用于根据所述文件操作信息获得数据信息,将所述数据信息写入写缓存,以供第一控制器发生故障时,主机访问所述数据信息或者对所述存储器执行与所述文件处理请求相应的操作。
结合第四方面,在第一种可能的实现方式中,所述第一控制器,具体用于向所述第二控制器发送第一镜像消息,所述第一镜像消息包括所述多个文件操作信息。
结合第四方面,在第二种可能的实现方式中,所述第一控制器,具体用于向所述第二控制器发送多个第二镜像消息,每个所述第二镜像消息包括所述多个文件操作信息中的一个文件操作信息。
结合第四方面,在第三种可能的实现方式中,所述第二控制器,还用于将所述文件操作信息全部写入所述缓存保护区。
结合第四方面的第三种可能的实现方式,在第四种可能的实现方式中,所述第二控制器,具体用于为每个文件操作信息在所述缓存保护区中申请存储空间;将所述每个文件操作信息保存在所述申请的存储空间中;确定所述多个文件操作信息均已保存在对应的存储空间中;将所述保存有所述多个文件操作信息的存储空间中的数据,保存在所述缓存保护区对应的数据结构中。
结合第四方面的第三种可能的实现方式,在第五种可能的实现方式中,所述第二控制器,具体用于依次将每个文件操作信息发送给所述缓存保护区;确定所述多个文件操作信息均已发送给所述缓存保护区;设置所述缓存保护区中接收的所述多个文件操作信息对应的标记,所述标记用于表示所述多个文件操作信息已全部写入所述缓存保护区。
第五方面,本发明实施例提供了一种存储设备,包括:
处理器、存储器、系统总线和通信接口,所述处理器、所述存储器和所述通信接口之间通过所述系统总线连接并完成相互间的通信;
所述通信接口,用于与存储设备通信;
所述存储器,用于存储计算机执行指令;
所述处理器,用于运行所述计算机执行指令,执行如第一方面所述的数据存储方法。
在本发明实施例中,将文件处理请求对应的多个文件操作信息全部写入缓存保护区,由于缓存保护区具有数据保护功能,当第一控制器发生故障后又上电时,可以在所述缓存保护区中恢复所述多个文件操作信息,并且根据所述多个文件操作信息获得数据信息,写入第一写缓存,由于所述多个文件操作信息是全部写入缓存保护区的,所以当第一控制器发生故障后又上电时,在所述缓存保护区中恢复出的文件操作信息也是完整的,因此根据所述多个文件操作信息得到的数据信息具有原子性,可以直接供主机访问。在现有技术中,由于第一写缓存中的数据信息不具有原子性,存储器中的数据才具有原子性,因此现有技术中的第一写缓存中的数据信息不能直接供主机访问,必须从存储器中读取出相应的数据才能提供给主机,本发明实施例与现有技术相比提高了主机访问数据的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据存储方法的应用网络架构示意图;
图2为本发明实施例提供的一种数据存储方法的流程图;
图3为本发明实施例提供的一种数据结构示意图;
图4为本发明实施例提供的另一种数据存储方法的应用网络架构示意图;
图5为本发明实施例提供的另一种数据存储方法的流程图;
图6为本发明实施例提供的一种数据存储装置的结构示意图;
图7为本发明实施例提供的一种存储设备的结构示意图;
图8为本发明实施例提供的另一种存储设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例的系统架构
本发明实施例提供的数据存储方法可以在存储系统中实现。图1为本发明实施例提供的存储系统的架构示意图,如图1所示,所述存储系统包括至少一个应用服务器11(图示为3个)、至少一个控制器22和存储器33。
所述应用服务器11(又称主机)可以包括当前技术已知的任何计算设备,如服务器、台式计算机等等。
所述控制器22与所述应用服务器11之间通过NFS/CIFS协议进行数据传输,它可以是当前技术已知的任何计算设备,如服务器、台式计算机等等。控制器22可以包括处理器和缓存(图中未示出)。其中,处理器用于具体执行文件处理请求的各种操作,例如创建文件操作、打开文件操作、读文件操作、写文件操作等等;缓存是存在于控制器内的存储器,容量较硬盘小但速度比硬盘高得多,例如,可以是随机存储器(random access memory,RAM),主要用于存储短时间使用的程序或数据。
在控制器22内部,还安装有文件系统以及其他应用程序,例如掉电保护模块、镜像处理模块等,其中掉电保护模块用于在系统掉电时利用BBU或者其他备用电池将缓存中的数据写入存储器,镜像处理模块用于对其他控制器22通过镜像通道发送的数据进行处理等。
在本发明实施例中,缓存可以包括临时缓存和写缓存。其中,临时缓存用于临时保存文件处理请求对应的数据以及元数据等,它不具有数据保护功能;而写缓存用于保存将要写入存储器中的数据,具有数据保护功能。临时缓存不具有数据保护功能是指当系统故障或系统掉电时,临时缓存中保存的数据会全部丢失,系统重新上电也不能恢复。写缓存具有数据保护功能是指写缓存中的存储的数据不会因为系统故障或系统掉电等情况发生丢失。具体的,数据保护功能可以为掉电保护功能,掉电保护功能是指系统掉电之后,仍然可以通过备用电池(Battery Back-Up,BBU)供电或者其他供电方式,使得写缓存有足够的电量将其存储的数据写入存储器的磁盘保护区中,当系统恢复上电之后,可以将这些数据从存储器的磁盘保护区拷贝到写缓存中,因此保存在写缓存中的数据可以认为是可靠的,不会丢失的。
可选的,数据保护功能还可以是复位保缓存功能,复位保缓存功能是指对写缓存进行持续供电,当系统掉电时不对写缓存中的数据进行写入存储器的操作,当系统重新上电时,不对写缓存中的数据做初始化处理,因此写缓存中存储的数据仍然是系统掉电前存储的数据,同样的,对于具有这种功能的写缓存来说,保存在其中的数据也可以认为是可靠的,不会丢失的。
可选的,数据保护功能还可以是其他一些保证写缓存中的数据不丢失的功能,在此不做限定。
在本发明实施例中,临时缓存和写缓存可以位于同一个物理实体中,也可以位于不同的物理实体,在此不作限定。当临时缓存和写缓存位于不同的物理实体时,临时缓存不具有数据保护功能,系统掉电时,临时缓存中保存的数据将会丢失且不能恢复,而写缓存具有数据保护功能;当临时缓存和写缓存位于同一个物理实体(例如内存条)时,可以由掉电保护模块决定对临时缓存中存储的数据不提供掉电保护,而对写缓存中存储的数据提供掉电保护。
此外,可以在写缓存中创建缓存保护区,缓存保护区也具有数据保护功能。当临时缓存中的数据需要写入写缓存时,可以先将所述数据或者根据所述数据得到的信息写入缓存保护区,在确定所述数据或者根据所述数据得到的信息已成功写入缓存保护区后,再将数据写入写缓存。由此,即使在数据写入写缓存之前或者数据尚未完全写入写缓存时系统发生故障,也可以通过缓存保护区中保存的数据或者信息恢复出数据。可选的,也可以在缓存中划分一块缓存空间作为缓存保护区,或者,将另外一个独立的缓存作为缓存保护区,在此不做限定。需要说明的是,在本发明实施例中,除非特别指明,写缓存是指不包括缓存保护区的缓存。
缓存保护区中保存数据的形式,可以和临时缓存、写缓存不相同。例如,在本发明实施例中,临时缓存和写缓存可以以数据页面(page)为单位保存数据的,一个数据页面的大小可以是4k或者8k或者16k,在此不作限定。以数据页面大小为4k为例,当数据的大小为8k时,需占用两个数据页面。而缓存保护区可以以控制链、链表或者树等数据结构的形式来保存数据,在此不做限定。因此可以理解的是,由于缓存保护区保存数据的形式与写缓存保存数据的形式不同,因此缓存保护区保存同样数据所占用的存储空间相对较小。
存储器33可以包括当前技术已知的存储设备,如硬盘驱动器(Hard Disk Drive,HDD)、固态存储器(Solid State Drive,SSD)、或直接存取存储器(Direct Access StorageDevice,DASD)等。
在本发明实施例中,控制器22和存储器33可以合称为存储设备。
除非特别指明,本发明实施例所称的系统均指存储系统,本发明实施例所称的存储器,均指非易失性存储器。
数据存储方法
下面介绍本发明实施例提供的数据存储方法,如图2所示,为本发明实施例提供的数据存储方法的流程图,所述方法应用于存储系统中,所述存储系统包括存储设备和主机,所述存储设备包括第一控制器和存储器,所述第一控制器包括临时缓存、缓存保护区和第一写缓存,所述方法包括:
步骤21:第一控制器接收文件处理请求。
在本发明实施例中,文件处理请求是由应用服务器(又称主机)发送的,其操作类型可以是写文件请求、修改文件请求、创建文件请求、删除文件请求等会对存储器中保存的数据进行修改的文件处理请求,在此不作限定。不同的文件处理请求中可以包含不同的参数,以写文件请求为例,所述写文件请求中包括文件ID、文件的偏移量(offset)、文件长度(length)和待写入数据等参数。
步骤22:将所述文件处理请求拆分成多个文件操作,分别对每个文件操作进行处理,生成多个文件操作信息,写入临时缓存。
对于具有文件系统的存储设备而言,在处理文件处理请求时候文件系统往往需要根据所述文件处理请求的操作类型将其拆分成多个文件操作,分别进行处理。例如,对于一个写文件请求,需要将其拆分成一个修改数据的文件操作,以及一个修改元数据的文件操作;再如,对于一个创建文件请求,需要将其拆分成一个修改父目录的文件操作,以及一个创建文件的文件操作;又如,对于一个文件重命名请求,需要将其拆分成一个修改源目录的文件操作,以及一个修改目标目录的文件操作。
可选的,文件系统在根据所述文件处理请求的操作类型将其拆分成多个文件操作,分别进行处理时可以记录所述文件处理请求对应的所有的数据和元数据的个数。
可以理解的是,第一控制器在处理一个文件处理请求时,实际上是依次对文件处理请求拆分出的每个文件操作进行语义转换或者其他文件处理,每处理完一个文件操作就将该文件操作对应的数据及元数据写入临时缓存,因此当最后一个文件操作处理完毕并将其对应的数据及元数据写入临时缓存时,所述文件处理请求对应的所有的数据及元数据也全部写入了临时缓存。所以,本发明实施例中保存在临时缓存中的数据及元数据是所述文件处理请求对应的所有的数据及元数据。同样的,本发明实施例中的多个文件操作信息是所述文件处理请求对应的所有的数据及元数据。
对于不同的文件处理请求,其生成的文件操作信息也不同。当所述文件处理请求是写文件请求时,其文件操作信息可以是所述写文件请求中携带的待写入数据以及元数据等;当所述文件处理请求是修改文件请求时,其文件操作信息可以是所述修改文件请求中携带的待写入数据及其元数据等;当所述文件处理请求是创建文件请求时,其文件操作信息可以是目录信息及其元数据等;当所述文件处理请求是删除文件请求时,其文件操作信息可以是要释放文件空间的特殊页面数据和删除后的对应的目录的数据及其元数据等。
下面的步骤将以写文件请求为例来进行描述,对于写文件请求而言,其生成的文件操作信息可以包括文件ID、文件的偏移量(offset)、文件长度(length)、写入的时间和待写入数据等。
需要说明的是,在本发明实施例中,临时缓存仅用于临时存取数据,存储在临时缓存中的数据是离散的,没有采用特定的数据结构对这些数据进行管理,临时缓存中保存的数据也不能直接提供给应用服务器。
步骤23:将所述多个文件操作信息写入所述缓存保护区。
具体的,第一控制器可以将文件ID、offset、length、写入的时间、待写入数据等文件操作信息写入所述缓存保护区。所述缓存保护区具有数据保护功能,当文件操作信息成功写入缓存保护区后,所述文件操作信息不会因为系统故障等原因丢失。
一种可选的实施方式:所述将所述多个文件操作信息写入所述缓存保护区是指将所述多个文件操作信息全部写入所述缓存保护区,也就是说所述文件处理请求对应的所有的数据及元数据均要写入所述缓存保护区。
举例来说,所述缓存保护区可以采用一定的数据结构来保存数据。如图3所示,所述缓存保护区中的数据可以采用控制链的形式来进行管理,所述控制链中包含多个控制头,每个控制头对应一个文件处理请求,每个控制头下挂载有多个位置(slot),每个slot用于存储该文件处理请求对应的每个数据或者每个元数据。
具体的,可以遍历所述文件操作信息,首先为第一个数据(例如,文件ID)在控制链中申请一个slot,申请成功后将第一个数据写入所述slot;再为第二个数据(例如,offset)申请一个slot,申请成功后将第二个数据写入所述slot;依此类推,直到将所述文件操作信息中的最后一个数据写入slot,然后可以将所述文件处理请求对应的控制头添加到控制链中。
当所述文件处理请求对应的控制头添加到控制链中时,则说明所述文件处理请求对应的所有的数据及元数据已成功写入缓存保护区。
再如,所述缓存保护区中的数据可以采用二叉树的形式来进行管理,所述二叉树中包含多个根节点,每个根节点对应一个文件处理请求,每个根节点下挂载有多个叶子节点,每个叶子节点用于存储该文件处理请求对应的每个数据或者每个元数据。
具体的,可以遍历所述文件操作信息,首先为第一个数据(例如,文件ID)在二叉树中申请一个叶子节点,申请成功后将第一个数据写入所述叶子节点;再为第二个数据(例如,offset)申请一个叶子节点,申请成功后将第二个数据写入所述叶子节点;依此类推,直到将所述文件操作信息中的最后一个数据写入叶子节点,然后可以将所述文件处理请求对应的根节点添加到二叉树中。
当所述文件处理请求对应的根节点添加到二叉树中时,则说明所述文件处理请求对应的所有的数据及元数据已成功写入缓存保护区。
需要说明的是,控制链或二叉树缓存保护区保存数据的数据结构的一种方式,除此之外,还可以采用B树、B+树、红黑树等数据结构来进行保存,在此不作限定。
或者,所述缓存保护区不需要以控制链或者二叉树等数据结构来保存数据。第一控制器可以遍历所述文件操作信息,首先为第一个数据(例如,文件ID)在所述缓存保护区中申请存储空间,申请成功后将第一个数据写入所述缓存保护区的存储空间中,再为第二个数据(例如,offset)在所述缓存保护区中申请存储空间,申请成功后将第二个数据写入所述缓存保护区的存储空间中,依此类推,直到将所述文件操作信息中的最后一个数据写入所述缓存保护区的存储空间中。然后,可以在所述缓存保护区保存的文件操作信息中设置一个标记(例如,true),以说明所述文件处理请求对应的所有的数据及元数据已成功写入缓存保护区。可选的,当所述文件处理请求对应的所有的数据及元数据尚未全部写入缓存保护区时,也可以设置另一个标记(例如,false)。
或者,文件系统在将所述文件处理请求拆分成多个文件操作,分别进行处理时,可以统计并记录所述文件操作信息中包含的所有的数据和元数据的个数,并且在第一控制器中设置一个计数器或者其他类似功能的软件模块,所述计数器的初始值为0。依次将所述文件操作信息中包含的每个数据写入申请到的缓存保护区的存储空间中,每次成功写入一个数据,计数器的值加1,当计数器的值等于记录的所述文件操作信息中包含的所有的数据和元数据的个数时,则说明所述文件处理请求对应的所有的数据及元数据已成功写入缓存保护区。
另一种可选的实施方式:所述将所述多个文件操作信息写入所述缓存保护区是指执行将所述多个文件操作信息写入所述缓存保护区的动作,也就是说不用考虑所述文件处理请求对应的所有的数据及元数据是否全部写入所述缓存保护区。
在本发明另一个实施例中,若所述多个文件操作信息尚未全部写入所述缓存保护区时,第一控制器发生故障,则视作本次文件处理请求处理失败。
步骤24:当第一控制器发生故障时,通过掉电保护程序将缓存保护区中保存的文件操作信息拷贝到存储器的保护区。
由前面的描述可知,由于缓存保护区具有数据保护功能,当第一控制器发生故障时,可以通过掉电保护程序将缓存保护区中保存的文件操作信息拷贝到存储器的保护区,因此缓存保护区中保存的文件操作信息不会因为第一控制器发生故障而丢失。其中,存储器的保护区是指存储器中的专门用于保存通过掉电保护程序写入的数据的存储空间。可选的,可以通过缓存保护区对应的数据结构(例如,控制链)查找到所述文件操作信息,也可以通过包含true的标记,查找到所述文件操作信息,在此不做限定。
由于步骤23有两种不同的实施方式,因此步骤24在具体执行时也有所不同。
例如,当步骤23执行的是第一种实施方式(将所述多个文件操作信息全部写入所述缓存保护区)时,则可以不对缓存保护区中保存的文件操作信息进行其他处理,执行步骤242:将缓存保护区中保存的文件操作信息拷贝到存储器的保护区。
当步骤23执行的是第二种实施方式(不考虑所述文件处理请求对应的所有的数据及元数据是否全部写入所述缓存保护区)时,步骤242执行之前,还可以包括:
步骤241:判断所述文件操作信息是否包括所述文件处理请求对应的所有的数据和元数据。
当所述文件操作信息包括所述文件处理请求对应的所有的数据和元数据时,则执行步骤242:通过掉电保护程序将缓存保护区中保存的文件操作信息拷贝到存储器的保护区。
当所述文件操作信息没有包括所述文件处理请求对应的所有的数据和元数据时,则不对缓存保护区中保存的文件操作信息进行掉电保护处理。
需要说明的是,步骤24在本发明实施例中是一个可选的步骤。因为,如前面所述,数据保护功能除了掉电保护功能之外还可以是复位保内存功能。当缓存保护区具有复位保内存功能时,即使第一控制器发生故障,缓存保护区也可以持续供电,待第一控制器重新上电时,可以不对缓存保护区中的数据做初始化处理,因此其中保存的数据也不会丢失。
具体的,判断所述文件操作信息是否包括所述文件处理请求对应的所有的数据和元数据可以是:
统计缓存保护区中的文件操作信息包含的数据的个数,将其与文件系统记录的所述文件处理请求对应的所有的数据和元数据的个数进行对比,当缓存保护区中的文件操作信息包含的数据的个数等于文件系统记录的个数时,则说明所述文件操作信息包括所述文件处理请求对应的所有的数据和元数据。
或者,查看所述缓存保护区对应的数据结构(例如,控制链)中是否包含所述文件处理请求对应的数据结构(例如,控制头),当所述控制链包含所述控制头时,则说明所述文件处理请求对应的数据结构中保存的多个所述文件操作信息包含了所述文件处理请求对应的所有的数据和元数据。
或者,查看所述缓存保护区保存的文件操作信息中是否包括一个标记(例如,true),当所述文件操作信息中包含true的标记时,则说明所述文件操作信息包括所述文件处理请求对应的所有的数据和元数据。
此外,在本发明另一种实施方式中,当执行步骤23时不考虑所述文件处理请求对应的所有的数据及元数据是否全部写入所述缓存保护区,也可以不对文件操作信息是否包括所述文件处理请求对应的所有的数据和元数据进行判断,直接执行步骤242:通过掉电保护程序将缓存保护区中保存的文件操作信息拷贝到存储器的保护区。
需要说明的是,在本发明的一个实施例中,写入缓存保护区的所述多个文件操作信息可以是所述文件处理请求对应的所有的数据和元数据;在本发明另一个实施例中,写入缓存保护区的所述多个文件操作信息可以是所述文件处理请求对应的所有的数据和元数据保存在临时缓存中的地址,当第一控制器发生故障,需要通过掉电保护程序对缓存保护区中的数据进行掉电保护时,可以首先通过所述文件处理请求对应的所有的数据和元数据保存在临时缓存中的地址,获得所述文件处理请求对应的所有的数据和元数据,再将所述文件处理请求对应的所有的数据和元数据拷贝至存储器的保护区。
步骤25:当第一控制器发生故障后又上电时,在所述缓存保护区中恢复所述多个文件操作信息。
当所述缓存保护区具有掉电保护功能时,可以通过掉电保护程序将存储器的保护区保存的文件操作信息拷贝至缓存保护区;当所述缓存保护区具有复位保内存功能时,不对缓存保护区中的数据做初始化处理即可。
可选的,当步骤23执行的是第一种实施方式(将所述多个文件操作信息全部写入所述缓存保护区)时,则可以执行步骤252:将存储器的保护区保存的文件操作信息拷贝至缓存保护区。
可选的,当步骤23执行的是第二种实施方式(不考虑所述文件处理请求对应的所有的数据及元数据是否全部写入所述缓存保护区),并且步骤24经判断后得知所述文件操作信息包括所述文件处理请求对应的所有的数据和元数据后,再将缓存保护区中保存的文件操作信息拷贝到存储器的保护区时,则可以执行步骤252:将存储器的保护区保存的文件操作信息拷贝至缓存保护区。
可选的,当步骤23执行的是第二种实施方式(不考虑所述文件处理请求对应的所有的数据及元数据是否全部写入所述缓存保护区),并且步骤24没有判断所述文件操作信息是否包括所述文件处理请求对应的所有的数据和元数据,而是直接将缓存保护区中保存的文件操作信息拷贝到存储器的保护区时,则步骤25可以包括:
步骤251:判断存储器的保护区保存的文件操作信息是否包括所述文件处理请求对应的所有的数据和元数据,当判断出所述文件操作信息包括所述文件处理请求对应的所有的数据和元数据时,再执行步骤252:通过掉电保护程序将存储器的保护区保存的文件操作信息拷贝到缓存保护区。
具体的,判断所述文件操作信息是否包括所述文件处理请求对应的所有的数据和元数据可以是:
统计存储器的保护区中保存的文件操作信息包含的数据的个数,将其与文件系统记录的所述文件处理请求对应的所有的数据和元数据的个数进行对比,当存储器的保护区中的文件操作信息包含的数据的个数等于文件系统记录的个数时,则说明所述文件操作信息包括所述文件处理请求对应的所有的数据和元数据。
或者,查看所述存储器的保护区保存的文件操作信息中是否包括一个标记(例如,true),当所述文件操作信息中包含true的标记时,则说明所述文件操作信息包括所述文件处理请求对应的所有的数据和元数据。
步骤26:根据所述多个文件操作信息获得数据信息,并将所述数据信息写入所述第一写缓存,以供所述主机或者所述存储器访问所述数据信息。
具体的,可以根据缓存保护区中保存的所述多个文件操作信息获得数据信息,所述数据信息可以是所述文件处理请求对应的所有的数据和元数据,也可以是所述所有的数据和元数据保存在缓存保护区的地址。在获得所述数据信息后,可以将所述数据信息写入第一写缓存。
需要说明的是,当数据信息是所述文件处理请求对应的所有的数据和元数据时,所述第一写缓存保存所述文件处理请求对应的所有的数据和元数据的形式可以和缓存保护区保存的所述文件处理请求对应的所有的数据和元数据的形式不同。例如,第一写缓存可以以页的形式来保存数据,二缓存保护区可以以控制链等数据结构的形式来保存数据。
由前面的描述可知,当第一控制器发生故障后又上电时,在所述缓存保护区中恢复所述多个文件操作信息是指所述文件处理请求对应的所有的数据和元数据,因此根据所述多个文件操作信息获得的,并写入第一写缓存的数据信息也是所述文件处理请求对应的所有的数据和元数据,或者所有的数据和元数据保存在缓存保护区中的地址。也就是说,第一写缓存中写入的所述文件处理请求对应的数据是满足原子性要求的数据。因此,可以供主机或者存储器访问所述数据信息。
具体的,主机访问所述数据信息是指,主机向第一控制器发送文件访问请求,所述文件访问请求用于访问所述文件处理请求对应的数据。例如,当所述文件处理请求是写文件请求时,所述文件访问请求可以是要求访问所述写文件请求对应的待写入数据,第一控制器接收所述文件访问请求之后,就可以将所述第一写缓存中存储的待写入数据发送给主机。
具体的,存储器访问所述数据信息是指将第一写缓存中存储的所述文件处理请求对应的所有的数据和元数据写入存储器。由于第一写缓存的容量比硬盘小,所以当第一写缓存中存储的数据达到一定阈值时,需要将其存储的数据写入存储器。
可选的,在根据所述文件操作信息获得数据信息之后,可以删除所述缓存保护区中保存的所述多个文件操作信息。
在本发明实施例中,将文件处理请求对应的多个文件操作信息全部写入缓存保护区,由于缓存保护区具有数据保护功能,当第一控制器发生故障后又上电时,可以在所述缓存保护区中恢复所述多个文件操作信息,并且根据所述多个文件操作信息获得数据信息,写入第一写缓存,由于所述多个文件操作信息是全部写入缓存保护区的,所以当第一控制器发生故障后又上电时,在所述缓存保护区中恢复出的文件操作信息也是完整的,因此根据所述多个文件操作信息得到的数据信息具有原子性,可以直接供主机或者存储器访问。在现有技术中,由于第一写缓存中的数据信息不具有原子性,存储器中的数据才具有原子性,因此现有技术中的第一写缓存中的数据信息不能直接供主机访问,必须从存储器中读取出相应的数据才能提供给主机,本发明实施例与现有技术相比提高了主机访问数据的效率。
在上述实施例中,第一控制器在执行步骤26之后,还可以根据第一写缓存中的数据信息,获得所述文件处理请求对应的所有的数据和元数据,将所述数据和元数据写入存储器。由于第一写缓存的容量有限,通常情况下当第一写缓存中的数据达到一定阈值时,可以将其写入存储器中。
可选的,在将所述文件处理请求对应的所有的数据和元数据,将所述数据和元数据写入存储器时,可以保存未写入存储器信息,用于指示当前有哪些数据尚未写入存储器。若在将所述数据和元数据写入存储器的过程中第一控制器发生故障,可以利用掉电保护程序将所述未写入存储器信息写入存储器的保护区,待重新上电时,可以根据所述未写入存储器信息获得尚未写入存储器的数据,继续将所述尚未写入存储器的数据写入存储器。因此,可以避免将已经写入存储器的数据再次重新写入,提高了写入数据的效率。
可选的,在所述文件处理请求对应的所有的数据和元数据全部写入所述存储器之后,可以删除所述未写入存储器信息。
另外,本发明实施例还可以应用在包含两个控制器的存储系统中,如图4所示,所述存储系统包括至少一个应用服务器11(图示为3个)、两个控制器22和存储器33。
所述应用服务器11、控制器22和存储器33的结构和功能和上述实施例描述的类似,这里不再赘述。
不同的是,本发明实施例可以包含两个控制器22,所述两个控制器22具有同样的物理结构和功能,均可以接收应用服务器11发送的文件处理请求,以及访问存储器33中存储的数据。并且,两个控制器22之间可以通信,例如可以通过镜像通道或者其他方式传输数据。
为了描述方便,将两个控制器22分为第一控制器和第二控制器,其中第一控制器包含的写缓存称为第一写缓存,第二控制器包含的写缓存称为第二写缓存。
第二写缓存的硬件结构和第一写缓存的硬件结构类似,当第一控制器是主控制器,第二控制器是从控制器时,第二写缓存的属性为mirror,用于接收第一控制器发送的数据,此时第二写缓存中的数据不提供给主机,也不写入存储器。当第二控制器是主控制器,而第一控制器是从控制器时,第二写缓存的属性为local,此时第二写缓存中的数据可以提供给主机,也可以写入存储器。
可选的,本发明实施例还可以包括:
第一控制器向第二控制器发送所述多个文件操作信息。
可选的,第一控制器可以在步骤22之后将所述多个文件操作信息发送给第二控制器,所述多个文件操作信息可以是所述文件处理请求对应的所有的数据和元数据。具体的,第一控制器可以向第二控制器发送一条镜像消息,所述镜像消息包括所述多个文件操作信息;或者,第一控制器在将所述文件处理请求拆分成多个文件操作,分别对每个文件操作进行处理时,可以在每次处理完一个文件操作并生成相应的数据后,向第二控制器发送一条镜像消息,所述镜像消息包括一个文件操作对应的数据,当第一控制器向第二控制器发送完最后一条镜像消息后,可以再向第二控制器发送一条确认消息,以告知第二控制器所述多个文件操作信息已发送完毕。
可选的,第一控制器可以在步骤23之后,将所述多个文件操作信息发送给第二控制器。其发送方式可以是:向第二控制器发送一条镜像消息,所述镜像消息包括所述多个文件操作信息;或者,向第二控制器发送多条镜像消息,每条镜像消息包括一个文件操作对应的数据,当第一控制器向第二控制器发送完最后一条镜像消息后,可以再向第二控制器发送一条确认消息,以告知第二控制器所述多个文件操作信息已发送完毕。
可选的,第一控制器可以在步骤24之后,将所述多个文件操作信息发送给第二控制器。其具体的发送方式和上面描述的类似,这里不再赘述。
第二控制器在接收所述多个文件操作信息之后,可以先将所述多个文件操作信息写入缓存保护区,待所述多个文件操作信息成功写入缓存保护区之后,再将数据信息写入第二写缓存。数据信息是指所述文件处理请求对应的所有的数据和元数据,或者所述文件处理请求对应的所有的数据和元数据保存在缓存保护区中的地址。需要说明的是,这里的缓存保护区是指第二控制器包含的缓存保护区。
因此,第二写缓存中保存的数据信息与第一写缓存中保存的数据信息一致。当第一控制器发生故障时,第二控制器将第二写缓存的属性修改为local,就可以接替第一控制器继续工作。例如,根据第二写缓存中的数据信息,对存储器进行所述文件处理请求对应的操作,或者将第二写缓存中的数据信息提供给主机。
在现有技术中,当第一控制器发生故障时,第二控制器需要先从存储器中读取日志信息,根据日志信息获得所述数据信息,然后提供给主机。而本发明实施例在第一控制发生故障时,第二控制器可以直接将其第二写缓存中的数据信息提供给主机。由此可见,本发明实施例提高了主机访问数据的效率。
下面详细讨论本发明实施例的另一种数据存储方法,所述方法应用于存储系统中,所述存储系统包括存储设备和主机,所述存储设备包括第一控制器、第二控制器和存储器,所述第二控制器包括写缓存和缓存保护区,所述写缓存和所述缓存保护区均具有数据保护功能。如图5所示,所述方法包括:
步骤51:第一控制器接收文件处理请求,将所述文件处理请求拆分成多个文件操作,分别对每个文件操作进行文件处理生成多个文件操作信息。
文件处理请求是由应用服务器(又称主机)发送的,其操作类型可以是写文件请求、修改文件请求、创建文件请求、删除文件请求等会对存储器中保存的数据进行修改的文件处理请求,在此不作限定。不同的文件处理请求中可以包含不同的参数,以写文件请求为例,所述写文件请求中包括文件ID、文件的偏移量(offset)、文件长度(length)和待写入数据等参数。
对于具有文件系统的存储设备而言,在处理文件处理请求时候文件系统往往需要根据所述文件处理请求的操作类型将其拆分成多个文件操作,分别进行处理。例如,对于一个写文件请求,需要将其拆分成一个修改数据的文件操作,以及一个修改元数据的文件操作;再如,对于一个创建文件请求,需要将其拆分成一个修改父目录的文件操作,以及一个创建文件的文件操作;又如,对于一个文件重命名请求,需要将其拆分成一个修改源目录的文件操作,以及一个修改目标目录的文件操作。
可选的,文件系统在根据所述文件处理请求的操作类型将其拆分成多个文件操作,分别进行处理时可以记录所述文件处理请求对应的所有的数据和元数据的个数。
可以理解的是,第一控制器在处理一个文件处理请求时,实际上是依次对文件处理请求拆分出的每个文件操作进行语义转换或者其他文件处理,每处理完一个文件操作就将该文件操作对应的数据及元数据写入临时缓存,因此当最后一个文件操作处理完毕并将其对应的数据及元数据写入临时缓存时,所述文件处理请求对应的所有的数据及元数据也全部写入了临时缓存。所以,本发明实施例中保存在临时缓存中的数据及元数据是所述文件处理请求对应的所有的数据及元数据。同样的,本发明实施例中的多个文件操作信息是所述文件处理请求对应的所有的数据及元数据。
对于不同的文件处理请求,其生成的文件操作信息也不同。当所述文件处理请求是写文件请求时,其文件操作信息可以是所述写文件请求中携带的待写入数据以及元数据等;当所述文件处理请求是修改文件请求时,其文件操作信息可以是所述修改文件请求中携带的待写入数据及其元数据等;当所述文件处理请求是创建文件请求时,其文件操作信息可以是目录信息及其元数据等;当所述文件处理请求是删除文件请求时,其文件操作信息可以是要释放文件空间的特殊页面数据和删除后的对应的目录的数据及其元数据等。
下面的步骤将以写文件请求为例来进行描述,对于写文件请求而言,其生成的文件操作信息可以包括文件ID、文件的偏移量(offset)、文件长度(length)、写入的时间和待写入数据等。
步骤52:将所述多个文件操作信息发送给所述第二控制器。
可选的,第一控制器可以向第二控制器发送一条镜像消息,所述镜像消息包括所述多个文件操作信息;或者,第一控制器在将所述文件处理请求拆分成多个文件操作,分别对每个文件操作进行处理时,可以在每次处理完一个文件操作并生成相应的数据后,向第二控制器发送一条镜像消息,所述镜像消息包括一个文件操作对应的数据,当第一控制器向第二控制器发送完最后一条镜像消息后,可以再向第二控制器发送一条确认消息,以告知第二控制器所述多个文件操作信息已发送完毕。
步骤53:第二控制器将所述文件操作信息全部写入所述缓存保护区。
具体的,第二控制器可以将文件ID、offset、length、写入的时间、待写入数据等文件操作信息写入所述缓存保护区。所述缓存保护区具有数据保护功能,当文件操作信息成功写入缓存保护区后,所述文件操作信息不会因为系统故障等原因丢失。
需要说明的是所述将所述多个文件操作信息写入所述缓存保护区是指将所述多个文件操作信息全部写入所述缓存保护区,也就是说所述文件处理请求对应的所有的数据及元数据均要写入所述缓存保护区。
举例来说,所述缓存保护区可以采用一定的数据结构来保存数据。如图3所示,所述缓存保护区中的数据可以采用控制链的形式来进行管理,所述控制链中包含多个控制头,每个控制头对应一个文件处理请求,每个控制头下挂载有多个位置(slot),每个slot用于存储该文件处理请求对应的每个数据或者每个元数据。
具体的,可以遍历所述文件操作信息,首先为第一个数据(例如,文件ID)在控制链中申请一个slot,申请成功后将第一个数据写入所述slot;再为第二个数据(例如,offset)申请一个slot,申请成功后将第二个数据写入所述slot;依此类推,直到将所述文件操作信息中的最后一个数据写入slot,然后可以将所述文件处理请求对应的控制头添加到控制链中。
当所述文件处理请求对应的控制头添加到控制链中时,则说明所述文件处理请求对应的所有的数据及元数据已成功写入缓存保护区。
再如,所述缓存保护区中的数据可以采用二叉树的形式来进行管理,所述二叉树中包含多个根节点,每个根节点对应一个文件处理请求,每个根节点下挂载有多个叶子节点,每个叶子节点用于存储该文件处理请求对应的每个数据或者每个元数据。
具体的,可以遍历所述文件操作信息,首先为第一个数据(例如,文件ID)在二叉树中申请一个叶子节点,申请成功后将第一个数据写入所述叶子节点;再为第二个数据(例如,offset)申请一个叶子节点,申请成功后将第二个数据写入所述叶子节点;依此类推,直到将所述文件操作信息中的最后一个数据写入叶子节点,然后可以将所述文件处理请求对应的根节点添加到二叉树中。
当所述文件处理请求对应的根节点添加到二叉树中时,则说明所述文件处理请求对应的所有的数据及元数据已成功写入缓存保护区。
需要说明的是,控制链或二叉树缓存保护区保存数据的数据结构的一种方式,除此之外,还可以采用B树、B+树、红黑树等数据结构来进行保存,在此不作限定。
或者,所述缓存保护区不需要以控制链或者二叉树等数据结构来保存数据。第一控制器可以遍历所述文件操作信息,首先为第一个数据(例如,文件ID)在所述缓存保护区中申请存储空间,申请成功后将第一个数据写入所述缓存保护区的存储空间中,再为第二个数据(例如,offset)在所述缓存保护区中申请存储空间,申请成功后将第二个数据写入所述缓存保护区的存储空间中,依此类推,直到将所述文件操作信息中的最后一个数据写入所述缓存保护区的存储空间中。然后,可以在所述缓存保护区保存的文件操作信息中设置一个标记(例如,true),以说明所述文件处理请求对应的所有的数据及元数据已成功写入缓存保护区。可选的,当所述文件处理请求对应的所有的数据及元数据尚未全部写入缓存保护区时,也可以设置另一个标记(例如,false)。
或者,文件系统在将所述文件处理请求拆分成多个文件操作,分别进行处理时,可以统计并记录所述文件操作信息中包含的所有的数据和元数据的个数,并且在第二控制器中设置一个计数器或者其他类似功能的软件模块,所述计数器的初始值为0。依次将所述文件操作信息中包含的每个数据写入申请到的缓存保护区的存储空间中,每次成功写入一个数据,计数器的值加1,当计数器的值等于记录的所述文件操作信息中包含的所有的数据和元数据的个数时,则说明所述文件处理请求对应的所有的数据及元数据已成功写入缓存保护区。
步骤54:第二控制器根据所述文件操作信息获得数据信息,将所述数据信息写入写缓存。
具体的,所述数据信息可以是所述文件处理请求对应的所有的数据和元数据,也可以是所述文件处理请求对应的所有的数据和元数据保存在所述缓存保护区中的地址。
当第一控制器发生故障时,第二控制器可以将写缓存中保存的数据信息提供给主机,或者对存储器进行所述文件处理请求对应的操作,例如文件创建、文件删除、写文件等操作。
需要说明的是,步骤53是一个可选的步骤,用于当第二控制器在将数据信息写入写缓存发生故障时,也可以根据缓存保护区中保存的多个文件操作信息,恢复出数据信息,并写入写缓存。
相应的,本发明实施例还可以包括:
当第二控制器发生故障时,根据所述缓存保护区对应的数据结构确定所述缓存保护区中包括所述多个文件操作信息;通过掉电保护程序将所述多个文件操作信息保存在所述存储器的保护区。
或者,当第二控制器发生故障时,根据所述标记确定所述缓存保护区中包括所述多个文件操作信息;通过掉电保护程序将所述多个文件操作信息保存在所述存储器的保护区。
具体的实施方式可参见上一个实施例的步骤23-步骤26,这里不再赘述。
可选的,本发明实施例还可以包括:第一控制器将所述多个文件操作信息写入第一控制器的缓存保护区,当第一控制器发生故障又上电时,可以在第一控制器的缓存保护区中恢复出所述多个文件操作信息,根据所述文件操作信息得到数据信息,并将所述数据信息写入第一控制器的写缓存。具体的实施方式可参见上一个实施例的步骤23-步骤26,这里不再赘述。
在现有技术中,数据的原子性是在存储器中保证的,写缓存中的数据不能直接提供给主机,因此当第一控制器发生故障时,第二控制器需要从存储器中读取出相应的日志信息,根据日志信息在写缓存中恢复出所述数据信息候才能提供给主机,而在本发明实施例中,由于第一控制器在故障发生之前将所述多个文件操作信息发送给了第二控制器,第二控制器根据所述多个文件操作信息获得了数据信息,并写入写缓存,因此当第一控制器发生故障时,第二控制器可以直接将写缓存中的数据提供给主机,或者对存储器进行所述文件处理请求对应的操作。
本发明实施例的装置
本发明实施例提供一种数据存储的装置,如图6所示,包括:
文件处理模块61,用于接收文件处理请求,将所述文件处理请求拆分成多个文件操作,分别对每个文件操作进行文件处理生成多个文件操作信息;
写入模块62,用于将所述多个文件操作信息全部写入缓存保护区;
恢复模块63,用于当第一控制器发生故障后又上电时,在所述缓存保护区中恢复所述多个文件操作信息;
所述写入模块62,还用于根据所述多个文件操作信息获得数据信息,并将所述数据信息写入第一写缓存,以供所述主机访问所述数据信息。
可选的,所述写入模块62具体用于:
为每个文件操作信息在所述缓存保护区中申请存储空间;
将所述每个文件操作信息保存在所述申请的存储空间中;
确定所述多个文件操作信息均已保存在对应的存储空间中;
将所述保存有所述多个文件操作信息的存储空间中的数据,保存在所述缓存保护区对应的数据结构中。
可选的,所述写入模块62具体用于:
依次将每个文件操作信息发送给所述缓存保护区;
确定所述多个文件操作信息均已发送给所述缓存保护区;
将所述缓存保护区中接收的所述多个文件操作信息,标记为已完成数据,所述已完成数据用于指示所述多个文件操作信息已全部写入所述缓存保护区。
可选的,所述装置还可以包括:
保护模块64,用于当第一控制器发生故障时,根据所述缓存保护区对应的数据结构确定所述缓存保护区中包括所述多个文件操作信息;通过掉电保护程序将所述多个文件操作信息保存在存储器的保护区。
或者,保护模块64,用于当第一控制器发生故障时,根据所述标记确定所述缓存保护区中包括所述多个文件操作信息;通过掉电保护程序将所述多个文件操作信息保存在存储器的保护区。
可选的,所述装置还可以包括:
删除模块65,用于删除所述缓存保护区中保存的所述多个文件操作信息。
可选的,所述装置还可以包括:
发送模块66,用于将所述多个文件操作信息发送给第二控制器,使得所述第二控制器根据所述多个文件操作信息获得所述文件处理请求对应的数据信息,并将所述数据信息写入所述第二控制器的第二写缓存。
本发明实施例所提供的装置,可以设置于前面实施例所描述的第一控制器中,用于执行前面实施例所描述的数据存储方法,各个模块功能的详细描述可参见方法实施例中的描述,在此不再赘述。
如图7,为本发明实施例提供的存储设备,所述存储设备包括第一控制器71、第二控制器72和存储器,所述第二控制器包括写缓存;
所述第一控制器71,用于接收文件处理请求,将所述文件处理请求拆分成多个文件操作,分别对每个文件操作进行文件处理生成多个文件操作信息;将所述多个文件操作信息发送给所述第二控制器72;
可选的,第一控制器71,具体用于向所述第二控制器72发送第一镜像消息,所述第一镜像消息包括所述多个文件操作信息。
可选的,第一控制器72,具体用于向所述第二控制器72发送多个第二镜像消息,每个所述第二镜像消息包括所述多个文件操作信息中的一个文件操作信息。
所述第二控制器72,用于根据所述文件操作信息获得数据信息,将所述数据信息写入写缓存,以供第一控制器71发生故障时,主机访问所述数据信息或者对所述存储器执行与所述文件处理请求相应的操作。
可选的,所述第二控制器72,还用于将所述文件操作信息全部写入所述缓存保护区。
具体的,第二控制器72用于为每个文件操作信息在所述缓存保护区中申请存储空间;将所述每个文件操作信息保存在所述申请的存储空间中;确定所述多个文件操作信息均已保存在对应的存储空间中;将所述保存有所述多个文件操作信息的存储空间中的数据,保存在所述缓存保护区对应的数据结构中。
或者,第二控制器72用于依次将每个文件操作信息发送给所述缓存保护区;确定所述多个文件操作信息均已发送给所述缓存保护区;设置所述缓存保护区中接收的所述多个文件操作信息对应的标记,所述标记用于表示所述多个文件操作信息已全部写入所述缓存保护区。
可选的,第二控制器72还用于根据所述缓存保护区对应的数据结构确定所述缓存保护区中包括所述多个文件操作信息;通过掉电保护程序将所述多个文件操作信息保存在所述存储器的保护区。
可选的,第二控制器72还用于根据所述标记确定所述缓存保护区中包括所述多个文件操作信息;通过掉电保护程序将所述多个文件操作信息保存在所述存储器的保护区。
本发明实施例所提供的存储设备,可以设置于前面实施例所描述的包含至少两个控制器的存储设备中,用于执行前面实施例所描述的数据存储方法,各个控制器功能的详细描述可参见方法实施例中的描述,在此不再赘述。
如图8,为本发明实施例提供的存储设备,包括:
处理器101、存储器102、系统总线(简称总线)105和通信接口103。处理器101、存储器102和通信接口103之间通过系统总线105连接并完成相互间的通信。
处理器101可能为单核或多核中央处理单元,或者为特定集成电路,或者为被配置成实施本发明实施例的一个或多个集成电路。
存储器102可以为高速RAM存储器,也可以为非易失性存储器(non-volatilememory),例如至少一个硬盘存储器。
通信接口103用于与存储设备通信。
存储器102用于存储计算机执行指令1021。具体的,计算机执行指令1021中可以包括程序代码。
当计算机运行时,处理器101运行计算机执行指令1021,可以执行图2所述的方法流程。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个设备中,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,设备或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理子模块,即可以位于一个地方,或者也可以分布到多个网络子模块上。可以根据实际的需要选择其中的部分或者全部,模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (47)

1.一种数据存储方法,其特征在于,所述方法应用于存储系统中,所述存储系统包括存储设备和主机,所述存储设备包括第一控制器,所述第一控制器包括缓存保护区和第一写缓存,所述缓存保护区具有数据保护功能,所述方法包括:
第一控制器接收文件处理请求,将所述文件处理请求拆分成多个文件操作,分别对每个文件操作进行文件处理,生成所述文件处理请求对应的多个文件操作信息;
将所述文件处理请求对应的多个文件操作信息全部写入所述缓存保护区;
当第一控制器发生故障后又上电时,跳过对所述缓存保护区执行数据初始化的操作;
根据所述多个文件操作信息获得数据信息,并将所述数据信息写入所述第一写缓存,以供所述主机访问所述数据信息。
2.根据权利要求1所述的方法,其特征在于,所述将所述文件处理请求对应的多个文件操作信息全部写入所述缓存保护区包括:
为每个文件操作信息在所述缓存保护区中申请存储空间;
将所述每个文件操作信息保存在所述申请的存储空间中;
确定所述多个文件操作信息均已保存在对应的存储空间中;
将所述保存有所述多个文件操作信息的存储空间中的数据,保存在所述缓存保护区对应的数据结构中。
3.根据权利要求1所述的方法,其特征在于,所述将所述文件处理请求对应的多个文件操作信息全部写入所述缓存保护区包括:
依次将每个文件操作信息发送给所述缓存保护区;
确定所述多个文件操作信息均已发送给所述缓存保护区;
设置所述缓存保护区中接收的所述多个文件操作信息对应的标记,所述标记用于表示所述多个文件操作信息已全部写入所述缓存保护区。
4.根据权利要求2所述的方法,其特征在于,所述存储设备包括存储器,所述存储器包括保护区;
所述方法还包括:
当第一控制器发生故障时,根据所述缓存保护区对应的数据结构确定所述缓存保护区中包括所述多个文件操作信息;
通过掉电保护程序将所述多个文件操作信息保存在所述存储器的保护区。
5.根据权利要求3所述的方法,其特征在于,所述存储设备包括存储器,所述存储器包括保护区;
所述方法还包括:
当第一控制器发生故障时,根据所述标记确定所述缓存保护区中包括所述多个文件操作信息;
通过掉电保护程序将所述多个文件操作信息保存在所述存储器的保护区。
6.根据权利要求4或5所述的方法,其特征在于,所述在所述缓存保护区中恢复所述多个文件操作信息包括:
从所述存储器的保护区中获得所述多个文件操作信息;
将所述多个文件操作信息写入所述缓存保护区。
7.根据权利要求1所述的方法,其特征在于,在所述根据所述文件操作信息获得数据信息之后,还包括:删除所述缓存保护区中保存的所述多个文件操作信息。
8.根据权利要求1所述的方法,其特征在于,所述存储设备包括第二控制器,所述第二控制器包括第二写缓存;
所述方法还包括:第一控制器将所述多个文件操作信息发送给所述第二控制器,使得所述第二控制器根据所述多个文件操作信息获得所述文件处理请求对应的数据信息,并将所述数据信息写入所述第二写缓存。
9.根据权利要求8所述的方法,其特征在于,
所述第一控制器将所述多个文件操作信息发送给所述第二控制器包括:
所述第一控制器向所述第二控制器发送第一镜像消息,所述第一镜像消息包括所述多个文件操作信息。
10.根据权利要求8所述的方法,其特征在于,
所述第一控制器将所述多个文件操作信息发送给所述第二控制器包括:
所述第一控制器向所述第二控制器发送多个第二镜像消息,每个所述第二镜像消息包括所述多个文件操作信息中的一个文件操作信息。
11.根据权利要求1所述的方法,其特征在于,所述第一控制器还包括临时缓存;所述方法还包括:
在分别对每个文件操作进行文件处理,生成所述文件处理请求对应的多个文件操作信息之后,将所述文件处理请求对应的多个文件操作信息保存在所述临时缓存中;
所述将所述文件处理请求对应的多个文件操作信息全部写入所述缓存保护区包括:
当保存在所述临时缓存中的所述文件处理请求对应的多个文件操作信息是所述文件处理请求对应的所有的文件操作信息时,将所述临时缓存中保存的所述文件处理请求对应的多个文件操作信息全部写入所述缓存保护区。
12.一种数据存储方法,其特征在于,所述方法应用于存储系统中,所述存储系统包括存储设备和主机,所述存储设备包括第一控制器、第二控制器和存储器,所述第二控制器包括写缓存和缓存保护区,所述缓存保护区具有数据保护功能,所述方法包括:
所述第一控制器接收文件处理请求,将所述文件处理请求拆分成多个文件操作,分别对每个文件操作进行文件处理,生成所述文件处理请求对应的多个文件操作信息;将所述文件处理请求对应的多个文件操作信息发送给所述第二控制器;
所述第二控制器将所述文件处理请求对应的多个文件操作信息全部写入所述缓存保护区;当所述第二控制器发生故障又上电时,跳过对所述缓存保护区执行数据初始化的操作;根据所述缓存保护区中保存的所述多个文件操作信息获得数据信息,将所述数据信息写入写缓存,以供第一控制器发生故障时,主机访问所述数据信息或者第二控制器根据所述数据信息对所述存储器执行与所述文件处理请求相应的操作。
13.根据权利要求12所述的方法,其特征在于,所述将所述文件处理请求对应的多个文件操作信息发送给所述第二控制器包括:
所述第一控制器向所述第二控制器发送第一镜像消息,所述第一镜像消息包括所述多个文件操作信息。
14.根据权利要求12所述的方法,其特征在于,所述将所述文件处理请求对应的多个文件操作信息发送给所述第二控制器包括:
所述第一控制器向所述第二控制器发送多个第二镜像消息,每个所述第二镜像消息包括所述多个文件操作信息中的一个文件操作信息。
15.根据权利要求12所述的方法,其特征在于,所述第二控制器将所述文件处理请求对应的文件操作信息全部写入所述缓存保护区包括:
为每个文件操作信息在所述缓存保护区中申请存储空间;
将所述每个文件操作信息保存在所述申请的存储空间中;
确定所述多个文件操作信息均已保存在对应的存储空间中;
将所述保存有所述多个文件操作信息的存储空间中的数据,保存在所述缓存保护区对应的数据结构中。
16.根据权利要求12所述的方法,其特征在于,所述第二控制器将所述文件处理请求对应的文件操作信息全部写入所述缓存保护区包括:
依次将每个文件操作信息发送给所述缓存保护区;
确定所述多个文件操作信息均已发送给所述缓存保护区;
设置所述缓存保护区中接收的所述多个文件操作信息对应的标记,所述标记用于表示所述多个文件操作信息已全部写入所述缓存保护区。
17.根据权利要求15所述的方法,其特征在于,所述存储器包括保护区;所述方法还包括:
当所述第二控制器发生故障时,根据所述缓存保护区对应的数据结构确定所述缓存保护区中包括所述多个文件操作信息;
通过掉电保护程序将所述多个文件操作信息保存在所述存储器的保护区。
18.根据权利要求16所述的方法,其特征在于,所述存储器包括保护区;所述方法还包括:
当所述第二控制器发生故障时,根据所述标记确定所述缓存保护区中包括所述多个文件操作信息;
通过掉电保护程序将所述多个文件操作信息保存在所述存储器的保护区。
19.根据权利要求17或18所述的方法,其特征在于,所述在所述缓存保护区中恢复所述多个文件操作信息包括:
从所述存储器的保护区中获得所述多个文件操作信息;
将所述多个文件操作信息写入所述缓存保护区。
20.根据权利要求12所述的方法,其特征在于,所述第一控制器还包括临时缓存;所述方法还包括:
在分别对每个文件操作进行文件处理,生成所述文件处理请求对应的多个文件操作信息之后,所述第一控制器将所述文件处理请求对应的多个文件操作信息保存在所述临时缓存中;
所述将所述文件处理请求对应的多个文件操作信息发送给所述第二控制器包括:
当保存在所述临时缓存中的所述文件处理请求对应的多个文件操作信息是所述文件处理请求对应的所有的文件操作信息时,将所述临时缓存中保存的所述文件处理请求对应的多个文件操作信息发送给所述第二控制器。
21.一种数据存储的装置,其特征在于,所述装置包括:
文件处理模块,用于接收文件处理请求,将所述文件处理请求拆分成多个文件操作,分别对每个文件操作进行文件处理,生成所述文件处理请求对应的多个文件操作信息;
写入模块,用于将所述文件处理请求对应的多个文件操作信息全部写入缓存保护区;
恢复模块,用于当第一控制器发生故障后又上电时,跳过对所述缓存保护区执行数据初始化的操作;
所述写入模块,还用于根据所述多个文件操作信息获得数据信息,并将所述数据信息写入第一写缓存,以供主机访问所述数据信息。
22.根据权利要求21所述的装置,其特征在于,所述写入模块用于:
为每个文件操作信息在所述缓存保护区中申请存储空间;
将所述每个文件操作信息保存在所述申请的存储空间中;
确定所述多个文件操作信息均已保存在对应的存储空间中;
将所述保存有所述多个文件操作信息的存储空间中的数据,保存在所述缓存保护区对应的数据结构中。
23.根据权利要求21所述的装置,其特征在于,所述写入模块用于:
依次将每个文件操作信息发送给所述缓存保护区;
确定所述多个文件操作信息均已发送给所述缓存保护区;
设置所述缓存保护区中接收的所述多个文件操作信息对应的标记,所述标记用于表示所述多个文件操作信息已全部写入所述缓存保护区。
24.根据权利要求22所述的装置,其特征在于,还包括保护模块;
所述保护模块,用于当第一控制器发生故障时,根据所述缓存保护区对应的数据结构确定所述缓存保护区中包括所述多个文件操作信息;通过掉电保护程序将所述多个文件操作信息保存在存储器的保护区。
25.根据权利要求23所述的装置,其特征在于,还包括保护模块;
所述保护模块,用于当第一控制器发生故障时,根据所述标记确定所述缓存保护区中包括所述多个文件操作信息;通过掉电保护程序将所述多个文件操作信息保存在存储器的保护区。
26.根据权利要求22或23所述的装置,其特征在于,所述恢复模块具体用于当第一控制器发生故障后又上电时,从所述存储器的保护区中获得所述多个文件操作信息;将所述多个文件操作信息写入所述缓存保护区。
27.根据权利要求21所述的装置,其特征在于,还包括发送模块;
所述发送模块,用于将所述多个文件操作信息发送给第二控制器,使得所述第二控制器根据所述多个文件操作信息获得所述文件处理请求对应的数据信息,并将所述数据信息写入所述第二控制器的第二写缓存。
28.根据权利要求21所述的装置,其特征在于,所述装置位于所述第一控制器中。
29.一种存储设备,其特征在于,所述存储设备包括第一控制器、第二控制器和存储器,所述第二控制器包括写缓存和缓存保护区,所述缓存保护区具有数据保护功能;
所述第一控制器,用于接收文件处理请求,将所述文件处理请求拆分成多个文件操作,分别对每个文件操作进行文件处理,生成所述文件处理请求对应的多个文件操作信息;将所述文件处理请求对应的多个文件操作信息发送给所述第二控制器;
所述第二控制器,用于将所述文件处理请求对应的文件操作信息全部写入所述缓存保护区;当所述第二控制器发生故障又上电时,跳过对所述缓存保护区执行数据初始化的操作;根据所述缓存保护区中保存的所述多个文件操作信息获得数据信息,将所述数据信息写入写缓存,以供第一控制器发生故障时,主机访问所述数据信息或者第二控制器根据所述数据信息对所述存储器执行与所述文件处理请求相应的操作。
30.根据权利要求29所述的存储设备,其特征在于,
所述第一控制器,具体用于向所述第二控制器发送第一镜像消息,所述第一镜像消息包括所述多个文件操作信息。
31.根据权利要求29所述的存储设备,其特征在于,
所述第一控制器,具体用于向所述第二控制器发送多个第二镜像消息,每个所述第二镜像消息包括所述多个文件操作信息中的一个文件操作信息。
32.根据权利要求29所述的存储设备,其特征在于,
所述第二控制器,具体用于为每个文件操作信息在所述缓存保护区中申请存储空间;将所述每个文件操作信息保存在所述申请的存储空间中;确定所述多个文件操作信息均已保存在对应的存储空间中;将所述保存有所述多个文件操作信息的存储空间中的数据,保存在所述缓存保护区对应的数据结构中。
33.根据权利要求29所述的存储设备,其特征在于,
所述第二控制器,具体用于依次将每个文件操作信息发送给所述缓存保护区;确定所述多个文件操作信息均已发送给所述缓存保护区;设置所述缓存保护区中接收的所述多个文件操作信息对应的标记,所述标记用于表示所述多个文件操作信息已全部写入所述缓存保护区。
34.根据权利要求32所述的存储设备,其特征在于,
所述第二控制器,还用于根据所述缓存保护区对应的数据结构确定所述缓存保护区中包括所述多个文件操作信息;通过掉电保护程序将所述多个文件操作信息保存在所述存储器的保护区。
35.根据权利要求33所述的存储设备,其特征在于,
所述第二控制器,还用于根据所述标记确定所述缓存保护区中包括所述多个文件操作信息;通过掉电保护程序将所述多个文件操作信息保存在所述存储器的保护区。
36.根据权利要求34或35所述的存储设备,其特征在于,所述第二控制器具体用于当第二控制器发生故障后又上电时,从所述存储器的保护区中获得所述多个文件操作信息;将所述多个文件操作信息写入所述缓存保护区。
37.根据权利要求29所述的存储设备,其特征在于,所述第一控制器还包括临时缓存;
所述第一控制器,还用于在分别对每个文件操作进行文件处理,生成所述文件处理请求对应的多个文件操作信息之后,将所述文件处理请求对应的多个文件操作信息保存在所述临时缓存中;
所述第一控制器,具体用于当保存在所述临时缓存中的所述文件处理请求对应的多个文件操作信息是所述文件处理请求对应的所有的文件操作信息时,将所述临时缓存中保存的所述文件处理请求对应的多个文件操作信息发送给所述第二控制器。
38.一种存储设备,其特征在于,包括:
处理器、存储器、系统总线和通信接口,所述处理器、所述存储器和所述通信接口之间通过所述系统总线连接并完成相互间的通信;
所述通信接口,用于与存储设备通信;
所述存储器,用于存储计算机执行指令;
所述处理器,用于运行所述计算机执行指令,执行如权利要求1-11任一所述的方法。
39.一种控制器,包括处理器、缓存保护区和写缓存,所述缓存保护区具有数据保护功能;
所述处理器,用于接收文件处理请求,执行所述文件处理请求的操作,生成所述文件处理请求对应的文件操作信息;
将所述文件操作信息写入所述缓存保护区;
当所述控制器发生故障后又上电时,跳过对所述缓存保护区执行数据初始化的操作;
根据所述文件操作信息获得数据信息,并将所述数据信息写入所述写缓存,以供主机访问所述数据信息。
40.根据权利要求39所述的控制器,其特征在于,所述处理器具体用于:
为所述文件操作信息在所述缓存保护区中申请存储空间;
将所述文件操作信息保存在所述申请的存储空间中;
确定所述文件操作信息已保存在对应的存储空间中;
将所述保存有所述文件操作信息的存储空间中的数据,保存在所述缓存保护区对应的数据结构中。
41.根据权利要求39所述的控制器,其特征在于,所述处理器具体用于:
将所述文件操作信息发送给所述缓存保护区;
确定所述文件操作信息已发送给所述缓存保护区;
设置所述缓存保护区中接收的所述文件操作信息对应的标记,所述标记用于表示所述文件操作信息已全部写入所述缓存保护区。
42.根据权利要求40所述的控制器,其特征在于,所述处理器还用于,当所述控制器发生故障时,根据所述缓存保护区对应的数据结构确定所述缓存保护区中包括所述文件操作信息;
通过掉电保护程序将所述文件操作信息保存在存储器的保护区中。
43.根据权利要求41所述的控制器,其特征在于,所述处理器还用于,当所述控制器发生故障时,根据所述标记确定所述缓存保护区中包括所述文件操作信息;
通过掉电保护程序将所述文件操作信息保存在存储器的保护区中。
44.根据权利要求42或43所述的控制器,其特征在于,所述处理器具体用于当所述控制器发生故障又上电时,从所述存储器的保护区中获得所述文件操作信息;将所述文件操作信息写入所述缓存保护区。
45.根据权利要求39所述的控制器,其特征在于,所述处理器还用于在所述根据所述文件操作信息获得数据信息之后,删除所述缓存保护区中保存的所述文件操作信息。
46.根据权利要求39所述的控制器,其特征在于,所述处理器还用于将所述文件操作信息发送给其他控制器,使得所述其他控制器根据所述文件操作信息获得所述文件处理请求对应的数据信息,并将所述数据信息写入所述其他控制器中的写缓存。
47.根据权利要求39所述的控制器,其特征在于,所述控制器还包括临时缓存;所述处理器还用于在执行所述文件处理请求的操作,生成所述文件处理请求对应的文件操作信息之后,将所述文件操作信息保存在所述临时缓存中;
所述处理器具体用于,当保存在所述临时缓存中的所述文件操作信息是所述文件处理请求对应的所有的文件操作信息时,将所述临时缓存中保存的所述文件操作信息写入所述缓存保护区。
CN201510460167.0A 2013-10-18 2013-10-18 数据存储方法、数据存储装置和存储设备 Active CN105068760B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510460167.0A CN105068760B (zh) 2013-10-18 2013-10-18 数据存储方法、数据存储装置和存储设备

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201510460167.0A CN105068760B (zh) 2013-10-18 2013-10-18 数据存储方法、数据存储装置和存储设备
CN201380001618.3A CN103765373B (zh) 2013-10-18 2013-10-18 数据存储方法、数据存储装置和存储设备

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201380001618.3A Division CN103765373B (zh) 2013-10-18 2013-10-18 数据存储方法、数据存储装置和存储设备

Publications (2)

Publication Number Publication Date
CN105068760A CN105068760A (zh) 2015-11-18
CN105068760B true CN105068760B (zh) 2018-09-28

Family

ID=54599408

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510460167.0A Active CN105068760B (zh) 2013-10-18 2013-10-18 数据存储方法、数据存储装置和存储设备

Country Status (1)

Country Link
CN (1) CN105068760B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105700999B (zh) * 2016-02-19 2019-05-31 珠海格力电器股份有限公司 记录处理器操作的方法及系统
WO2018209705A1 (zh) * 2017-05-19 2018-11-22 深圳配天智能技术研究院有限公司 嵌入式系统中管理文件的方法、嵌入式设备及其存储介质
TWI708145B (zh) 2019-04-30 2020-10-21 威聯通科技股份有限公司 多控制器儲存系統及儲存裝置
CN112328432A (zh) * 2020-11-09 2021-02-05 杭州安恒信息技术股份有限公司 文件事务管理方法、系统、存储介质及计算机设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103020227A (zh) * 2012-12-13 2013-04-03 中国银行股份有限公司 计算机设备中的数据处理方法和系统
CN103049220A (zh) * 2012-12-19 2013-04-17 华为技术有限公司 存储控制方法、存储控制装置和固态存储系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7076606B2 (en) * 2002-09-20 2006-07-11 Quantum Corporation Accelerated RAID with rewind capability
US20060212644A1 (en) * 2005-03-21 2006-09-21 Acton John D Non-volatile backup for data cache

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103020227A (zh) * 2012-12-13 2013-04-03 中国银行股份有限公司 计算机设备中的数据处理方法和系统
CN103049220A (zh) * 2012-12-19 2013-04-17 华为技术有限公司 存储控制方法、存储控制装置和固态存储系统

Also Published As

Publication number Publication date
CN105068760A (zh) 2015-11-18

Similar Documents

Publication Publication Date Title
CN103765373B (zh) 数据存储方法、数据存储装置和存储设备
CN106407040B (zh) 一种远程数据复制方法及系统
US11232073B2 (en) Method and apparatus for file compaction in key-value store system
CN103412822B (zh) 操作非易失性内存和数据操作的方法和相关装置
CN105068760B (zh) 数据存储方法、数据存储装置和存储设备
CN102521114B (zh) 一种虚拟化环境下的文件系统日志存储系统
WO2019001521A1 (zh) 数据存储方法、存储设备、客户端及系统
EP2565772A1 (en) Storage array, storage system, and data access method
CN108089825B (zh) 一种基于分布式集群的存储系统
CN103049220A (zh) 存储控制方法、存储控制装置和固态存储系统
CN109522154A (zh) 数据恢复方法及相关设备与系统
CN105849688A (zh) 数据写入的方法、装置、设备和存储系统
CN105278882A (zh) 一种分布式文件系统的磁盘管理方法
CN110196818A (zh) 缓存数据的方法、缓存设备和存储系统
US20050278483A1 (en) Local bitmaps for an array of redundant storage devices
CN108205482B (zh) 文件挂载恢复方法
CN110442646A (zh) 一种ceph数据同步模块主端写性能优化系统及方法
WO2017113211A1 (zh) 访问请求处理方法、装置及计算机系统
CN105574008A (zh) 应用于分布式文件系统的任务调度方法和设备
CN113051428A (zh) 一种摄像机前端存储备份的方法及装置
JP6376626B2 (ja) データ格納方法、データストレージ装置、及びストレージデバイス
CN104360959B (zh) 数据存储的方法及控制器
CN109753222A (zh) 数据删除方法、服务器及计算机可读介质
CN105516274A (zh) 基于云平台实现对san通用管理的方法及系统
WO2016060700A1 (en) File system journaling

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant