用于为多层存储区域网络生成多计划的系统与方法转让专利

申请号 : CN200610101708.1

文献号 : CN1904856B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 莫希·V·德瓦拉孔德戴维·阿尔森·乔治桑迪普·高皮斯迪李康源康斯坦丁诺斯·马古蒂斯拉马尼·兰杰·鲁特莱伊高里·沙赫谭仲浩诺伯特·乔治·沃格尔卡拉达尔·瓦鲁甘地

申请人 : 国际商业机器公司

摘要 :

一种多计划生成系统,为多层存储区域网络生成多计划。该系统生成预定数量的计划,同时生成并保留全局最优的计划。该系统根据优化标准和用户需求动态计算并排序这些计划。该系统为存储区域网络中的每一层包括计划器,如主机计划器、存储计划器、网络计划器、区域计划器等。每个计划器都施加变化优化、预览优化和细节优化并与策略仓库交互来获得策略引导,使系统能够删改计划集合。控制模块以预定次序调用计划器。

权利要求 :

1.一种用于为多层存储区域网络生成多计划的基于计算机的方法,包括:定义多个计划层,包括:主机层;存储设备层;及网络层;

对所述多个计划层中的每个,根据至少一种用户定义的优化标准动态计算和排序计划的集合;及对所述多个计划层中的每个,施加变化优化、预览优化和细节优化,以将计划集合删改成一个或多个最优计划,其中施加变化优化用于对多个计划层的每一个指定期望的变化等级,施加预览优化用于预览其它层所生成的计划,施加细节优化用于指定所生成的计划中的细节。

2.如权利要求1所述的方法,其中多个计划层中的每一个都生成候选计划,并将候选计划发送到对应的下一处理层。

3.如权利要求2所述的方法,其中对应的下一处理层考虑特定于层的计划方案来评估候选计划,以便生成至少一个组合计划。

4.如权利要求3所述的方法,其中对应的下一处理层向对应于该下一处理层的计划层返回该至少一个组合计划。

5.如权利要求4所述的方法,其中对应于该下一处理层的计划层预览该至少一个组合计划,并只优化该至少一个组合计划。

6.如权利要求5所述的方法,其中对应于该下一处理层的计划层只优化具有昂贵实现成本的至少一个组合计划。

7.如权利要求5所述的方法,其中对应于该下一处理层的计划层通过只对该至少一个组合计划提供计划细节来只优化该至少一个组合计划。

8.如权利要求1所述的方法,其中多个计划层中的每一个包括具有不同路径长度的多条代码路径。

9.如权利要求8所述的方法,还包括基于一个或多个最优计划中所需的细节等级选择代码路径。

10.一种用于为多层存储区域网络生成多计划的基于计算机的系统,包括:定义多个计划层的装置,所述多个计划层包括:主机层;存储设备层;及网络层;

对所述多个计划层的每个,根据至少一种用户定义的优化标准动态计算和排序计划的集合的装置;及对所述多个计划层的每个,施加变化优化、预览优化和细节优化,以将计划集合删改成一个或多个最优计划的装置,其中施加变化优化用于对多个计划层的每一个指定期望的变化等级,施加预览优化用于预览其它层所生成的计划,施加细节优化用于指定所生成的计划中的细节。

11.如权利要求10所述的系统,其中多个计划层中的每一个都生成候选计划,并将候选计划发送到对应的下一处理层。

12.如权利要求11所述的系统,其中对应的下一处理层考虑特定于层的计划方案来评估候选计划,以便生成至少一个组合计划。

13.如权利要求12所述的系统,其中对应的下一处理层向对应于该下一处理层的计划层返回该至少一个组合计划。

说明书 :

技术领域

本发明总体上涉及为多层存储区域网络生成计划;计划包括存储区域网络中每一层中设备的选择与配置。

背景技术

用于存储区域网络的设计处理包括确定主机、网络和存储设计组件。特定于域的计划工具可以在各种域中使用,如网络计划器、数据库查询优化器、存储容量和服务器容量计划器。相同类型的底层数学优化算法可以用在这些不同域的每一种中(如最优适应装箱、线性编程等);但是,成本模型的输入需求、输入约束和组件在这些域的每一种中是不同的。因此,由于这种设计空间横跨主机、网络和存储域,所以用于存储区域网络的计划生成的需求是独特的。
用于存储区域网络的传统设计工具典型地只输出跨存储区域网络的主机、网络和存储层的单一的综合设计。有些用于存储区域网络的传统设计工具需要系统设计人员选择预先存在的设计模板(饼干模子方法)。这些预包装的设备模板引导存储区域网络的设计处理。但是,选择预先存在的模板会导致超量配置。预先存在的模板不允许对存储区域网络的特定实现进行关于成本、物理空间、功率使用等的设计优化。
传统的存储区域网络计划工具不执行跨不同层的综合计划。即,有只对网络层提供多个计划的网络计划器或只对存储层提供多个计划的存储计划器。这些传统的计划器不考虑层间的优化问题。
当使用用于存储区域网络的传统设计工具时,生成跨存储区域网络不同层的附加计划导致组合爆炸。例如,主机计划生成四种可能的不同可选方案,存储计划生成五种独立的计划可选方案,而网络计划生成六种其它独立的计划可选方案。因此,识别一种最优解决方案需要总共4*5*6(120)种计划的评估。如果计划考虑每个都具有不同成本的设备类型和不同的制造商,则整个计划处理要花费很长的时间才能完成。
尽管用于存储区域网络的传统设计工具已经证明是有用的,但期望能提出另外的改进。目前,传统的存储区域网络计划工具不具有动态改变所生成计划信息量的能力。例如,在有些情况下,用户只想获得关于所使用设备数量的大致了解(即,他们不想要存储配置或结构互连信息),而在其它情况下用户想要更具体的计划信息。例如,当销售商在顾客站点推荐解决方案时,计划工具需要快速地提供关于成本的高级信息。随后,在部署阶段,计划工具需要生成安装和配置脚本。
目前不存在能够(以低超量配置)生成横跨主机、存储和网络层的附加计划并根据一种或多种优化标准(如成本、或功率消耗或物理空间)排序这些生成的计划的方法。此外,目前没有根据需要允许用户指定高级计划或具体计划的可用计划工具。没有允许用户指定他们想在其中看到更多计划的层的计划器。例如,在综合的生成计划中,用户将想在关于网络层或存储层的输出计划中看到更多变化。因此,所需要的是用于为多层存储区域网络生成多计划的系统、计算机程序产品及关联的方法。迄今为止,对这种解决方案的需求还未满足。

发明内容

本发明满足了这种需求,而且提出了用于为多层存储区域网络生成多计划的系统、服务、计算机程序产品及关联的方法(在此统称为“系统”或“本系统”)。本系统包括最小化在不同层之间通过的计划总数同时仍生成并保留总体上最优的计划的总计划生成器机制。如在此所使用的,“层”对应于主机、结构(fabric)、存储阵列或区域中的一个。
本系统包括快速生成预定数量计划的多层(跨主机、存储、网络、区域、其它层)计划生成器。本系统根据优化标准和用户需求排序这些计划。本系统不要需要预先配置的模板;相反,本系统关于如性能、可用性、安全性和未来发展的标准根据应用层用户需求动态地计算这些计划。
本系统为存储区域网络中的每一层包括计划器。示例计划器包括主机计划器、存储计划器、网络计划器、区域计划器及用于其它层的计划器(统称为计划器)。在示例计划处理中,主机计划器生成使用不同数量与类型的主机总线适配器的候选计划。主机计划作为输入提供到存储计划器中。
存储计划器确定存储控制器的数量与类型。存储计划器还确定存储池的数量和用于存储池的特定配置需求(如RAID级、条纹级等),以满足用户的性能需求。由存储计划器生成的组合的主机和存储计划器输出提供给网络计划器,以确定所需交换机的数量与类型。网络计划器还确定网络的结构互连性。
每个计划器都与策略数据库中的策略仓库交互,以获得策略引导。策略引导使本系统能够删改(prune)可用的有效计划集合。控制模块以预定次序调用计划器。对每个计划器,控制模块还传递应用性能、可用性、未来发展、安全性需求和其它用户输入。
本系统作为分层处理执行计划,其中主机计划器关于主机总线适配器的数量与类型和主机总线适配器配置执行特定于主机的计划。基于主机计划器输出,存储计划器关于存储阵列和存储池的类型与数量及容量配置执行计划。基于组合的主机和存储计划器输出,网络计划器关于交换机数量和结构互连性执行计划。
本系统施加变化(variance)优化、超前(或预览优化)及细节优化。变化优化允许用户选择存储区域网络中的层来接收更多种类的生成计划。
预览优化使本系统能够预览对其它层生成的计划,来确定在当前层所生成的计划是否与对其它层生成的计划不兼容。这允许层在后续层删改次优的计划。例如,主机计划器将其计划发送到存储计划器并快速确定当联系存储层计划扩展考虑时哪些主机计划将导致较好的解决方案。主机计划器删改次优的计划。
因为每个子计划器都可能属于局部最优,所以在每个子计划器独立的计划和优化及在最后组合结果可能导致次优的计划。本系统的预览优化使用基于端口的成本模型,该模型预览还未处理的层中的特征,例如网络层所需的交换机数量。预览优化允许主机计划器、存储计划器、网络计划器、区域计划器及用于其它层的计划器删改昂贵或不兼容的可选方案。
例如,基于由主机计划器生成的计划和从用户输入获得的逻辑流信息,存储计划器可以利用低端存储设备代替高端存储系统来生成计划,以便降低存储成本。但是,在网络计划器配置用于存储设备的存储区域网络结构后,总的成本可能比用高端存储的计划更昂贵,因为由存储计划器生成的计划需要更昂贵的交换机(带更多的FC端口)。利用预览优化,存储计划器就“提前”知道所生成的计划如何影响网络计划器的操作并因此如何影响总的计划。
预览优化使用计划器之间的通信传递一个计划器上的简单参数和对成本的快速计算,以便向其它层提供“暗示”。例如,一旦存储计划已经由存储计划器生成,存储计划器就可以计算主机层所需的端口和存储层所需的存储设备的总数。存储计划器可以将这些值传递到网络层;网络计划器随后估计支持由存储计划器生成的计划所需的交换机的数量与类型。网络计划器将该估计或“暗示”返回给存储计划器。利用这种暗示,存储计划器选择一个或多个计划。
在一种实施方式中,网络计划器大致的成本计算可以由固定数量的可调整大小的存储区域网络结构模板变得容易。所选的存储区域网络结构模板包括内核-边缘设计、仅内核设计、共处设计等。这些结构模板是模仿由于弹性、可伸缩性和维护的简易性而广泛用于存储区域网络的实际存储区域网络结构配置。利用这些结构模板,网络计划器可以快速计算支持由主机计划器和存储计划器生成的计划所需的交换机数量。
细节优化使用户能够指定所生成计划中提供的细节量。关于生成单个计划所需的时间量,细节优化提供了灵活性。因此,在计划中不需要很多细节的情况下,细节优化允许用户在与生成一个具体计划所需相同的时间段内生成几个概括或高级计划。
本系统可以在如多计划生成实用程序的实用程序中体现。本发明还提供通过指定用于存储区域网络的需求的集合然后调用多计划生成实用程序(特征)生成这种计划来为用户识别用于存储区域网络的最优计划的集合的装置。需求集合包括期望数量的生成计划、期望计划变化的层、存储需求、优化标准、网络类型、形式为例如设备目录数据库的一组设备及关于设备数量、类型或制造商的用户偏好。
主机计划器开始变化优化计划。本系统确定主机层是否是决定层,即主机层是否被指定为变化层。如果主机层被指定为决定层,则主机计划器生成X优化计划。如果主机层未被指定为决定层,则主机计划器生成Y优化计划。X和Y的值是预定义的;X大于Y。
本发明提供一种用于为多层存储区域网络生成多计划的基于计算机的方法,包括:定义多个计划层,包括:主机层;存储设备层;及网络层;对所述多个计划层中的每个,根据至少一种用户定义的优化标准动态计算和排序计划的集合;及对所述多个计划层中的每个,施加变化优化、预览优化和细节优化,以将计划集合删改成一个或多个最优计划,其中施加变化优化用于对多个计划层的每一个指定期望的变化等级,施加预览优化用于预览其它层所生成的计划,施加细节优化用于指定所生成的计划中的细节。
本发明还提供一种用于为多层存储区域网络生成多计划的基于计算机的系统,包括:定义多个计划层的装置,所述多个计划层包括:主机层;存储设备层;及网络层;对所述多个计划层的每个,根据至少一种用户定义的优化标准动态计算和排序计划的集合的装置;及对所述多个计划层的每个,施加变化优化、预览优化和细节优化,以将计划集合删改成一个或多个最优计划的装置,其中施加变化优化用于对多个计划层的每一个指定期望的变化等级,施加预览优化用于预览其它层所生成的计划,施加细节优化用于指定所生成的计划中的细节。

附图说明

本发明的各种特征及获得它们的方式将参考以下说明、权利要求和附图更加具体地描述,其中在合适的时候,标号被重用于指示所引用项目之间的对应性,而且其中:
图1包括图1A和1B并表示其中本发明的多计划生成系统可以使用的示例操作环境的示意性说明;
图2是说明图1的多计划生成系统的控制模块操作方法的处理流程图;
图3是说明图1的多计划生成系统的主机计划器操作方法的处理流程图;
图4是说明图1的多计划生成系统的存储计划器操作方法的处理流程图;及
图5是说明图1的多计划生成系统的网络计划器操作方法的处理流程图。

具体实施方式

图1(图1A和1B)描述了其中根据本发明用于为多层存储区域网络生成多计划的系统、服务、计算机程序产品及关联的方法(“系统10”)可以使用的示例总环境。系统10包括典型地嵌入到或安装到计算机上的软件编程代码或计算机程序产品。可选地,系统10可以保存在如磁盘、CD、硬盘驱动器或类似设备的合适存储介质上。
多层存储区域网络100包括连接如主机层30、存储层40、网络层50、区域层60及其它层70(统称为层75)的层的网络20。系统10包括用于每个层75的计划器:主机计划器300、存储计划器400、网络计划器500、区域计划器600及其它层计划器700,统称为计划器800。系统10还包括用于从用户接收用户输入85、调用每个计划器800并向用户提供计划器输出90的控制模块80。系统10包括策略仓库的仓库数据库95。策略仓库包括使计划器800能够删改可用的有效计划集合的策略引导。策略数据库95还包括用于为多层存储区域网络100的层75所生成的计划选择可能设备的一个或多个设备目录数据库。
用户输入85包括期望数量的生成计划、其中期望变化的指定层、对存储层40的存储需求、对所生成计划的优化标准、用于网络层50的网络类型、选定的设备目录及关于多计划生成过程中系统10所考虑的设备的数量、类型或制造商的用户偏好。
指定其中期望变化的层允许用户指定以与用于其它层75相比更精细的分辨率执行计划的一个层75。给予用户在关于特定层的计划中看到更多变化的选择。例如,顾客在关于存储层40的计划中期望最多10个计划有更多变化。系统10在为存储层40生成的计划中增加变化而在关于主机层30、网络层50、区域层60及其它层70所生成的计划中减少变化。系统10使用来自用户输入85的顾客偏好信息删改用于主机层30、网络层50、区域层60及其它层70的设备类型,由此减少总的计划时间。
图2是说明系统10为多层存储区域网络100生成多计划的方法200的处理流程图。系统10接收用户输入(步骤205)。系统10执行主机计划处理(步骤300A,在图3中进一步描述),利用来自用户输入85和策略数据库95的输入为主机层30生成预定数量的计划。系统10执行存储计划处理(步骤400A,在图4中进一步描述),利用包括用户输入85、策略数据库95和主机计划器300的输出的输入为存储层40生成预定数量的计划。系统10执行网络计划处理(步骤500A,在图5中进一步描述),利用包括用户输入85、策略数据库95和存储计划器400的输出的输入为网络层50生成预定数量的计划。
系统10可选地执行区域计划处理(步骤210),利用包括用户输入85、策略数据库95和网络计划器500的输出的输入为区域层60生成预定数量的计划。系统10可选地对其它层70执行计划处理(步骤215),利用包括用户输入85、策略数据库95和区域计划器600的输出的输入为其它层70生成预定数量的计划。系统10将所生成的计划(步骤215)作为计划器输出90输出。
图3说明了由主机计划器300执行的方法300A。主机计划器300的输入包括用户输入85和来自策略数据库95的输入。控制模块80启动主机计划处理(步骤305)。主机计划器300开始变化优化计划(步骤310)。系统10确定主机层30是否是决定层(决定步骤315);即,主机层30是否被指定为变化层。如果主机层30被指定为决定层,则主机计划器300生成X优化计划(步骤320)。如果主机层30未被指定为决定层,则主机计划器300生成Y优化计划(步骤325)。X和Y的值是预定义的;X大于Y。在一次运转中,主机计划器300的输出发送X次输入,而在另一次运转中,它可能发送Y次输入,这依赖于主机计划器300期望的变化等级。
主机计划器300开始预览优化计划(步骤330)。主机计划器300使用预览优化计划来预览层75中还未计划但可能导致生成次优计划的特征。主机计划器300根据用户在用户输入85中提供的标准排序所生成的计划(步骤335)。基于由预览优化计划生成的结果,主机计划器300从所生成的计划删改任何昂贵或不兼容的可选方案。
主机计划器300开始细节优化计划(步骤340)。主机计划器确定是否请求高级计划(决定步骤345)。如果请求高级计划,则主机计划器300生成概括计划(步骤350)。如果不请求高级计划,则主机计划器生成细节计划(步骤355)。主机计划器300输出主机计划(步骤360)。
图4说明了由存储计划器400执行的方法400A。存储计划器400的输入包括用户输入85、来自策略数据库95的输入及主机计划器300的输出。控制模块80启动存储计划处理(步骤405)。存储计划器400开始变化优化计划(步骤410)。系统10确定存储层40是否是决定层(决定步骤415);即,存储层40是否被指定为变化层。如果存储层40被指定为决定层,则存储计划器400生成X优化计划(步骤420)。如果存储层40未被指定为决定层,则存储计划器400生成Y优化计划(步骤425)。X和Y的值是预定义的;X大于Y。
存储计划器400开始预览优化计划(步骤430)。存储计划器400使用预览优化计划来预览层75中还未计划但可能导致生成次优计划的特征。存储计划器400根据用户在用户输入85中提供的标准排序所生成的计划(步骤435)。基于由预览优化计划生成的结果,存储计划器400从所生成的计划删改任何昂贵或不兼容的可选方案。
存储计划器400开始细节优化计划(步骤440)。存储计划器确定是否请求高级计划(决定步骤445)。如果请求高级计划,则存储计划器400生成概括计划(步骤450)。如果不请求高级计划,则存储计划器生成细节计划(步骤455)。存储计划器400输出存储计划(步骤460)。
如果在存储层40中期望计划变化,则存储计划器400选择关于用户所提供标准最优的主机计划并丢弃一个或多个剩余的主机计划。如果成本是优化标准,则通过识别例如最低成本可选方案,存储计划器400确定最优主机计划。然后,存储计划器400使每个主机计划通过预览优化中的预览成本确定公式,来确认最低成本可选方案还是期望的最优计划。
存储计划器400检索满足由用户在用户输入85中提供的存储设备偏好的一些或全部可能的存储设备。存储计划器400在主机和被检索的存储设备之间执行互用性检查。存储计划器400删掉除最优主机计划之外的全部主机计划。存储计划器400还删掉不能互用的存储控制器。
剩余的存储控制器集合可以是不同类型(关于存储容量限制)和来自不同的制造商。如果用户指定了用于特定存储控制器的偏好,则存储计划器400使用该控制器用于存储计划。否则,存储计划器400基于不同的设备类型而不是制造商生成计划。例如,存储计划器400可以使用六个中级存储控制器生成计划或三个高端存储控制器生成其它可能的计划。存储计划器400基于策略(如未来发展、可用性、拷贝服务需求)过滤控制器类型。
对于每种控制器类型,存储计划器400确定所需控制器的数量。存储计划器400使用预览优化来确定用于每种控制器类型的大致网络结构开销。存储计划器400基于预览优化的结果排序或分级存储控制器偏好。
存储计划器400基于剩余的存储控制器类型生成期望数量的计划。基于期望的计划细节等级,存储计划器在存储计划中生成合适数量的信息。存储计划器400将这些生成的计划转发到网络计划器500。
图5说明了由网络计划器500执行的方法500A。网络计划器500的输入包括用户输入85、来自策略数据库95的输入及存储计划器400的输出。控制模块80启动网络计划处理(步骤505)。网络计划器500开始变化优化计划(步骤510)。系统10确定网络层50是否是决定层(决定步骤515);即,网络层50是否被指定为变化层。如果网络层50被指定为决定层,则网络计划器500生成X优化计划(步骤520)。如果网络层50未被指定为决定层,则网络计划器500生成Y优化计划(步骤525)。X和Y的值是预定义的;X大于Y。
网络计划器500开始预览优化计划(步骤530)。网络计划器500使用预览优化计划来预览层75中还未计划但可能导致生成次优计划的特征。基于由预览优化计划生成的结果,网络计划器500从所生成的计划删改任何昂贵或不兼容的可选方案。网络计划器500根据用户在用户输入85中提供的标准排序所生成的计划(步骤535)。
网络计划器500开始细节优化计划(步骤540)。网络计划器确定是否请求高级计划(决定步骤545)。如果请求高级计划,则网络计划器500生成概括计划(步骤550)。如果不请求高级计划,则网络计划器生成细节计划(步骤555)。网络计划器500输出网络计划(步骤560)。
网络计划器500将由存储计划器400生成的每个计划作为输入来生成最优结构计划。例如,如果用户在存储设备中期望更多变化,则网络计划器400不删改由存储计划器400生成的计划。
应当理解,已经描述的本发明特定实施方式仅仅是说明本发明原理的特定应用。在不背离本发明主旨与范围的情况下,可以对在此所述用于为多层存储区域网络生成多计划的本系统、方法及计算机程序进行多种修改。