一种支持固态盘缓存动态分配的混合存储系统和方法技术方案

技术编号:10170431 阅读:226 留言:0更新日期:2014-07-02 12:04
本发明专利技术提供了一种支持固态盘缓存动态分配的混合存储系统和方法,该方法用固态盘和磁盘构建混合存储系统,其中固态盘用作磁盘的缓存,本发明专利技术方法实时监控应用的负载特征及固态盘缓存命中率,并建立应用的性能模型,从而根据应用的性能需求和负载特征的变化动态地分配固态盘缓存空间。本发明专利技术提供的固态盘缓存管理方法可以根据应用的性能需求合理地分配固态盘缓存空间,实现应用级的缓存区分服务,并通过将应用的固态盘缓存空间进一步划分为读缓存和写缓存区间,减少脏数据块及其带来的页复制和垃圾回收开销,同时将空闲的固态盘缓存空间按照应用的缓存利用效率分配给应用,从而提高混合存储系统的固态盘缓存命中率和整体性能。

【技术实现步骤摘要】
一种支持固态盘缓存动态分配的混合存储系统和方法
本专利技术属于计算机存储
,具体涉及一种支持固态盘缓存动态分配的混合存储系统和方法,上述系统可以根据应用的负载特征和性能需求,动态地分配和调整每个应用的固态盘缓存空间大小以满足应用延迟需求,并优化混合存储系统的整体性能。
技术介绍
鉴于固态盘和磁盘在价格、容量、寿命等方面具有各自的优势,数据中心越来越倾向于用固态盘和磁盘构建大容量、高性能和低价格的混合存储系统。由于固态盘的容量和价格介于磁盘和内存之间,因此,大量混合存储系统将固态盘用作磁盘的缓存,其中最典型的代表当属Facebook公司的Flashcache内核模块,Flashcache采用固态盘作为磁盘的缓存,加速数据库MySQL的访问性能,以弥补传统磁盘随机读写的性能缺陷。然而,在大规模数据服务中心,大量的并发应用共享存储系统,相互竞争固态盘缓存资源,应用之间的相互干扰会破坏每个应用内部的访问局部性,降低了固态盘缓存命中率。同时,在上述混合存储系统中,固态盘作为磁盘的缓存资源,可以加速每个应用的访问性能,从而向应用提供更优质的服务,因此,每个应用所获得的固态盘存储容量将直接影响其最终访问性能,盲目的固态盘缓存竞争可能导致应用的性能无法得到保证。同时,在数据服务中心环境下,不同的应用具有不同的服务质量需求,比如,在线事务处理和游戏要求比较低的响应延迟,而多媒体应用则属于软实时应用,备份等应用则对延迟没有明显的限制,因此,数据中心需要优化存储系统的整体性能,并同时根据应用的性能需求提供区分的存储服务。尽管相对于内存资源,固态盘的容量更大,价格更便宜,但对于海量的数据而言,固态盘的容量仍然不过是沧海一粟。因此,为应用分配的固态盘缓存资源大小不仅直接影响着应用的服务质量,也会影响到存储系统的整体性能。因此,在基于固态盘和磁盘的混合存储系统中,如何根据应用的性能需求和负载特征的动态变化,设计出一种固态盘缓存动态分配的方法,从而在满足应用对数据访问性能需求的同时,提高存储系统的整体性能,是数据服务中心目前亟需解决的问题。
技术实现思路
为了解决上述问题,本专利技术提出了一种支持固态盘缓存动态分配的混合存储系统,可以根据应用的负载特征和性能需求动态地分配固态盘缓存空间,从而向并发应用提供区分的存储服务质量保证,并提高了固态盘缓存空间利用效率,极大地提高了混合存储系统的整体性能。本专利技术公布了一种混合存储系统,包括一块或多块固态盘组成的固态盘阵列设备、一块或多块磁盘组成的磁盘阵列以及固态盘缓存管理模块。所述混合存储系统对于操作系统或应用程序展现为统一的逻辑存储设备,所述固态盘与磁盘通过控制器与计算机系统总线相连。在上述混合存储系统中,固态盘用作磁盘的缓存,用以加速应用的访问与降低请求的响应时间,而固态盘缓存管理模块则负责固态盘缓存管理及空间分配,并向上层应用提供区分的存储服务质量保障。本专利技术的主要原理为:在上述基于固态盘与磁盘的混合存储系统中,通过管理和分配每个应用所获得的固态盘缓存空间大小可以实现基于应用级别的区分存储服务。固态盘缓存管理模块可以根据应用的优先级和性能需求,对关键的应用分配更多的固态盘资源,从而使得不同优先级的应用可以使用的固态盘缓存空间大小不同。同时,可以根据应用负载特征变化和固态盘利用效率动态地调整每个应用所获得的固态盘空间大小,从而避免固态盘空间浪费并提高了存储系统的整体性能。本专利技术是通过如下方式实现的,固态盘缓存管理模块通过实时记录应用的历史缓存空间分配情况和命中率,以及应用的I/O负载特征和平均延迟,根据历史统计信息,并采用多元回归方法,动态地提取和建立应用访问性能与固态盘缓存分配之间的关系模型。根据应用的性能模型,固态盘缓存管理模块可以确定满足应用性能所需要的最小固态盘缓存大小,并将分配给应用的固态盘缓存进一步划分为读缓存和写缓存。同时,鉴于不同应用的缓存利用效率不同,固态盘缓存管理模块将空闲固态盘空间按不同应用的缓存利用效率分配给应用以提高混合存储系统的整体性能。为了实现上述目的,本专利技术提出了一种支持固态盘缓存动态分配的混合存储系统,所述系统包括:一块或多块固态盘组成的固态盘阵列、一块或多块磁盘组成的磁盘阵列以及固态盘缓存管理模块;其中所述混合存储系统对于操作系统或应用程序展现为统一的逻辑设备,所述固态盘与磁盘通过控制器与计算机系统总线相连,其中所述固态盘作为所述磁盘的缓存;所述固态盘缓存管理模块用于记录每个应用的读写请求比例、每个应用的读写缓存命中率、固态盘与磁盘的响应时间,并用于根据这些数据以及预先为每个应用指定的目标延迟,计算满足每个应用的目标延迟所需求的固态盘的最小读缓存和写缓存大小,并根据计算的最小读写缓存大小和固态盘的存储容量为每个应用分配固态盘缓存。具体地,所述固态盘缓存管理模块具体包括负载分析器、缓存分配模块、性能监控器、缓存映射表模块和请求处理模块,其中:所述缓存分配模块,用于在系统初始化时,为每个应用分配相同大小的读缓存区和写缓存区;所述负载分析器,用于在读写请求到达时,记录每个应用的读写请求比例;所述性能监控器,用于在读写请求完成时,统计固态盘和磁盘的响应时间以及每个应用的读写缓存命中率;所述缓存映射表模块,存储有位图映射表和哈希冲突链表,其中位图映射表用于管理和标记固态盘中空闲的数据块,而哈希冲突链表用于加速判断请求是否存储在固态盘中;所述请求处理模块,用于在读写请求到达时,先判断请求的类型,从而将应用的写请求数据写入到存储系统中或是向应用返回其请求的读数据;所述缓存分配模块,还用于根据所述负载分析器记录的每个应用的读写请求比例、性能监控器统计的固态盘、磁盘的响应时间以及每个应用的读写缓存命中率,和预先为每个应用指定的目标延迟,实时计算满足每个应用延迟需求的固态盘的最小读缓存和写缓存大小,根据计算的读缓存和写缓存大小以及存储系统的配置计算分配给每个应用的读缓存和写缓存大小,并根据分配给每个应用的最佳读缓存和写缓存大小调整每个应用的读缓存区和写缓存区。进一步地,所述缓存分配模块实时计算满足每个应用延迟需求的固态盘的读缓存区大小和写缓存区大小具体为:求解目标函数其约束条件为:其中,和分别为应用ai的读缓存区和写缓存区大小,Ci表示应用ai固态盘缓存总大小,1≤i≤N,N为运行于混合存储系统上的应用数目;是为应用ai指定的目标延迟;Ti为应用ai的请求平均响应时间,Pi为应用ai的读请求所占比例;为应用ai读请求的平均响应时间,为应用ai写请求的平均响应时间,和分别为应用ai的读请求和写请求的缓存命中率,...
一种支持固态盘缓存动态分配的混合存储系统和方法

【技术保护点】
一种支持固态盘缓存动态分配的混合存储系统,其特征在于,所述系统包括:一块或多块固态盘组成的固态盘阵列、一块或多块磁盘组成的磁盘阵列以及固态盘缓存管理模块;其中所述混合存储系统对于操作系统或应用程序展现为统一的逻辑设备,所述固态盘与磁盘通过控制器与计算机系统总线相连,其中所述固态盘作为所述磁盘的缓存;所述固态盘缓存管理模块用于记录每个应用的读写请求比例、每个应用的读写缓存命中率、固态盘与磁盘的响应时间,并用这些数据以及预先为每个应用指定的目标延迟,计算满足每个应用延迟所需求的最小固态盘读缓存和写缓存大小,并根据计算的最小读缓存和写缓存大小为每个应用分配固态盘缓存。

【技术特征摘要】
1.一种支持固态盘缓存动态分配的混合存储系统,其特征在于,所述系统包括:一块或多块固态盘组成的固态盘阵列、一块或多块磁盘组成的磁盘阵列以及固态盘缓存管理模块;其中所述混合存储系统对于操作系统或应用程序展现为统一的逻辑设备,所述固态盘与磁盘通过控制器与计算机系统总线相连,其中所述固态盘作为所述磁盘的缓存;所述固态盘缓存管理模块用于记录每个应用的读写请求比例、每个应用的读写缓存命中率、固态盘与磁盘的响应时间,并用这些数据以及预先为每个应用指定的目标延迟,计算满足每个应用延迟所需求的最小固态盘读缓存和写缓存大小,并根据计算的最小读缓存和写缓存大小为每个应用分配固态盘缓存;所述固态盘缓存管理模块具体包括负载分析器、缓存分配模块、性能监控器、缓存映射表模块和请求处理模块,其中:所述缓存分配模块,用于在系统初始化时,为每个应用分配相同大小的读缓存区和写缓存区;所述负载分析器,用于在读写请求到达时,记录每个应用的读写请求比例;所述性能监控器,用于在读写请求完成时,统计固态盘和磁盘的响应时间以及每个应用的读写缓存命中率;所述缓存映射表模块,存储有位图映射表和哈希冲突链表,其中位图映射表用于管理和标记固态盘中空闲的数据块,而哈希冲突链表用于加速判断请求是否存储在固态盘中;所述请求处理模块,用于在读写请求到达时,先判断请求的类型,从而将应用的写请求数据写入到存储系统中或是向应用返回其请求的读数据;所述缓存分配模块,还用于根据所述负载分析器记录的每个应用的读写请求比例、性能监控器统计的固态盘、磁盘的响应时间以及每个应用的读写缓存命中率,和预先为每个应用指定的目标延迟,实时计算满足每个应用延迟需求的固态盘的最小读缓存和写缓存大小,根据计算的读缓存和写缓存大小以及存储系统的配置计算分配给每个应用的最佳读缓存和写缓存大小,并根据分配给每个应用的最佳读缓存和写缓存大小调整每个应用的读缓存区和写缓存区;所述缓存分配模块实时计算满足每个应用延迟需求的固态盘的读缓存区大小和写缓存区大小具体为:求解目标函数其约束条件为:其中,和分别为应用ai的读缓存区和写缓存区大小,Ci表示应用ai固态盘缓存总大小,1≤i≤N,N为运行于混合存储系统上的应用数目;表示为应用ai所指定的目标延迟;Ti为应用ai的请求平均响应时间,Pi为应用ai的读请求所占比例;为应用ai读请求的平均响应时间,为应用ai写请求的平均响应时间,和分别为应用ai的读请求和写请求的缓存命中率,和分别为读负载特征常量和写负载特征常量;TR_SSD和TW_SSD分别为固态盘的读和写的操作开销,TR_HDD和TW_HDD分别为磁盘读和写的访问时间;求解目标函数得到的和的最优结果,即为满足每个应用延迟需求的固态盘的读缓存区大小和写缓存区大小2.根据权利要求1所述的混合存储系统,其特征在于,所述缓存分配模块根据上述计算的读缓存和写缓存大小以及存储系统的配置计算分配给每个应用的最佳读缓存区大小和写缓存区大小具体为:当混合存储系统有空闲固态盘缓存空间时,则将剩余固态盘缓存空间按照应用的缓存利用效率分配给所有应用以提高混合存储系统效率;当所有应用所需求的固态盘缓存空间超过了混合存储系统中固态盘空间大小时,则将固态盘缓存空间按需求比例分配给所有应用以保证服务公平性;具体来说:若时,应用ai所获得的最佳读缓存大小为:最佳写缓存大小为:若时,应用ai所获得的最佳读缓存大小为:最佳写缓存大小为:其中,C为所述固态盘的存储容量大小;Tk为应用ak关于读缓存区大小和写缓存区大小下的请求平均响应时间函数;和分别表示对和求偏导。3.根据权利要求2所述的混合存储系统,其特征在于,所述缓存分配模块根据分配给每个应用的最佳读缓存区和写缓存区的大小调整每个应用的读缓存区和写缓存区,具体为:若应用ai当前读缓存大小超过则根据LRU算法将相应的多余缓存数据置为无效;若应用ai当前写缓存大小超过则根据LRU算法将相应的写缓存数据刷回到磁盘上,并将缓存数据置为无效;当应用的读或写缓存小于所分配的固态盘缓存空间大小时,则将空闲的固态盘缓存块加入到应用对应的读写缓存区。4.根据权利要求1至3任一项所述的混合存储系统,其特征在于,所述请求处理模块对读写请求的操作具体为:判断到达请求的类型;当到达请求为读请求时,请求处理模块根据数据块的物理位置在缓存映射表模块中的哈希冲突链表查找数据块是否在固态盘中,若固态盘缓存命中,则直接从固态盘中读取数据返回给上层应用;否则,从磁盘中读取用户请求...

【专利技术属性】
技术研发人员:冯丹王芳张泉谢燕文
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1