一种基于混合式存储的请求分发方法技术

技术编号:24330496 阅读:22 留言:0更新日期:2020-05-29 19:26
本发明专利技术公开了一种基于混合存储的请求分发方法,该方法通过将存储介质特性与I/O请求特性相结合,提高了混合式存储设备的性能。为减少CPU核之间同时访问同一队列所产生的开销以及简化请求分发管理,本发明专利技术提出在队列设置时,通过对设备队列与存储介质、CPU核与设备队列的绑定,实现CPU核与存储介质的绑定。为充分结合I/O请求特性与存储介质特性,本发明专利技术提出请求分发前先对请求进行合并,并根据请求类型发送到对应的设备队列中。同时,本发明专利技术提出采用灵活的分发机制,以最大限度地利用混合式存储设备的性能。根据上述方法,本发明专利技术优化了混合式存储设备中的数据管理,减少了仅使用NVM设备作为性能层所产生的请求拥堵与设备损耗,提升了混合式存储的性能。

A request distribution method based on hybrid storage

【技术实现步骤摘要】
一种基于混合式存储的请求分发方法
本专利技术涉及混合式存储
,特别是涉及一种基于混合式存储的请求分发方法。
技术介绍
近年来,数据以指数级的速度增长,除了存储容量的需求,数据的访问速度和可靠性成为影响用户体验的关键因素。随着存储工艺的发展,以3DNAND为存储介质的固态硬盘不断发展,从存储1bit数据的SLC(Single-LevelCell)到存储4bit数据的QLC(Quad-LevelCell),闪存存储器朝着存储密度更大、尺寸更小的方向发展,由于其较高的访问性能、较大的容量被广泛应用到数据中心以及嵌入式设备中。然而,DRAM与NANDflash之间的性能鸿沟仍然是不容忽视的,DRAM十几纳秒的延迟仍比NANDflash约100微妙的延迟快多个数量级。为了解决上述性能差异,多种新型存储介质不断发展,以3DXpoint为例,3DXpoint降低了存储介质延迟和控制器延迟,使其读写性能更接近DRAM,且具有非易失性,成本介于DRAM和NANDflash之间。出于成本和性能的考量,以新型存储介质NVM和传统NANDflash存储介质所搭建的混合式存储成为企业存储的重要解决方案。然而,由于NVM与NANDflash之间的性能及容量差异,如何利用不同存储器件的特性并结合数据的访问特点进行数据布局成为影响混合式存储性能的关键问题。常见混合式存储结构以分层和缓存方式为主,由NVM作为性能层,负责处理前台的I/O请求,而NANDflash作为容量层,提供更大的容量需求。上述传统的混合式存储结构严格的分层结构,会产生请求拥堵的现象,且由于NVM容量的限制会造成后台频繁的数据迁移,从而造成性能抖动。
技术实现思路
本专利技术的目的是为了解决现有技术的不足、充分利用设备特性以及I/O访问特性,结合NVMe多队列机制而提供的一种基于混合式存储的请求分发方法,通过对I/O请求的灵活调度分配,提升混合式存储的访问性能。实现本专利技术目的的具体技术方案是:一种基于混合式存储的请求分发方法,该方法包括:在设备初始化时,设置设备队列数N以及队列深度QD(Queuedepth,队列深度),对设备队列SQ(SubmissionQueue,设备队列)进行标记,完成设备队列与混合式存储设备、CPU核与设备队列之间的绑定;在请求分发时,进行请求合并并根据请求类型插入到对应的请求链表中;将请求链表中的请求插入到对应的设备队列中;其中:所述混合式存储设备由非易失性NVM(Non-VolatileMemory,非易失性存储器)存储介质以及NANDflash存储介质构成,向上显示为单一设备,通过PCIeNVMe进行访问;所述设备队列SQ是指NVMe协议中的SQ,SQ位于主机内存中,存储主机端发送的I/O(Input/Output,输入/输出)请求,SQ由主机端管理NVMe设备的Admin命令创建。所述设备队列数N至多为混合式存储设备所支持的最大队列数。所述对设备队列SQ进行标记,完成设备队列与混合式存储设备、CPU核与设备队列之间的绑定,具体为:使用SQ1标记由NVM存储介质服务的设备队列,使用SQ’标记由NANDflash存储介质服务的设备队列;由NVM存储介质服务的设备队列数记为N1,N1至多为NVM存储介质所支持的最大队列数,至少为CPU核数;若NVM存储介质所支持的最大队列数不足CPU核数,则N1为NVM存储介质所支持的最大队列数;由NANDflash存储介质服务的设备队列数记为N2;N2至多为NANDflash存储介质所支持的最大队列数,若NANDflash存储介质所支持的最大队列数不足CPU核数,则N2为NANDflash存储介质所支持的最大队列数;为每个CPU核优先同时分配一个已标记的由NVM存储介质服务的设备队列SQ1和一个由NANDflash存储介质服务的设备队列SQ’,若NVM存储介质或NANDflash存储介质所支持的最大设备队列数不足CPU核数,则为未分配CPU核分配剩余设备队列。所述在请求分发时,进行请求合并并根据请求类型插入到对应的请求链表中,具体为:在通用块层中维护一个请求窗口,该请求窗口的大小根据当前通用块层中的bio请求总数进行调节;其中bio是在通用块层中对每个I/O操作的描述;在通用块层分别维护由NVM存储介质服务的请求链表和由NANDflash存储介质服务的请求链表;对请求窗口中的请求,依据发送该请求的线程所属的CPU核以及访问的逻辑地址进行合并,判断该请求所访问的逻辑地址+所访问的物理块号与所属请求窗口内由同一CPU核发送的其他bio请求是否有重叠或间隔小于固定值k,若满足可进行合并,生成新的I/O请求;依据请求所访问的字节数识别请求类型,当访问的字节数超过预定义的阈值T时,将该请求归为大请求,反之为小请求;当请求被识别为大请求时,插入到由NANDflash存储介质服务的请求链表,反之插入到由NVM存储介质服务的请求链表。所述将请求链表中的请求插入到对应的设备队列中,具体为:请求插入之前获取发送该请求的线程所执行的CPU核;由NVM存储介质服务的请求链表中的请求插入到该请求所属CPU核中的设备队列SQ1中,由NANDflash存储介质服务的请求链表中的请求插入到该请求所属CPU核中的SQ’;将请求插入设备队列时,若该设备队列中的待处理请求数小于最大队列深度QD,则将请求插入该设备队列中,更新链表指针,反之,等待;若当前需插入的为由NVM存储介质服务的设备队列,且该设备队列中的请求数等于队列深度QD,同时同一CPU核中的由NANDflash存储介质服务的设备队列SQ’中的请求数小于预定义的最小请求数min_num时,将该请求插入到SQ’中。本专利技术的有益效果在于:通过将设备队列与存储介质、CPU核与设备队列的绑定,减少了多个CPU核同时访问同个队列锁机制所带来的开销,且为每个CPU核分配至少一个NVMSQ(SQ1)和一个NANDflashSQ(SQ’),使得可灵活使用NVM和NANDflash所提供的访问性能,同时简化管理。仅使用1bit数据标识队列所属的存储介质,开销可忽略不计。通过对请求的合并,识别请求类型,从而实现了访问类型与存储介质特性相结合,最大限度地利用设备特性为请求提供服务,且根据当前待处理的请求数动态设置合并请求的请求窗口大小,适应性更好。同时结合设备队列深度灵活调度请求,提高了服务质量。附图说明图1为本专利技术的具体实施系统概览图;图2为本专利技术的队列配置与绑定机制流程图;图3为本专利技术的请求合并与分发机制流程图。具体实施方式下面结合附图和实施例对本专利技术作进一步说明:本专利技术通过将存储介质与设备队列、设备队列与CPU核的绑定,并结合I/O请求的访问特性,将请求发送到对应的设备队列中,从而实现请求类别与存储设备特性的结合,并通过灵活的分配方法,缓解NVM设备的负本文档来自技高网
...

【技术保护点】
1.一种基于混合式存储的请求分发方法,其特征在于,该方法包括:/n在设备初始化时,设置设备队列数N以及队列深度QD,对设备队列SQ进行标记,完成设备队列与混合式存储设备、CPU核与设备队列之间的绑定;在请求分发时,进行请求合并并根据请求类型插入到对应的请求链表中;将请求链表中的请求插入到对应的设备队列中;其中:/n所述混合式存储设备由非易失性NVM存储介质以及NAND flash存储介质构成,向上显示为单一设备,通过PCIeNVMe进行访问;/n所述设备队列SQ是指NVMe协议中的SQ,SQ位于主机内存中,存储主机端发送的输入/输出即I/O请求,SQ由主机端管理NVMe设备的Admin命令创建。/n

【技术特征摘要】
1.一种基于混合式存储的请求分发方法,其特征在于,该方法包括:
在设备初始化时,设置设备队列数N以及队列深度QD,对设备队列SQ进行标记,完成设备队列与混合式存储设备、CPU核与设备队列之间的绑定;在请求分发时,进行请求合并并根据请求类型插入到对应的请求链表中;将请求链表中的请求插入到对应的设备队列中;其中:
所述混合式存储设备由非易失性NVM存储介质以及NANDflash存储介质构成,向上显示为单一设备,通过PCIeNVMe进行访问;
所述设备队列SQ是指NVMe协议中的SQ,SQ位于主机内存中,存储主机端发送的输入/输出即I/O请求,SQ由主机端管理NVMe设备的Admin命令创建。


2.如权利要求1所述的方法,其特征在于,所述设备队列数N至多为混合式存储设备所支持的最大队列数。


3.如权利要求1所述的方法,其特征在于,所述对设备队列SQ进行标记,完成设备队列与混合式存储设备、CPU核与设备队列之间的绑定,具体为:
使用SQ1标记由NVM存储介质服务的设备队列,使用SQ’标记由NANDflash存储介质服务的设备队列;
由NVM存储介质服务的设备队列数记为N1,N1至多为NVM存储介质所支持的最大队列数,至少为CPU核数;若NVM存储介质所支持的最大队列数不足CPU核数,则N1为NVM存储介质所支持的最大队列数;
由NANDflash存储介质服务的设备队列数记为N2;N2至多为NANDflash存储介质所支持的最大队列数,若NANDflash存储介质所支持的最大队列数不足CPU核数,则N2为NANDflash存储介质所支持的最大队列数;
为每个CPU核优先同时分配一个已标记的由NVM存储介质服务的设备队列SQ1和一个由NANDflash存储介质服务的设备队列SQ’,若NVM存储介质或NANDflash存储介质所支持的最大设备队列数...

【专利技术属性】
技术研发人员:陈慧石亮谷守珍诸葛晴凤沙行勉
申请(专利权)人:华东师范大学
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1