CN106681668A - 一种基于固态盘缓存的混合式存储***及存储方法 - Google Patents
一种基于固态盘缓存的混合式存储***及存储方法 Download PDFInfo
- Publication number
- CN106681668A CN106681668A CN201710021507.9A CN201710021507A CN106681668A CN 106681668 A CN106681668 A CN 106681668A CN 201710021507 A CN201710021507 A CN 201710021507A CN 106681668 A CN106681668 A CN 106681668A
- Authority
- CN
- China
- Prior art keywords
- request
- solid
- segmentation
- write
- state disk
- 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; CALCULATING OR 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/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0674—Disk device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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/068—Hybrid storage device
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
本发明公开一种基于固态盘缓存的混合式存储***及存储方法,包括:机械磁盘,存储空间被划分为若干缓存块的固态盘,以及请求分类模块、请求分派器、缓存管理器;所述缓存管理器包括写请求管理单元。本发明选择性地将最合适的请求缓存在固态盘上,既利用固态盘来提升***整体性能,同时延长固态盘使用时间,在性能和寿命之间选择一个折衷的权衡点。相比固态盘,既能提高***性能,又能大量地减少到达机械磁盘的写数据量,从而提高固态盘的使用寿命。
Description
技术领域
本发明涉及存储***领域,具体涉及一种混合固态盘(SSD)和机械磁盘(HDD)进行优化存储的存储***及存储方法。
背景技术
由机械磁盘(HDD)构成的存储***的I/O效率一直以来都是计算机***性能的瓶颈,尤其当前需求和计算能力不断提高的背景下,使得存储***和计算之间性能的差距越来越大,I/O瓶颈的问题也越来越严重。引起I/O瓶颈的原因主要在于机械磁盘的物理访问特点。近年来,固态盘(SSD)技术取得了很大发展,其成本大大降低,性价比也已接近机械磁盘,因此在存储***中逐渐被广泛采用。
与机械磁盘不同,固态盘由半导体芯片组成,具有可随机访问、高可靠性、高性能、低功耗等特点。不过尽管固态盘具有非常明显的性能优势,但其中由于组成固态盘的基本部件是一种可擦写可编程只读内存(EEPROM)芯片,使得固态盘的内存芯片进行原地覆写(in-place update)的代价很高,并且只具有有限次的擦写次数寿命。所以研究在现代存储***中如何最大限度地利用固态盘,与其同时避免其内在缺陷,具有重要研究意义。
发明内容
本发明利用固态盘和机械磁盘在性能、容量、成本、寿命等方面具有互补的优缺点,提出一种固态盘与机械磁盘混合的存储***及存储方法。
本发明的技术方案是:一种基于固态盘缓存的混合式存储***,其特征在于,包括:机械磁盘,存储空间被划分为若干缓存块的固态盘,以及请求分类模块、请求分派器、缓存管理器;所述缓存管理器包括写请求管理单元;
所述请求分类模块:用于判断所到达的请求的类型,若所到达的请求为写请求,则***进行写操作;若所到达的请求为读请求,则***进行读操作;
所述请求分派器:用于当所到达的请求为写请求时,判断所到达写请求与其之前相邻达到的历史写请求的访问地址是否连续,若连续,则该写请求为连续请求,若非连续,则该写请求为分割请求;当所到达写请求为分割请求时,判断该分割请求和上一个分割请求之间的连续请求的个数,若连续请求的个数大于预设高阈值,则该分割请求和上一个分割请求之间的连续请求、和上一个分割请求组成一个大请求,将该大请求写到机械磁盘,若连续请求的个数小于等于预设高阈值,则该分割请求和上一个分割请求之间的连续请求、和上一个分割请求组成一个中请求,将中请求发送到固态盘;
所述写请求管理单元:用于当写请求到达固态盘时,寻找固态盘的空闲缓存块,若固态盘内存在空闲缓存块,则将到达的写请求写入空闲缓存块;若固态盘内无空闲缓存块,则释放固态盘的缓存块,并将到达的写请求写入释放出的缓存块。
进一步地,所述缓存管理器还包括读请求管理单元,
所述读请求管理单元:用于当所到达的请求为读请求时,查找固态盘中的缓存块,若命中,则访问固态盘执行读操作;若未命中,则访问机械磁盘或访问机械磁盘的日志区域执行读操作,并判断所到达读请求所对应数据块的未命中次数是否超过预设最高次阈值,若该数据块的未命中次数超过预设最高次阈值,则将该数据块添加到第一迁移列表。
进一步地,固态盘中预设数量的缓存块组合成一个缓存组,所有缓存块划分为若干缓存组;
写请求管理单元:还用于当写请求到达固态盘时,根据该写请求访问的地址按哈希算法查找该写请求对应的缓存组,并寻找该缓存组内的空闲缓存块,若该缓存组内存在空闲缓存块,则将到达的写请求写入空闲缓存块;若该缓存组内无空闲缓存块,则释放该缓存组内的缓存块,并将到达的写请求写入释放出的缓存块;
读请求管理单元:还用于当所到达的请求为读请求时,根据该读请求访问的地址按哈希算法查找该读请求对应的缓存组,在该缓存组内查找缓存块,若命中,则访问固态盘执行读操作;若未命中,则访问机械磁盘或访问机械磁盘的日志区域执行读操作。
进一步地,该***还包括:缓存清理模块;
所述缓存清理模块:用于周期性扫描固态盘的缓存块的状态,选择出待迁移的缓存块,并将待迁移的缓存块添加到第二迁移列表。
进一步地,该***还包括:数据迁移模块;
所述数据迁移模块:用于扫描第一迁移列表和第二迁移列表,并将第一迁移列表中的数据块迁移到固态盘,将第二迁移列表中的缓存块写回机械磁盘。
进一步地,请求分派器:还用于当所到达写请求为分割请求时,若该分割请求和上一个分割请求之间的连续请求的个数小于预设低阈值,则该分割请求和上一个分割请求之间的连续请求、和上一个分割请求组成一个小请求,将该小请求写到机械磁盘的日志区域;若该分割请求和上一个分割请求之间的连续请求的个数小于等于预设高阈值且大于等于预设低阈值,则该分割请求和上一个分割请求之间的连续请求、和上一个分割请求组成一个中请求,将中请求发送到固态盘。
一种基于固态盘缓存的混合式存储方法,包括:机械磁盘,固态盘;所述固态盘的存储空间划分为若干缓存块,预设数量的缓存块组合成一个缓存组,所有缓存块划分为若干缓存组;
还包括以下步骤:
S1:判断所到达请求的类型,若所到达请求为读请求,则进入步骤S6,若所到达请求为写请求,则进入步骤S2;
S2:判断所到达写请求与其之前相邻达到的历史写请求的访问地址是否连续,若连续,则该写请求为连续请求,若非连续,则该写请求为分割请求;当所到达写请求为分割请求时,判断该分割请求和上一个分割请求之间的连续请求的个数;
S3:若该分割请求和上一个分割请求之间的连续请求的个数大于预设高阈值,则该分割请求和上一个分割请求之间的连续请求、和上一个分割请求组成一个大请求,将该大请求写到机械磁盘;若该分割请求和上一个分割请求之间的连续请求的个数小于预设低阈值,则该分割请求和上一个分割请求之间的连续请求、和上一个分割请求组成一个小请求,将该小请求写到机械磁盘的日志区域;若该分割请求和上一个分割请求之间的连续请求的个数小于等于预设高阈值,则该分割请求和上一个分割请求之间的连续请求、和上一个分割请求组成一个中请求,将中请求发送到固态盘,并进入步骤S4;
S4:根据所到达写请求访问的地址按哈希算法在固态盘查找该写请求对应的缓存组,并寻找该缓存组内的空闲缓存块;
S5:若该缓存组内存在空闲缓存块,则将到达的写请求写入空闲缓存块;若该缓存组内无空闲缓存块,则释放该缓存组内的缓存块,并将到达的写请求写入释放出的缓存块;
S6:根据所达到读请求访问的地址按哈希算法在固态盘查找该读请求对应的缓存组,在该缓存组内查找缓存块;
S7:若命中,则访问固态盘执行读操作;若未命中,则访问机械磁盘或访问机械磁盘的日志区域执行读操作,并进入步骤S8;
S8:判断所到达读请求所对应数据块的未命中次数是否超过预设最高次阈值;
S9:若该数据块的未命中次数超过预设最高次阈值,则将该数据块添加到第一迁移列表。
进一步地,还包括以下步骤:
S10:周期性扫描固态盘的缓存块的状态,选择出待迁移的缓存块,并将待迁移的缓存块添加到第二迁移列表。
进一步地,还包括以下步骤:
S11:扫描第一迁移列表和第二迁移列表,将第一迁移列表中的数据块迁移到固态盘,将第二迁移列表中的缓存块写回机械磁盘。
本发明提供的基于固态盘缓存的混合式存储***及存储方法,选择性地将最合适的请求缓存在固态盘上,既利用固态盘来提升***整体性能,同时延长固态盘使用时间,在性能和寿命之间选择一个折衷的权衡点。相比固态盘,既能提高***性能,又能大量地减少到达机械磁盘的写数据量,从而提高固态盘的使用寿命。
附图说明
图1是本发明具体实施例原理示意图。
图2是本发明具体实施例***架构示意图。
具体实施方式
下面结合附图并通过具体实施例对本发明进行详细阐述,以下实施例是对本发明的解释,而本发明并不局限于以下实施方式。
本发明的混合式存储***建立在linux的设备映射(device-mapper,下文简称为DM)机制基础上,将固态盘和机械磁盘抽象成一个统一的逻辑设备,用户可以使用DM提供的管理工具dmsetup方便地创建这类设备,由固态盘和机械式磁盘混合组成的DM目标设备类型flashcache而实现的。在flashcache内部,固态盘是以缓存层的形式工作在机械磁盘上层 (可见于图1),并且釆用相应的请求分配策略和缓存管理算法,将最友好、与性能密切相关的数据块放置在固态盘缓存中,其目标在于既利用固态盘的高性能,同时又避免它过快地磨损,延长其使用寿命。这类混合式存储***的目标是以机械式磁盘的成本获得固态盘级的性能,在性能和成本之间找到一个最优的平衡点,为用户提供一个透明的高性能、大容量、低功耗的块级设备。
本发明提供的基于固态盘缓存的混合式存储***,包括机械磁盘和固态盘,固态盘和机械磁盘的存储空间都被划分为固定的块大小,并以块为单位进行缓存和替换。块大小值是一个用户可以配置的参数,在目标设备创建时由用户传递给目标设备,通常是4KB。具体的,固态盘的存储空间被划分为若干缓存块。
如图2所示,在本实施例中,混合式存储***主要由五个软件模块协同工作来实现对固态盘和机械磁盘的统一管理。分别是请求分类模块、请求分派器(requestdispatcher)、缓存管理器(cache manager)、缓存清理模块(cache cleaner)和数据迁移模块(data migrator)。
(1)请求分类模块:用于判断所到达的请求的类型,若所到达的请求为写请求,则***进行写操作;若所到达的请求为读请求,则***进行读操作。
(2)请求分派器:用于当所到达的请求为写请求时,判断所到达写请求与其之前相邻达到的历史写请求的访问地址是否连续,若连续,则该写请求为连续请求,若非连续,则该写请求为分割请求;当所到达写请求为分割请求时,判断该分割请求和上一个分割请求之间的连续请求的个数,若连续请求的个数大于预设高阈值,则该分割请求和上一个分割请求之间的连续请求、和上一个分割请求组成一个大请求,将该大请求写到机械磁盘,若连续请求的个数小于等于预设高阈值,则该分割请求和上一个分割请求之间的连续请求、和上一个分割请求组成一个中请求,将中请求发送到固态盘。
进一步地,当所到达写请求为分割请求时若该分割请求和上一个分割请求之间的连续请求的个数小于预设低阈值,则该分割请求和上一个分割请求之间的连续请求、和上一个分割请求组成一个小请求,将该小请求写到机械磁盘的日志区域;若该分割请求和上一个分割请求之间的连续请求的个数小于等于预设高阈值且大于等于预设低阈值,则该分割请求和上一个分割请求之间的连续请求、和上一个分割请求组成一个中请求,将中请求发送到固态盘。
请求分派器采用“双阈值”法确定是将请求发送到固态盘缓存层或直接写到磁盘上,或者暂时写到磁盘的日志区域内。“双阈值”法的工作原理是设定一个低阈值(即预设低阈值)和一个高阈值(即预设高阈值),将到达的写请求分为“大请求”、“中请求”、“小请求”三种类型。请求分派器判断写请求为大请求、中请求或小请求时,保存了过去一定数量连续请求的访问记录,然后判断当前到达的写请求是否与它之前相邻到达的历史请求的访问地址是否连续,这在原理上与内存ghost缓存相似。与之前请求不连续的新到达请求叫做“分割请求”。***每次遇到“分割请求”时,都将请求历史清零,并以该“分割请求”为起点对后续到达请求的连续性进行判断。比如连续请求3次后,第四次与前三次不是连续的,那么前面连续三次的请求为一个中请求。对于“大请求”,直接将其写到机械磁盘上,一方面可以利用机械磁盘的良好顺序访问性能,另一方面可以增加固态盘的有效缓存空间。对于“中请求”,则将其发送到固态盘上进行缓存,防止固态盘性能的快速下降以及延长了其使用寿命。对于“小请求”,则先将其缓存在与磁盘相关联的日志区域内,以避免磁盘的随机访问操作。“小请求”在日志区域内以访问地址的顺序排序等待并且在两种情况下被写到磁盘上,第一种情况叫做“乘机写”,即每次有“大请求”写到磁盘时,***检查日志区域中是否存在与其连续的“小请求”,若存在则将“小请求”与“大请求”合并一起写到磁盘。第二种情况叫“迫写”,即当日志空间中的剩余空闲空间小于设定的最低值时,***将日志区域清空,将所有缓存的“小请求”都写回到磁盘。
(3)缓存管理器包括写请求管理单元和读请求管理单元。
写请求管理单元:用于当写请求到达固态盘时,寻找固态盘的空闲缓存块,若固态盘内存在空闲缓存块,则将到达的写请求写入空闲缓存块;若固态盘内无空闲缓存块,则释放固态盘的缓存块,并将到达的写请求写入释放出的缓存块。
读请求管理单元:用于当所到达的请求为读请求时,查找固态盘中的缓存块,若命中,则访问固态盘执行读操作;若未命中,则访问机械磁盘或访问机械磁盘的日志区域执行读操作,并判断所到达读请求所对应数据块的未命中次数是否超过预设最高次阈值,若该数据块的未命中次数超过预设最高次阈值,则将该数据块添加到第一迁移列表。
在本实施例中,为了提高固态盘的缓存效率,flashcache采用分层的缓存管理策略,将一定数量(如512)的块组合成一个组,将所有的缓存块划分成若干个组。请求到达时,先根据其所访问的地址按哈希算法找到其对应的组,然后再在该组内查找其对应的块。I/O请求到对应的组采用组相联策略,组内块釆用全相联策略。
具体地,在固态盘中预设数量的缓存块组合成一个缓存组,所有缓存块划分为若干缓存组。
写请求管理单元在当写请求到达固态盘时,先根据该写请求访问的地址按哈希算法查找该写请求对应的缓存组,并寻找该缓存组内的空闲缓存块,若该缓存组内存在空闲缓存块,则将到达的写请求写入空闲缓存块;若该缓存组内无空闲缓存块,则释放该缓存组内的缓存块,并将到达的写请求写入释放出的缓存块。写请求管理单元按照先进先出算法(FIFO)和最近最少使用算法(LRU)释放缓存块,先进先出算法(FIFO)和最近最少使用算法(LRU)都是指同一组内的块替换算法,它们指分别按照缓存块访问的先后顺序和近期性来管理同组内的缓存块。
读请求管理单元在所到达的请求为读请求时,根据该读请求访问的地址按哈希算法查找该读请求对应的缓存组,在该缓存组内查找缓存块,若命中,则访问固态盘执行读操作;若未命中,则访问机械磁盘或访问机械磁盘的日志区域执行读操作。
(4)缓存清理模块:用于周期性扫描固态盘的缓存块的状态,选择出待迁移的缓存块,并将待迁移的缓存块添加到第二迁移列表。清理功能可以在***空闲的时候运行,减少写请求到达时由于没有空闲缓存块而引起的同步缓存块写回操作。缓存清理模块选择出需要写回的缓存块后,将它们按机械磁盘地址排序后***到迁移的列表中。
(5)数据迁移模块:用于扫描第一迁移列表和第二迁移列表,并将第一迁移列表中的数据块迁移到固态盘,将第二迁移列表中的缓存块写回机械磁盘。如前所述,缓存管理器监控未命中的读请求所访问的数据块,若数据块的未命中次数超过了设置的阈值,则说明该数据块的访问需求是很高的,因此将其从磁盘上迁移到固态盘缓存层中。数据迁移模块根据负载的实时特征在固态盘缓存层和磁盘之间进行数据迁移操作,确保了固态盘缓存的数据块是最优的,因而提高了***总体性能。
在本实施例中,对于缓存到固态盘的中请求和缓存到机械磁盘日志区域的小请求提供三种缓存模式,分别是“写回”、“写直达”和“写绕过”。
写回模式:“写回”模式是速度最快的缓存模式,同时它也是最不安全的。在“写回”模式下,所有的写操作只需要写到固态盘缓存上,然后将缓存块对应的元数据中的脏标识位置位表示该缓存块与磁盘上的状态不一致,即报告写操作完成。缓存中的数据块什么时候写回到磁盘取决于所釆用的缓存替换算法、应用的访问模式以及定期刷新策略。其缺点是固态盘缓存中的数据与磁盘数据存在不一致隐患,而且“写回”模式中缓存块元数据信息所需要的内存也是最多的。
写直达模式:“写直达“模式是这三种模式中最安全的模式。在“写直达模式下,每一个写操作只有同时成功地被写到固态盘和磁盘上才向上层报告请求完成,因此它也是速度最慢的模式。这种模式下,缓存层与磁盘之间的状态总是一致的。
写绕过模式:“写绕过”模式介于以上两种模式之间。在“写绕过模式下,每一个写操作都绕过固态盘缓存而直接写到磁盘上,只有当数据块第一次被访问后才将其写到缓存中。这种模式下缓存利用率是最高的。
本发明提供的基于固态盘缓存的混合式存储方法,包括以下步骤:
S9:若该数据块的未命中次数超过预设最高次阈值,则将该数据块添加到第一迁移列表。
S8:判断所到达读请求所对应数据块的未命中次数是否超过预设最高次阈值;
S7:若命中,则访问固态盘执行读操作;若未命中,则访问机械磁盘或访问机械磁盘的日志区域执行读操作,并进入步骤S8;
S6:根据所达到读请求访问的地址按哈希算法在固态盘查找该读请求对应的缓存组,在该缓存组内查找缓存块;
S5:若该缓存组内存在空闲缓存块,则将到达的写请求写入空闲缓存块;若该缓存组内无空闲缓存块,则释放该缓存组内的缓存块,并将到达的写请求写入释放出的缓存块;
S4:根据所到达写请求访问的地址按哈希算法在固态盘查找该写请求对应的缓存组,并寻找该缓存组内的空闲缓存块;
S3:若该分割请求和上一个分割请求之间的连续请求的个数大于预设高阈值,则该分割请求和上一个分割请求之间的连续请求、和上一个分割请求组成一个大请求,将该大请求写到机械磁盘;若该分割请求和上一个分割请求之间的连续请求的个数小于预设低阈值,则该分割请求和上一个分割请求之间的连续请求、和上一个分割请求组成一个小请求,将该小请求写到机械磁盘的日志区域;若该分割请求和上一个分割请求之间的连续请求的个数小于等于预设高阈值,则该分割请求和上一个分割请求之间的连续请求、和上一个分割请求组成一个中请求,将中请求发送到固态盘,并进入步骤S4;
S2:判断所到达写请求与其之前相邻达到的历史写请求的访问地址是否连续,若连续,则该写请求为连续请求,若非连续,则该写请求为分割请求;当所到达写请求为分割请求时,判断该分割请求和上一个分割请求之间的连续请求的个数;
S1:判断所到达请求的类型,若所到达请求为读请求,则进入步骤S6,若所到达请求为写请求,则进入步骤S2;
S10:周期性扫描固态盘的缓存块的状态,选择出待迁移的缓存块,并将待迁移的缓存块添加到第二迁移列表。
S11:扫描第一迁移列表和第二迁移列表,将第一迁移列表中的数据块迁移到固态盘,将第二迁移列表中的缓存块写回机械磁盘。
以上公开的仅为本发明的优选实施方式,但本发明并非局限于此,任何本领域的技术人员能思之的没有创造性的变化,以及在不脱离本发明原理前提下所作的若干改进和润饰,都应落在本发明的保护范围内。
Claims (9)
1.一种基于固态盘缓存的混合式存储***,其特征在于,包括:机械磁盘,存储空间被划分为若干缓存块的固态盘,以及请求分类模块、请求分派器、缓存管理器;所述缓存管理器包括写请求管理单元;
所述请求分类模块:用于判断所到达的请求的类型,若所到达的请求为写请求,则***进行写操作;若所到达的请求为读请求,则***进行读操作;
所述请求分派器:用于当所到达的请求为写请求时,判断所到达写请求与其之前相邻达到的历史写请求的访问地址是否连续,若连续,则该写请求为连续请求,若非连续,则该写请求为分割请求;当所到达写请求为分割请求时,判断该分割请求和上一个分割请求之间的连续请求的个数,若连续请求的个数大于预设高阈值,则该分割请求和上一个分割请求之间的连续请求、和上一个分割请求组成一个大请求,将该大请求写到机械磁盘,若连续请求的个数小于等于预设高阈值,则该分割请求和上一个分割请求之间的连续请求、和上一个分割请求组成一个中请求,将中请求发送到固态盘;
所述写请求管理单元:用于当写请求到达固态盘时,寻找固态盘的空闲缓存块,若固态盘内存在空闲缓存块,则将到达的写请求写入空闲缓存块;若固态盘内无空闲缓存块,则释放固态盘的缓存块,并将到达的写请求写入释放出的缓存块。
2.根据权利要求1所述的基于固态盘缓存的混合式存储***,其特征在于,所述缓存管理器还包括读请求管理单元,
所述读请求管理单元:用于当所到达的请求为读请求时,查找固态盘中的缓存块,若命中,则访问固态盘执行读操作;若未命中,则访问机械磁盘或访问机械磁盘的日志区域执行读操作,并判断所到达读请求所对应数据块的未命中次数是否超过预设最高次阈值,若该数据块的未命中次数超过预设最高次阈值,则将该数据块添加到第一迁移列表。
3.根据权利要求2所述的基于固态盘缓存的混合式存储***,其特征在于,固态盘中预设数量的缓存块组合成一个缓存组,所有缓存块划分为若干缓存组;
写请求管理单元:还用于当写请求到达固态盘时,根据该写请求访问的地址按哈希算法查找该写请求对应的缓存组,并寻找该缓存组内的空闲缓存块,若该缓存组内存在空闲缓存块,则将到达的写请求写入空闲缓存块;若该缓存组内无空闲缓存块,则释放该缓存组内的缓存块,并将到达的写请求写入释放出的缓存块;
读请求管理单元:还用于当所到达的请求为读请求时,根据该读请求访问的地址按哈希算法查找该读请求对应的缓存组,在该缓存组内查找缓存块,若命中,则访问固态盘执行读操作;若未命中,则访问机械磁盘或访问机械磁盘的日志区域执行读操作。
4.根据权利要求2所述的基于固态盘缓存的混合式存储***,其特征在于,该***还包括:缓存清理模块;
所述缓存清理模块:用于周期性扫描固态盘的缓存块的状态,选择出待迁移的缓存块,并将待迁移的缓存块添加到第二迁移列表。
5.根据权利要求4所述的基于固态盘缓存的混合式存储***,其特征在于,该***还包括:数据迁移模块;
所述数据迁移模块:用于扫描第一迁移列表和第二迁移列表,并将第一迁移列表中的数据块迁移到固态盘,将第二迁移列表中的缓存块写回机械磁盘。
6.根据权利要求1-5任一项所述的基于固态盘缓存的混合式存储***,其特征在于,请求分派器:还用于当所到达写请求为分割请求时,若该分割请求和上一个分割请求之间的连续请求的个数小于预设低阈值,则该分割请求和上一个分割请求之间的连续请求、和上一个分割请求组成一个小请求,将该小请求写到机械磁盘的日志区域;若该分割请求和上一个分割请求之间的连续请求的个数小于等于预设高阈值且大于等于预设低阈值,则该分割请求和上一个分割请求之间的连续请求、和上一个分割请求组成一个中请求,将中请求发送到固态盘。
7.一种基于固态盘缓存的混合式存储方法,其特征在于,包括:机械磁盘,固态盘;所述固态盘的存储空间划分为若干缓存块,预设数量的缓存块组合成一个缓存组,所有缓存块划分为若干缓存组;
还包括以下步骤:
S1:判断所到达请求的类型,若所到达请求为读请求,则进入步骤S6,若所到达请求为写请求,则进入步骤S2;
S2:判断所到达写请求与其之前相邻达到的历史写请求的访问地址是否连续,若连续,则该写请求为连续请求,若非连续,则该写请求为分割请求;当所到达写请求为分割请求时,判断该分割请求和上一个分割请求之间的连续请求的个数;
S3:若该分割请求和上一个分割请求之间的连续请求的个数大于预设高阈值,则该分割请求和上一个分割请求之间的连续请求、和上一个分割请求组成一个大请求,将该大请求写到机械磁盘;若该分割请求和上一个分割请求之间的连续请求的个数小于预设低阈值,则该分割请求和上一个分割请求之间的连续请求、和上一个分割请求组成一个小请求,将该小请求写到机械磁盘的日志区域;若该分割请求和上一个分割请求之间的连续请求的个数小于等于预设高阈值,则该分割请求和上一个分割请求之间的连续请求、和上一个分割请求组成一个中请求,将中请求发送到固态盘,并进入步骤S4;
S4:根据所到达写请求访问的地址按哈希算法在固态盘查找该写请求对应的缓存组,并寻找该缓存组内的空闲缓存块;
S5:若该缓存组内存在空闲缓存块,则将到达的写请求写入空闲缓存块;若该缓存组内无空闲缓存块,则释放该缓存组内的缓存块,并将到达的写请求写入释放出的缓存块;
S6:根据所达到读请求访问的地址按哈希算法在固态盘查找该读请求对应的缓存组,在该缓存组内查找缓存块;
S7:若命中,则访问固态盘执行读操作;若未命中,则访问机械磁盘或访问机械磁盘的日志区域执行读操作,并进入步骤S8;
S8:判断所到达读请求所对应数据块的未命中次数是否超过预设最高次阈值;
S9:若该数据块的未命中次数超过预设最高次阈值,则将该数据块添加到第一迁移列表。
8.根据权利要求7所述的基于固态盘缓存的混合式存储方法,其特征在于,还包括以下步骤:
S10:周期性扫描固态盘的缓存块的状态,选择出待迁移的缓存块,并将待迁移的缓存块添加到第二迁移列表。
9.根据权利要求8所述的基于固态盘缓存的混合式存储方法,其特征在于,还包括以下步骤:
S11:扫描第一迁移列表和第二迁移列表,将第一迁移列表中的数据块迁移到固态盘,将第二迁移列表中的缓存块写回机械磁盘。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710021507.9A CN106681668A (zh) | 2017-01-12 | 2017-01-12 | 一种基于固态盘缓存的混合式存储***及存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710021507.9A CN106681668A (zh) | 2017-01-12 | 2017-01-12 | 一种基于固态盘缓存的混合式存储***及存储方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106681668A true CN106681668A (zh) | 2017-05-17 |
Family
ID=58849618
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710021507.9A Pending CN106681668A (zh) | 2017-01-12 | 2017-01-12 | 一种基于固态盘缓存的混合式存储***及存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106681668A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107368364A (zh) * | 2017-07-24 | 2017-11-21 | 郑州云海信息技术有限公司 | 基于Linux noop调度算法的读写方法及装置 |
CN107491272A (zh) * | 2017-09-29 | 2017-12-19 | 郑州云海信息技术有限公司 | 一种数据迁移的方法、装置、设备及存储介质 |
CN107797771A (zh) * | 2017-11-16 | 2018-03-13 | 郑州云海信息技术有限公司 | 一种多路径存储优化方法及装置 |
CN108108130A (zh) * | 2017-12-22 | 2018-06-01 | 深圳忆联信息***有限公司 | 一种提升固态硬盘读写性能的方法及固态硬盘 |
CN108762664A (zh) * | 2018-02-05 | 2018-11-06 | 杭州电子科技大学 | 一种固态硬盘页级缓存区管理方法 |
CN109375868A (zh) * | 2018-09-14 | 2019-02-22 | 网宿科技股份有限公司 | 一种数据存储方法、调度装置、***、设备及存储介质 |
CN109542348A (zh) * | 2018-11-19 | 2019-03-29 | 郑州云海信息技术有限公司 | 一种数据下刷方法及装置 |
CN109656487A (zh) * | 2018-12-24 | 2019-04-19 | 平安科技(深圳)有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN114879909A (zh) * | 2022-05-07 | 2022-08-09 | 北京星辰天合科技股份有限公司 | 数据存储方法及装置、电子设备、存储介质 |
CN117407324A (zh) * | 2023-12-12 | 2024-01-16 | 深圳市银闪科技有限公司 | 基于固态硬盘的数据存储方法、装置、固态硬盘控制器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030061331A1 (en) * | 2001-09-27 | 2003-03-27 | Yasuaki Nakamura | Data storage system and control method thereof |
CN102364474A (zh) * | 2011-11-17 | 2012-02-29 | 中国科学院计算技术研究所 | 用于机群文件***的元数据存储***和管理方法 |
CN103678169A (zh) * | 2013-11-11 | 2014-03-26 | 华中科技大学 | 一种高效利用固态盘缓存的方法和*** |
-
2017
- 2017-01-12 CN CN201710021507.9A patent/CN106681668A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030061331A1 (en) * | 2001-09-27 | 2003-03-27 | Yasuaki Nakamura | Data storage system and control method thereof |
CN102364474A (zh) * | 2011-11-17 | 2012-02-29 | 中国科学院计算技术研究所 | 用于机群文件***的元数据存储***和管理方法 |
CN103678169A (zh) * | 2013-11-11 | 2014-03-26 | 华中科技大学 | 一种高效利用固态盘缓存的方法和*** |
Non-Patent Citations (1)
Title |
---|
黄平: "基于固态盘特征的存储优化研究", 《中国博士学位论文全文数据库信息科技辑》 * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107368364A (zh) * | 2017-07-24 | 2017-11-21 | 郑州云海信息技术有限公司 | 基于Linux noop调度算法的读写方法及装置 |
CN107491272B (zh) * | 2017-09-29 | 2020-03-06 | 苏州浪潮智能科技有限公司 | 一种数据迁移的方法、装置、设备及存储介质 |
CN107491272A (zh) * | 2017-09-29 | 2017-12-19 | 郑州云海信息技术有限公司 | 一种数据迁移的方法、装置、设备及存储介质 |
CN107797771A (zh) * | 2017-11-16 | 2018-03-13 | 郑州云海信息技术有限公司 | 一种多路径存储优化方法及装置 |
CN108108130A (zh) * | 2017-12-22 | 2018-06-01 | 深圳忆联信息***有限公司 | 一种提升固态硬盘读写性能的方法及固态硬盘 |
CN108762664B (zh) * | 2018-02-05 | 2021-03-16 | 杭州电子科技大学 | 一种固态硬盘页级缓存区管理方法 |
CN108762664A (zh) * | 2018-02-05 | 2018-11-06 | 杭州电子科技大学 | 一种固态硬盘页级缓存区管理方法 |
CN109375868A (zh) * | 2018-09-14 | 2019-02-22 | 网宿科技股份有限公司 | 一种数据存储方法、调度装置、***、设备及存储介质 |
CN109375868B (zh) * | 2018-09-14 | 2022-07-08 | 深圳爱捷云科技有限公司 | 一种数据存储方法、调度装置、***、设备及存储介质 |
CN109542348A (zh) * | 2018-11-19 | 2019-03-29 | 郑州云海信息技术有限公司 | 一种数据下刷方法及装置 |
CN109656487A (zh) * | 2018-12-24 | 2019-04-19 | 平安科技(深圳)有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN109656487B (zh) * | 2018-12-24 | 2023-04-28 | 平安科技(深圳)有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN114879909A (zh) * | 2022-05-07 | 2022-08-09 | 北京星辰天合科技股份有限公司 | 数据存储方法及装置、电子设备、存储介质 |
CN117407324A (zh) * | 2023-12-12 | 2024-01-16 | 深圳市银闪科技有限公司 | 基于固态硬盘的数据存储方法、装置、固态硬盘控制器 |
CN117407324B (zh) * | 2023-12-12 | 2024-03-15 | 深圳市银闪科技有限公司 | 基于固态硬盘的数据存储方法、装置、固态硬盘控制器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106681668A (zh) | 一种基于固态盘缓存的混合式存储***及存储方法 | |
US11899575B1 (en) | Flash memory system with address-based subdivision selection by host and metadata management in storage drive | |
CN107193646B (zh) | 一种基于混合主存架构的高效动态页面调度方法 | |
CN103777905B (zh) | 一种软件定义的固态盘融合存储方法 | |
US11681473B2 (en) | Memory system and control method | |
US8909887B1 (en) | Selective defragmentation based on IO hot spots | |
CN104298610B (zh) | 资料储存***及其管理方法 | |
CN103186350B (zh) | 混合存储***及热点数据块的迁移方法 | |
US11188262B2 (en) | Memory system including a nonvolatile memory and a volatile memory, and processing method using the memory system | |
US20230418739A1 (en) | Memory system and method for controlling nonvolatile memory | |
CN110058822B (zh) | 一种磁盘阵列横向拓展方法 | |
KR20120090965A (ko) | 고체-상태 저장 디바이스 상에서 데이터를 캐싱하는 장치, 시스템, 및 방법 | |
CN107423229B (zh) | 一种面向页级ftl的缓冲区改进方法 | |
WO2012116369A2 (en) | Apparatus, system, and method for managing contents of a cache | |
CN103026346A (zh) | 包括固态存储器设备的存储***中的逻辑到物理地址映射 | |
CN110321301A (zh) | 一种数据处理的方法及装置 | |
JP5716537B2 (ja) | 記憶媒体制御装置、記憶装置、記憶媒体制御方法、プログラム | |
CN107615254A (zh) | 混合对象存储设备的高速缓存架构和算法 | |
CN109446117A (zh) | 一种固态硬盘页级闪存转换层设计方法 | |
JPWO2017149592A1 (ja) | ストレージ装置 | |
CN110968269A (zh) | 基于scm与ssd的键值存储***及读写请求处理方法 | |
CN105376269B (zh) | 虚拟机存储***及其实现方法和装置 | |
CN111078143B (zh) | 基于段映射进行数据布局和调度的混合存储方法及*** | |
CN106155919B (zh) | 一种3d闪存的控制方法及控制*** | |
CN104598166B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170517 |