具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的存储系统服务质量控制方法、装置和系统,是用于SAN存储系统的;为使得以下对本发明实施例的存储设备服务质量控制方法说明更加清楚,首先对本发明所应用的系统做简单介绍。图1为本发明存储设备服务质量控制方法实施例所应用的系统结构图,如图1所示,通过主机和存储设备之间的通信实现对数据的访问,该存储设备例如为磁盘阵列。其中,主机操作系统中包含有文件系统,该文件系统用于对主机中的文件进行组织管理,这些文件所对应的数据实际是存储在存储设备中的,文件系统的作用是统一管理文件和目录,及其在存储设备中的存储地址映射关系;例如,主机操作系统下某应用程序想要访问文件A,则文件系统可以根据用户的访问请求查询到文件A在存储设备的存储地址,再向存储设备发送I/O请求,请求中携带该地址,去获取文件A的数据。在存储设备中,通常包括多个LUN,主机中的应用程序、文件等的数据存储在各个LUN中。图1中的分发器是用于将主机发送的I/O请求分配给对应的LUN去处理。
在此基础上,下面对本发明实施例的技术方案进行说明。
实施例一
图2为本发明存储设备服务质量控制方法一实施例的流程示意图,本实施例的存储设备服务质量控制方法可以是主机所执行。如图2所示,该方法可以包括:
201、主机获取预设的数据对象,并根据预设的数据对象,获取所述数据对象在存储设备中对应的存储地址;
其中,所述的预设的数据对象可以是在主机访问存储设备之前,用户在主机侧配置的,也可以是用户在存储设备侧配置后,由存储设备发送至主机的。所述的数据对象指的是例如某个应用程序所访问的任何地址区域、或者某个文件/目录等,可以根据用户的需求具体设置;或者,用户也可以不指定具体的应用程序或文件,而只是设置为热点数据对象(例如热点文件)即可,由主机去分析得到哪个是热点数据对象,该热点数据对象指的是访问频率比较高的对象,这种情况下,主机可以预先设置一个访问频率阈值(例如为访问次数/天),例如若某个文件访问较多,达到该阈值,则可以确定该文件为热点文件。
其中,文件/目录数据对象在存储设备中对应的存储地址例如可以从主机的文件系统获取,文件系统中通常保存有该主机上的所有文件等数据对象的组织目录,以及该数据对象在存储设备中对应的存储地址。例如,文件A存储在存储设备的LUN2中的地址空间a~b中;则主机可以查询该文件系统的记录就可以得到用户所选择的数据对象的存储地址。而应用程序所访问的任意地址,则可以使用单独的监控程序来持续监控对应的应用程序进程所发起的针对底层的任意IO访问的地址来获得,这些IO的目标可能是文件系统下的某个或者某些文件或目录,也可以是裸设备地址。
202、主机将所述存储地址发送至存储设备,以使得所述存储设备对所述存储地址的访问进行服务质量控制。
由于SAN存储系统所能感知的最小对象为LUN,而且存储系统无法感知到LUN内的文件系统组织,所以无法感知例如单个文件在LUN上对应的地址段;则如果要对该文件做Qos控制,本发明实施例通过主机端识别数据对象的地址信息后通知给存储系统,以使得存储系统感知到对应的地址段。
其中,在主机将201中获取的数据对象的存储地址发送至存储设备后,存储设备可以仅针对该存储地址进行Qos控制即可。
例如,用户选择的数据对象是文件A,文件A的数据是存储在LUN2中的,该LUN2中存放有多个文件,文件A的数据只占用了LUN2的一部分地址空间。主机获取到该文件A对应的存储地址为LUN2中的地址空间a~b,则存储设备可以仅针对该地址空间a~b进行Qos控制,即只需要向地址空间a~b分配特定的存储系统的系统资源,而不需要如现有技术那样对整个LUN2中的所有地址都进行Qos控制,从而节约了存储系统的系统资源,存储系统就可以将其余系统资源分配给其他LUN,提高其他LUN上数据访问的服务质量。
本实施例的存储设备服务质量控制方法,通过获取数据对象在存储设备中对应的存储地址,可以使得存储设备仅对该存储地址的访问进行Qos控制,而不需要如现有技术那样只能整个LUN进行控制,解决了Qos控制方式存在的资源浪费及服务质量较低的问题,节约了存储系统的系统资源,并提高了存储系统的服务质量。
实施例二
图3为本发明存储设备服务质量控制方法另一实施例的流程示意图,本实施例的存储设备服务质量控制方法可以是存储设备所执行。如图3所示,该方法可以包括:
301、存储设备接收主机发送的预设的数据对象对应的存储地址;
其中,主机获取数据对象对应的存储地址的过程可以参见图2所示的实施例所述,不再赘述。例如,用户选择的数据对象是文件A,文件A的数据是存储在LUN2中的,该LUN2中存放有多个文件,文件A的数据只占用了LUN2的一部分地址空间。主机获取到该文件A对应的存储地址为LUN2中的地址空间a~b,则将该存储地址发送至存储设备。
302、存储设备对所述存储地址的访问进行服务质量控制。
其中,存储设备在301中接收到所述的存储地址后,将仅针对该存储地址进行Qos控制,即只需要向地址空间a~b分配存储系统的系统资源,而不需要如现有技术那样对整个LUN2中的所有地址都进行Qos控制,从而节约了存储系统的系统资源,存储系统就可以将其余系统资源分配给其他LUN,提高其他LUN上数据访问的服务质量。
本实施例的存储设备服务质量控制方法,通过接收数据对象在存储设备中对应的存储地址,并针对该存储地址的访问进行Qos控制,而不需要如现有技术那样只能整个LUN进行控制,解决了Qos控制方式存在的资源浪费及服务质量较低的问题,节约了存储系统的系统资源,并提高了存储系统的服务质量。
实施例三
图4为本发明存储设备服务质量控制方法另一实施例的流程示意图,本实施例是对主机和存储设备通信共同完成对数据访问的Qos控制的流程进行详细描述。如图4所示,该方法可以包括:
401、主机获取预设的数据对象;
其中,主机中具体执行本实施例方法的可以是第一控制模块(参见图1所示),该第一控制模块是相对于现有技术在主机中增加的一个功能模块,通过增加该模块使得主机能够执行本实施例所述的方法。用户可以根据自身需求,手动的或者根据预先设定的策略自动的启动第一控制模块执行本实施例的Qos控制方法。
本步骤中,主机可以接收用户的配置参数,该配置参数包括用户所选择的需要进行Qos控制的数据对象。该数据对象包括但不限于:某个LUN、主机中的某个应用程序、某个文件/目录等,例如,用户需要对主机中的文件A的访问进行性能调节,则可以指定该文件A为需要进行Qos控制的数据对象。
此外,用户也不可以不具体指定应用程序或者文件,而是直接选择热点数据对象(例如“热点文件”)。例如,在实际使用中,可能用户对多个文件都有使用,但是其中只有一部分文件是使用更为频繁的,但是用户暂时无法确定哪个文件是最频繁的,则此时用户可以设置为需要做Qos控制的数据对象为“热点文件”即可,后续的步骤中可以由主机自身去分析哪个文件是热点文件。提高对热点数据对象访问的服务质量Qos,是提高存储设备整体服务质量的重要因素。
进一步的,在文件/目录,应用,热点数据这三个对象之外,主机端也可以选择对“文件系统元数据”进行Qos控制,该文件系统元数据中记录了文件系统中的某个文件存放在存储设备的某段地址上,该元数据也是存放在存储设备端,主机端通常将元数据对应的地址通知存储设备,由存储设备将元数据从该地址读出后给文件系统,文件系统再通过该元数据获取具体文件的对应的存储地址,通知存储设备对文件地址执行读写。本实施例中,主机端可以解析文件系统中元数据所对应的底层地址,并在将元数据对应的地址通知存储设备的同时,告知存储设备该地址对应的数据是元数据,并且指示存储设备对元数据的读写进行最高级别的Qos控制例如设置高优先级;相应的,上述对元数据读写的Qos控制可以在主机端由用户选择设定,即对元数据的地址做精细化Qos控制。通过对文件系统元数据的访问进行Qos控制,可以大大提高系统查询地址等处理效率。
进一步的,本步骤中,主机在获取预设的数据对象之外,还可以获取用户预设配置的与所选择的数据对象对应的QoS控制策略。所述的QoS控制策略例如可以包括:对象的优先级,各个对象之间可以有不同的优先级,对高优先级对象的访问在存储设备侧可以进行优先处理;对象被触发QoS的时间段,可以配置多个时间段,每个时间段执行不同的QoS策略;对象在各个QoS时间段内的性能值,该性能例如包括每秒进行读写(I/O)操作的次数(Input/Output Operations Per Second,简称:IOPS)、带宽、时延等;也可以设定在特定的性能需求(例如,IOPS、或者带宽)阀值达到时触发QoS。
可选的,本实施例中所述的用户配置数据对象、QoS控制策略也可以在存储设备侧进行,存储设备侧在接收用户配置的上述信息后,可以将该信息发送至主机。例如,存储设备可以通知主机用户所选择的数据对象。
402、主机获取所述数据对象在存储设备中对应的存储地址;
在401中主机获取用户所选择的数据对象后,本步骤将识别该数据对象在存储设备中对应的存储地址,以使得后续存储设备可以针对该地址进行精细化的QoS控制。
例如,若预设的数据对象为应用程序、或者文件,则主机将监控指定的应用程序所访问的任何底层地址段并做统计和分类规整从而获得可用的对应应用程序所访问的底层地址段,或者查询文件系统以获取所述预设的数据对象在存储设备中对应的存储地址。例如,主机通过查询该文件系统可以得到,文件A存储在存储设备的LUN2中的地址空间a~b中。
例如,若预设的策略为“监控热点文件”,则主机需要首先分析哪个文件是热点文件,再去获取该热点文件对应的存储地址。具体的,主机可以预先设置一个访问频率阈值(例如为访问次数/天),并监控文件系统中的多个文件的访问情况,获取访问频率达到预设值的文件作为热点文件。然后,主机再查询文件系统得到该热点文件所对应的在存储设备中的存储地址。
与现有技术相比,现有技术中用户在配置存储设备的QoS控制策略时,是以LUN为控制最小单元的,用户只能知道其所想要进行QoS控制的数据对象例如某个文件是存储在哪个LUN上的,而无法得知该文件在LUN上的具体的存储地址,所以只能针对整个LUN进行QoS控制;而本实施例中,通过在主机中增设第一控制模块,使得主机可以根据用户所选择的数据对象,获取得到该对象在存储设备的具体的存储地址,或者获取到热点数据对应的热点存储地址,从而为后续仅针对该存储地址进行QoS控制得到基础,有利于存储设备系统资源的节约和有效利用。
进一步的,在实际的使用过程中,数据对象的存储属性有可能发生变化,该存储属性包括数据对象所包括的数据数量、数据位置等;例如,应用程序所访问的底层数据地址区域可能发生变化(可以称为数据位置的变化),或者对应文件的大小(可以称为数据数量)发生变化。上述的数据对象变化必然会导致其在存储设备中的存储地址发生变更,则此时,主机需要获取变化后的存储地址并通知存储设备,以便存储设备及时更改所控制的地址,更加准确的对数据对象进行QoS控制。
具体的,主机可以监控例如应用程序在每次访问时所访问的文件列表、裸设备地址区域或者文件大小是否发生变化、是否进行了修改等。在应用程序或者文件变化时,其变化情况通常也会被文件系统所记录和保存;例如,文件A在10点5分被修改,大小由原来的1M增加到目前的1G,存储地址由原来的LUN2中的地址空间a~b扩展到目前的地址空间a~c等,这些文件系统都会保存。主机可以监控这些数据对象的变化,并在对象发生变化时及时获取最新的存储地址并通知(但不一定是实时、同步的通知)存储设备。同理,对于热点文件的监控也是如此,例如,原来的热点文件是文件A,但是最近一段时间文件B的访问频率超过了文件A,则文件B可以作为最新的热点文件,主机通知存储设备需要控制的最新控制地址即文件B的存储地址。其中,为减小对存储设备的性能影响,保证存储设备的可用性,在监控数据对象变化方面,主机一般不将这些变化实时的通告给外部存储系统,以避免增加存储设备负担;可以使用定期监测的方式。
进一步的,若401中主机在获取预设的数据对象之外,还获取了预设的与数据对象对应的QoS控制策略,则主机在获取上述数据对象的存储地址之后,还需要根据所述存储地址以及所述QoS控制策略,得到QoS控制指令;若401中主机仅仅获取了预设的数据对象,QoS控制策略是在存储设备侧配置,则根据存储地址以及QoS控制策略得到QoS控制指令的过程是在存储设备侧执行。下面以主机侧执行上述QoS控制指令的获取过程为例说明。
具体的,例如,用户选择的数据对象为文件A,预设的QoS控制策略包括:“文件A的优先级为高”、“在10点~15点执行第一QoS策略,在16点~18点执行第二QoS策略”、“第一QoS策略中的IOPS为30,第二QoS策略中的IOPS为4000”;则主机根据上述对象及控制策略,查看目前的时间是14点,得知应该执行第一QoS策略,则主机可以得到如下的QoS控制指令“文件A的优先级为高,执行第一QoS策略,IOPS为30”。以上只是举例说明,具体实施中QoS控制策略和指令的内容和生成方式可以根据实际需要进行变更。
403、主机将数据对象的存储地址发送至存储设备;
其中,主机可以通过带内或带外方式发送到存储设备;如果402中主机侧生成了QoS控制指令,则一并将存储地址和QoS控制指令均发送至存储设备,以使得所述存储设备根据所述服务质量控制指令,对所述存储地址的访问进行服务质量控制。例如,主机发送“LUN2中的地址空间a~b,优先级为高,IOPS为30”。
404、存储设备根据接收到的存储地址,对该地址进行QoS控制。
其中,存储设备中具体执行本实施例方法的可以是第二控制模块(参见图1所示),该第二控制模块可以是对存储设备侧原有的控制模块改进后的功能模块,例如为磁盘阵列的阵列控制器。
存储设备在接收到主机发送的存储地址后,将对该存储地址的访问进行QoS控制,即,当存储设备再收到针对该存储地址的I/O请求时,将为该I/O的处理分配对应上述QoS控制的系统资源,调整例如CPU、I/O优先级、高速缓冲存储器(CACHE)资源、队列深度、队列数量、并发大小等参数,具体的调整方法可以采用本领域常用的方法,在此不做限制。所述的QoS控制例如可以是根据存储设备接收的主机发送的服务质量控制指令所进行。
此外,存储系统一般还监控对象访问性能的情况,以对资源的资源方向提供依据。例如,存储设备所接收到的存储地址以及QoS控制指令为“LUN2中的地址空间a~b,优先级为高,IOPS为3000”,在根据该指令对所述存储地址进行QoS控制的过程中,监控到该地址对应的访问目前的IOPS为2300,即对象访问性能还尚未达到QoS控制指令中所设定的目标,则存储设备将继续调整为该地址对应访问所分配的系统资源,例如增加其CPU的占用比例,直至达到预设性能目标IOPS为3000次。但是为这个对象所分配的资源应当有个阀值,而不是无限分配。
本实施例的存储设备服务质量控制方法,通过获取数据对象在存储设备中对应的存储地址,可以使得存储设备仅对该存储地址的访问进行Qos控制,而不需要如现有技术那样只能整个LUN进行控制,解决了Qos控制方式存在的资源浪费及服务质量较低的问题,节约了存储系统的系统资源,并提高了存储系统的服务质量,更加能准确满足用户需求。
实施例四
图5为本发明主机实施例的结构示意图,该主机可以执行本发明任意实施例的存储设备服务质量控制方法,本实施例只是对该主机的结构做简单描述,其具体的工作原理可以结合参见本发明方法实施例所述。
如图5所示,该主机可以包括:地址识别单元51、地址发送单元52。其中,地址识别单元51,用于获取预设的数据对象,并根据预设的数据对象,获取所述数据对象在存储设备中对应的存储地址,所述数据对象包括应用程序或者文件;所述获取所述数据对象在存储设备中对应的存储地址包括:通过查询文件系统,获取所述文件系统中存储的所述数据对象在存储设备中对应的存储地址;地址发送单元52,用于将所述存储地址发送至存储设备,以使得所述存储设备对所述存储地址的访问进行服务质量控制。
进一步的,该主机还可以包括对象分析单元53,用于监控所述文件系统中的多个数据对象的访问,并获取访问频率达到预设值的数据对象作为热点数据对象;相应的,地址识别单元51,具体用于获取所述热点数据对象在存储设备中对应的存储地址。
进一步的,地址识别单元51,还用于在所述数据对象的存储属性发生变化时,获取所述数据对象在存储设备中对应的变化后的存储地址,并发送给所述存储设备;所述存储属性包括所述数据对象所包括的数据数量、或者数据位置。
进一步的,该主机还可以包括:策略配置单元54、指令生成单元55。其中,策略配置单元54,用于获取预设的与数据对象对应的服务质量控制策略;指令生成单元55,用于根据所述存储地址以及所述服务质量控制策略,得到服务质量控制指令,并将所述服务质量控制指令发送至存储设备,以使得所述存储设备根据所述服务质量控制指令,对所述存储地址的访问进行服务质量控制。
本实施例的主机,通过设置地址识别单元和地址发送单元等,获取数据对象在存储设备中对应的存储地址,可以使得存储设备仅对该存储地址的访问进行Qos控制,而不需要如现有技术那样只能整个LUN进行控制,解决了Qos控制方式存在的资源浪费及服务质量较低的问题,节约了存储系统的系统资源,并提高了存储系统的服务质量,更加能准确满足用户需求。
实施例五
图6为本发明存储设备实施例的结构示意图,该存储设备可以执行本发明任意实施例的存储设备服务质量控制方法,本实施例只是对该存储设备的结构做简单描述,其具体的工作原理可以结合参见本发明方法实施例所述。
如图6所示,该存储设备可以包括:地址接收单元61、服务控制单元62。其中,地址接收单元61,用于接收主机发送的预设的数据对象对应的存储地址;服务控制单元62,用于对所述存储地址的访问进行服务质量控制。
进一步的,该存储设备还包括指令接收单元63,用于接收主机发送的服务质量控制指令,所述服务质量控制指令是所述主机根据所述存储地址以及预设的服务质量控制策略得到;相应的,服务控制单元62,具体用于根据所述服务质量控制指令,对所述存储地址的访问进行服务质量控制。
本实施例的存储设备,通过设置地址接收单元和服务控制单元等,接收数据对象在存储设备中对应的存储地址,可以使得存储设备仅对该存储地址的访问进行Qos控制,而不需要如现有技术那样只能整个LUN进行控制,解决了Qos控制方式存在的资源浪费及服务质量较低的问题,节约了存储系统的系统资源,并提高了存储系统的服务质量,更加能准确满足用户需求。
实施例六
图7为本发明存储系统服务质量控制系统实施例的结构示意图,该控制系统可以执行本发明任意实施例的存储设备服务质量控制方法,本实施例只是对该系统的结构做简单描述,其具体的工作原理可以结合参见本发明方法实施例所述。
如图7所示,该存储系统服务质量控制系统可以包括主机71、存储设备72;其中,主机71,用于获取预设的数据对象,并根据预设的数据对象,获取所述数据对象在存储设备中对应的存储地址,将所述存储地址发送至存储设备;所述数据对象包括应用程序或者文件;所述获取所述数据对象在存储设备中对应的存储地址包括:通过查询文件系统,获取所述文件系统中存储的所述数据对象在存储设备中对应的存储地址;存储设备72,用于对所述存储地址的访问进行服务质量控制。
进一步的,所述主机71,还用于向所述存储设备发送与所述数据对象对应的服务质量控制指令,所述服务质量控制指令是所述主机根据所述存储地址以及预设的与所述数据对象对应的服务质量控制策略得到;相应的,所述存储设备72,还用于根据所述服务质量控制指令,对所述存储地址的访问进行服务质量控制。
本实施例的存储系统服务质量控制系统,通过主机获取数据对象在存储设备中对应的存储地址,并且存储设备仅对该存储地址的访问进行Qos控制,而不需要如现有技术那样只能整个LUN进行控制,解决了Qos控制方式存在的资源浪费及服务质量较低的问题,节约了存储系统的系统资源,并提高了存储系统的服务质量,更加能准确满足用户需求。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。