用于管理存储设备的方法和设备的制作方法

文档序号:7934448阅读:226来源:国知局
专利名称:用于管理存储设备的方法和设备的制作方法
技术领域
本发明涉及存储技术,更具体地说,涉及管理存储设备的方法和设备。

背景技术
在云存储环境中,即在作为服务的存储(storage-as-a-service)环境中,存储服务提供者按照用户应用程序的要求提供一定的存储资源,并且根据所要求的存储资源进行计费。一般来说,对存储资源的要求是通过对存储资源的性能指标的要求来描述的。所述性能指标例如存储容量、访问速率和存储冗余度等。对于用户应用程序而言,实际存储设备是完全透明的。对于服务提供者来说,则需要进行复杂的管理。在传统的存储环境中已经提出了若干对存储设备进行管理的方法。这些方法可以分为两种思路简化容量分配和对容量分配进行自动决策。按照简化容量分配的思路,使用脚本等预定义的标准来简化存储设备的分配、映射等过程。但是这种方法只能针对存储设备的容量进行静态的管理。按照对容量分配进行自动决策的思路,通过监视存储设备的实际运行状况来将能够提供用户应用程序所要求的存储资源的存储设备分配给用户应用程序。这种方法通常假设用户应用程序对存储资源的要求可以被一台单独的存储设备所满足。但是,上述方法无法直接应用于作为云存储环境。在云存储环境下,用户应用程序所要求的存储资源可能由多个存储设备来提供。例如,由多个存储设备提供用户应用程序所要求的存储容量,通过将访问请求分配到多个存储设备而实现用户应用程序所要求的访问速率,通过提供额外的存储设备 而提供用户应用程序所要求的冗余度。而提供者所采用的实际存储设备是不同型号的设备,从而具有不同的能力,有的设备本身可能没有容错能力。在这种情况下,如何将用户数据分配到实际存储设备,如何在用户应用程序要求的要求改变时进行动态地调整,如何保证用户应用程序所要求的冗余度,如何在错误发生时进行数据恢复和重新分配等,都与传统的存储环境有很大的不同。因此,需要一种针对云存储环境的对存储设备进行管理的方法。


发明内容
本发明提供了管理存储设备的方法和装置。根据本发明实施例的一种管理多台存储设备的方法,其中将各台存储设备提供的存储资源分别虚拟化整合为对应的中间卷,并且将多个中间卷虚拟化整合成单独的逻辑卷,该方法包括获取向所述逻辑卷提出的对存储资源的要求,所述要求至少包括冗余度;获得各个中间卷所能提供的存储资源;根据所述对存储资源的要求和各个中间卷所能提供的存储资源,选择中间卷以满足所述对存储资源的要求,其中所述中间卷的最小数目根据所述冗余度确定;以及根据冗余度的要求将用户数据存储到所选择的中间卷中。根据本发明实施例的一种管理多台存储设备的装置,其中将各台存储设备提供的存储资源分别虚拟化整合为对应的中间卷,并且将多个中间卷虚拟化整合成单独的逻辑卷,该装置包括要求获取模块,配置为获取向所述逻辑卷提出的对存储资源的要求,所述要求至少包括冗余度;存储资源获取模块,配置为获得各个中间卷所能提供的存储资源;中间卷选择模块,配置为根据所述对存储资源的要求和各个中间卷所能提供的存储资源,选择中间卷以满足所述对存储资源的要求,其中所述中间卷的最小数目根据所述冗余度确定;以及用户数据存储模块,配置为根据冗余度的要求将用户数据存储到所选择的中间卷中。根据本发明实施例,可以在云存储环境下对存储设备进行有效的管理。



图1是适于用来实现本发明实施方式的示例性计算系统100的框图。图2是根据本发明实施例的组织存储设备的层次示意图。图3是建立如图2所示的层次结构的流程图。图4是选择存储资源来满足用户应用程序对存储资源的要求的流程图。图5和图6是在存储设备状态变化时的操作流程图。图7是用户应用程序增加对性能指标的要求时的操作流程图。图8是根据本发明实施例的管理存储设备的装置的框图

具体实施例方式
所属技术领域的技术人员知道,本发明的多个方面可以体现为系统、方法或计算机程序产品。因此,本发明的多个方面可以具体实现为以下形式,即,可以是完全的硬件、完全的软件(包括固件、驻留软件、微代码等)、或者本文一般称为“电路”、“模块”或“系统”的软件部分与硬件部分的组合。此外,本发明的多个方面还可以采取体现在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可用的程序码。可以使用一个或多个计算机可读的介质的任何组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一但不限于——电的、磁的、光的、电磁的、红外线的、或半导体的系统、装置、器件或任何以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括以下有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任何合适的组合。在本文件的语境中,计算机可读存储介质可以是任何包含或存储程序的有形的介质,该程序被指令执行系统、装置或者器件使用或者与其结合使用。计算机可读的信号介质可包括在基带中或者作为载波一部分传播的、其中体现计算机可读的程序码的传播的数据信号。这种传播的信号可以采用多种形式,包括——但不限于——电磁信号、光信号或任何以上合适的组合。计算机可读的信号介质可以是并非为计算机可读存储介质、但是能发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序的任何计算机可读介质。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者任何合适的上述组合。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括一但不限于——无线、电线、光缆、RF等等,或者任何合适的上述组合。用于执行本发明的操作的计算机程序码,可以以一种或多种程序设计语言的任何组合来编写,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++之类,还包括常规的过程式程序设计语言-诸如“C”程序设计语言或类似的程序设计语言。程序码可以完全地在用户的计算上执行、部分地在用户的计算机上执行、作为一个独立的软件包执行、部分在用户的计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任何种类的网络一包括局域网(LAN)或广域网(WAN)-连接到用户的计算机,或者,可以(例如利用因特网服务提供商来通过因特网)连接到外部计算机。以下参照按照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的多个方面。要明白的是,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得通过计算机或其它可编程数据处理装置执行的这些指令,产生实现流程图和/或框图中的方框中规定的功能/操作的装置。也可以把这些计算机程序指令存储在能指令计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令产生一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制造品。也可以把计算机程序指令加载到计算机或其它可编程数据处理装置上,使得在计算机或其它可编程数据处理装置上执行一系列操作步骤,以产生计算机实现的过程,从而在计算机或其它可编程装置上执行的指令就提供实现流程图和/或框图中的方框中规定的功能/操作的过程。

下面参照附图,结合具体实施例对本发明进行描述。这样的描述仅仅出于说明目的,而不意图对本发明的范围进行限制。图1示出了适于用来实现本发明实施方式的示例性计算系统100的框图。如所示,计算机系统100可以包括CPU(中央处理单元)101、RAM(随机存取存储器)102、R0M(只读存储器)103、系统总线104、硬盘控制器105、键盘控制器106、串行接口控制器107、并行接口控制器108、显示控制器109、硬盘110、键盘111、串行外部设备112、并行外部设备113和显示器114。在这些设备中,与系统总线104耦合的有CPU 10URAM 102, ROM 103、硬盘控制器105、键盘控制器106、串行控制器107、并行控制器108和显示控制器109。硬盘110与硬盘控制器105耦合,键盘111与键盘控制器106耦合,串行外部设备112与串行接口控制器107耦合,并行外部设备113与并行接口控制器108耦合,以及显示器114与显示控制器109耦合。应当理解,图1所述的结构框图仅仅为了示例的目的而示出的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况而增加或者减少某些设备。本发明是一种自动进行存储设备供应的方法,其可以利用低端存储设备的能力组合满足用户对存储资源的性能指标的高要求。一般来说,低端存储设备比较容易发生物理故障,导致整台存储设备无法工作。
图2是根据本发明实施例的组织存储设备的层次示意图。如图2所示,该层次的最底层是物理卷层。物理卷对应于存储介质上的物理存储资源。一台存储设备上可能有多个存储介质,例如有多个磁盘。根据本发明的一个实施例,将每个磁盘作为一个物理卷。本领域技术人员可以理解,每一个磁盘也可能被划分为多个物理卷。物理卷层之上是低级别虚拟化整合层,其对存储设备上的多个存储介质上的存储资源进行虚拟化整合,从而形成中间卷层。如何进行虚拟化整合是本领域的常用技术,在此不再赘述。以下举例说明以便更好地理解物理卷和中间卷的概念。假设一台存储设备有五块磁盘,每个磁盘的存储容量均为1000GB。如果每IOGB为一个物理卷,则每个磁盘对应于100个物理卷,从而该存储设备对应于500个物理卷。如果该存储设备要提供一个存储容量为50GB的中间卷,则对应于这个中间卷的50GB的存储资源可能以多种方式分布在各个物理卷中。低级别虚拟化整合层按照一定的方法对物理卷进行管理,使得物理卷对于中间卷来说是完全透明的。因此,对于中间卷来说,其并不需要关心具体的存储资源是由哪个磁盘提供的。此外,如果一个中间卷所对应的物理卷发生故障,通过低级别虚拟化整合层的冗余机制,还可以使得对该中间卷所存储的数据的访问不会受到所述故障的影响。本领域技术人员可以理解,如果存在多台存储设备,则所述中间卷对应的物理卷可能分布在多台存储设备中。但是,在根据本发明实施例的存储设备组织结构中,中间卷层的每一个中间卷只对应于一个存储设备,并且该中间卷对应于该存储设备的所有物理卷。换句话说,中间卷和存储设备是一一对应的关系。中间卷层之上是高级别虚拟化整合层。高级别虚拟化整合层对整个云存储系统内所有中间卷进行虚拟化整合,从而形成逻辑卷层。仍然举例说明以便更好地理解中间卷和逻辑卷的关系。在云存储系统中,每一个逻辑卷对应于一个用户应用程序。在下面的描述中,除非特别说明,否则逻辑卷和用户应用程序具有相同的指代对象。比如说,某个用户应用程序需要100GB的存储资源,则云存储系统将一个100GB的逻辑卷分配给这个用户应用程序。这100GB的逻辑卷可能以各种方式对应到中间卷。也可以对应于中间卷#I上的50GB,中间卷#2上的IOGB,中间卷#3上的40GB。换句话说,这100GB的逻辑卷可能以各种方式对应到存储设备。例如,可以对应于中间卷#1上的20GB,中间卷#2上的50GB,中间卷#3上的30GB。高级别虚拟化整合层按照一定的方法对中间卷进行管理,使得中间卷对于逻辑卷来说是完全透明的,从而使得物理卷对于逻辑卷来讲也是完全透明的。比如说,如果一个逻辑卷所对应的中间卷发生故障,通过高级别虚拟化整合层的冗余机制,可以使得对该逻辑卷所存储的数据的访问不会受到所述故障的影响。下面参照图3描述如何建立如图2所示的层次结构。步骤 301,识别各存储设备。步骤302,对于各存储设备中的每一个,将该存储设备所提供的存储资源虚拟化整合成一个中间卷。步骤303,将对应于各存储设备的中间卷虚拟化整合成逻辑卷。之所以使用“卷”而不是“池”,是因为卷管理设备会将系统中记录的关于各个卷的元数据信息在各个卷中复制一份。这样,即使卷管理设备故障,也可以由新的卷管理设备来恢复所管理的卷。下面参照图4描述在收到用户应用程序的要求时如何选择存储资源来满足用户应用程序的要求。步骤401,获取用户应用程序对存储资源的要求,所述要求至少包括冗余度。根据本发明的一个实施例,可以由用户直接指定对存储资源的性能指标的要求。根据本发明的另一个实施例,可以向用户提供若干应用模板,然后根据用户对这些模板的选择以及对所选择的模板的参数设置,推导出用户应用程序对存储资源的性能指标的要求。如何进行所述推导是本领域的常用手段,在此不再赘述。步骤402,获得各个中间卷所能提供的存储资源。可以使用现有工具来监控和得到存储云中各中间卷的实时使用状况,并计算得到各中间卷当前空闲存储容量,空闲访问速率的具体数值。如上所述,在根据本发明的实施例中,中间卷和存储设备是一一对应的关系。因此在下面的描述中,中间卷和存储设备具有相同的指代对象。步骤403,根据用户应用程序对存储资源的要求和各个中间卷所能提供的存储资源,选择中间卷以满足所述对存储资源的要求,其中所述中间卷的最小数目根据所述冗余度确定。举例而言,比如某用户应用程序对存储资源的要求是冗余度RAID5(4+P)存储容量800GB访问速率10000IP0S首先,根据所述冗余度确定存储设备的最小数目。冗余度为RAID5(4+P)表示在实际分配给用户应用程序的存储容量中,有五分之一即20%是用来进行冗余存储的,其余五分之四即80%是用来满足用户应用程序对存储容量的要求的。根据这一性能指标,确定所选择的存储设备的最小数目为5。本领域技术人员可以理解,冗余度还可以用其他方式表示,但都可以转换为以上关系。其次,根据步骤402所得到的各存储设备所能提供的存储资源确定是否存在5个分别可以提供200GB,2000I0PS的存储资源,且这些存储资源来自不同的存储设备。如上所述,这5个存储资源中只有4个是用来满足用户应用程序对存储容量的要求的。如果存在,则称这5个存储资源分别为A,B,C,D,E0如果在整个存储云中都找不到如上所述的存储资源时,则将所有指标同时减半进行第二次搜索。比如说,只找到了 4个分别可以提供200GB,2000I0PS的且来自不同存储设备的存储资源A、B、C和D ;在第二次搜索中又找到了 2个分别可以提供100GB,1000I0PS的存储资源El,E2,从而将其合并为一个存储资源E。可以理解,El和E2不会与A、B、C或D中的任意一个位于同一个存储设备。还可以理解,El和E2也不会位于同一个存储设备,因为如果El和E2位于同一个存储设备的话,在第一次搜索中就可以找到E。由于El,E2将以strip(RAIDO)的方式协同工作,所以他们的合并空间也正好具有200GB,2000I0PS的性能指标。如果这样的存储资源还找不到,则将所有指标再次同时减半进行第三次搜索。如果存储云中满足上述条件的存储资源超过所需数目,则可以进行进一步的筛选。根据本发明的一个实施例,选择已经被启用的存储设备上的存储资源,而不是启用新的存储设备,从而节省启用新的存储设备带来的额外能耗。根据本发明的另一个实施例,选择已经被占用的存储资源较少的存储设备上的存储资源,从而保证各存储设备的负载平行。根据本发明的再一个实施例,将不同用户应用程序的用户数据尽可能分配到不同的存储设备上的存储资源,从而使得某一用户应用程序对存储资源的性能指标的要求变化不会影响到其他用户应用程序,并且由于用户数据的物理隔绝而增强了安全性。可以由用户指定上述筛选方法。需要注意的是,针对访问速率这一指标,根据本发明一个实施例,采用的是thin-provision的策略。根据这种策略,虽然系统在名义上成功为用户应用程序分配一块符合用户应用程序所要求的访问速率的存储资源,但并不实际完全占据所述访问速率。例如,如果在最大访问速率为10000I0PS的存储设备上为用户应用程序分配了一块存储资源来向用户应用程序提供2000I0PS的访问速率,则所述存储设备的空闲访问速率并非简单地用10000减去2000,而是根据如步骤402所得到的实际被占用的访问速率来计算该存储设备的空闲访问速率。这样可以做到使存储设备的访问速率得以最大的发挥。为了避免由于实际被占用的访问速率随时间的起伏过大导致在该存储设备上分配了过多的访问速率,上述实际被占用的访问速率通常取一段时间内的平均值。步骤404,根据冗余度的要求将用户数据存储到所选择的中间卷中。仍然以上述冗余度RAID5(4+P)为例。假设当前的用户数据被按照最小单位分成16个用户数据块,则根据冗余度的要求,每4个用户数据块需要配以I个冗余数据块。因此,可以将用户数据分成4个块组,如下所述
权利要求
1.一种管理多台存储设备的方法,其中将各台存储设备提供的存储资源分别虚拟化整合为对应的中间卷,并且将多个中间卷虚拟化整合成单独的逻辑卷,该方法包括 获取向所述逻辑卷提出的对存储资源的要求,所述要求至少包括对冗余度的要求; 获得各个中间卷所能提供的存储资源; 根据所述对存储资源的要求和各个中间卷所能提供的存储资源,选择中间卷以满足所述对存储资源的要求,其中所述中间卷的最小数目根据所述对冗余度的要求确定;以及根据所述对冗余度的要求将用户数据存储到所选择的中间卷中。
2.如权利要求1所述的方法,进一步包括 接收从中间卷中移除存储资源的指令; 获取该中间卷上的空闲存储容量和待移除存储资源的存储容量; 在该中间卷上的空闲存储容量大于待移除存储资源的存储容量的情况下,从该中间卷上分配其他存储资源以代替所述待移除存储资源。
3.如权利要求2所述的方法,进一步包括 在该中间卷上的空闲存储容量小于待移除存储资源的存储容量的情况下,获取待移除存储资源所对应的逻辑卷; 针对所获取的每个逻辑卷,在其他中间卷上选择目标存储资源,其中所述目标存储资源与源存储资源具有相同的性能指标,所述源存储资源是待移除存储资源所在的中间卷上对应于该逻辑卷的存储资源; 将所述目标存储资源分配给对应的逻辑卷。
4.如权利要求1所述的方法,进一步包括 接收移除中间卷的指令; 获取待移除中间卷所涉及的逻辑卷; 针对所获取的每个逻辑卷,在其他中间卷上选择目标存储资源,其中所述目标存储资源与源存储资源具有相同的性能指标,所述源存储资源是待移除中间卷上对应于该逻辑卷的存储资源; 将所述目标存储资源分配给对应的逻辑卷。
5.如权利要求1所述的方法,进一步包括 接收对逻辑卷增加存储资源的指令,所述指令包含存储资源性能指标的增量; 计算所述增量在与该逻辑卷相关的各中间卷上的分量; 在所述增量可以由所述各中间卷的空闲存储资源中进行分配的情况下,从所述各中间卷的空闲存储资源中分配所述增量分量给该逻辑卷。
6.如权利要求5所述的方法,进一步包括 在所述增量无法由所述中间卷的空闲存储资源中进行分配的情况下,在其他中间卷上选择目标存储资源,所述目标存储资源具有增加后的性能指标; 将所述目标存储资源分配给所述逻辑卷。
7.—种管理多台存储设备的装置,其中将各台存储设备提供的存储资源分别虚拟化整合为对应的中间卷,并且将多个中间卷虚拟化整合成单独的逻辑卷,该装置包括 要求获取模块,配置为获取向所述逻辑卷提出的对存储资源的要求,所述要求至少包括对冗余度的要求;存储资源获取模块,配置为获得各个中间卷所能提供的存储资源; 中间卷选择模块,配置为根据所述对存储资源的要求和各个中间卷所能提供的存储资源,选择中间卷以满足所述对存储资源的要求,其中所述中间卷的最小数目根据所述对冗余度的要求确定;以及 用户数据存储模块,配置为根据所述对冗余度的要求将用户数据存储到所选择的中间卷中。
8.如权利要求7所述的装置,进一步包括 配置为接收从中间卷中移除存储资源的指令的模块; 配置为获取该中间卷上的空闲存储容量和待移除存储资源的存储容量的模块; 配置为在该中间卷上的空闲存储容量大于待移除存储资源的存储容量的情况下,从该中间卷上分配其他存储资源以代替所述待移除存储资源的模块。
9.如权利要求8所述的装置,进一步包括 配置为在该中间卷上的空闲存储容量小于待移除存储资源的存储容量的情况下,获取待移除存储资源所对应的逻辑卷的模块; 配置为针对所获取的每个逻辑卷,在其他中间卷上选择目标存储资源的模块,其中所述目标存储资源与源存储资源具有相同的性能指标,所述源存储资源是待移除存储资源所在的中间卷上对应于该逻辑卷的存储资源; 配置为将所述目标存储资源分配给对应的逻辑卷的模块。
10.如权利要求7所述的装置,进一步包括 配置为接收移除中间卷的指令的模块; 配置为获取待移除中间卷所涉及的逻辑卷的模块; 配置为针对所获取的每个逻辑卷,在其他中间卷上选择目标存储资源的模块,其中所述目标存储资源与源存储资源具有相同的性能指标,所述源存储资源是待移除中间卷上对应于该逻辑卷的存储资源; 配置为将所述目标存储资源分配给对应的逻辑卷的模块。
11.如权利要求7所述的装置,进一步包括 配置为接收对逻辑卷增加存储资源的指令的模块,所述指令包含存储资源性能指标的增量; 配置为计算所述增量在与该逻辑卷相关的各中间卷上的分量的模块; 配置为在所述增量可以由所述各中间卷的空闲存储资源中进行分配的情况下,从所述各中间卷的空闲存储资源中分配所述增量分量给该逻辑卷的模块。
12.如权利要求11所述的装置,进一步包括 配置为在所述增量无法由所述中间卷的空闲存储资源中进行分配的情况下,在其他中间卷上选择目标存储资源的模块,所述目标存储资源具有增加后的性能指标; 配置为将所述目标存储资源分配给所述逻辑卷的模块。
全文摘要
根据本发明实施例的一种管理多台存储设备的方法,其中将各台存储设备提供的存储资源分别虚拟化整合为对应的中间卷,并且将多个中间卷虚拟化整合成单独的逻辑卷,该方法包括获取向所述逻辑卷提出的对存储资源的要求,所述要求至少包括冗余度;获得各个中间卷所能提供的存储资源;根据所述对存储资源的要求和各个中间卷所能提供的存储资源,选择中间卷以满足所述对存储资源的要求,其中所述中间卷的最小数目根据所述冗余度确定;以及根据冗余度的要求将用户数据存储到所选择的中间卷中。根据本发明实施例,可以在云存储的环境中对存储设备进行有效的管理。
文档编号H04L29/08GK103036930SQ20111030547
公开日2013年4月10日 申请日期2011年9月30日 优先权日2011年9月30日
发明者姜鹏, 张昕, 张融, M·S·弗勒明 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1