发明内容
为了解决上述技术问题,本发明提出了一种基于持久内存技术的全局资源管理方法及系统。
本发明第一方面提供了一种基于持久内存技术的全局资源管理方法,包括:
获取远方客户端NVME over RDMA数据,存储至DRAM空间,通过RDMA数据分页模块按QLC的页大小将数据进行条带化处理,并将条带化数据搬移到PM持久内存空间;
将PM持久内存空间内部按容器化的方式组织起来,每个容器的大小等于QLC介质的页大小,并记录元数据和日志;
通过全局QLC SSD资源管理控制器设置服务器内部磨损均衡和垃圾回收策略,并通过服务器RAID控制模块实现条带化数据的并行读写,并快速生成异或校验;
并在最底层QLC SSD通过轻量级的SSD控制器按QLC的页大小写入及读出数据。
本方案中,将内存空间划分为DRAM空间部分及PM持久内存空间部分;
所述DRAM空间部分作为RDMA的空间和其它软件RAM的存储空间;
所述PM持久空间内存空间部分用作部署PM持久内存资源,当做数据缓冲空间及元数据存储空间。
本方案中,通过RDMA数据分页模块按QLC的页大小将数据进行条带化处理,具体为:
RDMA数据分页模块在读数据时避开PM持久空间内存空间,直接访问DRMA空间;
在进行条带化数据时,将不足QLC页大小的数据扩充到页大小,将大于QLC页大小的数据按照页大小进行裁剪,并把剩余的不足页大小的数据合并到下一个条带。
本方案中,将PM持久内存空间内部按容器化的方式组织起来,每个容器的大小等于QLC介质的页大小,并记录元数据和日志,具体为:
通过使用NVME over RDMA协议方式,当小于QLC页大小的I/O 数据来临时,PM持久内存空间将缓存数据,并且按容器把数据组织成一个条带,并且纪录元数据和日志,其中N-1个容器组成一个条带;
PM持久内存空间中写缓冲PM空间满时数据写入硬盘,并设置预留缓冲PM空间,当做写缓冲满时接替写缓冲区。
本方案中,所述全局QLC SSD资源管理控制器及RAID控制模块,具体为:
全局QLC SSD资源管理控制器管理FLASH资源和实施磨损均衡和垃圾回收策略,充分利用每个FLASH颗粒的寿命;
RAID控制模块实现N-1个QLC页的并行读写,并按照N-1个页 生成一个异或校验页,所述异或校验的页位置随机分布在0-N号的QLC SSD上,避免对某个固定存校验数据的QLC SSD繁读写。
本方案中,通过服务器中部署的PCIE X4接口的RAID芯片连接PCI-E交换机芯片实现N路扇出;
所述RAID芯片一次性写入或读出N-1个QLC页的数据以及对应的parity页,保证读写性能的同时对数据有RAID 保护。
本方案中,最底层的QLC SSD上仅仅使用轻量级的SSD控制器,所述轻量级的SSD控制器确保严格地按QLC页大小写入数据,此外不实施任何的垃圾回收和磨损均衡策略。
本发明第二方面还提供了一种基于持久内存技术的全局资源管理系统,该系统包括:存储器、处理器,所述存储器中包括一种基于持久内存技术的全局资源管理方法程序,所述一种基于持久内存技术的全局资源管理方法程序被所述处理器执行时实现如下步骤:
获取远方客户端NVME over RDMA数据,存储至DRAM空间,通过RDMA数据分页模块按QLC的页大小将数据进行条带化处理,并将条带化数据搬移到PM持久内存空间;
将PM持久内存空间内部按容器化的方式组织起来,每个容器的大小等于QLC介质的页大小,并记录元数据和日志;
通过全局QLC SSD资源管理控制器设置服务器内部磨损均衡和垃圾回收策略,并通过服务器RAID控制模块实现条带化数据的并行读写,并快速生成异或校验;
并在最底层QLC SSD通过轻量级的SSD控制器按QLC的页大小写入及读出数据。
本方案中,将内存空间划分为DRAM空间部分及PM持久内存空间部分;
所述DRAM空间部分作为RDMA的空间和其它软件RAM的存储空间;
所述PM持久空间内存空间部分用作部署PM持久内存资源,当做数据缓冲空间及元数据存储空间。
本方案中,通过RDMA数据分页模块按QLC的页大小将数据进行条带化处理,具体为:
RDMA数据分页模块在读数据时避开PM持久空间内存空间,直接访问DRMA空间;
在进行条带化数据时,将不足QLC页大小的数据扩充到页大小,将大于QLC页大小的数据按照页大小进行裁剪,并把剩余的不足页大小的数据合并到下一个条带。
本方案中,将PM持久内存空间内部按容器化的方式组织起来,每个容器的大小等于QLC介质的页大小,并记录元数据和日志,具体为:
通过使用NVME over RDMA协议方式,当小于QLC页大小的I/O 数据来临时,PM持久内存空间将缓存数据,并且按容器把数据组织成一个条带,并且纪录元数据和日志,其中N-1个容器组成一个条带;
PM持久内存空间中写缓冲PM空间满时数据写入硬盘,并设置预留缓冲PM空间,当做写缓冲满时接替写缓冲区。
本方案中,所述全局QLC SSD资源管理控制器及RAID控制模块,具体为:
全局QLC SSD资源管理控制器管理FLASH资源和实施磨损均衡和垃圾回收策略,充分利用每个FLASH颗粒的寿命;
RAID控制模块实现N-1个QLC页的并行读写,并按照N-1个页 生成一个异或校验页,所述异或校验的页位置随机分布在0-N号的QLC SSD上,避免对某个固定存校验数据的QLC SSD繁读写。
本方案中,通过服务器中部署的PCIE X4接口的RAID芯片连接PCI-E交换机芯片实现N路扇出;
所述RAID芯片一次性写入或读出N-1个QLC页的数据以及对应的parity页,保证读写性能的同时对数据有RAID 保护。
本方案中,最底层的QLC SSD上仅仅使用轻量级的SSD控制器,所述轻量级的SSD控制器确保严格地按QLC页大小写入数据,此外不实施任何的垃圾回收和磨损均衡策略。
本发明解决了背景技术中存在的缺陷,本发明具备以下有益效果:
(1)使用RAID卡来提高改善读写性能,并且和全局QLC SSD资源管理控制器来配合使用,优化了垃圾回收和磨损均衡实施策略,进一步减小写放大的可能性。
(2)在PM持久内存空间里不存储小I/O数据块,数据全部下盘,在PM持久内存空间只保留操作日志和元数据,因此可以使用较小的PM持久内存空间的容量来实现SSD数据的缓冲,避免小块数据直接下盘导致写放大,过快消耗QLC 的寿命。
(3)实现在确保使用寿命的前提下,大规模使用QLC SSD ,通过NVMe over RDMAtarget的方式对外提供高速、海量的块接口存储, 性能超高、价格低廉。
(4)整个服务器可以看作一个大的NVME 块设备空间,内部有自己的RAID 保护机制,不仅性能可靠,而且因为使用了RAID 读写速度也更快。服务器作为一个整体的SSDNVMe 资源,对外也可以支持数据再次条带化,并不影响在用户层级使用EC或者多副本的策略。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
图1示出了本发明一种基于持久内存技术的全局资源管理方法的流程图。
如图1所示,本发明第一方面提供了一种基于持久内存技术的全局资源管理方法,包括:
S102,获取远方客户端NVME over RDMA数据,存储至DRAM空间,通过RDMA数据分页模块按QLC的页大小将数据进行条带化处理,并将条带化数据搬移到PM持久内存空间;
S104,将PM持久内存空间内部按容器化的方式组织起来,每个容器的大小等于QLC介质的页大小,并记录元数据和日志;
S106,通过全局QLC SSD资源管理控制器设置服务器内部磨损均衡和垃圾回收策略,并通过服务器RAID控制模块实现条带化数据的并行读写,并快速生成异或校验;
S108,并在最底层QLC SSD通过轻量级的SSD控制器按QLC的页大小写入及读出数据。
图2示出了本发明中全局资源管理的QLC SSD存储方案框图。
需要说明的是,QLC SSD写入是按照大约64K比特的大小写入,而上层软件的数据I/O 的大小可能是4K比特到几M比特不等。对于QLC介质而言,即便是写入4K比特数据,但是SSD都会按64K比特的页大小写入,也会造成写放大的结果。现在出现了Persistent memory(简称PM)的介质,它可以当作内存的一种,掉电后数据不会丢失,根据PM持久内存的特性,将内存空间划分为DRAM空间部分及PM持久内存空间部分;所述DRAM空间部分作为RDMA的空间和其它软件RAM的存储空间,当对远端的NVMe QLC SSD进行访问时,数据会由本地的DRAM(也可以是PM)空间被RDMA到远端的这个RAM空间内;所述PM持久空间内存空间部分用作部署PM持久内存资源,当做数据缓冲空间及元数据存储空间。
通过NVME over RDMA实现远端的flash 块接口连接,NVMe over RDMA 通过RDMA的方式拷贝推送和拉取(读/写)数据到网络连接的远端主机的内存空间。
需要说明的是,RDMA数据分页模块从DRMA搬运数据到PM空间,通过RDMA数据分页模块按QLC的页大小将数据进行条带化处理,具体为:RDMA数据分页模块在读数据时避开PM持久空间内存空间,直接访问DRMA空间;在进行条带化数据时,将不足QLC页大小的数据扩充到页大小,将大于QLC页大小的数据按照页大小进行裁剪,并把剩余的不足页大小的数据合并到下一个条带。
需要说明的是,PM持久内存空间作为QLC页 容器化和条带化的暂存空间,以及元数据和日志、磨损均衡垃圾回收数据和策略的存储空间,将PM持久内存空间内部按容器化的方式组织起来,每个容器的大小等于QLC介质的页大小,并记录元数据和日志,具体为:通过使用NVME over RDMA协议方式,当小于QLC页大小的I/O 数据来临时,PM持久内存空间将缓存数据,并且按容器把数据组织成一个条带,并且纪录元数据和日志,其中N-1个容器组成一个条带;PM持久内存空间中写缓冲PM空间满时数据写入硬盘,并设置预留缓冲PM空间,当做写缓冲满时接替写缓冲区。
在PM持久内存空间里不存储小I/O数据块 ,数据全部下盘,在PM持久内存空间只保留操作日志和元数据,因此可以使用较小的PM持久内存空间的容量来实现QLC SSD数据的缓冲,避免小块数据直接下盘导致写放大,过快消耗QLC的寿命。
需要说明的是,所述全局QLC SSD资源管理控制器及RAID控制模块,具体为:全局QLC SSD资源管理控制器管理FLASH资源和实施磨损均衡和垃圾回收策略,充分利用每个FLASH颗粒的寿命,能最大限度地延长QLC介质的寿命,任何关于实施磨损均衡和垃圾回收的策略都由全局QLC SSD资源管理控制器来实施;
RAID控制模块实现N-1个QLC页的并行读写,并按照N-1个页 生成一个异或校验页,所述异或校验的页位置随机分布在0-N号的QLC SSD上,避免对某个固定存校验数据的QLC SSD繁读写。
需要说明的是,通过服务器中部署的PCIE X4接口的RAID芯片连接PCI-E交换机芯片(或者做在RAID芯片内部)实现N路扇出;所述RAID芯片一次性写入或读出N-1个QLC页的数据以及对应的parity页,保证读写性能的同时对数据有RAID 保护。
需要说明的是,最底层的QLC SSD上仅仅使用轻量级的SSD控制器,所述轻量级的SSD控制器确保严格地按QLC页大小写入数据,此外不实施任何的垃圾回收和磨损均衡策略。不仅成本低,而且轻量级的SSD控制器比较简单,只关注在读写即可,设计容易制造成本低。
图3示出了本发明一种基于持久内存技术的全局资源管理方法的框图,整个系统获得了对QLC SSD单纯严格按页写的操作,每次按条带写数据时,因为是同时多个QLC SSD并行操作,所以速度快。而且底层SSD没有垃圾回收和磨损均衡策略,只管按照页大小顺序进行写入,操作简单,明确了Flash资源使用管理。QLC SSD的写放大被最大地消除了,所以QLC SSD 可以(当然在一定安全的限度内)当作容量型的存储,又因为使用NVME over RDMA协议,读写速度快,所以也能当作性能型的存储。
根据本发明实施例,对全局QLC SSD资源管理控制器中的垃圾回收和磨损均衡策略进行优化,具体为:
PM持久内存空间中的数据按条带读盘,将存储数据条带的闪存块编码,将编码完成后的闪存块生成编码列表,并选取页映射的作为地址映射方式;
当SSD中存储空间不足时,通过各闪存块中无效页的比例及擦除次数进行计算,从前到后选取编码列表中预设数量的闪存块进行对比,获取其中计算数值最小的闪存块作为回收闪存块;
同时,根据空闲闪存块的擦除次数评估磨损程度,将磨损程度小于预设阈值的闪存块归为一类闪存块,将磨损程度大于预设阈值的闪存块归为二类闪存块,同时按照磨损程度分别生成一类磨损列及二类磨损列表;
将回收块中的有效页面进行迁移至二类磨损列表中第一个闪存块,对回收块进行数据擦除,计算数据擦除后回收块的磨损程度,根据所述磨损程度进行闪存块归类。
需要说明的是,在SSD的垃圾回收策略中优选选择有效页面最少的块作为回收块,
而磨损均衡策略,则希望垃圾回收优先选择磨损次数最少的块作为回收块,通过各闪存块
中无效页的比例及擦除次数进行计算获取得分数值
,具体为:
其中,
表示SSD中空闲闪存块的比例,
表示擦除次数,
表示最大擦除次数,
表示闪存块中页面总数,
表示闪存块中无效页面数量;
为SSD中的动态值,
较小时
空闲闪存块较少,垃圾回收侧重于无效页面较多的闪存块,避免频繁垃圾回收,
较大时,
垃圾回收侧重于磨损程度较小的闪存块,提高寿命;并且通过磨损程度进行空闲闪存块分
类,将热数据存入一类磨损列表中的闪存块,垃圾回收策略中的有效页面迁移至二类磨损
列表中的闪存块。
图4示出了本发明一种基于持久内存技术的全局资源管理系统的框图。
本发明第二方面还提供了一种基于持久内存技术的全局资源管理系统3,该系统包括:存储器41、处理器42,所述存储器中包括一种基于持久内存技术的全局资源管理方法程序,所述一种基于持久内存技术的全局资源管理方法程序被所述处理器执行时实现如下步骤:
获取远方客户端NVME over RDMA数据,存储至DRAM空间,通过RDMA数据分页模块按QLC的页大小将数据进行条带化处理,并将条带化数据搬移到PM持久内存空间;
将PM持久内存空间内部按容器化的方式组织起来,每个容器的大小等于QLC介质的页大小,并记录元数据和日志;
通过全局QLC SSD资源管理控制器设置服务器内部磨损均衡和垃圾回收策略,并通过服务器RAID控制模块实现条带化数据的并行读写,并快速生成异或校验;
并在最底层QLC SSD通过轻量级的SSD控制器按QLC的页大小写入及读出数据。
需要说明的是,QLC SSD写入是按照大约64K比特的大小写入,而上层软件的数据I/O 的大小可能是4K比特到几M比特不等。对于QLC介质而言,即便是写入4K比特数据,但是SSD都会按64K比特的页大小写入,也会造成写放大的结果。现在出现了Persistent memory(简称PM)的介质,它可以当作内存的一种,掉电后数据不会丢失,根据PM持久内存的特性,将内存空间划分为DRAM空间部分及PM持久内存空间部分;所述DRAM空间部分作为RDMA的空间和其它软件RAM的存储空间,当对远端的NVMe QLC SSD进行访问时,数据会由本地的DRAM(也可以是PM)空间被RDMA到远端的这个RAM空间内;所述PM持久空间内存空间部分用作部署PM持久内存资源,当做数据缓冲空间及元数据存储空间。
通过NVME over RDMA实现远端的flash 块接口连接,NVMe over RDMA 通过RDMA的方式拷贝推送和拉取(读/写)数据到网络连接的远端主机的内存空间。
需要说明的是,RDMA数据分页模块从DRMA搬运数据到PM空间,通过RDMA数据分页模块按QLC的页大小将数据进行条带化处理,具体为:RDMA数据分页模块在读数据时避开PM持久空间内存空间,直接访问DRMA空间;在进行条带化数据时,将不足QLC页大小的数据扩充到页大小,将大于QLC页大小的数据按照页大小进行裁剪,并把剩余的不足页大小的数据合并到下一个条带。
需要说明的是,PM持久内存空间作为QLC页 容器化和条带化的暂存空间,以及元数据和日志、磨损均衡垃圾回收数据和策略的存储空间,将PM持久内存空间内部按容器化的方式组织起来,每个容器的大小等于QLC介质的页大小,并记录元数据和日志,具体为:通过使用NVME over RDMA协议方式,当小于QLC页大小的I/O 数据来临时,PM持久内存空间将缓存数据,并且按容器把数据组织成一个条带,并且纪录元数据和日志,其中N-1个容器组成一个条带;PM持久内存空间中写缓冲PM空间满时数据写入硬盘,并设置预留缓冲PM空间,当做写缓冲满时接替写缓冲区。
在PM持久内存空间里不存储小I/O数据块 ,数据全部下盘,在PM持久内存空间只保留操作日志和元数据,因此可以使用较小的PM持久内存空间的容量来实现QLC SSD数据的缓冲,避免小块数据直接下盘导致写放大,过快消耗QLC的寿命。
需要说明的是,所述全局QLC SSD资源管理控制器及RAID控制模块,具体为:全局QLC SSD资源管理控制器管理FLASH资源和实施磨损均衡和垃圾回收策略,充分利用每个FLASH颗粒的寿命,能最大限度地延长QLC介质的寿命,任何关于实施磨损均衡和垃圾回收的策略都由全局QLC SSD资源管理控制器来实施;
RAID控制模块实现N-1个QLC页的并行读写,并按照N-1个页 生成一个异或校验页,所述异或校验的页位置随机分布在0-N号的QLC SSD上,避免对某个固定存校验数据的QLC SSD繁读写。
需要说明的是,通过服务器中部署的PCIE X4接口的RAID芯片连接PCI-E交换机芯片(或者做在RAID芯片内部)实现N路扇出;所述RAID芯片一次性写入或读出N-1个QLC页的数据以及对应的parity页,保证读写性能的同时对数据有RAID 保护。
需要说明的是,最底层的QLC SSD上仅仅使用轻量级的SSD控制器,所述轻量级的SSD控制器确保严格地按QLC页大小写入数据,此外不实施任何的垃圾回收和磨损均衡策略。不仅成本低,而且轻量级的SSD控制器比较简单,只关注在读写即可,设计容易制造成本低。
整个系统获得了对QLC SSD单纯严格按页写的操作,每次按条带写数据时,因为是同时多个QLC SSD并行操作,所以速度快。而且底层SSD没有垃圾回收和磨损均衡策略,只管按照页大小顺序进行写入,操作简单,明确了Flash资源使用管理。QLC SSD的写放大被最大地消除了,所以QLC SSD 可以(当然在一定安全的限度内)当作容量型的存储,又因为使用NVME over RDMA 协议,读写速度快,所以也能当作性能型的存储。
根据本发明实施例,对全局QLC SSD资源管理控制器中的垃圾回收和磨损均衡策略进行优化,具体为:
PM持久内存空间中的数据按条带读盘,将存储数据条带的闪存块编码,将编码完成后的闪存块生成编码列表,并选取页映射的作为地址映射方式;
当SSD中存储空间不足时,通过各闪存块中无效页的比例及擦除次数进行计算,从前到后选取编码列表中预设数量的闪存块进行对比,获取其中计算数值最小的闪存块作为回收闪存块;
同时,根据空闲闪存块的擦除次数评估磨损程度,将磨损程度小于预设阈值的闪存块归为一类闪存块,将磨损程度大于预设阈值的闪存块归为二类闪存块,同时按照磨损程度分别生成一类磨损列及二类磨损列表;
将回收块中的有效页面进行迁移至二类磨损列表中第一个闪存块,对回收块进行数据擦除,计算数据擦除后回收块的磨损程度,根据所述磨损程度进行闪存块归类。
需要说明的是,在SSD的垃圾回收策略中优选选择有效页面最少的块作为回收块,
而磨损均衡策略,则希望垃圾回收优先选择磨损次数最少的块作为回收块,通过各闪存块
中无效页的比例及擦除次数进行计算获取得分数值
,具体为:
其中,
表示SSD中空闲闪存块的比例,
表示擦除次数,
表示最大擦除次数,
表示闪存块中页面总数,
表示闪存块中无效页面数量;
为SSD中的动态值,
较小时
空闲闪存块较少,垃圾回收侧重于无效页面较多的闪存块,避免频繁垃圾回收,
较大时,
垃圾回收侧重于磨损程度较小的闪存块,提高寿命;并且通过磨损程度进行空闲闪存块分
类,将热数据存入一类磨损列表中的闪存块,垃圾回收策略中的有效页面迁移至二类磨损
列表中的闪存块。
本发明第三方面还提供一种计算机可读存储介质,所述计算机可读存储介质中包括一种基于持久内存技术的全局资源管理方法程序,所述一种基于持久内存技术的全局资源管理方法程序被处理器执行时,实现如上述任一项所述的一种基于持久内存技术的全局资源管理方法的步骤。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。