CN103399713B - 平衡多级存储性能与固态硬盘寿命的数据缓冲方法 - Google Patents

平衡多级存储性能与固态硬盘寿命的数据缓冲方法 Download PDF

Info

Publication number
CN103399713B
CN103399713B CN201310333194.2A CN201310333194A CN103399713B CN 103399713 B CN103399713 B CN 103399713B CN 201310333194 A CN201310333194 A CN 201310333194A CN 103399713 B CN103399713 B CN 103399713B
Authority
CN
China
Prior art keywords
data
hard disk
solid state
write
hard disc
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
Application number
CN201310333194.2A
Other languages
English (en)
Other versions
CN103399713A (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.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
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 Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN201310333194.2A priority Critical patent/CN103399713B/zh
Publication of CN103399713A publication Critical patent/CN103399713A/zh
Application granted granted Critical
Publication of CN103399713B publication Critical patent/CN103399713B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种平衡多级存储性能与固态硬盘寿命的数据缓冲方法。该方法应用于安装有固态硬盘和机械硬盘的服务器上,在数据的读取和写入时,根据数据大小阀值,将数据分为大数据和小数据,将大数据直接写入机械硬盘,小数据选择性地使用固态硬盘缓冲。当机械硬盘空闲时,将新的小数据写入机械硬盘,繁忙时将小数据写入固态硬盘,并合理设定机械硬盘可用性能资源,缩短了机械硬盘的任务队列,降低了读写请求在队列中的等待时间。这些调度策略尽可能地发挥了固态硬盘在小数据读写上的优势,并充分利用了机械硬盘的性能,在降低固态硬盘寿命损耗的同时又提供了合理的性能。

Description

平衡多级存储性能与固态硬盘寿命的数据缓冲方法
技术领域
本发明涉及数据存储技术领域,尤其涉及一种平衡多级存储性能与固态硬盘寿命的数据缓冲方法。
背景技术
随着计算机技术的发展和互联网的普及,特别是云计算的兴起,人们对存储性能的需求不断提高。互联网上持续增长的海量数据对后台存储系统的性能有着很高的要求。目前的存储系统将重点放在分布式上,通过集群扩展来提高性能,并借助分布式缓存和内容分发网络(Contentdistributionnetwork,CDN)来提升热点数据的读取性能。因此,存储系统需要关注数据写入性能的瓶颈,除了依赖集群扩展外,还应考虑提升单机性能。
多级存储体系是一种常用的提升单机存储性能的方法。基于闪存的固态硬盘(SolidStateDisk,SSD)具有优秀的随机和连续读写能力,因此以固态硬盘作为机械硬盘(HardDiskDrive,HDD)的数据读写缓冲区的多级存储体系成为了存储系统中的重要组成部分,数据先写入固态硬盘,由于固态硬盘的容量小,数据最终会被迁移至机械硬盘。
固态硬盘中的每个存储单元的擦写次数有限,超过该上限的存储单元极易损坏,无法安全地存储数据,导致固态硬盘的寿命有限。另外,由于价格昂贵,且固态硬盘的容量小,导致数据从固态硬盘迁移到机械硬盘的次数多,增加了固态硬盘的数据擦写次数,进一步降低了固态硬盘的使用寿命,提高使用的成本。因此,如何在充分利用固态硬盘性能的同时延长其使用寿命,降低成本,将成为存储系统需要考虑的重要问题。
目前常见的多级存储体系中延长固态硬盘寿命的方法包括:
1)基于请求特性适配的方法。这类方法考虑了固态硬盘和机械硬盘各自的特性,并根据存储请求的特性进行IO调度。由于固态硬盘的优势主要体现在随机读写能力上,因此将小数据先写入固态硬盘,而大数据直接写入机械硬盘,从而减少固态硬盘的擦写次数。
2)基于负载控制的方法。这类方法完全基于固态硬盘的寿命指标,根据其最大擦写能力和用户期望寿命(手动设定使用时长),计算出单位时间内的额定写入负载量,该负载量内的数据写入固态硬盘,超出该负载量的数据直接写入机械硬盘。同时,根据过去未使用的负载量计算储备负载量,用于在突发情况下动态调整短期额定写入负载量。
但是在实际应用场景中,用户请求数量会随着时间波动,形成负载波动特性,甚至低负载时仅使用机械硬盘就能满足性能需求了;同时机械硬盘的离散数据操作也能提供一定的读写性能。以上两类方法均缺少对负载波动特性的考虑,也没有充分利用机械硬盘的性能资源,调度策略不够灵活,对固态硬盘的寿命保护不足,有待进一步改进。并且第二类方法中衡量指标过于单一,过于注重寿命而缺少了对性能指标的保证。
发明内容
本发明针对现有技术的数据缓冲方法在提高固态硬盘寿命时对实际使用情况考虑不全面的问题,提供了一种在考虑数据大小、负载波动特性与机械硬盘工作状态,且保证数据读写性能的条件下,延长固态硬盘使用寿命的数据缓冲方法。
一种平衡多级存储性能与固态硬盘寿命的数据缓冲方法,应用于安装有固态硬盘和机械硬盘的服务器上,在数据的读取和写入时分别执行如下步骤:
数据读取:判断数据的存放位置,根据存放位置对应地从固态硬盘或机械硬盘中读取;
数据写入:根据写入请求判断数据的大小类型,分别执行如下操作:
S1)若数据大于阀值,则为大数据,直接写入机械硬盘;
S2)若数据小于或等于阀值,则为小数据,此时若机械硬盘空闲,则写入机械硬盘,若机械硬盘繁忙则写入固态硬盘。
本发明的数据缓冲方法将大数据直接写入机械硬盘,小数据选择性地使用固态硬盘缓冲,当机械硬盘工作状态空闲时,优先将小数据写入机械硬盘。由于充分考虑了数据大小、负载波动特性与机械硬盘工作状态,因此在保证数据读写性能的同时能够降低固态硬盘的读写次数,提升使用寿命。
在所述数据的读取和写入之前,还包括初始化过程,初始化过程中在所述存储服务器的内存中建立固态硬盘缓冲数据的索引哈希表和索引LRU双向链表,在数据读取时,根据所述索引哈希表和索引LRU双向链表判断数据的存放位置。
建立索引哈希表用于查询数据的存储位置,有利于于提高读取速度。建立索引LRU双向链表用于区分热点与非热点数据,有利于保留热点数据来提升读取性能。
所述步骤S2)中,判定机械硬盘的空闲与繁忙时,若机械硬盘当前状态同时符合以下条件,则判定机械硬盘空闲:
a)机械硬盘当前无大数据读写操作,
b)机械硬盘当前无数据迁移操作,
c)机械硬盘写入所述小数据所需的存储时间小于或等于机械硬盘的可用性能资源;
否则,判定机械硬盘繁忙,
所述的可用性能资源通过初始化过程设定初始值,并根据当前操作实时调节。
机械硬盘的数据操作是单线程的,存在一个磁盘任务队列。机械硬盘的可用性能资源较少,数据写入机械硬盘需要占用性能资源,操作完成后再归还。数据写入所需的性能资源认为是该数据写入所需要的存储时间,定义为:HSK为机械硬盘的近似寻道与扇区定位时间,单位是毫秒,HCTS为机械硬盘的平均连续传输速度,单位是KB/秒。当机械硬盘繁忙时,机械硬盘的可用性能资源少,无法提供足够的性能资源完成当前数据写入操作,当前操作则进入磁盘任务队列中排队等待。通过合理设定可用性能资源初始值,增大机械硬盘的数据操作在时间上的离散性,缩短磁盘任务队列,降低读写请求在队列中的等待时间,过量的写入请求会被分流至固态硬盘,能够在充分利用机械硬盘性能的同时保证整体响应性能。
所述步骤S2)中数据写入固态硬盘包括:
S2-1)比较固态硬盘的可用空间与预留空间阀值的大小关系:
若大于或等于预留空间阀值,则直接将数据写入固态硬盘,
若小于预留空间阀值,则先将固态硬盘上的部分非热点数据通过数据迁移操作转存至机械硬盘,再将数据写入固态硬盘;
S2-2)数据写入固态硬盘后,更新所述索引哈希表和索引LRU双向链表。
数据写入固态硬盘前先检测固态硬盘的可用空间,若不足则将部分非热点数据迁移至机械硬盘,避免因固态硬盘的可用空间不足导致写入失败,同时保证固态硬盘有一定的预留空间。每次数据写入固态硬盘后,更新索引哈希表和索引LRU双向链表,便于数据读取,以及区别热点与非热点数据。
所述步骤S2-1)中的被动迁移操作包括:
a)根据LRU算法在所述索引LRU双向链表中确定非热点数据;
b)确定需要迁移的数据总量为设定的单次数据迁移操作的最小数据量;
c)从固态硬盘中提取非热点数据转存至机械硬盘,直至提取出的非热点数据总量不小于需要迁移的数据总量,且提取过程中跳过正在被访问的非热点数据;
d)迁移操作完成后更新所述索引哈希表和索引LRU双向链表。
所述的用于判断数据是否为大数据的阀值为动态阀值,调整方法如下:
在设定时间间隔内连续统计数据的总读写次数,在当前时间间隔末尾,动态调整阀值,使得小于动态阀值的数据的读写次数与总读写次数的比例符合设定比例范围。
根据一定时间段内的数据大小分布情况,实时调节阀值,使其适应当前的应用场景,有助于更好地平衡性能与寿命。
作为优选,所述的数据缓冲方法还包括每隔一定时间,检测固态硬盘的可用空间,若固态硬盘的可用空间小于可用空间阀值,且服务器处于低负载状态,则进行主动迁移操作。
本次数据迁移操作为主动迁移,每隔一段时间,在服务器的负载较低时服务器自动进行数据迁移,将固态硬盘的非热点数据迁移至机械硬盘,为数据写入固态硬盘保留合理的可用存储空间,避免当数据写入固态硬盘时检测到可用空间不足再被动进行数据迁移,减小数据写入的等待时间,提高写入速度。
所述数据迁移操作包括:
a)根据LRU算法在所述索引LRU双向链表中确定非热点数据;
b)确定需要迁移的数据总量,使固态硬盘的可用空间大于或等于可用空间阀值,且大于或等于设定的单次数据迁移操作的最小数据量;
c)从固态硬盘中提取非热点数据转存至机械硬盘,直至提取出的非热点数据总量不小于需要迁移的数据总量,且提取过程中跳过正在被访问的非热点数据;
d)迁移操作完成后更新所述索引哈希表和索引LRU双向链表。
通过该数据迁移操作将固态硬盘中的非热点数据批量迁移至机械硬盘,保留热点数据,保证热点数据被访问的速度,提升了热点数据的读取性能,同时设定迁移操作的最小数据量,提高迁移效率。
所述数据缓冲方法还包括每次更新所述索引哈希表和索引LRU双向链表后,还采用日志追加方式保存更新信息,并记录索引哈希表和索引LRU双向链表的更新次数,每隔一定时间自动检测更新次数,若更新次数达到设定的阀值,则将索引哈希表和索引LRU双向链表持久化到固态硬盘,形成内存镜像文件,同时将更新次数初始化为0。
采用日志追加方式确保索引哈希表和索引LRU双向链表的可靠性,防止系统崩溃或服务器宕机后导致索引哈希表和索引LRU双向链表的信息丢失,设定更新的次数阀值,能够保证内存镜像文件更新又可避免更新过于频繁导致服务器性能降低。
所述服务器的低负载状态通过以下条件判定:若(SIOPS+HIOPS)×W1%>当前时间段内的每秒平均数据操作总次数,且(SCTS+HCTS)×W2%>当前时间段内的每秒平均数据传输总量,则判定服务器为低负载状态,其中HIPOS为机械硬盘最大每秒操作数,HCTS为机械硬盘平均连续传输速度,SIPOS为固态硬盘最大每秒操作数,SCTS为固态硬盘平均连续传输速度,W1%为第一比例,W2%第二比例。
固态硬盘和机械硬盘的每秒操作数与连续传输速度是有限的,这两个指标共同决定了服务器的存储性能。主动迁移的数据量很大,需要占用很多存储性能资源,因此适合在服务器低负载状态下进行。
本发明提供的平衡多级存储性能与固态硬盘寿命的数据缓冲方法:将大数据直接写入机械硬盘,小数据选择性地使用固态硬盘缓冲,并动态调节数据大小阀值;当机械硬盘空闲时,将新的小数据写入机械硬盘,繁忙时将新的小数据写入固态硬盘,并通过设定合理的机械硬盘可用性能资源,缩短了机械硬盘的任务队列,降低了读写请求在队列中的等待时间;通过保留固态硬盘上的热点数据提升读取性能;进行合理的数据迁移与索引信息持久化。这些调度策略尽可能地发挥了固态硬盘在小数据读写上的优势,并充分利用了机械硬盘的性能,在降低固态硬盘寿命损耗的同时又提供了合理的性能。
附图说明
图1是多级存储主控程序总体结构图;
图2是本实施例数据缓冲方法的写入操作的流程图;
图3是本实施例数据缓冲方法的读取操作的流程图。
具体实施方式
下面结合具体实施例对本发明的平衡多级存储性能与固态硬盘寿命的数据缓冲方法进行描述。
本实施例的平衡多级存储性能与固态硬盘寿命的数据缓冲方法运行环境如下:在服务器上安装固态硬盘、机械硬盘和Linux操作系统。在Linux操作系统应用层安装主控程序。主控程序基于Linux的文件系统对固态硬盘和机械硬盘进行控制,通过内部逻辑进行动态IO调度。主控程序包含一系列功能模块,并为上层应用提供文件操作接口,屏蔽底层复杂逻辑和多级存储体系。
如图1所示,主控程序包括以下功能模块:
性能检测模块:用于计算固态硬盘和机械硬盘的性能指标。测试固态硬盘的多线程读写性能,写入和读取100000个1KB数据分别耗时SW1秒和SR1秒,写入和读取10个128MB数据分别耗时SW2秒和SR2秒,固态硬盘最大每秒操作数为平均连续传输速度为单位是KB/秒。测试机械硬盘的单线程读写性能,写入和读取1000个1KB数据分别耗时HW1秒和HR1秒,写入和读取10个128MB数据分别耗时HW2秒和HR2秒,机械硬盘最大每秒操作数为平均连续传输速度为单位是KB/秒,近似寻道与扇区定位时间为 HSK = 1000 HIOPS , 单位是毫秒。
可用性能资源管理模块:根据机械硬盘性能指标实时调节可用性能资源VR,单位为毫秒。在对机械硬盘进行读写操作前,需要获取可用性能资源,操作完成后归还。较小的VR初始值能够缩短机械硬盘的任务队列,使得读写请求在队列中的等待时间较短,机械硬盘的数据操作在时间上更为离散,有助于提高响应性能,但VR初始值过小又会增大固态硬盘的读写次数,降低使用寿命。
负载分流模块:根据既定的读写策略和参数,与其他模块合作,完成数据读取和写入,将不同大小、不同负载下的数据分流至固态硬盘和机械硬盘。设置大数据计数器BN,初始状态为0,当在机械硬盘上读取或写入大数据或进行数据迁移时,BN自增1,完成后自减1,当BN大于0时认为机械硬盘繁忙,将新的小数据写入固态硬盘。
数据查找与迁移模块:在内存中建立固态硬盘缓冲数据的索引哈希表,并构建一条索引LRU双向链表。本模块设置索引变化计数器C来记录索引哈希表和索引LRU双向链表的更新次数变化,当索引哈希表和索引LRU双向链表发生变化时使C自增1;任何修改操作都会追加写入日志文件。本模块在后台保持两个线程:一个是数据迁移线程,负责将非热点数据批量迁移至机械硬盘,保持固态硬盘的可用空间不低于其总大小的1/4;另一个是镜像文件线程,负责将内存中的索引哈希表和索引LRU双向链表持久化到固态硬盘上,存储为内存镜像文件。通过本模块可以迅速确定数据是否存储在固态硬盘上并进行定位,同时能将固态硬盘中的非热点数据批量迁移至机械硬盘。
信息统计模块:记录每个时间间隔(5分钟)内固态硬盘和机械硬盘的读写操作总次数RW和数据传输总量DT,并在后台保持一个信息统计线程,使用数组InfoA将数据按大小分区域统计,记录最近5分钟内相应区域内的数据操作个数,动态调节数据大小阀值TV。
启动主控程序,对服务器进行初始化,包括:
a)计算固态硬盘和机械硬盘的性能指标:HIPOS、HCTS、SIPOS、SCTS和SHK;
b)建立固态硬盘缓冲数据的索引哈希表和索引LRU双向链表;
c)设定统计时间间隔为5分钟,固态硬盘的预留空间阀值为4GB,可用空间阀值为固态硬盘的总大小的1/4,每次迁移操作的最小数据量为2GB,VR=200,BN=0,RW=0,DT=0,C=0,InfoA[n]=0,其中0≤n≤6。
本实施例的平衡多级存储性能与固态硬盘寿命的数据缓冲方法的数据写入流程如图2所示,具体包括如下步骤:
1)一个数据请求到达主控程序,主控程序将请求交给负载分流模块进行处理,负载分流模块发现该请求为数据写入请求,根据写入请求获得数据大小size;
2)执行RW=RW+1,DT=DT+size;
3)若size属于InfoA[n](O≤n≤6)指定的大小范围,则执行InfoA[n]=InfoA[n]+1;
4)判断数据的大小类型:若'size≤TV,则为小数据,执行5),若size>TV,则为大数据,执行8);
5)判断机械硬盘是否在处理迁移操作或大数据读写操作,若BN>0,表示存在迁移操作或大数据读写操作,则采用固态硬盘缓冲,执行9);否则就执行6);
6)判断机械硬盘的可用性能资源是否够用,若 即当前小数据写入所需的存储时间小于或等于机械硬盘的可用性能资源,则判定机械硬盘空闲,不采用固态硬盘缓冲,数据直接写入机械硬盘;否则,判定机械硬盘繁忙,采用固态硬盘缓冲,执行9);
7)实时调节当前可用性能资源,执行然后将数据写入机械硬盘,操作完成后,执行 VR = VR + HSK + 1000 × size HCTS ;
8)执行BN=BN+1, VR = VR - HSK - 1000 × size HCTS , 然后将数据写入机械硬盘,操作完成后,执行BN=BN-1, 数据写入操作结束。
9)检查固态硬盘可用空间,若足够,即固态硬盘的可用空间大于或等于预留空间阀值,则数据直接写入固态硬盘;否则,数据查找与迁移模块进行被动迁移操作,将固态硬盘中的非热点数据批量迁移至机械硬盘;
10)迁移完成后,将新数据写入固态硬盘;
11)新数据写入固态硬盘后,更新索引哈希表和索引LRU双向链表,将写入固态硬盘的新数据的索引放入索引哈希表,并插入索引LRU双向链表的头部,执行C=C+2,追加日志信息,数据写入操作结束。
其中,被动迁移操作具体包括步骤:
S9-1)根据LRU算法在所述索引LRU双向链表确定非热点数据;
S9-2)确定需要迁移的数据总量为单次迁移操作的最小数据量2GB;
S9-3)从索引LRU双向链表的尾部开始依次取出若干个非热点数据并跳过正在被访问的非热点数据,直至被取出数据的总量大于或等于步骤S9-2)中确定的数据迁移总量,记录待迁移数据个数mn;
S9-4)将取出的数据从固态硬盘迁移至机械硬盘,执行BN=BN+1,C=C+2×mn;
S9-5)迁移完成后,更新索引哈希表和索引LRU双向链表,追加日志信息,并执行BN=BN-1。
本实施例的平衡多级存储性能与固态硬盘寿命的数据缓冲方法的数据读取流程如图3所示,具体包括如下步骤:
1)一个数据请求到达主控程序,主控程序将请求交给负载分流模块进行处理,负载分流模块发现该请求为数据读取请求;
2)执行RW=RW+1,
3)使用数据查找与迁移模块检查索引哈希表,判断待读取的数据的存储位置,若该数据被索引,则表明该数据缓冲在固态硬盘上,执行4);若未被索引,则表明该数据存储在机械硬盘上,执行7),
4)从索引中获取数据大小size,执行DT=DT+size,
5)若size属于InfoA[n](O≤n≤6)指定的大小范围,则执行InfoA[n]=InfoA[n]+1,
6)从固态硬盘中获取数据并返回给上层应用,并将该索引移动到索引LRU双向链表的头部,执行C=C+1,
7)从机械硬盘上获取该数据的大小size,执行DT=DT+size,
8)若size属于InfoA[nl(0≤n≤6)指定的大小范围,则执行InfoA[n]=InfoA[n]+1,
9)若size≤TV,则执行10);否则执行11),
10)实时调节当前可用性能资源,执行从机械硬盘中读取数据,读取完成后,执行数据读取操作结束,
11)执行BN=BN+1, VR = VR - HSK - 1000 × size HCTS , 从机械硬盘中读取数据,读取完成后,执行BN=BN-1, 数据读取操作结束。
用于判断数据是否为大数据的阀值通过以下方法进行动态调整:
连续统计5分钟内存储服务器中的总读写次数RW,在当前统计时间间隔末尾,调整动态阀值TV,使得小于或等于动态阀值的数据的读写次数与总读写次数的比例符合设定比例范围,本实施例中为90%,具体如下:
1)将数据大小分成7个数据区域,分别为0-128KB、128KB-512KB、512KB-1MB、1MB-2MB、2MB-4MB、4MB-8MB、8MB-∞,统计5分钟内每个数据区域中读取或写入的数据个数,记为InfoA[n],O≤n≤6;
2)将InfoA数组中的元素从头至尾依次相加,寻找满足下列条件的n值:
若RW×90%≤InfoA[O],则n=O,
否则就寻找使后面的不等式成立的n,InfoA[0]+…+InfoA[n-1]<RW×90%≤InfoA[0]+…+InfoA[n],其中1≤n≤6;
3)根据划分的数据区域,设定阀值的取值空间:128KB、512KB、1MB、2MB、4MB、8MB,根据2)中求得的n,将第n+1个值赋给数据大小阀值TV,且n=6时,数据大小阀值TV为8MB。
本实施例的数据缓冲方法还包括每隔30分钟,检测固态硬盘的可用空间,若固态硬盘的可用空间小于可用空间阀值,且 ( SIOPS + HIOPS ) × W 1 % > DT 5 × 60 , ( SCTS + HCTS ) × W 2 % > RW 5 × 60 , 则进行主动迁移操作。本实施例中W1%=10%,W2%为20%。
本实施例中主动迁移操作与被动迁移操作步骤相同,所不同的是步骤S9-2)中需要迁移的数据总量使得固态硬盘的可用空间大于或等于可用空间阀值,且大于单次数据迁移操作的最小数据量2GB。
本实施例的数据缓冲方法还包括将索引哈希表和索引LRU双向链表持久化到固态硬盘中,形成内存镜像文件。每隔1小时检测一次,若发现索引哈希表和索引LRU双向链表的更新次数达到阀值800000时,则重新将索引哈希表和索引LRU双向链表持久化到固态硬盘中,更新内存镜像文件,同时将索引哈希表和索引LRU双向链表的更新次数C初始化为0。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

Claims (9)

1.一种平衡多级存储性能与固态硬盘寿命的数据缓冲方法,应用于安装有固态硬盘和机械硬盘的服务器上,其特征在于,在数据的读取和写入时分别执行如下步骤:
数据读取:判断数据的存放位置,根据存放位置对应地从固态硬盘或机械硬盘中读取;
数据写入:根据写入请求判断数据的大小类型,分别执行如下操作:
S1)若数据大于阀值,则为大数据,直接写入机械硬盘;
S2)若数据小于或等于阀值,则为小数据,此时若机械硬盘空闲,则写入机械硬盘,若机械硬盘繁忙则写入固态硬盘;
所述步骤S2)中,判定机械硬盘的空闲与繁忙时,若机械硬盘当前状态同时符合以下条件,则判定机械硬盘空闲:
a)机械硬盘当前无大数据读写操作;
b)机械硬盘当前无数据的迁移操作;
c)机械硬盘写入所述小数据所需的存储时间小于或等于机械硬盘的可用性能资源,
否则,判定机械硬盘繁忙,
所述的可用性能资源通过初始化过程设定初始值,并根据当前操作实时调节。
2.如权利要求1所述的平衡多级存储性能与固态硬盘寿命的数据缓冲方法,其特征在于,在所述数据的读取和写入之前,还包括初始化过程,初始化过程中在所述服务器的内存中建立固态硬盘缓冲数据的索引哈希表和索引LRU双向链表,在数据读取时,根据所述索引哈希表和索引LRU双向链表判断数据的存放位置。
3.如权利要求2所述的平衡多级存储性能与固态硬盘寿命的数据缓冲方法,其特征在于,所述步骤S2)中数据写入固态硬盘包括:
S2-1)比较固态硬盘的可用空间与预留空间阀值的大小关系:
若大于或等于预留空间阀值,则直接将数据写入固态硬盘,若小于预留空间阀值,则先将固态硬盘上的部分非热点数据通过被动迁移操作转存至机械硬盘,再将数据写入固态硬盘;
S2-2)数据写入固态硬盘后,更新所述索引哈希表和索引LRU双向链表。
4.如权利要求3所述的平衡多级存储性能与固态硬盘寿命的数据缓冲方法,其特征在于,所述步骤S2-1)中的被动迁移操作包括:
a)根据LRU算法在所述索引LRU双向链表中确定非热点数据;
b)确定需要迁移的数据总量为设定的单次数据迁移操作的最小数据量;
c)从固态硬盘中提取非热点数据转存至机械硬盘,直至提取出的非热点数据总量不小于需要迁移的数据总量,且提取过程中跳过正在被访问的非热点数据;
d)迁移操作完成后更新所述索引哈希表和索引LRU双向链表。
5.如权利要求4所述的平衡多级存储性能与固态硬盘寿命的数据缓冲方法,其特征在于,所述的用于判断数据是否为大数据的阀值为动态阀值,调整方法如下:
在设定时间间隔内连续统计数据的总读写次数,在当前时间间隔末尾,动态调整阀值,使得小于动态阀值的数据的读写次数与总读写次数的比例符合设定比例范围。
6.如权利要求5所述的平衡多级存储性能与固态硬盘寿命的数据缓冲方法,其特征在于,所述的数据缓冲方法还包括每隔一定时间,检测固态硬盘的可用空间,若固态硬盘的可用空间小于可用空间阀值,且服务器处于低负载状态,则进行主动迁移操作。
7.如权利要求6所述的平衡多级存储性能与固态硬盘寿命的数据缓冲方法,其特征在于,所述主动迁移操作包括:
a)根据LRU算法在所述索引LRU双向链表中确定非热点数据;
b)确定需要迁移的数据总量,使固态硬盘的可用空间大于或等于可用空间阀值,且大于或等于设定的单次数据迁移操作的最小数据量;
c)从固态硬盘中提取非热点数据转存至机械硬盘,直至提取出的非热点数据总量不小于需要迁移的数据总量,且提取过程中跳过正在被访问的非热点数据;
d)迁移操作完成后更新所述索引哈希表和索引LRU双向链表。
8.如权利要求7所述的平衡多级存储性能与固态硬盘寿命的数据缓冲方法,其特征在于,所述数据缓冲方法还包括每次更新所述索引哈希表和索引LRU双向链表后,还采用日志追加方式保存更新信息,并记录索引哈希表和索引LRU双向链表的更新次数,每隔一定时间自动检测更新次数,若更新次数达到设定的阀值,则将索引哈希表和索引LRU双向链表持久化到固态硬盘,形成内存镜像文件,同时将更新次数初始化为0。
9.如权利要求8所述的平衡多级存储性能与固态硬盘寿命的数据缓冲方法,其特征在于,所述服务器的低负载状态通过以下条件判定:若(SIOPS+HIOPS)×W1%>当前时间段内的每秒平均数据操作总次数,且(SCTS+HCTS)×W2%>当前时间段内的每秒平均数据传输总量,则判定服务器为低负载状态,其中HIPOS为机械硬盘最大每秒操作数,HCTS为机械硬盘平均连续传输速度,SIPOS为固态硬盘最大每秒操作数,SCTS为固态硬盘平均连续传输速度,W1%为第一比例,W2%第二比例。
CN201310333194.2A 2013-08-02 2013-08-02 平衡多级存储性能与固态硬盘寿命的数据缓冲方法 Active CN103399713B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310333194.2A CN103399713B (zh) 2013-08-02 2013-08-02 平衡多级存储性能与固态硬盘寿命的数据缓冲方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310333194.2A CN103399713B (zh) 2013-08-02 2013-08-02 平衡多级存储性能与固态硬盘寿命的数据缓冲方法

Publications (2)

Publication Number Publication Date
CN103399713A CN103399713A (zh) 2013-11-20
CN103399713B true CN103399713B (zh) 2016-01-20

Family

ID=49563350

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310333194.2A Active CN103399713B (zh) 2013-08-02 2013-08-02 平衡多级存储性能与固态硬盘寿命的数据缓冲方法

Country Status (1)

Country Link
CN (1) CN103399713B (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI507975B (zh) * 2014-02-27 2015-11-11 Nat Univ Chung Cheng Storage device with multiple threshold and its method
CN104915298B (zh) * 2014-03-13 2019-02-12 腾讯科技(北京)有限公司 关系链处理方法及装置
CN105808150B (zh) * 2014-12-29 2018-09-07 先智云端数据股份有限公司 用于混合式储存设备的固态硬盘快取系统
CN105426127A (zh) * 2015-11-13 2016-03-23 浪潮(北京)电子信息产业有限公司 一种分布式集群系统的文件存储方法及装置
CN105511802B (zh) * 2015-11-24 2018-06-05 北京达沃时代科技股份有限公司 写缓存的方法和装置以及磁盘缓存区的同步方法和装置
CN107544745B (zh) * 2016-06-24 2020-06-30 中电海康集团有限公司 一种带有独立数据搬移通道的复合存储阵列及其数据调度方法
CN106155932A (zh) * 2016-07-04 2016-11-23 深圳市硅格半导体股份有限公司 基于Flash的数据缓存方法及装置
CN109144403B (zh) * 2017-06-19 2021-10-01 阿里巴巴集团控股有限公司 一种用于云盘模式切换的方法与设备
CN107450862A (zh) * 2017-08-18 2017-12-08 郑州云海信息技术有限公司 一种固态硬盘读操作的仲裁方法
CN107729570B (zh) * 2017-11-20 2021-06-08 北京百度网讯科技有限公司 用于服务器的数据迁移方法和装置
CN109144811B (zh) * 2018-06-29 2021-12-31 维沃移动通信有限公司 一种应用监控方法、装置和移动终端
CN109101192B (zh) * 2018-07-02 2021-04-13 北京东软医疗设备有限公司 数据存储方法和装置
CN110825314B (zh) * 2018-08-10 2024-02-02 浙江宇视科技有限公司 一种数据调度方法及装置
CN109375868B (zh) * 2018-09-14 2022-07-08 深圳爱捷云科技有限公司 一种数据存储方法、调度装置、系统、设备及存储介质
CN109902092B (zh) * 2019-02-22 2020-05-05 广州荔支网络技术有限公司 一种数据存储系统的操作方法、装置和移动终端
CN111158609B (zh) * 2019-12-31 2020-11-20 广州鼎甲计算机科技有限公司 数据存储方法、装置、计算机设备和存储介质
CN111562885A (zh) * 2020-04-30 2020-08-21 苏州亿歌网络科技有限公司 数据处理方法、装置、计算机设备及存储介质
CN114327280B (zh) * 2021-12-29 2024-02-09 以萨技术股份有限公司 一种基于冷热分离存储的消息存储方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2136285A2 (en) * 2008-06-20 2009-12-23 Hitachi Ltd. Storage apparatus and estimating method of power consumption for storage apparatus
CN101673188A (zh) * 2008-09-09 2010-03-17 上海华虹Nec电子有限公司 一种固态硬盘的数据存取方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04142615A (ja) * 1990-10-03 1992-05-15 Nec Corp 高速ディスクアクセス方式

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2136285A2 (en) * 2008-06-20 2009-12-23 Hitachi Ltd. Storage apparatus and estimating method of power consumption for storage apparatus
CN101673188A (zh) * 2008-09-09 2010-03-17 上海华虹Nec电子有限公司 一种固态硬盘的数据存取方法

Also Published As

Publication number Publication date
CN103399713A (zh) 2013-11-20

Similar Documents

Publication Publication Date Title
CN103399713B (zh) 平衡多级存储性能与固态硬盘寿命的数据缓冲方法
CN107943867B (zh) 支持异构存储的高性能层次化存储系统
CN111427844B (zh) 一种面向文件分级存储的数据迁移系统及方法
CN105653591B (zh) 一种工业实时数据分级存储及迁移方法
EP3869316B1 (en) Hybrid storage
CN100476742C (zh) 基于对象存储设备的负载平衡方法
US8909887B1 (en) Selective defragmentation based on IO hot spots
CN102156738B (zh) 数据块处理方法、数据块存储设备及系统
CN101777026B (zh) 一种存储管理方法、硬盘及存储系统
CN111367469B (zh) 一种分层存储数据迁移方法和系统
CN107450858A (zh) 一种固态硬盘分级存储方法及系统
CN102541470B (zh) 数据对象的处理方法及装置
US20100306288A1 (en) Rebalancing operation using a solid state memory device
CN101373445B (zh) 一种内存调度方法及装置
TW201126330A (en) Method for placement of virtual volume hot-spots in storage pools using ongoing load measurements and ranking
CN103530388A (zh) 一种云存储系统中提升性能的数据处理方法
CN107273200B (zh) 一种针对异构存储的任务调度方法
US20110283062A1 (en) Storage apparatus and data retaining method for storage apparatus
CN110096350B (zh) 基于集群节点负载状态预测的冷热区域划分节能存储方法
CN104219318A (zh) 一种分布式文件存储系统及方法
EP2765522B1 (en) Method and device for data pre-heating
CN109947363A (zh) 一种分布式存储系统的数据缓存方法
CN107967224A (zh) 一种固态硬盘提升性能一致性的方法
CN102298506A (zh) 存储系统和用于实现存储系统的方法
KR101686346B1 (ko) 하이브리드 ssd 기반 하둡 분산파일 시스템의 콜드 데이터 축출방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20131120

Assignee: Xinhua three Technology Co., Ltd.

Assignor: Zhejiang University

Contract record no.: 2018330000036

Denomination of invention: Data buffering method for balancing multistage memory property and solid-state disk service life

Granted publication date: 20160120

License type: Common License

Record date: 20180417