存储系统、集中控制设备、服务质量控制方法及装置的制造方法
【技术领域】
[0001]本公开涉及存储领域,具体涉及用于存储系统的服务质量控制方法和装置、用于存储系统的集中控制设备以及包括上述装置和设备的存储系统。
【背景技术】
[0002]随着云计算的发展,现在以及未来的数据中心将向成千上万的客户端提供服务。
[0003]在当前数据中心共享存储架构中,多个客户端(client)共享后端存储集群(storage cluster)。不同的客户端对存储性能(1PS,Bandwidth,latency)的要求不同。例如,为数据库应用提供服务的客户端和为虚拟机启动盘提供服务的客户端对1PS(每秒读写次数)的要求就不一样。同时对于联机事务处理(OLTP)的应用,要求存储集群能够提供稳定、一致的1PS性能。共享存储集群还有扰邻噪声(noisy neighbors),即某个客户端可能会发送大量的读写请求,堵塞了共享路径,影响其他客户端。
[0004]一种服务质量控制的方法是通过限制每个客户端最大1PS性能来控制整个存储集群对每个客户端提供的1PS能力。这种服务质量控制方法不能够完全有效的发挥整个存储集群的1PS性能。例如,在客户端A、客户端B、客户端C和客户端D共享存储集群的应用场景中,在某一个时间段内只有客户端A有大量的访问请求,达到了预先分配的10PS,而客户端B、客户端C和客户端D只有少量的访问请求。对于此场景,上述服务质量控制的结果就是存储集群在满足客户端A、客户端B、客户端C和客户端D的访问请求时,并没有达到满负荷工作状态,浪费了存储集群的性能。
[0005]另一种服务质量控制方法在限制每个客户端最大1PS性能之外,还为每个客户端分配一个突发1PS性能参数,即对应的客户端在累计信用(credit)为正值的情况下,可以突破最大1PS性能,获得突发1PS参数对应的1PS性能。但这种方法仍然没有解决多个客户端之间1PS共享的问题。
[0006]在所述【背景技术】部分公开的上述信息仅用于加强对本公开的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。
【发明内容】
[0007]本申请提供一种用于存储系统的服务质量控制方法和装置、用于存储系统的集中控制设备以及包括上述装置和设备的存储系统。
[0008]本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
[0009]根据本公开的一个方面,提供一种用于存储系统的集中控制设备,包括:前端服务请求处理模块,用于处理来自客户端的存储服务请求;服务质量控制模块,与前端服务请求处理模块耦接,用于根据与存储服务请求相对应的客户端的QoS可用额度以及客户端所在的共享组的QoS可用额度,响应存储服务请求。
[0010]根据本公开的一些实施例,服务质量控制模块包括额度控制模块,额度控制模块配置为:如果判断客户端的QoS可用额度大于零,则接受存储服务请求;如果判断客户端的QoS可用额度等于或小于零,则判断共享组的QoS可用额度:如果共享组的QoS可用额度大于零,则接受存储服务请求,否则,拒绝存储服务请求。
[0011]根据本公开的一些实施例,额度控制模块包括:QoS额度缓存模块,用于存储客户端及共享组的QoS额度信息;QoS额度查询模块,与QoS额度缓存模块通信耦接,用于从存储服务请求中提取客户端的信息,并根据客户端的信息从QoS额度缓存模块查询客户端的QoS可用额度及客户端所在的共享组的QoS可用额度;过滤模块,与QoS额度查询模块耦接,用于根据QoS额度查询模块的反馈结果,使存储服务请求通过或拒绝存储服务请求。
[0012]根据本公开的一些实施例,额度控制模块还配置为在不拒绝存储服务请求时,向存储服务请求添加附加信息,附加信息包括服务等级。
[0013]根据本公开的一些实施例,额度控制模块配置为:如果客户端的QoS可用额度大于零,则将服务等级设置为第一服务等级;如果客户端的QoS可用额度等于或小于零且共享组的QoS可用额度大于零,则将服务等级设置为第二服务等级。
[0014]根据本公开的一些实施例,服务质量控制模块还包括队列分配模块和队列模块,其中:队列模块包括至少一个队列,用于存储存储服务请求;队列分配模块用于根据存储服务请求中的服务等级和/或存储服务请求携带的配置参数将存储服务请求送往相应的队列。
[0015]根据本公开的一些实施例,服务质量控制模块还包括仲裁模块,仲裁模块用于根据预定的仲裁策略选通至少一个队列其中之一。
[0016]根据本公开的一些实施例,队列分配模块配置为:如果配置参数不满足预定阈值,则将存储服务请求送往用于最低的服务等级的服务请求的队列。
[0017]根据本公开的一些实施例,至少一个多列至少其中之一还包括子队列,队列分配模块配置为根据存储服务请求中的服务等级和/或配置参数将存储服务请求送往相应的子队列。
[0018]根据本公开的一些实施例,集中控制设备还包括存储器。
[0019]根据本公开的一些实施例,服务质量控制模块还包括缓存控制模块,用于控制不同客户端的数据在存储器中的保存时间。
[0020]根据本公开的一些实施例,缓存控制模块包括缓存状态查询更新模块及缓存状态存储器,缓存状态查询更新模块用于根据存储服务请求中的配置参数更新缓存状态。
[0021]根据本公开的一些实施例,共享组包括多级。
[0022]根据本公开的一些实施例,QoS可用额度包括1PS可用额度。
[0023]根据本公开的一些实施例,配置参数包括1PS密度。
[0024]根据本公开的另一方面,提供一种存储系统,包括前述的任一种集中控制设备。
[0025]根据本公开的一些实施例,存储系统还包括:存储服务配置单元,用于产生关于客户端的存储服务的至少一个配置参数;后端存储集群,与集中控制设备耦接。
[0026]根据本公开的另一方面,提供一种用于存储系统的服务质量控制方法,包括:接收来自客户端的存储服务请求;根据与存储服务请求相对应的客户端的QoS可用额度以及客户端所在的共享组的QoS可用额度响应存储服务请求。
[0027]根据本公开的一些实施例,根据与存储服务请求相对应的客户端的QoS可用额度以及客户端所在的共享组的QoS可用额度响应存储服务请求包括:如果客户端的QoS可用额度大于零,则接受存储服务请求;如果客户端的QoS可用额度等于或小于零,则判断共享组的QoS可用额度:如果共享组的QoS可用额度大于零,则接受存储服务请求,否则,拒绝存储服务请求。
[0028]根据本公开的一些实施例,根据与存储服务请求相对应的客户端的QoS可用额度以及客户端所在的共享组的QoS可用额度响应存储服务请求还包括:在不拒绝存储服务请求时,向存储服务请求添加附加信息,附加信息包括服务等级。
[0029]根据本公开的一些实施例,根据与存储服务请求相对应的客户端的QoS可用额度以及客户端所在的共享组的QoS可用额度响应存储服务请求还包括:如果客户端的QoS可用额度大于零,则将服务等级设置为第一服务等级;如果客户端的QoS可用额度等于或小于零且共享组的Q0S可用额度大于零,则将服务等级设置为第二服务等级。
[0030]根据本公开的一些实施例,服务质量控制方法还包括:根据存储服务请求中的服务等级和/或存储服务请求携带的配置参数将存储服务请求送往至少一个队列中的相应队列,至少一个队列用于存储存储服务请求。
[0031]根据本公开的一些实施例,服务质量控制方法还包括:根据预定的仲裁策略选通至少一个队列其中之一。
[0032]根据本公开的一些实施例,如果配置参数不满足预定阈值,则将存储服务请求送往用于最低服务等级的服务请求的队列。
[0033]根据本公开的一些实施例,至少一个队列至少其中之一包括子队列,根据存储服务请求中的服务等级和/或配置参数将存储服务请求送往相应的子队列。
[0034]根据本公开的一些实施例,服务质量控制方法还包括:根据存储服务请求中的配置参数,控制不同客户端的数据的缓存时间。
[0035]根据本公开的另一方面,提供一种用于存储系统的服务质量控制装置,包括:服务请求接收模块,接收来自客户端的存储服务