一种存储阵列操作方法和装置与流程

文档序号:12176242阅读:373来源:国知局
一种存储阵列操作方法和装置与流程

本发明涉及存储技术领域,尤其涉及一种存储阵列操作方法和装置。



背景技术:

随着存储技术的发展,存储阵列内往往会支持多种功能,例如:支持网络附属存储(Network Attached Storage,NAS)和存储区域网络(Storage Area NetWorking,SAN)的融合存储,或者同时支持本地访问和异构逻辑单元号(Logical Unit Number,Lun)的存储,或者存储阵列内部往往会有多种不同的业务,如客户有可能同时配置自动精简配置(thin)Lun、普通(thick)Lun、快照业务以及基于写时重定向(Redirect On Write,ROW)技术实现的Lun。且现有的存储阵列往往都会提供缓存(Cache)功能以加速读写效率。然而,存储阵列的Cache资源可能会由很多业务对象共享,且不同的业务对象之间性能相差很大,例如:慢的业务对象会占用大量的Cache资源来不及释放,使得快的业务对象可使用的Cache资源不足,从而快的业务对象的性能急剧恶化。例如:NAS和SAN融合存储时,NAS和SAN都跑写业务情况下,NAS占用Cache资源耗尽,导致SAN性能恶化,影响SAN业务的服务体验。例如:机械盘和固态硬盘(Solid State Drives,SSD)的混合存储阵列,由于机械盘的性能远远低于SSD盘,这样机械盘占用Cache资源,导致SSD盘资源得不到分配,导致SSD盘性能恶化。由此可见,目前融合存储的性能恶化问题是当前迫切需要解决的技术问题。



技术实现要素:

本发明实施例提供了一种存储阵列操作方法和装置,可以解决融合存储的性能恶化问题。

第一方面,本发明实施例提供一种存储阵列操作方法,包括:

接收目标业务对象下发的针对存储阵列的缓存的操作指令,其中,所述存储阵列所支持的业务对象被划分为至少一个性能组,且预先为每个所述性能组 计算有允许操作流量;

从所述至少一个性能组中选择所述目标业务对象所属的目标性能组,并判断所述目标性能组的允许操作流量是否还存在剩余流量;

若所述目标性能组的允许操作流量还存在剩余流量时,响应所述操作指令;

若所述目标性能组的允许操作流量不存在剩余流量时,拒绝所述操作指令。

在第一方面的第一种可能的实现方式中,所述存储阵列包括至少一个硬盘域,且所述至少一个硬盘域被划分为至少一个性能池,且预先为每个所述性能池计算有允许操作流量,每个所述性能池包括至少一个所述性能组;

所述若所述目标性能组的允许操作流量还存在剩余流量时,响应所述操作指令,包括:

若所述目标性能组的允许操作流量还存在剩余流量时,从所述至少一个性能池中选择所述目标性能组所属的目标性能池,并判断所述目标性能池的允许操作流量是否还存在剩余流量,若是,则响应所述操作指令;

所述方法还包括:

若所述目标性能池的允许操作流量不存在剩余流量时,拒绝所述操作指令。

结合第一方面或者第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,每个所述性能组包括至少一个性能子组,且预先为每个所述性能子组计算有允许操作流量;

所述从所述至少一个性能组中选择所述目标业务对象所属的目标性能组,并判断所述目标性能组的允许操作流量是否还存在剩余流量,包括:

从所述至少一个性能组包括的性能子组中选择所述目标业务对象所属的目标性能子组,并判断所述目标性能子组的允许操作流量是否还存在剩余流量,若是,则将所述目标性能子组所属的性能组作为所述目标业务对象所属的目标性能组,并判断所述目标性能组的允许操作流量是否还存在剩余流量。

结合第一方面或者第一方面的第一种可能的实现方式或者第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述方法还包括:

获取所述存储列阵所支持的业务对象,并创建所述至少一个性能组,其中,每个所述性能组至少包括一个所述业务对象;

计算每个所述性能组的允许操作流量,其中,所述允许操作流量包括写操作次数、写操作带宽和读操作次数和读操作带宽中的至少一项。

结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述方法还包括:

设置所述至少一个性能组的优先级别;

根据每个性能组的优先级别对该性能组的允许操作流量进行调整,其中,每个所述性能组进行所述调整后的允许操作流量与该性能组的优先级别对应。

结合第一方面的第一种可能的实现方式或者第一方面的第二种可能的实现方式,在第一方面的第五种可能的实现方式中,所述方法还包括:

根据所述存储阵列包括的至少一个硬盘域,创建至少一个性能池,其中,每个所述性能池至少包括一个所述硬盘域;

计算每个所述性能池的允许操作流量,其中,所述允许操作流量包括写操作次数、写操作带宽和读操作次数和读操作带宽中的至少一项;

关联所述至少一个性能组与所述至少一个性能池的父子关系,其中,每个所述性能池至少包括一个所述性能组。

结合第一方面的第二种可能的实现方式,在第一方面的第六种可能的实现方式中,在所述响应所述操作指令之后,所述方法还包括:

查询所述目标性能组的当前允许操作流量,并根据所述操作指令所产生的当前流量对所述目标性能组的当前允许操作流量进行调整;

查询所述目标性能池的当前允许操作流量,并根据所述操作指令所产生的当前流量对所述目标性能池的当前允许操作流量进行调整;

查询所述目标性能子组的当前允许操作流量,并根据所述操作指令所产生的当前流量对所述目标性能子组的当前允许操作流量进行调整。

第二方面,本发明实施例提供一种存储阵列操作装置,包括:接收单元、判断单元、响应单元和第一拒绝单元,其中:

所述接收单元,用于接收目标业务对象下发的针对存储阵列的缓存的操作指令,其中,所述存储阵列所支持的业务对象被划分为至少一个性能组,且预先为每个所述性能组计算有允许操作流量;

所述判断单元,用于从所述至少一个性能组中选择所述目标业务对象所属的目标性能组,并判断所述目标性能组的允许操作流量是否还存在剩余流量;

所述响应单元,用于若所述目标性能组的允许操作流量还存在剩余流量时,响应所述操作指令;

所述第一拒绝单元,用于若所述目标性能组的允许操作流量不存在剩余流量时,拒绝所述操作指令。

在第二方面的第一种可能的实现方式中,所述存储阵列包括至少一个硬盘域,且所述至少一个硬盘域被划分为至少一个性能池,且预先为每个所述性能池计算有允许操作流量,每个所述性能池包括至少一个所述性能组;

所述响应单元用于若所述目标性能组的允许操作流量还存在剩余流量时,从所述至少一个性能池中选择所述目标性能组所属的目标性能池,并判断所述目标性能池的允许操作流量是否还存在剩余流量,若是,则响应所述操作指令;

所述装置还包括:

第二拒绝单元,用于若所述目标性能池的允许操作流量不存在剩余流量时,拒绝所述操作指令。

结合第二方面或者第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,每个所述性能组包括至少一个性能子组,且预先为每个所述性能子组计算有允许操作流量;

所述判断单元用于从所述至少一个性能组包括的性能子组中选择所述目标业务对象所属的目标性能子组,并判断所述目标性能子组的允许操作流量是否还存在剩余流量,若是,则将所述目标性能子组所属的性能组作为所述目标业务对象所属的目标性能组,并判断所述目标性能组的允许操作流量是否还存在剩余流量。

结合第二方面或者第二方面的第一种可能的实现方式或者第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述装置还包括:

第一创建单元,用于获取所述存储列阵所支持的业务对象,并创建所述至少一个性能组,其中,每个所述性能组至少包括一个所述业务对象;

第一计算单元,用于计算每个所述性能组的允许操作流量,其中,所述允许操作流量包括写操作次数、写操作带宽和读操作次数和读操作带宽中的至少一项。

结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述装置还包括:

设置单元,用于设置所述至少一个性能组的优先级别;

第一调整单元,用于根据每个性能组的优先级别对该性能组的允许操作流 量进行调整,其中,每个所述性能组进行所述调整后的允许操作流量与该性能组的优先级别对应。

结合第二方面的第一种可能的实现方式或者第二方面的第二种可能的实现方式,在第二方面的第五种可能的实现方式中,所述装置还包括:

第二创建单元,用于根据所述存储阵列包括的至少一个硬盘域,创建至少一个性能池,其中,每个所述性能池至少包括一个所述硬盘域;

第二计算单元,用于计算每个所述性能池的允许操作流量,其中,所述允许操作流量包括写操作次数、写操作带宽和读操作次数和读操作带宽中的至少一项;

关联单元,用于关联所述至少一个性能组与所述至少一个性能池的父子关系,其中,每个所述性能池至少包括一个所述性能组。

结合第二方面的第二种可能的实现方式,在第二方面的第六种可能的实现方式中,所述装置还包括:

第二调整单元,用于查询所述目标性能组的当前允许操作流量,并根据所述操作指令所产生的当前流量对所述目标性能组的当前允许操作流量进行调整;

第三调整单元,用于查询所述目标性能池的当前允许操作流量,并根据所述操作指令所产生的当前流量对所述目标性能池的当前允许操作流量进行调整;

第四调整单元,用于查询所述目标性能子组的当前允许操作流量,并根据所述操作指令所产生的当前流量对所述目标性能子组的当前允许操作流量进行调整。

上述技术方案中,接收目标业务对象下发的针对存储阵列的缓存的操作指令,其中,所述存储阵列所支持的业务对象被划分为至少一个性能组,且预先为每个所述性能组计算有允许操作流量;从所述至少一个性能组中选择所述目标业务对象所属的目标性能组,并判断所述目标性能组的允许操作流量是否还存在剩余流量;若所述目标性能组的允许操作流量还存在剩余流量时,响应所述操作指令;若所述目标性能组的允许操作流量不存在剩余流量时,拒绝所述操作指令。这样可以限制业务对象的操作流量,这样可以避免因某一业务对象过分占用缓存而造成其他业务对象的性能恶化,从而本发明实施例可以解决融 合存储的性能恶化问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种存储阵列操作方法的流程示意图;

图2是本发明实施例提供的存储阵列操作方法可应用的系统架构图;

图3是本发明实施例提供的另一种存储阵列操作方法的流程示意图;

图4是本发明实施例提供的一种可选的性能组和性能池的创建流程示意图;

图5是本发明实施例提供的一种可选的存储阵列结构示意图;

图6是本发明实施例提供的另一种可选的存储阵列结构示意图;

图7是本发明实施例提供的一种可选的性能子组、性能组和性能池的创建流程示意图;

图8是本发明实施例提供的一种可选的访问时序和性能调整示意图;

图9是本发明实施例提供的另一种可选的访问时序和性能调整示意图;

图10是本发明实施例提供的一种存储阵列操作装置的结构示意图;

图11是本发明实施例提供的另一种存储阵列操作装置的结构示意图;

图12是本发明实施例提供的另一种存储阵列操作装置的结构示意图;

图13是本发明实施例提供的另一种存储阵列操作装置的结构示意图;

图14是本发明实施例提供的另一种存储阵列操作装置的结构示意图;

图15是本发明实施例提供的另一种存储阵列操作装置的结构示意图;

图16是本发明实施例提供的另一种存储阵列操作装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1,图1是本发明实施例提供的一种存储阵列操作方法的流程示意图,如图1所示,包括以下步骤:

101、接收目标业务对象下发的针对存储阵列的缓存的操作指令,其中,所述存储阵列所支持的业务对象被划分为至少一个性能组,且预先为每个所述性能组计算有允许操作流量。

本实施例中,上述存储阵列为融合存储阵列,该存储阵列可以支持多种业务对象,例如:支持本地访问和Lun存储,或者支持自动精简配置(thin)Lun、普通(thick)Lun、快照业务以及基于ROM技术实现的Lun,或者还可以支持文件系统等业务对象。

另外,本实施例中,每个性能组可以包括不同的业务对象,例如:性能组1可以包括至少一个稀疏(thin)Lun,性能组2可以包括至少一个密集(thick)Lun,性能组3可以包括至少一个文件系统等。

另外,本实施例中,上述允许操作流量可以理解为单位时间内允许的操作流量,例如:每秒允许的写流量或者每秒允许的读流量;或者上述允许操作流量可以理解为在某一时间周期内允许的读流量或者写流量等。

另外,本实施例中,上述操作指令可以为读操作指令或者写操作指令,例如:文件系统下发的对缓存进行写操作的写操作指令,或者Lun下发的对缓存进行读操作的读操作指令。

102、从所述至少一个性能组中选择所述目标业务对象所属的目标性能组,并判断所述目标性能组的允许操作流量是否还存在剩余流量。

由于,本实施例中,存储阵列所支持的业务对象被划分为至少一个性能组,那么,目标业务对象必然属于这至少一个性能组中的一个,从而步骤102可以选择出上述目标性能组。另外,本实施例中,允许操作流量是一个变量,即允许操作流量随着操作指令的响应会变化。上述剩余流量可以理解为性能组当前还允许的操作流量。例如:目标性能组的原始允许操作流量为1000,当响应了多个操作指令后,允许操作流量就必然减少,如目标性能组的允许操作流量还剩余800,那么,这个800就是剩余流量。其中,本实施例中,操作流量的单位可以是按照存储单位进行统计,或者可以是按照操作次数或者占用缓存的时间进行统计,对此本实施例不作限定。

103、若所述目标性能组的允许操作流量还存在剩余流量时,响应所述操作 指令。

其中,响应操作指令可以是缓存响应该操作指令。

104、若所述目标性能组的允许操作流量不存在剩余流量时,拒绝所述操作指令。

其中,拒绝该操作指令可以是存储阵列的控制器拒绝该操作指令,即不响应该操作指令。

本实施例中,上述方法可以应用于任何包括存储阵列的存储设备,例如:服务器和计算机等。另外,上述方法应用的存储设备可以是分布式系统中的存储阵列,例如:以存储阵列同时支持NAS和SAN业务为例,系统示意图可以如图2所示,其中存储阵列同时支持NAS和SAN业务,主机通过接口服务器连接到存储阵列,另外的主机直接通过网络文件系统(Network File System,NFS)协议或者通用网络文件系统(Common Internet File System,CIFS)协议网络连接存储阵列。当然,上述方法应用的存储设备还可以是非分布系统的存储设备。

本实施例中,接收目标业务对象下发的针对存储阵列的缓存的操作指令,其中,所述存储阵列所支持的业务对象被划分为至少一个性能组,且预先为每个所述性能组计算有允许操作流量;从所述至少一个性能组中选择所述目标业务对象所属的目标性能组,并判断所述目标性能组的允许操作流量是否还存在剩余流量;若所述目标性能组的允许操作流量还存在剩余流量时,响应所述操作指令;若所述目标性能组的允许操作流量不存在剩余流量时,拒绝所述操作指令。这样可以限制业务对象的操作流量,这样可以避免因某一业务对象过分占用缓存而造成其他业务对象的性能恶化,从而本发明实施例可以解决融合存储的性能恶化问题。

请参阅图3,图3是本发明实施例提供的另一种存储阵列操作方法的流程示意图,如图3所示,包括以下步骤:

301、接收目标业务对象下发的针对存储阵列的缓存的操作指令,其中,所述存储阵列所支持的业务对象被划分为至少一个性能组,且预先为每个所述性能组计算有允许操作流量。

本实施例中,上述目标业务对象下发的操作指令可以是以输入输出(Input/OutPut,IO)方式进行下发的,例如:步骤301可以是存储阵列的控制 器接收主机的目标业务对象下发的IO。

302、从所述至少一个性能组中选择所述目标业务对象所属的目标性能组,并判断所述目标性能组的允许操作流量是否还存在剩余流量,若是,则执行步骤303,若否,则执行步骤305。

本实施例中,上述方法还可以包括如下步骤:

获取所述存储列阵所支持的业务对象,并创建所述至少一个性能组,其中,每个所述性能组至少包括一个所述业务对象;

计算每个所述性能组的允许操作流量,其中,所述允许操作流量可以包括写操作次数、写操作带宽和读操作次数和读操作带宽中的至少一项。

其中,性能组的写操作次数可以是每秒进行写操作的次数,具体可以用写IOPS(每秒进行读写操作的次数Input/OutPut Operations Per Second)表示,写IOPS=写盘并发数除以时延的商乘以业务对象性能特征的CPU损耗比例,即写IOPS=(写盘并发数/时延)*业务对象性能特征的CPU损耗比例;其中,/表示除法运算,*表示乘法运算,上述写盘并发数表示硬盘同一时间允许响应的最大写操作指令数,或者理解为硬盘同一时间允许下发的最大写IO数,上述时延表示响应写操作指令的时延,或者理解为响应写IO的时延,时延的单位可以为秒,上述业务对象性能特征的CPU损耗比例为比值,是根据业务特征估算出来的数据。

这样通过上述性能组的写操作次数就可以限定每个性能组允许的响应的写操作次数。

上述性能组的写操作带宽可以理解为性能组的写带宽,其中,性能组的写带宽=写盘并发数*IO大小*业务对象性能特征的CPU损耗比例/时延;其中,上述IO大小可以理解该性能组的任一业务对象的IO写的流量,或者上述IO大小可以理解该性能组的业务对象的写操作指令写的流量。

这样通过上述性能组的写操作带宽就可以限定每个性能组允许的响应的写操作的带宽。

其中,性能组的读操作次数可以是每秒进行读操作的次数,具体可以用读IOPS表示,读IOPS=读盘并发数除以时延的商乘以业务对象性能特征的CPU损耗比例,即读IOPS=(读盘并发数/时延)*业务对象性能特征的CPU损耗比例;其中,上述读盘并发数表示硬盘同一时间允许响应的最大读操作指令数, 或者理解为硬盘同一时间允许下发的最大读IO数,上述时延表示响应读操作指令的时延,或者理解为响应读IO的时延,时延的单位可以为秒,上述业务对象性能特征的CPU损耗比例为比值,是根据业务特征估算出来的数据。

这样通过上述性能组的读操作次数就可以限定每个性能组允许的响应的读操作次数。

上述性能组的读操作带宽可以理解为性能组的读带宽,其中,性能组的读带宽=读盘并发数*IO大小*业务对象性能特征的CPU损耗比例/时延;其中,上述IO大小可以理解该性能组的任一业务对象的IO读的流量,或者上述IO大小可以理解该性能组的业务对象的读操作指令读的流量。

这样通过上述性能组的读操作带宽就可以限定每个性能组允许的响应的读操作的带宽。

该实施方式中,当步骤301接收到操作指令为写操作指令时,那么,上述剩余流量就可以包括写操作次数或者写操作带宽,或者写操作次数和写操作带宽。例如:当上述允许操作流量还存在写操作次数和写操作带宽时,则允许操作流量还存在剩余流量,若上述允许操作流量写操作次数为0,或者写操作带宽为0时,则允许操作流量不存在剩余流量。

另外,需要说明的是,本实施例中,每响应一个操作指令就可以更新允许操作流量,例如:每响应一次写操作指令,那么,写操作次数就减1。当然,本实施例中,还可以是周期性地更新允许操作流量,这样可以节约更新操作次数。

该实施方式中,可以如图4所示,可以包括如下步骤:

1)用户下发创建存储池命令;

2)在存储阵列上根据硬盘域,创建存储池;

3)在相应的存储池上,创建对应的性能池;

其中,性能池可以包含4项参数,分别为写IOPS、写带宽、读IOPS、读带宽,同时有一个和存储池关联的全局唯一标识符;

4)初步计算该性能池的性能两项参数IOPS和带宽;

5)返回用户创建成功;

6)用户下发创建存储对象,比如Lun、文件系统;

7)在存储阵列上创建文件对象;

8)查询并创建对应同类的性能组,如果查询到已经创建,则不用创建;

9)如果是首次创建该性能组,则初步计算该性能组的IOPS和带宽;

10)关联性能组和性能池的父子关系;

11)添加该业务对象到性能组;

12)返回用户创建成功。

本实施例中,还可以为各个性能组设置优先级别,且每个性能组的允许操作流量可以优先级别根据进行调整,例如:上述方法还可以包括如下步骤:

设置所述至少一个性能组的优先级别;

根据每个性能组的优先级别对该性能组的允许操作流量进行调整,其中,每个所述性能组进行所述调整后的允许操作流量与该性能组的优先级别对应。

上述设置所述至少一个性能组的优先级别可以是接收用户输入的操作指令而设置的。另外,本实施例中还可以预先获取的优先级别与允许操作流量的调整量的对应关系,即可以根据性能组的优先级别对计算出的允许操作流量进行调整,例如:第一优先级别对应的调整量为增加50%,第二优先级别对应的调整量为10%,第三优先级别对应的调整量为减少10%等,这样当某一性能组的允许操作流量通过上述公式计算出后,当识别到该性能组的优先级别为第一优先级别时,就可以将该性能组的允许操作流量增加50%。或者可以预先获取的优先级别与允许操作流量的对应关系,例如:第一优先级别对应的允许操作流量为每秒写操作次数为1000,第一优先级别对应的允许操作流量为每秒写操作次数为800,这样可以直接根据该对应关系调整性能组的允许操作流量。

该实施方式中可以实现为性能组设置优先级别,这样可以更加灵活调整性能组的允许操作流量。另外,设置好优先级别后,还可以设定性能组的允许操作流量不作动态调整。

303、从至少一个性能池中选择所述目标性能组所属的目标性能池,并判断所述目标性能池的允许操作流量是否还存在剩余流量,若是,则执行步骤304,若否,则执行步骤305。

本实施例中,存储阵列包括至少一个硬盘域,且所述至少一个硬盘域被划分为至少一个性能池,且预先为每个所述性能池计算有允许操作流量,每个所述性能池包括至少一个所述性能组。上述硬盘域可以理解一个或者多个硬盘,即一个硬盘域可以包括一个或者多个硬盘。另外,每个上述性能池可以包括一个或者多个硬盘域。例如:以存储阵列包括SAS硬盘和SSD硬盘,即如图5所 示,该存储阵列可以包括SAS硬盘域501和SSD硬盘域502,另外,该存储阵列还包括缓存503。这样本实施例中,就可以创建分别包括SAS硬盘域501和SSD硬盘域502的性能池504和性能池505,其中,这里的包括可以理解为逻辑上的包括。而在性能池504上可以创建NAS性能组506,其中,NAS性能组506可以包括文件系统,以及在性能池505上创建稀疏(thin)性能组507和密集(thick)性能组508。另外,本实施例中,在存储阵列的控制器可以部署服务质量(Quality of Service,QoS)模块509,其中,QOS模块509可以用于对各性能组和性能池的允许操作流量进行调整。

需要说明的是,在图5中SAS硬盘域501、SSD硬盘域502和缓存503都是属于硬件模块,而创建性能池504、性能池505、NAS性能组506、稀疏(thin)性能组507、密集(thick)性能组508和QOS模块509都可以是在存储阵列上创建的程序模块或者理解为逻辑模块或者理解为虚拟模块。

本实施例中,上述方法还可以包括如下步骤:

根据所述存储阵列包括的至少一个硬盘域,创建至少一个性能池,其中,每个所述性能池至少包括一个所述硬盘域;

计算每个所述性能池的允许操作流量,其中,所述允许操作流量包括写操作次数、写操作带宽和读操作次数和读操作带宽中的至少一项;

关联所述至少一个性能组与所述至少一个性能池的父子关系,其中,每个所述性能池至少包括一个所述性能组。

其中,上述性能池的写操作次数可以为每秒进行写操作的次数,可以用写IOPS表示,性能池的写IOPS=硬盘数量*单盘写IOPS*系统性能特征的CPU损耗比例。其中,硬盘数量为性能池包括的硬盘数量,单盘写IOPS为性能池内某一硬盘允许的每秒进行写操作的次数,上述系统性能特征的CPU损耗比例为比值,是根据硬盘特征估算出来的数据。

这样通过上述性能池的写操作次数就可以限定每个性能池允许的响应的写操作次数。

上述性能池的写操作带宽可以理解为性能池的写带宽,其中,性能池的写带宽=硬盘数量*单盘写带宽*系统性能特征的CPU损耗比例。其中,单盘写带宽为性能池的包括的某一硬盘的写操作指令的写带宽。

这样通过上述性能池的写操作带宽就可以限定每个性能池允许的响应的写 操作的带宽。

其中,性能池的读操作次数可以是每秒进行读操作的次数,具体可以用读IOPS表示,读IOPS=硬盘数量*单盘读IOPS*系统性能特征的CPU损耗比例。其中,单盘写IOPS为性能池内某一硬盘允许的每秒进行读操作的次数。

这样通过上述性能池的读操作次数就可以限定每个性能池允许的响应的读操作次数。

上述性能池的读操作带宽可以理解为性能池的读带宽,其中,性能池的读带宽=硬盘数量*单盘读带宽*系统性能特征的CPU损耗比例,其中,单盘读带宽为性能池的包括的某一硬盘的读操作指令的写带宽。

这样通过上述性能池的读操作带宽就可以限定每个性能池允许的响应的读操作的带宽。

304、响应所述操作指令。

本实施例中,可以实现只有当目标性能组的允许操作流量还存在剩余流量,且目标性能池的允许操作流量还存在剩余流量时,才响应所述操作指令。这样可以避免目标性能组过分占用缓存,从而不会影响其他性能组的性能,以及还可以避免目标性能池过分占用缓存,从而不会影响其他性能池的性能,以实现QOS。

305、拒绝所述操作指令。

本实施例中,可以实现当目标性能组的允许操作流量不存在剩余流量时,拒绝所述操作指令。且目标性能组的允许操作流量存在剩余流量,但目标性能池的允许操作流量不存在剩余流量时,拒绝所述操作指令。这样可以避免目标性能组过分占用缓存,从而不会影响其他性能组的性能,以及还可以避免目标性能池过分占用缓存,从而不会影响其他性能池的性能,以实现QOS。

另外,本实施例中,拒绝所述操作指令可以是向发送操作指令的业务对象返回繁忙的提示,或者向主机返回繁忙的提示。

本实施例中,每个所述性能组可以包括至少一个性能子组,例如:为每个业务对象创建一个性能子组。另外,还可以预先为每个所述性能子组计算有允许操作流量。例如,上述方法还可以包括如下步骤:

获取所述存储列阵所支持的业务对象,并为每个业务对象创建一个性能子组;

计算每个所述性能子组的允许操作流量,其中,所述允许操作流量包括写操作次数、写操作带宽和读操作次数和读操作带宽中的至少一项。

其中,性能子组的写操作次数可以是每秒进行写操作的次数,具体可以用写IOPS表示,写IOPS=写盘并发数除以时延的商乘以业务对象性能特征的CPU损耗比例,即写IOPS=(写盘并发数/时延)*业务对象性能特征的CPU损耗比例;其中,上述写盘并发数表示硬盘同一时间允许响应的最大写操作指令数,或者理解为硬盘同一时间允许下发的最大写IO数,上述时延表示响应该性能子组包括的业务对象的写操作指令的时延,或者理解为响应该性能子组包括的业务对象的写IO的时延,时延的单位可以为秒,上述业务对象性能特征的CPU损耗比例为比值,是根据该性能子组包括的业务对象的特征估算出来的数据。

这样通过上述性能子组的写操作次数就可以限定每个业务对象允许的响应的写操作次数。

上述性能子组的写操作带宽可以理解为性能子组的写带宽,其中,性能组的写带宽=写盘并发数*IO大小*业务对象性能特征的CPU损耗比例/时延。

这样通过上述性能子组的写操作带宽就可以限定每个业务对象允许的响应的写操作的带宽。

其中,性能子组的读操作次数可以是每秒进行读操作的次数,具体可以用读IOPS表示,读IOPS=读盘并发数除以时延的商乘以业务对象性能特征的CPU损耗比例,即读IOPS=(读盘并发数/时延)*业务对象性能特征的CPU损耗比例。

这样通过上述性能子组的读操作次数就可以限定每个业务对象允许的响应的读操作次数。

上述性能子组的读操作带宽可以理解为性能子组的读带宽,其中,性能子组的读带宽=读盘并发数*IO大小*业务对象性能特征的CPU损耗比例/时延;其中,上述IO大小可以理解该性能组的业务对象的IO读的流量,或者上述IO大小可以理解该性能组的业务对象的读操作指令读的流量。

这样通过上述性能组的读操作带宽就可以限定每个性能组允许的响应的读操作的带宽。

这样通过上述性能子组的读操作带宽就可以限定每个业务对象允许的响应 的读操作的带宽。

该实施方式中,上述从所述至少一个性能组中选择所述目标业务对象所属的目标性能组,并判断所述目标性能组的允许操作流量是否还存在剩余流量,可以包括:

从所述至少一个性能组包括的性能子组中选择所述目标业务对象所属的目标性能子组,并判断所述目标性能子组的允许操作流量是否还存在剩余流量,若是,则将所述目标性能子组所属的性能组作为所述目标业务对象所属的目标性能组,并判断所述目标性能组的允许操作流量是否还存在剩余流量。

该实施方式中,可以实现只有当目标性能子组的允许操作流量存在剩余流量,且目标性能组的允许操作流量存在剩余流量,且目标性能池的允许操作流量存在剩余流量时,才响应操作指令。这样可以实现更加精确管理每个业务对象的操作流量,以避免影响其他业务对象的性能,以实现不同业务对象之间的性能服务保障。具体可以如图6所示,基于通用的对象性能保障算法,给文件系统或者Lun业务对象配置相应的Qos策略,其中,性能组和性能池的可以如图5所示。这样可以实现首先对业务对象的允许操作流量进行控制,再对业务对象所在的性能组的允许操作流量进行控制,再对性能组所在的性能池的允许操作流量进行控制。最终达到了不同的硬盘域的性能各自不影响,不同的性能组中的业务对象各自不影响,同时保障了性能组中单个业务对象的Qos性能保障。解决了存储阵列中,在多种对象并存的时候,性能恶化的问题。

该实施方式中,可以如图7所示,包括如下步骤:

1)用户下发创建存储池命令;

2)在存储阵列上根据硬盘域,创建存储池;

3)在相应的存储池上,创建对应的性能池;

4)初步计算该性能池的性能两项参数IOPS和带宽;

5)返回用户创建成功;

6)用户下发创建业务对象,比如Lun、文件系统;

7)在存储阵列上创建业务对象;

8)查询并创建对应同类的性能组,如果查询到已经创建,则不用创建;

9)如果是首次创建该性能组,则初步计算该性能组的IOPS和带宽;

10)关联性能组和性能池的父子关系;

11)创建该业务对象的性能子组;

12)初步计算该性能子组的性能值;

13)关联该性能子组和性能组的父子关系;

14)返回用户创建成功。

该实施方式,在响应上述操作指令之后,上述方法还可以包括如下步骤:

查询所述目标性能组的当前允许操作流量,并根据所述操作指令所产生的当前流量对所述目标性能组的当前允许操作流量进行调整;

查询所述目标性能池的当前允许操作流量,并根据所述操作指令所产生的当前流量对所述目标性能池的当前允许操作流量进行调整;

查询所述目标性能子组的当前允许操作流量,并根据所述操作指令所产生的当前流量对所述目标性能子组的当前允许操作流量进行调整。

这样可以实现更新性能池、性能组和性能子组的允许操作流量。另外,上述当前流量可以包括操作次数和操作带宽。另外,本实施例中,可以是周期性调整性能池、性能组和性能子组的允许操作流量。

该实施方式中,性能池、性能组和性能子组的允许操作流量的调整可以是由存储阵列的控制器中部署的QOS来实现,例如:如图8所示,包括如下步骤:

1)IO进入存储阵列经过控制器;其中,该IO可以理解为步骤301中接收的操作指令;

2)控制器针对IO进行性能组的流量控制;当所述IO所属性能组还有剩余流量的时候,则继续下一个步骤,否则拒绝该IO的服务,控制器向主机返回繁忙;

3)控制器针对IO进行性能池的流量控制;当所述IO所属性能池还有剩余流量的时候,则继续下一个步骤,否则拒绝该IO的服务,控制器向主机返回繁忙。

4)控制器将IO下发给Cache缓存;

5)返回,返回可以理解为响应该IO所返回的响应结果

6)IO返回;其中,IO返回可以理解为将响应该IO所返回的响应结果给主机;

7)IO和后台定时器,触发Qos模块向Cache查询所述性能组的性能;

8)Cache计算所述性能组的性能;其中,该性能可以理解为该性能组的当 前允许操作流量;

9)返回给Qos;其中,这里是将计算的性能返回给Qos;

10)Qos根据当前性能值和Cache返回的性能值进行周期性调整处理;其中,当前性能性可以理解为IO所产生的当前流量,例如:将Cache返回的性能值减去当前性能值;

11)Qos模块向Cache查询所述性能池的性能;

12)Cache计算所述性能池的性能;

13)返回给Qos;

14)Qos根据当前性能值和Cache返回的性能值进行周期性调整处理。

这样可以实现对性能组和性能池的性能进行调整,即对性能组和性能池的允许操作流量进行调整。

另外,针对性能子组的当前允许操作流量进行调整可以如图9所示,包括如下步骤:

1)IO进入存储阵列经过控制器;

2)控制器针对IO进行所述IO对象的性能子组的流量控制;当所述IO所属性能子组还有剩余流量的时候,则继续下一个步骤,否则拒绝该IO的服务,控制器向主机返回繁忙;

3)控制器针对IO进行性能组的流量控制;当所述IO所属性能组还有剩余流量的时候,则继续下一个步骤,否则拒绝该IO的服务,控制器向主机返回繁忙;

4)控制器针对IO进行性能池的流量控制;当所述IO所属性能池还有剩余流量的时候,则继续下一个步骤,否则拒绝该IO的服务,控制器向主机返回繁忙;

5)控制器将IO下发给Cache缓存;

6)返回,返回可以理解为响应该IO所返回的响应结果;

7)IO返回;其中,IO返回可以理解为将响应该IO所返回的响应结果给主机;

8)IO和后台定时器,触发Qos模块向Cache查询所述对象性能子组的性能;

9)Cache计算所述对象性能子组的性能;

10)返回给Qos;即将计算的性能子组的性能返回给Qos;

11)Qos根据当前性能值,和Cache返回的性能值进行周期性调整处理;

12)Qos模块向Cache查询所述性能组的性能;

13)Cache计算所述性能组的性能;

14)返回给Qos;即将计算的性能组的性能返回给Qos;

15)Qos根据当前性能值,和Cache返回的性能值进行周期性调整处理;

16)Qos模块向Cache查询所述性能池的性能;

17)Cache计算所述性能池的性能;

18)返回给Qos;即将计算的性能池的性能返回给Qos;

19)Qos根据当前性能值,和Cache返回的性能值进行周期性调整处理;

这样可以实现对性能子组、性能组和性能池的性能进行调整,即对性能子组、性能组和性能池的允许操作流量进行调整。

本实施例中,在图1所示的实施例的基础上增加了多种可选的实施方式,且都可以实现解决融合存储的性能恶化问题。

下面为本发明装置实施例,本发明装置实施例用于执行本发明方法实施例一至二实现的方法,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例一和实施例二。

请参阅图10,图10是本发明实施例提供的一种存储阵列操作装置的结构示意图,如图10所示,包括:接收单元101、判断单元102、响应单元103和第一拒绝单元104,其中:

接收单元101,用于接收目标业务对象下发的针对存储阵列的缓存的操作指令,其中,所述存储阵列所支持的业务对象被划分为至少一个性能组,且预先为每个所述性能组计算有允许操作流量。

判断单元102,用于从所述至少一个性能组中选择所述目标业务对象所属的目标性能组,并判断所述目标性能组的允许操作流量是否还存在剩余流量。

响应单元103,用于若所述目标性能组的允许操作流量还存在剩余流量时,响应所述操作指令。

第一拒绝单元104,用于若所述目标性能组的允许操作流量不存在剩余流量时,拒绝所述操作指令。

本实施例中,上述存储阵列可以包括至少一个硬盘域,且所述至少一个硬盘域被划分为至少一个性能池,且预先为每个所述性能池计算有允许操作流量,每个所述性能池包括至少一个所述性能组;

响应单元103可以用于若所述目标性能组的允许操作流量还存在剩余流量时,从所述至少一个性能池中选择所述目标性能组所属的目标性能池,并判断所述目标性能池的允许操作流量是否还存在剩余流量,若是,则响应所述操作指令;

如图11所示,所述装置还可以包括:

第二拒绝单元105,用于若所述目标性能池的允许操作流量不存在剩余流量时,拒绝所述操作指令。

本实施例中,每个所述性能组可以包括至少一个性能子组,且预先为每个所述性能子组计算有允许操作流量;

判断单元102可以用于从所述至少一个性能组包括的性能子组中选择所述目标业务对象所属的目标性能子组,并判断所述目标性能子组的允许操作流量是否还存在剩余流量,若是,则将所述目标性能子组所属的性能组作为所述目标业务对象所属的目标性能组,并判断所述目标性能组的允许操作流量是否还存在剩余流量。

本实施例中,如图12所示,所述装置还可以包括:

第一创建单元106,用于获取所述存储列阵所支持的业务对象,并创建所述至少一个性能组,其中,每个所述性能组至少包括一个所述业务对象;

第一计算单元107,用于计算每个所述性能组的允许操作流量,其中,所述允许操作流量包括写操作次数、写操作带宽和读操作次数和读操作带宽中的至少一项。

本实施例中,如图13所示,所述装置还可以包括:

设置单元108,用于设置所述至少一个性能组的优先级别;

第一调整单元109,用于根据每个性能组的优先级别对该性能组的允许操作流量进行调整,其中,每个所述性能组进行所述调整后的允许操作流量与该性能组的优先级别对应。

本实施例中,如图14所示,所述装置还可以包括:

第二创建单元110,用于根据所述存储阵列包括的至少一个硬盘域,创建至 少一个性能池,其中,每个所述性能池至少包括一个所述硬盘域;

第二计算单元111,用于计算每个所述性能池的允许操作流量,其中,所述允许操作流量包括写操作次数、写操作带宽和读操作次数和读操作带宽中的至少一项;

关联单元112,用于关联所述至少一个性能组与所述至少一个性能池的父子关系,其中,每个所述性能池至少包括一个所述性能组。

本实施例中,如图15所示,所述装置还可以包括:

第二调整单元113,用于查询所述目标性能组的当前允许操作流量,并根据所述操作指令所产生的当前流量对所述目标性能组的当前允许操作流量进行调整;

第三调整单元114,用于查询所述目标性能池的当前允许操作流量,并根据所述操作指令所产生的当前流量对所述目标性能池的当前允许操作流量进行调整;

第四调整单元115,用于查询所述目标性能子组的当前允许操作流量,并根据所述操作指令所产生的当前流量对所述目标性能子组的当前允许操作流量进行调整。

需要说明的是,本实施例中介绍的装置可以用于实现如图1至图9所示的实施例中描述的方法,本实施例中介绍的装置可以实现图1至图9所示的实施例中任意实现方式,此处不作重复说明。

本实施例中,接收目标业务对象下发的针对存储阵列的缓存的操作指令,其中,所述存储阵列所支持的业务对象被划分为至少一个性能组,且预先为每个所述性能组计算有允许操作流量;从所述至少一个性能组中选择所述目标业务对象所属的目标性能组,并判断所述目标性能组的允许操作流量是否还存在剩余流量;若所述目标性能组的允许操作流量还存在剩余流量时,响应所述操作指令;若所述目标性能组的允许操作流量不存在剩余流量时,拒绝所述操作指令。这样可以限制业务对象的操作流量,这样可以避免因某一业务对象过分占用缓存而造成其他业务对象的性能恶化,从而本发明实施例可以解决融合存储的性能恶化问题。

请参阅图16,图16是本发明实施例提供的另一种存储阵列操作装置的结构 示意图,如图16所示,包括:处理器161、网络接口162、存储器163和通信总线164,其中,所述通信总线164用于实现所述处理器161、网络接口162和存储器163之间连接通信,所述处理器161执行所述存储器163中存储的程序用于实现以下方法:

接收目标业务对象下发的针对存储阵列的缓存的操作指令,其中,所述存储阵列所支持的业务对象被划分为至少一个性能组,且预先为每个所述性能组计算有允许操作流量;

从所述至少一个性能组中选择所述目标业务对象所属的目标性能组,并判断所述目标性能组的允许操作流量是否还存在剩余流量;

若所述目标性能组的允许操作流量还存在剩余流量时,响应所述操作指令;

若所述目标性能组的允许操作流量不存在剩余流量时,拒绝所述操作指令。

本实施例中,所述存储阵列包括至少一个硬盘域,且所述至少一个硬盘域被划分为至少一个性能池,且预先为每个所述性能池计算有允许操作流量,每个所述性能池包括至少一个所述性能组;

处理器161执行的若所述目标性能组的允许操作流量还存在剩余流量时,响应所述操作指令的程序,可以包括:

若所述目标性能组的允许操作流量还存在剩余流量时,从所述至少一个性能池中选择所述目标性能组所属的目标性能池,并判断所述目标性能池的允许操作流量是否还存在剩余流量,若是,则响应所述操作指令;

处理器161执行的程序还可以包括:

若所述目标性能池的允许操作流量不存在剩余流量时,拒绝所述操作指令。

本实施例中,每个所述性能组包括至少一个性能子组,且预先为每个所述性能子组计算有允许操作流量;

处理器161执行的从所述至少一个性能组中选择所述目标业务对象所属的目标性能组,并判断所述目标性能组的允许操作流量是否还存在剩余流量的程序,可以包括:

从所述至少一个性能组包括的性能子组中选择所述目标业务对象所属的目标性能子组,并判断所述目标性能子组的允许操作流量是否还存在剩余流量,若是,则将所述目标性能子组所属的性能组作为所述目标业务对象所属的目标性能组,并判断所述目标性能组的允许操作流量是否还存在剩余流量。

本实施例中,处理器161执行的程序还可以包括:

获取所述存储列阵所支持的业务对象,并创建所述至少一个性能组,其中,每个所述性能组至少包括一个所述业务对象;

计算每个所述性能组的允许操作流量,其中,所述允许操作流量包括写操作次数、写操作带宽和读操作次数和读操作带宽中的至少一项。

本实施例中,处理器161执行的程序还可以包括:

设置所述至少一个性能组的优先级别;

根据每个性能组的优先级别对该性能组的允许操作流量进行调整,其中,每个所述性能组进行所述调整后的允许操作流量与该性能组的优先级别对应。

本实施例中,处理器161执行的程序还可以包括:

根据所述存储阵列包括的至少一个硬盘域,创建至少一个性能池,其中,每个所述性能池至少包括一个所述硬盘域;

计算每个所述性能池的允许操作流量,其中,所述允许操作流量包括写操作次数、写操作带宽和读操作次数和读操作带宽中的至少一项;

关联所述至少一个性能组与所述至少一个性能池的父子关系,其中,每个所述性能池至少包括一个所述性能组。

本实施例中,在所述响应所述操作指令之后,处理器161执行的程序还可以包括:

查询所述目标性能组的当前允许操作流量,并根据所述操作指令所产生的当前流量对所述目标性能组的当前允许操作流量进行调整;

查询所述目标性能池的当前允许操作流量,并根据所述操作指令所产生的当前流量对所述目标性能池的当前允许操作流量进行调整;

查询所述目标性能子组的当前允许操作流量,并根据所述操作指令所产生的当前流量对所述目标性能子组的当前允许操作流量进行调整。

本实施例中,接收目标业务对象下发的针对存储阵列的缓存的操作指令,其中,所述存储阵列所支持的业务对象被划分为至少一个性能组,且预先为每个所述性能组计算有允许操作流量;从所述至少一个性能组中选择所述目标业务对象所属的目标性能组,并判断所述目标性能组的允许操作流量是否还存在剩余流量;若所述目标性能组的允许操作流量还存在剩余流量时,响应所述操作指令;若所述目标性能组的允许操作流量不存在剩余流量时,拒绝所述操作 指令。这样可以限制业务对象的操作流量,这样可以避免因某一业务对象过分占用缓存而造成其他业务对象的性能恶化,从而本发明实施例可以解决融合存储的性能恶化问题。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存取存储器(Random Access Memory,简称RAM)等。

以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1