本发明涉及固态存储设备控制,具体涉及一种混合固态硬盘的数据分配方法、装置及存储系统。
背景技术:
1、nand flash颗粒从每个存储单元能够存储的数据位可以分为slc、mlc、tlc和qlc这四种。从读写性能和寿命上而言,slc>mlc>tlc>qlc。当前消费级固态硬盘主要以tlc颗粒为主,其读写性能要远远弱于slc颗粒。为了在相同成本的条件下,让用户享受更强大的读写性能,将tlc颗粒切换至slc工作模式,并将用户写请求分担到slc区域,极大提高了ssd的读写性能。从用户角度观察,以tlc颗粒的成本得到了slc颗粒的高性能体验。
2、传统的slc和tlc混合硬盘方案,在处理用户写请求时,将所有用户资料全都写入到slc缓存中,slc比tlc具有更好的读写性能和更久的寿命,这样能够显著提高用户体验;但是当slc缓存写满后,需要将slc中的有效数据批量迁移至tlc中,该操作会占用大量后端带宽,从而大大降低用户体验。另外,该方案会导致所有的用户写入至少进行了两次写入操作,若slc中存在大量需要频繁修改的数据,slc和tlc之间的数据交换则更加频繁,这种行为会导致不必要的内部写放大,大大降低硬盘的使用寿命。
技术实现思路
1、有鉴于此,本发明实施例提供了一种混合固态硬盘的数据分配方法、装置及存储系统,用以解决或部分解决上述问题。
2、第一方面,本发明实施例提供了一种混合固态硬盘的数据分配方法,包括以下步骤:
3、前端冷热数据分流:根据用户写请求的大小,通过阈值tv判断所述写请求数据的冷热属性,其中,所述写请求大小小于所述阈值tv的数据被判定为热数据并写入slc缓存中,所述写请求大小大于或等于所述阈值tv的数据被判定为冷数据并写入tlc闪存中;
4、后端冷热数据再分配:在所述热数据在写入所述slc缓存前,需检查所述slc缓存是否已满,若已满则将lrw队列队首的数据块从所述slc缓存转存到所述tlc闪存中以释放slc缓存空间,并更新所述lrw队列及地址映射表;其中,所述slc缓存中的数据均存放于所述lrw队列中,在所述lrw队列中,队列首部存放了最近最少写入次数的数据块(lca),队列尾部存放了最近最多写入次数的数据块(lca);
5、前端冷热分流阀自适应调节:根据所述slc缓存中预设的冷数据计数器(cntslccold)和所述tlc闪存中预设的热数据计数器(cnttlchot)的实时数据,动态调整所述前端冷热数据分流步骤中的所述阈值tv,以维持所述slc缓存主要存储热数据,所述tlc闪存主要存储冷数据的理想状态。
6、上述实施例至少具有如下技术效果:
7、本数据分配方法通过前端和后端双重冷热数据分流机制,结合自适应调节的阈值设定,实现了对存储系统中数据的高效管理和优化,显著提高了存储设备的读写性能和寿命;前端分流确保热数据优先存储在高性能的slc缓存中,而后端再分配则及时清理slc缓存中的冷数据,避免资源浪费;同时,自适应调节机制保证了分流策略能够灵活应对不同的工作负载变化,维持系统性能的最优化。
8、根据本发明实施例的一种具体实现方式,所述前端冷热数据分流步骤中,所述阈值tv的初始设定值通过人为设定或根据历史数据动态调整,用于区分用户写请求中数据的冷热属性。
9、根据本发明实施例的一种具体实现方式,所述后端冷热数据再分配步骤中,所述lrw队列通过记录数据块的最近写入次数来维护数据块的冷热状态,使得频繁更新的热数据块保持在slc缓存中,而较少更新的冷数据块则被转存到tlc闪存中。热数据在lrw中“降温”的过程,就是lca根据最近写入次数从队首到队尾的过程。
10、根据本发明实施例的一种具体实现方式,所述前端冷热分流阀自适应调节步骤中,所述冷数据计数器(cntslccold)和所述热数据计数器(cnttlchot)的计数分别反映了所述slc缓存中冷数据的数量和所述tlc闪存中误存的热数据的数量。通过比较这两个计数器的值,并依据预设的调节规则动态调整tv值,以达到优化存储效率和性能的目的。
11、根据本发明实施例的一种具体实现方式,所述阈值tv调整方式如下:
12、
13、其中,swapratio为冷热交换比例,cnttlchot为热数据计数器的计数,cntslccold为冷数据计数器的计数,α为常数;
14、式(1)中,若swapratio保持在(1-δ,1+δ)范围内,δ为常数,表示当前阈值tv取值合理,所述阈值tv的值保持不变;若swapratio>1+δ,表示cnttlchot过大,即大量热数据流入tlc闪存中,此时增大所述阈值tv的值;若swapratio<1-δ,表示cntslccold过大,即大量冷数据流入slc缓存中,此时减小所述阈值tv的值。通过检测slc和tlc之间的数据交换,动态调节冷热阀的阈值tv。
15、根据本发明实施例的一种具体实现方式,所述阈值tv的值调整时,按固定数值增减,或按比例增减。
16、第二方面,本发明实施例提供了一种混合固态硬盘的数据分配装置,包括:
17、前端冷热数据分流模块,用以根据用户写请求的大小,通过阈值tv判断所述写请求数据的冷热属性,其中,所述写请求大小小于所述阈值tv的数据被判定为热数据并写入slc缓存中,所述写请求大小大于或等于所述阈值tv的数据被判定为冷数据并写入tlc闪存中;
18、后端冷热数据再分配模块,用以在所述热数据在写入所述slc缓存前,需检查所述slc缓存是否已满,若已满则将lrw队列队首的数据块从所述slc缓存转存到所述tlc闪存中以释放slc缓存空间,并更新所述lrw队列及地址映射表;其中,所述slc缓存中的数据均存放于所述lrw队列中,在所述lrw队列中,队列首部存放了最近最少写入次数的数据块(lca),队列尾部存放了最近最多写入次数的数据块(lca);
19、前端冷热分流阀自适应调节模块,用以根据所述slc缓存中预设的冷数据计数器(cntslccold)和所述tlc闪存中预设的热数据计数器(cnttlchot)的实时数据,动态调整所述前端冷热数据分流步骤中的所述阈值tv,以维持所述slc缓存主要存储热数据,所述tlc闪存主要存储冷数据的理想状态。
20、第三方面,本发明实施例还提供了一种存储系统,该存储系统实现了前述第一方面或第一方面的任一实现方式中的数据分配方法的步骤,该存储系统包括用于存储数据的slc缓存和tlc闪存,以及用于执行冷热数据分流和再分配操作的固件逻辑。
21、根据本发明实施例的一种具体实现方式,该存储系统还包括用于监控slc缓存和tlc闪存中数据状态,并根据监控结果调整前端冷热分流阀阈值tv的监控与调节模块。
22、本发明的实施例至少具有如下技术效果:
23、第一、本发明通过前端和后端冷热数据分配组合的方式,极大减少了slc和tlc区域间的数据交换,节省了后端带宽;
24、第二、本发明通过前端和后端冷热数据分配组合的方式,极大减少了slc和tlc区域间的数据交换,减少了擦除次数,提高了硬盘的使用寿命;
25、第三、本发明通过前端和后端冷热数据分配组合的方式,保证了有限时间内热数据都在slc区域,提高了硬盘的读写性能;
26、第四、本发明通过动态调节前端冷热阀阈值,进一步减少slc和tlc区域间的数据交换,优化了硬盘整体的写放大。
1.一种混合固态硬盘的数据分配方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的数据分配方法,其特征在于:所述前端冷热数据分流步骤中,所述阈值tv的初始设定值通过人为设定或根据历史数据动态调整,用于区分所述写请求中数据的冷热属性。
3.根据权利要求1所述的数据分配方法,其特征在于:所述后端冷热数据再分配步骤中,所述lrw队列通过记录数据块的最近写入次数来维护数据块的冷热状态,使得频繁更新的数据块保持在所述slc缓存中,而较少更新的数据块则被转存到所述tlc闪存中。
4.根据权利要求1所述的数据分配方法,其特征在于:所述前端冷热分流阀自适应调节步骤中,所述冷数据计数器和所述热数据计数器的计数分别反映了所述slc缓存中冷数据的数量和所述tlc闪存中热数据的数量。
5.根据权利要求4所述的数据分配方法,其特征在于:所述阈值tv调整方式如下:
6.根据权利要求5所述的数据分配方法,其特征在于:所述阈值tv的值在调整时,按固定数值增减,或按比例增减。
7.一种混合固态硬盘的数据分配装置,其特征在于,采用如权利要求1-6任一所述的数据分配方法,包括:
8.一种存储系统,其特征在于:实现了如权利要求1-6任一所述的数据分配方法的步骤,所述存储系统包括用于存储数据的slc缓存和tlc闪存,以及用于执行冷热数据分流和再分配操作的固件逻辑。
9.根据权利要求8所述的存储系统,其特征在于:还包括用于监控所述slc缓存和所述tlc闪存中数据状态,并根据监控结果调整所述阈值tv的监控与调节模块。