具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为现有技术的一种存储系统中Lun分布示意图。如图1所示,8个竖列方框分别表示存储系统中的8个物理硬盘,4个横向方框分别表示Lun1、Lun2、Lun3和Lun4。在面对高随机IO访问、多Lun并发的大带宽IO访问等多种IO访问类型混合的情况下,会导致存储系统中物理硬盘资源冲突,致使每个Lun可能都得不到各自的性能需求。例如当Lun1、Lun2、Lun3同时要求大带宽连续IO的话,因为此时底层物理硬盘需要不断寻道来同时服务于这3个Lun的IO请求,每个Lun的性能都不会好。
因此,上述现有技术中的这种Lun的分布方式,导致存储系统中的物理硬盘资源未被充分的最大化利用。具体可以通过下述本发明实施例的技术方案,根据Lun所需要的性能参数在存储系统中动态设置Lun在每个物理硬盘上的分布,从而改变了现有技术中Lun固定分布在物理磁盘上的分布方式,本发明同时可以对已经创建的数据对象根据新的性能参数对数据对象做分布方式的动态在线的更新,使得存储系统中物理硬盘资源能够被充分的最大化利用。
本发明实施例根据创建该数据对象所需要的性能参数、该存储系统的物理硬盘的性能参数阈值以及该存储系统中已有数据对象在物理硬盘上的存储区域,在存储系统中创建数据对象。
当数据对象所需要的性能参数为高性能时,设置具有高性能需求的数据对象;当数据对象所需要的性能参数为低性能时,设置具有低性能需求的数据对象,以保证具有高性能需求的数据对象具有较高的性能,而具有低性能要求的数据对象具有较低的性能,从而保证存储系统中的物理硬盘资源能够被充分的最大化利用。
本发明实施例使创建的数据对象根据用户创建数据对象时希望达到的性能参数,以及其他数据对象在存储系统中的该物理硬盘上的分布情况,均衡的分布在存储系统中的每块物理硬盘上,在数据对象较少时,尽量避免各个数据对象跨越的物理硬盘之间互相重复,以保证各个数据对象的性能。这一点也可以体现在上述的性能参数中的最大重叠物理硬盘数量,即要求该数据对象与其他数据对象占用存储系统中的物理硬盘的最大重叠数量,即使用户通过人机接口模块输入的性能参数没有该最大重叠物理硬盘数量,存储系统在创建数据对象的时候也要尽量避免各个数据对象的重叠,以使得各个数据对象在所在的存储系统中的物理硬盘都能达到最大化利用。
详细内容可以参考下述实施例。本实施例中,数据对象跨越存储系统中的物理硬盘的数量,是数据对象在存储系统中分布的物理硬盘的数量,以下实施例中,也可以使用数据对象跨越存储系统中的物理硬盘的数量的百分比来替代数据对象在存储系统中分布的物理硬盘的数量,数据对象跨越存储系统中的物理硬盘的数量的百分比是数据对象在存储系统中分布的物理硬盘的数量占总的物理硬盘数量的比例。
图2为本发明一实施例提供的数据对象的处理方法的流程图。本实施例的数据对象的处理方法的执行主体可以为数据对象的处理装置,例如该Lun的处理装置可以为存储系统中的中央处理器(central processing unit;以下简称CPU)或者控制器等。如图1所示,本实施例的数据对象的处理方法,具体可以包括如下步骤:
100、获取用户通过存储系统的人机接口模块输入的创建数据对象所需要的性能参数;
例如T1时刻,存储系统中已经存在1个固定大小的数据对象A(A可以是存储对象中的任何一种),T2时刻,用户通过人机接口向存储系统发送指令要求创建一个新的固定大小的数据对象B,并且给出了参数“IOPS不低于1000,同时重叠度不大于4”。T3时刻,存储系统收到这条命令之后,可以执行如下动作:
步骤1、对命令进行解释,得到用户所需要要的参数,即对象名称(B)、对象大小(某固定值)、性能参数,例如,IOPS≥1000
可选的,最大重叠物理硬盘数量≤4);
101、获取存储系统中未被已有数据对象跨越的物理硬盘所对应的最大性能参数;
其中,物理硬盘的最大性能参数为物理硬盘所能承载的最大的带宽大小、最大的每秒进行读写操作的次数(Input/Output Operations Per Second;以下简称IOPS)、最大的延时大小;例如,FC/SAS盘实际最大随机IOPS为300作为物理硬盘的性能参数阈值。该步骤中仅需要获取存储系统中未被已有数据对象跨越的物理硬盘所对应的最大性能参数。
在上述步骤1之后,还可以包括如下步骤:
步骤2、对存储系统中的可用物理硬盘的类型(比如SATA/FC/SAS等)、速率(比如8Gb/s 15000转/分)以及容量(比如450GB、1TB等)信息进行统计。考量指标为:SATA盘实际最大随机IOPS为120;FC/SAS盘实际最大随机IOPS为300;
步骤3、对已有数据对象的参数进行分析,包括已有的数据对象所跨越的物理硬盘位置以及数量,以及已有的数据对象在每块其所跨越的物理硬盘上所占用容量相对于已有数据对象的总容量的数量等;从而首先获取到未被已有数据对象跨越的物理硬盘。
例如,对已有数据对象A的参数进行分析,包括已有数据对象A所跨越的物理硬盘位置以及数量,以及A在每块其所跨越的物理硬盘上所占用容量对A总容量的数量;可以获取到A未跨越的物理硬盘;
步骤4、根据上述对已有数据对象A的参数进行分析的结果,包括A所跨越的物理硬盘位置以及数量,此时,可选的,可以设定最大重叠物理硬盘数量≤4;存储系统首先找出没有被任何数据对象所跨越的物理硬盘,存储系统中剩余2块15000转/分的SAS物理硬盘没有被数据对象A所跨越,然后存储系统再判断是否这两块物理硬盘的性能可以满足数据对象B的要求,由于用户指定了IOPS参数,则存储系统默认认为数据对象B为一个高随机访问型的对象(如果用户指定了带宽参数,则存储系统默认此数据对象为高带宽吞吐量型)。
从而通过上述步骤2和步骤3,可以获取存储系统中未被已有数据对象跨越的物理硬盘所对应的最大性能参数;
本实施例中用户可以直接通过人机接口模块输入数据对象所需要的性能参数;或者该存储系统中预先设置有多个创建数据对象的模板,每一个模板都设置有对应的性能参数,当用户创建带创建数据对象时,可以选择一个模板点击确定,此时存储系统默认用户输入的数据对象所需要的性能参数即为用户选择的该模板对应的性能参数。或者用户还可以对选择的模板中的性能参数做修改然后再点击确定,此时存储系统认为该用户通过人机接口模块输入的性能参数为用户对模板的性能参数进行修改后的性能参数。上述方式仅为本实施例中获取用户通过存储系统的人机接口模块输入的数据对象所需要的性能参数的一些可选方式,实际应用中,还可以采用其他类似方式获取用户通过存储系统的人机接口模块输入的数据对象所需要的性能参数,在此不再一一列举。
102、根据数据对象所需要的性能参数和存储系统中未被已有数据对象跨越的物理硬盘所对应的最大性能参数,选定数据对象跨越的物理硬盘;
例如102具体可以包括:
(a)将数据对象所需要的性能参数和存储系统中未被已有数据对象跨越的物理硬盘所对应的最大性能参数进行比较;
(b)如果数据对象所需要的性能参数小于等于存储系统中未被已有数据对象跨越的物理硬盘所对应的最大性能参数,则直接选定未被已有数据对象跨越的物理硬盘为数据对象跨越存储系统中的物理硬盘;
(c)如果数据对象所需要的性能参数大于存储系统中未被已有数据对象跨越的物理硬盘所对应的最大性能参数,选定未被已有数据对象跨越的物理硬盘,并进一步增加选定的物理硬盘,直到选定的物理硬盘的最大性能参数达到数据对象所需要的性能参数。在上述步骤4之后,还包括如下步骤:
步骤5、为数据对象增加一块15000转/分的SAS盘,则可提供给B的性能最大理论值将为900,与目标值1000相差100,即10%比例的差异;同时存储系统会默认判断如下事实:存储系统中的大容量缓存对物理硬盘的原生性能有很大程度的提升作用,所以存储系统忽略这10%的差异,存储系统认为使用3块15000转/分的SAS盘将会满足B的要求。存储系统会优先选择相同类型的硬盘,如果存储系统中没有同类型硬盘可用,则转为选择不同类型的硬盘。本实施例中假设存储系统中同类型的物理硬盘数量足够多。
步骤6、存储系统会再选择一块剩余容量最大的15000转/分的SAS盘,或者选择原有数据对象A在本硬盘上占用空间对A总容量占比最低的15000转/分的SAS盘。
可选地,本实施例中,在上述步骤02之前还可以包括:获取数据对象所需要的最大重叠物理硬盘数量,其中,重叠是指数据对象和已有数据对象跨越相同的物理硬盘,重叠数量是指数据对象和已有数据对象跨越存储系统中的相同的一个或多个物理硬盘的数量,最大重叠物理硬盘数量为数据对象跨越存储系统中的物理硬盘与已有数据对象跨越存储系统中的物理硬盘能够重叠的最大数量。
此时对应的,上述步骤102“根据数据对象所需要的性能参数和存储系统中未被已有数据对象跨越的物理硬盘所对应的最大性能参数,选定数据对象跨越的物理硬盘”数量具体可以包括如下步骤:
(i)将数据对象所需要的性能参数和存储系统中未被已有数据对象跨越的物理硬盘所对应的最大性能参数进行比较;
(ii)如果数据对象所需要的性能参数小于等于存储系统中未被已有数据对象跨越的物理硬盘所对应的最大性能参数,则直接选定未被已有数据对象跨越的物理硬盘为数据对象跨越存储系统中的物理硬盘;如果数据对象所需要的性能参数大于存储系统中未被已有数据对象跨越的物理硬盘所对应的最大性能参数,首先选定未被已有数据对象跨越的物理硬盘作为数据对象跨越的物理硬盘;在数据对象跨越的物理硬盘的数量小于或等于数据对象所需要的最大重叠物理硬盘数量的范围内,进一步从已有数据对象跨越的物理硬盘中选定物理硬盘增加为数据对象跨越的物理硬盘,直到数据对象跨越的物理硬盘的最大性能参数达到数据对象所需要的性能参数。
例如,如上所述,最大重叠物理硬盘数量≤4;在存储系统中,根据“FC/SAS盘实际最大随机IOPS为300”这个预设的指标,计算出这两块硬盘最大可提供600的IOPS性能,由于小于用户所给出的“IOPS≥1000”这个条件,所以存储系统判断,B需要被分布到更多的硬盘。
步骤103、根据数据对象跨越的物理硬盘的剩余容量创建该数据对象;
例如在选定的物理硬盘的剩余容量中创建所需要的性能参数对应的数据对象。
例如,在上述步骤6之后,还包括如下步骤:
步骤7、最后,根据已有的数据对象所跨越的物理硬盘位置以及数量,存储系统对这些选定的物理硬盘中剩余容量进行统计,如果总剩余容量≥B的设定容量,存储系统将在每块所选中的物理硬盘上分配1/N(N=所选中的物理硬盘总数)的容量给B;如果所选中的物理硬盘中总剩余容量<B的设定容量,则存储系统会尝试再加入一块同类型的硬盘,如果同类型的硬盘已经没有剩余容量,则存储系统会尝试选择不同类型的硬盘。
数据对象跨越存储系统中的物理硬盘数量的数量越大,数据对象可获得的随机访问性能就越高,可选的,本发明实施例使创建的数据对象根据用户创建数据对象时希望达到的性能参数,以及存储系统中已有的数据对象在存储系统中的该物理硬盘上所对应的存储区域,使得数据对象跨越存储系统中的物理硬盘数量的数量较大,从而使得数据对象可以均衡的分布在存储系统中的每块物理硬盘上。
步骤8、如果在性能参数(IOPS、带宽等)和容量之间产生矛盾导致存储系统找不到符合条件的硬盘组合时,存储系统会向用户提示找不到符合条件的硬盘组合,并给出建议做法,列出各种可施行的组合供用户选择。
步骤9、用户选择对应的组合,则存储系统重新执行上述步骤,创建数据对象B;如果用户取消,则存储系统取消整个流程。
本实施例中,用户可以动态的调整数据对象跨越物理硬盘的比例,以及调整数据对象在每块物理硬盘上的分布大小,使得跨越的物理硬盘可以满足数据对象所需要的性能参数。
在本实施例中,例如,如果有5个Lun,各自承载一路高清视频编辑流业务,那么可选的,每个Lun占用20%的磁盘资源,这样可以使每个Lun都不会对其他Lun的性能产生影响,而且可以各自达到满意的带宽性能。
或者,某个Lun在每个月的前25天负载非常小,而后5天逐渐增大,直到月底达到峰值需求,那么就可以设定一个时间触发策略,当到每月25日时,将这个Lun分布到80%的磁盘上,26日分布到90%的磁盘上,然后月底则分布到全部磁盘上以满足其性能需求。当高峰期过后,再将对应的Lun重新分布到少数磁盘上进行收敛,以释放更多的资源给其他有需要的Lun使用。
例如,例如当存储系统中共有10个物理硬盘,而用户输入的性能参数中要求数据对象跨越存储系统中的物理硬盘的数量为百分之三十,可以确定该数据对象需要跨越3个物理硬盘,此时创建数据对象时,该数据对象跨越的物理硬盘包括物理硬盘1和物理硬盘2,还可以再根据存储系统中各物理硬盘的实际情况再选择一个。需要说明的是,在数据对象较少时,尽量避免各个数据对象跨越的物理硬盘之间互相重复,以保证各个数据对象的性能。这一点也可以体现在上述的性能参数中的最大重叠物理硬盘数量,即要求该数据对象与其他数据对象占用存储系统中的物理硬盘的最大重叠数量,即使用户通过人机接口模块输入的性能参数没有该最大重叠物理硬盘数量,存储系统在创建数据对象的时候也要尽量避免各个数据对象的重叠,以使得各个数据对象在所在的存储系统中的物理硬盘都能达到最大化利用。
本实施例中该数据对象为用户访问请求所对应的Lun、该Lun的地址区域、文件或者目录。
本实施例采用上述步骤100-103实现根据创建数据对象所需要的性能参数创建数据对象的技术方案;其中的步骤1-9为为了更加清楚地解释步骤100-103的具体实施方式,增加的一些可选实现方式,但是并不限制步骤100-103所限定的范围。
本实施例的数据对象的处理方法,通过采用上述技术方案,能够改变了现有技术中数据对象的分布方式均相同的缺陷,实现根据创建数据对象所需要的性能参数创建数据对象,从而使得存储系统中的物理硬盘资源能够被充分的最大化利用。
例如采用本实施例的技术方案,当数据对象所需要的性能参数为高性能时,可以设置具有高性能需求的数据对象;当数据对象所需要的性能参数为低性能时,可以设置具有低性能需求的数据对象,以保证具有高性能需求的数据对象具有较高的性能,而具有低性能要求的数据对象具有较低的性能,从而保证存储系统中的物理硬盘资源能够被充分的最大化利用。
可选地,上述实施例中的性能参数可以包括带宽大小、每秒进行读写操作的次数(Input/Output Operations Per Second;以下简称IOPS)、延时大小、数据对象跨越存储系统中的物理硬盘数量的数量以及数据对象跨越存储系统中的物理硬盘与其他数据对象跨越存储系统中的物理硬盘的最大重叠物理硬盘数量中的至少一个。这里的IOPS可以理解为存储每秒可接受多少次主机发出的访问。
需要说明的是,至于上述的性能参数为用户创建数据对象时希望达到的性能参数,但是实际应用中存储系统可能并不能达到预期的效果,例如当用户输入IOPS为10000时,这个数值存储系统不可能确定一定能够达到,而且存储系统也不能预测最后能够达到多少,所以存储系统只能先执行,最后统计一下最终达到的IOPS并向用户显示报告,也就是存储系统尽量按照用户输入的性能参数尽力而为创建数据对象。
进一步可选地,在上述实施例的基础上,还可以包括:获取用户通过人机接口模块输入的要求数据对象跨越的物理硬盘标识;例如具体也可以为获取用户通过存储系统上设置的人机接口模块输入的、用户要求设置的数据对象跨越的物理硬盘标识。例如当用户需要当前设置的数据对象中跨越物理硬盘1和物理硬盘2,可以通过人机接口模块输入物理硬盘1和物理硬盘2的标识。
此时对应的根据数据对象所需要的性能参数、存储系统中未被已有数据对象跨越的物理硬盘所对应的最大性能参数和数据对象跨越的物理硬盘标识,选定数据对象跨越的物理硬盘,其中数据对象跨越的物理硬盘包括数据对象跨越的物理硬盘标识对应的物理硬盘。详细可以参考上述实施例中的步骤102的相关实现过程,只是要求选定数据对象跨越的物理硬盘中必须包括有该数据对象跨越的物理硬盘标识对应的物理磁盘即可。
例如当存储系统中共有10个物理硬盘,而用户输入的性能参数中要求数据对象跨越存储系统中的物理硬盘的数量为百分之三十,可以确定该数据对象需要跨越3个物理硬盘,如果用户还通过人机接口模块输入物理硬盘1和物理硬盘2的标识,此时创建数据对象时,该数据对象跨越的物理硬盘包括物理硬盘1和物理硬盘2,还可以再根据存储系统中各物理硬盘的实际情况再选择一个。需要说明的是,在数据对象较少时,尽量避免各个数据对象跨越的物理硬盘之间互相重复,以保证各个数据对象的性能。这一点也可以体现在上述的性能参数中的最大重叠物理硬盘数量,即要求该数据对象与其他数据对象占用存储系统中的物理硬盘的最大重叠数量,即使用户通过人机接口模块输入的性能参数没有该最大重叠物理硬盘数量,存储系统在创建数据对象的时候也要尽量避免各个数据对象的重叠,以使得各个数据对象在所在的存储系统中的物理硬盘都能达到最大化利用。
需要说明的是,上述实施例中的数据对象可以为存储区域网络(Storagearea network;以下简称SAN)存储系统中的Lun或者Lun中的文件/目录或者主机应用程序访问该Lun的地址区域或者网络附加存储系统(NetworkAttached Storage,以下简称NAS)中的文件或者目录。
图3为本发明另一实施例提供的数据对象的处理方法的流程图。本实施例的数据对象的处理方法,在上述图2及其扩展实施例的基础上,进一步可以包括如下:
200、检测数据对象是否达到预设的更新条件;
201、当数据对象满足预设的更新条件,根据预设的更新策略更新数据对象。
本实施例中预设的更新条件可以为很多种,例如可以根据存储系统的周期性(例如按月或者按周的周期性变化)使用情况更新数据对象、或者当性能参数(如IOPS)达到预设的性能参数,或者逻辑容量达到预设容量阈值时,更新数据对象。
例如:200中检测数据对象是否达到预设的更新条件,具体可以为检测数据对象的当前时刻是否为预设时间点;对应的201具体可以为当数据对象的当前时刻为预设时间点时,将数据对象跨越存储系统中的物理硬盘数量的数量增大或者减少至第一预设值;或者将数据对象跨越存储系统中的物理硬盘数量的数量增大或者减少第二预设值。本实施例中的第一预设值合第二预设值为均可以为增大或者减少的目标值或者比例。
例如可以设置一个周期中增大的时间点,和一个减小的时间点。例如可以某个办公区的存储系统中在每周的周一早上八点钟可以将数据对象跨越存储系统中的物理硬盘的数量增大,以满足本周工作时间数据对象的性能需求。可以在每周的周五晚上八点钟可以将数据对象跨越存储系统中的物理硬盘的数量减小,以避免不必要的资源浪费。
可选地,当数据对象的当前时刻为预设时间点,201中的“根据第一预设更新策略更新数据对象”为将数据对象跨越存储系统中的物理硬盘数量的数量减少至第一预设值;或者将数据对象跨越存储系统中的物理硬盘数量的数量减少第二预设值时,还包括:
(1)确定从更新前数据对象跨越的物理硬盘中减少的物理硬盘和保留的物理硬盘;
(2)将减少的物理硬盘中的数据迁移至保留的物理硬盘中;
(3)释放减少的物理硬盘的资源。
例如更新数据对象前,该数据对象跨越了3个物理硬盘,而更新数据对象之后,该数据对象仅需要跨越2个物理硬盘,此时需要在3个物理硬盘中确定应该减少哪个物理硬盘,应该保留哪两个物理硬盘。当确定减少的硬盘和保留的物理硬盘之后,将减少的物理硬盘中该数据对象的数据迁移至保留的物理硬盘中,具体迁移中可以采用当前存储对应的Raid算法,详细可以参考现有技术,在此不再赘述。最后释放掉减少的物理硬盘的资源,以留给其他的数据对象使用,使得存储系统中的各个物理硬盘资源达到最大化的有效利用。
可选地,当将数据对象跨越存储系统中的物理硬盘数量的数量增大至第一预设值;或者将数据对象跨越存储系统中的物理硬盘数量的数量增大第二预设值时,还包括:
(a)确定数据对象更新后跨越的物理硬盘和数据对象更新后跨越的物理硬盘相对于数据对象更新前跨越的物理硬盘增加的物理硬盘;
(b)将数据对象更新前跨越的物理硬盘中的部分数据迁移至增加的物理硬盘中,使得数据对象对应的数据在更新后所跨越的物理硬盘中重新分布。
例如该数据对象更新前跨越了3个物理硬盘,更新后跨越了5个物理硬盘,更新后,可以将更新前的3个物理硬盘中该数据对性对应的部分数据迁移至更新后新增加的2个物理硬盘中,从而使得数据对象对应的数据在更新后所跨越的物理硬盘中重新分布,使得存储系统中的各个物理硬盘资源达到最大化的有效利用。
可选地200中检测数据对象是否达到预设的更新条件,具体可以为检测数据对象的性能参数阈值或者容量阈值是否达到预设阈值。对应地201中“当数据对象满足预设的更新条件,更新数据对象,具体可以包括:当数据对象的性能参数阈值或者容量阈值达到预设阈值时,将数据对象跨越存储系统中的物理硬盘的数量增大或者减少至第三预设值;或者将数据对象跨越存储系统中的物理硬盘的数量增大或者减少第四预设值。同理本实施例中的第三预设值和第四预设值可以为目标值或者比例。
本实施例中的性能参数阈值可以指的是IOPS阈值、带宽阈值、时延阈值等等,实际应用中,IOPS阈值可以设置为当前数据对象允许的最大IOPS阈值的百分之八十,或者还可以设置多档可供选择的阈值,在数据对象满足某一档的阈值条件时都可以做相应的数据对象更新操作。具体每一档IOPS阈值可以根据事情情况设置。例如当数据对象当前的IOPS达到某一高IOPS阈值时,可以将数据对象跨越存储系统中的物理硬盘的数量增大,当数据对象当前的IOPS达到某一低IOPS阈值时,可以将数据对象跨越存储系统中的物理硬盘的数量减少,具体增大或者减少多少可以根据实际情况设置。同理可以设置相应的容量阈值带宽阈值或时延阈值。
进一步可选地,对于201中“当数据对象满足预设的更新条件,根据预设的更新策略更新数据对象”,当数据对象被访问不稳定时,会造成存储系统频繁执行201,造成存储系统效率较低。为了避免存储系统频繁更新,可以预先设置一个更新周期阈值,即连续两次更新时间大于等于该更新周期阈值时,再执行201。例如具体在201之前可以包括:判断当前时刻与该数据对象上一次更新的时刻的时间差值是否大于等于更新周期阈值,当确定时间差值大于等于更新周期阈值,执行201,否则不执行201。
本实施例的数据对象的处理方法,通过检测数据对象是否达到预设的更新条件;当数据对象满足预设的更新条件,根据预设的更新策略更新数据对象。采用本实施例的技术方案,能够解决现有技术的存储系统中数据对象的分布方式是确定不变的缺陷,能够根据实际情况更新数据对象,从而可以使得存储系统中的物理硬盘资源能够被充分有效的最大化利用。
可选地在上述图1或者图2实施例的基础上,还可以包括:
(a)输出数据对象在存储系统中的物理硬盘上的分布信息给显示设备,以供显示设备显示;
(b)获取用户通过人机接口模块输入的数据对象的调整信息;其中的调整信息为用户根据数据对象在存储系统中的物理硬盘上的分布信息做出;
(c)根据数据对象的调整信息调整逻辑卷。
该数据处理装置可以连接一显示设备以向用户显示各种信息,数据对象的处理装置可以输出数据对象在存储系统中的物理硬盘上的分布信息给显示设备,供显示设备将数据对象的分布信息直观的显示给用户,以供用户根据数据对象的分布信息对数据对象的调整进行有效地干预,例如用户可以根据当前的数据对象分布信息以及下一步各个数据对象将要承载的业务类型对各个数据对象的分布信息进行调整。具体地,用户可以通过存储系统的人机接口模块输入数据对象的调整信息,然后数据对象的处理装置从人机接口模块处获取数据对象的调整信息,并根据调整信息调整数据对象,从而使得存储系统中的物理硬盘资源能够被充分有效的最大化利用。例如数据对象的调整信息可以为数据对象调整后的跨越的硬盘的标识。
现有技术中,在存储系统创建好所需要的数据对象之后,并不能对数据对象进行分布方式的动态在线变更,如想变更,则必须进行数据迁移,先创建一个新的符合性能要求的数据对象,再将原数据对象中的数据迁移到新数据对象中,然后删除原数据对象,过程非常繁琐复杂。而采用上述本发明实施例的技术方案,能够解决上述现有技术中对数据对象不能动态在线变更其分布方式的缺陷,有效地实现对数据对象的动态调整,而且可以实现在线动态调整。
还需要说明的是,对于SAN存储系统来讲,其并不能感知到其上的Lun中的文件系统信息或者应用程序所访问的Lun地址区域信息,如果要使SAN存储系统实现针对Lun中的文件或者目录或者应用程序所访问的Lun地址区域这类数据对象进行分布方式变更时,需要在挂载Lun的主机上实现对应的代理程序,该代理程序用于将用户指定的要改变分布方式的文件或者目录或者指定的应用程序所访问的Lun地址区域所对应的底层Lun的地址区域通告给SAN存储系统,从而让SAN存储系统根据所设置的参数和策略进行该数据对象的变更操作。
图4为本发明一实施例存储系统中的Lun的分布图。图5为本发明另一实施例存储系统中的Lun的分布图。如图4所示,8个竖列方框分别表示存储系统中的8个物理硬盘,Lun1、Lun2、Lun3和Lun4分别代表4个Lun。当检测Lun是否达到预设的更新条件或者用户根据当前Lun的分布信息以及下一步各个Lun的业务需求更新Lun之后,例如可以得到图5所示的Lun的分布示意图。通过更新Lun的分布情况,可以使得整个存储系统的物理硬盘资源能够被充分有效地最大化利用。图4和图5所示实施例是以数据对象为Lun为例介绍本发明实施例的技术方案。
上述实施例中的数据对象具体还可以为文件的访问地址以及应用的访问地址等各种数据对象对底层物理硬盘资源的占用比例情况中,详细可以参考下述实施例的记载。
图6为本发明一实施例提供的数据对象的处理方法的应用场景图。图7为本发明另一实施例提供的数据对象的处理方法的应用场景图。例如图6和图7中是以数据对象为应用的访问地址为例详细介绍本发明的技术方案。图6和图7中的存储系统中的各个竖列表示物理硬盘。如图6所示,如果App1-App7中App5所访问的地址区域仅仅被分布在少数几块物理硬盘上,但是App5需要非常高的随机IOPS。而App7所访问的地址区域被平均分步到所有物理硬盘上,但是App7却并不需要很高的随机IOPS。虽然整个App7所访问的地址区域都跨越在所有硬盘上,占用所有物理硬盘的资源,但是从应用程序角度看来,整个存储系统的资源根本不能得到有效地发挥。因此可以将图6中App5和App7所访问的地址区域的分布调整为图7中App5和App7所访问的地址区域的分布。
如图7所示,可以在主机端安装代理(Agent,可以通过软件来实现)来识别被用户所选择监控的应用对象,将App5所最常访问的文件的地址段或者裸设备的地址段通告给存储系统,存储系统就可以根据用户自定义的策略将这些地址段重新分布以便获取最佳和最平衡的性能。比如本实施例中用户决定要给予App5最大的随机IOPS访问性能。可以将App5所访问的地址区域平均分步到存储系统中的所有物理硬盘上。这样,从应用程序角度看来,可以使得整个存储系统的资源得到有效地发挥。
图8为本发明再一实施例提供的数据对象的处理方法的应用场景图。图9为本发明又一实施例提供的数据对象的处理方法的应用场景图。图8和图9中是以数据对象为文件的访问地址为例详细介绍本发明的技术方案。图8和图9中的存储系统中的各个竖列表示物理硬盘。如图8所示,如果File5所访问的地址区域仅仅被分布在少数几块物理硬盘上,但是File5需要非常高的随机IOPS。而File7所访问的地址区域被平均分步到所有物理硬盘上,但是File7却并不需要很高的随机IOPS。虽然整个File5所访问的地址区域都跨越在所有物理硬盘上,占用所有物理硬盘的资源,但是从应用程序角度看来,整个存储系统的资源根本不能得到有效地发挥。因此可以将图8中File5和File7所访问的地址区域调整为图9中File5和File7所访问的地址区域。
如图9,通过在主机端安装Agent(Agent,可以通过软件来实现)来识别被用户所选择监控的文件对象,将File5文件对应的址区域通告给存储系统,存储系统就可以根据用户自定义的策略将对应的址区域段重新分布以便获取最佳和最平衡的性能。比如本实施例中用户决定要给予File5最大的随机IOPS访问性能。可以将File5所访问的地址区域被平均分步到存储系统中的所有物理硬盘上。这样,从应用程序角度看来,可以使得整个存储系统的资源得到有效地发挥。
上述本发明实施例的数据对象的处理方法,能够使得存储系统中的各个物理硬盘的性能得到最大化发挥,提高投资利润(Return On Investment;以下简称ROI)。采用本发明实施例的技术方案,用户可以完全不必担心前期存储规划的问题,即便是规划失误,也无需停机重新部署。本实施例技术方案,可以动态调整数据对象、以及动态调整文件所访问地址区域和应用所访问地址区域等各种数据对象对底层物理硬盘资源的占用比例,从最低1块物理硬盘到最高全局所有物理硬盘,从而使得存储系统中的物理硬盘资源能够被充分有效的最大化利用。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图10为本发明一实施例提供的数据对象的处理装置的结构示意图。如图1所示,本实施例的数据对象的处置装置,具体可以包括:获取模块10、选定模块11和创建模块12。
其中获取模块10用于获取用户通过存储系统的人机接口模块输入的创建数据对象所需要的性能参数。获取模块10还用于获取存储系统中未被已有数据对象跨越的物理硬盘所对应的最大性能参数。选定模块11与获取模块10连接,选定模块11用于根据获取模块10获取的数据对象所需要的性能参数和存储系统中未被已有数据对象跨越的物理硬盘所对应的最大性能参数,选定数据对象跨越的物理硬盘。创建模块12与选定模块11连接,创建模块12用于根据选定模块11选定的数据对象跨越的物理硬盘的剩余容量创建数据对象;其中,该数据对象为用户访问请求所对应的Lun、该Lun的地址区域、文件或者目录。
本实施例的数据对象的处理装置可以设置在存储系统中,例如该数据对象处理装置可以为存储系统中的CPU或者控制器。
本实施例的数据对象的处理装置,通过采用上述模块实现数据对象的处理过程与上述相关方法实施例的实现机制相同,详细可以参考上述相关实施例的记载,在此不在赘述。
本实施例的数据对象的处理装置,通过采用上述数量的技术方案,能够改变了现有技术中数据对象的分布方式均相同的缺陷,实现根据数据对象所需要的性能参数创建数据对象,从而使得存储系统中的物理硬盘资源能够被充分的最大化利用。
例如采用本实施例的技术方案,当数据对象所需要的性能参数为高性能时,可以设置具有高性能需求的数据对象;当数据对象所需要的性能参数为低性能时,可以设置具有低性能需求的数据对象,以保证具有高性能需求的数据对象具有较高的性能,而具有低性能要求的数据对象具有较低的性能,从而保证存储系统中的物理硬盘资源能够被充分的最大化利用。
图11为本发明另一实施例的提供的数据对象的处理装置的结构示意图。如图11所示,本实施例在上述图10所示实施例的基础上,还可以包括如下:
本实施例的数据对象的处理装置中,选定模块11具体可以包括:比较单元111和选定单元112,比较单元111与获取模块10连接,用于将获取模块10获取的数据对象所需要的性能参数和存储系统中未被已有数据对象跨越的物理硬盘所对应的最大性能参数进行比较。选定单元112与比较单元111连接,选定单元112用于根据比较单元111比较的结果,如果数据对象所需要的性能参数小于等于存储系统中未被已有数据对象跨越的物理硬盘所对应的最大性能参数,则直接选定未被已有数据对象跨越的物理硬盘为数据对象跨越存储系统中的物理硬盘;如果数据对象所需要的性能参数大于存储系统中未被已有数据对象跨越的物理硬盘所对应的最大性能参数,选定未被已有数据对象跨越的物理硬盘,并进一步增加选定的物理硬盘,直到选定的物理硬盘的最大性能参数达到数据对象所需要的性能参数。此时对应地创建模块12与选定单元112连接,创建模块12用于根据选定单元112选定的数据对象跨越的物理硬盘的剩余容量创建数据对象。
可选地,本实施例的数据对象的处理装置中,当获取模块10还用于获取数据对象所需要的最大重叠物理硬盘数量,最大重叠物理硬盘数量为数据对象跨越存储系统中的物理硬盘与已有数据对象跨越存储系统中的物理硬盘能够重叠的最大数量。此时对应的选定模块11中仍包括比较单元111和选定单元112。
其中比较单元111与获取模块10连接,比较单元111用于将获取模块10获取的数据对象所需要的性能参数和存储系统中未被已有数据对象跨越的物理硬盘所对应的最大性能参数进行比较。选定单元112与比较单元111连接,选定单元112用于根据比较单元111比较的结果,如果数据对象所需要的性能参数小于等于存储系统中未被已有数据对象跨越的物理硬盘所对应的最大性能参数,则直接选定未被已有数据对象跨越的物理硬盘为数据对象跨越存储系统中的物理硬盘;如果数据对象所需要的性能参数大于存储系统中未被已有数据对象跨越的物理硬盘所对应的最大性能参数,首先选定未被已有数据对象跨越的物理硬盘作为数据对象跨越的物理硬盘;在数据对象跨越的物理硬盘的数量小于或等于数据对象所需要的最大重叠物理硬盘数量的范围内,进一步从已有数据对象跨越的物理硬盘中选定物理硬盘增加为数据对象跨越的物理硬盘,直到数据对象跨越的物理硬盘的最大性能参数达到数据对象所需要的性能参数。此时对应地创建模块12与选定单元112连接,创建模块12用于根据选定单元112选定的数据对象跨越的物理硬盘的剩余容量创建数据对象。
可选地,本实施例的数据对象的处理装置中,获取模块10还用于获取用户通过人机接口模块输入的要求数据对象跨越的物理硬盘标识;选定模块11还用于根据获取模块10获取的数据对象所需要的性能参数、存储系统中未被已有数据对象跨越的物理硬盘所对应的最大性能参数和数据对象跨越的物理硬盘标识,选定数据对象跨越的物理硬盘,其中数据对象跨越的物理硬盘包括数据对象跨越的物理硬盘标识对应的物理硬盘。其具体实现方式也可以参考上述选定模块通过比较单元111与获取模块10来实现的实现机制。
可选地,本实施例的数据对象的处理装置中,还可以包括:检测模块13和更新模块14。其中检测模块13与创建模块12连接,检测模块13用于检测创建模块12创建的数据对象是否达到预设的更新条件;更新模块14与检测模块13连接,更新模块14用于当检测模块13检测的数据对象满足预设的更新条件,根据预设的更新策略更新数据对象。
可选地,本实施例的数据对象的处理装置中,检测模块13具体可以用于检测数据对象的当前时刻是否为预设时间点;更新模块14具体用于当检测模块13检测的数据对象的当前时刻为预设时间点时,将数据对象跨越存储系统中的物理硬盘数量的数量增大或者减少至第一预设值,或者将数据对象跨越存储系统中的物理硬盘数量的数量增大或者减少第二预设值。
进一步可选地,本实施例数据对象的处理装置中,还包括确定模块15、迁移模块16和释放模块17。确定模块15与更新模块14连接,用于当数据对象的当前时刻为预设时间点,更新模块14为当将数据对象跨越存储系统中的物理硬盘数量的数量减少至第一预设值,或者将数据对象跨越存储系统中的物理硬盘数量的数量减少第二预设值时,确定从数据对象跨越的物理硬盘中减少的物理硬盘和保留的物理硬盘。迁移模块16与确定模块15连接,迁移模块16用于将确定模块15确定的减少的物理硬盘中的属于数据对象的数据迁移至确定模块15保留的物理硬盘中。释放模块17与迁移模块16连接,释放模块17用于在迁移模块16迁移完数据之后,释放减少的物理硬盘的资源,以留给其余数据对象使用。
可选地,本实施例的数据对象的处理装置中的确定模块15还用于当将数据对象跨越存储系统中的物理硬盘数量的数量增大至第一预设值;或者将数据对象跨越存储系统中的物理硬盘数量的数量增大第二预设值时,确定数据对象更新后跨越的物理硬盘和数据对象更新后跨越的物理硬盘相对于数据对象更新前跨越的物理硬盘增加的物理硬盘;迁移模块16还用于将数据对象更新前跨越的物理硬盘中的部分数据迁移至增加的物理硬盘中,使得数据对象对应的数据在更新后所跨越的物理硬盘中重新分布。
可选地,本实施例的数据对象的处理装置中的检测模块13还可以具体用于检测数据对象的性能参数阈值或者容量阈值是否达到预设阈值。更新模块14还可以具体用于当检测模块13检测到数据对象的性能参数阈值或者容量阈值达到预设阈值时,将数据对象跨越存储系统中的物理硬盘的数量增大至第三预设值;或者将数据对象跨越存储系统中的物理硬盘的数量增大第四预设值。本实施例中的性能参数阈值包括带宽阈值、IOPS的阈值和延时阈值中的至少一个。容量阈值是数据对象跨越存储系统中的物理硬盘的数量所对应的预设容量阈值。
可选地,本实施例的数据对象的处理装置中,还可以包括:输出模块18和调整模块19。其中该输出模块18可以与创建模块12或者更新模块14连接(图11中是以输出模块18分别与创建模块12和更新模块14连接为例)。输出模块18可以用于输出创建模块12创建的或者更新模块14更新后的数据对象在存储系统中的物理硬盘上的分布信息给显示设备,以供显示设备向用户显示。获取模块10还用于获取用户通过人机接口模块输入的数据对象的调整信息;其中的调整信息为用户根据显示的数据对象在存储系统中的物理硬盘上的分布信息做出。调整模块19与获取模块10连接,调整模块19用于根据获取模块10获取的数据对象的调整信息调整数据对象。
可选地,本实施例的数据对象的处理装置中,还可以包括判断模块20,该判断模块20与检测模块13连接,该判断模块20用于在检测模块13检测到数据对象达到预设的更新条件时,判断当前时刻与数据对象上一次更新的时刻的时间差值是否大于等于更新周期阈值,并确定时间差值大于等于更新周期阈值时,再触发更新模块14按照上述方式对数据对象进行更新。因此该判断模块20还与更新模块14连接。
需要说明的是,上述实施例中的数据对象可以为SAN存储系统中的Lun或者Lun中的文件/目录或者主机应用程序访问该Lun的地址区域或者NAS系统中的文件或者目录。
图11所示实施例是以包括上述所有可选实施例的技术方案为例描述本发明的技术方案。实际引用中,上述所有可选实施例可以采用任意可结合的方式组合本发明的可选实施例,详细在此不再一一赘述。
本实施例的数据对象的处理装置,通过采用上述模块实现数据对象的处理过程与上述相关方法实施例的实现机制相同,详细可以参考上述相关实施例的记载,在此不在赘述。
本实施例的数据对象的处理装置,通过采用上述模块能够检测数据对象是否达到预设的更新条件;当数据对象满足预设的更新条件,根据预设的更新策略更新数据对象。采用本实施例的技术方案,能够解决现有技术的存储系统中数据对象的分布方式是确定不变的缺陷,能够根据实际情况更新数据对象,从而可以使得存储系统中的物理硬盘资源能够被充分有效的最大化利用。
本发明中所涉及的对数据对象进行处理的思想不仅可以用于外部SAN或者NAS存储系统,同样也可用于主机端的本地或者分布式文件系统中,比如可以对特定的文件实现特定方式的分布并且根据性能需求来动态在线的改变分布方式以满足性能需求。
对于由多个子存储系统组成的分布式多节点存储系统来讲,本发明中所述的数据对象可能会在其中一个或者多个子系统中分布,而本发明中所涉及的对数据对象进行分布方式改变的思想不仅可以控制数据对象在同一个子系统内硬盘上的跨越硬盘数量以及跨越重叠方式,还可以控制数据对象在一个分布式存储系统中的多个子系统之间跨越子系统数量以及跨越重叠方式,包括初始定义以及后期动态在线的变更等操作。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到至少两个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。