一种数据固化存储的方法、装置和系统的制作方法

文档序号:10724827阅读:426来源:国知局
一种数据固化存储的方法、装置和系统的制作方法
【专利摘要】一种数据固化存储的方法、装置和系统,其中,存储设备在接收到存储控制设备发送的预先固化存储操作指令时,确定缓存空间中需要预先固化存储的空间范围,将所述确定的空间范围中包括的数据进行固化存储,并锁定所述缓存空间中确定的空间范围,以使得所述锁定的空间范围不再对新写入的数据提供缓存服务,降低了使用中的缓存空间的大小。当由于存储系统升级等原因导致需要将缓存空间中的数据写回磁盘时,由于使用中的缓存空间已经被缩小,从而减少了将数据从缓存空间写回磁盘的时间,提高了用户的使用体验。
【专利说明】
一种数据固化存储的方法、装置和系统
技术领域
[0001]本发明涉及数据存储技术领域,尤其涉及一种数据固化存储的方法、装置和系统。
【背景技术】
[0002]在存储软件中,为了获得更短的时延和更高的每秒输入或输出操作次数(英文:10PS,Input/Output Operat1ns Per Second),通常会使用访问速度更快的存储介质做高速缓冲存储(英文:cache)。在cache技术中,cache中会保存存储软件的元数据和用户数据。当存储软件版本升级且两个版本间的元数据格式发生变化时,会导致在升级过程中对cache中保存的元数据格式进行升级,同时由于元数据格式的变化,也会导致用户数据的存储格式相应的发生改变。
[0003]在当前技术条件下,存储软件对保存在主存中的数据格式做兼容处理,当cache中的元数据格式在不同版本间发生变化并进行版本升级时,先是在老版本上将cache中的元数据和用户数据全部写回到主存,然后将存储软件从老版本升级到新版本,升级完成后,再由新版本的存储软件将保存在主存上的元数据和用户数据按新的格式读出到cache,从而完成元数据格式和用户数据格式从老版本到新版本的转换。如果是进行软件版本回退,则执行上述过程的逆过程即可完成元数据格式和用户数据格式从新版本到老版本的转换。
[0004]在当前的这种处理方式下,如果cache容量很小,cache中数据写回磁盘的时间很短,则对升级基本没什么影响。但当cache容量变大同时主存I/O速率又不能同步快速增长时,现有技术在将cache中的数据写回磁盘时将会耗费大量时间。特别是在分布式存储系统的在线升级时,为确保在升级过程中存储系统能持续提供服务,往往将系统中的所有存储节点按某种策略采用串行方式逐步升级。这种情况下,存储系统的升级时间将极大的延长,有时甚至变得不可接受。

【发明内容】

[0005]本发明实施例提供了一种数据固化存储的方法、装置和系统。以解决将缓存中的数据写回到磁盘所带来的耗时过长的问题。
[0006]—方面,本发明具体实施例提供一种数据固化存储的方法。所述方法中,存储设备在接收到存储控制设备发送的预先固化存储操作指令时,确定缓存空间中需要预先固化存储的空间范围,将所述确定的空间范围中包括的数据进行固化存储,并锁定所述缓存空间中确定的空间范围,以使得所述锁定的空间范围不再对新写入的数据提供缓存服务,降低了使用中的缓存空间的大小。当由于存储系统升级等原因导致需要将缓存空间中的数据写回磁盘时,由于使用中的缓存空间已经被缩小,从而减少了将数据从缓存空间写回磁盘的时间,提高了用户的使用体验。
[0007]在一个可能的设计中,存储控制设备发送的预先固化存储操作指令中包括需要进行预先固化存储的存储设备的标识信息,根据所述标识信息确定需要进行预先固化存储的存储设备。存储控制设备根据标识信息确定进行预先固化存储,从而使预先固化存储的确定更加方便。
[0008]在一个可能的设计中,所述对确定的所述空间范围中包括的数据进行固化存储,锁定所述确定的空间范围具体包括,在确定的空间范围中选定一个区域作为第一区域,对第一区域锁定,使第一区域不再对新写入的数据提供缓存服务。在锁定第一区域的一个周期后,再选定一个区域作为第二区域。对第二区域锁定,使第一区域和第二区域不再对新写入的数据提供缓存服务。重复上述步骤直至锁定的区域与确定的空间范围相同时,不再对新的区域进行锁定。通过依次对缓存空间中确定的空间范围进行锁定和固化存储,从而逐渐的减小当前可用的缓存空间,减小对存储设备性能的影响。
[0009]在一个可能的设计中,根据预先固化存储操作指令确定缓存空间中需要固化存储的空间范围时,根据预先固化存储操作指令,确定存储设备中配置的执行预先固化存储操作指令时需要固化存储的缓存空间的空间范围。根据存储设备中配置的参数确定预先固化存储时固化存储的空间范围,从而使配置的参数可以根据不同的存储设备区别设置。
[0010]在一个可能的设计中,该方法用于元数据格式的转换时,对确定的空间范围进行固化存储并锁定确定的空间范围后,将缓存空间的数据完全固化存储至磁盘,缓存空间的数据中包括元数据。存储系统升级完成后,将元数据采用升级后的格式重新读取到缓存空间,从而完成元数据格式的转换。通过所述固化存储的方法,减少了元数据格式转换时将缓存空间中的数据固化存储至磁盘的时间,提高了用户的使用体验。
[0011]另一方面,本发明具体实施例提供了一种数据固化存储的方法。存储控制设备接收到界面设备发送的预先固化存储指令时,对预先固化存储指令进行解析,获取指令中包括的标识信息。根据标识信息建立预先固化存储任务。预先固化存储任务建立完成后,向存储设备发送预先固化存储操作指令。使存储设备对缓存空间的部分空间范围锁定,并对锁定的所述空间范围中包括的数据进行固化存储。当存储系统升级等原因导致需要将缓存空间中的数据写回到磁盘中时,由于使用中的缓存空间已经被缩小,从而减少了将数据从缓存空间写回至磁盘的时间,提高了用户的使用体验。
[0012]在一个可能的设计中,所述存储控制设备向所述存储设备发送执行预先固化存储任务的指令时,存储控制设备周期性的向存储设备发送预先固化存储操作指令,以及接收存储设备返回的当前存储设备的预先固化存储的进度。从而确保存储设备中锁定的空间范围一直保持锁定。并且对存储设备固化存储的进度进行更新。
[0013]再一方面,本发明具体实施例提供一种数据固化存储的方法。存储控制设备接收界面设备发送的预先固化存储指令,对预先固化存储指令进行解析,获取指令中包括的标识信息。根据标识信息建立预先固化存储任务。向存储设备发送预先固化存储操作指令,使存储设备对缓存空间的部分空间范围锁定,并对锁定的空间范围中包括的数据进行固化存储。存储设备在接收到存储控制设备发送的预先固化存储操作指令时,确定缓存空间中需要预先固化存储的空间范围,将所述确定的空间范围中包括的数据进行固化存储,并锁定所述缓存空间中确定的空间范围,以使得所述锁定的空间范围不再对新写入的数据提供缓存服务,降低了使用中的缓存空间的大小。当由于存储系统升级等原因导致需要将缓存空间中的数据写回磁盘时,由于使用中的缓存空间已经被缩小,从而减少了将数据从缓存空间写回磁盘的时间,提高了用户的使用体验。
[0014]又一方面,本发明具体实施例提供一种存储设备,包括接收单元和处理单元。接收单元,用于接收存储控制设备发送的预先固化存储操作指令。处理单元,用于根据所述预先固化存储操作指令确定缓存空间中需要固化存储的空间范围。对确定的所述空间范围中包括的数据进行固化存储,锁定所述确定的空间范围,以使得所述锁定的空间范围不再对新写入的数据提供缓存服务。当存储系统升级等原因导致需要将缓存空间中的数据写回磁盘时,由于使用中的缓存空间已经被缩小,从而减少了将数据从缓存空间写回磁盘的时间,提高了用户的使用体验。
[0015]在一个可能的设计中,处理单元用于根据预先固化存储操作指令确定缓存空间中需要固化存储的空间范围前,预先固化存储操作指令中包括需要进行预先固化存储的存储设备的标识信息,处理单元用于根据所述标识信息,确定对存储设备的缓存空间进行预先固化存储。存储控制设备根据标识信息确定进行预先固化存储,从而使预先固化存储的确定更加方便。
[0016]在一个可能的设计中,处理单用于元对确定的所述空间范围中包括的数据进行固化存储,锁定确定的空间范围具体包括,在确定的空间范围中选定一个区域作为第一区域,处理单元对第一区域锁定,使第一区域不再对新写入的数据提供缓存服务。在锁定第一区域的一个周期后,在确定的空间范围中选定一个第二区域,所述处理单元对第二区域锁定,使所述第一区域和第二区域不再对新写入的据提供缓存服务。重复上述步骤直至锁定的区域与所述确定的空间范围相同时,不再对新的区域进行锁定。通过依次对缓存空间中确定的空间范围进行锁定和固化存储,从而逐渐的减小当前可用的缓存空间,减小对存储设备性能的影响。
[0017]在一个可能的设计中,所述处理单元用于根据所述预先固化存储操作指令确定缓存空间中需要固化存储的空间范围时,根据预先固化存储操作指令,确定存储设备中配置的执行预先固化存储操作指令时需要固化存储的缓存空间的空间范围。根据存储设备中配置的参数确定预先固化存储时固化存储的空间范围,从而使配置的参数可以根据不同的存储设备区别设置。
[0018]在一个可能的设计中,存储设备用于存储系统中,存储系统可用于元数据格式的转换。元数据格式转换时,处理单元对确定的空间范围进行固化存储,锁定确定的空间范围后,将缓存空间的数据完全固化存储至磁盘,缓存空间的数据包括元数据。存储系统升级完成后,将元数据采用升级后的格式重新读取到缓存空间。在元数据格式转换前,通过减少元数据格式转换时缓存空间中的数据固化存储至磁盘的时间,提高了用户的使用体验。
[0019]再另一方面,本发明具体实施例提供一种存储系统,所述存储系统包括存储控制设备和存储设备。当所述存储系统进行预先固化存储时,存储控制设备用于接收到界面设备发送的预先固化存储指令时,对预先固化存储指令进行解析,获取指令中包括的标识信息。所述存储控制设备还用于根据标识信息建立预先固化存储任务。预先固化存储任务建立完成后,向存储设备发送预先固化存储操作指令。使存储设备对缓存空间的部分空间范围锁定,并对锁定的空间范围中包括的数据进行固化存储。存储设备用于接收到存储控制设备发送的预先固化存储操作指令,确定缓存空间中需要预先固化存储的空间范围,将所述确定的空间范围中包括的数据进行固化存储,并锁定所述缓存空间中确定的空间范围。以使得所述锁定的空间范围不再对新写入的数据提供缓存服务,降低了使用中的缓存空间的大小。当由于存储系统升级等原因导致需要将缓存空间中的数据写回磁盘时,由于使用中的缓存空间已经被缩小,从而减少了将数据从缓存空间写回磁盘的时间,提高了用户的使用体验。
[0020]本发明实施例的一种数据固化存储的方法、装置和系统。通过执行所述数据固化存储的方法,减少了存储设备可用的缓存空间,当由于存储系统升级等原因导致需要将缓存空间中的数据写回磁盘时,减少缓存空间中数据写回至磁盘的时间,提高了用户的使用体验。
【附图说明】
[0021]图1为本发明实施例提供的一种存储系统结构图;
[0022]图2为本发明具体实施例提供的一种存储控制设备;
[0023]图3为本发明具体实施例提供的一种存储控制设备创建的预先固化存储任务;
[0024]图4为本发明具体实施例提供的一种存储设备;
[0025]图5-1至5-3为本发明具体实施例提供的一种数据预先固化存储的过程;
[0026]图6为本发明具体实施例提供的一种数据固化存储的方法流程图;
[0027]图7为本发明具体实施例提供的一种存储控制设备;
[0028]图8为本发明具体实施例提供的一种存储设备;
[0029]图9为本发明实施例提供的一种存储控制设备示意图;
[0030]图10为本发明实施例提供的一种存储设备示意图。
【具体实施方式】
[0031]下面通过附图和实施例,对本发明实施例的技术方案做进一步的详细描述。
[0032]图1为本发明实施例提供的一种存储系统结构图。如图1所示,包括界面设备、存储控制设备和多个存储设备。所述界面设备与存储控制设备连接,接收所述界面设备发送的控制指令,并向所述界面设备反馈所述控制指令的执行结果。所述存储控制设备与多个存储设备连接,通过所述存储控制设备管理所述存储设备。
[0033]在本发明的具体实施例中,所述存储设备仅为本发明具体实施例的一种举例,所述存储设备还可以是存储阵列等其他存储形式。在一个例子中,所述存储设备为X86服务器,所述存储系统中包括多个X86服务器。所述存储设备为X86服务器只是本发明具体实施例的一种举例,而不能用于对本发明的限定。
[0034]所述存储系统对存储设备中的元数据进行格式转换时,所述界面设备将所述预先固化存储指令向存储控制设备发送,以使所述存储控制设备建立预先固化存储任务。所述界面设备发送的预先固化存储指令中包括需要进行预先固化存储的存储设备的标识,所述需要进行预先固化存储的设备的标识通过所述界面设备确定。
[0035]所述存储控制设备在建立预先固化存储任务后,向多个存储设备发送预先固化存储操作指令。所述存储设备接收存储控制设备发送的预先固化存储操作指令。在一个例子中,一个存储设备根据接收的所述预先固化存储操作指令中是否包括该存储设备的标识信息,从而确定是否进行预先固化存储。所述存储设备通过执行预先固化存储操作指令,对所述存储设备的缓存空间中部分的空间范围进行固化存储,锁定固化存储后的空间范围,以使得所述锁定的空间范围不再对新写入的数据提供缓存服务或以使得所述锁定的空间范围不被后续的10( Input/Output)操作所使用。
[0036]在本发明的具体实施例中,所述存储设备的标识信息可以是存储设备所在节点的节点信息。对所述存储设备的缓存空间中部分的空间范围进行固化存储是将缓存空间的元数据块和所述元数据块对应的数据区中的数据存储至存储设备的持久化存储硬件中。
[0037]在本发明的具体实施例中,所述持久化存储硬件可以为磁盘、硬盘、固态硬盘(solid-state drive,SSD)等多种持久化存储器件中的任意一种。为了描述的方便,在本申请中仅以磁盘为例说明。
[0038]图2为本发明具体实施例提供的一种存储控制设备。如图2所示的存储控制设备包括处理器、磁盘和内存。所述磁盘中包括存储存储设备的信息。例如,所述磁盘中包括存储存储设备的节点、每个存储设备的节点对应的存储设备的信息。所述每个存储设备的节点对应的存储设备的信息包括存储空间以及缓存空间等。
[0039]所述存储控制设备接收界面设备发送的预先固化存储指令,所述预先固化存储指令中包括需要进行预先固化存储的存储设备的标识信息。通过处理器对所述预先固化存储指令进行解析,确定所述指令为预先固化存储指令,以及获取所述预先固化存储指令中包括的存储设备的标识信息,所述标识信息还可以是与存储设备所对应的节点信息。所述处理器根据所述标识信息或节点信息确定需要执行预先固化存储操作的存储设备。
[0040]在一个例子中,若终端设备发送的预先固化存储指令中不包括标识信息或节点信息,则用于对存储系统中的所有存储设备进行预先固化存储。所述存储控制设备在接收到不包括标识信息的预先固化存储指令后,将启动对存储控制设备连接的所有存储设备的预先固化存储操作。
[0041]所述处理器根据所述预先固化存储指令中包括的标识信息创建预先固化存储任务。并根据预先固化存储指令中的参数和磁盘中存储的各个存储设备的信息对创建的预先固化存储任务进行初始化,将所创建的预先固化存储任务保存在存储控制设备的内存中。图3为本发明具体实施例提供的一种存储控制设备创建的预先固化存储任务。如图3所示,存储控制设备创建的预先固化存储任务包括需要进行预先固化存储的存储设备的标识信息、是否对该节点通知进行预先固化存储以及通知的次数、节点所对应的存储设备是否返回进度信息、节点未返回信息的原因和节点返回的固化存储的进度。
[0042]在本发明的具体实施例中,所述存储控制设备在预先固化存储任务创建成功后向所有的存储设备发送预先固化存储操作指令。所述预先固化存储操作指令中包括预先固化存储任务中包括的存储设备的标识信息,以使一个存储设备在接收预先固化存储操作指令后确定该存储设备执行预先固化存储操作指令。例如,存储控制设备所创建的预先固化存储任务中包括的标识信息为“A1001、A1002、A1003、A1004”,则标识信息为A1001、A1002、A1003、A1004的存储设备在接收存储控制设备发送的预先固化存储操作指令后,执行预先固化存储操作指令。
[0043]所述存储设备在确定执行预先固化存储操作指令后将在存储设备的缓存空间中确定固化存储的空间范围。对确定的空间范围进行锁定,以使得所述锁定的空间范围不再提供缓存服务或以使得所述锁定的空间范围不被后续的1操作所使用。将锁定的空间范围中包括的数据进行固化存储。所述存储控制设备还接收存储设备返回的执行预先固化存储操作指令的结果。在一个例子中,所述存储控制设备接收的所述存储设备返回的执行预先固化存储操作指令的结果,所述结果可以包括存储设备的标识信息和对确定的空间范围执行预先固化存储操作指令完成的进度信息。所述存储控制设备根据接收的预先固化存储操作指令完成的进度信息对预先固化存储任务进行更新。
[0044]图4为本发明具体实施例提供的一种存储设备。如图4所示,包括处理器、磁盘和内存。存储设备接收存储控制设备发送的预先固化存储操作指令,所述处理器根据所述预先固化存储操作指令对存储设备的缓存空间进行预先固化存储。
[0045]在本发明的具体实施例中,当所述存储设备开始预先固化存储后,所述存储控制设备周期性的向所述存储设备发送预先固化存储指令。所述存储设备在收到预先固化存储指令后,继续向所述存储控制设备发送当前固化存储的进度信息。以使所述存储控制设备的固化存储任务对存储设备的固化存储进度进行更新。
[0046]所述缓存空间用于暂时存储处理器处理后的数据。如图4所示,在本发明的具体实施例中,所述缓存空间中包括元数据区和数据区。所述元数据用于表示缓存空间中各个物理地址的数据信息,所述数据区用于存储处理器处理后需要固化存储至磁盘的数据。在对缓存空间中的数据区中的数据进行固化存储时,通过查找元数据,获取数据区中数据在磁盘中的存储地址,将该条数据固化存储到所述存储设备的地址,并删除该条数据所对应的元数据。
[0047]所述存储设备的处理器在获取预先固化存储操作指令后,对所述预先固化存储操作指令进行解析,获取所述预先固化存储操作指令中包括的标识信息,根据所述标识信息确定该存储设备是否执行预先固化存储操作指令。在一个例子中,所述存储设备的标识信息为“A1001”,若存储设备A接收的预先固化存储操作指令中的标识信息包括“A1001”,则存储设备A需要执行预先固化存储操作指令,反之则不执行预先固化存储操作指令。
[0048]在一个例子中,所述存储设备中还配置了预先固化存储时缓存空间中固化存储的空间范围。当所述存储设备确定需要执行预先固化存储操作指令后,存储设备将根据配置的预先固化存储时固化存储的空间范围进行固化存储。例如,存储设备中包括了第一数据区、第二数据区、第三数据区、第四数据区和第五数据区,以及元数据块一、元数据块二、元数据块三、元数据块四和元数据块五。所述存储设备中配置了预先固化存储时缓存空间中固化存储的空间范围,其中,第一数据区、第二数据区、第三数据区和第四数据区,以及,元数据块一、元数据块二、元数据块三和元数据块四需要进行固化存储。
[0049]将确定缓存空间中需要固化存储的空间范围后,对确定的空间范围锁定。首先将一个空间范围锁定,使锁定的缓存空间不再提供缓存服务或以使得所述锁定的缓存空间不被后续的1操作所使用。新写入的数据存储至没有锁定的缓存空间。根据缓存空间的刷盘规则进行固化存储。在一个周期后,再将另一个空间范围锁定,根据缓存空间的刷盘规则进行固化存储。直至将确定的空间范围全部锁定。例如,所述根据缓存空间的刷盘规则进行固化存储是根据缓存空间中数据的命中数和写入缓存空间的时间确定数据刷盘的优先顺序。本发明具体实施例中,还可以在缓存空间的刷盘规则之上,对锁定的空间范围增加写入缓存时间的权重,从而使锁定的空间范围中的数据能够更加优先的进行固化存储。
[0050]磁盘在一个例子中,需要保留的Cache空间也可以通过所述界面设备确定。所述界面设备向存储控制设备发送的预先固化存储指令中包括需要固化存储的缓存空间的大小,所述缓存空间的大小可以是整个缓存空间的比例。所述存储控制设备在创建预先固化存储任务时还将需要固化存储的缓存空间的大小添加到预先固化存储任务中。所述存储控制设备在向存储设备发送的预先固化存储操作指令时,所述指令中包括需要固化存储的缓存空间的大小。
[0051]在本发明的具体实施例中,所述存储控制设备还用于向存储设备发送停止预先固化存储操作指令,使所述存储设备停止执行所述预先固化存储操作指令。所述存储设置停止执行所述预先固化存储操作指令后,不再对缓存空间进行锁定,使新写入的数据可以写入任意空间范围。
[0052]在本发明的具体实施例中,所述存储控制设备周期性的向所述存储设备发送预先固化存储操作指令。所述存储设备在接收存储控制设备发送的预先固化存储操作指令,并确定所述存储设备执行所述预先固化存储操作指令后,向所述存储控制设备返回当前锁定的空间范围。例如,存储控制设备向存储设备发送预先固化存储操作指令的周期为一分钟,当存储设备几个周期(例如3个周期)不能接收存储控制设备发送的预先固化存储操作指令后,将放弃预先固化存储操作指令的执行,并不再对缓存空间进行锁定,使新写入的数据可以写入任意空间范围。
[0053]在一个例子中,所述预先固化存储可以用于元数据格式的转换。所述存储系统在进行元数据格式转换前,将所述存储系统中的存储设备的缓存空间中的部分空间范围锁定并对锁定空间范围中包括的数据进行固化存储。从而减小了存储设备缓存空间的大小。使存储设备在进行元数据格式转换时,能够快速的将存储设备中剩下的缓存空间中包括的元数据快速的进行固化存储。存储系统升级完成后,将元数据采用升级后的格式重新读取到缓存空间中。从而减小了元数据格式转换时将元数据固化存储至磁盘的时间,提高了效率和用户体验。当存储设备的缓存空间的元数据固化存储至存储设备的磁盘后,将元数据读取至新的磁盘。
[0054]图5-1至5-3为本发明具体实施例提供的一种数据预先固化存储的过程。图5-1所示为预先固化存储开始阶段,5-2所示为预先固化存储过程阶段,5-3所示为预先固化存储完成阶段。
[0055]如图5-1所示,在预先固化存储开始阶段,所述存储设备中的缓存空间按照存储设备的缓存空间的固化存储规则进行固化存储。在一个例子中,所述缓存空间固化存储的规则为对一个数据的命中次数和写入缓存空间的时间进行加权计算,根据加权计算的结果按照从大到小的顺序对缓存空间中的数据进行固化存储。缓存空间包括缓存数据区和缓存元数据区。其中缓存数据区具体包括第一数据区、第二数据区、第三数据区、第四数据区和第五数据区。缓存元数据区包括元数据块一、元数据块二、元数据块三、元数据块四和元数据块五。
[0056]图5-2所示,在存储设备接收存储控制设备发送的预先固化存储操作指令后,所述存储设备根据所述预先固化存储操作指令中包括的标识信息确定存储设备执行所述预先固化存储操作指令。所述存储设备确定执行所述预先固化存储操作指令后,确定缓存空间中固化存储的空间范围,所述空间范围包括数据区和元数据块。在一个例子中,根据所述缓存空间配置的固化存储规则规定,预先固化存储将对四个数据区和四个元数据块锁定。所述缓存空间固化存储规则还规定,对存储容量最小的四个数据区和元数据块进行固化存储并锁定。在一个例子中,若选定固化存储并锁定的是第一数据区、第二数据区、第三数据区和第四数据区以及元数据块一、元数据块二、元数据块三和元数据块四。
[0057]所述存储设备执行预先固化存储时,选定一个数据区,对该数据区锁定。以使该数据区不会有新的数据命中,对于锁定数据区中的数据将优先被固化存储。例如,优先对数据区固化存储,再对元数据块固化存储。对数据区固化存储时,例如首先对第一数据区锁定,在对第一数据区锁定后,第一数据区中将不会有新写入的数据被命中。由于缓存空间固化存储的规则为对一个数据的命中次数和写入缓存空间的时间进行加权计算,根据加权计算的结果按照从大到小的顺序对缓存空间中的数据进行固化存储。在一个例子中,在对第一数据区锁定后,对第一数据区中包括的数据进行加权计算时,增加写入缓存空间的时间的权重,从而增大第一数据区中的数据加权计算的结果,使第一数据区中的数据能够更优先的固化存储。
[0058]对第一数据区锁定一个周期后,再对另一个数据区固化存储。例如对第二数据区进行固化存储并锁定,对第二数据区固化存储的方式与第一数据区的固化存储方式相同。
[0059]按照上述方式,直至完全将第一数据区、第二数据区、第三数据区和第四数据区以及元数据块一、元数据块二、元数据块三和元数据块四固化存储。由于所有数据区和元数据块区的固化存储方式相同,本发明对此不复敖述。需要说明的是,在本发明的具体实施例中,上述缓存空间固化存储规则、所选定的固化存储顺序仅为本发明的举例,不用于对本发明的具体限定,例如也可以先对元数据块固化存储,再对数据区固化存储。
[0060]如图5-3所示,在对第一数据区、第二数据区、第三数据区、第四数据区以及元数据块一、元数据块二、元数据块三和元数据块四锁定并固化存储后,上述相应的存储空间在新的数据块存储时,将不被命中。
[0061]在一个例子中,所述存储设备在一定周期没有收到存储控制设备发送的预先固化存储操作指令时,将自动取消对存储设备中缓存空间的锁定。此时,新写入的数据将能够被命中在任意数据区中。新写入的需要读写的数据的元数据将能够被命中在缓存空间中的任意元数据块中。例如,所述存储设备设定,在三个周期没有收到存储控制设备发送的预先固化存储操作指令后,将自动对第一数据区、第二数据区、第三数据区、第四数据区以及元数据块一、元数据块二、元数据块三和元数据块四解除锁定。
[0062]在一个例子中,所述存储控制设备在预先固化存储过程中接收界面设备发送的预先固化存储指令时,所述存储控制设备将对接收的预先固化存储指令中包括的标识信息与预先固化存储任务中包括的标识信息进行对比,以判断所述预先固化存储任务中的标识信息是否完全包括预先固化存储指令中包括的标识信息。当预先固化存储任务中包括的标识信息完全包括预先固化存储指令中包括的标识信息,则直接向界面设备返回任务创建成功。当预先固化存储指令中包括的标识信息与所述预先固化存储任务中包括的标识信息不完全相同或完全不相同时,所述存储控制设备将预先固化存储任务中不包括的标识信息加入预先固化存储任务中,再向界面设备返回任务创建成功。例如,所述存储控制设备在预先固化存储过程中收到界面设备发送的预先固化存储指令,所述预先固化存储指令包括对标识信息为“A0001”、“A0008”。所述存储控制设备的预先固化存储任务中包括的标识信息如图3所示。所述存储控制设备将预先固化存储任务中包括的标识信息与界面设备发送的预先固化存储指令中包括的标识信息进行比较,于是,存储控制设备将“A0008”加入到预先固化存储任务中,并向界面设备返回任务创建成功。
[0063]在本发明的具体实施例中,所述存储控制设备在将预先固化存储任务更新后,继续向存储设备发送预先固化存储操作指令。所述继续发送的预先固化存储操作指令包括预先固化存储任务中包括的所有标识信息,以使相应的存储设备继续根据所述操作指令执行所述预先固化存储操作指令。例如,所述存储控制设备在向存储设备发送的预先固化存储操作指令中包括标识信息“A0008”。
[0064]在本发明的具体实施例中,界面设备还发出停止预先固化存储的指令。所述界面设备需要停止预先固化存储时,通过确定停止预先固化存储的存储设备的标识信息,并将包括标识信息的停止预先固化存储指令向存储控制设备发送。所述存储控制设备在收到停止预先固化存储指令后,将根据所述指令中携带的标识信息对相应的存储设备发送停止预先固化存储操作指令。在一个例子中,当所述界面设备发送的停止预先固化存储指令为对所有存储设备停止预先固化存储时,则所述指令中不包括标识信息。所述存储控制设备在确定所述界面设备发送的停止预先固化存储指令中不包括任何标识信息时,所述存储控制设备将对预先固化存储指令中的所有存储设备停止预先固化存储。
[0065]所述存储控制设备在确定停止预先固化存储指令后,将根据指令中包括的停止预先固化存储的存储设备的标识信息,与预先固化存储任务中包括的标识信息进行对比,若存储设备中没有预先固化存储任务的存在,则向界面设备返回停止成功。
[0066]若停止预先固化存储指令中包括的标识信息与固化存储任务中的标识信息相符或存在,则向停止预先固化存储指令中包括的标识信息相对应的存储设备发送停止预先固化存储操作指令。在一个例子中,所述存储控制设备仅向所述存储设备发送一次停止预先固化存储操作指令。在本发明的一个例子中,对缓存空间锁定并进行预先固化存储后,余下的缓存空间不够使用时,则会触发缓存空间的替换机制。读取缓存空间中所能存储的数据,对读取的数据固化存储后再读取下一部分的数据,直至完成整个数据的读取。
[0067]图6为本发明具体实施例提供的一种数据固化存储的方法流程图。如图6所示,所述方法具体包括:
[0068]S601、存储控制设备接收界面设备发送的预先固化存储指令,所述预先固化存储指令中包括需要执行预先固化存储的存储设备的标识信息。
[0069]所述界面设备确定需要进行预先固化存储的存储设备的标识信息,向存储控制设备发送预先固化存储指令。在预先固化存储指令中,包括确定的需要进行预先固化存储的存储设备的标识信息。
[0070]在本发明的具体实施例中,当界面设备确定对全部的存储设备进行预先固化存储时,向所述存储控制设备发送的预先固化存储的指令中不包括所述标识信息。
[0071]在一个例子中,所述界面设备还可以选择需要进行预先固化存储的比例。所述界面设备向存储控制设备发送的预先固化存储指令中包括所述预先固化存储的比例。所述存储设备根据所述比例对存储设备进行预先固化存储
[0072]S602、对所述预先固化存储指令进行解析,以获取标识信息。
[0073]所述存储控制设备接收界面设备发送的命令,通过处理器对所述命令解析,确定所述命令为预先固化存储命令。所述处理器解析的预先固化存储命令中还包需要固化存储的存储设备的标识信息。所述存储设备的标识信息可以是存储设备所对应的节点,所述处理器根据标识信息确定所对应的存储设备。
[0074]在一个例子中,所述界面设备发送的预先固化存储指令中不包括存储设备标识,从而用于对存储系统中的所有存储设备进行预先固化存储。所述存储控制设备在接收到不包括节点信息的固化存储指令后,将启动对存储控制设备相连接的所有节点的预先固化存储操作。
[0075]S603、根据所述标识信息建立预先固化存储任务;所述建立的预先固化存储任务中包括需要执行预先固化存储任务的存储设备的标识信息。
[0076]所述处理器在确定所述指令为预先固化存储指令后,根据预先固化存储命令的信息创建预先固化存储任务。并根据预先固化存储命令中的参数和磁盘中存储的各个存储设备的信息对预先固化存储任务进行初始化,将所创建的预先固化存储任务保存在内存中。
[0077]S604、向存储设备发送预先固化存储操作指令;以使所述存储设备对缓存空间的部分空间范围锁定,并对锁定的空间范围中包括的数据进行固化存储,从而减小当前可用的缓存空间。
[0078]所述存储控制设备在预先固化存储任务创建成功后向存储设备发送预先固化存储操作指令,以使相应的存储设备在收到所述预先固化存储操作指令后对存储设备的部分缓存空间锁定,并对锁定的缓存空间中包括的数据进行固化存储,直至存储设备的缓存空间的大小满足设定值。所述存储设备在收到相应的固化存储指令后,还向存储控制设备返回信息。在一个例子中,所述存储设备向所述存储控制设备返回的结果包括存储设备的标识信息和固化存储的进度信息。所述存储控制设备根据存储设备的标识信息确定所接收的消息来自哪个存储设备。所述存储控制设备还根据当前固化存储的进度信息对存储控制设备创建的预先固化存储任务进行更新。
[0079]在一个例子中,所述存储控制设备周期性的向存储设备发送预先固化存储操作指令,所述存储控制设备在发送预先固化存储操作指令后还接收存储设备返回的预先固化存储的结果。
[0080]S605、存储设备接收存储控制设备发送的预先固化存储操作指令。
[0081]存储设备接收存储控制设备发送的预先固化存储操作指令,所述存储设备根据所述预先固化存储操作指令对存储设备的部分缓存空间进行固化存储。
[0082]S606、根据所述预先固化存储操作指令确定缓存空间中需要固化存储的空间范围;
[0083]在获取预先固化存储指令后,根据所述存储设备中配置的执行预先固化存储操作指令时需要进行预先固化存储的空间范围,确定需要固化存储的空间范围。根据磁盘中的缓存空间固化存储规则对Cache进行固化存储。
[0084]在一个例子中,当所述存储控制设备发送的预先固化存储操作指令中包括固化存储的比例时,所述存储设备根据指令中包括的时间对存储设备进行固化存储,以及根据指令中的固化存储比例选定需要固化存储的存储空间。
[0085]S607、对确定的所述空间范围中包括的数据进行固化存储,锁定所述确定的空间范围,以使得所述锁定的空间范围不再对新写入的数据提供缓存服务。
[0086]根据存储设备中的缓存空间中固化存储的规则,将缓存空间中的数据向磁盘进行固化存储,以使相应的数据在存储设备中实现永久保存。在本发明的具体实施例中,所述数据包括元数据区和数据区。所述元数据用于表示持久化存储介质中各个物理地址的数据信息,所述数据区用于存储处理器处理后需要固化存储至磁盘的数据。对所述确定的空间范围中包括的数据进行固化存储时,通过查找元数据,获取元数据中各个数据块中各条数据的存储地址。
[0087]在对选定的一个数据块或元数据块锁定,对锁定的数据区或元数据进行固化存储,在对一个数据区或元数据块锁定后的一个周期,再对另一个数据块或元数据块进行锁定,将该数据块或元数据区中包括的数据进行固化存储。直至将确定的空间范围完全锁定并固化存储。
[0088]在确定对一个数据块或元数据区固化存储后,将该数据块或元数据区锁定,以避免新写入的数据被命中到锁定后的数据块或元数据区中。而其它的数据块将按照正常的缓存空间固化存储规则进行固化存储。新的数据将被命中到还没有被锁定的数据块或元数据区中。在一个例子中,在确定对一个数据块或元数据区固化存储后,优先将该数据块或元数据区中的数据固化存储,该数据块或元数据区中正在使用的数据块或元数据区会优先将其固化存储。
[0089]在一个例子中,所示存储设备中固定的设定了需要保留的缓存空间,从而根据需要保留的缓存空间的大小确定被固化存储和锁定的缓存空间。
[0090]在本发明的具体实施例中,当所述存储设备开始执行预先固化存储操作指令后,所述存储控制设备周期性的向所述存储设备发送预先固化存储操作指令。所述存储设备在收到预先固化存储操作指令后,继续向所述存储控制设备发送当前固化存储的进度信息。以使所述存储控制设备对创建预先固化存储任务进行更新。
[0091]所述存储设备在一定周期不收到存储控制设备发送的预先固化存储指令时,将自动取消对存储设备的缓存空间中确定的空间范围的锁定。此时,新的数据将能够被命中在任意数据块中。被命中的数据的元数据将能够被命中在任意元数据区中。
[0092]界面设备还发出停止预先固化存储的指令。所述界面设备需要停止预先固化存储时,通过确定停止预先固化存储的存储设备,并将包括存储设备的标识信息的停止预先固化存储指令向存储控制设备发送。所述存储控制设备在收到停止预先固化存储指令后,将根据命令中携带的存储设备的标识信息对相应的存储设备发送停止预先固化存储操作指令。在一个例子中,当所述界面设备发送的停止预先固化存储指令为对所有存储设备停止预先固化存储时,所述指令中不包括存储设备的标识信息。所述存储控制设备将对预先固化存储任务中包括的所有标识信息所对应的存储设备发送停止预先固化存储操作指令。
[0093]所述存储控制设备根据停止预先固化存储指令中包括的存储设备的标识信息,与固化存储任务中包括的存储设备的标识信息进行对比,若存储设备中没有预先固化存储操作指令的存在,则向界面设备返回停止成功。
[0094]若停止预先固化存储指令中包括的标识信息与预先固化存储任务中包括的存储设备标识信息相符或存在,则逐一向命令中存在的存储设备发送停止预先固化存储操作指令。
[0095]图7为本发明具体实施例提供的一种存储控制设备。
[0096]接收单元701,用于接收界面设备发送的预先固化存储指令,所述预先固化存储指令中包括需要执行预先固化存储的存储设备的标识信息。
[0097]处理单元702,用于对所述预先固化存储指令进行解析,以获取标识信息。以及用于,根据所述标识信息建立预先固化存储任务,所述建立的预先固化存储任务中包括需要进行预先固化存储的存储设备的标识。
[0098]发送单元703,用于向存储设备发送预先固化存储操作指令;以使所述存储设备对缓存空间的部分空间范围锁定,并对锁定的空间范围中包括的数据进行固化存储,从而减小当前可用的缓存空间。
[0099]图8为本发明具体实施例提供的一种存储设备。
[0100]接收单元801,用于接收存储控制设备发送的预先固化存储操作指令。
[0101]处理单元802,用于根据所述预先固化存储操作指令确定缓存空间中需要固化存储的空间范围,以及用于,对确定的所述空间范围中包括的数据进行固化存储,锁定所述确定的空间范围,以使得所述锁定的空间范围不再对新写入的数据提供缓存服务或以使得所述锁定的空间范围不被后续的1操作所使用。
[0102]图9为本发明实施例提供的一种存储控制设备示意图。
[0103]如图9所示,所述存储控制设备包括:处理器901、存储器902、通信接口 903和总线904。其中,处理器901、存储器902和通信接口 903通过总线904实现彼此之间的通信连接。
[0104]处理器901可以采用通用的中央处理器(Central Processing Unit,CPU),微处理器,用于执行相关程序,以实现前述本发明方法实施例所提供的技术方案。处理器实现上的功能也可以通过应用专用集成电路(Applicat1n Specific Integrated Circuit,ASIC),或者一个或多个集成电路,
[0105]存储器902可以是只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。存储器902可以存储操作系统和其他应用程序。在通过软件或者固件来实现本发明实施例提供的技术方案时,用于实现本发明前述方法实施例提供的任一可选技术方案的程序代码保存在存储器902中,并由处理器901来执行。通信接口 903用以与其他交换机或控制控制设备通信。
[0106]总线904可包括一通路,在设备各个部件(例如处理器901、存储器902和通信接口903)之间传送信息。
[0107]图10为本发明实施例提供的一种存储设备示意图。
[0108]如图10所示,所述存储设备设备包括:处理器1001、存储器1002、通信接口 1003和总线1004。其中,处理器1001、存储器1002和通信接口 1003通过总线1004实现彼此之间的通信连接。
[0109]处理器1001可以采用通用的中央处理器(Central Processing Unii^CF1U),微处理器,用于执行存储器中存储的相关程序,以实现前述本发明方法实施例所提供的技术方案。处理器实现上的功能也可以通过专用集成电路(Applicat1n Specific IntegratedCircuit,ASIC),或者一个或多个集成电路来实现。
[0110]存储器1002可以是只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。存储器1002可以存储操作系统和其他应用程序。在通过软件或者固件来实现本发明实施例提供的技术方案时,用于实现本发明前述方法实施例提供的任一可选技术方案的程序代码保存在存储器1002中,并由处理器1001来执行。通信接口 1003用以与其他交换机或控制控制设备通信。
[0111]总线1004可包括一通路,在设备各个部件(例如处理器1001、存储器1002和通信接口 1003)之间传送信息。
[0112]专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0113]结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机磁盘(RAM)、内存、只读磁盘(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
[0114]以上所述的【具体实施方式】,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的【具体实施方式】而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种数据固化存储的方法,其特征在于,所述方法具体包括: 存储设备接收存储控制设备发送的预先固化存储操作指令; 根据所述预先固化存储操作指令确定缓存空间中需要固化存储的空间范围; 对确定的所述空间范围中的数据进行固化存储,锁定所述确定的空间范围,以使得所述锁定的空间范围不再对新写入的数据提供缓存服务。2.根据权利要求1所述的方法,其特征在于,所述根据所述预先固化存储操作指令确定缓存空间中需要固化存储的空间范围前,所述方法还包括: 所述预先固化存储操作指令中包括需要进行预先固化存储的存储设备的标识信息,根据所述标识信息确定对所述存储设备的缓存空间进行预先固化存储。3.根据权利要求1所述的方法,其特征在于,所述对确定的所示空间范围中的数据进行固化存储,锁定所述确定的空间范围具体包括: 在所述确定的空间范围中选定一个第一区域; 对所述第一区域锁定,以使所述第一区域不再对新写入的数据提供缓存服务; 在锁定第一区域的一个周期后,在确定的空间范围中选定一个第二区域,对所述第二区域锁定,以使所述第一区域和第二区域不再对新写入的数据提供缓存服务; 直至锁定的区域与所述确定的空间范围相同时,不再对新的区域进行锁定。4.根据权利要求1所述的方法,其特征在于,所述根据所述预先固化存储操作指令确定缓存空间中需要固化存储的空间范围具体包括: 根据所述预先固化存储操作指令,确定所述存储设备中配置的执行预先固化存储操作指令时需要固化存储的缓存空间的空间范围。5.根据权利要求1所述的方法,其特征在于,所述方法用于元数据格式的转换;所述空间范围中的数据包括元数据; 所述方法还包括: 存储系统升级完成后,将元数据采用升级后的格式重新读取到缓存空间中。6.一种数据固化存储的方法,其特征在于,所述方法具体包括: 存储控制设备接收界面设备发送的预先固化存储指令,所述预先固化存储指令中包括需要进行预先固化存储的存储设备的标识信息; 所述存储控制设备对所述预先固化存储指令进行解析,以获取标识信息; 所述存储控制设备根据所述标识信息建立预先固化存储任务,所述建立的预先固化存储任务中包括需要执行预先固化存储任务的存储设备的标识信息; 所述存储控制设备向存储设备发送预先固化存储操作指令,以使所述存储设备锁定缓存空间中待固化存储的空间范围,并对锁定的空间范围中包括的数据进行固化存储; 存储设备接收存储控制设备发送的预先固化存储操作指令; 所述存储设备根据所述预先固化存储操作指令确定缓存空间中需要固化存储的所述空间范围; 所述存储设备对确定的所述空间范围中的数据进行固化存储,锁定所述确定的空间范围,以使得所述锁定的空间范围不再对新写入的数据提供缓存服务。7.一种存储设备,其特征在于,包括: 接收单元,用于接收存储控制设备发送的预先固化存储操作指令; 处理单元,用于根据所述预先固化存储操作指令确定缓存空间中需要固化存储的空间范围;对确定的所述空间范围中的数据进行固化存储,锁定所述确定的空间范围,以使得所述锁定的空间范围不再对新写入的数据提供缓存服务。8.根据权利要求7所述的存储设备,其特征在于,所述处理单元根据所述预先固化存储操作指令确定缓存空间中需要固化存储的空间范围前,还包括: 所述预先固化存储操作指令中包括需要进行预先固化存储的存储设备的标识信息,所述处理单元根据所述标识信息,确定对存储设备的缓存空间进行预先固化存储。9.根据权利要求7所述的一种存储设备,其特征在于,所述处理单元对确定的所述空间范围中包括的数据进行固化存储,锁定所述确定的空间范围具体包括: 所述处理单元在所述确定的空间范围中选定一个第一区域; 对所述第一区域锁定,以使所述第一区域不再对新写入的数据提供缓存服务; 在锁定第一区域的一个周期后,在确定的空间范围中选定一个第二区域,对所述第二区域锁定,以使所述第一区域和第二区域不再对新写入的数据提供缓存服务; 直至锁定的区域与所述确定的空间范围相同时,不再对新的区域进行锁定。10.根据权利要求7所述的存储设备,其特征在于,所述处理单元根据所述预先固化存储操作指令确定缓存空间中需要固化存储的空间范围具体包括: 根据所述预先固化存储操作指令,确定所述存储设备中配置的执行预先固化存储操作指令时需要固化存储的缓存空间的空间范围。11.根据权利要求7所述的存储设备,其特征在于,所述存储设备用于存储系统中,所述存储系统可用于元数据格式的转换;所述空间范围中的数据包括元数据; 所述方法还包括: 存储系统升级完成后,将元数据采用升级后的格式重新读取到缓存空间中。12.一种存储设备,其特征在于,所述存储设备包括: 处理器、存储器、通信接口和总线,其中,所述处理器、所述存储器和所述通信接口通过所述总线通信; 所述通信接口用于与所述存储控制设备连接; 所述存储器用于存储程序; 当所述装置运行时,所述处理器用于执行所述存储器存储的所述程序,以执行权利要求I至5任一项所述的方法。13.一种存储系统,其特征在于,所述存储系统包括存储控制设备和存储设备; 所述存储控制设备,用于接收界面设备发送的预先固化存储指令,所述预先固化存储指令中包括需要进行预先固化存储的存储设备的标识信息; 所述存储控制设备,用于对所述预先固化存储指令进行解析,以获取标识信息; 所述存储控制设备,用于根据所述标识信息建立预先固化存储任务,所述建立的预先固化存储任务中包括需要执行预先固化存储任务的存储设备的标识信息; 所述存储控制设备,用于向存储设备发送预先固化存储操作指令,以使所述存储设备锁定缓存空间中待固化存储的空间范围,并对锁定的空间范围中包括的数据进行固化存储; 存储设备,用于接收存储控制设备发送的预先固化存储操作指令; 所述存储设备,用于根据所述预先固化存储操作指令确定缓存空间中需要固化存储的所述空间范围; 所述存储设备,用于对确定的所述空间范围中包括的数据进行固化存储,锁定所述确定的空间范围,以使得所述锁定的空间范围不再对新写入的数据提供缓存服务。
【文档编号】G06F12/0866GK106095697SQ201610399434
【公开日】2016年11月9日
【申请日】2016年6月7日
【发明人】蒋立新, 陈健
【申请人】华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1