【技术实现步骤摘要】
一种支持固态盘缓存动态分配的混合存储系统和方法
本专利技术属于计算机存储
,具体涉及一种支持固态盘缓存动态分配的混合存储系统和方法,上述系统可以根据应用的负载特征和性能需求,动态地分配和调整每个应用的固态盘缓存空间大小以满足应用延迟需求,并优化混合存储系统的整体性能。
技术介绍
鉴于固态盘和磁盘在价格、容量、寿命等方面具有各自的优势,数据中心越来越倾向于用固态盘和磁盘构建大容量、高性能和低价格的混合存储系统。由于固态盘的容量和价格介于磁盘和内存之间,因此,大量混合存储系统将固态盘用作磁盘的缓存,其中最典型的代表当属Facebook公司的Flashcache内核模块,Flashcache采用固态盘作为磁盘的缓存,加速数据库MySQL的访问性能,以弥补传统磁盘随机读写的性能缺陷。然而,在大规模数据服务中心,大量的并发应用共享存储系统,相互竞争固态盘缓存资源,应用之间的相互干扰会破坏每个应用内部的访问局部性,降低了固态盘缓存命中率。同时,在上述混合存储系统中,固态盘作为磁盘的缓存资源,可以加速每个应用的访问性能,从而向应用提供更优质的服务,因此,每个应用所获得的固态盘存储容量将直接影响其最终访问性能,盲目的固态盘缓存竞争可能导致应用的性能无法得到保证。同时,在数据服务中心环境下,不同的应用具有不同的服务质量需求,比如,在线事务处理和游戏要求比较低的响应延迟,而多媒体应用则属于软实时应用,备份等应用则对延迟没有明显的限制,因此,数据中心需要优化存储系统的整体性能,并同时根据应用的性能需求提供区分的存储服务。尽管相对于内存资源,固态盘的容量更大,价格更便宜,但
【技术保护点】
一种支持固态盘缓存动态分配的混合存储系统,其特征在于,所述系统包括:一块或多块固态盘组成的固态盘阵列、一块或多块磁盘组成的磁盘阵列以及固态盘缓存管理模块;其中所述混合存储系统对于操作系统或应用程序展现为统一的逻辑设备,所述固态盘与磁盘通过控制器与计算机系统总线相连,其中所述固态盘作为所述磁盘的缓存;所述固态盘缓存管理模块用于记录每个应用的读写请求比例、每个应用的读写缓存命中率、固态盘与磁盘的响应时间,并用这些数据以及预先为每个应用指定的目标延迟,计算满足每个应用延迟所需求的最小固态盘读缓存和写缓存大小,并根据计算的最小读缓存和写缓存大小为每个应用分配固态盘缓存。
【技术特征摘要】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。