CN111444113B - 非易失性存储介质共享方法、装置、电子设备及存储设备 - Google Patents
非易失性存储介质共享方法、装置、电子设备及存储设备 Download PDFInfo
- Publication number
- CN111444113B CN111444113B CN201910038817.0A CN201910038817A CN111444113B CN 111444113 B CN111444113 B CN 111444113B CN 201910038817 A CN201910038817 A CN 201910038817A CN 111444113 B CN111444113 B CN 111444113B
- Authority
- CN
- China
- Prior art keywords
- kernel
- memory
- memory space
- mode
- physical memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种非易失性存储介质共享方法,包括:确定内核态内存管理子系统所需要的内存空间容量;所述内核态内存管理子系统用于管理所述非易失性存储介质中作为易失存储介质使用的内存空间;从内核态文件系统管理的物理内存空间中确定与所述内存空间容量匹配的第一物理内存空间;所述内核态文件系统用于管理所述非易失性存储介质中作为非易失存储介质使用的内存空间;将所述第一物理内存空间的信息提供给内核态内存管理子系统。采用上述方法,以解决现有技术存在的无法做到对AEP内存灵活的动态调整,进而导致资源利用率低的问题。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种非易失性存储介质共享方法、装置、电子设备及存储设备。
背景技术
由于本申请涉及的专业术语较多,因此在介绍具体背景技术之前,先介绍本申请涉及的专业术语。
AEP:Apache Pass,Intel推出的基于3D-Xpoint介质的内存产品,又称Optane DCPersistent Memory;
PMDK:Persistent Memory Development Kit,它是一套用于使用具有DAX(DirectAccess)访问特性存储的开发工具库;
Mmap:C函数库基于系统调用封装的用于建立文件映射、或匿名映射的API,对应的内核系统调用是SYS_mmap;
DAX:部分文件系统支持的一种mount参数,DAX模式挂载后对文件的访问不再经过内核的pagecache,而是直接对存储介质访问。目前内核中EXT4、XFS支持DAX挂载模式;
Pagecache:Pagecache是内核中用于加速文件读写的页缓存机制;
Fallocate:用于对指定文件进行物理空间管理(分配、释放等)的库函数,内核有对应的系统调用;
Fork:创建子进程的库函数;
Heap:进程运行需要的堆空间,用于动态内存分配;
Extents:指存储盘区,存储盘区指文件系统中为文件保留的存储区域。一个文件可以包括0个或更多的存储盘区。
Memory Hotplug:内核支持的内存热插拔机制,即在Linux运行期间可以通过sysfs接口动态的插入、移除指定区段的内存;
FIEMAP:Ioctl支持的一个命令字,返回指定文件对应的extents信息;
NVDIMM Namespace:定义了一个连续寻址的非易失性存储器范围,类似于SCSI逻辑单元(LUN)或NVM Express命名空间。
下面介绍本申请的背景技术。
AEP(Apache Pass)是intel发布的一款基于新存储介质3D-XPoint的内存产品,可以作为易失性的内存使用,也可以作为非易失性的NVM(Non-volatile memory)使用。作为易失内存使用时,性能相比DDR4略有下降,但在成本、容量方面优势巨大;作为非易失介质使用时,相比SSD/HDD等传统介质,在性能方面优势巨大。
Intel开发了用户态的PMDK库,以方便应用将AEP作为易失内存、或非易失内存使用,软件栈如图1所示,各组件描述如下:
1)FS-DAX:支持DAX模式的文件系统(目前内核中有EXT4、XFS),DAX的含义参看前面术语表。AEP作为块设备,其物理空间由该文件系统管理;其上层的APP或者MemoryManagement组件通过mmap映射FS-DAX上的文件,得到一段虚拟地址空间,可以直接对AEP做load/store访问。
2)Memory Management:通常将通过mmap得到的一段虚拟地址空间交给一个内存管理组件来管理(比如facebook的jemalloc等),对上提供内存分配、释放等API;
在上述应用模式下(当前主流使用方式),AEP物理资源都由Ext4文件系统管理,上层应用通过文件的形式使用AEP物理内存(作为易失内存、或者作为NVM(Non-volatilememory,非易失存储器))。
intel PMDK推荐的使用方式,无论作为易失内存、还是作为非易失内存,都是基于文件mmap的方式,这种方式下,AEP物理资源是全部由文件系统(支持DAX模式的文件系统,比如EXT4)统一管理,所以AEP是共享访问,不存在静态资源划分问题。但是,在用户态管理易失内存存在一些不足,无法达到内核态管理的效果,比如页面冷热度的感知等。
进一步,考虑到上述技术趋势下(作为易失内存由内核内存子系统管理、作为非易失内存由文件系统管理),会遇到另一个问题:划分多少AEP内存作为易失内存、划分多少作为非易失内存。而现有的方案是基于ndctl或ixpdimm-cli工具创建不同的namespace实现的,这是一种静态划分资源的方法,无法做到灵活的动态调整,导致资源利用率低。
发明内容
本申请提供一种非易失性存储介质共享方法、装置、电子设备及存储设备,以解决现有技术存在的无法做到对AEP内存灵活的动态调整,进而导致资源利用率低的问题。
本申请提供一种非易失性存储介质共享方法,所述方法包括:
确定内核态内存管理子系统所需要的内存空间容量;所述内核态内存管理子系统用于管理所述非易失性存储介质中作为易失存储介质使用的内存空间;
从内核态文件系统管理的物理内存空间中确定与所述内存空间容量匹配的第一物理内存空间;所述内核态文件系统用于管理所述非易失性存储介质中作为非易失存储介质使用的内存空间;
将所述第一物理内存空间的信息提供给内核态内存管理子系统。
可选的,所述从内核态文件系统管理的物理内存空间中确定与所述内存空间容量匹配的第一物理内存空间,包括:
指示所述内核态文件系统创建一个空的新文件;
指示所述内核态文件系统将所述新文件的容量设置为所述内存空间容量;
指示所述内核态文件系统为所述新文件预分配与所述新文件的容量匹配的第一物理内存空间;
将与所述新文件的容量匹配的第一物理内存空间作为与所述内存空间容量匹配的第一物理内存空间。
可选的,所述将所述第一物理内存空间的信息提供给内核态内存管理子系统,包括:
将所述第一物理内存空间信息对应的物理内存区段添加到内核态内存管理子系统管理的内存空间中。
可选的,还包括:
对添加到所述内核态内存管理子系统管理的内存空间中的所述物理内存区段进行上线处理。
可选的,所述第一物理内存空间信息对应的物理内存区段,通过如下方式获得:
获得所述新文件的空间分布信息;
根据所述新文件的空间分布信息和所述非易失性存储介质的物理内存信息,得到所述第一物理内存空间信息对应的物理内存区段。
可选的,所述新文件的空间分布信息,指所述新文件的存储盘区或者存储块区的空间分布信息;
所述根据所述新文件的空间分布信息和所述非易失性存储介质的物理内存信息,得到所述第一物理内存空间信息对应的物理内存区段,包括:根据所述新文件的存储盘区或者存储块区的空间分布信息和所述非易失性存储介质的物理内存信息,得到所述第一物理内存空间信息对应的物理内存区段。
可选的,所述将所述物理内存区段添加到内核态内存管理子系统管理的易失内存中,包括:
将所述物理内存区段通过内存热插拔机制添加到内核态内存管理子系统管理的易失内存中。
可选的,还包括:
获得所述内核态内存管理子系统提供的指定文件对应的物理内存区段;
将所述指定文件对应的物理内存区段返回给所述内核态文件系统。
可选的,所述获得所述内核态内存管理子系统提供的指定文件对应的物理内存区段,包括:
获得所述指定文件的空间分布信息;
根据所述指定文件的空间分布信息和所述非易失性存储介质的物理内存信息,得到所述空间分布信息对应的物理内存区段。
可选的,所述将所述指定文件对应的物理内存区段返回给所述内核态文件系统,包括:
对所述指定文件对应的物理内存区段进行下线处理;
指示所述内核态文件系统删除所述指定文件。
可选的,所述内核态内存管理子系统包括:增强的内存管理子系统;所述增强的内存管理子系统用于区别管理非动态添加的内存空间和动态添加的内存空间。
本申请还提供一种非易失性存储介质共享装置,包括:
内存空间容量确定单元,用于确定内核态内存管理子系统所需要的内存空间容量;所述内核态内存管理子系统用于管理所述非易失性存储介质中作为易失存储介质使用的内存空间;
第一物理内存空间确定单元,用于从内核态文件系统管理的物理内存空间中确定与所述内存空间容量匹配的第一物理内存空间;所述内核态文件系统用于管理所述非易失性存储介质中作为非易失存储介质使用的内存空间;
物理内存空间的信息提供单元,用于将所述第一物理内存空间的信息提供给内核态内存管理子系统。
本申请另外提供一种电子设备,包括:
处理器;以及
存储器,用于存储非易失性存储介质共享方法的程序,该设备通电并通过所述处理器运行该非易失性存储介质共享方法的程序后,执行下述步骤:
确定内核态内存管理子系统所需要的内存空间容量;所述内核态内存管理子系统用于管理所述非易失性存储介质中作为易失存储介质使用的内存空间;
从内核态文件系统管理的物理内存空间中确定与所述内存空间容量匹配的第一物理内存空间;所述内核态文件系统用于管理所述非易失性存储介质中作为非易失存储介质使用的内存空间;
将所述第一物理内存空间的信息提供给内核态内存管理子系统。
本申请另外提供一种存储设备,存储有非易失性存储介质共享方法的程序,该程序被处理器运行,执行下述步骤:
确定内核态内存管理子系统所需要的内存空间容量;所述内核态内存管理子系统用于管理所述非易失性存储介质中作为易失存储介质使用的内存空间;
从内核态文件系统管理的物理内存空间中确定与所述内存空间容量匹配的第一物理内存空间;所述内核态文件系统用于管理所述非易失性存储介质中作为非易失存储介质使用的内存空间;
将所述第一物理内存空间的信息提供给内核态内存管理子系统。
与现有技术相比,本申请具有以下优点:
本申请提供一种非易失性存储介质共享方法、装置、电子设备及存储设备,从内核态文件系统管理的物理内存空间中确定与所述内存空间容量匹配的第一物理内存空间;将所述第一物理内存空间的信息提供给内核态内存管理子系统。本申请通过将内核态文件系统管理的物理内存空间的信息提供给内核态内存管理子系统,以解决现有技术存在的无法做到对AEP内存灵活的动态调整,进而导致资源利用率低的问题。
附图说明
图1是intel推出的PMDK开发套件的软件栈的示意图。
图2是本申请第一实施例提供的一种非易失性存储介质共享方法的流程图。
图3是本申请第一实施例提供的一种非易失性存储介质共享方法的架构示意图。
图4是本申请第二实施例提供的一种非易失性存储介质共享装置的示意图。
图5是本申请第三实施例提供的一种电子设备的示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施的限制。
本申请第一实施例提供一种非易失性存储介质共享方法,本申请第一实施例的执行主体可以为图3中的位于用户态的动态传输模块。以下结合图2和图3进行说明。
如图2所示,在步骤201中,确定内核态内存管理子系统所需要的内存空间容量;所述内核态内存管理子系统用于管理所述非易失性存储介质中作为易失存储介质使用的内存空间。
所述非易失性存储介质包括所有的PMEM(Persistent Memory),所述非易失性存储介质既能作为易失存储介质、也能作为非易失存储介质使用。例如,AEP内存,当AEP内存被内核态内存管理子系统使用时,为易失存储介质;当AEP内存被内核态文件系统使用时,为非易失存储介质。
如图3所示,图中的MM为内核态内存管理子系统的一个例子,本申请不限定使用内核原生MM子系统、或者增强的MM子系统,以下为对内核态内存管理子系统的说明:
a)内核态内存管理子系统支持内存的热插拔接口(需要开启内核相关配置开关,比如sparse memory等),比如sys/devices/system/memory/目录下相关配置接口。
b)在本申请中会基于内存热插拔操作接口,将指定的物理内存区间热添加到MM子系统。特别的,基于当前内核的MM实现,热添加的AEP内存会与DDR无差别的加入到MM子系统;
c)可以对MM子系统做增强,对AEP内存做区分管理,增强的内存管理子系统用于区别管理非动态添加的内存空间(例如,DDR内存)和动态添加的内存空间。例如,可以创建单独的ZONE管理动态添加的AEP的内存空间。
所述内核态内存管理子系统(MM子系统)所需要的内存空间容量,指内核态内存管理子系统需要的动态调配的内存空间容量。内核态内存管理子系统所需要的内存空间容量,可以根据业务量来确定。例如,如果业务量大,可以确定MM子系统所需要的AEP内存空间容量为8GB,如果业务量小,可以确定MM子系统所需要的AEP内存空间容量为2GB。
如图2所示,在步骤202中,从内核态文件系统管理的物理内存空间中确定与所述内存空间容量匹配的第一物理内存空间;所述内核态文件系统用于管理所述非易失性存储介质中作为非易失存储介质使用的内存空间。
所述与所述内存空间容量匹配的第一物理内存空间,指用于从内核态文件系统管理的内存空间动态调配至内核态内存管理子系统的内存空间。
如图3所示,图中的FS-DAX为内核态文件系统的一个例子,FS-DAX为支持DAX模式的内核态文件系统,说明如下:
a)内核态文件系统包括EXT4、XFS等支持DAX模式的文件系统。DAX是一种直接访问映射模式,使用DAX模式挂载的文件系统中,对文件的访问不经过内核态Pagecache,而是直接对存储介质访问。
b)整个AEP的某个namespace空间(命名空间)都由该FS-DAX文件系统管理,包括为某个文件分配AEP物理内存空间等。
所述从内核态文件系统管理的物理内存空间中确定与所述内存空间容量匹配的第一物理内存空间,包括:
指示所述内核态文件系统创建一个空的新文件;
指示所述内核态文件系统将所述新文件的容量设置为所述内存空间容量;
指示所述内核态文件系统为所述新文件预分配与所述新文件的容量匹配的物理内存空间;
将与所述新文件的容量匹配的第一物理内存空间作为与所述内存空间容量匹配的第一物理内存空间。
下面通过一个例子来介绍从内核态文件系统管理的物理内存空间中确定与所述内存空间容量匹配的物理内存空间的的过程,例如,确定内核态内存管理子系统所需要的内存空间容量为2GB,确定与内存空间容量匹配的物理内存空间的过程如下:
1、指示FS-DAX文件系统中创建空文件newfile;
2、通过ftruncate/truncate类接口调节文件newfile大小为2GB;
3、通过fallocate/posix_fallocate类接口为newfile预分配物理AEP物理内存空间;
4、将为newfile预分配的物理AEP物理内存空间作为与内存空间容量匹配的第一物理内存空间。
通过本步骤,确定出与内存空间容量匹配的物理内存空间,为步骤S203提供了前提条件。
如图2所示,在步骤203中,将所述第一物理内存空间的信息提供给内核态内存管理子系统。
所述将所述第一物理内存空间的信息提供给内核态内存管理子系统,包括:
将所述物理内存空间信息对应的物理内存区段添加到内核态内存管理子系统管理的内存空间中。
所述方法还包括:
对添加到所述内核态内存管理子系统管理的内存空间中的所述物理内存区段进行上线处理。
所述第一物理内存空间信息对应的物理内存区段,通过如下方式获得:
获得所述新文件的空间分布信息;
根据所述新文件的空间分布信息和所述非易失性存储介质的物理内存信息,得到所述第一物理内存空间信息对应的物理内存区段。
所述新文件的空间分布信息,指所述新文件的存储盘区或者存储块区的空间分布信息;所述根据所述新文件的空间分布信息和所述非易失性存储介质的物理内存信息,得到所述第一物理内存空间信息对应的物理内存区段,包括:根据所述新文件的存储盘区或者存储块区的空间分布信息和所述非易失性存储介质的物理内存信息,得到所述第一物理内存空间信息对应的物理内存区段。
所述将所述物理内存区段添加到内核态内存管理子系统管理的易失内存中,包括:
将所述物理内存区段通过内存热插拔机制添加到内核态内存管理子系统管理的内存空间中。
下面沿用上面例子介绍将所述第一物理内存空间的信息提供给内核态内存管理子系统的过程:
1、通过ioctl的FIEMAP或FIBMAP系统调用得到newfile的extents(存储盘区)或者blocks(存储块区)空间分布信息;
2、根据newfile的extents或blocks信息、结合/proc/iomem中Persistent Memory的物理内存信息,换算得到extents/blocks对应的物理内存区段;
3、将换算得到的物理内存区段通过内存热插拔机制的probe接口添加进MM子系统(需要内核(linux内核)打开CONFIG_ARCH_MEMORY_PROBE配置项),当前内核中probe接口是:/sys/devices/memory/probe;
4、将上一步骤中添加到MM子系统的AEP物理内存区段,设置为online,操作接口是:/sys/devices/memory/memory<X>/online。
通过步骤S201-步骤S203实现了将内核态文件系统管理的一部分非易失性存储介质(例如,AEP内存)动态添加到内核态内存管理子系统,当业务量大的情况下,由于内核态内存管理子系统获得了更多的易失内存来为业务服务,因此提高了业务处理的速度,提升了系统的性能;另一方面,由于MM对AEP的易失内存进行管理,MM运行时的状态为特权态,MM可以监测到应用程序对内存页的访问是否频繁,MM可以将访问频繁的内存页放到DDR内存运行,将访问不频繁的内存页放到动态添加的内存运行,提高了系统的性能。
本申请第一实施例除了实现将内核态文件系统管理的一部分内存动态添加到内核态内存管理子系统的功能外,还可以将内核态内存管理子系统管理的部分物理内存空间(例如,AEP内存)动态地返回给内核态文件系统。例如,当内核态文件系统的剩余存储空间较小时,例如,内核态文件系统的剩余容量不够存储当前文件时,可以将内核态内存管理子系统管理的部分内存(例如,AEP内存)动态的返回给内核态文件系统,例如,设定返回给内核态文件系统的非易失性存储介质为2GB,则可以将内核态内存管理子系统管理的2GB非易失性存储介质返回给内核态文件系统。
将内核态内存管理子系统管理的物理内存空间动态地返回给内核态文件系统,包括:
获得所述内核态内存管理子系统提供的指定文件对应的物理内存区段;
将所述指定文件对应的物理内存区段返回给所述内核态文件系统。
所述获得所述内核态内存管理子系统提供的指定文件对应的物理内存区段,包括:
获得所述指定文件的空间分布信息;
根据所述指定文件的空间分布信息和所述非易失性存储介质的物理内存信息,得到所述空间分布信息对应的物理内存区段。
所述将所述指定文件对应的物理内存区段返回给所述内核态文件系统,包括:
对所述指定文件对应的物理内存区段进行下线处理;
指示所述内核态文件系统删除所述指定文件。
下面通过一个例子介绍将内核态内存管理子系统管理的物理内存空间动态地返回给内核态文件系统的过程。例如,将内核态内存管理子系统管理的2GB的AEP物理内存空间返回给内核态文件系统的过程如下:
1、确定文件容量为2GB的指定文件file1;
2、通过ioctl的FIEMAP或FIBMAP系统调用得到file1的extents(存储盘区)或者blocks(存储块区)空间分布信息;
3、根据file1的extents或blocks信息、结合/proc/iomem中Persistent Memory的物理内存信息,换算得到extents/blocks对应的物理内存区段;
4、通过以下命令将上述物理内存区段下线:
echo offline>/sys/devices/system/memory/memory<X>/state
其中,X是内存区段的编号,例如:当前系统每个内存区段的大小是2GB,而要下线的内存是[0~2GB],那么X=0,如果要下线的内存是[2GB~4GB],那么X就是1。
5、指示内核态文件系统删除指定文件file1。
至此,对本申请第一实施例提供的非易失性存储介质共享方法的实施方式进行了详细说明。本申请第一实施例通过将内核态文件系统管理的一部分非易失性存储介质动态添加到内核态内存管理子系统,并且将内核态内存管理子系统管理的部分物理内存空间(例如,AEP内存)动态地返回给内核态文件系统,实现了无需创建独立的namespace分区,即能动态地调整在内核态内存管理子系统、内核态文件系统之间的资源分配,从而达到资源动态共享的效果。
与本申请第一实施例提供的一种非易失性存储介质共享方法相对应的,本申请第二实施例还提供了一种非易失性存储介质共享装置。
如图4所示,所述非易失性存储介质共享装置,包括:
内存空间容量确定单元401,用于确定内核态内存管理子系统所需要的内存空间容量;所述内核态内存管理子系统用于管理所述非易失性存储介质中作为易失存储介质使用的内存空间;
第一物理内存空间确定单元402,用于从内核态文件系统管理的物理内存空间中确定与所述内存空间容量匹配的第一物理内存空间;;所述内核态文件系统用于管理所述非易失性存储介质中作为非易失存储介质使用的内存空间;
物理内存空间的信息提供单元403,用于将所述第一物理内存空间的信息提供给内核态内存管理子系统。
可选的,所述第一物理内存空间确定单元,具体用于:
指示所述内核态文件系统创建一个空的新文件;
指示所述内核态文件系统将所述新文件的容量设置为所述内存空间容量;
指示所述内核态文件系统为所述新文件预分配与所述新文件的容量匹配的第一物理内存空间;
将与所述新文件的容量匹配的第一物理内存空间作为与所述内存空间容量匹配的第一物理内存空间。
可选的,所述第一物理内存空间的信息提供单元,具体用于:
将所述第一物理内存空间信息对应的物理内存区段添加到内核态内存管理子系统管理的内存空间中。
可选的,所述装置还包括,上线处理单元,用于:
对添加到所述内核态内存管理子系统管理的内存空间中的所述物理内存区段进行上线处理。
可选的,所述第一物理内存空间信息对应的物理内存区段,通过如下方式获得:
获得所述新文件的空间分布信息;
根据所述新文件的空间分布信息和所述非易失性存储介质的物理内存信息,得到所述第一物理内存空间信息对应的物理内存区段。
可选的,所述新文件的空间分布信息,指所述新文件的存储盘区或者存储块区的空间分布信息;
所述根据所述新文件的空间分布信息和所述非易失性存储介质的物理内存信息,得到所述第一物理内存空间信息对应的物理内存区段,包括:根据所述新文件的存储盘区或者存储块区的空间分布信息和所述非易失性存储介质的物理内存信息,得到所述第一物理内存空间信息对应的物理内存区段。
可选的,所述物理内存空间的信息提供单元,具体用于:
将所述物理内存区段通过内存热插拔机制添加到内核态内存管理子系统管理的内存空间中。
可选的,所述装置还包括:
物理内存区段获得单元,用于获得所述内核态内存管理子系统提供的指定文件对应的物理内存区段;
物理内存区段返回单元,用于将所述指定文件对应的物理内存区段返回给所述内核态文件系统。
可选的,所述物理内存区段获得单元,具体用于:
获得所述指定文件的空间分布信息;
根据所述指定文件的空间分布信息和所述非易失性存储介质的物理内存信息,得到所述空间分布信息对应的物理内存区段。
可选的,所述物理内存区段返回单元具体用于:
对所述指定文件对应的物理内存区段进行下线处理;
指示所述内核态文件系统删除所述指定文件。
可选的,所述内核态内存管理子系统包括:增强的内存管理子系统;所述增强的内存管理子系统用于区别管理非动态添加的内存空间和动态添加的内存空间。
需要说明的是,对于本申请第二实施例提供的内存共享装置的详细描述可以参考对本申请第一实施例的相关描述,这里不再赘述。
与上述提供的一种非易失性存储介质共享方法相对应的,本申请第三实施例还提供了一种电子设备。
如图5所示,电子设备包括:
处理器501;以及
存储器502,用于存储非易失性存储介质共享方法的程序,该设备通电并通过所述处理器运行该非易失性存储介质共享方法的程序后,执行下述步骤:
确定内核态内存管理子系统所需要的内存空间容量;所述内核态内存管理子系统用于管理所述非易失性存储介质中作为易失存储介质使用的内存空间;
从内核态文件系统管理的物理内存空间中确定与所述内存空间容量匹配的第一物理内存空间;所述内核态文件系统用于管理所述非易失性存储介质中作为非易失存储介质使用的内存空间;
将所述第一物理内存空间的信息提供给内核态内存管理子系统。
可选的,所述从内核态文件系统管理的物理内存空间中确定与所述内存空间容量匹配的第一物理内存空间,包括:
指示所述内核态文件系统创建一个空的新文件;
指示所述内核态文件系统将所述新文件的容量设置为所述内存空间容量;
指示所述内核态文件系统为所述新文件预分配与所述新文件的容量匹配的第一物理内存空间;
将与所述新文件的容量匹配的第一物理内存空间作为与所述内存空间容量匹配的第一物理内存空间。
可选的,所述将所述第一物理内存空间的信息提供给内核态内存管理子系统,包括:
将所述第一物理内存空间信息对应的物理内存区段添加到内核态内存管理子系统管理的内存空间中。
可选的,所述电子设备还执行下述步骤:
对添加到所述内核态内存管理子系统管理的内存空间中的所述物理内存区段进行上线处理。
可选的,所述第一物理内存空间信息对应的物理内存区段,通过如下方式获得:
获得所述新文件的空间分布信息;
根据所述新文件的空间分布信息和所述非易失性存储介质的物理内存信息,得到所述第一物理内存空间信息对应的物理内存区段。
可选的,所述新文件的空间分布信息,指所述新文件的存储盘区或者存储块区的空间分布信息;
所述根据所述新文件的空间分布信息和所述非易失性存储介质的物理内存信息,得到所述第一物理内存空间信息对应的物理内存区段,包括:根据所述新文件的存储盘区或者存储块区的空间分布信息和所述非易失性存储介质的物理内存信息,得到所述第一物理内存空间信息对应的物理内存区段。
可选的,所述将所述物理内存区段添加到内核态内存管理子系统管理的内存空间中,包括:
将所述物理内存区段通过内存热插拔机制添加到内核态内存管理子系统管理的易失内存中。
可选的,所述电子设备还执行下述步骤:
获得所述内核态内存管理子系统提供的指定文件对应的物理内存区段;
将所述指定文件对应的物理内存区段返回给所述内核态文件系统。
可选的,所述获得所述内核态内存管理子系统提供的指定文件对应的物理内存区段,包括:
获得所述指定文件的空间分布信息;
根据所述指定文件的空间分布信息和所述非易失性存储介质的物理内存信息,得到所述空间分布信息对应的物理内存区段。
可选的,所述将所述指定文件对应的物理内存区段返回给所述内核态文件系统,包括:
对所述指定文件对应的物理内存区段进行下线处理;
指示所述内核态文件系统删除所述指定文件。
可选的,所述内核态内存管理子系统包括:增强的内存管理子系统;所述增强的内存管理子系统用于区别管理非动态添加的内存空间和动态添加的内存空间。
需要说明的是,对于本申请第三实施例提供的电子设备的详细描述可以参考对本申请第一实施例的相关描述,这里不再赘述。
与上述提供的一种非易失性存储介质共享方法相对应的,本申请第四实施例还提供了一种存储设备,存储有非易失性存储介质共享方法的程序,该程序被处理器运行,执行下述步骤:
确定内核态内存管理子系统所需要的内存空间容量;所述内核态内存管理子系统用于管理所述非易失性存储介质中作为易失存储介质使用的内存空间;
从内核态文件系统管理的物理内存空间中确定与所述内存空间容量匹配的第一物理内存空间;所述内核态文件系统用于管理所述非易失性存储介质中作为非易失存储介质使用的内存空间;
将所述第一物理内存空间的信息提供给内核态内存管理子系统。
需要说明的是,对于本申请第四实施例提供的存储设备的详细描述可以参考对本申请第一实施例的相关描述,这里不再赘述。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
Claims (12)
1.一种非易失性存储介质共享方法,其特征在于,包括:
确定内核态内存管理子系统所需要的内存空间容量;所述内核态内存管理子系统用于管理所述非易失性存储介质中作为易失存储介质使用的内存空间;
从内核态文件系统管理的物理内存空间中确定与所述内存空间容量匹配的第一物理内存空间;所述内核态文件系统用于管理所述非易失性存储介质中作为非易失存储介质使用的内存空间;
将所述第一物理内存空间的信息提供给内核态内存管理子系统;
其中,所述将所述第一物理内存空间的信息提供给内核态内存管理子系统,包括:将所述第一物理内存空间的信息对应的物理内存区段添加到内核态内存管理子系统管理的内存空间中;
所述方法还包括:对添加到所述内核态内存管理子系统管理的内存空间中的所述物理内存区段进行上线处理。
2.根据权利要求1所述的方法,其特征在于,所述从内核态文件系统管理的物理内存空间中确定与所述内存空间容量匹配的第一物理内存空间,包括:
指示所述内核态文件系统创建一个空的新文件;
指示所述内核态文件系统将所述新文件的容量设置为所述内存空间容量;
指示所述内核态文件系统为所述新文件预分配与所述新文件的容量匹配的第一物理内存空间;
将与所述新文件的容量匹配的第一物理内存空间作为与所述内存空间容量匹配的第一物理内存空间。
3.根据权利要求2所述的方法,其特征在于,所述第一物理内存空间的信息对应的物理内存区段,通过如下方式获得:
获得所述新文件的空间分布信息;
根据所述新文件的空间分布信息和所述非易失性存储介质的物理内存信息,得到所述第一物理内存空间的信息对应的物理内存区段。
4.根据权利要求3所述的方法,其特征在于,所述新文件的空间分布信息,指所述新文件的存储盘区或者存储块区的空间分布信息;
所述根据所述新文件的空间分布信息和所述非易失性存储介质的物理内存信息,得到所述第一物理内存空间的信息对应的物理内存区段,包括:根据所述新文件的存储盘区或者存储块区的空间分布信息和所述非易失性存储介质的物理内存信息,得到所述第一物理内存空间的信息对应的物理内存区段。
5.根据权利要求1所述的方法,其特征在于,所述将所述物理内存区段添加到内核态内存管理子系统管理的内存空间中,包括:
将所述物理内存区段通过内存热插拔机制添加到内核态内存管理子系统管理的内存空间中。
6.根据权利要求1-5任一权项所述的方法,其特征在于,还包括:
获得所述内核态内存管理子系统提供的指定文件对应的物理内存区段;
将所述指定文件对应的物理内存区段返回给所述内核态文件系统。
7.根据权利要求6所述的方法,其特征在于,所述获得所述内核态内存管理子系统提供的指定文件对应的物理内存区段,包括:
获得所述指定文件的空间分布信息;
根据所述指定文件的空间分布信息和所述非易失性存储介质的物理内存信息,得到所述空间分布信息对应的物理内存区段。
8.根据权利要求7所述的方法,其特征在于,所述将所述指定文件对应的物理内存区段返回给所述内核态文件系统,包括:
对所述指定文件对应的物理内存区段进行下线处理;
指示所述内核态文件系统删除所述指定文件。
9.根据权利要求1所述的方法,其特征在于,所述内核态内存管理子系统包括:增强的内存管理子系统;所述增强的内存管理子系统用于区别管理非动态添加的内存空间和动态添加的内存空间。
10.一种非易失性存储介质共享装置,其特征在于,包括:
内存空间容量确定单元,用于确定内核态内存管理子系统所需要的内存空间容量;所述内核态内存管理子系统用于管理所述非易失性存储介质中作为易失存储介质使用的内存空间;
第一物理内存空间确定单元,用于从内核态文件系统管理的物理内存空间中确定与所述内存空间容量匹配的第一物理内存空间;所述内核态文件系统用于管理所述非易失性存储介质中作为非易失存储介质使用的内存空间;
物理内存空间的信息提供单元,用于将所述第一物理内存空间的信息提供给内核态内存管理子系统;其中,所述将所述第一物理内存空间的信息提供给内核态内存管理子系统,包括:将所述第一物理内存空间的信息对应的物理内存区段添加到内核态内存管理子系统管理的内存空间中;
所述装置还用于:对添加到所述内核态内存管理子系统管理的内存空间中的所述物理内存区段进行上线处理。
11.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储非易失性存储介质共享方法的程序,该设备通电并通过所述处理器运行该非易失性存储介质共享方法的程序后,执行下述步骤:
确定内核态内存管理子系统所需要的内存空间容量;所述内核态内存管理子系统用于管理所述非易失性存储介质中作为易失存储介质使用的内存空间;
从内核态文件系统管理的物理内存空间中确定与所述内存空间容量匹配的第一物理内存空间;所述内核态文件系统用于管理所述非易失性存储介质中作为非易失存储介质使用的内存空间;
将所述第一物理内存空间的信息提供给内核态内存管理子系统,其中,所述将所述第一物理内存空间的信息提供给内核态内存管理子系统,包括:将所述第一物理内存空间的信息对应的物理内存区段添加到内核态内存管理子系统管理的内存空间中;所述设备还执行下述步骤:对添加到所述内核态内存管理子系统管理的内存空间中的所述物理内存区段进行上线处理。
12.一种存储设备,其特征在于,
存储有非易失性存储介质共享方法的程序,该程序被处理器运行,执行下述步骤:
确定内核态内存管理子系统所需要的内存空间容量;所述内核态内存管理子系统用于管理所述非易失性存储介质中作为易失存储介质使用的内存空间;
从内核态文件系统管理的物理内存空间中确定与所述内存空间容量匹配的第一物理内存空间;所述内核态文件系统用于管理所述非易失性存储介质中作为非易失存储介质使用的内存空间;
将所述第一物理内存空间的信息提供给内核态内存管理子系统;
其中,所述将所述第一物理内存空间的信息提供给内核态内存管理子系统,包括:将所述第一物理内存空间的信息对应的物理内存区段添加到内核态内存管理子系统管理的内存空间中;所述程序被处理器运行,还执行下述步骤:对添加到所述内核态内存管理子系统管理的内存空间中的所述物理内存区段进行上线处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910038817.0A CN111444113B (zh) | 2019-01-16 | 2019-01-16 | 非易失性存储介质共享方法、装置、电子设备及存储设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910038817.0A CN111444113B (zh) | 2019-01-16 | 2019-01-16 | 非易失性存储介质共享方法、装置、电子设备及存储设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111444113A CN111444113A (zh) | 2020-07-24 |
CN111444113B true CN111444113B (zh) | 2023-06-13 |
Family
ID=71648444
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910038817.0A Active CN111444113B (zh) | 2019-01-16 | 2019-01-16 | 非易失性存储介质共享方法、装置、电子设备及存储设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111444113B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116701244B (zh) * | 2022-09-20 | 2024-05-24 | 荣耀终端有限公司 | 一种内存转储方法、装置和电子设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103218312A (zh) * | 2013-03-28 | 2013-07-24 | 中国科学院上海微系统与信息技术研究所 | 文件访问方法及系统 |
CN103412822A (zh) * | 2013-07-26 | 2013-11-27 | 华为技术有限公司 | 操作非易失性内存和数据操作的方法和相关装置 |
CN103810112A (zh) * | 2014-01-28 | 2014-05-21 | 华中科技大学 | 一种非易失性内存系统及其管理方法 |
CN103810113A (zh) * | 2014-01-28 | 2014-05-21 | 华中科技大学 | 一种非易失存储器和动态随机存取存储器的融合内存系统 |
CN105446899A (zh) * | 2015-11-09 | 2016-03-30 | 上海交通大学 | 基于存储级内存的内存数据快速持久化的方法 |
CN106648938A (zh) * | 2016-12-30 | 2017-05-10 | 郑州云海信息技术有限公司 | 一种Linux系统应用程序内存管理方法及系统 |
CN107729159A (zh) * | 2017-09-29 | 2018-02-23 | 华为技术有限公司 | 一种共享内存的地址映射方法及装置 |
WO2018113030A1 (en) * | 2016-12-23 | 2018-06-28 | Intel Corporation | Technology to implement bifurcated non-volatile memory express driver |
-
2019
- 2019-01-16 CN CN201910038817.0A patent/CN111444113B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103218312A (zh) * | 2013-03-28 | 2013-07-24 | 中国科学院上海微系统与信息技术研究所 | 文件访问方法及系统 |
CN103412822A (zh) * | 2013-07-26 | 2013-11-27 | 华为技术有限公司 | 操作非易失性内存和数据操作的方法和相关装置 |
CN103810112A (zh) * | 2014-01-28 | 2014-05-21 | 华中科技大学 | 一种非易失性内存系统及其管理方法 |
CN103810113A (zh) * | 2014-01-28 | 2014-05-21 | 华中科技大学 | 一种非易失存储器和动态随机存取存储器的融合内存系统 |
CN105446899A (zh) * | 2015-11-09 | 2016-03-30 | 上海交通大学 | 基于存储级内存的内存数据快速持久化的方法 |
WO2018113030A1 (en) * | 2016-12-23 | 2018-06-28 | Intel Corporation | Technology to implement bifurcated non-volatile memory express driver |
CN106648938A (zh) * | 2016-12-30 | 2017-05-10 | 郑州云海信息技术有限公司 | 一种Linux系统应用程序内存管理方法及系统 |
CN107729159A (zh) * | 2017-09-29 | 2018-02-23 | 华为技术有限公司 | 一种共享内存的地址映射方法及装置 |
Non-Patent Citations (2)
Title |
---|
刘翔 ; 童薇 ; 刘景宁 ; 冯丹 ; 陈劲龙 ; .动态内存分配器研究综述.计算机学报.2018,(10),全文. * |
张学成 ; 肖侬 ; 刘芳 ; 余松平 ; .内存文件系统综述.计算机研究与发展.2015,(S2),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111444113A (zh) | 2020-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10324832B2 (en) | Address based multi-stream storage device access | |
EP3115903B1 (en) | File accessing method and related device | |
EP3608787B1 (en) | Virtualizing isolation areas of solid-state storage media | |
CN104679661B (zh) | 混合存储的控制方法及混合存储系统 | |
EP3230873B1 (en) | Computing method and apparatus with persistent memory | |
US9058338B2 (en) | Storing a small file with a reduced storage and memory footprint | |
CN111930643B (zh) | 一种数据处理方法及相关设备 | |
CN110019083B (zh) | 分布式文件系统的存储方法、装置、电子设备及存储介质 | |
US11836087B2 (en) | Per-process re-configurable caches | |
US9229891B2 (en) | Determining a direct memory access data transfer mode | |
US20130173855A1 (en) | Method of operating storage device including volatile memory and nonvolatile memory | |
JP2024527054A (ja) | 動的割当可能な物理的にアドレス指定されるメタデータストレージ | |
CN111444113B (zh) | 非易失性存储介质共享方法、装置、电子设备及存储设备 | |
TW201719381A (zh) | 記憶體裝置及方法 | |
US11307999B2 (en) | Data cache segregation for spectre mitigation | |
US11960723B2 (en) | Method and system for managing memory associated with a peripheral component interconnect express (PCIE) solid-state drive (SSD) | |
KR20210043001A (ko) | 하이브리드 메모리 시스템 인터페이스 | |
CN107179929B (zh) | 一种write_same函数的优化实现方法及装置 | |
US11163475B2 (en) | Block input/output (I/O) accesses in the presence of a storage class memory | |
CN112748854A (zh) | 对快速存储设备的优化访问 | |
US10579539B2 (en) | Storage infrastructure and method for exploiting in-storage transparent compression using a dummy file that consumes LBA storage without consuming PBA storage | |
US20240012679A1 (en) | Asymmetric central processing unit (cpu) sharing with a containerized service hosted in a data storage system | |
CN117806825A (zh) | 内存分配方法及装置 | |
TWI619013B (zh) | 記憶體管理系統及其方法 | |
JP2014157476A (ja) | 計測装置及び計測方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |