CN111078143A - 基于段映射进行数据布局和调度的混合存储方法及系统 - Google Patents

基于段映射进行数据布局和调度的混合存储方法及系统 Download PDF

Info

Publication number
CN111078143A
CN111078143A CN201911180458.9A CN201911180458A CN111078143A CN 111078143 A CN111078143 A CN 111078143A CN 201911180458 A CN201911180458 A CN 201911180458A CN 111078143 A CN111078143 A CN 111078143A
Authority
CN
China
Prior art keywords
data
segment
nvm
ssd
mapping
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.)
Granted
Application number
CN201911180458.9A
Other languages
English (en)
Other versions
CN111078143B (zh
Inventor
陈俭喜
冯丹
袁盼飞
谈若蕾
李佳琦
陈鑫宇
彭周旋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201911180458.9A priority Critical patent/CN111078143B/zh
Publication of CN111078143A publication Critical patent/CN111078143A/zh
Application granted granted Critical
Publication of CN111078143B publication Critical patent/CN111078143B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于段映射进行数据布局和调度的混合存储方法及系统,属于计算机存储领域,包括:将NVM和SSD分别划分为多个数据段,每个数据段包含固定数量的数据块;SSD和NVM独立编址,且数据以段为单位分配存储空间;根据数据属性将数据块划分为冷数据块和热数据块,所分配的每个数据段中存储的数据块类型相同;分配热数据段时,在NVM和SSD中分别分配一个空闲的数据段,并建立两个数据段之间的映射关系,同时将所建立的映射关系保存至映射表中;分配冷数据段时,仅在SSD中分配一个空闲的数据段;将NVM中的数据迁移到SSD中时,直接将NVM中待迁移的数据段迁移到SSD中与之映射的数据段。本发明能够降低混合存储系统的管理开销,并提高回收效率。

Description

基于段映射进行数据布局和调度的混合存储方法及系统
技术领域
本发明属于计算机存储领域,更具体地,涉及一种基于段映射进行数据布局和调度的混合存储方法及系统。
背景技术
随着IT及互联网技术的飞速发展,数据量呈爆发式增长,研究开发低成本、高可靠、快速存取、低能耗等条件的新型存储技术,成为未来能构建高性能存储系统的关键。而文件系统是存储设备与用户数据交互的主要途径,因此文件系统如何组织和管理数据,提高数据存取效率是一个重要问题。
固态盘目前已经被广泛运用于计算机系统中,且预计在未来几年,固态盘将全面替代磁盘,成为二级存储的主要形式。而新型存储技术NVM也在飞速发展,它有着高性能的存取速度。目前NVM最大的问题是成本和容量。由于成本太高,对于普通的企业还不能直接将NVM代替磁盘和SSD作为主要的存储介质,而搭配多种存储介质成为更好的选择。多种存储设备为文件系统的构建方式和数据管理带来了新的机遇与挑战。在文件系统中,数据被分为普通数据和元数据,其中元数据是用来管理普通数据属性的数据。50%以上对数据的访问集中于对元数据的访问,而元数据在介质中所占数据量很小,只需要很小的空间就能存储所有元数据,故将元数据定义为热数据,即访问比较频繁的数据。使用小容量NVM和大容量SSD组合,构建混合存储文件系统,并将热数据存储在NVM,冷数据存储在SSD,充分利用NVM的读写性能优势,聚合多设备的I/O带宽,能够提高数据存取效率。
在传统的混合存储方法中,通常采用统一编址,对热数据直接写入NVM,冷数据写入SSD。但是NVM空间有限,不能无限制地存储热数据,当NVM空间不足时,需要将数据回收转移到SSD,此时故需要记录热数据块的访问情况,以便于选取热数据块中访问不频繁的数据块做迁移,而数据块的数量庞大,这带来了大量的管理开销;当对布局零散的数据块做回收时,由于回收单位较小,数据量大时,I/O操作十分频繁,回收效率低下;同时在转移NVM中数据块时,需要逐一确定每个数据块的元数据信息并进行更新,带来了额外的查找和I/O操作等性能开销。因而如何设计NVM中数据的回收策略,释放足够的空闲空间,并尽可能减少I/O操作和元数据更新操作,提高迁移效率,减小对文件系统正常读写的影响,是一个亟待解决的难点。
发明内容
针对现有技术的缺陷和改进需求,本发明提供了一种基于段映射进行数据布局和调度的混合存储方法及系统,其目的在于,降低混合存储系统的管理开销,并提高回收效率。
为实现上述目的,按照本发明的第一方面,提供了一种基于段映射进行数据布局和调度的混合存储方法,包括:
将混合存储系统中的NVM和SSD分别划分为多个数据段,每个数据段包含固定数量的数据块;SSD和NVM独立编址,且数据以段为单位分配存储空间;
根据数据属性将数据块划分为冷数据块和热数据块,所分配的每个数据段中存储的数据块类型相同,用于存储热数据块的数据段为热数据段,用于存储冷数据块的数据段为冷数据段;
分配热数据段时,在NVM和SSD中分别分配一个空闲的数据段,并建立两个数据段之间的映射关系,同时将所建立的映射关系保存至映射表中;分配冷数据段时,仅在SSD中分配一个空闲的数据段;
将NVM中的数据迁移到SSD中时,直接将NVM中待迁移的数据段迁移到SSD中与之映射的数据段。
本发明通过冷热数据分类,并将相同类型的数据块集中组织为数据段,便于对相同类型的数据进行批量操作,能够减小管理开销;通过建立NVM与SSD中数据段之间的映射关系,在将NVM中的数据迁移到SSD中时,会根据数据段之间的映射关系,直接将NVM中的数据段迁移到SSD中对应的数据段中,与以数据块为单位进行数据迁移相比,能够有效减少IO操作次数,从而提高回收效率。总的来说,本发明能够有效降低混合存储系统的管理开销并提高回收效率。
进一步地,本发明第一方面提供的基于段映射进行数据布局和调度的混合存储方法,还包括:
(S1)处理数据访问请求时,若为写请求,则转入步骤(S2);若为读请求,则转入步骤(S8);
(S2)根据数据属性判断待写入数据块Bw的类型,若为热数据块,则转入步骤(S3);若为冷数据块,则转入步骤(S7);
(S3)获得数据块Bw所属的数据段Sw,并从映射表中获取数据段Sw的映射关系,若获取成功,则转入步骤(S4);否则,转入步骤(S5);
(S4)根据映射关系中的重定向标志将数据块Bw写入NVM或SSD,写请求结束;
(S5)在NVM中分配一个空闲的数据段作为数据段Sw,同时在SSD中分配一个空闲的数据段,建立两个数据段之间的映射关系,并初始化该映射关系的重定向标志,以指示将写请求定向到NVM,之后将所建立的映射关系保存至映射表中;
(S6)将数据块Bw写入数据段Sw,写请求结束;
(S7)将数据块Bw写入SSD,写请求结束;
(S8)获得待读取的数据块BR所属的数据段SR,并从映射表中获取数据段SR的映射关系,若获取成功,且重定向标志指示将读请求定向到NVM,则从NVM中读取数据块BR;否则,从SSD中读取数据块BR
其中,映射关系中的重定向标志用于指示是否将读请求或写请求定向到NVM。
进一步地,本发明第一方面提供的基于段映射进行数据布局和调度的混合存储方法,还包括:
定期检测NVM中空闲段的数目N,若N>DN,则不回收NVM存储空间;否则,在所有已分配的数据段中获得访问次数最少的k个数据段
Figure BDA0002291111120000041
作为回收对象;
对于每一个数据段
Figure BDA0002291111120000042
若其中的有效块数目
Figure BDA0002291111120000043
则将其中的有效块转移至NVM中回收对象之外的热数据段中,并更新元数据;将数据段
Figure BDA0002291111120000044
及SSD中与之映射的数据段均标记为空闲数据段并回收存储空间,之后在映射表中取消数据段
Figure BDA0002291111120000045
的映射关系;
若数据段
Figure BDA0002291111120000046
中的有效块数目
Figure BDA0002291111120000047
则获得SSD中与数据段
Figure BDA0002291111120000048
映射的数据段,并将数据段
Figure BDA0002291111120000049
中的有效块迁移至该数据段中,将数据段
Figure BDA00022911111200000410
标记为空闲数据段并回收存储空间,之后在映射表中取消数据段
Figure BDA00022911111200000411
的映射关系;
其中,DN为空闲段数目下限阈值,k为NVM中当前已分配的数据段数目与空闲段数目上限阈值UP之间的差值,1≤i≤k,VD为有效块数目阈值,元数据中记录的信息包括数据块在SSD中的存储地址。
本发明采用数据块转移与数据段迁移相结合的方式完成垃圾回收,在所选中的回收对象中有效块数目较少(低于有效块数目阈值)时,将其中的有效块转移到NVM中其他同类型的数据段中,在所选中的回收对象中有效块数目较多(高于有效块数目阈值)时,将数据段迁移到SSD中阈值映射的数据段中,由此保证了较高的IO开销利用率;由于元数据记录的信息包括数据块在SSD中的存储地址,使得NVM的存在对元数据透明,在数据段迁移时,无需更新元数据,从而能够在垃圾回收过程中有效减少对元数据的更新次数,从而降低混合存储系统的性能开销。
进一步地,本发明第一方面提供的基于段映射进行数据布局和调度的混合存储方法,还包括:
根据混合存储系统的负载变化情况调整进行NVM空间回收的时间间隔,使得负载越大,该时间间隔越长,以避免对正常IO操作的影响。
进一步地,本发明第一方面提供的基于段映射进行数据布局和调度的混合存储方法,还包括:
根据混合存储系统的负载变化情况调整空闲段数目下限阈值DN或者有效块数目阈值VD的取值,以使得负载越大,NVM的存储空间利用率越高,以避免对正常IO操作的影响。
进一步地,本发明第一方面提供的基于段映射进行数据布局和调度的混合存储方法,还包括:
根据混合存储系统的负载变化情况调整空闲段数目上限阈值UP的取值,使得负载越大,空闲段数目上限阈值UP越高,从而在一次回收操作中回收更多的存储空间,以避免对正常IO操作的影响。
进一步地,本发明第一方面提供的基于段映射进行数据布局和调度的混合存储方法,还包括:定期将NVM中所有已分配的数据段的访问次数减少,以避免历史缓存计数的污染问题。
进一步地,本发明第一方面提供的基于段映射进行数据布局和调度的混合存储方法,还包括:根据混合存储系统的负载变化情况调整进行访问次数减少的时间间隔,使得负载越大,该时间间隔越短;负载越大,历史缓存计数的污染问题越严重,缩短时间间隔后,能够尽可能缓解历史缓存计数的污染问题。
进一步地,本发明第一方面提供的基于段映射进行数据布局和调度的混合存储方法,映射表共包括两个数组结构,分别记为第一数组结构和第二数组结构,第一数组结构和第二数组结构均用于保存NVM中数据段与SSD中数据段的映射关系;
第一数组结构以NVM数据段的段号为索引,以所映射的SSD数据段的段号及相应的重定向标志为值;
第二数组结构以SSD数据段的段号为索引,以所映射的NVM数据段的段号及相应的重定向标志为值。
本发明同时利用两个数组结构记录NVM和SSD中数据段之间的映射关系,在回收NVM空间和SSD空间时,查找映射信息的开销均趋近于0;并且在两个数组结构中,利用一个数组值保存被映射的数据段号和重定向标志,占用内存空间小,且管理开销小。
按照本发明的第二方面,提供了一种系统,包括计算机可读存储介质和处理器;
计算机可读存储介质用于存储可执行程序;
处理器用于读取计算机可读存储介质中存储的可执行程序,执行本发明第一方面提供的基于段映射进行数据布局和调度的混合存储方法。
总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:
(1)本发明所提供的基于段映射进行数据布局和调度的混合存储方法及系统,通过冷热数据分类,并将相同类型的数据块集中组织为数据段,便于对相同类型的数据进行批量操作,能够减小管理开销;通过建立NVM与SSD中数据段之间的映射关系,在将NVM中的数据迁移到SSD中时,会根据数据段之间的映射关系,直接将NVM中的数据段迁移到SSD中对应的数据段中,能够有效减少IO操作次数,从而提高回收效率。总的来说,本发明能够有效降低混合存储系统的管理开销并提高回收效率。
(2)本发明所提供的基于段映射进行数据布局和调度的混合存储方法及系统,采用数据块转移与数据段迁移相结合的方式完成垃圾回收,在所选中的回收对象中有效块数目较少时,将其中的有效块转移到NVM中其他同类型的数据段中,在所选中的回收对象中有效块数目较多时,将数据段迁移到SSD中阈值映射的数据段中,由此保证了较高的IO开销利用率;由于元数据记录的信息包括数据块在SSD中的存储地址,使得NVM的存在对元数据透明,在数据段迁移时,无需更新元数据,从而能够在垃圾回收过程中有效减少对元数据的更新次数,从而降低混合存储系统的性能开销。
(3)本发明所提供的基于段映射进行数据布局和调度的混合存储方法及系统,会根据混合存储系统的负载变化情况对进行NVM空间回收的时间间隔、空闲段数目下限阈值DN、有效块数目阈值VD以及空闲段数目上限阈值UP的取值进行调整,使得负载越大,NVM空间回收的时间间隔越长、空闲段数目下限阈值DN越低、有效块数目阈值VD越高并且空闲段数目上限阈值UP越高,由此能够避免在垃圾回收过程中对正常IO操作的影响。
(4)本发明所提供的基于段映射进行数据布局和调度的混合存储方法及系统,定期将NVM中所有已分配的数据段的访问次数减少,能够避免历史缓存计数的污染问题;并且负载越大,访问次数减少越频繁,能够最大程度上缓解历史缓存计数的污染问题。
(5)本发明所提供的基于段映射进行数据布局和调度的混合存储方法及系统,同时利用两个数组结构记录NVM和SSD中数据段之间的映射关系,在回收NVM空间和SSD空间时,查找映射信息的开销均趋近于0;并且在两个数组结构中,利用一个数组值保存被映射的数据段号和重定向标志,占用内存空间小,且管理开销小。
附图说明
图1为本发明实施例提供的基于段映射进行数据布局和调度的混合存储方法流程图;
图2为本发明实施例提供的数据段回收流程图;
图3为本发明实施例提供的映射表的数据结构示意图以及数据段映射的示意图;其中,(a)为第一数组结构示意图,(b)为第二数组结构示意图,(c)为数据段映射示意图。
图4为本发明实施例提供的混合存储系统示意图;
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
在本发明中,本发明及附图中的术语“第一”、“第二”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
为了降低混合存储系统的管理开销,并提高回收效率,本发明所提供的基于段映射进行数据布局和调度的混合存储方法,如图1所示,包括:
将混合存储系统中的NVM和SSD分别划分为多个数据段,每个数据段包含固定数量的数据块;SSD和NVM独立编址,且数据以段为单位分配存储空间;
根据数据属性将数据块划分为冷数据块和热数据块,所分配的每个数据段中存储的数据块类型相同,用于存储热数据块的数据段为热数据段,用于存储冷数据块的数据段为冷数据段;具体可采用任意一种冷、热数据划分的方式完成冷数据块和热数据块的分类,例如,可根据数据访问次数进行划分;
分配热数据段时,在NVM和SSD中分别分配一个空闲的数据段,并建立两个数据段之间的映射关系,同时将所建立的映射关系保存至映射表中;分配冷数据段时,仅在SSD中分配一个空闲的数据段;容易理解的是,只有当前一个同一类型的数据段中所有空闲的数据块都使用完毕,才会重新分配新的数据段;为了便于快速完成数据段的分配,可以为NVM和SSD分别维护一个空闲段位图,分别用于记录NVM和SSD中哪些数据段是空闲的;
将NVM中的数据迁移到SSD中时,直接将NVM中待迁移的数据段迁移到SSD中与之映射的数据段。
上述基于段映射进行数据布局和调度的混合存储方法,通过冷热数据分类,并将相同类型的数据块集中组织为数据段,便于对相同类型的数据进行批量操作,能够减小管理开销;通过建立NVM与SSD中数据段之间的映射关系,在将NVM中的数据迁移到SSD中时,会根据数据段之间的映射关系,直接将NVM中的数据段迁移到SSD中对应的数据段中,与以数据块为单位进行数据迁移相比,能够有效减少IO操作次数,从而提高回收效率。
上述基于段映射进行数据布局和调度的混合存储方法,还包括:
(S1)处理数据访问请求时,若为写请求,则转入步骤(S2);若为读请求,则转入步骤(S8);
(S2)根据数据属性判断待写入数据块Bw的类型,若为热数据块,则转入步骤(S3);若为冷数据块,则转入步骤(S7);
(S3)获得数据块Bw所属的数据段Sw,并从映射表中获取数据段Sw的映射关系,若获取成功,说明NVM中已经分配了数据段Sw,则转入步骤(S4);否则,说明NVM中还没有分配数据段Sw,转入步骤(S5);
(S4)根据映射关系中的重定向标志将数据块Bw写入NVM或SSD,写请求结束;其中,映射关系中的重定向标志用于指示是否将读请求或写请求定向到NVM,在步骤(S4)中,若重定向标志指示将写请求定向到NVM,则将数据块Bw写入NVM,若重定向标志指示不将写请求定向到NVM,则将数据块Bw写入SSD;
(S5)在NVM中分配一个空闲的数据段作为数据段Sw,同时在SSD中分配一个空闲的数据段,建立两个数据段之间的映射关系,并初始化该映射关系的重定向标志,以指示将写请求定向到NVM,之后将所建立的映射关系保存至映射表中;
(S6)将数据块Bw写入数据段Sw,写请求结束;
(S7)将数据块Bw写入SSD,写请求结束;
(S8)获得待读取的数据块BR所属的数据段SR,并从映射表中获取数据段SR的映射关系,若获取成功,且重定向标志指示将读请求定向到NVM,则从NVM中读取数据块BR;否则,从SSD中读取数据块BR
上述基于段映射进行数据布局和调度的混合存储方法,如图2所示,还包括:
定期检测NVM中空闲段的数目N,若N>DN,则不回收NVM存储空间;否则,在所有已分配的数据段中获得访问次数最少的k个数据段
Figure BDA0002291111120000101
作为回收对象;
对于每一个数据段
Figure BDA0002291111120000102
若其中的有效块数目
Figure BDA0002291111120000103
则将其中的有效块转移至NVM中回收对象之外的热数据段中,并更新元数据;将数据段
Figure BDA0002291111120000104
及SSD中与之映射的数据段均标记为空闲数据段并回收存储空间,之后在映射表中取消数据段
Figure BDA0002291111120000105
的映射关系;
若数据段
Figure BDA0002291111120000106
中的有效块数目
Figure BDA0002291111120000107
则获得SSD中与数据段
Figure BDA0002291111120000108
映射的数据段,并将数据段
Figure BDA0002291111120000109
中的有效块迁移至该数据段中,将数据段
Figure BDA00022911111200001010
标记为空闲数据段并回收存储空间,之后在映射表中取消数据段
Figure BDA00022911111200001011
的映射关系;
其中,DN为空闲段数目下限阈值,k为NVM中当前已分配的数据段数目与空闲段数目上限阈值UP之间的差值,1≤i≤k,VD为有效块数目阈值,元数据中记录的信息包括数据块在SSD中的存储地址;对于存储在NVM热数据段中的数据块,其元数据为该数据段在SSD中对应的数据段中的地址;
上述基于段映射进行数据布局和调度的混合存储方法,采用数据块转移与数据段迁移相结合的方式完成垃圾回收,在所选中的回收对象中有效块数目较少(低于有效块数目阈值)时,将其中的有效块转移到NVM中其他同类型的数据段中,在所选中的回收对象中有效块数目较多(高于有效块数目阈值)时,将数据段迁移到SSD中阈值映射的数据段中,由此保证了较高的IO开销利用率;由于元数据记录的信息包括数据块在SSD中的存储地址,使得NVM的存在对元数据透明,在数据段迁移时,无需更新元数据,从而能够在垃圾回收过程中有效减少对元数据的更新次数,从而降低混合存储系统的性能开销。
为了避免在垃圾回收的过程中影响正常的IO操作,提高服务质量,上述基于段映射进行数据布局和调度的混合存储方法,还包括:
根据混合存储系统的负载变化情况调整进行NVM空间回收的时间间隔,使得负载越大,该时间间隔越长,以避免对正常IO操作的影响;
同样为了避免在垃圾回收的过程中影响正常的IO操作,提高服务质量,上述基于段映射进行数据布局和调度的混合存储方法,还可包括:
根据混合存储系统的负载变化情况调整空闲段数目下限阈值DN或者有效块数目阈值VD的取值,以使得负载越大,NVM的存储空间利用率越高;为了保证调整参数之后,NVM的存储空间利用率越高,应使得负载越大,空闲段数目下限阈值DN越低,或者有效块数目阈值VD越高具体调整时;应当理解的是,具体调整时,可以只调整一个参数,也可以同时调整两个参数;由于负载越大,对NVM存储空间的需求越大,通过上述调整提高NVM存储空间的利用率,能够避免对正常IO操作的影响。
同样为了避免在垃圾回收的过程中影响正常的IO操作,提高服务质量,上述基于段映射进行数据布局和调度的混合存储方法,还可包括:
根据混合存储系统的负载变化情况调整空闲段数目上限阈值UP的取值,使得负载越大,空闲段数目上限阈值UP越高;同样地,负载越大,对NVM存储空间的需求越大,通过上述调整,在回收操作中,选定的回收对象数量k越大,从而在一次回收操作中能够回收更多的存储空间,避免对正常IO操作的影响。
为了避免历史缓存计数的污染问题,上述基于段映射进行数据布局和调度的混合存储方法,还可包括:定期将NVM中所有已分配的数据段的访问次数减少,以避免历史缓存计数的污染问题;
为了最大程度上缓解历史缓存计数的污染问题,还可以根据混合存储系统的负载变化情况调整进行访问次数减少的时间间隔,使得负载越大,该时间间隔越短;负载越大,历史缓存计数的污染问题越严重,缩短时间间隔后,能够尽可能缓解历史缓存计数的污染问题。
为了使映射关系持久化,保证文件系统的一致性,上述基于段映射进行数据布局和调度的混合存储方法及系统,其特征在于,还包括:定期回写映射表,即将映射表从内存写回NVM。
作为一种优选的实施方式,如图3所示,映射表共包括两个数组结构,分别记为第一数组结构和第二数组结构,第一数组结构和第二数组结构均用于保存NVM中数据段与SSD中数据段的映射关系;
如图3(a)所示,第一数组结构以NVM数据段的段号为索引,以所映射的SSD数据段的段号及相应的重定向标志为值;
如图3(b)所示,第二数组结构以SSD数据段的段号为索引,以所映射的NVM数据段的段号及相应的重定向标志为值;
同时利用两个数组结构记录NVM和SSD中数据段之间的映射关系,如图3(c)所示,在回收NVM空间和SSD空间时,查找映射信息的开销均趋近于0;并且在两个数组结构中,利用一个数组值保存被映射的数据段号和重定向标志,占用内存空间小,且管理开销小。
本发明还提供了一种系统,包括计算机可读存储介质和处理器;
计算机可读存储介质用于存储可执行程序;
处理器用于读取计算机可读存储介质中存储的可执行程序,执行上述基于段映射进行数据布局和调度的混合存储方法。
图4所示为实现了上述基于段映射进行数据布局和调度的混合存储方法的混合存储系统整体架构,用户空间应用程序经系统调用发送文件读写请求到虚拟文件系统,虚拟文件系统调用混合文件系统100完成读写请求,虚拟文件系统本身不需要做修改;混合文件系统处理读写请求得到请求的具体数据块地址,发送数据块请求给块层,由块层与设备交互,完成数据块的读写。在整个读写过程中,混合文件系统的具体实现对上层虚拟文件系统和下层块层是一个黑盒。
混合存储文件系统100主要由两部分组成:现有文件系统110和基于现有文件系统的功能扩展120。对于现有的具体文件系统,例如本系统采用的F2FS,对设备挂载部分做了修改,通过设定挂载参数,将NVM和SSD关联起来,并计算NVM块数目、段数目,初始化空闲段和空闲块位图,段访问计数器,各个阈值等信息,完成NVM的磁盘布局,这些操作仅在第一次挂载时执行,后续挂载可跳过;具体的读写请求在经过F2FS之后,交给扩展模块做进一步处理。
基于现有文件系统的功能扩展120,也就是本发明的核心部分,包括读写请求的处理模块121和NVM数据回收模块122。
读写请求的处理模块121中,当接收到的是热数据的写请求时,首先判断是否有现有的未使用完毕的热数据段,如果有则直接在现有热数据段中分配数据块,如果没有,则需要查找NVM和SSD的空闲段位图,从两者中各分配一个数据段,记录段号,并将两个段的映射关系加入映射表,然后从该热数据段中分配数据块。需要注意的是,这里分配的数据块在NVM和SSD中各有一个位置,其元数据记录的是在SSD中的块地址,从而使NVM的存在对元数据透明,在数据迁移时,无需更新元数据便可实现数据段批量迁移,提高迁移性能和效率。当接收到的是冷数据写请求时,首先判断是否有现有的未使用完毕的冷数据段,如果有则直接在现有冷数据段中分配数据块,如果没有,则需要查找SSD的空闲段位图,从SSD中分配数据块。由于F2FS采用的是日志结构文件系统异地更新,故写操作均为异地写。当接收到的是读数据请求时,无需分配数据块。
以上操作完毕后,在向块层发起I/O请求之前,根据I/O请求中数据块地址,得到所属SSD数据段号,并查找映射表,对于有映射的数据段,得到NVM数据段号,将I/O请求发送到NVM设备,并将NVM中对应段访问计数加1;无映射的数据段,I/O请求发送到SSD设备,完成I/O请求的重定向。
NVM数据回收模块122中,结合图2所示,当NVM中空闲段数目低于下限阈值时,根据访问计数选取访问最少的k个段做回收,k取值为NVM中当前已分配的数据段数目与空闲段数目上限阈值UP之间的差值,对每个受害者段,如段中有效块数目低于阈值,将段中仍在使用的数据块读取并转移到其他同类型数据段,并更新该数据块对应的元数据,该回收操作中每个数据块需要重新经过具体文件系统F2FS和扩展功能的读写模块;如受害者段中有效块数目高于阈值,查找映射表得到该段在SSD中的映射段,将段中数据直接写入对应SSD数据段,不更新元数据,亦不需要重新经过文件系统上层读写模块;受害者段回收之后,取消映射表中映射项。
在每次执行数据回收时,查看系统负载情况,并设定有效块数目和空闲段数目上下限阈值,负载越大,则有效块数目阈值设置越高,空闲段数目上限阈值设置越高,下限阈值设置越低,从而达到负载越大,NVM利用率越高,NVM数据段热度越高的效果。并定期将访问计数减半,负载越大,减半操作越频繁,避免历史缓存计数的污染问题。
系统保存两组映射表,如图3所示,分别为NVM段到SSD段的映射表和SSD段到NVM段的映射表,其中SSD段到NVM段的映射表用于提交I/O请求时根据SSD段号确定映射信息;而NVM段到SSD段的映射表用于数据段迁移时根据NVM受害者段找到待迁移的位置。每个映射表是一个数组结构,其下标Index记录了NVM/SSD的段号,数组值Value除去低两位记录了SSD/NVM的段号,低两位用来记录映射标志,分别表示该段读和写是否需要重定向到NVM设备,将读和写重定向标志分离,便于系统根据读写情况设置不同的重定向策略。采用数组结构的映射表,可以使提交I/O请求和数据迁移时确定映射信息的开销趋近于0,避免对原有I/O性能的影响;同时由于使用数据段的方式来映射,映射项数目相对于采用数据块映射小得多,并且每个映射项将映射值和映射标志放在一个数组值中,综合来看,内存占用和管理开销也非常小。
综合上述的所有过程,使得混合存储系统实现了上述基于段映射进行数据布局和调度的混合存储方法,提高了NVM的利用率,减小了管理开销,并提升数据迁移的效率和性能,提升混合文件系统在复杂应用下的整体性能。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于段映射进行数据布局和调度的混合存储方法,其特征在于,包括:
将混合存储系统中的NVM和SSD分别划分为多个数据段,每个数据段包含固定数量的数据块;SSD和NVM独立编址,且数据以段为单位分配存储空间;
根据数据属性将数据块划分为冷数据块和热数据块,所分配的每个数据段中存储的数据块类型相同,用于存储热数据块的数据段为热数据段,用于存储冷数据块的数据段为冷数据段;
分配热数据段时,在NVM和SSD中分别分配一个空闲的数据段,并建立两个数据段之间的映射关系,同时将所建立的映射关系保存至映射表中;分配冷数据段时,仅在SSD中分配一个空闲的数据段;
将NVM中的数据迁移到SSD中时,直接将NVM中待迁移的数据段迁移到SSD中与之映射的数据段。
2.如权利要求1所述的基于段映射进行数据布局和调度的混合存储方法,其特征在于,还包括:
(S1)处理数据访问请求时,若为写请求,则转入步骤(S2);若为读请求,则转入步骤(S8);
(S2)根据数据属性判断待写入数据块Bw的类型,若为热数据块,则转入步骤(S3);若为冷数据块,则转入步骤(S7);
(S3)获得数据块Bw所属的数据段Sw,并从所述映射表中获取数据段Sw的映射关系,若获取成功,则转入步骤(S4);否则,转入步骤(S5);
(S4)根据映射关系中的重定向标志将数据块Bw写入NVM或SSD,写请求结束;
(S5)在NVM中分配一个空闲的数据段作为数据段Sw,同时在SSD中分配一个空闲的数据段,建立两个数据段之间的映射关系,并初始化该映射关系的重定向标志,以指示将写请求定向到NVM,之后将所建立的映射关系保存至所述映射表中;
(S6)将数据块Bw写入数据段Sw,写请求结束;
(S7)将数据块Bw写入SSD,写请求结束;
(S8)获得待读取的数据块BR所属的数据段SR,并从所述映射表中获取数据段SR的映射关系,若获取成功,且重定向标志指示将读请求定向到NVM,则从NVM中读取数据块BR;否则,从SSD中读取数据块BR
其中,映射关系中的重定向标志用于指示是否将读请求或写请求定向到NVM,元数据中记录的信息包括数据块在SSD中的存储地址。
3.如权利要求1或2所述的基于段映射进行数据布局和调度的混合存储方法,其特征在于,还包括:
定期检测NVM中空闲段的数目N,若N>DN,则不回收NVM存储空间;否则,在所有已分配的数据段中获得访问次数最少的k个数据段
Figure FDA0002291111110000021
作为回收对象;
对于每一个数据段
Figure FDA0002291111110000022
若其中的有效块数目
Figure FDA0002291111110000023
则将其中的有效块转移至NVM中回收对象之外的热数据段中,并更新元数据;将数据段
Figure FDA0002291111110000024
及SSD中与之映射的数据段均标记为空闲数据段并回收存储空间,之后在所述映射表中取消数据段
Figure FDA0002291111110000025
的映射关系;
若数据段
Figure FDA0002291111110000026
中的有效块数目
Figure FDA0002291111110000027
则获得SSD中与数据段
Figure FDA0002291111110000028
映射的数据段,并将数据段
Figure FDA0002291111110000029
中的有效块迁移至该数据段中,将数据段
Figure FDA00022911111100000210
标记为空闲数据段并回收存储空间,之后在所述映射表中取消数据段
Figure FDA00022911111100000211
的映射关系;
其中,DN为空闲段数目下限阈值,k为NVM中当前已分配的数据段数目与空闲段数目上限阈值UP之间的差值,1≤i≤k,VD为有效块数目阈值,元数据中记录的信息包括数据块在SSD中的存储地址。
4.如权利要求3所述的基于段映射进行数据布局和调度的混合存储方法,其特征在于,还包括:
根据所述混合存储系统的负载变化情况调整进行NVM空间回收的时间间隔,使得负载越大,该时间间隔越长。
5.如权利要求3所述的基于段映射进行数据布局和调度的混合存储方法,其特征在于,还包括:
根据所述混合存储系统的负载变化情况调整所述空闲段数目下限阈值DN或者所述有效块数目阈值VD的取值,以使得负载越大,NVM的存储空间利用率越高。
6.如权利要求3所述的基于段映射进行数据布局和调度的混合存储方法及系统,其特征在于,还包括:
根据所述混合存储系统的负载变化情况调整所述空闲段数目上限阈值UP的取值,使得负载越大,所述空闲段数目上限阈值UP越高。
7.如权利要求3所述的基于段映射进行数据布局和调度的混合存储方法及系统,其特征在于,还包括:定期将NVM中所有已分配的数据段的访问次数减少。
8.如权利要求7所述的基于段映射进行数据布局和调度的混合存储方法及系统,其特征在于,还包括:根据所述混合存储系统的负载变化情况调整进行访问次数减少的时间间隔,使得负载越大,该时间间隔越短。
9.如权利要求1或2所述的基于段映射进行数据布局和调度的混合存储方法及系统,其特征在于,所述映射表共包括两个数组结构,分别记为第一数组结构和第二数组结构,所述第一数组结构和所述第二数组结构均用于保存NVM中数据段与SSD中数据段的映射关系;
所述第一数组结构以NVM数据段的段号为索引,以所映射的SSD数据段的段号及相应的重定向标志为值;
所述第二数组结构以SSD数据段的段号为索引,以所映射的NVM数据段的段号及相应的重定向标志为值。
10.一种系统,其特征在于,包括计算机可读存储介质和处理器;
所述计算机可读存储介质用于存储可执行程序;
所述处理器用于读取所述计算机可读存储介质中存储的可执行程序,执行权利要求1-9任一项所述的基于段映射进行数据布局和调度的混合存储方法。
CN201911180458.9A 2019-11-27 2019-11-27 基于段映射进行数据布局和调度的混合存储方法及系统 Active CN111078143B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911180458.9A CN111078143B (zh) 2019-11-27 2019-11-27 基于段映射进行数据布局和调度的混合存储方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911180458.9A CN111078143B (zh) 2019-11-27 2019-11-27 基于段映射进行数据布局和调度的混合存储方法及系统

Publications (2)

Publication Number Publication Date
CN111078143A true CN111078143A (zh) 2020-04-28
CN111078143B CN111078143B (zh) 2020-12-29

Family

ID=70311779

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911180458.9A Active CN111078143B (zh) 2019-11-27 2019-11-27 基于段映射进行数据布局和调度的混合存储方法及系统

Country Status (1)

Country Link
CN (1) CN111078143B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111913924A (zh) * 2020-07-21 2020-11-10 华中科技大学 一种基于热度的日志结构文件系统数据管理方法
CN115079933A (zh) * 2021-03-12 2022-09-20 戴尔产品有限公司 基于数据关系的快速缓存系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101923512A (zh) * 2009-05-29 2010-12-22 晶天电子(深圳)有限公司 两层、三层闪存装置、智能存储开关和两层、三层控制器
US20160054942A1 (en) * 2013-03-15 2016-02-25 Super Talent Technology, Corp. Green NAND Device (GND) Driver with DRAM Data Persistence For Enhanced Flash Endurance and Performance
US20160070474A1 (en) * 2008-06-18 2016-03-10 Super Talent Technology Corp. Data-Retention Controller/Driver for Stand-Alone or Hosted Card Reader, Solid-State-Drive (SSD), or Super-Enhanced-Endurance SSD (SEED)
CN109213772A (zh) * 2018-09-12 2019-01-15 华东师范大学 数据存储方法及NVMe存储系统
US20190250851A1 (en) * 2018-02-15 2019-08-15 Western Digital Technologies, Inc. Method and apparatus for programming flash based storage using segmented writes
CN110147335A (zh) * 2018-02-09 2019-08-20 三星电子株式会社 用于ssd储存器中nvme命令间关联的系统和方法
CN110347336A (zh) * 2019-06-10 2019-10-18 华中科技大学 一种基于nvm与ssd混合存储结构的键值存储系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160070474A1 (en) * 2008-06-18 2016-03-10 Super Talent Technology Corp. Data-Retention Controller/Driver for Stand-Alone or Hosted Card Reader, Solid-State-Drive (SSD), or Super-Enhanced-Endurance SSD (SEED)
CN101923512A (zh) * 2009-05-29 2010-12-22 晶天电子(深圳)有限公司 两层、三层闪存装置、智能存储开关和两层、三层控制器
US20160054942A1 (en) * 2013-03-15 2016-02-25 Super Talent Technology, Corp. Green NAND Device (GND) Driver with DRAM Data Persistence For Enhanced Flash Endurance and Performance
CN110147335A (zh) * 2018-02-09 2019-08-20 三星电子株式会社 用于ssd储存器中nvme命令间关联的系统和方法
US20190250851A1 (en) * 2018-02-15 2019-08-15 Western Digital Technologies, Inc. Method and apparatus for programming flash based storage using segmented writes
CN109213772A (zh) * 2018-09-12 2019-01-15 华东师范大学 数据存储方法及NVMe存储系统
CN110347336A (zh) * 2019-06-10 2019-10-18 华中科技大学 一种基于nvm与ssd混合存储结构的键值存储系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
陈俭喜等: "基于虚拟接口的存储网络适配器的设计与研究", 《华中科技大学学报(自然科学版)》 *
马文龙等: "Key-Value型NoSQL本地存储系统研究", 《计算机学报》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111913924A (zh) * 2020-07-21 2020-11-10 华中科技大学 一种基于热度的日志结构文件系统数据管理方法
CN111913924B (zh) * 2020-07-21 2024-03-19 华中科技大学 一种基于热度的日志结构文件系统数据管理方法
CN115079933A (zh) * 2021-03-12 2022-09-20 戴尔产品有限公司 基于数据关系的快速缓存系统
CN115079933B (zh) * 2021-03-12 2024-05-24 戴尔产品有限公司 基于数据关系的快速缓存系统

Also Published As

Publication number Publication date
CN111078143B (zh) 2020-12-29

Similar Documents

Publication Publication Date Title
CN107193646B (zh) 一种基于混合主存架构的高效动态页面调度方法
EP3301584B1 (en) Storage system, storage management device, storage device, hybrid storage device, and storage management method
CN107943867B (zh) 支持异构存储的高性能层次化存储系统
CN109783020B (zh) 一种基于ssd-smr混合键值存储系统的垃圾回收方法
US9390020B2 (en) Hybrid memory with associative cache
CN103631536B (zh) 一种利用ssd的无效数据优化raid5/6写性能的方法
CN106548789A (zh) 用于操作叠瓦式磁记录设备的方法和装置
CN104346357A (zh) 一种嵌入式终端的文件存取方法及系统
CN102799534A (zh) 基于固态存储介质的存储系统及方法、冷热数据识别方法
CN106528438A (zh) 一种固态存储设备的分段式垃圾回收方法
JP2006293981A (ja) データベース格納方法、および、データベース格納システム
CN110968269A (zh) 基于scm与ssd的键值存储系统及读写请求处理方法
CN109947363A (zh) 一种分布式存储系统的数据缓存方法
CN109471594B (zh) 一种mlc闪存读写方法
CN110888600B (zh) 一种面向nand闪存的缓冲区管理方法
CN111078143B (zh) 基于段映射进行数据布局和调度的混合存储方法及系统
WO2014142337A1 (ja) ストレージ装置と方法及びプログラム
CN111580754A (zh) 一种写友好的闪存固态盘缓存管理方法
CN103631729A (zh) 一种基于块级的分级存储方法及系统
CN110968266B (zh) 一种基于热度的存储管理方法及系统
CN106909323B (zh) 适用于dram/pram混合主存架构的页缓存方法及混合主存架构系统
CN108563586A (zh) 一种分离固态盘中垃圾回收数据与用户数据的方法
CN111984604B (zh) 一种减少日志结构文件系统碎片的方法及闪存存储系统
CN108664217A (zh) 一种降低固态盘存储系统写性能抖动的缓存方法及系统
CN108897618B (zh) 一种异构内存架构下基于任务感知的资源分配方法

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