CN120803363A - 基于nvm的分层内存和分层存储的方法及系统 - Google Patents
基于nvm的分层内存和分层存储的方法及系统Info
- Publication number
- CN120803363A CN120803363A CN202510945875.7A CN202510945875A CN120803363A CN 120803363 A CN120803363 A CN 120803363A CN 202510945875 A CN202510945875 A CN 202510945875A CN 120803363 A CN120803363 A CN 120803363A
- Authority
- CN
- China
- Prior art keywords
- memory
- page
- nvm
- access
- pages
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供了一种基于NVM的分层内存和分层存储的方法及系统,包括步骤S1,识别内存页的访问特征,将内存页分类为持久化冷页、访存冷页、持久化热页和访存热页,并基于分类,对NVM的存储空间进行初始化分区;步骤S2,通过跟踪内存页的访问热度以及持久化热度,动态调整内存页在动态随机存取存储器DRAM和NVM之间的分布;步骤S3,将持久化热页在后台持久化到NVM上。本发明将分层内存系统和分层存储系统相结合,引入新的迁移判断标准,通过预测该页是否频繁需要进行持久化操作,以及该页的访存热度高低,智能地将对应的页迁移到NVM或DRAM中,减少系统在持久化操作和访存过程中的开销。
Description
技术领域
本发明涉及存储系统领域,具体地,涉及一种基于NVM的分层内存和分层存储的方法及系统。
背景技术
随着数据量的爆炸式增长和应用的多样化,现代存储系统面临着性能、容量和成本的综合挑战。为了在保证高性能的同时降低存储成本,研究者们提出了基于不同存储介质的分层存储系统。通过整合各类存储介质的特性优势,构建高效的存储架构。
动态随机存取存储器(DRAM)是当前计算领域访问速度最快的存储介质,其具备极低的访问延迟和极高的数据传输速率,常被用于缓存频繁访问的热数据,从而加速应用程序的运行。然而,DRAM存在容量有限且成本高昂的问题,难以满足大规模数据的存储需求。
非易失性存储器(NVM),如Intel Optane等新兴产品,作为介于DRAM与固态硬盘(SSD)之间的新型存储介质,兼具接近DRAM的访问速度与非易失性特性(断电后数据依然得以保留)。NVM不仅容量通常大于DRAM,而且在分层存储系统中常被设置为中间层,用于存储次热数据,有效缓解DRAM的容量压力。但NVM的成本与功耗相对较高。
SSD是基于闪存的非易失性存储设备,以较大的容量和较低的单位存储成本为特点。尽管其访问速度不及DRAM和NVM,但其出色的容量扩展性,使其成为分层存储系统底层存储介质的理想选择。
硬盘驱动器(HDD)作为传统存储设备,每GB成本较SSD更低,但其访问速度尤其是随机访问性能明显逊色。因此,HDD适合作为分层存储系统最底层的存储介质,用于存储访问频率低的冷数据,如备份数据、历史日志和归档文件等。凭借其大容量与低成本优势,HDD可显著降低存储系统的总体拥有成本(TCO),配合合理的数据分层策略,还能规避低速随机访问对系统性能的影响。
分层存储系统的核心理念,在于依据数据的访问频率、性能需求和成本因素,通过合理的数据分层策略,将数据动态分配至不同存储层。具体地,DRAM存储最活跃的数据,NVM存储次热数据,而SSD和HDD则用于存储冷数据,以此在保障系统整体性能的同时,最大化提升存储资源的利用效率,降低总体拥有成本(TCO)。此外,系统还需配备智能的数据迁移机制,依据数据访问模式,动态调整数据在各存储层的分布,实现性能与成本的最优平衡。
尽管现有研究已对DRAM与NVM组成的分层内存系统,以及NVM与SSD组成的分层存储系统展开了大量探索,但关于分层内存系统与分层存储系统相结合的研究却相对匮乏。这主要是由于在传统计算机架构中,内存系统和存储系统相互独立,若要实现二者的融合,需深入挖掘其中隐含的语义,精准判断哪些数据页适合进入内存系统,哪些数据页应存入存储系统,进而实现数据页在两个系统之间的高效迁移。
通过对专利文献的检索发现公开号为CN109213422A的发明专利,公开了一种分层存储方法、分层存储装置及计算机可读存储介质,方法包括步骤:监测CPU对内存中数据的读取频率;根据读取频率从多个存储区域中匹配相应存储性能的目标存储区域;若判断目标存储区域不是数据的原始存储区域,则当内存释放数据时,将数据迁移至目标存储区域中。该专利未结合NVM与DRAM分层,无持久化迁移机制,仅依赖读取频率迁移数据,未考虑持久化热度等,迁移策略单一,无法减少持久化及访存开销,应用场景和功能不足。
综上所述,针对上述现有技术的问题,研究一种基于NVM的分层内存和分层存储的方法及系统成为当下亟待解决的关键任务。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于NVM的分层内存和分层存储的方法及系统。
根据本发明提供的一种促进分层内存和分层存储系统智能协同工作的方法,包括如下步骤:
步骤S1,识别内存页的访问特征,将内存页分类为持久化冷页、访存冷页、持久化热页和访存热页,并基于分类,对NVM的存储空间进行初始化分区;
步骤S2,通过跟踪内存页的访问热度以及持久化热度,动态调整内存页在动态随机存取存储器DRAM和NVM之间的分布;
步骤S3,将持久化热页在后台持久化到NVM上。
优选地,步骤S1包括如下子步骤:
步骤S1.1,检查超级块的合法性,若超级块内容不合法,则分配并初始化日志区,通过设置超级块完成NVM的初始化,但NVM不被挂载至系统内存;若超级块内容合法,则根据日志区的索引信息,定位持久化文件页,通过普通写请求将持久化文件页写入固态硬盘SSD或机械硬盘HDD的文件系统;
步骤S1.2,通过操作系统的内存热插拔机制,将NVM中除直接持久化文件页、超级块和日志区以外的空间挂载为系统内存;
步骤S1.3,利用LRU链表记录每个内存页的访问热度,通过哈希表统计每个内存页在预设时间内的持久化次数;
步骤S1.4,若内存页在连续两次采样中均位于LRU链表的活跃列表,则判定为访存热页;若内存页的持久化次数超过预设阈值,则判定为持久化热页;未满足以上任一热页条件的内存页判定为冷页。
优选地,步骤S1.4包括:系统提供操作系统接口,允许用户手动调整内存页的冷热属性,以及放置方式。
优选地,步骤S2包括如下子步骤:
步骤S2.1,在完成NVM的内存挂载后,通过操作系统接口启用内核中的访存热度跟踪模块、持久化热度跟踪模块和后台迁移线程,并创建堆叠文件系统;
步骤S2.2,当线程访问内存页时,更新内存页在LRU链表中的位置以统计访存热度;当执行fsync持久化操作时,记录被持久化的内存页的范围信息,以统计持久化热度;结合内存页的当前位置、访存热度和持久化热度,判断是否需要迁移内存页;
步骤S2.3,若确定内存页需要迁移且内存页位于DRAM,则将内存页添加到内核的特定链表,并标注目标存储位置,通过内核线程,在后台逐个迁移到目标介质;若内存页位于NVM且预设时间内被持久化的次数低于预设阈值,则,则将内存页视为冷页,将内存页持久化到SSD;
步骤S2.4,若内存页为访存热页且非持久化热页,且当前位于NVM,则将内存页迁移到DRAM。
优选地,步骤S2.1中,访存热度跟踪模块通过修改LRU链表更新函数实现;持久化热度跟踪模块位于文件系统的fsync操作处理逻辑以及后台线程刷写逻辑中;
后台迁移线程根据NVM的日志区内容,将NVM上的持久化文件页和直接持久化文件页写回SSD或HDD,并执行内存页在DRAM和NVM之间的迁移。
优选地,步骤S2.4中,当DRAM的剩余容量低于下限阈值时,从LRU链表的非活跃列表中随机选择冷页迁移到NVM,直到DRAM的剩余容量恢复至上限阈值以上,再执行内存页的迁移。
优选地,步骤S3包括如下子步骤:
步骤S3.1,若内存页为访存冷页且为持久化热页,则将内存页迁移到NVM;若内存页同时为访存热页和持久化热页,则根据访存强度和持久化强度的比较结果决定处理方式:
若访存强度高于持久化强度,则将内存页保留在DRAM,若内存页为脏页,则将内存页持久化到NVM,并更新页表标记为干净页,同时在NVM的索引区记录文件与内存页的对应关系;
若访存强度低于持久化强度,则将内存页迁移到NVM并记录对应关系;
步骤S3.2,通过堆叠文件系统读取文件时,先从底层文件系统获取待读取的内存页,再在NVM的日志区搜索匹配的内存页,若存在,则将NVM中的内存页映射到页表;否则从SSD读取并映射。
优选地,步骤S3.1中,访存强度通过英特尔CPU的精确事件采样PEBS功能采集L3缓存缺失的页地址统计得到;
持久化强度通过fsync系统调用统计被持久化的页数得到;
比较访存强度和持久化强度时,结合DRAM和NVM的延迟数据和吞吐量,计算访存和持久化的延迟开销比,再根据预设时间内的访存次数和持久化次数推算延迟增量,若DRAM的延迟增量更大,则判定持久化强度更高,若NVM的延迟增量更大,则判定访存强度更高。
优选地,步骤S3还包括:
通过操作系统接口接收用户设置的内存页的持久化热度或访存热度参数,以调整内存页的放置位置和维护策略。
本发明还提供了一种促进分层内存和分层存储系统智能协同工作的系统,包括:
模块M1,识别内存页的访问特征,将内存页分类为持久化冷页、访存冷页、持久化热页和访存热页,并基于分类,对NVM的存储空间进行初始化分区;
模块M2,通过跟踪内存页的访问热度以及持久化热度,动态调整内存页在动态随机存取存储器DRAM和NVM之间的分布;
模块M3,将持久化热页在后台持久化到NVM上。
与现有技术相比,本发明具有如下的有益效果:
1、本发明结合了基于NVM的分层内存和分层存储系统,使用单块NVM被同时作为内存与存储使用,提升了NVM的利用率。
2、本发明能智能实现文件页在内存和存储系统之间的零开销转换,避免了持久化内存页时,数据在内存部分NVM到存储部分NVM或相反方向的复制操作,显著提升了系统性能。
3、本发明可基于任何现有文件系统使用,不需要对文件系统进行代码层面的修改,具有良好的兼容性和易用性。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明实施例中的NVM中内存布局的示意图;
图2为本发明实施例中的在不同介质上所有可能的页类型的情况图;
图3为本发明实施例中的开机后启动分层内存与分层存储系统流程的示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
本发明提供了一种基于NVM的分层内存和分层存储的方法及系统,包括步骤S1,识别内存页的访问特征,将内存页分类为持久化冷页、访存冷页、持久化热页和访存热页,并基于分类,对NVM的存储空间进行初始化分区;步骤S2,通过跟踪内存页的访问热度以及持久化热度,动态调整内存页在动态随机存取存储器DRAM和NVM之间的分布;步骤S3,将持久化热页在后台持久化到NVM上。本发明将分层内存系统和分层存储系统相结合,引入新的迁移判断标准,通过预测该页是否频繁需要进行持久化操作,以及该页的访存热度高低,智能地将对应的页迁移到NVM或DRAM中,减少系统在持久化操作和访存过程中的开销。
本发明在NVM上采用日志结构和索引机制,明确划分持久化区域和非持久化区域,既充分发挥了NVM作为内存扩展的高带宽特性,又利用其持久化特性实现快速数据落盘。该设计在系统崩溃重启时,可通过索引信息快速恢复NVM中的持久化数据,确保数据一致性。其次,设计了基于双维度热度评估的内存页迁移策略,通过综合分析访存热度和持久化热度两个指标,智能决定内存页在DRAM和NVM之间的最优放置位置,实现存储系统整体性能的最优化。
实施例1:
本实施例提供了一种促进分层内存和分层存储系统智能协同工作的方法,包括如下步骤:
步骤S1,在初次挂载非易失性内存NVM时,识别内存页的访问特征,将内存页分类为持久化冷页、访存冷页、持久化热页和访存热页,并基于分类,对NVM的存储空间进行初始化分区;
本实施例中,持久化冷页为持久化操作热度低于预设阈值的内存页;访存冷页为访问热度低于预设阈值的内存页;持久化热页为持久化操作热度高于预设阈值的内存页;访存热页为访问热度高于预设阈值的内存页。
图1为本发明实施例中的NVM中内存布局的示意图;图2为本发明实施例中的在不同介质上所有可能的页类型的情况图。
如图1、2所示,NVM的存储空间被划分为多个功能区域,包括超级块、日志区、持久化文件页、直接持久化文件页等。
图3为本发明实施例中的开机后启动分层内存与分层存储系统流程的示意图。
如图3所示,步骤S1包括如下子步骤:
步骤S1.1,检查超级块的合法性,若超级块内容不合法,则分配并初始化日志区,通过设置超级块完成NVM的初始化,但NVM不被挂载至系统内存;若超级块内容合法,则根据日志区的索引信息,定位持久化文件页,通过普通写请求将持久化文件页写入固态硬盘SSD或机械硬盘HDD的文件系统;
步骤S1.2,通过操作系统的内存热插拔机制,将NVM中除直接持久化文件页、超级块和日志区以外的空间挂载为系统内存,使系统能在NVM上放置页。
步骤S1.3,利用LRU链表记录每个内存页的访问热度,通过哈希表统计每个内存页在预设时间内的持久化次数;
本实施例中,持久化次数为调用fsync的次数。
步骤S1.4,若内存页在连续两次采样中均位于LRU链表的活跃列表,则判定为访存热页;若内存页的持久化次数超过预设阈值,则判定为持久化热页;未满足以上任一热页条件的内存页判定为冷页。
进一步地,步骤S1.4包括:系统提供操作系统接口,允许用户手动调整内存页的冷热属性,以及放置方式。
步骤S2,通过跟踪内存页的访问热度以及持久化热度,动态调整内存页在动态随机存取存储器DRAM和NVM之间的分布。
具体地,步骤S2包括如下子步骤:
步骤S2.1,在完成NVM的内存挂载后,通过操作系统接口启用内核中的访存热度跟踪模块、持久化热度跟踪模块和后台迁移线程,并创建堆叠文件系统。
本实施例中,访存热度跟踪模块通过修改LRU链表更新函数实现;持久化热度跟踪模块位于文件系统的fsync操作处理逻辑以及后台线程刷写逻辑中。
后台迁移线程根据NVM的日志区内容,将NVM上的持久化文件页和直接持久化文件页写回SSD或HDD,并执行内存页在DRAM和NVM之间的迁移。
由于NVM中驻留的持久化文件页与底层块设备(SSD/HDD)上的文件内容可能存在不一致性,需采用堆叠文件系统。
步骤S2.2,当线程访问内存页时,更新内存页在LRU链表中的位置以统计访存热度;当执行fsync持久化操作时,记录被持久化的内存页的范围信息,以统计持久化热度;结合内存页的当前位置、访存热度和持久化热度,判断是否需要迁移内存页。
步骤S2.3,若确定内存页需要迁移且内存页位于DRAM,则将内存页添加到内核的特定链表,并标注目标存储位置,通过内核线程,在后台逐个迁移到目标介质;若内存页位于NVM且预设时间内被持久化的次数低于预设阈值,则,则将内存页视为冷页,将内存页持久化到SSD;
步骤S2.4,若内存页为访存热页且非持久化热页,且当前位于NVM,则将内存页迁移到DRAM。
本实施例中,当DRAM的剩余容量低于下限阈值时,从LRU链表的非活跃列表中随机选择冷页迁移到NVM,直到DRAM的剩余容量恢复至上限阈值以上,再执行内存页的迁移,避免因内存不足导致系统崩溃,确保高频访问内存页优先保留在DRAM中。
步骤S3,将持久化热页在后台持久化到NVM上。
具体地,步骤S3包括如下子步骤:
步骤S3.1,若内存页为访存冷页且为持久化热页,则将内存页迁移到NVM;若内存页同时为访存热页和持久化热页,则根据访存强度和持久化强度的比较结果决定处理方式:
若访存强度高于持久化强度,则将内存页保留在DRAM,若内存页为脏页,则将内存页持久化到NVM,并更新页表标记为干净页,同时在NVM的索引区记录文件与内存页的对应关系,发挥DRAM访存速度优势,以投机式策略降低该内存页持久化开销。
若访存强度低于持久化强度,则将内存页迁移到NVM并记录对应关系。进一步地,后续持久化操作直接跳过,此时通过访存指令直接访问和修改该内存页,且修改会直接持久化到NVM上,降低持久化成本。
进一步地,步骤S3.1中,访存强度通过英特尔CPU的精确事件采样PEBS功能采集L3缓存缺失的页地址统计得到,获取当前内存页在预设时间内的访存次数。
持久化强度通过fsync系统调用统计被持久化的页数得到。
比较访存强度和持久化强度时,结合DRAM和NVM的延迟数据和吞吐量,计算访存和持久化的延迟开销比,再根据预设时间内的访存次数和持久化次数推算延迟增量,若DRAM的延迟增量更大,则判定持久化强度更高,若NVM的延迟增量更大,则判定访存强度更高。
步骤S3.2,通过堆叠文件系统读取文件时,先从底层文件系统获取待读取的内存页,再在NVM的日志区搜索匹配的内存页,若存在,则将NVM中的内存页映射到页表;否则从SSD读取并映射。
进一步地,步骤S3还包括:
通过操作系统接口接收用户设置的内存页的持久化热度或访存热度参数,以调整内存页的放置位置和维护策略。
实施例2:
本发明还提供一种促进分层内存和分层存储系统智能协同工作的系统,促进分层内存和分层存储系统智能协同工作的系统可以通过执行促进分层内存和分层存储系统智能协同工作的方法的流程步骤予以实现,即本领域技术人员可以将促进分层内存和分层存储系统智能协同工作的方法理解为促进分层内存和分层存储系统智能协同工作的系统的优选实施方式。
具体地,该促进分层内存和分层存储系统智能协同工作的系统,包括:
模块M1,识别内存页的访问特征,将内存页分类为持久化冷页、访存冷页、持久化热页和访存热页,并基于分类,对NVM的存储空间进行初始化分区;
模块M2,通过跟踪内存页的访问热度以及持久化热度,动态调整内存页在动态随机存取存储器DRAM和NVM之间的分布;
模块M3,将持久化热页在后台持久化到NVM上。
具体地,模块M1包括如下子模块:
模块M1.1,检查超级块的合法性,若超级块内容不合法,则分配并初始化日志区,通过设置超级块完成NVM的初始化,但NVM不被挂载至系统内存;若超级块内容合法,则根据日志区的索引信息,定位持久化文件页,通过普通写请求将持久化文件页写入固态硬盘SSD或机械硬盘HDD的文件系统;
模块M1.2,通过操作系统的内存热插拔机制,将NVM中除直接持久化文件页、超级块和日志区以外的空间挂载为系统内存,使系统能在NVM上放置页。
模块M1.3,利用LRU链表记录每个内存页的访问热度,通过哈希表统计每个内存页在预设时间内的持久化次数;
本实施例中,持久化次数为调用fsync的次数。
模块M1.4,若内存页在连续两次采样中均位于LRU链表的活跃列表,则判定为访存热页;若内存页的持久化次数超过预设阈值,则判定为持久化热页;未满足以上任一热页条件的内存页判定为冷页。
进一步地,模块M1.4包括:系统提供操作系统接口,允许用户手动调整内存页的冷热属性,以及放置方式。
具体地,模块M2包括如下子模块:
模块M2.1,在完成NVM的内存挂载后,通过操作系统接口启用内核中的访存热度跟踪模块、持久化热度跟踪模块和后台迁移线程,并创建堆叠文件系统。
本实施例中,访存热度跟踪模块通过修改LRU链表更新函数实现;持久化热度跟踪模块位于文件系统的fsync操作处理逻辑以及后台线程刷写逻辑中。
后台迁移线程根据NVM的日志区内容,将NVM上的持久化文件页和直接持久化文件页写回SSD或HDD,并执行内存页在DRAM和NVM之间的迁移。
由于NVM中驻留的持久化文件页与底层块设备(SSD/HDD)上的文件内容可能存在不一致性,需采用堆叠文件系统。
模块M2.2,当线程访问内存页时,更新内存页在LRU链表中的位置以统计访存热度;当执行fsync持久化操作时,记录被持久化的内存页的范围信息,以统计持久化热度;结合内存页的当前位置、访存热度和持久化热度,判断是否需要迁移内存页。
模块M2.3,若确定内存页需要迁移且内存页位于DRAM,则将内存页添加到内核的特定链表,并标注目标存储位置,通过内核线程,在后台逐个迁移到目标介质;若内存页位于NVM且预设时间内被持久化的次数低于预设阈值,则,则将内存页视为冷页,将内存页持久化到SSD;
模块M2.4,若内存页为访存热页且非持久化热页,且当前位于NVM,则将内存页迁移到DRAM。
本实施例中,当DRAM的剩余容量低于下限阈值时,从LRU链表的非活跃列表中随机选择冷页迁移到NVM,直到DRAM的剩余容量恢复至上限阈值以上,再执行内存页的迁移,避免因内存不足导致系统崩溃,确保高频访问内存页优先保留在DRAM中。
具体地,模块M3包括如下子模块:
模块M3.1,若内存页为访存冷页且为持久化热页,则将内存页迁移到NVM;若内存页同时为访存热页和持久化热页,则根据访存强度和持久化强度的比较结果决定处理方式:
若访存强度高于持久化强度,则将内存页保留在DRAM,若内存页为脏页,则将内存页持久化到NVM,并更新页表标记为干净页,同时在NVM的索引区记录文件与内存页的对应关系,发挥DRAM访存速度优势,以投机式策略降低该内存页持久化开销。
若访存强度低于持久化强度,则将内存页迁移到NVM并记录对应关系。进一步地,后续持久化操作直接跳过,此时通过访存指令直接访问和修改该内存页,且修改会直接持久化到NVM上,降低持久化成本。
进一步地,模块M3.1中,访存强度通过英特尔CPU的精确事件采样PEBS功能采集L3缓存缺失的页地址统计得到,获取当前内存页在预设时间内的访存次数。
持久化强度通过fsync系统调用统计被持久化的页数得到。
比较访存强度和持久化强度时,结合DRAM和NVM的延迟数据和吞吐量,计算访存和持久化的延迟开销比,再根据预设时间内的访存次数和持久化次数推算延迟增量,若DRAM的延迟增量更大,则判定持久化强度更高,若NVM的延迟增量更大,则判定访存强度更高。
模块M3.2,通过堆叠文件系统读取文件时,先从底层文件系统获取待读取的内存页,再在NVM的日志区搜索匹配的内存页,若存在,则将NVM中的内存页映射到页表;否则从SSD读取并映射。
综上,本发明提出了一种促进分层内存和分层存储系统智能协同工作的方法及系统,相比于普通的分层内存系统和普通的分层存储方法及系统,能够更智能地识别页在两个系统中的语义,支持页在两个系统之间进行无开销的转换,在一定程度上提高了使用NVM的系统的内存访存和持久化操作性能。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (10)
1.一种促进分层内存和分层存储系统智能协同工作的方法,其特征在于,包括如下步骤:
步骤S1,识别内存页的访问特征,将所述内存页分类为持久化冷页、访存冷页、持久化热页和访存热页,并基于所述分类,对所述NVM的存储空间进行初始化分区;
步骤S2,通过跟踪内存页的访问热度以及持久化热度,动态调整所述内存页在动态随机存取存储器DRAM和所述NVM之间的分布;
步骤S3,将所述持久化热页在后台持久化到所述NVM上。
2.根据权利要求1所述的促进分层内存和分层存储系统智能协同工作的方法,其特征在于,所述步骤S1包括如下子步骤:
步骤S1.1,检查超级块的合法性,若所述超级块内容不合法,则分配并初始化日志区,通过设置所述超级块完成所述NVM的初始化,但NVM不被挂载至系统内存;若所述超级块内容合法,则根据所述日志区的索引信息,定位持久化文件页,通过普通写请求将所述持久化文件页写入固态硬盘SSD或机械硬盘HDD的文件系统;
步骤S1.2,通过操作系统的内存热插拔机制,将所述NVM中除直接持久化文件页、所述超级块和所述日志区以外的空间挂载为系统内存;
步骤S1.3,利用LRU链表记录每个内存页的访问热度,通过哈希表统计每个内存页在预设时间内的持久化次数;
步骤S1.4,若所述内存页在连续两次采样中均位于所述LRU链表的活跃列表,则判定为访存热页;若所述内存页的持久化次数超过预设阈值,则判定为持久化热页;未满足以上任一热页条件的内存页判定为冷页。
3.根据权利要求2所述的促进分层内存和分层存储系统智能协同工作的方法,其特征在于,所述步骤S1.4包括:系统提供操作系统接口,允许用户手动调整内存页的冷热属性,以及放置方式。
4.根据权利要求1所述的促进分层内存和分层存储系统智能协同工作的方法,其特征在于,所述步骤S2包括如下子步骤:
步骤S2.1,在完成所述NVM的内存挂载后,通过操作系统接口启用内核中的访存热度跟踪模块、持久化热度跟踪模块和后台迁移线程,并创建堆叠文件系统;
步骤S2.2,当线程访问所述内存页时,更新所述内存页在所述LRU链表中的位置以统计访存热度;当执行fsync持久化操作时,记录被持久化的所述内存页的范围信息,以统计持久化热度;结合所述内存页的当前位置、所述访存热度和所述持久化热度,判断是否需要迁移所述内存页;
步骤S2.3,若确定所述内存页需要迁移且所述内存页位于所述DRAM,则将所述内存页添加到内核的特定链表,并标注目标存储位置,通过内核线程,在后台逐个迁移到目标介质;若所述内存页位于所述NVM且预设时间内被持久化的次数低于预设阈值,则,则将所述内存页视为冷页,将所述内存页持久化到所述SSD;
步骤S2.4,若所述内存页为访存热页且非持久化热页,且当前位于所述NVM,则将所述内存页迁移到所述DRAM。
5.根据权利要求4所述的促进分层内存和分层存储系统智能协同工作的方法,其特征在于,所述步骤S2.1中,所述访存热度跟踪模块通过修改LRU链表更新函数实现;所述持久化热度跟踪模块位于文件系统的fsync操作处理逻辑以及后台线程刷写逻辑中;
所述后台迁移线程根据所述NVM的日志区内容,将所述NVM上的持久化文件页和直接持久化文件页写回所述SSD或所述HDD,并执行所述内存页在所述DRAM和所述NVM之间的迁移。
6.根据权利要求4所述的促进分层内存和分层存储系统智能协同工作的方法,其特征在于,所述步骤S2.4中,当所述DRAM的剩余容量低于下限阈值时,从所述LRU链表的非活跃列表中随机选择冷页迁移到所述NVM,直到所述DRAM的剩余容量恢复至上限阈值以上,再执行所述内存页的迁移。
7.根据权利要求1所述的促进分层内存和分层存储系统智能协同工作的方法,其特征在于,所述步骤S3包括如下子步骤:
步骤S3.1,若所述内存页为访存冷页且为持久化热页,则将所述内存页迁移到所述NVM;若所述内存页同时为访存热页和持久化热页,则根据访存强度和持久化强度的比较结果决定处理方式:
若所述访存强度高于所述持久化强度,则将所述内存页保留在所述DRAM,若所述内存页为脏页,则将所述内存页持久化到所述NVM并,并更新页表标记为干净页,同时在所述NVM的索引区记录文件与所述内存页的对应关系;
若所述访存强度低于所述持久化强度,则将所述内存页迁移到所述NVM并记录对应关系;
步骤S3.2,通过所述堆叠文件系统读取文件时,先从底层文件系统获取待读取的内存页,再在所述NVM的日志区搜索匹配的内存页,若存在,则将所述NVM中的内存页映射到页表;否则从所述SSD读取并映射。
8.根据权利要求7所述的促进分层内存和分层存储系统智能协同工作的方法,其特征在于,所述步骤S3.1中,所述访存强度通过英特尔CPU的精确事件采样PEBS功能采集L3缓存缺失的页地址统计得到;
所述持久化强度通过fsync系统调用统计被持久化的页数得到;
比较所述访存强度和所述持久化强度时,结合所述DRAM和所述NVM的延迟数据和吞吐量,计算访存和持久化的延迟开销比,再根据预设时间内的访存次数和持久化次数推算延迟增量,若所述DRAM的延迟增量更大,则判定持久化强度更高,若所述NVM的延迟增量更大,则判定所述访存强度更高。
9.根据权利要求1所述的促进分层内存和分层存储系统智能协同工作的方法,其特征在于,所述步骤S3还包括:
通过操作系统接口接收用户设置的所述内存页的持久化热度或访存热度参数,以调整所述内存页的放置位置和维护策略。
10.一种促进分层内存和分层存储系统智能协同工作的系统,其特征在于,包括:
模块M1,识别内存页的访问特征,将所述内存页分类为持久化冷页、访存冷页、持久化热页和访存热页,并基于所述分类,对所述NVM的存储空间进行初始化分区;
模块M2,通过跟踪内存页的访问热度以及持久化热度,动态调整所述内存页在动态随机存取存储器DRAM和所述NVM之间的分布;
模块M3,将所述持久化热页在后台持久化到所述NVM上。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202510945875.7A CN120803363A (zh) | 2025-07-09 | 2025-07-09 | 基于nvm的分层内存和分层存储的方法及系统 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202510945875.7A CN120803363A (zh) | 2025-07-09 | 2025-07-09 | 基于nvm的分层内存和分层存储的方法及系统 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN120803363A true CN120803363A (zh) | 2025-10-17 |
Family
ID=97313222
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202510945875.7A Pending CN120803363A (zh) | 2025-07-09 | 2025-07-09 | 基于nvm的分层内存和分层存储的方法及系统 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN120803363A (zh) |
-
2025
- 2025-07-09 CN CN202510945875.7A patent/CN120803363A/zh active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7089830B2 (ja) | 不揮発性メモリデータの書き込み管理のための装置、システム、及び、方法 | |
| US10761777B2 (en) | Tiered storage using storage class memory | |
| US9940261B2 (en) | Zoning of logical to physical data address translation tables with parallelized log list replay | |
| US9229653B2 (en) | Write spike performance enhancement in hybrid storage systems | |
| CN102012791B (zh) | 基于Flash的数据存储PCIE板卡 | |
| US20180018259A1 (en) | Apparatus and method for low power low latency high capacity storage class memory | |
| WO2021218038A1 (zh) | 一种存储系统、内存管理方法和管理节点 | |
| US20140337566A1 (en) | Solid state memory (ssm), computer system including an ssm, and method of operating an ssm | |
| US20090106518A1 (en) | Methods, systems, and computer program products for file relocation on a data storage device | |
| Niu et al. | Hybrid storage systems: A survey of architectures and algorithms | |
| US8572321B2 (en) | Apparatus and method for segmented cache utilization | |
| CN103838676B (zh) | 数据存储系统、数据存储方法及pcm桥 | |
| US20070005904A1 (en) | Read ahead method for data retrieval and computer system | |
| US11663136B2 (en) | Storage capacity recovery source selection | |
| CN102681792B (zh) | 一种固态盘内存分区方法 | |
| CN117312188A (zh) | 混合ssd数据缓存预取系统及方法 | |
| Xie et al. | Dynamic data reallocation in hybrid disk arrays | |
| TW202449615A (zh) | 用於儲存裝置中的快取操作的裝置以及方法 | |
| CN120803363A (zh) | 基于nvm的分层内存和分层存储的方法及系统 | |
| Micheloni et al. | Hybrid storage | |
| Wang et al. | Evaluating non-in-place update techniques for flash-based transaction processing systems | |
| Micheloni et al. | Hybrid storage systems | |
| Zhang et al. | MCB: a multidevice cooperative buffer management strategy for boosting the write performance of the SSD-SMR hybrid storage: C. Zhang et al. | |
| Koo et al. | Maintaining Inter-Layer Equilibrium in Hierarchical-Storage-based KV Store | |
| US20240402924A1 (en) | Systems, methods, and apparatus for cache configuration based on storage placement |
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 |