1.一种NUMA架构下NVM磨损均衡的并行空间管理方法,其特征在于,包括以下步骤:对单个NUMA节点内多条非易失性内存条内和条间的磨损进行均衡处理,包括采用数据块写次数计数器管理模块管理每个数据块的写次数,采用基于桶排序的数据块磨损范围管理模块管理单个NUMA节点中的空闲数据,采用在线磨损范围调整算法在线调整两个磨损范围桶中数据块数量;
所述在线磨损范围调整算法,在分配数据块时优先从低磨损范围桶中分配;当低磨损范围桶中的数据块分配完后,此时,高磨损范围桶中的数据块为较低磨损的空闲数据块,接下来从高磨损范围桶中分配数据块;在回收数据块时,构建更高磨损范围桶,具体包括以下步骤:步骤S601,当并行分配模块列表中的空闲数据块数量低于阈值时,从低磨损范围桶中获取空闲数据块;
步骤S602,判断低磨损范围桶中空闲数据块数量是否为0,如果不为0,从低磨损范围桶的列表头节点分配数据块,如果为0,执行步骤S603;
步骤S603,交换高低数据块提供桶的指针,使用当前高磨损范围桶提供数据块,以获取当前磨损较低的空闲数据块;
步骤S604,判断当前高磨损桶中空闲数据块数量是否为0,如果为0则表示系统的可用数据块为0,系统空间不足,否则返回到步骤S602获取空闲数据块;
步骤S605,返回系统空间不足;
步骤S606,成功获取到磨损度较低的空闲数据块;
采用并行分配回收机制实现数据块的并行分配回收,包括采用数据块并行分配回收管理模块管理分配数据块链表和回收数据块链表,采用数据块轮询并行分配策略,实现多链表中数据块均衡分配磨损,定期更新处理器核id和链表id之间的映射关系;所述数据块轮询并行分配策略包括以下步骤:步骤S401,系统首先获取NUMA节点内CPU核和空闲链表的数量,在挂载文件系统时,按CPU核的数量将空闲空间分为多个链表进行管理,创建链表数组,使用CPU核标识作为索引,并作为默认值初始化链表数组;
步骤S402,运行在第i个CPU核上的内核线程向文件系统空间管理模块发起分配空闲数据块请求;
步骤S403,通过CPU核标识i在链表数组中查找默认链表号Listi,通过Listi++mod CPUnum计算目标链表号;
步骤S404,根据S403中的目标链表号找到对应的链表管理结构体,通过判断链表结构体中的是否占用标识,判断链表是否正在被访问,如果目标链表已经被占用,则返回步骤S403根据当前目标链表号计算新的目标链表号;
步骤S405,通过找到的未被占用的目标链表号访问对应链表结构体,置位链表结构体中的占用标识位;
步骤S406,从目标链表中分配空闲数据块;
步骤S407,清零目标链表结构体中的占用标识位;
步骤S408,使用目标链表号修改链表数组中CPU核对应的元素值;
采用节点间磨损均衡机制,以NUMA节点为管理域,在各个NUMA节点上均匀地分布文件,把写操作随机的分布到各个节点,平衡节点间非易失性内存的磨损。
2.根据权利要求1所述一种NUMA架构下NVM磨损均衡的并行空间管理方法,其特征在于:所述数据块写次数计数器管理模块,以NUMA节点为范围,将单个NUMA节点中所有非易失性内存作为一个域进行管理,为域中每个数据块分配一个写次数计数器,记录表示数据块磨损程度的写次数,并在节点内预留一段非易失性内存空间作为写次数计数器的存储空间。
3.根据权利要求1所述一种NUMA架构下NVM磨损均衡的并行空间管理方法,其特征在于:所述基于桶排序的数据块磨损范围管理模块将单个NUMA节点中的空闲数据块放入低磨损范围桶或高磨损范围桶,依据的原则是:使用当前空闲数据块最大写次数作为高低磨损范围桶的边界,写次数比边界大的数据块放入高磨损范围桶中,否则放入低磨损范围桶中。
4.根据权利要求3所述一种NUMA架构下NVM磨损均衡的并行空间管理方法,其特征在于:所述低磨损范围桶和高磨损范围桶中的空闲数据块通过链表管理结构体和无序单链表进行管理。
5.根据权利要求1所述一种NUMA架构下NVM磨损均衡的并行空间管理方法,其特征在于:所述节点间磨损均衡机制,在新建文件操作时,将新建文件均匀地创建在各个NUMA节点上,把写操作随机的分布到各个节点。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被执行时实现权利要求1‑5任一项所述的NUMA架构下NVM磨损均衡的并行空间管理方法的步骤。