精简卷的存储空间管理方法和装置与流程

文档序号:13094491阅读:939来源:国知局
精简卷的存储空间管理方法和装置与流程

本发明涉及存储技术,特别是涉及一种精简卷的存储空间管理方法和装置。



背景技术:

存储系统逐年扩展,为了安全起见,确保存储容量足够使用,用户往往会部署多于实际需求的物理存储空间。但在实际使用过程中,部署容量通常未受到充分利用。行业研究组织发现在某些项目中,实际使用容量仅占部署容量的20%-30%。因此,自动精简配置(thinprovisioning)技术应运而生,旨在实现更高的存储容量利用率,并带来更大的投资回报。

自动精简配置是一种卷的容量虚拟化技术。自动精简配置的核心是写前分配。传统卷在创建的时候就分配了所有的物理空间,若用户创建了卷,实际写入的数据量较少或者实际写入的数据量是缓慢增长的,已经分配的空间还是会被全部被占用,不能和其它的卷进行空间的共享。和传统卷不同,精简卷是一个虚拟的卷,在创建精简卷的时候并不会为用户分配所有的物理容量,仅当用户对卷进行写操作的时候才会写前分配,为要写入的地址分配实际的物理空间。如此,自动精简配置可以减少早期物理存储部署,可最大限度提升存储空间利用率。

使用自动精简配置,所有真实的用户容量通常都存放于存储池进行统一管理,在精简卷发生写i/o时根据实际使用情况进行分配物理容量,当容量利用率达到预定义的阈值(通常由用户配置),需要添加额外物理磁盘时,发出警告,以避免容量短缺。目前,业界各厂商通常都有剩余容量不足(达到用户配置门限)时进行告警的设计。

存储系统缓存(cache)写机制通常有写回(write-back)和写穿(witer-through)两种模式。写回是指将数据写到缓存中,等系统空闲时再将数据写到硬盘中;写穿是指将数据直接写入到硬盘中,每次操作都要访问硬盘。相对于写穿,写回可以显著提高系统的写性能。

在精简卷配置为写回模式时,主机下发数据后会认为数据写入成功,实际上数据还在系统缓存中,没有真正写入硬盘。如果此时精简卷所在存储池的物理空间不足,而管理员又没有及时的根据系统告警对存储池进行扩容操作,会导致缓存中的数据无法实际写到硬盘上。这样,不仅数据一直积累在缓存中,缓存写满后还会影响其他不需要新分配空间的i/0,而且可能导致数据丢失。

因此,传统技术中,精简卷在物理容量不足时的数据可靠性不高。



技术实现要素:

基于此,有必要针对上述问题,提供一种精简卷在物理容量不足时能够有效保护数据,从而提高数据可靠性的精简卷的存储空间管理方法和装置。

一种精简卷的存储空间管理方法,所述方法包括:

实时监控存储池的剩余容量;

当所述剩余容量减少到第一阈值时,将所述存储池中的精简卷的缓存写机制修改为写穿,以及将缓存中精简卷相关数据进行刷脏;

当所述剩余容量减少到第二阈值时,如果所述刷脏未完成,则对需要刷脏的精简卷相关数据允许新分配物理容量,对主机下发的精简卷相关数据如需新分配物理容量则返回容量不足错误;

其中,所述第二阈值小于所述第一阈值。

一种精简卷的存储空间管理装置,包括:

空间监控模块,用于实时监控存储池的剩余容量;

系统管理模块,用于当所述剩余容量减少到第一阈值时,将所述存储池中的精简卷的缓存写机制修改为写穿;

缓存管理模块,用于当所述剩余容量减少到第一阈值时,将缓存中精简卷相关数据进行刷脏;

精简管理模块,用于当所述剩余容量减少到第二阈值时,如果所述刷脏未完成,则对需要刷脏的精简卷相关数据允许新分配物理容量,对主机下发的精简卷相关数据如需新分配物理容量则返回容量不足错误;

其中,所述第二阈值小于所述第一阈值。

上述精简卷的存储空间管理方法和装置,通过在存储池的剩余容量不足时,修改了存储池中的精简卷的缓存写机制为写穿,且如果刷脏未完成,则对于需要刷脏的精简卷相关数据允许新分配物理容量,对于主机下发的精简卷相关数据如需新分配物理容量则返回容量不足错误,这样优先保证了缓存中的精简卷相关数据能够全部写到物理硬盘上,避免了数据一直积累在缓存中,也能避免数据丢失,因此在物理容量不足时能够有效保护数据,从而提高了数据可靠性。

一种存储介质,所述存储介质被设置为存储用于执行以下步骤的程序代码:

实时监控存储池的剩余容量;

当所述剩余容量减少到第一阈值时,将所述存储池中的精简卷的缓存写机制修改为写穿,以及将缓存中精简卷相关数据进行刷脏;

当所述剩余容量减少到第二阈值时,如果所述刷脏未完成,则对需要刷脏的精简卷相关数据允许新分配物理容量,对主机下发的精简卷相关数据如需新分配物理容量则返回容量不足错误。

附图说明

图1为一个实施例中精简卷的存储空间管理方法的流程图;

图2为一个实施例中剩余容量阈值相关关系示意图;

图3为一个实施例中精简卷的存储空间管理装置的结构示意图;

图4为一个实施例中物理容量不足时各模块相关协作的示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图1所示,在一个实施例中,提供了一种精简卷的存储空间管理方法,该方法包括:

步骤102,实时监控存储池的剩余容量。

为了提高系统i/o性能,通常存储系统缓存写机制会配置为写回模式,在写回模式下,主机下发的精简卷相关数据先写入到缓存中,待系统空闲时将数据写到硬盘中。数据不断写入到硬盘中后,存储池中的剩余容量会越来越少,因此需要监控存储池的剩余容量,当剩余容量不足时进行相应的处理。

步骤104,当剩余容量减少到第一阈值时,将存储池中的精简卷的缓存写机制修改为写穿,以及将缓存中精简卷相关数据进行刷脏。

当剩余容量减少到第一阈值时,表明存储池的剩余容量已经不足,如果存储池的精简卷的缓存写机制继续为写回,则用户数据会写到缓存中,但这个时候实际上硬盘已经没有存储空间可以写入了,就可能导致数据不断积压在缓存中直接将缓存占满,不但影响其他卷的读写性能,而且长期无法写入磁盘,会有数据丢失的风险。因此,当剩余容量减少到第一阈值时,将存储池中的精简卷的缓存写机制修改为写穿。在写穿模式下,由于需要将数据直接写入硬盘中,不会造成数据丢失。

刷脏(flush)是指将缓存中精简卷相关数据全部写到硬盘上。当剩余容量减少到第一阈值时,将缓存中精简卷相关数据全部写到硬盘上,确保当前缓存中的数据不会丢失。

步骤106,当剩余容量减少到第二阈值时,如果刷脏未完成,则对需要刷脏的精简卷相关数据允许分配物理容量,对主机下发的精简卷相关数据如需新分配物理容量则返回容量不足错误。

本实施例中,第二阈值小于第一阈值。如图2所示,当存储池的剩余容量越来越少时,剩余容量首先达到第一阈值,然后到达第二阈值,当存储池的剩余容量越来越多时,首先达到第二阈值,然后到达第一阈值。

在将缓存中精简卷相关数据写入到硬盘的过程中,存储池的剩余容量越来越少,如果剩余容量减少到第二阈值,此时刷脏未完成,也就是缓存中的精简卷相关数据还未全部写到硬盘中,为了确保缓存中的精简卷相关数据不会丢失,则对于需要刷脏的精简卷相关数据允许新分配物理容量。而对于其他主机下发的精简卷相关数据如需新分配物理容量则返回容量不足错误。这样优先保证了缓存中的精简卷相关数据能够全部写到物理硬盘上,避免了数据一直积累在缓存中,也能避免数据丢失,因此在物理容量不足时能够有效保护数据,从而提 高了数据可靠性。

此外,由于准确的第二阈值较难获取到,本实施例通过两个阈值的判断,使得在两个阈值之间可以有一段缓冲的时间,在这段缓冲时间中缓存中的数据可以快速的刷脏到硬盘中,同时需要分配物理容量的数据还可以继续下发,避免了只有一个阈值(即第二阈值)的情况下突然没有存储空间以及可能过一段时间又有了存储空间的情形。

进一步的,当存储池的剩余容量减少到第二阈值时,如果此时刷脏未完成,则可仅对需要刷脏的精简卷相关数据允许新分配物理容量,禁止该存储池上其他所有需要分配物理容量的操作,因此对于主机下发的精简卷相关数据如需新分配物理容量则返回容量不足错误。应当说明的是,这里禁止存储池上其他所有需要分配物理容量的操作,不包括已预留容量的操作,例如使用热备容量的重建操作等。

在一个实施例中,当刷脏完成时,对主机下发的精简卷相关数据允许新分配物理容量,直至物理容量全部分配完毕。当缓存中精简卷相关数据全部写入到硬盘中时,刷脏结束。此时由于已经保证了缓存中的精简卷相关数据全部写入到硬盘中了,因此对于主机下发的精简卷相关数据可允许新分配物理容量,直到物理容量全部分配完毕,之后对于主机下发的精简卷相关数据,如需新分配物理容量则返回容量不足错误。

在一个实施例中,存储池的剩余容量以为各种原因会扩大,当剩余容量扩大到第一阈值时,将存储池中的精简卷的缓存写机制修改为写回。本实施例中,当剩余容量扩大到第一阈值,则对主机下发的精简卷相关数据允许分配物理容量,直至物理容量不足返回容量不足错误。

在一个实施例中,第二阈值大于等于当前缓存中的精简卷相关数据全部写到物理硬盘上所需要的新分配物理容量的总和。本实施例中,当存储池的剩余容量达到第二阈值时,存储池的剩余容量至少等于当前缓存中的精简卷相关数据全部写到物理硬盘上所需要新分配容量的总和。这样,确保了当前缓存中的精简卷相关数据能够全部写到物理硬盘上。

应当说明的是,本申请中的存储池的剩余容量,应不包括系统保留做专门用途的容量,例如,保留给重建操作使用的热备容量等。

进一步的,应当说明的是,本申请中的第一阈值和第二阈值,可以是一个 数值,也可以是一个数值范围,本发明各实施例不应对此有所限定。具体的,可预先设定第一阈值和第二阈值,当设定为一个数值时,可取以该数值为中心的一个上下浮动范围内。例如,在预先设定第一阈值时,得到的数值为a,则相应的第一阈值可为a±5%。将第一阈值和第二阈值设定为一个数值范围,可以平滑剩余容量可能出现的上下抖动,以避免存储池的剩余容量在一个数值上下波动而造成系统状态的抖动。

在一个实施例中,第一阈值先预设为剩余容量告警门限阈值,若剩余容量告警门限阈值小于第二阈值,则对剩余容量告警门限阈值增加预设比例或数值以得到大于第二阈值的第一阈值。

本实施例中,剩余容量告警门限阈值是指当存储池的剩余容量达到一个告警门限阈值时系统会发出告警,该阈值目前业界厂商都有类似设计,使用剩余容量告警门限阈值不需要额外增加管理界面的配置,并且系统告警后开始保护工作容易得到用户的理解。如果仅仅采用剩余容量告警门限阈值,可能会出现该阈值小于第二阈值的情形。而设定的第一阈值本应该大于第二阈值,因此若剩余容量告警门限阈值小于第二阈值,则可对剩余容量告警门限阈值增加预设比例或数值,从而得到大于第二阈值的第一阈值。

在其它实施例中,也可以配置一个管理界面,用户通过管理界面配置一个剩余容量占总容量百分比的第一阈值。

在一个实施例中,第二阈值先预设为系统缓存大小与预设分配粒度系数的乘积,当存储池的剩余容量达到该乘积时,则获取当前缓存中数据实际需要分配容量的大小作为第二阈值。

本实施例中,分配粒度系数可预先设定,具体在设定第二阈值时,将第二阈值先设定为系统缓存大小与预设分配粒度系数的乘积。通常,粒度越小,缓存越小,所需物理容量越小,反之则越大。该设定阈值的方式计算起来简单,对系统影响小。

由于通过系统缓存大小与预设分配粒度系数的乘积确定的第二阈值比较粗略,在存储数据过程中可动态再调整第二阈值。具体的,在存储池的剩余容量达到该乘积时,再动态调整第二阈值。具体可通过实时监控每个精简卷写i/o的空间分配预计情况,从而获得当缓存中数据实际需要分配容量,将该容量大小可作为第二阈值。本实施例中,通过采用两种方式,在存储数据的过程中可动 态调整第二阈值,能够更好的平衡阈值的准确性和系统性能。

如图3所示,在一个实施例中,提供了一种精简卷的存储空间管理装置,该装置包括空间监控模块302、系统管理模块304、缓存管理模块306和精简管理模块308,其中:

空间监控模块302,用于实时监控存储池的剩余容量。

系统管理模块304,用于当存储池的剩余容量减少到第一阈值时,将存储池中的精简卷的缓存写机制修改为写穿。

缓存管理模块306,用于当存储池的剩余容量减少到第一阈值时,将缓存中精简卷相关数据进行刷脏。

精简管理模块(thin管理模块)308,用于当存储池的剩余容量减少到第二阈值时,如果刷脏未完成,则对需要刷脏的精简卷相关数据允许新分配物理容量,对主机下发的精简卷相关数据如需新分配物理容量则返回容量不足错误。

其中,所述第二阈值小于所述第一阈值。

在一个实施例中,精简管理模块308还用于当刷脏完成时,对主机下发的精简卷相关数据允许新分配物理容量,直至物理容量全部分配完毕。

在一个实施例中,系统管理模块304还用于当剩余容量扩大到第一阈值时,将存储池的精简卷的缓存写机制修改为写回。

在一个实施例中,第二阈值大于等于当前缓存中的精简卷相关数据全部写到物理硬盘上所需要新分配物理容量的总和。

在一个实施例中,第一阈值先预设为剩余容量告警门限阈值,若剩余容量告警门限阈值小于第二阈值,则对剩余容量告警门限阈值增加预设比例或数值以得到大于第二阈值的第一阈值。

在一个实施例中,第二阈值先预设为系统缓存大小与预设分配粒度系数的乘积,当存储池的剩余容量达到该乘积时,则获取当前缓存中数据实际需要分配容量的大小作为第二阈值。

为了更加清楚本发明实施例所提供的精简卷的存储空间管理方法和装置,下面详细描述上述各模块之间的协作。

如图4所示,上述各模块之间相互协作以在存储池的物理容量不足时能够 保护精简卷数据。具体过程如下:

步骤1):空间监控模块302实时监控存储池的剩余容量,在存储池的剩余容量逐渐减小达到第一阈值时,发送通知1给系统管理模块304。

步骤2):系统管理模块304接收到通知1,将存储池中的精简卷的缓存写机制将当前为写回修改为写穿,并发送通知2给缓存管理模块306。

步骤3):缓存管理模块306接收到通知2,将缓存中精简卷相关数据进行刷脏,也就是将当前缓存中精简卷相关数据全部写入到物理硬盘中。下发携带特定标志的刷脏io(io一)给精简管理模块308。在刷脏全部结束时,发送通知4给系统管理模块304。

步骤4):空间监控模块302实时监控存储池的剩余容量,当存储池的剩余容量继续减少到第二阈值时,发送通知3给精简管理模块308。

步骤5):精简管理模块308接收通知3,设置允许新分配空间标志(标志一)为false,其后对于需要新分配物理容量的io,仅对刷脏io新分配物理容量并写入到物理硬盘中,对于其他io数据若需要新分配物理容量则返回容量不足错误。

步骤6):系统管理模块304接收到通知4,检查存储池中精简卷的缓存写机制是否已经全部成功修改为写穿,如此时刷脏已结束,则发送通知5给精简管理模块308。

步骤7):精简管理模块308接收通知5,设置允许新分配空间标志(标志一)位true,也就是对所有io都允许新分配物理容量,直到物理容量全部分配完毕。

步骤8):空间监控模块302继续实时监控存储池的剩余容量,当系统的存储池发生扩容、卷删除、空间回收、剩余容量告警阈值修改等操作后,空间监控模块302监控到存储池的剩余容量逐渐增加已达到第一阈值时,发送通知6给系统管理模块304,发送通知7给精简管理模块308。

步骤9):系统管理模块304接收到通知6,将存储池下精简卷的缓存写机制在步骤2)中由写回修改为写穿的,重新修改为写回。

步骤10):精简管理模块308接收到通知7,设置允许新分配空间标志(标志一)为true,对于所有的io都允许新分配物理容量,知道物理容量不足后返 回容量不足错误。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述程序可存储于一计算机可读取存储介质中,如本发明实施例中,该程序可存储于计算机系统的存储介质中,并被该计算机系统中的至少一个处理器执行,以实现包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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