专利名称::实现存储系统自动精简配置动态扩容的系统及方法
技术领域:
:本发明涉及存储系统的扩容技术,尤其涉及一种实现存储系统自动精简配置动态扩容的系统及方法。
背景技术:
:自动精简配置存储方案能够给操作系统提供大容量的虚拟驱动器,这种技术的核心是“欺骗”,如图I所示,实际的物理存储设备可能并没有这么多,而让操作系统认为有这么大的存储空间。因此,自动精简配置必须能够支持动态扩容,在实际的物理存储设备的设备空间占满前,使用自动精简配置的动态扩容方法扩充实际的存储空间,才能保证用户系统的正常使用,否则,操作系统因为被“欺骗”,而使用并不存在的存储空间,将造成不可估量的严重问题。自动精简配置模块位于内核空间块设备驱动层的输入输出(IO)重定向层,动态扩容就是能够根据用户指定的扩容信息动态地进行自动精简配置存储池的扩容。因此,动态扩容涉及内核空间与用户空间两个层面。传统的自动精简配置动态扩容可以借助逻辑卷管理工具,在IO重定向层实现自动精简配置的动态扩容,动态扩容涉及逻辑卷管理工具和IO重定向层这两个部分,如图2所示。但是,对于自动精简配置动态扩容而言,由于块的分配是按需分配,地址映射不能像普通扩容逻辑卷由逻辑卷管理工具直接修改映射表(table)那样处理,因为映射表空间变了,不能直接映射,所以动态扩容,还需要在IO重定向层下的特殊设备,也就是自动精简配置底层实现扩容,如图3所示。因此,对于自动精简配置动态扩容急需解决两方面问题,一个是如何解决扩容实现,包括IO重定向层和自动精简配置底层这两个部分的扩容实现;另一个是如何解决通信问题,包括用户空间与内核空间两部分的通信方式和逻辑卷管理工具与IO重定向层的通信方式。
发明内容本发明提供了一种自动精简配置动态扩容的方法,以解决扩容实现和通信问题。本发明提供了一种实现存储系统自动精简配置动态扩容的系统,该系统包括扩容信息获取模块,位于用户空间,用于利用逻辑卷管理工具用户空间部分,获得用户传入的扩容命令和对应的扩容大小,将所述扩容命令和所述扩容大小作为扩容参数传入逻辑卷管理工具内核空间部分;扩容信息解析模块,位于内核空间,用于解析所述扩容参数获得所述扩容命令和所述扩容大小,将所述扩容命令细分为扩容挂起命令和扩容恢复命令,并将所述扩容挂起命令和所述扩容大小以及所述扩容恢复命令传递给输入输出(IO)重定向层扩容模块;所述IO重定向层扩容模块,位于内核空间,用于接收来自所述扩容信息解析模块的所述扩容挂起命令和所述扩容大小以及所述扩容恢复命令;并向自动精简配置扩容模块发送所述扩容挂起命令和所述扩容大小,以及向存储池恢复模块发送所述扩容恢复命令;所述自动精简配置扩容模块,位于内核空间,用于接收来自所述IO重定向层扩容模块的所述扩容挂起命令和所述扩容大小;根据所述扩容大小对存储系统的存储池进行元数据扩容操作,并向存储池恢复模块发送所述元数据;所述存储池恢复模块,位于内核空间,用于根据接收的来自所述自动精简配置扩容模块的所述元数据和来自所述IO重定向层扩容模块的所述扩容恢复命令重新激活所述存储池。优选地,所述IO重定向层扩容模块,还用于根据所述扩容挂起命令和所述扩容大小,挂起所述逻辑卷管理工具,完成对映射表的重新载入和修改。优选地,所述映射表用于记录所述IO重定向层与所述IO重定向层下的所述存储池之间参数信息的对应关系。优选地,所述自动精简配置扩容模块,具体用于根据所述扩容大小计算存储池所需扩容的块数量,对所需扩容的每一个块执行初始化操作,并将初始化信息记录在所述元数据中。优选地,所述系统支持不同的操作系统。本发明还提供了一种实现存储系统自动精简配置动态扩容的方法,该方法包括利用逻辑卷管理工具获得用户传入的扩容命令和对应的扩容大小;将所述扩容命令细分为扩容挂起命令和扩容恢复命令;根据所述扩容挂起命令和所述扩容大小对存储系统的存储池进行元数据扩容操作;根据所述扩容恢复命令和所述元数据重新激活所述存储池。优选地,所述根据所述扩容挂起命令和所述扩容大小对存储系统的存储池进行元数据扩容操作之前,所述方法还包括根据所述扩容挂起命令和所述扩容大小,挂起所述逻辑卷管理工具,完成对映射表的重新载入和修改。优选地,所述映射表用于记录所述IO重定向层与所述IO重定向层下的所述存储池之间参数信息的对应关系。优选地,所述根据所述扩容挂起命令和所述扩容大小对存储系统的存储池进行元数据扩容操作包括根据所述扩容大小计算存储池所需扩容的块数量,对所需扩容的每一个块执行初始化操作,并将初始化信息记录在所述元数据中。优选地,所述方法应用于不同的操作系统。本发明可实现自动精简配置的动态扩容操作,管理员只根据需要指定扩容的大小,动态扩容系统便会从上至下完成自动精简配置存储池的扩容工作。因此,采用上述系统及方法,能够高效,快速,简便地完成自动精简配置存储池的空间扩容操作。图I为现有物理存储设备的存储空间分配示意图2为现有普通扩容的流程图;图3为现有预期的自动精简配置扩容的流程图;图4为本发明实现存储系统自动精简配置动态扩容系统实施例的结构示意图;图5为本发明自动精简配置动态扩容后的存储空间示意图;图6为本发明实现存储系统自动精简配置动态扩容方法实施例的流程图。具体实施例方式为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。本发明提供了一种实现存储系统自动精简配置动态扩容的系统,其支持在不同的操作系统,通过借助逻辑卷管理工具,实现用户空间与内核空间的通信和IO重定向层的扩容实现,以及利用自动精简配置元数据虚拟组织存储空间的特性,实现底层存储池空间的扩容。如图4所示,为本发明实现存储系统自动精简配置动态扩容系统实施例的结构示意图,该系统包括扩容信息获取模块41、扩容信息解析模块42、IO重定向层扩容模块43、自动精简配置扩容模块44和存储池恢复模块45,其中扩容信息获取模块,位于用户空间,用于利用逻辑卷管理工具用户空间部分,获得用户传入的扩容命令(extend)和对应的扩容大小,将所述扩容命令和所述扩容大小作为扩容参数传入逻辑卷管理工具内核空间部分;扩容信息解析模块,位于内核空间,用于解析所述扩容参数获得所述扩容命令和所述扩容大小,将所述扩容命令细分为扩容挂起命令(extend_suspend)和扩容恢复命令(extend_resume),并将所述扩容挂起命令和所述扩容大小以及所述扩容恢复命令传递给输入输出(IO)重定向层扩容模块;所述IO重定向层扩容模块,位于内核空间,用于接收来自所述扩容信息解析模块的所述扩容挂起命令和所述扩容大小以及所述扩容恢复命令;并向自动精简配置扩容模块发送所述扩容挂起命令和所述扩容大小,以及向存储池恢复模块发送所述扩容恢复命令;所述自动精简配置扩容模块,位于内核空间,用于接收来自所述IO重定向层扩容模块的所述扩容挂起命令和所述扩容大小;根据所述扩容大小对存储系统的存储池进行元数据扩容操作,并向存储池恢复模块发送所述元数据;所述存储池恢复模块,位于内核空间,用于根据接收的来自所述自动精简配置扩容模块的所述元数据和来自所述IO重定向层扩容模块的所述扩容恢复命令重新激活所述存储池。另外,所述IO重定向层扩容模块,还用于根据所述扩容挂起命令和所述扩容大小,挂起所述逻辑卷管理工具,完成对映射表的重新载入和修改。该映射表用于记录所述IO重定向层与所述IO重定向层下的所述存储池之间参数信息的对应关系。其中,当有扩容命令时,扩容信息获取模块就会将扩容命令和扩容大小传入扩容信息解析模块;当有扩容命令传入,扩容信息解析模块会细分命令为扩容挂起和扩容恢复,并将细分的命令和扩容大小传入并调用IO重定向层扩容模块;IO重定向层扩容模块按照先扩容挂起后扩容恢复的顺序,根据相应的命令参数进行处理,并向对应的模块转发;如果是扩容挂起,在这里需要挂起逻辑卷管理工具,完成对映射表的重新载入并按照传入的扩容大小进行修改,然后再将命令和参数传递给自动精简配置扩容模块;自动精简配置扩容模块在IO重定向层底层设备(即存储池设备)的实现过程中增加扩容实现(P00L_EXTEND),具体地,根据传入的扩容大小参数,对自动精简配置存储池进行元数据扩容操作,在这里需要根据传入的扩容大小(size),计算存储池所需扩容的块数量,对所需扩容的每一个块执行初始化操作,并将初始化信息记录在所述元数据中;最后向存储池恢复模块提交元数据;存储池恢复模块根据该元数据重新激活存储池,以供精简分配使用。自动精简配置动态扩容后的存储空间如图5所示。上述系统,可实现自动精简配置的动态扩容操作,只需要管理员根据需要指定扩容的大小,动态扩容系统便会从上至下完成自动精简配置存储池的扩容工作。因此,采用这种系统,能够高效,快速,简便地完成自动精简配置存储池的空间扩容操作。实施例本发明实施方案非常简单,只需要在LINUX内核中安装上述实现存储系统自动精简配置动态扩容的系统和逻辑卷管理(LVM2)软件包即可。根据该动态扩容系统,在IO重定向层底层设备的实现过程中增加扩容实现(P00L_EXTEND),借助逻辑卷管理(LVM2)工具分析用户指定的扩容信息,一旦有扩容命令,便会调用该扩容实现完成自动精简配置存储池元数据的扩容操作。通过实现存储系统自动精简配置动态扩容的系统,当管理员需要对存储池进行空间扩充时,就可以直接使用动态扩容技术,而不需要其他操作,会动态地根据管理员发出的扩容信息完成存储池扩容的全部操作。因此,本发明能够按照用户需要扩充的容量,实现自动精简配置存储池的动态空间扩容,且支持在线扩容,扩容过程快速、准确,简化了管理员的操作。如图6所示,为本发明自动精简配置动态扩容方法实施例的流程图,该方法包括步骤601、利用逻辑卷管理工具获得用户传入的扩容命令和对应的扩容大小;步骤602、将扩容命令细分为扩容挂起命令(extend_suspend)和扩容恢复(extend_resume)命令;步骤603、根据相应命令参数进行处理,若是扩容挂起,执行步骤604,否则,执行步骤606;步骤604、挂起逻辑卷,完成对映射表的重新载入并按照传入的扩容大小进行修改;该映射表用于记录所述IO重定向层与所述IO重定向层下的所述存储池之间参数信息的对应关系;更新映射表的目的是为了方便扩容后进行的相关操作;步骤605、根据传入的扩容大小对存储系统的存储池进行元数据扩容操作,并提交元数据;该步骤可以包括根据所述扩容大小计算存储池所需扩容的块数量,对所需扩容的每一个块执行初始化操作,并将初始化信息记录在所述元数据中;步骤606、根据扩容恢复命令和元数据激活恢复存储池设备。上述方法可应用于不同的操作系统中。上述方法,可实现自动精简配置的动态扩容操作,管理员只根据需要指定扩容的大小,动态扩容系统便会从上至下完成自动精简配置存储池的扩容工作。本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,上述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。以上实施例仅用以说明本发明的技术方案而非限制,仅仅参照较佳实施例对本发明进行了详细说明。本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,均应涵盖在本发明的权利要求范围当中。权利要求1.ー种实现存储系统自动精简配置动态扩容的系统,其特征在干,该系统包括扩容信息获取模块,位于用户空间,用于利用逻辑卷管理工具用户空间部分,获得用户传入的扩容命令和对应的扩容大小,将所述扩容命令和所述扩容大小作为扩容參数传入逻辑卷管理工具内核空间部分;扩容信息解析模块,位于内核空间,用于解析所述扩容參数获得所述扩容命令和所述扩容大小,将所述扩容命令细分为扩容挂起命令和扩容恢复命令,并将所述扩容挂起命令和所述扩容大小以及所述扩容恢复命令传递给输入输出(IO)重定向层扩容模块;所述IO重定向层扩容模块,位于内核空间,用于接收来自所述扩容信息解析模块的所述扩容挂起命令和所述扩容大小以及所述扩容恢复命令;并向自动精简配置扩容模块发送所述扩容挂起命令和所述扩容大小,以及向存储池恢复模块发送所述扩容恢复命令;所述自动精简配置扩容模块,位于内核空间,用于接收来自所述IO重定向层扩容模块的所述扩容挂起命令和所述扩容大小;根据所述扩容大小对存储系统的存储池进行元数据扩容操作,井向存储池恢复模块发送所述元数据;所述存储池恢复模块,位于内核空间,用于根据接收的来自所述自动精简配置扩容模块的所述元数据和来自所述IO重定向层扩容模块的所述扩容恢复命令重新激活所述存储池。2.根据权利要求I所述的系统,其特征在于所述IO重定向层扩容模块,还用于根据所述扩容挂起命令和所述扩容大小,挂起所述逻辑卷管理工具,完成对映射表的重新载入和修改。3.根据权利要求2所述的系统,其特征在于所述映射表用于记录所述IO重定向层与所述IO重定向层下的所述存储池之间參数信息的对应关系。4.根据权利要求I所述的系统,其特征在于所述自动精简配置扩容模块,具体用于根据所述扩容大小计算存储池所需扩容的块数量,对所需扩容的每ー个块执行初始化操作,并将初始化信息记录在所述元数据中。5.根据权利要求1-4任ー权利要求所述的系统,其特征在于所述系统支持不同的操作系统。6.ー种实现存储系统自动精简配置动态扩容的方法,其特征在于,该方法包括利用逻辑卷管理工具获得用户传入的扩容命令和对应的扩容大小;将所述扩容命令细分为扩容挂起命令和扩容恢复命令;根据所述扩容挂起命令和所述扩容大小对存储系统的存储池进行元数据扩容操作;根据所述扩容恢复命令和所述元数据重新激活所述存储池。7.根据权利要求6所述的方法,其特征在于所述根据所述扩容挂起命令和所述扩容大小对存储系统的存储池进行元数据扩容操作之前,所述方法还包括根据所述扩容挂起命令和所述扩容大小,挂起所述逻辑卷管理工具,完成对映射表的重新载入和修改。8.根据权利要求7所述的方法,其特征在于所述映射表用于记录所述IO重定向层与所述IO重定向层下的所述存储池之间參数信息的对应关系。9.根据权利要求6所述的方法,其特征在于所述根据所述扩容挂起命令和所述扩容大小对存储系统的存储池进行元数据扩容操作包括根据所述扩容大小计算存储池所需扩容的块数量,对所需扩容的每ー个块执行初始化操作,并将初始化信息记录在所述元数据中。10.根据权利要求6-9任ー权利要求所述的方法,其特征在于所述方法应用于不同的操作系统。全文摘要本发明提供了一种实现存储系统自动精简配置动态扩容的系统及方法,该系统包括扩容信息获取模块,用于获得用户传入的扩容命令和对应的扩容大小,并传给扩容信息解析模块;扩容信息解析模块,用于将获得的扩容命令细分为扩容挂起命令和扩容恢复命令,并传给IO重定向层扩容模块;IO重定向层扩容模块,用于向自动精简配置扩容模块发送扩容挂起命令和扩容大小及向存储池恢复模块发送扩容恢复命令;自动精简配置扩容模块,用于根据接收的扩容大小对存储系统的存储池进行元数据扩容操作,并向存储池恢复模块发送元数据;存储池恢复模块,用于根据接收的元数据和扩容恢复命令重新激活存储池。本发明可完成自动精简配置存储池的扩容工作。文档编号G06F3/06GK102855093SQ201210292470公开日2013年1月2日申请日期2012年8月16日优先权日2012年8月16日发明者温源,张宇,文中领申请人:浪潮(北京)电子信息产业有限公司