在存储设备中存储数据的方法和存储控制器的制造方法

文档序号:9489389阅读:444来源:国知局
在存储设备中存储数据的方法和存储控制器的制造方法
【技术领域】
[0001]本发明涉及计算机领域,尤其涉及在存储设备中存储数据的方法和存储控制器。
【背景技术】
[0002]随着网络技术的不断发展,数据的存储方式也发生了很大的变化,在一种典型的存储场景下,主机先通过网络文件系统(Network Fi le System,NFS)协议或通用网络文件系统(Common Internet Fi le System, CIFS)协议挂载到存储阵列,然后再将文件写入存储阵列中,其中,主机将文件写入存储阵列中之前,文件中的数据会经过缓存(cache)模块缓存,当缓存中文件的数据达到向下写盘条件时,先由该缓存模块的下层模块将文件中的数据按照固定大小分块,重删、压缩等,再由变长分配器(grain)模块分配空间,将数据下盘。
[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]图1为本发明实施例一提供的在存储设备中存储数据的方法流程图;
[0040]图2为本发明实施例二提供的在存储设备中存储数据的方法流程图;
[0041]图3为本发明实施例三提供的数据存储方法示意图;
[0042]图4为本发明实施例四提供的存储控制器结构图;
[0043]图5为本发明实施例五提供的存储控制器结构图。
【具体实施方式】
[0044]下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
[0045]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述。
[0046]图1为本发明实施例一提供的在存储设备中存储数据的方法流程图,其中,存储设备包括存储控制器和存储介质,该方法的执行主体为存储控制器,该方法包括:
[0047]步骤101,存储控制器获得多个
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1