存储管理方法和设备与流程

文档序号:16626922发布日期:2019-01-16 06:11阅读:185来源:国知局
存储管理方法和设备与流程

本公开的实施例总体涉及存储设备,更具体地,涉及存储管理方法和设备。



背景技术:

独立磁盘冗余阵列(raid)是一种高性能、高可靠性的存储技术。该技术以不同的方式将一系列单独的磁盘组合起来,以提供逻辑上的磁盘。raid技术已经广泛应用于数据存储的各种场合,常用的raid技术包括raid0、raid1、raid5、raid6、raid10等。

在当前的操作中,尤其是系统重新启动之后,为了给用户创建的存储资源池(extentpool)提供io服务,需要从系统盘中读取以及向系统盘写入与存储资源池相关联的盘映射信息和raid组映射信息,这就意味着系统盘中存在很大的io压力。随着诸如盘映射信息和raid组映射信息的元数据的读写任务逐渐增多,系统盘的io性能将出现瓶颈。

此外,元数据通常存储在系统盘中的本地数据库(homedatabase)中。然而,这类数据库的容量偏小。随着系统中配置的盘数增多以及创建的存储资源池的个数增多,这类数据库将不能支持用于存储所有的元数据。

因此,目前亟需一种更为简单有效的存储管理技术来解决这些问题。



技术实现要素:

本公开的实施例提供了存储管理方法、设备和相应的计算机程序产品。

在本公开的第一方面,提供了一种存储管理方法,包括:响应于接收到创建存储资源池的请求,至少在用户盘上创建存储资源池,存储资源池包含多个盘区;将数据存储在多个盘区中的至少一个盘区中;以及将用于定位至少一个盘区的地址信息存储在与用户盘可通信地连接的系统盘中。

在某些实施例中,将数据存储在多个盘区中的至少一个盘区中可以包括:在存储资源池上创建独立磁盘冗余阵列(raid);以及将与raid相关联的元数据存储在至少一个盘区中。

在某些实施例中,该方法还可以包括:将存储资源池的身份信息或存储资源池中的多个盘区的尺寸信息存储在至少一个盘区中。

在某些实施例中,将数据存储在多个盘区中的至少一个盘区中可以包括:将数据存储在多个盘区中的处于不同驱动上的三个盘区中。

在某些实施例中,该方法还可以包括:从系统盘中载入用于定位至少一个盘区的地址信息;以及基于地址信息从至少一个盘区中载入数据。

在某些实施例中,基于地址信息从至少一个盘区中载入数据可以包括:从至少一个盘区中载入与独立磁盘冗余阵列(raid)相关联的元数据,该raid被创建在存储资源池上。

在某些实施例中,该方法还可以包括:基于至少一个盘区中的元数据载入存储资源池和raid。

在本公开的第二方面,提供了一种电子设备,包括:至少一个处理单元;以及至少一个存储器,其耦合至至少一个处理单元并且存储有机器可执行指令,当指令由至少一个处理单元执行时,使得设备执行动作,所述动作包括:响应于接收到创建存储资源池的请求,至少在用户盘上创建存储资源池,该存储资源池包含多个盘区;将数据存储在多个盘区中的至少一个盘区中;以及将用于定位该至少一个盘区的地址信息存储在与用户盘可通信地连接的系统盘中。

在本公开的第三方面,提供了一种计算机程序产品。该计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,该机器可执行指令在被执行时使机器执行上述方法的步骤。

提供发明内容部分是为了以简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或主要特征,也无意限制本公开的范围。

附图说明

通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。

图1示出了根据现有技术的存储诸如与raid相关联的元数据的数据的示意图;

图2示出了根据本公开的实施例的存储诸如与raid相关联的元数据的数据的示意图;

图3示出了根据本公开的实施例的存储诸如与raid相关联的元数据的数据的过程或方法的流程图;

图4示出了根据本公开的实施例的载入诸如与raid相关联的元数据的数据的过程或方法的流程图;以及

图5示出了根据本公开的实施例的对数据进行存储管理的设备的示意性框图。

具体实施方式

下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其它明确的和隐含的定义。

图1示出了根据现有技术的存储诸如与raid相关联的元数据的数据的示意图。图1示出了系统盘100以及与系统盘可通信地连接的用户盘110。作为示例,系统盘100包含驱动0、驱动1、驱动2和驱动3,用户盘110包含驱动4、…、驱动n-1和驱动n。每个驱动均包含多个盘区或区块(diskextent),绘制有斜线。部分驱动(诸如驱动0、1、2和3)包含系统专用区,绘制为空白。绘制为空白的系统专用区(诸如,101)被配置用于存储系统盘的专用数据,绘制有斜线的盘区(诸如,盘区111)被配置用于存储其他数据。用户通常会至少在用户盘110上创建存储资源池,存储资源池包含诸如盘区111的多个盘区。

如上文所述,当利用raid技术对磁盘进行组合时,诸如与raid相关联的元数据的数据通常以本地数据库的形式被存储在系统盘100的绘制为空白的系统专用区中。作为示例,如图1所示,数据被存储在系统专用区101中,由于101被绘制为属于不同的驱动,故对存储的数据提供了三镜像级别的保护。也就是说,当用于存储与raid相关联的元数据的盘区所属的驱动(例如,驱动0)停止工作时,仍然可以使用存储在其他驱动(例如,驱动1、2)上的盘区中的相应元数据。

然而,目前的元数据存储管理方法存在缺陷。首先,为了给用户创建的存储资源池提供io服务,需要从系统盘中读取以及向系统盘写入与存储资源池相关联的盘映射信息和raid组映射信息,这就意味着系统盘中存在很大的io压力。随着诸如盘映射信息和raid组映射信息的元数据的读写任务逐渐增多,系统盘的io性能将出现瓶颈。其次,由于本地数据库的容量偏小,随着系统中配置的磁盘的个数以及创建的存储资源池的个数的增加,这类数据库将不能支持用于存储所有的元数据。

为了至少部分地解决上述以及其他潜在的问题和缺陷,本公开的实施例提供了一种新颖的存储管理方案。下面将参照图2对这种存储管理方案的原理进行详细解释。

图2示出了根据本公开的实施例的存储诸如与raid相关联的元数据的数据的示意图。图2示出了系统盘200以及与系统盘可通信地连接的用户盘210。作为示例,系统盘200包含驱动0、驱动1、驱动2和驱动3,用户盘110包含驱动4、…、驱动n-1和驱动n。应理解,虽然图2被绘制为与图1类似,但图2被示出仅用于解决图1所示现有技术的技术问题,并没有限制本公开保护范围的目的。如图2所示,每个驱动均包含多个盘区,绘制有斜线。部分驱动(诸如驱动0、1、2和3)包含系统专用区,绘制为空白。绘制为空白的系统专用区(诸如,201)被配置用于存储系统盘的专用数据,绘制有斜线的盘区(诸如,盘区211、213和215)被配置用于存储其他数据。用户可以至少在用户盘210上创建存储资源池,存储资源池包含诸如盘区211、213和215的多个盘区。

为了将读取和写入元数据的工作从系统盘200中剖离,可以将元数据存储在用户盘210上。如图2所示,在用户创建的存储资源池中,元数据可以被存储在盘区211、213和215中。由于盘区211、213和215分别属于不同的驱动4、驱动n-1和驱动n,故对存储的元数据提供了三镜像级别的保护。也就是说,当用于存储与raid相关联的元数据的盘区所属的驱动(例如,驱动4)停止工作时,仍然可以使用存储在其他驱动(例如,驱动n-1、n)上的盘区中的相应元数据。此外,当用于存储与raid相关联的元数据的盘区所属的驱动(例如,驱动4)停止工作时,还可以选择位于驱动4、n-1、n之外的其他驱动上的盘区来代替停止工作的盘区。然后,可以将存储元数据的盘区211、213和215的地址信息存储在系统盘200的系统专用区(例如,201)中。如此,当用户需要读取或写入元数据时,可以先从系统盘200中载入用于定位盘区211、213和215的地址信息,之后基于该地址信息从盘区211、213和215中载入元数据。

为了更清楚地示出对元数据进行存储管理的主要过程和细节,现参照图3进行描述。图3示出了根据本公开的实施例的存储诸如与raid相关联的元数据的数据的过程或方法300的流程图。在某些实施例中,方法300可以在下文图5示出的设备中实现。现结合图2,描述图3示出的根据本公开实施例的存储数据的过程或方法300。

在302,响应于接收到创建存储资源池的请求,至少在用户盘210上创建一个存储资源池,该存储资源池包含多个盘区,诸如盘区211、213、215等绘制有斜线的盘区。在某些实施例中,用户可以仅在用户盘210上创建存储资源池。在某些实施例中,用户也可以在用户盘210以及部分系统盘200上创建存储资源池。作为示例,该部分系统盘200是图2的系统盘200中绘制有斜线的部分。本公开中描述的在用户盘上创建存储资源池,可以理解为在整个用户盘上创建存储资源池,也可以理解为在用户盘的一部分上创建存储资源池。该资源池的创建过程是可以由用户任意且精确地控制的。通过创建存储资源池,可以为需要存储的元数据准备合适的存储位置。即,元数据将被存储在用户盘一侧,而不常规地存储在系统盘中。

在304,将数据存储在多个盘区中的至少一个盘区中。在某些实施例中,将数据存储在多个盘区中的至少一个盘区中可以包括:在存储资源池上创建raid;以及将与创建的raid相关联的元数据存储在至少一个盘区中。作为示例,可以将所有的磁盘信息、磁盘映射信息、raid组信息以及raid组映射信息存储在用户盘210上划分的至少一个盘区中。作为示例,可以将所有的磁盘信息、磁盘映射信息、raid组信息以及raid组映射信息存储在用户盘210上划分的至少一个盘区内的分布式数据库中。作为示例,可以将存储资源池的身份信息和/或存储资源池中的多个盘区的尺寸信息存储在该至少一个盘区中,以便系统盘能够区分各个用户划分的存储资源池。通过在创建的存储资源池所包含的多个盘区中选择至少一个盘区并将要存储的元数据存储至该盘区中(或者将存储有该元数据的数据库存储至该盘区中),就完成了将元数据存储在用户侧的操作。由此,用户对元数据的存储只需访问用户盘即可,从而显著地减轻了系统盘的io压力。

在某些实施例中,将数据存储在多个盘区中的至少一个盘区中包括:将数据存储在多个盘区中的处于不同驱动上的三个盘区中。作为示例,元数据可以被存储在位于不同驱动的盘区211、213和215中。作为示例,元数据还可以仅被存储在绘制有斜线的盘区中的一个盘区中。通过将数据存储在用户盘一侧的盘区中,可以减少用户对系统盘的访问量,当需要对数据进行读取或写入时,可以直接在用户盘中进行操作。

在306,将用于定位该至少一个盘区的地址信息存储在与用户盘210可通信地连接的系统盘200中。在某些实施例中,可以将用户创建的存储资源池的身份信息和存储数据的盘区的地址信息存储在系统盘200的系统专用区201中。作为示例,可以将用户创建的存储资源池的身份信息和用于存储数据的盘区的地址信息存储在系统专用区201内的本地数据库中。作为示例,可以将用户创建的存储资源池的身份信息和用于存储数据的盘区的地址信息存储在如图1所示的系统专用区101中,由于101被绘制为属于三个不同的驱动,故对存储的数据提供了三镜像级别的保护。在此步骤中,通过将存储有元数据的盘区的地址信息存储在系统盘中(或者系统盘的本地数据库中),用户盘仅需要在启动时对系统盘进行一次访问,即可获知元数据的存储位置,之后对元数据的任何操作均不需要访问系统盘,从而显著地减轻了系统盘的io压力。

通过如图3所示的方法300以及上文描述的其他实施例,用户可以将与raid相关联的元数据存储在用户盘中,从而降低了系统盘的访问量,减轻了系统盘的负荷。此外,由于用于存储元数据的用户盘可以被用户灵活配置,故元数据的容量不再受限于系统盘,从而提高了系统的可扩展度。在与raid相关联的元数据被配置为存储在用户盘相应位置的数据库中之后,用户载入该元数据的过程,尤其是在系统重启后载入该元数据的过程,也需要进一步进行适应性调整。图4示出了根据本公开的实施例的载入诸如与raid相关联的元数据的数据的过程或方法400的流程图。在某些实施例中,方法400可以在下文图5示出的设备中实现。现结合图2,描述图4示出的根据本公开实施例的存储数据的过程或方法400。

在402,从系统盘200中载入用于定位至少一个盘区的地址信息。在某些实施例中,可以从系统盘200的本地数据库中得到存储有元数据的至少一个盘区的地址信息。作为示例,可以从系统盘200的本地数据库中得到存储有与raid相关联的元数据的盘区211、213和215的地址信息。在某些实施例中,在载入用于定位至少一个盘区的地址信息之后,等待该至少一个盘区上线。作为示例,在载入用于存储分布式数据库的盘区211、213和215的地址信息之后,等待盘区211、213和215上线。应注意,本公开中描述的有关元数据的存储操作,对于系统盘200而言,仅涉及对存储有元数据的盘区的地址信息的相关操作,因此减少了对系统盘的io操作。

在404,基于地址信息从该至少一个盘区中载入数据。在某些实施例中,基于地址信息从至少一个盘区中载入数据包括:从至少一个盘区中载入与raid相关联的元数据,该raid被创建在存储资源池上。在某些实施例中,基于至少一个盘区中的元数据载入存储资源池和raid。在某些实施例中,基于地址信息从至少一个盘区中载入数据包括:从相应的盘区中载入分布式数据库;基于该分布式数据库中存储的磁盘信息和磁盘映射信息载入存储资源池;以及基于该分布式数据库中存储的raid组信息以及raid组映射信息载入所有raid组。在获知存储元数据的盘区的地址信息之后,接下来对元数据的操作就可以不必访问系统盘了,从而解放了系统盘的io能力,避免了如上文所述的系统盘的瓶颈问题。

通过如图4所示的方法400以及上文描述的其他实施例,用户可以从用户盘载入与raid相关联的元数据,从而降低了系统盘的访问量,减轻了系统盘的负荷。此外,由于用于存储元数据的用户盘可以被用户灵活配置,故元数据的容量不再受限于系统盘,从而提高了系统的可扩展度。

图5示出了适合于用来实现本公开实施例的电子设备500的示意性框图。如图所示,设备500包括中央处理单元(cpu)510,其可以根据存储在只读存储器(rom)520中的计算机程序指令或者从存储单元580加载到随机访问存储器(ram)530中的计算机程序指令,来执行各种适当的动作和处理。在ram530中,还可存储设备500操作所需的各种程序和数据。cpu510、rom520以及ram530通过总线540彼此相连。输入/输出(i/o)接口550也连接至总线540。

设备500中的多个部件连接至i/o接口550,包括:输入单元560,例如键盘、鼠标等;输出单元570,例如各种类型的显示器、扬声器等;存储单元580,例如磁盘、光盘等;以及通信单元590,例如网卡、调制解调器、无线通信收发机等。通信单元590允许设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

上文所描述的各个过程和处理,例如过程300、400,可由处理单元510执行。例如,在一些实施例中,方法300、400可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元580。在一些实施例中,计算机程序的部分或者全部可以经由rom520和/或通信单元590而被载入和/或安装到设备500上。当计算机程序被加载到ram530并由cpu510执行时,可以执行上文描述的方法300、400的一个或多个步骤。备选地,在其他实施例中,cpu501也可以以其他任何适当的方式被配置以实现上述过程。

一般而言,本公开的各种示例实施例可以在硬件或专用电路、软件、逻辑,或其任何组合中实施。某些方面可以在硬件中实施,而其他方面可以在可以由控制器、微处理器或其他计算设备执行的固件或软件中实施。当本公开的实施例的各方面被图示或描述为框图、流程图或使用某些其他图形表示时,将理解此处描述的方框、装置、系统、技术或方法可以作为非限制性的示例在硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备,或其某些组合中实施。

作为示例,本公开的实施例可以在机器可执行指令的上下文中被描述,机器可执行指令诸如包括在目标的真实或者虚拟处理器上的器件中执行的程序模块中。一般而言,程序模块包括例程、程序、库、对象、类、组件、数据结构等,其执行特定的任务或者实现特定的抽象数据结构。在各实施例中,程序模块的功能可以在所描述的程序模块之间合并或者分割。用于程序模块的机器可执行指令可以在本地或者分布式设备内执行。在分布式设备中,程序模块可以位于本地和远程存储介质二者中。

用于实现本公开的方法的计算机程序代码可以用一种或多种编程语言编写。这些计算机程序代码可以提供给通用计算机、专用计算机或其他可编程的数据处理装置的处理器,使得程序代码在被计算机或其他可编程的数据处理装置执行的时候,引起在流程图和/或框图中规定的功能/操作被实施。程序代码可以完全在计算机上、部分在计算机上、作为独立的软件包、部分在计算机上且部分在远程计算机上或完全在远程计算机或服务器上执行。

在本公开的上下文中,机器可读介质可以是包含或存储用于或有关于指令执行系统、装置或设备的程序的任何有形介质。机器可读介质可以是机器可读信号介质或机器可读存储介质。机器可读介质可以包括但不限于电子的、磁的、光学的、电磁的、红外的或半导体系统、装置或设备,或其任意合适的组合。机器可读存储介质的更详细示例包括带有一根或多根导线的电气连接、便携式计算机磁盘、硬盘、随机存储存取器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、光存储设备、磁存储设备,或其任意合适的组合。

另外,尽管操作以特定顺序被描绘,但这并不应该理解为要求此类操作以示出的特定顺序或以相继顺序完成,或者执行所有图示的操作以获取期望结果。在某些情况下,多任务或并行处理会是有益的。同样地,尽管上述讨论包含了某些特定的实施细节,但这并不应解释为限制任何发明或权利要求的范围,而应解释为对可以针对特定发明的特定实施例的描述。本说明书中在分开的实施例的上下文中描述的某些特征也可以整合实施在单个实施例中。反之,在单个实施例的上下文中描述的各种特征也可以分离地在多个实施例或在任意合适的子组合中实施。

与现有技术相比,本公开的实施例具有各种优点。例如,本公开的实施例能够在发生迁移后自动更新对话的签名,本公开的实施例还可以针对不同的场景和用户需求来自动更新对话的签名,最终使得网络存储设备中的复制会话得以保持。

通过以上描述和相关附图中所给出的教导,这里所给出的本公开的许多修改形式和其它实施方式将被本公开相关领域的技术人员所意识到。因此,所要理解的是,本公开的实施方式并不局限于所公开的具体实施方式,并且修改形式和其它实施方式意在包括在本公开的范围之内。此外,虽然以上描述和相关附图在部件和/或功能的某些示例组合形式的背景下对示例实施方式进行了描述,但是应当意识到的是,可以由备选实施方式提供部件和/或功能的不同组合形式而并不背离本公开的范围。就这点而言,例如,与以上明确描述的有所不同的部件和/或功能的其它组合形式也被预期处于本公开的范围之内。虽然这里采用了具体术语,但是它们仅以一般且描述性的含义所使用而并非意在进行限制。

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