具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图2为本发明存储系统服务质量控制方法实施例一的流程图,如图2所示,本实施例提供了一种存储系统服务质量控制方法,可以具体包括如下步骤:
步骤201,统计存储系统中硬盘的处理能力信息,所述处理能力信息至少包括所述硬盘的类型、数量和性能的其中一个,通过所述处理能力信息获得所述硬盘的处理能力的大小。
图3为本发明存储系统服务质量控制方法实施例一中的存储系统的网络架构示意图,如图3所示,cache为一块很大的内存,设置在阵列系统中的前端(Front-End)设备与后端(Back-End)设备之间,通过cache对数据的缓存而实现主机与物理磁盘(Physical Disk)的数据读写,节省主机(Host)的读盘操作。本步骤为统计存储系统中硬盘的处理能力信息,此处的硬盘可以具体为上述图3中所示的物理磁盘,硬盘的类型可以包括但不限于固态硬盘(SolidState Disk;以下简称:SSD)、串行连接的SCSI(Serial Attached SCSI;以下简称:SAS)、串行高级技术附件(Serial Advanced Technology Attachment;以下简称:SATA)等,其中,SCSI为小型计算机系统接口(Small Computer SystemInterface)的缩写。本步骤具体为收集当前存储系统中所包含的硬盘的处理能力信息,硬盘的处理能力可以通过其类型、老化程度、性能等体现,则此处的处理能力信息至少包括所述硬盘的类型、数量和性能的其中一个,通过所述处理能力信息获得所述硬盘的处理能力的大小。
步骤202,根据所述硬盘的处理能力的大小将缓存划分为多个层级(tier),各tier的缓存分别对应所述存储系统中的一个或多个硬盘,各tier的缓存的页面配额分别根据各tier的缓存对应的一个或多个硬盘的处理能力信息预先分配获得。
在获取硬盘的处理能力的大小后,根据硬盘的处理能力的大小,来对缓存(cache)的页面资源进行划分,具体为将cache划分为多个tier,各tier的缓存分别对应存储系统中的一个或多个硬盘。其中,各tier的缓存的页面配额分别根据各tier的缓存对应的一个或多个硬盘的处理能力信息来得到,在本实施例中,划分后的各tier与存储系统中的硬盘存在对应关系,即每个tier的缓存对应一个或多个硬盘,具体根据各硬盘的处理能力信息来确定tier与硬盘间的对应关系。例如,将处理速度较高的一个或多个高速盘与一个tier相对应,则该tier的缓存对应的硬盘为高速盘;将处理速度一般的一个或多个中速盘与另一个tier相对应,则该tier的缓存对应的硬盘为中速盘;而将处理速度较低的一个或多个低速盘与再一个tier相对应,则该tier的缓存对应的硬盘为低速盘。
步骤203,对于脏数据达到预设比例的层级的缓存,将所述层级的缓存内的数据写入所述各层级的缓存对应的硬盘中。
在通过步骤202将cache划分为多个tier后,本步骤为当缓存中的脏数据达到预设比例时,以划分后的各tier的缓存为单位,对于脏数据达到预设比例的层级的缓存,将该tier的缓存内的数据写入该tier的缓存对应的硬盘中。其中,脏数据是指缓存在cache中的已被修改但还未写到硬盘中的数据。本发明不同于现有技术中的以cache为单位的方式,从而使得各tier之间的数据存储过程相互独立,实现了根据硬盘的处理能力来划分cache,从而实现了对存储系统的QoS的有效控制。例如,当处理能力信息为硬盘的类型和数量时,假设存储系统中包含SSD、SAS、SATA三种类型的硬盘,其数量分别为4、2、6,则可以将cache划分为三个tier,每个tier的缓存分别对应一种类型的硬盘,三个tier上的页面配额按照2∶1∶3的比例来划分。在本实施例中,在将cache的页面资源划分为多个tier后,以划分后的各tier的缓存为单位,分别对各tier的缓存对应的硬盘的数据进行存储处理,即每个tier分别针对一类处理能力接近的硬盘,每个tier之间相互独立,不会相互影响,从而不会出现由于慢速盘拖累快速盘的现象。
本实施例提供了一种存储系统服务质量控制方法,通过统计存储系统中硬盘的处理能力信息,根据硬盘的处理能力大小将cache划分为多个层级,当某个层级的cache中的脏数据达到预设比例时,将该层级的cache中的数据写入该层级的缓存对应的硬盘中;在本发明实施例中,由于将cache划分为多个层级,每个层级对应的硬盘的处理能力不同,处理能力弱的硬盘不能抢占处理能力强的硬盘对应的cache内部页面资源,因此处理能力强的硬盘对应的cache空间能够提前释放出来,在一定程度上克服了现有技术中cache内部页面资源抢占现象,避免了慢速盘对于高速盘性能的影响。
图4为本发明存储系统服务质量控制方法实施例二的流程图,如图4所示,本实施例提供了一种存储系统服务质量控制方法,可以具体包括如下步骤:
步骤401,统计存储系统中硬盘的处理能力信息,所述处理能力信息至少包括所述硬盘的类型、数量和性能的其中一个,通过所述处理能力信息获得所述硬盘的处理能力的大小。
图5为本发明存储系统服务质量控制方法实施例二的应用场景示意图,如图5所示,本实施例具体应用在没有cache分区机制下,根据硬盘的处理能力将整个cache资源划分为多个tier。本实施例的核心为图5中的QoS控制系统,该QoS控制系统可以部署在存储系统内部,也可以部署在存储系统外部进行带外管理。该QoS控制系统通过监控存储系统的业务流量等信息、硬盘的利用率等信息,从而对cache进行划分调整。在存储系统的初始化阶段,对存储系统中硬盘的处理能力信息进行统计,所述处理能力信息至少包括所述硬盘的类型、数量和性能的其中一个,通过所述处理能力信息获得所述硬盘的处理能力的大小。本步骤为QoS控制系统统计存储系统中硬盘的类型和数量,此处的硬盘可以具体为上述图3中所示的物理磁盘,硬盘的类型可以包括但不限于SSD、SAS、SATA等。
步骤402,根据硬盘的处理能力的大小将缓存划分为多个tier。
在获取到存储系统中硬盘的处理能力的大小后,QoS控制系统根据硬盘的处理能力的大小将缓存划分为多个tier。当硬盘的处理能力的大小具体根据当前不同类型硬盘的数量的比例来获取得到时,在根据硬盘的处理能力的大小对cache的页面资源进行划分后,各tier的缓存的页面配额分别根据各tier的缓存对应的一个或多个硬盘的数量来得到。此处以将整个cache划分为三个tier为例进行说明,即tier0、tier1和tier2,分别对应硬盘中的高速盘、中速盘、低速盘,此处的高中低速盘是根据硬盘的类型得到的。例如,假设存储系统中包含SSD、SAS、SATA三种类型的硬盘,其数量分别为4、2、6,则可以将cache划分为三个tier,每个tier的缓存分别对应一种类型的硬盘,三个tier上的页面配额按照2∶1∶3的比例来划分。在本实施例中,在将cache的页面资源划分为多个tier后,以划分后的各tier为单位,分别将cache中各tier内的数据写入各tier的缓存对应的硬盘中,即每个tier分别针对一种或多种类型相似的硬盘。另外,硬盘的处理能力的大小可以具体根据硬盘的性能来获取得到,各硬盘的性能随着硬盘的老化等影响而发生变化,此处的硬盘的性能可以为硬盘在使用过程中由于插拔、机械故障、老化等因素导致的硬盘的当前性能。本实施例以此来对cache的划分,使得划分的tier可以与各硬盘的实际处理能力相关。
步骤403,定期收集存储系统的性能统计信息和资源使用信息。
在存储系统运行过程中,各硬盘的状态会发生变化,在本实施例中,为了提高存储系统的QoS,需要定期调整各tier的缓存的页面配额,从而与硬盘的状态变化相适应,本步骤为QoS控制系统定期收集存储系统的性能统计信息和资源使用信息,此处的性能统计信息包括但不限于硬盘的平均利用率和主机业务的流量,资源使用信息包括但不限于缓存中页面资源的使用信息、各tier的缓存的页面配额的使用信息和计算资源的使用信息。其中,硬盘的平均利用率为不同类型硬盘各自的平均利用率,主机业务的流量为主机业务在不同tier的缓存上产生的历史流量,缓存中页面资源的使用信息为cache中页面资源的使用情况,cache中各tier的缓存的页面配额的使用信息为不同tier上的页面资源的使用情况,计算资源的使用信息可以为CPU等计算资源的使用情况。在本实施例中,QoS控制系统可以按照预设的收集周期来定期收集上述信息。
步骤404,根据所述性能统计信息和所述资源使用信息对所述各tier的缓存的页面配额进行定期调整。
在收集到存储系统内部的性能统计信息和资源使用信息后,QoS控制系统对硬盘的平均利用率、主机业务的流量、cache中页面资源的使用信息、各tier的缓存的页面配额的使用信息和计算资源的使用信息进行分析,通过分析来决策是否对各tier的缓存的页面配额进行调整,并根据收集到的上述信息来进行具体调整。此处的各tier的缓存的页面配额为划分给各tier的缓存的页面资源在cache中整个页面资源中所占的比例。在存储系统的运行过程中,在不同的时刻,上述这些信息是不同的,因此,此处根据收集到的不同信息来对各tier的缓存的页面配额进行调整,以使得划分的各tier可以更加准确地适应当前的存储环境。在本实施例中,整个调整流程是一个负反馈过程,调整后的页面配额信息又会成为下一次调整的依据,根据定期收集的信息对页面配额进行不断调整,直至系统达到一个稳态,整个调整过程可以基于模糊控制等自适应智能算法进行分析和决策。
具体地,在本实施例中,在初始化阶段将cache划分为多个tier,在运行过程中对cache的划分进行调整,即对划分的tier的缓存的页面配额进行调整的过程中,划分后的各tier的缓存的页面配额大于预设的页面配额最小值,即划分后的每个tier内存均存在一个最小配额值,用于保底,避免某个tier出现资源饿死现象。
步骤405,统计所述各tier的缓存的使用信息。
在cache的写盘(destage)过程中,现有技术中的cache基本上都是通过预先设定的整个cache的高低水位标来控制cache执行写盘操作的,在现有的cache分区技术中对于cache分区也是按照高低水位标来控制cache写盘。此处的写盘操作具体为将cache中的数据写到物理硬盘中。在本实施例中,写盘操作以tier为单位进行,具体写盘操作的执行区别于现有技术中的按照高低水位标的控制方式,而是将高低水位标的控制方式分别应用在各tier的缓存中,即对各个tier的缓存分别进行写盘控制,具体的写盘策略根据各tier的高低水位标来确定。本步骤为QoS控制系统统计各tier的缓存的使用信息,此处的各tier的缓存的使用信息可以包括但不限于各tier的缓存的页面使用信息、各tier的缓存对应的硬盘的平均利用率和各tier的缓存的业务量。其中,各tier的缓存的页面使用信息为各tier的缓存的页面资源的使用情况,各tier的缓存对应的硬盘的平均利用率为各tier的缓存对应的所有硬盘的利用率的平均值,各tier的缓存的业务量为各tier的缓存上当前正在处理的业务量和保存的历史时间所处理的业务量。
步骤406,根据所述各tier的缓存的使用信息确定待执行写盘操作的写盘tier。
在获取到各tier的缓存的使用信息后,QoS控制系统根据各tier的缓存的页面使用信息、各tier的缓存对应的硬盘的平均利用率和各tier的缓存的业务量,来确定待执行写盘操作的写盘tier,即决策当前对哪个tier执行写盘操作写盘。
步骤407,统计待执行写盘操作的tier的缓存对应的硬盘当前可支持的业务并发数。
在决策出待执行写盘操作的tier后,QoS控制系统继续统计该待执行写盘操作的tier的缓存对应的硬盘当前可支持的业务并发数,通过该业务并发数来对该待执行写盘操作的tier进行写盘处理。
步骤408,当各层级的缓存中的脏数据达到预设比例时,以各tier的缓存为单位,根据所述各层级的缓存的页面配额,根据统计的所述业务并发数将所述待执行写盘操作的tier的缓存中的数据写入对应的硬盘中。
本实施例通过统计tier的缓存的页面使用情况并结合tier的缓存对应的硬盘的并发情况,来决定是否执行写盘操作以及执行写盘操作的数据量。当缓存中的脏数据达到预设比例时,以各tier的缓存为单位,根据所述各层级的缓存的页面配额,根据统计的业务并发数将待执行写盘操作的tier的缓存中的数据写入对应的硬盘中。其中,由于硬盘的处理能力不仅与硬盘的数量有关,还与业务的类型相关,则可以根据硬盘的处理能力来动态调整业务并发数,从而能够结合业务量和硬盘的性能、页面使用情况来更加准确地控制写盘,避免了现有技术中不停刷盘导致硬盘过于繁忙的缺陷,增加了硬盘的寿命。在本实施例中,在将cache的页面资源划分为多个tier的缓存对应后,以划分后的各tier的缓存为单位,分别将各tier的缓存内的数据写入各tier的缓存对应的硬盘中,即每个tier分别针对一类处理能力接近的硬盘,每个tier之间相互独立,不会相互影响,从而不会出现由于慢速盘拖累快速盘的现象。
进一步地,本实施例在基于tier对主机的业务进行处理时,通过基于tier的页面优先级的排队机制来实现,具体可以包括如下步骤:
步骤409,当接收到业务对应的业务资源请求时,所述业务资源请求中携带tier信息,判断tier信息所代表的tier的缓存的当前页面配额是否小于预设的配额阈值,如果是,则执行步骤410,否则执行步骤412。
当某个tier接收到某个业务对应的业务资源请求时,在该业务资源请求中携带tier信息,该tier信息用于表明该业务资源请求所请求的tier,QoS控制系统判断该tier的缓存的当前页面配额是否小于预设的配额阈值,该配额阈值为预先设定的表征tier的缓存的页面配额是否紧张的值。当该tier的缓存的当前页面配额小于该配额阈值时,表明该tier的缓存的页面配额紧张,则执行步骤410-411,否则执行步骤412。
步骤410,根据所述业务的业务优先级和所述tier的缓存对应的权重值计算所述业务资源请求的请求优先级。
当该tier的缓存的当前页面配额小于该配额阈值时,表明该tier的缓存的页面配额紧张,则需要对业务资源请求进行排队处理,QoS控制系统根据该业务的业务优先级和该tier的缓存对应的权重值来计算该业务资源请求的请求优先级,业务优先级可以由主机根据用户对业务的需求以及业务的性质来设定,tier的缓存对应的权重值可以由QoS控制系统来设定,根据各业务的业务优先级和其所属tier的缓存的权重值,便可以计算得到各业务资源请求的请求优先级。
步骤411,根据所述请求优先级对所述业务资源请求进行排队处理。
在tier的缓存的页面配额紧张时,QoS控制系统便根据请求优先级对该tier的缓存上的业务资源请求进行排队处理,将请求优先级高的业务资源请求排在前面进行优先处理,请求优先级低的业务资源请求则排在后面进行非优先处理。
步骤412,直接对业务资源请求进行处理。
在tier的缓存的页面配额不紧张时,QoS控制系统无需对业务资源请求进行排队处理,可以直接对业务资源请求进行处理,申请相应的页面配额。
需要指出的是,在本实施例中,上述步骤409-412与步骤408之间不存在严格的时序限制,步骤409-412可以在步骤408之前执行,或者同时执行,具体根据实际情况来调整。
本实施例提供了一种存储系统服务质量控制方法,通过统计存储系统中硬盘的处理能力信息,根据硬盘的处理能力信息将cache划分为多个tier,当cache中的脏数据达到预设比例时,以各tier的缓存为单位,根据各tier的缓存的页面配额,分别将cache中各tier内的数据写入各tier的缓存对应的硬盘中;本实施例基于存储系统中硬盘的处理能力来动态划分cache资源,将整个cache的页面资源逻辑划分为多个tier,并进行配额管理和申请控制,避免了慢速盘对于高速盘性能的影响;且各个tier的缓存的页面配额根据当前存储系统的性能统计信息和资源使用信息进行动态调整,保证了资源的合理利用;本实施例以tier为范围进行写盘,避免了现有技术中采用全局destage策略的滞后性所带来的cache页面释放不及时的问题;同时,本实施例克服了现有技术中cache内部页面资源抢占现象。
图6为本发明存储系统服务质量控制方法实施例三的流程图,如图6所示,本实施例提供了一种存储系统服务质量控制方法,可以具体包括如下步骤:
步骤601,根据主机业务的业务类型将缓存划分为多个缓存分区。
图7为本发明存储系统服务质量控制方法实施例三的应用场景示意图,如图7所示,本实施例具体应用在cache分区机制下,根据硬盘的处理能力分别将各cache分区的资源划分为多个tier。本步骤为根据主机业务的业务类型,将cache先划分为多个cache分区,此处以划分为cache分区一、cache分区二和cache分区三为例进行说明。
步骤602,统计存储系统中硬盘的处理能力信息,所述处理能力信息至少包括所述硬盘的类型、数量和性能的其中一个,通过所述处理能力信息获得所述硬盘的处理能力的大小,本步骤可以类似上述步骤401,此处不再赘述。
步骤603,根据硬盘的处理能力的大小将各cache分区分别划分为多个tier。
在获取到存储系统中硬盘的处理能力的大小后,QoS控制系统根据硬盘的处理能力的大小将各cache分区划分为多个tier。当硬盘的处理能力的大小具体根据当前不同类型硬盘的数量的比例来获取得到时,根据硬盘的处理能力的大小对各cache分区的页面资源进行分别划分,具体将各cache分区分别划分为多个tier,此处以将各cache分区均划分为三个tier为例进行说明,即tier0、tier1和tier2,分别对应硬盘中的高速盘、中速盘、低速盘。在本实施例中,在将cache分区的页面资源划分为多个tier后,以划分后的各tier的缓存为单位,分别对各tier的缓存对应的硬盘的数据进行存储处理,即每个tier分别针对一种或多种类型相似的硬盘。
步骤604,定期收集存储系统内部的性能统计信息和资源使用信息,本步骤可以类似上述步骤403,此处不再赘述。
步骤605,根据性能统计信息和资源使用信息对各tier的缓存的页面配额进行定期调整,本步骤可以类似上述步骤404,此处不再赘述。
步骤606,统计各tier的缓存的使用信息,本步骤可以类似上述步骤405,此处不再赘述。
步骤607,根据各tier的缓存的使用信息确定待执行写盘操作的待写盘tier,本步骤可以类似上述步骤406,此处不再赘述。
步骤608,统计待写盘tier的缓存对应的硬盘当前可支持的业务并发数,本步骤可以类似上述步骤407,此处不再赘述。
步骤609,当各层级的缓存中的脏数据达到预设比例时,以各tier的缓存为单位,根据所述各层级的缓存的页面配额,根据统计的业务并发数将待执行写盘操作的tier的缓存中的数据写入对应的硬盘中,本步骤可以类似上述步骤408,此处不再赘述。
步骤610,当接收到业务对应的业务资源请求时,所述业务资源请求中携带tier信息,判断tier信息所代表的tier的缓存的当前页面配额是否小于预设的配额阈值,如果是,则执行步骤611,否则执行步骤613,本步骤可以类似上述步骤409,此处不再赘述。
步骤611,根据所述业务的业务优先级和所述tier的缓存对应的权重值计算所述业务资源请求的请求优先级,本步骤可以类似上述步骤410,此处不再赘述。
步骤612,根据所述请求优先级对所述业务资源请求进行排队处理,本步骤可以类似上述步骤411,此处不再赘述。
步骤613,直接对业务资源请求进行处理,本步骤可以类似上述步骤412,此处不再赘述。
本实施例提供了一种存储系统服务质量控制方法,通过统计存储系统中硬盘的处理能力信息,根据硬盘的处理能力大小将cache划分为多个层级,当某个层级的cache中的脏数据达到预设比例时,将该层级的cache中的数据写入该层级的缓存对应的硬盘中;在本发明实施例中,由于将cache划分为多个层级,每个层级对应的硬盘的处理能力不同,处理能力弱的硬盘不能抢占处理能力强的硬盘对应的cache内部页面资源,因此处理能力强的硬盘对应的cache空间能够提前释放出来,在一定程度上克服了现有技术中cache内部页面资源抢占现象,避免了慢速盘对于高速盘性能的影响;且各个tier的缓存的页面配额根据当前存储系统的性能统计信息和资源使用信息进行动态调整,保证了资源的合理利用;本实施例以tier为范围进行destage,避免了现有技术中采用全局destage策略的滞后性所带来的cache页面释放不及时的问题;同时,本实施例结合cache分区,在一个cache分区内部也逻辑划分为多个tier,解决了同一cache分区内部由于快慢盘导致的页面资源抢占的问题。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图8为本发明存储系统服务质量控制系统实施例一的结构示意图,如图8所示,本实施例提供了一种存储系统服务质量控制系统,可以具体执行上述方法实施例一中的各个步骤,此处不再赘述。本实施例提供的存储系统服务质量控制系统可以具体包括第一统计模块801、第一划分模块802和写盘模块803。其中,第一统计模块801用于统计存储系统中硬盘的处理能力信息,所述处理能力信息至少包括所述硬盘的类型、数量和性能的其中一个,通过所述处理能力信息获得所述硬盘的处理能力的大小。第一划分模块802用于根据硬盘的处理能力的大小将缓存划分为多个层级,各层级的缓存分别对应所述存储系统中的一个或多个硬盘,所述各层级的缓存的页面配额分别根据所述各层级的缓存对应的一个或多个硬盘的处理能力信息预先分配获得。写盘模块803用于对于脏数据达到预设比例的层级的缓存,将所述层级的缓存的数据写入所述层级的缓存对应的硬盘中。
图9为本发明存储系统服务质量控制系统实施例二的结构示意图,如图9所示,本实施例提供了一种存储系统服务质量控制系统,可以具体执行上述方法实施例二或实施例三中的各个步骤,此处不再赘述。本实施例提供的存储系统服务质量控制系统在上述图8所示的基础之上,还包括第二划分模块901。第二划分模块901用于根据主机业务的业务类型将缓存划分为多个缓存分区。第一划分模块802具体用于根据硬盘的处理能力的大小将各所述缓存分区分别划分为多个层级。
进一步地,本实施例提供的存储系统服务质量控制系统还可以包括收集模块902和页面配额调整模块903。其中,收集模块902用于定期收集存储系统的性能统计信息和资源使用信息,所述性能统计信息包括硬盘的平均利用率和主机业务的流量,所述资源使用信息包括缓存中页面资源的使用信息、各层级的缓存的页面配额的使用信息和计算资源的使用信息。页面配额调整模块903用于根据所述性能统计信息和所述资源使用信息对所述各层级的缓存的页面配额进行定期调整。其中,调整后的所述各层级的缓存的页面配额大于预设的页面配额最小值。
进一步地,本实施例提供的存储系统服务质量控制系统还可以包括第二统计模块904、决策模块905和第三统计模块906。其中,第二统计模块904用于统计所述各层级的缓存的使用信息,所述各层级的缓存的使用信息包括所述各层级的缓存的页面使用信息、所述各层级的缓存对应的硬盘的平均利用率和所述各层级的缓存的业务量。决策模块905用于根据所述各层级的缓存的使用信息确定待执行写盘操作的层级。第三统计模块906用于统计所述层级的缓存对应的硬盘当前可支持的业务并发数。写盘模块803具体用于对于脏数据达到预设比例的层级的缓存,根据统计的所述业务并发数将所述待执行写盘操作的层级的缓存中的数据写入对应的硬盘中。
进一步地,本实施例提供的存储系统服务质量控制系统还可以包括计算模块907和请求控制模块908。其中,计算模块907用于当接收到业务对应的业务资源请求时,所述业务资源请求中携带层级信息,若所述层级信息所代表的层级的缓存的当前页面配额小于预设的配额阈值,则根据所述业务的业务优先级和所述层级的缓存对应的权重值计算所述业务资源请求的请求优先级。请求控制模块908用于根据所述请求优先级对所述业务资源请求进行排队处理。
在实际应用中,本实施例中的存储系统服务质量控制系统可以由系统性能数据监控模块、cache页面划分及配额调整模块、性能数据分析及决策模块和算法及规则支撑模块四个模块构成,上述各模块可以分别集成在这四个大模块中。系统性能数据监控模块主要负责收集整个存储系统内部的性能信息数据,包括但不限于:主机业务流量、硬盘平均利用率、cache页面使用情况、cache页面tier配额使用情况、CPU等计算资源使用情况等。算法及规则支撑模块主要负责提供包括模糊控制算法在内的各种自适应的人工智能算法以及静态规则,用于协助性能数据分析进行控制点和控制粒度的决策。性能数据分析及决策模块主要负责在自适应算法和静态规则的支撑下,对收集来的性能数据进行分析,从而生成QoS控制的控制点和控制粒度。cache页面划分及配额调整模块主要负责对于cache页面按照硬盘性能进行逻辑划分,并根据性能分析的结果来动态调整各个划分部分的页面配额。其中,第一统计模块801、收集模块902、第二统计模块904和第三统计模块906可以集成在系统性能数据监控模块中,第一划分模块802、第二划分模块901、页面配额调整模块903可以集成在cache页面划分及配额调整模块中,决策模块905、写盘模块803和请求控制模块908可以集成在性能数据分析及决策模块中,计算模块907可以集成在算法及规则支撑模块中。
本实施例提供了一种存储系统服务质量控制系统,通过统计存储系统中硬盘的处理能力信息,根据硬盘的处理能力大小将cache划分为多个层级,当某个层级的cache中的脏数据达到预设比例时,将该层级的cache中的数据写入该层级的缓存对应的硬盘中;在本发明实施例中,由于将cache划分为多个层级,每个层级对应的硬盘的处理能力不同,处理能力弱的硬盘不能抢占处理能力强的硬盘对应的cache内部页面资源,因此处理能力强的硬盘对应的cache空间能够提前释放出来,在一定程度上克服了现有技术中cache内部页面资源抢占现象,避免了慢速盘对于高速盘性能的影响;且各个tier的缓存的页面配额根据当前存储系统的性能统计信息和资源使用信息进行动态调整,保证了资源的合理利用;本实施例以tier为范围进行destage,避免了现有技术中采用全局destage策略的滞后性所带来的cache页面释放不及时的问题;同时,本实施例结合cache分区,在一个cache分区内部也逻辑划分为多个tier,解决了同一cache分区内部由于快慢盘导致的页面资源抢占的问题。
本实施例还提供了一种存储系统,可以具体包括主机、缓存和上述图8或图9所示的存储系统服务质量控制系统。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。