数据存储装置和方法

文档序号:10624507阅读:1021来源:国知局
数据存储装置和方法
【专利摘要】本发明公开了一种数据存储方法,包括:接收写数据请求后,根据写数据操作度将数据写入第一数据层或第二数据层中;接收读数据请求后,根据读数据操作度查询第二数据层或第一数据层,并返回查询结果。本发明还公开了一种数据存储装置,包括:处理器、第一数据层和第二数据层。
【专利说明】
数据存储装置和方法
技术领域
[0001] 本发明设及数据存储技术,尤其设及一种数据存储装置和方法。
【背景技术】
[0002] 随着数据库技术的发展和应用,数据库存储的数据量从20世纪80年代的兆(M) 字节及千兆(G)字节发展到现在的兆兆灯)字节和千兆兆(巧字节。同时,用户的查询需 求也越来越复杂,设及的已不仅是查询或操纵一张关系表中的一条或几条记录,而且要对 多张表中千万条记录的数据进行数据分析和信息综合,关系数据库系统已不能全部满足运 一要求。现有的大数据处理方案有采用大规模并行处理系统(MPP,Massively Parallel Processing)架构的数据库系统Greenplum、采用分布式系统基础架构的化doop等。并且, 由大量X86PC加本地硬盘(皿D,Hard Disk化ive)存储组成大规模计算集群的架构已经成 为大多数大数据解决方案的主要运行平台,大量的服务器本地硬盘也成了大数据时代主要 的存储方式。
[0003] 但是,传统数据都是基于硬盘存储、管理和输入输出(I/O)的,而硬盘的发展速度 相对十分缓慢。从IBM公司在1956年9月份推出世界上第一块硬盘至今,主流企业级硬盘 的转速已在15, 000RPM(转每分)停留了许多年,除了容量还能不断增加外,其他各方面性 能一直无法获得更有效的提高,可W说硬盘的性能已经在一定程度上限制了系统整体性能 的提升。虽然企业级硬盘可W通过硬盘阵列来提升整体的数据存储和访问效率,但是由于 硬盘的数据读/写性能无法大幅提高,数据传输等待时间太长,导致系统数据读/写性能需 求和供给之间存在较大矛盾。当前采用硬盘阵列技术也难W满足大数据、云计算等背景下 的系统应用需求。
[0004] 从根本上看,存储系统的性能取决于其所依赖的存储器件。皿D仍然是目前最主要 的大容量、低成本存储器件。多种新型技术如垂直记录的研究和应用使硬盘的容量在过去 的30年里增加了 100, 000倍,但由于受制于磁头的移动速度,其访问延迟仅仅提高了 2倍。 而且进一步提高硬盘转速会带来能源消耗和溫度问题,因此硬盘的容量与性能之间的矛盾 十分突出。 阳〇化]随着大数据时代的发展,移动的大数据业务将会有很大的发展。本地硬盘存储也 将得到大规模的应用。然而在大多数情况下,基于服务器的本地存储效率并不高,尤其是大 容量硬盘的I/O处理能力更加不足。采用硬盘阵列虽然能在一定程度上解决一些存储效率 问题,但同时存在成本、物理空间管理、能耗等方面的缺点。
[0006] 近年来,固态硬盘(SSD,Solid State Disk/化ive)的快速发展为提升存储系统性 能提供了新的重大机遇。SSD采样用固态电子存储忍片阵列,具有随机读取速度快、功耗低、 抗震性好等优点。尽管目前SSD还存在价格偏高,容量较小,并且存在写前擦除、耐久性等 限制,SSD与皿D良好的互补性仍然为设计大容量、高性能、低成本的混合存储系统提供了 崭新的机遇。
[0007] 但是,在SSD和皿D的混合存储系统中,SSD的写前擦除和写寿命限制对系统的写 操作性能影响较大。并且,由于SSD固有的属性限制,SSD还存在不能就地更新(inplace updating)、需写前擦除、擦除寿命等问题。运些问题导致现有混合存储系统中存在写操作 面临两难的困境:对于数据的写入策略,若频繁写入SSD,则会影响SSD的使用寿命,但如果 频繁写入皿D则又会影响系统的写性能。

【发明内容】

[0008] 为解决现有存在的技术问题,本发明实施例期望提供一种数据存储装置和方法, 能够提高写数据操作和读数据的操作性能,且在保证数据安全的同时降低存储成本。
[0009] 本发明实施例的技术方案是运样实现的:
[0010] 本发明实施例提供的一种数据存储方法,包括:
[0011] 接收写数据请求后,根据写数据操作度将数据写入第一数据层或第二数据层中;
[0012] 接收读数据请求后,根据读数据操作度查询第二数据层或第一数据层,并返回查 询结果。
[0013] 上述方案中,所述第一数据层包括第一非易失性存储器,所述第二数据层包括第 二非易失性存储器。
[0014] 上述方案中,所述方法进一步包括,根据数据使用频率算法和预测命中率算法即 时分析,确定所述写数据操作度或所述读数据操作度。
[0015] 上述方案中,所述将数据写入第一数据层或第二数据层中包括:采用回写模式 Write-Back所述将数据写入第一非易失性存储器或第二非易失性存储器中。
[0016] 上述方案中,所述将数据写入第一数据层或第二数据层中包括:将所述数据W数 据块为单位,通过直接映射、全相联映射或组相联映射将数据块写入所述第一非易失性存 储器或所述第二非易失性存储器中。
[0017] 上述方案中,所述方法进一步包括:在查询第二数据层或第一数据层之前,根据读 数据操作度查询易失性存储器;设置所述易失性存储器的应用存储空间和读/写加速存储 空间,并设置所述易失性存储器的读/写加速存储空间最大和最小可用阔值。
[0018] 本发明实施例提供的一种数据存储装置,包括:处理器、第一数据层和第二数据 层,
[0019] 所述处理器用于:接收写数据请求后,根据写数据操作度将数据写入第一数据层 或第二数据层中;接收读数据请求后,根据读数据操作度查询第二数据层或第一数据层,并 返回查询结果;
[0020] 所述第一数据层和第二数据层用于存储所述数据。
[0021] 上述方案中,所述第一数据层包括第一非易失性存储器,所述第二数据层包括第 二非易失性存储器。
[0022] 上述方案中,所述处理器进一步用于根据数据使用频率算法和预测命中率算法即 时分析确定所述写数据操作度或所述读数据操作度。
[0023] 上述方案中,所述装置进一步包括:易失性存储器和所述易失性存储器的物理镜 像;
[0024] 所述处理器进一步用于在查询第二数据层或第一数据层之前,根据读数据操作度 查询所述易失性存储器,并设置所述易失性存储器的读/写加速存储空间最大和最小可用 阔值。
[00巧]上述方案中,所述处理器进一步用于将所述数据W数据块为单位,通过直接映射、 全相联映射或组相联映射将数据块写入所述第一非易失性存储器或所述第二非易失性存 储器中。
[00%] 上述方案中,所述第一非易失性存储器包括硬盘;所述第二非易失性存储器包括 固态硬盘和/或非易失性随机访问存储器;所述易失性存储器包括随机存取存储器。
[0027] 本发明实施例提供的数据存储方法,根据写数据操作度将数据写入第一数据层或 第二数据层中,并根据读数据操作度查询第一数据层或第二数据层,从而实现了写数据操 作与读数据操作的分流,不仅同时提高了写数据操作和读数据操作性能,并且增强了数据 存储的可靠性。
[0028] 本发明实施例提供的数据存储装置,设置第一非易失性存储器、第二非易失性存 储器及易失性存储器分别用于根据写/读数据操作度存储数据,如此,不仅综合考虑了各 种存储介质类型、数据负载、存储系统架构、存储容量、性能、可靠性、成本、W及能耗等多种 因素的影响,并通过缓存分层结构将SSD和/或NVRAM作为皿D的缓存,实现了写数据操作 和读数据操作的分流,不仅能够降低存储成本,还能够同时提高写数据操作和读数据操作 性能。
[0029] 本发明实施例通过为随机存取存储器盘(Ramdisk)设置最大和最小可用阔值来 保证最大和最小可用量,从而保证了应用存储空间不受影响。
[0030] 本发明实施例通过设置所述易失性存储器的物理镜像,能避免因易失性存储器损 坏而导致无法访问数据。
[0031] 本发明实施例通过回写(Write-Back)模式在执行写数据操作过程中对Ramdisk 和皿D加锁,从而保证了数据的安全。
【附图说明】
[0032] 图1为本发明实施例提供的数据存储方法的流程示意图;
[0033] 图2为本发明实施例提供的缓存分层结构示意图;
[0034] 图3为本发明实施例提供的写数据操作的流程示意图;
[0035] 图4为本发明实施例提供的数据映射示意图;
[0036] 图5为本发明实施例提供的数据存储装置的组成结构示意图。
【具体实施方式】
[0037] 在本发明公开的各种实施例中,描述了一种数据存储方法,包括接收写数据请求 后,根据写数据操作度将数据写入第一数据层或第二数据层中;接收读数据请求后,根据读 数据操作度查询第二数据层或第一数据层,并返回查询结果;如此,能实现读数据操作和写 数据操作的分流,同时能提高读数据操作和写数据操作性能。
[0038] 下面通过具体实施例结合附图对本发明做进一步的详细说明。
[0039] 在如图1所示的本发明一个实施例中,所公开的数据存储方法包括W下步骤:
[0040] 步骤S101 :接收写数据请求或读数据请求;对于写数据请求,执行步骤102,对于 读数据请求,执行步骤103;
[0041] 步骤S102 :根据写数据操作度将数据写入第一数据层或第二数据层中;
[0042] 其中,上述第一数据层可W包括第一非易失性存储器,第二数据层可W包括第二 非易失性存储器;
[0043] 并且,将数据写入第一数据层或第二数据层中可W是将数据写入第一非易失性存 储器或第二非易失性存储器中;
[0044] 上述第一非易失性存储器或第二非易失性存储器可W根据各种存储介质的特性 进行选择。表1列出了各种存储介质的特性对比:
[0045]
[0046] 表 1
[0047] 综合考虑表1所列出的各种存储介质类型、数据负载、存储系统架构、存储容 量、性能、可靠性、成本、W及能耗等多种因素的影响,上述第一非易失性存储器可W包括 皿D,所述第二非易失性存储器可W包括SSD和/或非易失性随机访问存储器(NVRAM, Non-Volatile Random Access Memory)。 W48] 在步骤S102中,还可W根据数据使用频率算法和预测命中率算法即时分析,确定 所述写数据操作度或所述读数据操作度。
[0049] 其中,写数据操作度为单位时间内执行写数据操作的次数化tW,单位时间可W为 小时、天或周;读数据操作度为单位存储空间内执行读数据操作的次数化tR。
[0050] 其中,频率算法的公式为
[0051] 参数i为数据块标识,其取值范围是1~k,k为数据存储装置的存储块的数量;参 数t表示数据采集周期,其取值可W是小时、天或周;参数师lock表示每个数据块在数据采 集周期内执行写数据操作的次数,其取值范围是0~1000,并可W将师lock的值超过1000 的数据块标识为热点数据;
[0052] 其中,预测命中率算法的公式为:P = Sn/N ;
[0053] P为预测命中率;参数Sn表示历史热点数据采集热点数据集合,其取值范围为前N 个执行写数据操作的次数最多的数据块,即Sn =取前N个RANKOlotWi);
[0054] 根据数据使用频率算法和预测命中率算法即时分析确定所述写数据操作度的计 算公式为:M= aP+PHotW;
[0055] 参数Μ表示需要缓存的数据,参数α、β的取值范围为0~1,且满足α+β =1。
[0056] 进一步地,可W将写数据操作度符合Μ特征的高频度热点数据写入所述第二数据 层。
[0057] 上述将数据写入第一数据层或第二数据层中可W包括:采用Write-Back模式所 述将数据写入第一非易失性存储器或第二非易失性存储器中。
[0058] 上述将数据写入第一数据层或第二数据层中还可W包括:将所述数据W数据块为 单位,通过直接映射、全相联映射或组相联映射将数据块写入所述第一非易失性存储器或 所述第二非易失性存储器中。
[0059] 步骤S103 :根据读数据操作度查询第二数据层或第一数据层;
[0060] 其中,可W根据数据使用频率算法和预测命中率算法即时分析,确定所述读数据 操作度;进一步地,可W根据读数据操作度设置符合Μ特征的频度统计策略,先查询第二数 据层再查询第一数据层;进一步地,也可W根据读数据操作度的高低,先查询易失性存储 器,如果没结果返回,则查询第二非易失性存储器,如果仍没结果返回,再查询第一非易失 性存储器。
[0061] 上述易失性存储器可W设置应用存储空间和读/写加速存储空间,其中,易失性 存储器可W是随机存取存储器(RAM, Random Access Memcxry),读/写加速存储空间可W进 一步设置为Ramdisk,并且可W为Ramdisk设置最大和最小可用阔值W保证最大和最小可 用量,从而能够保证应用存储空间不受影响。
[0062] 并且,还可W进一步设置所述易失性存储器的物理镜像,从而能够避免因易失性 存储器损坏而导致无法访问数据。 阳06引步骤S104 :返回查询结果。
[0064]在如图2所示的本发明一个实施例中,提供了缓存分层结构,将逻辑数据层的数 据A-E分别存储在第一数据层和第二数据层,逻辑数据层的逻辑地址与第一数据层物理地 址--对应。 阳0化]其中,第一数据层可W由皿D设备构成,第二数据层可W由SSD和/或NVRAM设备 构成。SSD和/或NVRAM作为皿D的缓存,接收读数据请求后,先在第二数据层中查询是否 已经缓存该数据,如果已经缓存,则访问SSD和/或NVRAM设备;否则,访问皿D设备。本发 明实施例提供的缓存分层结构,通过引入比随机存取存储器容量更大的第二数据层,能够 缓存更多数据,提高读数据操作性能。
[0066] 并且,接收写数据请求后,可W先将数据预写入第二数据层的SSD和/或NVRAM设 备中,然后再批量写入皿D设备。本发明实施例提供的缓存分层结构,通过引入比皿D设备 随机写入性能更高的第二数据层,能够提高写数据操作性能。
[0067] 在本发明的一个实施例中,缓存分层结构可W进一步采用闪存缓存flashcache 结构。
[0068] 本发明实施例提供的缓存分层结构,综合考虑了各种存储介质类型、数据负载、存 储系统架构、存储容量、性能、可靠性、成本、W及能耗等多种因素的影响,通过将SSD和/或 NVRAM作为皿D的缓存,实现了写数据操作和读数据操作的分流,不仅同时提高了写数据操 作和读数据操作性能,并且增强了数据存储的可靠性。
[0069] 在如图3所示的本发明一个实施例中,写数据操作采用Write-Back模式,包括W 下步骤:
[0070] 步骤S301 :如果要写入的数据已存储在易失性存储器和第一非易失性存储器中;
[0071] 运里,所述已存储可W是已经存储在Ramdisk和皿D中,那么,就对Ramdisk和皿D 加锁化ock);
[0072] 步骤S302 :将数据写入第二非易失性存储器中;
[0073] 运里,所述第二非易失性存储器可W是SSD和/或NVRAM中;
[0074] 步骤S303 :将第二非易失性存储器中的相应数据写入Ramdisk中,解除RAMDISK 上的Lock ; 阳0巧]步骤S304 :将第二非易失性存储器中的相应数据写入皿D中,解除皿D上的Lock。
[0076] 在如图4所示的本发明一个实施例中,数据W数据块化lock)为单位存储在存储 装置中。下面结合图4对本发明实施例提供的数据存储装置的逻辑地址与物理地址映射做 进一步的详细说明。
[0077] 对于写/读数据操作请求,需要考虑如何将数据的逻辑地址映射到相应的物理地 址,即映射规则。其中,映射规则包括映射粒度,即存储装置能够识别的数据块的最基本单 位,可W包括一个或多个数据块。
[0078] 数据块级映射是映射粒度最细的映射,可W将每一个4KB的数据块作为基本映射 单元。所有写/读数据操作请求根据起始物理地址,如扇区号化n,并按照取模运算、哈希运 算等算法,将数据的逻辑地址映射到数据存储装置的物理地址。
[0079] 数据块级映射可W采用缓存分层结构,通过直接映射、全相联映射或组相联映射 将数据块映射到数据存储装置相应的物理地址中。
[0080] 图4中示出的实施例采用组相联映射,其中,先通过如下公式计算目标组:
[0081] 目标组=(起始扇区号/(数据块大小*组大小))mod(组的数量)
[0082] 例如,在确定为目标组3之后,在目标组3内遍历查找空闲或标记为无效 (invalid)的扇区,例如:目标组3中第一个空闲或标记为invalid的扇区如图4中斜线填 充所示。图4中深色填充的扇区表示为非空闲或标记为有效(valid),如果在目标组内没 有查找到相应空闲或标记为invalid的扇区,则按照近期最少使用算法化east Recently Used, LRU)替换目标组内的相应扇区。
[0083] 在如图5所示的本发明一个实施例中,所述数据存储装置包括:处理器、第一数据 层和第二数据层。
[0084] 所述处理器用于:接收写数据请求后,根据写数据操作度将数据写入第一数据层 或第二数据层中;接收读数据请求后,根据读数据操作度查询第二数据层或第一数据层,并 返回查询结果;
[00化]所述第一数据层和第二数据层用于存储所述数据。
[0086] 上述第一数据层可W包括第一非易失性存储器,第二数据层可W包括第二非易失 性存储器。
[0087] 上述处理器可W进一步用于根据数据使用频率算法和预测命中率算法即时分析, 确定所述写数据操作度或所述读数据操作度。
[0088] 上述装置可W进一步包括易失性存储器,用于存储所述数据;上述处理器可W进 一步用于在查询第二数据层或第一数据层之前,根据读数据操作度查询所述易失性存储 器。
[0089] 上述数据存储装置可W进一步包括所述易失性存储器的物理镜像;所述处理器进 一步用于设置所述易失性存储器最大和最小可用阔值。
[0090] 上述处理器可W进一步用于将所述数据W数据块为单位,通过直接映射、全相联 映射或组相联映射将数据块写入所述第一非易失性存储器或所述第二非易失性存储器中。
[0091] W上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
【主权项】
1. 一种数据存储方法,其特征在于,该方法包括: 接收写数据请求后,根据写数据操作度将数据写入第一数据层或第二数据层中; 接收读数据请求后,根据读数据操作度查询第二数据层或第一数据层,并返回查询结 果。2. 根据权利要求1所述的方法,其特征在于,所述第一数据层包括第一非易失性存储 器,所述第二数据层包括第二非易失性存储器。3. 根据权利要求1所述的方法,其特征在于,所述方法进一步包括,根据数据使用频率 算法和预测命中率算法即时分析,确定所述写数据操作度或所述读数据操作度。4. 根据权利要求2所述的方法,其特征在于,所述将数据写入第一数据层或第二数据 层中包括:采用回写模式Write-Back所述将数据写入第一非易失性存储器或第二非易失 性存储器中。5. 根据权利要求2所述的方法,其特征在于,所述将数据写入第一数据层或第二数据 层中包括:将所述数据以数据块为单位,通过直接映射、全相联映射或组相联映射将数据块 写入所述第一非易失性存储器或所述第二非易失性存储器中。6. 根据权利要求1至5任一项所述的方法,其特征在于,所述方法进一步包括:在查询 第二数据层或第一数据层之前,根据读数据操作度查询易失性存储器;设置所述易失性存 储器的应用存储空间和读/写加速存储空间,并设置所述易失性存储器的读/写加速存储 空间最大和最小可用阈值。7. -种数据存储装置,包括:处理器、第一数据层和第二数据层,其特征在于, 所述处理器用于:接收写数据请求后,根据写数据操作度将数据写入第一数据层或第 二数据层中;接收读数据请求后,根据读数据操作度查询第二数据层或第一数据层,并返回 查询结果; 所述第一数据层和第二数据层用于存储所述数据。8. 根据权利要求7所述的数据存储装置,其特征在于,所述第一数据层包括第一非易 失性存储器,所述第二数据层包括第二非易失性存储器。9. 根据权利要求7所述的数据存储装置,其特征在于,所述处理器进一步用于根据数 据使用频率算法和预测命中率算法即时分析确定所述写数据操作度或所述读数据操作度。10. 根据权利要求8所述的数据存储装置,其特征在于,所述装置进一步包括:易失性 存储器和所述易失性存储器的物理镜像; 所述处理器进一步用于在查询第二数据层或第一数据层之前,根据读数据操作度查 询所述易失性存储器,并设置所述易失性存储器的读/写加速存储空间最大和最小可用阈 值。11. 根据权利要求8所述的数据存储装置,其特征在于,所述处理器进一步用于将所述 数据以数据块为单位,通过直接映射、全相联映射或组相联映射将数据块写入所述第一非 易失性存储器或所述第二非易失性存储器中。12. 根据权利要求8至11任一项所述的数据存储装置,其特征在于,所述第一非易失 性存储器包括硬盘;所述第二非易失性存储器包括固态硬盘和/或非易失性随机访问存储 器;所述易失性存储器包括随机存取存储器。
【文档编号】G06F3/06GK105988720SQ201510067474
【公开日】2016年10月5日
【申请日】2015年2月9日
【发明人】陈航, 郭岳, 王晓征, 徐征
【申请人】中国移动通信集团浙江有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1