分配存储空间的方法、装置和控制器与流程

文档序号:15215666发布日期:2018-08-21 16:49阅读:285来源:国知局

本发明涉及计算机领域,尤其涉及计算机领域中一种分配存储空间的方法、装置和控制器。



背景技术:

目前,很多企业的数据中心都是采用大型存储产品来进行数据存储,并且,这些大型存储产品采用的典型模式是存储区域网络(Storage Area Network,简称为“SAN”)。SAN是一种通过网络方式连接存储阵列和主机的存储网络,当用户有存取需求时,数据可以通过该存储网络在主机和存储阵列之间高速传输。

存储阵列或存储系统可以由控制器和磁盘系统构成,用于提供存储接入、数据存储、备份、快照等功能。存储阵列或存储系统以逻辑单元(Logical Unit,简称为“LU”)为逻辑存储单元进行数据存储,习惯上LU也可以称为逻辑单元号LUN(Logical Unit Number,简称为“LUN”)。精简逻辑单元号(Thin Logical Unit Number,简称为“Thin LUN”)属于LUN的一种,其特点在于它的硬盘空间分配是写时分配的。所谓“写时分配”是指在创建一个指定容量的Thin LUN时,只是预分配一个虚拟的容量,而并没有实际的物理硬盘空间,在主机实际写入数据时才分配物理硬盘空间给这个Thin LUN。这种分配技术的好处是我们可以轻易地创建出容量超出物理硬盘空间的Thin LUN,而无须为将来可能达到的数据量提前“买单”,从而可以节省存储空间。

目前,对创建的Thin LUN分配硬盘空间的技术方案是,主机的业务数据先写入存储阵列或存储系统的控制器的缓存,该缓存是存储阵列或存储系统从其内存中申请的空间,用以降低主机写的时延。等到该缓存的空闲空间比较紧张时,控制器才触发硬盘空间的分配。

因此,Thin LUN的特点是可以创建大容量的LUN,并且该LUN的容量并不需要在创建时实际分配出来。由于Thin LUN的空间都是写时分配的,那么有可能在很长的一段时间内Thin LUN都没有被写满,但主机新缓存的业务数据都需要分配硬盘空间。

由于存储系统缓存业务数据时,并不触发这些数据分配物理硬盘上的空间,而只有等到缓存的空闲空间紧张时,才分配硬盘空间将缓存中的业务数据写入分配的物理硬盘中,从而大量的业务数据都集中在缓存的空闲空间紧张时分配硬盘空间。这种硬盘分配方法势必会造成对系统各种资源的争抢,从而会降低存储系统的效率并严重影响存储系统的性能。



技术实现要素:

本发明实施例提供了一种分配存储空间的方法、装置和控制器,能够避免分配存储空间时对存储系统资源的争抢,并能够提高存储系统的效率和性能。

第一方面,提供了一种分配存储空间的方法,该方法包括:接收主机发送的精简逻辑单元号的业务数据;将该业务数据存储在存储系统的缓存中;周期性地确定该缓存中是否存在没有分配存储空间的业务数据;在确定该缓存中存在没有分配存储空间的业务数据时,为该没有分配存储空间的业务数据分配存储空间。

结合第一方面,在第一方面的第一种可能的实现方式中,该周期性地确定该缓存中是否存在没有分配存储空间的业务数据,包括:设置具有周期性的定时时长的定时器;在该定时器到达该定时时长时,确定该缓存中是否存在没有分配存储空间的业务数据。

结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,该在该定时器到达该定时时长时,确定该缓存中是否存在没有分配存储空间的业务数据,包括:在该定时器到达该定时时长时,确定当前是否正在分配存储空间;在确定当前没有分配存储空间时,确定该缓存中是否存在没有分配存储空间的业务数据。

结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,该在该定时器到达该定时时长时,确定该缓存中是否存在没有分配存储空间的业务数据,包括:在确定当前正在分配存储空间时,在该定时器到达下一定时时长时,确定该缓存中是否存在没有分配存储空间的业务数据。

结合第一方面或第一方面的第一种至第三种可能的实现方式中的任一种可能的实现方式,在第一方面的第四种可能的实现方式中,该周期性地确定该缓存中是否存在没有分配存储空间的业务数据,包括:确定该缓存中的业务数据的位置信息;根据该存储系统的元数据,周期性地确定该位置信息对应的存储空间是否被占用;在该位置信息对应的存储空间存在没有被占用的情况时,确定该缓存中存在没有分配存储空间的业务数据。

结合第一方面或第一方面的第一种至第四种可能的实现方式中的任一种可能的实现方式,在第一方面的第五种可能的实现方式中,该方法还包括:确定该缓存的空闲空间是否小于或等于缓存空间阈值;在确定该缓存的空闲空间小于或等于该缓存空间阈值时,将该缓存中已经分配存储空间的业务数据写入到已分配的该存储空间中。

第二方面,提供了一种分配存储空间的装置,该装置包括:接收单元,用于接收主机发送的精简逻辑单元号的业务数据;存储单元,用于将该接收单元接收的该业务数据存储在存储系统的缓存中;第一确定单元,用于周期性地确定该缓存中是否存在没有分配存储空间的业务数据;分配单元,用于在该第一确定单元确定该缓存中存在没有分配存储空间的业务数据时,为该没有分配存储空间的业务数据分配存储空间。

结合第二方面,在第二方面的第一种可能的实现方式中,该第一确定单元包括:设置模块,用于设置具有周期性的定时时长的定时器;第一确定模块,用于在该定时器到达该定时时长时,确定该缓存中是否存在没有分配存储空间的业务数据。

结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,该第一确定模块包括:第一确定子模块,用于在该定时器到达该定时时长时,确定当前是否正在分配存储空间;第二确定子模块,用于在确定当前没有分配存储空间时,确定该缓存中是否存在没有分配存储空间的业务数据。

结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,该第一确定模块包括:第三确定子模块,用于在确定当前正在分配存储空间时,在该定时器到达下一定时时长时,确定该缓存中是否存在没有分配存储空间的业务数据。

结合第二方面或第二方面的第一种至第三种可能的实现方式中的任一种可能的实现方式,在第二方面的第四种可能的实现方式中,该第一确定单元包括:第二确定模块,用于确定该缓存中的业务数据的位置信息;第三确定模块,用于根据该存储系统的元数据,周期性地确定该位置信息对应的存储空间是否被占用;第四确定模块,用于在该位置信息对应的存储空间存在没有被占用的情况时,确定该缓存中存在没有分配存储空间的业务数据。

结合第二方面或第二方面的第一种至第四种可能的实现方式中的任一种可能的实现方式,在第二方面的第五种可能的实现方式中,该装置还包括:第二确定单元,用于确定该缓存的空闲空间是否小于或等于缓存空间阈值;写入单元,用于在该第二确定单元确定该缓存的空闲空间小于或等于该缓存空间阈值时,将该缓存中已经分配存储空间的业务数据写入到已分配的该存储空间中。

第三方面,提供了一种控制器,该控制器包括处理器、缓存、总线和收发器,其中,该处理器、该缓存和该收发器通过该总线通信连接,其中,该收发器用于接收主机发送的精简逻辑单元号的业务数据;该缓存用于存储该业务数据;该处理器用于周期性地确定该缓存中是否存在没有分配存储空间的业务数据;在确定该缓存中存在没有分配存储空间的业务数据时,该处理器还用于为该没有分配存储空间的业务数据分配存储空间。

结合第三方面,在第三方面的第一种可能的实现方式中,该处理器用于周期性地确定该缓存中是否存在没有分配存储空间的业务数据,包括:设置具有周期性的定时时长的定时器;在该定时器到达该定时时长时,确定该缓存中是否存在没有分配存储空间的业务数据。

结合第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,该处理器在该定时器到达该定时时长时,确定该缓存中是否存在没有分配存储空间的业务数据,包括:在该定时器到达该定时时长时,确定当前是否正在分配存储空间;在确定当前没有分配存储空间时,确定该缓存中是否存在没有分配存储空间的业务数据。

结合第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式中,该处理器在该定时器到达该定时时长时,确定该缓存中是否存在没有分配存储空间的业务数据,包括:在确定当前正在分配存储空间时,在该定时器到达下一定时时长时,确定该缓存中是否存在没有分配存储空间的业务数据。

结合第三方面或第三方面的第一种至第三种可能的实现方式中的任一种可能的实现方式,在第三方面的第四种可能的实现方式中,该处理器用于周期性地确定该缓存中是否存在没有分配存储空间的业务数据,包括:确定该缓存中的业务数据的位置信息;根据元数据,周期性地确定该位置信息对应的存储空间是否被占用;在该位置信息对应的存储空间存在没有被占用的情况时,确定该缓存中存在没有分配存储空间的业务数据。

结合第三方面或第三方面的第一种至第四种可能的实现方式中的任一种可能的实现方式,在第三方面的第五种可能的实现方式中,该处理器还用于:确定该缓存的空闲空间是否小于或等于缓存空间阈值;该收发器还用于:在该处理器确定该缓存的空闲空间小于或等于该缓存空间阈值时,将该缓存中已经分配存储空间的业务数据发送到已分配的该存储空间中。

基于上述技术方案,本发明实施例的分配存储空间的方法、装置和控制器,通过周期性地确定存储系统的缓存中是否存在没有分配存储空间的业务数据,并在确定该缓存中存在没有分配存储空间的业务数据时,为该没有分配存储空间的业务数据分配存储空间,能够将存储空间的分配分散在存储系统的整个运行期间,避免在存储系统中集中分配存储空间,从而能够避免对存储系统资源的争抢,由此能够提高存储系统的效率和性能,并能够提高主机的读写性能。

附图说明

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

图1是根据本发明实施例的分配存储空间的方法的示意性流程图。

图2是根据本发明实施例的周期性确定缓存中是否存在没有分配存储空间的业务数据的方法的示意性流程图。

图3是根据本发明实施例的周期性确定缓存中是否存在没有分配存储空间的业务数据的方法的另一示意性流程图。

图4是根据本发明实施例的周期性确定缓存中是否存在没有分配存储空间的业务数据的方法的再一示意性流程图。

图5是根据本发明实施例的分配存储空间的方法的另一示意性流程图。

图6是根据本发明实施例的分配存储空间的方法的再一示意性流程图。

图7是根据本发明实施例的分配存储空间的装置的示意性框图。

图8是根据本发明实施例的第一确定单元的示意性框图。

图9是根据本发明实施例的第一确定模块的示意性框图。

图10是根据本发明实施例的第一确定单元的另一示意性框图。

图11是根据本发明实施例的分配存储空间的装置的另一示意性框图。

图12是根据本发明实施例的控制器的示意性框图。

具体实施方式

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

图1示出了根据本发明实施例的分配存储空间的方法100的示意性流程图,该方法100可以由分配存储空间的装置执行,该装置例如为存储系统或存储阵列,该装置又例如为存储系统或存储阵列中的控制器。如图1所示,该方法100包括:

S110,接收主机发送的精简逻辑单元号的业务数据;

S120,将该业务数据存储在存储系统的缓存中;

S130,周期性地确定该缓存中是否存在没有分配存储空间的业务数据;

S140,在确定该缓存中存在没有分配存储空间的业务数据时,为该没有分配存储空间的业务数据分配存储空间。

具体而言,在已经创建指定容量的精简逻辑单元号Thin LUN的存储系统中,存储系统接收主机发送的精简逻辑单元号Thin LUN的业务数据,并可以首先将该业务数据存储在该存储系统的缓存中,从而可以降低主机写入的时延。该业务数据可以是用户希望存储或写入物理存储空间的任何类型的数据,例如影音文件、文本文件、数据库文件等,但本发明实施例并不限于此。

存储系统可以周期性地对缓存进行检测,以确定该缓存中是否存在没有分配存储空间的业务数据。例如,存储系统可以根据存储系统中记录的元数据等信息,确定缓存中是否存在没有分配存储空间的业务数据。该元数据例如包括为业务数据分配的存储空间的位置信息等。存储系统在确定该缓存中存在没有分配存储空间的业务数据时,为该没有分配存储空间的业务数据分配存储空间。

即在本发明实施例的分配存储空间的方法中,存储系统周期性地对缓存进行检测,并在确定该存储系统的缓存中存在没有分配存储空间的业务数据时,为该没有分配存储空间的业务数据分配存储空间。这种分配存储空间的时机的选取与缓存的空闲空间是否不足没有必然联系,从而可以并行对主机的业务数据进行缓存以及对业务数据进行存储空间的分配。由此,对Thin Lun进行存储空间的分配分散在Thin Lun的整个运行期间,特别是分散在缓存的空闲空间充裕的时期内,使得分配存储空间时系统资源充裕,响应更快;并且存储系统在将缓存中的业务数据写入存储空间时,由于存储空间已经分配好,系统写入效率和性能能够得到提高。

而在现有技术中,存储系统在判断缓存的空闲空间不足时,才分配存储空间,并将主机写入缓存的业务数据写入硬盘。即主机的业务数据的缓存以及业务数据的存储空间的分配串行进行,存储系统进行存储空间的分配时机都集中在缓存的空闲空间不足的时刻,由此会造成在该时间内需要对大量的业务数据分配存储空间,从而会造成系统资源的争抢,并且导致分配存储空间的响应变慢。此外,存储空间的分配变慢又会造成缓存不能快速地将业务数据转移到硬盘上,不能及时释放出的缓存空间来承载主机接收的业务数据,从而最终导致主机写性能的降低。

因此,本发明实施例的分配存储空间的方法,通过周期性地确定存储系统的缓存中是否存在没有分配存储空间的业务数据,并在确定该缓存中存在没有分配存储空间的业务数据时,为该没有分配存储空间的业务数据分配存储空间,即并行处理业务数据的缓存以及业务数据的存储空间的分配,能够将存储空间的分配分散在存储系统的整个运行期间,避免在缓存的空闲空间不足时集中分配存储空间,从而能够避免对存储系统资源的争抢,由此使得存储系统资源的利用在时间上分布更加合理,能够提高存储系统的效率和性能,并能够提高主机的读写性能。

另外,本发明实施例的分配存储空间的方法,实现Thin LUN存储空间的分配时机的判断和确定的逻辑简单有效,并不会增加系统的开销。

应理解,根据本发明实施例的分配存储空间的方法可以由分配存储空间的装置执行,该装置例如为存储系统或存储阵列,该装置又例如为存储系统或存储阵列中的控制器,在本发明实施例的上下文中,仅以该装置为存储系统为例进行说明,但本发明并不限于此。

还应理解,在本发明实施例中,存储系统包括控制器和物理存储器,该控制器还可以包括缓存,该存储系统用于提供存储接入、数据存储、备份、快照等功能。

应理解,在本发明实施例中,存储系统可以周期性地对缓存进行检测,以确定该缓存中是否存在没有分配存储空间的业务数据,但本发明实施例并不限于此。例如,存储系统也可以按照预定的检测时刻,对缓存进行检测,并在确定该缓存中存在没有分配存储空间的业务数据时,为该没有分配存储空间的业务数据分配存储空间,该方案同样也可以并行处理业务数据的缓存以及业务数据的存储空间的分配,从而能够将存储空间的分配分散在存储系统的整个运行期间,由此能够提高存储系统的效率和性能,并能够提高主机的读写性能。

还应理解,在本发明实施例中,存储系统为业务数据或Thin LUN分配的存储空间可以是物理上的硬盘,也可以是固态硬盘(Solid State Disk,简称为“SSD”)、可擦写光盘等,还可以是其它物理存储介质,本发明实施例仅以物理硬盘为例进行说明,但本发明并不限于此。

下面将结合图2和图3所示的方案,详细描述根据本发明实施例的对Thin LUN进行存储空间的分配时机。

如图2所示,在本发明实施例中,可选地,该周期性地确定该缓存中是否存在没有分配存储空间的业务数据,包括:

S131,设置具有周期性的定时时长的定时器;

S132,在该定时器到达该定时时长时,确定该缓存中是否存在没有分配存储空间的业务数据。

具体而言,存储系统可以设置用于周期性提醒的定时器,该定时器具有周期性的定时时长,当该定时器到达该定时时长时,存储系统可以确定该缓存中是否存在没有分配存储空间的业务数据,并且存储系统在确定该缓存中存在没有分配存储空间的业务数据,可以为该没有分配存储空间的业务数据分配存储空间,即为Thin LUN分配物理存储空间。

例如,存储系统可以在创建Thin LUN时设置定时器,也可以在接收到主机发送的业务数据时设置定时器,但本发明实施例并不限于此。还例如,该定时器的周期性的定时时长为T,则定时器每隔定时时长T就提醒存储系统对缓存进行检测,以确定缓存中是否存在没有分配存储空间的业务数据。应理解,该定时时长T可以为固定值,也可以根据系统的资源等信息而改变,但本发明实施例并不限于此。例如,该定时时长可以为T1、T2或T3等,其中,T、T1、T2和T3为正数。

还应理解,在本发明实施例中,存储系统可以根据实际需求设置合理的定时时长,例如,存储系统可以基于业务数据传输速率、缓存大小、业务数据量等参数,来确定定时器的周期性的定时时长,但本发明实施例并不限于此。

在本发明实施例中,在定时器到达定时时长时,存储系统还可以结合其它参数,来确定是否对缓存进行检测,以确定该缓存中是否存在没有分配存储空间的业务数据。可选地,在本发明实施例中,如图3所示,该在该定时器到达该定时时长时,确定该缓存中是否存在没有分配存储空间的业务数据,包括:

S133,在该定时器到达该定时时长时,确定当前是否正在分配存储空间;

S134,在确定当前没有分配存储空间时,确定该缓存中是否存在没有分配存储空间的业务数据。

即在定时器到达该定时时长时,存储系统可以先确定当前是否正在分配存储空间,即存储系统可以先确定上一次的存储空间分配是否结束,或确定本次是否为首次进行的存储空间分配。如果存储系统确定当前没有分配存储空间时,即上一次的存储空间分配已经结束,或本次的存储空间分配为首次进行的存储空间分配,此时,存储系统可以确定该缓存中是否存在没有分配存储空间的业务数据,并且存储系统可以在确定该缓存中存在没有分配存储空间的业务数据时,为该没有分配存储空间的业务数据分配存储空间,从而并行处理业务数据的缓存以及业务数据的存储空间的分配。

可选地,在本发明实施例中,如图3所示,该在该定时器到达该定时时长时,确定该缓存中是否存在没有分配存储空间的业务数据,包括:

S135,在确定当前正在分配存储空间时,在该定时器到达下一定时时长时,确定该缓存中是否存在没有分配存储空间的业务数据。

具体而言,如果存储系统确定当前正在分配存储空间时,即确定上一次的存储空间分配没有结束时,存储系统此时不需要对缓存进行检测,并且存储系统可以在定时器经过下一定时时长时,对缓存进行检测,以确定该缓存中是否存在没有分配存储空间的业务数据。应理解,存储系统可以根据元数据等信息,确定上一次的存储空间分配是否结束;存储系统也可以基于其它标识信息,来确定当前是否正在分配存储空间,但本发明实施例并不限于此。

在本发明实施例中,如图4所示,可选地,该周期性地确定该缓存中是否存在没有分配存储空间的业务数据,包括:

S136,确定该缓存中的业务数据的位置信息;

S137,根据该存储系统的元数据,周期性地确定该位置信息对应的存储空间是否被占用;

S138,在该位置信息对应的存储空间存在没有被占用的情况时,确定该缓存中存在没有分配存储空间的业务数据。

即存储系统可以根据该存储系统的元数据,确定缓存中的业务数据的位置信息,并可以周期性地确定该位置信息对应的存储空间是否被占用;如果该位置信息对应的存储空间存在没有被占用的情况,则可以确定该缓存中存在没有分配存储空间的业务数据;反之,如果该位置信息对应的存储空间全部被占用,不存在没有被占用的情况,则可以确定该缓存中不存在没有分配存储空间的业务数据,即缓存中的业务数据都已经分配存储空间。从而根据本发明实施例的方法可以并行处理业务数据的缓存以及业务数据的存储空间的分配,由此能够提高存储系统的效率和性能,并能够提高主机的读写性能。

应理解,存储系统在确定该缓存中存在没有分配存储空间的业务数据时,为该没有分配存储空间的业务数据分配存储空间。例如,存储系统可以检查缓存中的业务数据哪些是覆盖写数据,即这些数据所在的存储空间已经被分配了,哪些是新写数据,即这些数据所在的存储空间没有分配。存储系统于是可以将这些新写数据的位置信息下发到卷,卷就可以向存储池申请分配存储空间,并且在存储空间分配成功后,可以完成元数据的修改,并将元数据的修改固化到硬盘,从而完成存储空间的分配。等后续缓存的空闲空间紧张时,就只需要将业务数据写入已经分配出来的存储空间即可。

具体而言,在本发明实施例中,如图5所示,可选地,该方法100还包括:

S150,确定该缓存的空闲空间是否小于或等于缓存空间阈值;

S160,在确定该缓存的空闲空间小于或等于该缓存空间阈值时,将该缓存中已经分配存储空间的业务数据写入到已分配的该存储空间中。

即存储系统可以根据缓存的空闲空间与缓存空间阈值的大小关系,确定是否将缓存中的业务数据写入到已分配的存储空间中。例如,该缓存空间阈值为该缓存的容量的10%或15%等,但本发明实施例并不限于此。

因此,本发明实施例的分配存储空间的方法,通过周期性地确定存储系统的缓存中是否存在没有分配存储空间的业务数据,并在确定该缓存中存在没有分配存储空间的业务数据时,为该没有分配存储空间的业务数据分配存储空间,即并行处理业务数据的缓存以及业务数据的存储空间的分配,能够将存储空间的分配分散在存储系统的整个运行期间,避免在缓存的空闲空间不足时集中分配存储空间,从而能够避免对存储系统资源的争抢,由此使得存储系统资源的利用在时间上分布更加合理,能够提高存储系统的效率和性能,并能够提高主机的读写性能。

下面将结合图6,详细描述根据本发明实施例的存储系统中分配存储空间的优选实施例。

如图6所示,在S310中,存储系统接收主机发送的Thin LUN的业务数据,并可以将该业务数据存储在存储系统的缓存中。

在S320中,存储系统判断是否到达定时分配时间,该定时分配时间可以是非周期性的预定时间点,也可以是周期性的时间点。如果到达定时分配时间,则流程进行到S330;否则,流程进行到S310。

在S330中,存储系统确定上一次的分配是否结束。如果上一次分配已经结束,则流程进行到S340;否则,流程进行到S320。

在S340中,存储系统在确定到达定时分配时间,并且确定上一次的分配已经结束时,触发缓存中没有分配存储空间的数据分配存储空间,即存储系统可以确定该缓存中是否存在没有分配存储空间的业务数据,并可以在确定该缓存中存在没有分配存储空间的业务数据时,为该没有分配存储空间的业务数据分配存储空间。

在S350中,存储系统判断缓存空闲空间是否不足。例如,存储系统可以确定该缓存的空闲空间是否小于或等于缓存空间阈值,以确定缓存的空闲空间是否不足。如果确定缓存的空闲空间不足,则流程进行到S360;否则,流程进行到S310。

在S360中,存储系统确定缓存的空闲空间不足时,将缓存中已经分配存储空间的业务数据写入已经分配的存储空间中。例如,存储系统在确定该缓存的空闲空间小于或等于该缓存空间阈值时,确定缓存的空闲空间不足,从而可以将该业务数据写入到已分配的该存储空间中。

应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

因此,本发明实施例的分配存储空间的方法,通过周期性地确定存储系统的缓存中是否存在没有分配存储空间的业务数据,并在确定该缓存中存在没有分配存储空间的业务数据时,为该没有分配存储空间的业务数据分配存储空间,即并行处理业务数据的缓存以及业务数据的存储空间的分配,能够将存储空间的分配分散在存储系统的整个运行期间,避免在缓存的空闲空间不足时集中分配存储空间,从而能够避免对存储系统资源的争抢,由此使得存储系统资源的利用在时间上分布更加合理,能够提高存储系统的效率和性能,并能够提高主机的读写性能。

上文中结合图1至图6,详细描述了根据本发明实施例的分配存储空间的方法,下面将结合图7至图12,详细描述根据本发明实施例的分配存储空间的装置和控制器。

图7示出了根据本发明实施例的分配存储空间的装置500的示意性框图。如图7所示,该装置500包括:

接收单元510,用于接收主机发送的精简逻辑单元号的业务数据;

存储单元520,用于将该接收单元510接收的该业务数据存储在存储系统的缓存中;

第一确定单元530,用于周期性地确定该缓存中是否存在没有分配存储空间的业务数据;

分配单元540,用于在该第一确定单元530确定该缓存中存在没有分配存储空间的业务数据时,为该没有分配存储空间的业务数据分配存储空间。

因此,本发明实施例的分配存储空间的装置,通过周期性地确定存储系统的缓存中是否存在没有分配存储空间的业务数据,并在确定该缓存中存在没有分配存储空间的业务数据时,为该没有分配存储空间的业务数据分配存储空间,即并行处理业务数据的缓存以及业务数据的存储空间的分配,能够将存储空间的分配分散在存储系统的整个运行期间,避免在缓存的空闲空间不足时集中分配存储空间,从而能够避免对存储系统资源的争抢,由此使得存储系统资源的利用在时间上分布更加合理,能够提高存储系统的效率和性能,并能够提高主机的读写性能。

应理解,在本发明实施例中,分配存储空间的装置500可以为存储系统,也可以为存储系统中的控制器,还可以为其它实体,本发明实施例仅以该装置500为存储系统为例进行说明,但本发明并不限于此。

如图8所示,在本发明实施例中,可选地,该第一确定单元530包括:

设置模块531,用于设置具有周期性的定时时长的定时器;

第一确定模块532,用于在该定时器到达该定时时长时,确定该缓存中是否存在没有分配存储空间的业务数据。

在本发明实施例中,可选地,如图9所示,该第一确定模块532包括:

第一确定子模块533,用于在该定时器到达该定时时长时,确定当前是否正在分配存储空间;

第二确定子模块534,用于在确定当前没有分配存储空间时,确定该缓存中是否存在没有分配存储空间的业务数据。

如图9所示,在本发明实施例中,可选地,该第一确定模块532包括:

第三确定子模块535,用于在确定当前正在分配存储空间时,在该定时器到达下一定时时长时,确定该缓存中是否存在没有分配存储空间的业务数据。

在本发明实施例中,可选地,如图10所示,该第一确定单元530包括:

第二确定模块536,用于确定该缓存中的业务数据的位置信息;

第三确定模块537,用于根据该存储系统的元数据,周期性地确定该位置信息对应的存储空间是否被占用;

第四确定模块538,用于在该位置信息对应的存储空间存在没有被占用的情况时,确定该缓存中存在没有分配存储空间的业务数据。

在本发明实施例中,可选地,如图11所示,该装置500还包括:

第二确定单元550,用于确定该缓存的空闲空间是否小于或等于缓存空间阈值;

写入单元560,用于在该第二确定单元550确定该缓存的空闲空间小于或等于该缓存空间阈值时,将该缓存中已经分配存储空间的业务数据写入到已分配的该存储空间中。

应理解,根据本发明实施例的分配存储空间的装置500可对应于本发明实施例中的分配存储空间的方法的执行主体,并且装置500中的各个模块的上述和其它操作和/或功能分别为了实现图1至图6中的各个方法的相应流程,为了简洁,在此不再赘述。

因此,本发明实施例的分配存储空间的装置,通过周期性地确定存储系统的缓存中是否存在没有分配存储空间的业务数据,并在确定该缓存中存在没有分配存储空间的业务数据时,为该没有分配存储空间的业务数据分配存储空间,即并行处理业务数据的缓存以及业务数据的存储空间的分配,能够将存储空间的分配分散在存储系统的整个运行期间,避免在缓存的空闲空间不足时集中分配存储空间,从而能够避免对存储系统资源的争抢,由此使得存储系统资源的利用在时间上分布更加合理,能够提高存储系统的效率和性能,并能够提高主机的读写性能。

另外,本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

应理解,在本发明实施例中,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。

如图12所示,本发明实施例还提供了一种控制器710,该控制器710包括处理器711、缓存712、总线713和收发器714,其中,该处理器711、该缓存712和该收发器714通过该总线713通信连接,其中,该收发器714用于接收主机发送的精简逻辑单元号的业务数据;该缓存712用于存储该业务数据;该处理器711用于周期性地确定该缓存712中是否存在没有分配存储空间的业务数据;在确定该缓存712中存在没有分配存储空间的业务数据时,该处理器711还用于为该没有分配存储空间的业务数据分配存储空间。

因此,本发明实施例的控制器,通过周期性地确定控制器的缓存中是否存在没有分配存储空间的业务数据,并在确定该缓存中存在没有分配存储空间的业务数据时,为该没有分配存储空间的业务数据分配存储空间,即并行处理业务数据的缓存以及业务数据的存储空间的分配,能够将存储空间的分配分散在存储系统的整个运行期间,避免在缓存的空闲空间不足时集中分配存储空间,从而能够避免对存储系统资源的争抢,由此使得存储系统资源的利用在时间上分布更加合理,能够提高存储系统的效率和性能,并能够提高主机的读写性能。

应理解,在本发明实施例中,该处理器711可以是中央处理单元(Central Processing Unit,简称为“CPU”),该处理器711还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

该缓存712可以包括只读存储器和随机存取存储器,并向处理器710提供指令和数据。缓存712的一部分还可以包括非易失性随机存取存储器。例如,缓存712还可以存储设备类型的信息。应理解,该缓存712可以是物理上的硬盘,也可以是固态硬盘SSD、可擦写光盘等,还可以是其它物理存储介质,本发明实施例仅以物理硬盘为例进行说明,但本发明并不限于此。

该总线713除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线713。

在实现过程中,上述方法的各步骤可以通过处理器711中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于缓存712,处理器711读取缓存712中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。

可选地,作为一个实施例,该处理器711用于周期性地确定该缓存712中是否存在没有分配存储空间的业务数据,包括:设置具有周期性的定时时长的定时器;在该定时器到达该定时时长时,确定该缓存712中是否存在没有分配存储空间的业务数据。

可选地,作为一个实施例,该处理器711在该定时器到达该定时时长时,确定该缓存712中是否存在没有分配存储空间的业务数据,包括:在该定时器到达该定时时长时,确定当前是否正在分配存储空间;在确定当前没有分配存储空间时,确定该缓存712中是否存在没有分配存储空间的业务数据。

可选地,作为一个实施例,该处理器711在该定时器到达该定时时长时,确定该缓存712中是否存在没有分配存储空间的业务数据,包括:在确定当前正在分配存储空间时,在该定时器到达下一定时时长时,确定该缓存712中是否存在没有分配存储空间的业务数据。

可选地,作为一个实施例,该处理器711用于周期性地确定该缓存中是否存在没有分配存储空间的业务数据,包括:

确定该缓存712中的业务数据的位置信息;

根据元数据,周期性地确定该位置信息对应的存储空间是否被占用;

在该位置信息对应的存储空间存在没有被占用的情况时,确定该缓存712中存在没有分配存储空间的业务数据。

可选地,作为一个实施例,该处理器711还用于确定该缓存712的空闲空间是否小于或等于缓存空间阈值;该收发器714还用于在该处理器711确定该缓存712的空闲空间小于或等于该缓存空间阈值时,将该缓存712中已经分配存储空间的业务数据发送到已分配的该存储空间中。

应理解,根据本发明实施例的控制器710可对应于本发明实施例中的分配存储空间的方法的执行主体,也可以对应于根据本发明实施例的分配存储空间的装置500,并且装置700中的各个模块的上述和其它操作和/或功能分别为了实现图1至图5中的各个方法的相应流程,为了简洁,在此不再赘述。

因此,本发明实施例的控制器,通过周期性地确定控制器的缓存中是否存在没有分配存储空间的业务数据,并在确定该缓存中存在没有分配存储空间的业务数据时,为该没有分配存储空间的业务数据分配存储空间,即并行处理业务数据的缓存以及业务数据的存储空间的分配,能够将存储空间的分配分散在存储系统的整个运行期间,避免在缓存的空闲空间不足时集中分配存储空间,从而能够避免对存储系统资源的争抢,由此使得存储系统资源的利用在时间上分布更加合理,能够提高存储系统的效率和性能,并能够提高主机的读写性能。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

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