一种数据存储方法、装置及设备的制造方法

文档序号:9765785阅读:385来源:国知局
一种数据存储方法、装置及设备的制造方法
【技术领域】
[0001]本申请涉及数据存储技术领域,特别涉及一种数据存储方法、装置及设备。
【背景技术】
[0002]目前通用的存储产品中,高速缓冲存储器(Cache)管理模块使用缓存来提高独立磁盘冗余阵列(Raid)的写入性能是常用做法。以Raid5为例,业务数据写到缓存后,缓存里的数据如果能凑成整条带,Cache管理模块则将数据写入Raid中,以提高产品的性能。但是,如果Raid条带出现错误时,比如,Raid的一个条带发生错误时,则该Raid会进入失败(Failed)状态,此时,Cache管理模块会将该Raid的缓存设置为冻结(Frozen)状态,导致整个Raid的缓存不可用,降低了Raid空间的利用率和Raid的容错率。
[0003]因此,现有技术中,在Raid中只要有一个条带发生错误时,Raid就进入失败状态时,Cache也会被冻结,导致Raid中正常的条带不可用,也降低了 Cache的利用率。

【发明内容】

[0004]有鉴于此,本申请提供一种数据存储方法、装置及设备,以解决现有技术中由于Raid中的一个条带错误导致整个Raid不可用,以及写缓存利用率降低的问题。
[0005]具体地,本申请是通过如下技术方案实现的:
[0006]根据本申请实施例的第一方面,提供一种数据存储方法,包括:
[0007]所缓存管理模块接收上层发送的将数据写入缓存的写命令,所述缓存为与独立磁盘冗余阵列Raid对应的缓存;
[0008]所述缓存管理模块根据所述Raid的条带状态判断是否能下发所述写命令;
[0009]如果不能下发所述写命令,则所述缓存管理模块向所述上层发送错误信息,所述错误信息中包括与所述写命令对应的缓存不可写的信息。
[0010]根据本申请实施例的第二方面,提供一种数据存储装置,包括:
[0011]接收单元,用于接收上层发送的将数据写入缓存的写命令,所述缓存为与独立磁盘冗余阵列Raid对应的缓存;
[0012]第一判断单元,用于根据所述Raid的条带状态判断是否能下发所述写命令;
[0013]第一发送单元,用于在所述第一判断单元判断不能下发所述写命令时,向所述上层发送错误信息,所述错误信息中包括与所述写命令对应的缓存不可写的信息。
[0014]根据本申请实施例的第三方面,提供一种数存储设备,包括:
[0015]处理器,以及用于存储所述处理器可执行指令的存储器;
[0016]其中,所述处理器被配置为:
[0017]接收上层发送的将数据写入缓存的写命令,所述缓存为与独立磁盘冗余阵列Raid对应的缓存;
[0018]根据所述Raid的条带状态判断是否能下发所述写命令;
[0019]如果不能下发所述写命令,则向所述上层发送错误信息,所述错误信息中包括与所述写命令对应的缓存不可写的信息。
[0020]本申请实施例中,Cache管理模块在接收到写命令时,先根据Raid的条带状态判断是否下发写命令,并在不能下发所述写命令时,向上层反馈写失败错误信息,此时不会冻结该缓存(比如,在后续接收到读命令时,可以读取该缓存中的数据),避免了 Raid因少量条带错误而导致整个Raid不可用的问题。进一步,由于缓存管理模块严格根据每个条带情况来判断写命令是否下发,Raid对应的写缓存不会被冻结而产生大量不可用的写缓存块,提高了整个写缓存的利用率。
[0021]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
【附图说明】
[0022]图1是本申请实施例提供的一种数据存储方法的流程图;
[0023]图2是本申请实施例提供的一种数据存储方法中判断写命令是否能下发的流程图;
[0024]图3是本申请实施例提供的一种数据存储方法中判断写命令是否能下发的另一流程图;
[0025]图4是本申请实施例提供的一种数据存储方法的另一流程图;
[0026]图5是本申请实施例提供的一种数据存储装置所在设备的一种硬件结构图;
[0027]图6是本申请实施例提供一种数据存储装置的结构示意图;
[0028]图7是本申请实施例提供一种数据存储装置的另一结构示意图;
[0029]图8是本申请实施例提供一种数据存储装置的另一结构示意图。
【具体实施方式】
[0030]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
[0031 ]在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0032]应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
[0033]请参阅图1,图1是本申请实施例提供的一种数据存储方法的流程图。所述方法包括:
[0034]步骤101:缓存管理模块接收上层发送的将数据写入缓存的写命令,所述缓存为与独立磁盘冗余阵列Raid对应的缓存;
[0035]本实施例中,缓存管理模块(也可以称为Cache缓存管理模块或缓存管理设备等)接收到上层发送的写命令,其中,上层可以是主机,处理器,也可以是小型计算机系统接口(SCSI, SmalI Computer System Interface),或互联网小型计算机系统接口( iSCSI,Internet Small Computer System Interface),目标(TARGET)驱动模块;当然,也可以是应用程序或用户等。
[0036]该实施例中,缓存管理模块会为每个独立磁盘冗余阵列(Raid)分配一块缓存。
[0037]步骤102:缓存管理模块根据所述Raid的条带状态判断是否能下发所述写命令;
[0038]缓存管理模块在接收到该写命令后,先根据所述Raid的条带状态来判断该写命令是否可以下发,其目的是防止在写命令不可下发时,缓存管理模块导致会将该Raid的写缓存设置为冻结(Frozen)状态,从而导致整个Raid的条带不可用。当然,导致写缓存冻结状态并不限定于条带错误这种情况,还可以是其他情况
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1