数据存储方法、数据存储装置和存储设备的制造方法

文档序号:9349698阅读:294来源:国知局
数据存储方法、数据存储装置和存储设备的制造方法
【技术领域】
[0001]本发明涉及存储技术,尤其涉及一种数据存储方法、数据存储装置和存储设备。
【背景技术】
[0002]对于具有文件系统的存储设备来说,写入存储设备的数据需要具有原子性。所谓原子性是指事务的完整操作,与该事务相关的数据要么全部写入,要么全部不写入。在现有技术中,数据的原子性是在磁盘中保证的,缓存中的数据通常不具有原子性,也就是说只有磁盘中存储的数据才能被认为是可靠的数据,可以提供给主机。通常情况下,若存储设备出现故障,需要先在缓存中恢复出数据,然后将缓存中的数据写入磁盘,在将缓存中的数据写入磁盘时通过日志手段保证写入磁盘的数据是具有原子性的。当主机向存储设备发送访问请求要求访问该数据时,也需要先从磁盘中获取具有原子性的数据,再提供给主机,这就延长了处理主机发送的访问请求的时间。

【发明内容】

[0003]本发明实施例提供了一种数据存储方法、装置和存储设备,以提高主机访问数据的效率。
[0004]第一方面,本发明实施例提供了一种数据存储方法,所述方法应用于存储系统中,所述存储系统包括存储设备和主机,所述存储设备包括第一控制器,所述第一控制器包括缓存保护区和第一写缓存,所述缓存保护区具有数据保护功能,所述方法包括:
[0005]第一控制器接收文件处理请求,将所述文件处理请求拆分成多个文件操作,分别对每个文件操作进行文件处理生成多个文件操作信息;
[0006]将所述多个文件操作信息全部写入所述缓存保护区;
[0007]当第一控制器发生故障后又上电时,在所述缓存保护区中恢复所述多个文件操作信息;
[0008]根据所述多个文件操作信息获得数据信息,并将所述数据信息写入所述第一写缓存,以供所述主机访问所述数据信息。
[0009]结合第一方面,在第一种可能的实现方式中,所述将所述多个文件操作信息全部写入所述缓存保护区包括:
[0010]为每个文件操作信息在所述缓存保护区中申请存储空间;
[0011]将所述每个文件操作信息保存在所述申请的存储空间中;
[0012]确定所述多个文件操作信息均已保存在对应的存储空间中;
[0013]将所述保存有所述多个文件操作信息的存储空间中的数据,保存在所述缓存保护区对应的数据结构中。
[0014]结合第一方面,在第二种可能的实现方式中,所述将所述多个文件操作信息全部写入所述缓存保护区包括:
[0015]依次将每个文件操作信息发送给所述缓存保护区;
[0016]确定所述多个文件操作信息均已发送给所述缓存保护区;
[0017]设置所述缓存保护区中接收的所述多个文件操作信息对应的标记,所述标记用于表示所述多个文件操作信息已全部写入所述缓存保护区。
[0018]结合第一方面的第一种可能的实现方式,在第三种可能的实现方式中,所述存储设备包括存储器,所述存储器包括保护区;
[0019]所述方法还包括:
[0020]当第一控制器发生故障时,根据所述缓存保护区对应的数据结构确定所述缓存保护区中包括所述多个文件操作信息;
[0021]通过掉电保护程序将所述多个文件操作信息保存在所述存储器的保护区。
[0022]结合第一方面的第二种可能的实现方式,在第四种可能的实现方式中,所述存储设备包括存储器,所述存储器包括保护区;
[0023]所述方法还包括:
[0024]当第一控制器发生故障时,根据所述标记确定所述缓存保护区中包括所述多个文件操作信息;
[0025]通过掉电保护程序将所述多个文件操作信息保存在所述存储器的保护区。
[0026]结合第一方面,在第五种可能的实现方式中,所述存储设备包括第二控制器,所述第二控制器包括第二写缓存;
[0027]所述方法还包括:第一控制器将所述多个文件操作信息发送给所述第二控制器,使得所述第二控制器根据所述多个文件操作信息获得所述文件处理请求对应的数据信息,并将所述数据信息写入所述第二写缓存。
[0028]第二方面,本发明实施例提供了一种数据存储方法,所述方法应用于存储系统中,所述存储系统包括存储设备和主机,所述存储设备包括第一控制器、第二控制器和存储器,所述第二控制器包括写缓存,所述方法包括:
[0029]所述第一控制器接收文件处理请求,将所述文件处理请求拆分成多个文件操作,分别对每个文件操作进行文件处理生成多个文件操作信息;将所述多个文件操作信息发送给所述第二控制器;
[0030]所述第二控制器根据所述文件操作信息获得数据信息,将所述数据信息写入写缓存,以供第一控制器发生故障时,主机访问所述数据信息或者对所述存储器执行与所述文件处理请求相应的操作。
[0031]结合第二方面,在第一种可能的实现方式中,所述将所述多个文件操作信息发送给所述第二控制器包括:所述第一控制器向所述第二控制器发送第一镜像消息,所述第一镜像消息包括所述多个文件操作信息。
[0032]结合第二方面,在第二种可能的实现方式中,所述将所述多个文件操作信息发送给所述第二控制器包括:
[0033]所述第一控制器向所述第二控制器发送多个第二镜像消息,每个所述第二镜像消息包括所述多个文件操作信息中的一个文件操作信息。
[0034]结合第二方面,在第三种可能的实现方式中,所述第二控制器包括缓存保护区,所述缓存保护区具有数据保护功能;在所述第二控制器根据所述文件操作信息获得数据信息,将所述数据信息写入写缓存之前所述方法还包括:
[0035]所述第二控制器将所述文件操作信息全部写入所述缓存保护区。
[0036]结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,还包括:
[0037]当所述第二控制器发生故障又上电时,在所述缓存保护区中恢复所述多个文件操作信息;
[0038]所述第二控制器根据所述文件操作信息获得数据信息,将所述数据信息写入写缓存包括:
[0039]所述第二控制器根据所述缓存保护区中保存的所述多个文件操作信息获得所述数据信息,将所述数据信息写入所述写缓存。
[0040]结合第二方面的第三种可能的实现方式,在第五种可能的实现方式中,所述第二控制器将所述文件操作信息全部写入所述缓存保护区包括:
[0041]为每个文件操作信息在所述缓存保护区中申请存储空间;
[0042]将所述每个文件操作信息保存在所述申请的存储空间中;
[0043]确定所述多个文件操作信息均已保存在对应的存储空间中;
[0044]将所述保存有所述多个文件操作信息的存储空间中的数据,保存在所述缓存保护区对应的数据结构中。
[0045]结合第二方面的第三种可能的实现方式,在第六种可能的实现方式中,所述第二控制器将所述文件操作信息全部写入所述缓存保护区包括:
[0046]依次将每个文件操作信息发送给所述缓存保护区;
[0047]确定所述多个文件操作信息均已发送给所述缓存保护区;
[0048]设置所述缓存保护区中接收的所述多个文件操作信息对应的标记,所述标记用于表示所述多个文件操作信息已全部写入所述缓存保护区。
[0049]第三方面,本发明实施例提供了一种数据存储的装置,包括:
[0050]文件处理模块,用于接收文件处理请求,将所述文件处理请求拆分成多个文件操作,分别对每个文件操作进行文件处理生成多个文件操作信息;
[0051]写入模块,用于将所述多个文件操作信息全部写入缓存保护区;
[0052]恢复模块,用于当第一控制器发生故障后又上电时,在所述缓存保护区中恢复所述多个文件操作信息;
[0053]所述写入模块,还用于根据所述多个文件操作信息获得数据信息,并将所述数据信息写入第一写缓存,以供所述主机访问所述数据信息。
[0054]结合第三方面,在第一种可能的实现方式中,所述写入模块用于:
[0055]为每个文件操作信息在所述缓存保护区中申请存储空间;
[0056]将所述每个文件操作信息保存在所述申请的存储空间中;
[0057]确定所述多个文件操作信息均已保存在对应的存储空间中;
[0058]将所述保存有所述多个文件操作信息的存储空间中的数据,保存在所述缓存保护区对应的数据结构中。
[0059]结合第三方面,在第二种可能的实现方式中,所述写入模块用于:
[0060]依次将每个文件操作信息发送给所述缓存保护区;
[0061]确定所述多个文件操作信息均已发送给所述缓存保护区;
[0062]设置所述缓存保护区中接收的所述多个文件操作信息对应的标记,所述标记用于表示所述多个文件操作信息已全部写入所述缓存保护区。
[0063]结合第三方面的第一种可能的实现方式,在第三种可能的实现方式中,还包括保护丰吴块;
[0064]所述保护模块,用于当第一控制器发生故障时,根据所述缓存保护区对应的数据结构确定所述缓存保护区中包括所述多个文件操作信息;
[0065]通过掉电保护程序将所述多个文件操作信息保存在存储器的保护区。
[0066]结合第三方面的第二种可能的实现方式,在第四种可能的实现方式中,还包括保护丰吴块;
[0067]所述保护模块,用于当第一控制器发生故障时,根据所述标记确定所述缓存保护区中包括所述多个文件操作信息;通过掉电保护程序将所述多个文件操作信息保存在存储器的保护区。
[0068]结合第三方面,在第五种可能的实现方式中,还包括发送模块;
[0069]所述发送模块,用于将所述多个文件操作信息发送给第二控制器,使得所述第二控制器根据所述多个文件操作信息获得所述文件处理请求对应的数据信息,并将所述数据信息写入所述第二控制器的第二写缓存。
[0070]第四方面,本发明实施例提供了一种存储设备,所述存储设备包括第一控制器、第二控制器和存储器,所述第二控制器包括写缓存;
[0071]所述第一控制器,用于接收文件处理请求,将所述文件处理请求拆分成多个文件操作,分别对每个文件操作进行文件处理生成多个文件操作信息;将所述多个文件操作信息发送给所述第二控制器;
[0072]所述第二控制器,用于根据所述文件操作信息获得数据信息,将所述数据信息写入写缓存,以供第一控制器发生故障时,主机访问所述数据信息或者对所述存储器执行与所述文件处理请求相应的操作。
[0073]结合第四方面,在第一种可能的实现方式中,所述第一控制器,具体用于向所述第二控制器发送第一镜像消息,所述第一镜像消息包括所述多个文件操作信息。
[0074]结合第四方面,在第二种可能的实现方式中,所述第一控制器,具体用于向所述第二控制器发送多个第二镜像消息,每个所述第二镜像消息包括所述多个文件操作信息中的一个文件操作信息。
[0075]结合第四方面,在第三种可能的实现方式中,所述第二控制器,还用于将所述文件操作信息全部写入所述缓存保护区。
[0076]结合第四方面的第三种可能的实现方式,在第四种可能的实现方式中,所述第二控制器,具体用于为每个文件操作信息在所述缓存保护区中申请存储空间;将所述每个文件操作信息保存在所述申请的存储空间中;确定所述多个文件操作信息均已保存在对应的存储空间中;将所述保存有所述多个文件操作信息的存储空间中的数据,保存在所述缓存保护区对应的数据结构中。
[0077]结合第四方面的第三种可能的实现方式,在第五种可能的实现方式中,所述第二控制器,具体用于依次将每个文件操作信息发送给所述缓存保护区;确定所述多个文件操作信息均已发送给所述缓存保护区;设置所述缓存保护区中接收的所述多个文件操作信息对应的标记,所述标记用于表示所述多个文件操作信息已全部写入所述缓存保护区。
[0078]第五方面,本发明实施例提供了一种存储设备,包括:
[0079]处理器、存储器、系统总线和通信接口,所述处理器、所述存储器和所述通信接口之间通过所述系统总线连接并完成相互间的通信;
[0080]所述通信接口,用于与存储设备通信;
[0081]所述存储器,用于存储计算机执行指令;
[0082]所述处理器,用于运行所述计算机执行指令,执行如第一方面所述的数据存储方法。
[0083]在本发明实施例中,将文件处理请求对应的多个文件操作信息全部写入缓存保护区,由于缓存保护区具有数据保护功能,当第一控制器发生故障后又上电时,可以在所述缓存保护区中恢复所述多个文件操作信息,并且根据所述多个文件操作信息获得数据信息,写入第一写缓存,由于所述多个文件操作信息是全部写入缓存保护区的,所以当第一控制器发生故障后又上电时,在所述缓存保护区中恢复出的文件操作信息也是完整的,因此根据所述多个文件操作信息得到的数据信息具有原子性,可以直接供主机访问。在现有技术中,由于第一写缓存中的数据信息不具有原子性,存储器中的数据才具有原子性,因此现有技术中的第一写缓存中的数据信息不能直接供主机访问,必须从存储
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1