构建基于存储管理计划规范的设备的模拟器的方法和装置.pdf

上传人:000****221 文档编号:4571405 上传时间:2018-10-20 格式:PDF 页数:34 大小:1.48MB
返回 下载 相关 举报
摘要
申请专利号:

CN200810082238.8

申请日:

2008.02.26

公开号:

CN101520739A

公开日:

2009.09.02

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效|||公开

IPC分类号:

G06F9/455

主分类号:

G06F9/455

申请人:

国际商业机器公司

发明人:

张俊伟; 顾春花; 徐 建

地址:

美国纽约

优先权:

专利代理机构:

北京市中咨律师事务所

代理人:

于 静;张亚非

PDF下载: PDF下载
内容摘要

一种用于构建SMI-S设备的模拟器的方法和装置,该方法包括以下步骤:根据SMI-S为相关的通用设备类型实现核心简档服务,从而形成用于所述通用设备类型的核心服务提供器,其中所述核心简档服务包含用于所述通用设备类型的核心CIM类;从将被模拟的SMI-S设备的真实的服务提供器中挖掘特定CIM类的模式定义以及实例数据,并在本地储存库中构建所述特定CIM类及其实例;以及将来自所述真实的服务提供器中的特定CIM类映射到所述核心简档服务包含的核心CIM类,使得所述核心简档服务能够使用所述本地储存库中的所述特定CIM类及其实例进行操作,从而形成所述SMI-S设备的模拟器。

权利要求书

1.  一种用于构建基于存储管理计划规范的设备的模拟器的方法,包括以下步骤:
根据存储管理计划规范为相关的通用设备类型实现核心简档服务,从而形成用于所述通用设备类型的核心服务提供器,其中所述核心简档服务包含用于所述通用设备类型的核心CIM类;
从将被模拟的基于存储管理计划规范的设备的真实的服务提供器中挖掘特定CIM类的模式定义以及实例数据,并在本地储存库中构建所述特定CIM类及其实例;以及
将来自所述真实的服务提供器中的特定CIM类映射到所述核心简档服务包含的核心CIM类,使得所述核心简档服务能够使用所述本地储存库中的所述特定CIM类及其实例进行操作,从而形成所述SMI-S设备的模拟器。

2.
  根据权利要求1的方法,其中所述映射步骤还包括将所述特定CIM类中的特定CIM服务类与相应的所述核心服务提供器相关联地注册到CIMOM中。

3.
  根据权利要求1的方法,还包括根据用户设置,对所述本地储存库中的实例数据进行配置的步骤,其中所述配置步骤是根据由用户创建或修改的配置文件进行的。

4.
  根据权利要求1的方法,其中所述为相关的通用设备类型实现核心简档服务包括为如下四种类型的通用设备类型实现核心简档服务:盘阵列,带库、交换机和HBA。

5.
  根据权利要求1的方法,其中所述挖掘步骤是使用能够获得类的正确顺序的深度优先类挖掘算法执行的,且所述构建步骤是根据所述获得的类的正确顺序执行的。

6.
  根据权利要求1的方法,其中所述映射步骤是通过在映射文件中建立的核心CIM类与特定CIM类的名称对实现的。

7.
  一种用于构建基于存储管理计划规范的设备的模拟器的装置,包括:
核心服务模块,用于根据存储管理计划规范为相关的通用设备类型实现核心简档服务,从而形成用于所述通用设备类型的核心服务提供器,其中所述核心简档服务包含用于所述通用设备类型的核心CIM类;
挖掘模块,用于从将被模拟的基于存储管理计划规范的设备的真实的服务提供器中挖掘特定CIM类的模式定义以及实例数据,并在本地储存库中构建所述特定CIM类及其实例;以及
映射模块,用于将来自所述真实的服务提供器中的特定CIM类映射到所述核心简档服务中包含的核心CIM类,使得所述核心简档服务能够根据来自CIM客户的请求,使用所述本地储存库中的所述特定CIM类及其实例进行操作,从而形成所述SMI-S设备的模拟器。

8.
  根据权利要求7的装置,其中所述映射模块还用于将所述特定CIM类中的特定CIM服务类与相应的所述核心服务提供器相关联地注册到CIMOM中。

9.
  根据权利要求7的装置,还包括设备管理模块,用于根据用户设置,对所述本地储存库中的实例数据进行配置,其中所述设备管理模块根据由用户创建或修改的配置文件进行所述配置。

10.
  根据权利要求7的装置,其中所述核心服务模块用于为如下四种类型的通用设备类型实现核心简档服务:盘阵列,带库、交换机和HBA。

11.
  根据权利要求7的装置,其中所述挖掘模块使用能够获得类的正确顺序的深度优先类挖掘算法执行所述挖掘,且根据所述获得的类的正确顺序执行所述构建。

12.
  根据权利要求7的装置,其中所述映射模块通过在映射文件中建立的核心CIM类与特定CIM类的名称对实现所述映射。

13.
  根据权利要求7的装置,还包括用于存储所述挖掘并构建的特定CIM类及其实例的本地储存库。

14.
  一种基于存储管理计划规范的设备的模拟器,包括:
核心服务提供器,用于提供符合存储管理计划规范的用于相关的通用设备类型的核心简档服务,其中所述核心简档服务包含用于所述通用设备类型的核心CIM类;
储存库,用于存储来自将被模拟的基于存储管理计划规范的设备的真实的服务提供器的特定CIM类的模式定义以及实例数据;
其中,所述核心服务提供器在运行时根据所述来自真实的服务提供器的特定CIM类到所述核心简档服务中包含的核心CIM类的映射关系,对所述本地储存库中的所述特定CIM类及其实例进行操作。

15.
  根据权利要求14的模拟器,其中存储在所述储存库中的所述特定CIM类的实例的数据能够根据用户设置进行配置。

16.
  根据权利要求14的模拟器,其中所述核心服务提供器包括用于为如下四种类型的通用设备类型提供核心简档服务的服务提供器:盘阵列,带库、交换机和HBA。

17.
  根据权利要求14的模拟器,还包括CIMOM,其中所述特定CIM类中的特定CIM服务类与相应的所述核心简档服务提供器相关联地被注册到该CIMOM中。

说明书

构建基于存储管理计划规范的设备的模拟器的方法和装置
技术领域
本发明涉及计算机领域,更具体涉及一种构造用于存储及网络设备管理应用的测试的、基于存储管理计划规范(SMI-S)的设备的模拟器的方法和系统。
背景技术
由分布式管理任务组(DMTF)开发的公共信息模型(CIM)是一种用于描述关于应用和设备的数据的标准方式,它使得管理员和软件管理程序可以相同方式控制不同平台上的应用和设备,确保了在整个网络例如因特网上的互操作性。由于CIM的通用体系结构,它已被广泛应用于管理各种类型的存储和网络设备的管理软件中。
存储网络行业协会(SNIA)的SMI-S使用CIM作为实施模型。SMI-S定义了用于存储设备的标准类、属性、方法和方法的执行逻辑过程。SMI-S允许对异类存储环境进行简单的、标准化的和成本高效的管理。它允许IT管理者使用OEM的软件来管理第三方的存储产品,或相反。此外,SMI-S提供了公共的、可互操作的和可扩展的管理传输机制,而与厂商无关。一个完整的、统一的和严格规范的对象模型提供了对存储区域网(SAN)环境中的逻辑单元号和存储区(zone)等的控制。SMI-S也包括一个自动的发现系统。通过减少管理专用接口的必要性,SMI-S将对总的拥有成本产生很大影响。
在CIM实现中,CIM代理中的CIM对象管理器(CIMOM)管理对象,这些对象将通过CIM协议在CIM代理和CIM客户之间被管理。在典型的基于CIM的存储管理软件体系结构中,CIM代理是在低层的硬件设备中实现的,而CIM客户是在高层的管理软件中实现的。为了开发能够管理很多异类的存储和网络设备的较高层的存储管理软件,例如具有图形用户界面的控制台,希望每个被管理的设备都实现一个CIM代理。以这种方式,高层软件可以通过CIM协议与之接口连接。因此,低层硬件及CIM代理为高层管理软件所依赖。此外,如果设备支持SMI-S标准,则设备应当通过CIM代理提供SMI-S接口。
图1示出了使用CIM的设备管理控制台的体系结构。其中,CIMOM处理与CIM客户的HTTP(S)通信以及CIM-XML编码/解码。它负责CIM模式(schema)操作,并将实例和方法请求转发给相应的服务提供器(即CIM提供器)。提供器接口处理CIMOM和提供器之间的通信。所有主要的CIMOM定义了自己的提供器本机接口。服务提供器是为每个设备开发的、并注册在CIMOM中的服务程序。它由CIMOM调用以操作设备,它负责处理所有的实例请求,实现外部方法和指示(indication)处理。
为了实现用于很多通用存储设备的存储管理软件,测试到这些设备的接口是必不可少的。而且,为了开发管理应用,重要的是进行充分的测试。然而,在真实设备以及所实现的CIM代理和SMI-S服务提供器上进行完全测试是困难的。问题在于:硬件总是很昂贵的,而在多人之间共享有限的硬件总会妨碍每个人的工作;不足的硬件资源也会对更完全的测试造成约束,例如,当试图使用4个盘测试卷创建,而仅有三个盘时。当进行压力测试时,如果需要100个盘,则更难以实现。
因此,建立某种模拟器环境来进行更有效的测试是非常重要的。通过具有CIM代理和SMI-S服务提供器的通用设备的模拟器,可以无需使用真实的存储设备而测试高层管理软件。
尽管SMI-S定义了处理任何请求和方法的标准过程,但不同的服务提供器还会定义将由上层管理应用访问的特定的类和属性。因此,目前的一些解决方案是独立地为不同的设备开发不同的模拟器。具体地说,在现有技术中,当需要为一个设备开发模拟器时,需要根据该设备的规格说明文档,手动编写模拟器程序,模拟设备的行为。例如,如果一个磁盘有某种属性,则为该模拟器程序建立相应的虚拟设备模型。
然而,由于不同种类的设备的数量是很大的,为这些设备中的每一个单独地构建模拟器是成本高昂和耗时的。而在现有技术中,不存在为多个设备开发一个公用的模拟器的方法。此外,为了使模拟器尽可能与真实的服务提供器相同,在开发这种模拟器时应当首先阅读真实的服务提供器的规格说明(尤其是其中的提供器的特定模式定义,以及初始化过程),否则这种模拟器是没有意义的。然而这需要很大的工作量。
显然,本领域中需要一种能够更快速、高效、自动和容易地构建SMI-S设备的模拟器的方法。
发明内容
为克服现有技术中存在的上述缺点,而提出了本发明。
根据本发明的一个方面,提供了一种用于构建SMI-S设备的模拟器的方法及装置,该方法包括以下步骤:根据SMI-S为相关的通用设备类型实现核心简档服务,从而形成用于所述通用设备类型的核心服务提供器,其中所述核心简档服务包含用于所述通用设备类型的核心CIM类;从将被模拟的SMI-S设备的真实的服务提供器中挖掘特定CIM类的模式定义以及实例数据,并在本地储存库中构建所述特定CIM类及其实例;以及将来自所述真实的服务提供器中的特定CIM类映射到所述核心简档服务包含的核心CIM类,使得所述核心简档服务能够使用所述本地储存库中的所述特定CIM类及其实例进行操作,从而形成所述SMI-S设备的模拟器。
本发明的优点包括:
它提供了一种自动的、容易的方法来构建用于真实的硬件设备(及其服务提供器)的模拟器,这对于开发和测试基于CIM的设备管理软件是很重要的;
该方法可用于为所有基于SMI-S的设备构建模拟器,而不限于某些设备类型或某些厂商的设备;
真实设备可被转化为虚拟设备,而虚拟设备的组件可以根据用户的配置进行扩展,非常有助于代码的开发和测试,并节省了大量的用户购买硬件设备的成本;以及
不需要花费很多资源来为不同设备开发不同的模拟器,从而节省了开发成本。
附图说明
所附权利要求中阐述了被认为是本发明的特点的创造性特征。但是,通过参照附图阅读下面对说明性实施例的详细说明可更好地理解发明本身以及其优选使用模式、另外的目标、特征以及优点,在附图中:
图1示出了使用CIM的设备管理控制台的体系结构;
图2示出了使用本发明的方法所构建的模拟器的效果图;
图3示出了根据本发明的实施例的用于构建SMI-S设备的模拟器的装置;
图4示出了根据本发明的实施例实现核心简档服务的具体步骤;
图5示出了SMI-S中用于CIM_StorageConfigurationService服务类中的CreateOrModifyStoragePool方法的模型;
图6示出了本发明的实施例中使用的深度优先类挖掘算法的示例性实现;
图7示出了本发明的映射机制的示意图;
图8示出了根据本发明的一个实施例使用半自动的方式来为核心服务模块中的核心类建立映射关系的过程;
图9示出了根据本发明的实施例的映射机制在本发明的模拟器的运行过程中发挥作用的方式;以及
图10示出了根据本发明的实施例为SMI-S设备构建模拟器的方法。
具体实施方式
下面参照附图来说明本发明的实施例。然而,应当理解的是,本发明并不限于所介绍的特定实施例。相反,可以考虑用下面的特征和元素的任意组合来实施和实践本发明,而无论它们是否涉及不同的实施例。因此,下面的方面、特征、实施例和优点仅作说明之用而不应被看作是所附权利要求的要素或限定,除非权利要求中明确提出。
本发明提供了一种通过智能地挖掘现有的真实的CIMOM服务器来自动建立SMI-S设备的模拟器的快速和容易的方法和装置,该模拟器提供了高层存储管理软件和低层存储设备之间的接口。该方法和装置也将真实的设备转换为可扩展的虚拟设备。所构建的模拟器将具有与真实的SMI-S设备相同的类、属性和方法定义,并且可以由用户自由地配置和扩展虚拟设备的组件(例如盘驱动器、电池、存储器等)。
当存在真实的服务提供器时,不需要用户手工进行编码,不需要去阅读模式定义和初始化数据定义。因为,在本发明的模拟器构建装置中提供了挖掘模块,用于自动挖掘出真实的服务提供器中所有的类定义和初始化数据。
本发明涉及服务提供器自定义的扩展类(或称特定类)和SMI-S中定义的标准核心类模型之间的映射关系。本发明的模拟器构建装置中的映射模块能够使得服务提供器的扩展类模型能够关联到已建立的核心服务模块上,从而使得所生成的模拟器在操作扩展类模型时也能够正常工作。
图2示出了使用本发明的方法所构建的模拟器的效果图。如图所示,在该模拟器中除包括现有技术的CIMOM等部件外,还包含SMI-S核心服务提供器,以及虚拟设备。其中,所述SMI-S核心服务提供器用于向CIMOM提供符合SMI-S的用于相关的通用设备类型的核心简档(profile)服务,并在此过程中对虚拟设备进行操作。所述虚拟设备是在模拟器运行过程中根据存储在一虚拟设备储存库中的相关CIM类及其实例数据形成的。在图中所示的虚拟设备中,disk1、disk2和memory1对应于真实设备中现存的组件,而disk3和memory2则是根据用户设置扩展的组件。
I.本发明的用于构建SMI-S设备的模拟器的装置
下面参照附图描述本发明的用于构建SMI-S设备的模拟器的装置。
图3示出了根据本发明的实施例的用于构建SMI-S设备的模拟器的装置。如图所示,该用于构建SMI-S设备的模拟器的装置300包括核心服务模块301,挖掘模块302,映射模块303,并优选地还包括设备管理模块304,虚拟设备储存库305,以及CIMOM 306。下面分别对根据本发明的实施例的用于构建SMI-S设备的模拟器的装置300中的各模块进行详细说明。
A.核心服务模块
核心服务模块301用于根据SMI-S为相关的通用设备类型实现核心简档服务,从而形成用于所述通用设备类型的核心服务提供器,其中所述核心简档服务包含用于所述通用设备的核心CIM类,即SMI-S中为该通用设备所规定的标准的CIM类。在本发明的优选实施例中,所述核心服务模块用于为如下四种类型的通用设备类型实现核心简档服务:盘阵列,带库、交换机和HBA。
换言之,将根据标准的SMI-S过程来实现核心简档服务,即相关硬件设备的标准功能,例如,实现卷创建的执行过程。在目前的SMI-S中定义了四种硬件类型,因此,根据本发明的优选实施例的核心服务模块301将包括如下四种类型的核心服务提供器:盘阵列、带库、交换机和HBA的核心服务提供器,且每种类型的核心服务提供器将包含用于相关设备类型的一组核心服务。每种设备的核心简档服务是在SMI-S中规定的。
图4示出了根据本发明的实施例实现核心简档服务的具体步骤。
如图所示,在步骤401,阅读SMI-S中的简档,例如盘阵列、带库、交换机和HBA的简档等。
在步骤402,选择各简档中所需要模拟的简档服务。
在步骤403,实现这些简档服务中的功能,即定义操纵(创建/删除/修改)所涉及的类实例的顺序。在本发明的优选实施例中,通过以本领域技术人员已知的方式进行编程来实现简档服务中的功能。
在步骤404,将类实例的数据存储在本地储存库中。
其中,步骤403和404可以是相互重叠的。就是说,在实现简档服务中的功能过程中,可能创建并在储存库中存储类实例,以及可能删除或修改存储在储存库中的类实例。
仅作为示例,根据本发明的实施例的核心服务模块301中的盘阵列核心服务提供器的核心服务包括:
■CIM_StoreageConfigurationService
■CIM_SoftwareInstallationService
■CIM_StorageHardwareManagementService
■CIM_ControllerConfigurationService
■CIM_StoragePool
■...
因此,在本发明的核心服务模块301中将支持这些服务中的方法(即功能),例如,CIM_StorageConfigurationService中的CreateOrModifyStoragePool方法。
图5示出了SMI-S中用于该CreateOrModifyStoragePool方法的模型。根据该模型,实现该CreateOrModifyStoragePool方法(即操纵相关的CIM类实例)的步骤可以如下:
1.创建CIM_StoragePool实例;
2.查询父类CIM_ComputerSystem实例;
3.创建关联类实例:CIM_AllocatedFromStoragePool;
4.创建关联类实例:CIM_HostedStoragePool;
5.设置所创建的CIM_StoragePool实例的属性;
6.创建ConcreteJob实例;
7.创建CIM_AffectedJobElement。
类似地,对于所述CIM_StorageConfigurationService中的其他方法,所述盘阵列核心服务提供器中的其他服务的其他方法,以及其他设备核心服务提供器中的各服务的各方法,也可根据SMI-S中关于该方法的模型来实现,从而形成用于各通用设备类型的设备核心服务提供器。
应指出的是,以上所述仅为示例,而不是对本发明的限制。例如,在本发明的其他实施例中,所述核心服务模块301可用于为多于、少于或不同于所述四种类型的设备类型实现核心简档服务。只要存在关于某种设备类型的标准简档服务的规格说明,就可以使用上述方法,根据该规格说明中关于该设备类型的标准简档服务中的各方法的相关说明,实现用于该设备类型的各种服务中的各种功能,并进而实现该设备类型的服务提供器。
B.挖掘模块
挖掘模块302用于从将被模拟的SMI-S设备的真实的服务提供器中挖掘特定CIM类的模式定义以及实例数据,并在本地虚拟设备储存库中构建所述特定CIM类及其实例(在本文中,所述特定CIM类应被理解为包括真实的服务提供器中的所有类,既包括该服务提供器对SMI-S标准类进行扩展而得到的扩展类,也包括服务提供器所直接采用的SMI-S标准类)。优选地,所述挖掘模块302使用能够获得类的正确顺序的深度优先类挖掘算法执行所述挖掘,且根据所述获得的类的正确顺序执行所述构建。
例如,当欲为所述四种类型中的某一种类型的硬件设备的服务提供器生成模拟器时,将挖掘模块302连接到该硬件设备的真实的服务提供器,并使用深度优先类挖掘算法挖掘该真实的服务提供器的储存库。挖掘过程有两个目标:挖掘出真实的服务提供器中所有的类模式定义,并将其构建到储存库中;以及挖掘出每个类下的所有实例,并将其复制到本地储存库中。因此,在挖掘后,在本地将存在与真实的服务提供器的储存库完全一样的完整的储存库。通过挖掘,获得了真实的服务提供器中的所有CIM类的模式定义,并获得了真实的服务提供器中的实例数据。
当构建类并将实例数据复制到本地模拟器储存库中时,需要解决如下几个问题:
首先,CIM中的某些类用作超类,或用作另一类的属性、方法返回值或方法参数的数据类型。例如:
class CIM_StorageConfigurationService:CIM_Service{
uint32 CreateOrModifyStoragePool(
       string ElementName,
       CIM_ConcreteJob REF Job,
       CIM_StorageSetting REF Goal,
       unit64 Size,
       string InPools[],
       string InExtents[],
       CIM_StoragePool REF Pool);
……
}
因此,当将CIM_StorageConfigurationService构建到本地储存库中时,CIM_Service应当已经存在,换言之,应当在构建CIM_StorageConfiguration之前构建CIM_Service。
其次,在CIM中还存在一些关联类,这些关联类用于将两个类的实例相关联,并且对象路径(被当作实例的关键字)将被放入关联类的实例中。因此,这要求这两个类的实例应当在关联类的实例被复制之前被复制。
为解决这些问题,在本发明中使用了如下方案:首先,在本发明的挖掘过程中,获得类的正确顺序;其次,在挖掘之后,使用所获得的正确的类顺序将类构建到本地储存库中;最后,也使用该正确的类顺序将类的实例复制到本地储存库中。
根据本发明的优选实施例,在挖掘过程中,使用深度优先类挖掘算法来挖掘类并获得其正确的顺序。图6示出了该深度优先类挖掘算法的示例性实现。
如图所示,在步骤601,挖掘模块302连接到真实的硬件设备的服务提供器(通过的现有的CIMOM)。
在步骤602,挖掘模块302从真实的服务提供器中获取任何一个类,并将该类推入堆栈。
在步骤603,判断堆栈中是否有类需要挖掘。如果该判断的结果为否,则过程结束。如果该判断的结果为是,则转到步骤604。
在步骤604,从堆栈中取出一个类。
在步骤605,判断该类是否已被挖掘。如果该判断的结果为是,则返回到步骤603。如果该判断的结果为否,则转到步骤606。
在步骤606,枚举该类中的所有属性,并将其推入堆栈。
在步骤607,判断堆栈中是否有属性需要挖掘。如果该判断的结果为是,则转入步骤608。如果该判断的结果为否,则转到步骤611。
在步骤608,从堆栈中取出一个属性。
在步骤609,判断该属性的数据类型是否是未被挖掘的类。如果该判断的结果为否,则返回到步骤607。如果该判断的结果为是,则转到步骤610。
在步骤610,将该未被挖掘的类推入堆栈,并接着返回到步骤604,从而对该未被挖掘的类进行与上述相同的处理。
在步骤611,枚举当前类中的所有方法,并将这些方法推入堆栈。
在步骤612,判断堆栈中是否有方法需要挖掘。如果该判断的结果为否,则转到步骤621。如果该判断的结果为是,则转到步骤613。
在步骤613,从堆栈取出一个方法。
在步骤614,判断该方法的返回类型是否是未被挖掘的类。如果该判断的结果为是,则转到步骤615。如果该判断的结果为否,则转到步骤616。
在步骤615,将所述未被挖掘的类推入堆栈,并接着返回到步骤604,从而对该未被挖掘的类进行与以上所述相同的处理。
在步骤616,枚举该方法的所有参数,并将这些参数推入堆栈。
在步骤617,判断堆栈中是否有参数需要挖掘。如果该判断的结果为否,则返回到步骤612,以便处理堆栈中需要挖掘的下一个方法(如果有的话)。如果该判断的结果为是,则转到步骤618。
在步骤618,从堆栈中取出一个参数。
在步骤619,判断该参数的数据类型是否是未被挖掘的类。如果该判断的结果为否,则返回到步骤617,以便处理堆栈中可能有的下一个参数。如果该判断的结果为是,则转到步骤620。
在步骤620,将该未被挖掘的类推入堆栈,并接着返回到步骤604,从而对该类进行与上述相同的处理。
在步骤621,将当前类放入顺序列表。
在以上过程执行完成之后,如果在真实的服务提供器中还有未被挖掘出的类,则重复执行以上过程,直到真实的服务提供器中所有的类都被挖掘出来。
经过这样的挖掘过程,在所述顺序列表中将以正确的顺序保存有从真实的服务提供器中挖掘的所有类,从而挖掘模块302可以按照该顺序在本地储存库中构建从真实的服务提供器中挖掘的所有类,然后挖掘模块302可以从真实的服务提供器中挖掘并在本地储存库中复制各CIM类的实例数据。这样,根据本发明的实施例构建的模拟器可以在运行过程中根据该本地储存库中所存储的类实例数据形成一虚拟设备,该虚拟设备将具有与真实的硬件设备及其服务提供器相同的特性和行为。
应指出的是,上述深度优先类挖掘算法仅是示例,而不是对本发明的限制。在本发明的其他实施例中,所述深度优先类挖掘算法的具体步骤可以与上述不同。例如,在该算法的步骤621可以不将当前类放入顺序列表中,而是直接将该类构建在本地储存库中。简言之,挖掘模块302可使用任何其他能够从真实的服务提供器中挖掘出其中包含的类及其实例,并以正确的顺序中将其构建到本地储存库中的算法或方法。
此外,尽管在以上描述中,从真实的服务提供器中挖掘特定CIM类的模式定义以及实例数据,获得这些类的正确顺序,并在本地储存库中构建所述特定CIM类及其实例的功能均由所述挖掘模块302完成,但这仅是示例,而不是对本发明的限制。在本发明的其他实施例中,这些功能可以分别由不同的模块来完成。
C.映射模块
映射模块303用于将来自所述真实的服务提供器中的特定CIM类映射到所述核心简档服务中包含的核心CIM类,使得所述核心简档服务能够根据来自CIM客户的请求,使用所述本地储存库中的所述特定CIM类及其实例进行操作,从而形成所述SMI-S设备的模拟器。其中,所述映射包括将来自真实的服务提供器中的特定CIM服务类映射到所述核心简档服务的核心服务类,以及将来自真实的服务提供器中的其他特定CIM类映射到所述核心简档服务中包含的相应的核心CIM类。优选地,所述映射步骤还包括将特定CIM服务类与所述核心服务提供器相关联地注册到CIMOM中。
换言之,在根据本发明的实施例的用于构建SMI-S设备的模拟器的装置300中,使用了核心服务模块301中的核心服务所包含的核心CIM类来代表将被操作的特定CIM类,因此在上述挖掘模块302所执行的挖掘过程之后,映射模块303将真实的服务提供器中的相应的特定CIM类映射到所述核心CIM类,这样,当CIM客户通过CIMOM请求对SMI-S设备进行操作时,虚拟设备中的特定CIM类而不是核心CIM类将被操作。
在本发明的优选实施例中,映射模块303通过在映射文件中建立的核心CIM类与特定CIM类的名称对来实现所述映射。
这种映射是重要的,这是因为,特定的服务提供器将定义其继承了标准CIM类的、具有特定模式的特定类,例如,在SMI-S中,CIM_ComputerSystem是用于顶层设备对象的标准类,但在StorageBlade中,为其定义了子类Aristos_ControllerSystem,而在DS4000中,子类是LSISSI_StorageSubsystem。又例如,在StorageBlade中,Aristos_StoragePool继承了SMI-S中的标准类CIM_StoragePool。为了使本发明的模拟器具有与被模拟的设备相同的行为,应当使模拟器操作特定的类,而不是核心服务模块301中的核心类。
此外,特定的服务提供器将定义其特定的服务类,因此,当向CIMOM注册一个核心服务提供器时,应当使用特定的服务类名称,而不是核心服务提供器中的标准服务类名称。例如,在StorageBlade中,Aristos_StorageConfigurationService继承了CIM_StorageConfigurationService,因此当在CIMOM中注册核心服务提供器时,应当使用Aristos_StorageConfigurationService,而不是CIM_StorageConfigurationService。只有这样,当用户调用特定服务的方法时,本发明的核心服务提供器才能得到通知,并执行所期望的操作。
图7示出了本发明的映射机制的示意图。如图所示,在本发明的用于一通用设备的核心服务提供器集合中存在若干核心服务,每个核心服务操作若干核心类。本发明的映射模块303将把来自被模拟设备的真实CIM服务提供器的特定服务映射为核心服务提供器集合中的相应核心服务,并把来自被模拟设备的真实的服务提供器中的其他特定类映射为核心服务所包含的相应的核心类。
在本发明的优选实施例中,使用简单的名称对映射方式来建立映射关系,其格式如下:
Delegate_Class_Name=Target_Class_Name
例如“CIM_ComputerSystem=Aristos_ControllerSystem”。
优选地,所述名称对存储在一映射文件中,这样,本发明的模拟器将在运行时从该映射文件中读取与所需要的核心类对应的特定类。如果对于某个核心类没有提供映射,则作为默认,将使用该核心类(SMI-S中的标准类)本身。该映射文件既可以由用户根据真实的服务提供器的规格说明手工编辑,也可以通过自动或半自动的方式形成。
图8示出了根据本发明的一个实施例使用半自动的方式来为核心服务提供器中的核心类建立映射关系的过程。
如图所示,在步骤801,获得核心服务提供器中的核心类。
在步骤802,搜索当前真实的服务提供器中的特定类。优选地,该搜索步骤是在所述挖掘模块302将真实设备的服务提供器中的特定类挖掘到本地储存库305中之后,在所述本地储存库中进行的。当然,也可以直接从真实设备的服务提供器搜索其中的特定类。
在步骤803,判断是否存在继承了该核心类的特定类。如果该判断的结果为是,则转到步骤804。如果该判断的结果为否,则转到步骤805。
在步骤804,判断是否仅存在一个继承了该核心类的特定类。如果该判断的结果为是,则转到步骤807。如果该判断的结果为否,则转到步骤806。
在步骤805,将核心类映射到自身。该步骤既可以通过在一映射文件中建立该核心类到自身的名称对来实现,也可以不在映射文件中建立核心类到自身的名称对,而是在模拟器运行时,作为默认,将在映射文件中不存在相应的名称对映射的核心类映射为自身。
在步骤806,由用户指定一个特定类。用户可以任意指定一个特定类,或者指定一个需要对其进行操作的特定类。
在步骤807,将该特定类映射到核心类。优选地,该步骤是通过在一映射文件中建立该特定类到该核心类的名称对来实现的。
在步骤808,如果该特定类为服务类,则将该特定服务类与核心服务提供器相关联地注册在CIMOM中。
优选地,以上过程对于与当前要模拟的设备相关的每一个核心服务提供器中的每一个核心类迭代执行。
应指出的是,上述过程仅为示例,而不是对本发明的限制。简言之,任何能够建立核心服务模块301中的核心类与将模拟的设备的服务提供器中的特定类之间的映射关系的方法都是适用的。例如,也可以针对当前将模拟的设备的每一个服务提供器中的每一个特定类,在核心服务模块301中查找相应的核心类来进行映射。又例如,上述过程也可能完全自动地执行,其中在步骤303,由映射模块303自动选择一个特定类。
图9示出了根据本发明的实施例的映射机制在本发明的模拟器的运行过程中发挥作用的方式。
如图所示,在步骤901,CIMOM接收到来自CIM客户的对于某硬件设备的特定服务的客户请求。
在步骤902,CIMOM查找相应的核心服务提供器。
在步骤903,CIMOM判断是否找到相应的核心服务提供器。如果该判断的结果为否,则过程结束。如果该判断的结果为是,则转到步骤904。
在步骤904,开始运行该核心服务提供器。
在步骤905,在该核心服务提供器的运行过程中,根据已建立的映射关系判断该核心服务提供器使用的核心类是否有对应的特定类。如果该判断的结果为是,则转到步骤906。如果该判断的结果为否,则转到步骤907。
在步骤906,操纵所对应的特定类的实例。
在步骤907,操纵核心类的实例。
D.设备管理模块
设备管理模块304用于根据用户设置,对所述本地储存库中的实例数据进行配置,从而可扩展和配置在模拟器运行时所生成的虚拟设备及其组件。优选地,所述设备管理模块304根据由用户创建或修改的配置文件进行所述配置。
换言之,该设备管理模块304负责配置虚拟硬件设备的虚拟组件。例如,对于一个存储刀片设备,配置10个盘,每个盘100G。配置优选地是根据配置文件进行的,且该配置文件优选地是XML格式的。
设备管理模块304可根据配置文件对本地储存库中的实例数据进行设置,这样,在本发明的模拟器的运行过程中,就可获得具有所要求配置的虚拟的存储设备。
该配置文件既可以完全由用户创建,也可以由本发明的挖掘模块302在从真实的SMI-S设备的服务提供器中挖掘出类及其实例数据之后,在将所述类及其实例数据存储在本地储存库中的同时,根据所述类及实例数据生成反映该SMI-S设备的配置的配置文件,然后由用户在已生成的该配置文件的基础上进行修改,从而对虚拟设备及其组件进行配置和扩展。
应指出的是,所述配置文件也可以是其他格式的。此外,所述设备管理模块304也可以不使用配置文件,而是采用其他方式,例如根据来自用户界面的用户命令,来对虚拟设备及其组件进行配置和扩展等。此外,在本发明的一些实施例中,所述用于构建SMI-S设备的模拟器的装置300也可以不包含所述设备管理模块304。
E.储存库
储存库305用于在本地存储所述挖掘并构建的特定CIM类及其实例,以便在本发明的模拟器运行时根据所存储的类实例数据形成虚拟设备,并由所述核心服务模块301中的核心服务根据来自客户端的请求对该虚拟设备进行操作,且操作的结果将存储在该储存库中。
该储存库305可以使用标准的文件系统,也可以位于本发明的用于构建SMI-S设备的模拟器的装置300之外。
F.CIMOM
CIMOM用于处理与CIM客户的通信,接收来自CIM客户的操作请求,并将请求转发给核心服务模块301中相应的核心服务提供器,以及接收来自核心服务提供器的处理结果,并将该结果作为响应传送给CIM客户。CIMOM是现有的CIMOM,也可以位于本发明的用于构建用于SMI-S设备的模拟器的装置300之外。
以上描述了根据本发明的实施例的用于构建SMI-S设备的模拟器的装置300,应指出的是,以上所述仅为示例,而不是对本发明的限制。本发明的用于构建SMI-S设备的模拟器的装置可具有更多、更少或不同的模块,一些模块可以被合并为更大的模块,或进一步划分为更小的模块,等等。
II.本发明的模拟器
通过操作上述根据本发明的实施例的用于构建SMI-S设备的模拟器的装置300,可生成根据本发明的实施例的SMI-S设备的模拟器。
具体地说,使用所述核心服务模块301,可形成通用设备的核心服务提供器,所述核心服务提供器包含核心CIM类(即SMI-S中的标准CIM类)。
使用所述挖掘模块302,真实的硬件设备的服务提供器中所有类(即特定类)的模式定义以及所有类的实例数据将被挖掘出来,并被构建在本地储存库305中。
使用所述映射模块303,能够建立所述特定类和核心服务提供器中的核心类之间的映射关系,将特定类映射为核心类,从而使得所述核心服务提供器能够根据来自CIM客户的请求,操作本地储存库305中的特定类及其实例数据。
使用所述设备管理模块304,可对本地储存库305中的类实例数据进行设置,从而对在模拟器运行时根据所存储的类实例数据形成的虚拟设备及其组件进行进一步的配置和扩展。
这样,就构建了本发明的用于SMI-S设备的模拟器。用户可以启动该模拟器,并且使用本发明的模拟器提供的核心服务模块以及储存库,来进行进一步的操作,例如使用该模拟器对存储设备管理应用进行测试等。
当需要为另一SMI-S设备构建模拟器时,由于在核心服务模块301中已经存在了相关通用设备的核心服务提供器,因此只需要使用挖掘模块302挖掘该SMI-S设备的服务提供器中的特定类,并使用映射模块303将所述特定类映射为核心服务提供器中的核心类,以及可选地使用设备管理模块304进行配置和扩展。
由上述根据本发明的实施例的用于构建SMI-S设备的模拟器的装置300构建的SMI-S设备的模拟器将包括:核心服务提供器,用于提供符合SMI-S的用于相关的通用设备类型的核心简档服务,其中所述核心简档服务包含用于所述通用设备类型的核心CIM类;以及储存库,用于存储来自将被模拟的SMI-S设备的真实的服务提供器中的特定CIM类的模式定义以及实例数据;其中,所述核心服务提供器在运行时根据来自所述真实的服务提供器中的特定CIM类到所述核心简档服务中包含的核心CIM类的映射关系,对所述本地储存库中的所述特定CIM类及其实例进行操作。
优选地,所述存储在所述储存库中的所述特定CIM类的实例的数据能够根据用户设置进行配置,从而可对虚拟设备及其组件进行扩展和配置。
优选地,所述核心服务提供器包括用于为如下四种类型的通用设备类型提供核心简档服务的核心服务提供器:盘阵列,带库、交换机和HBA。
优选地,该模拟器还包括CIMOM,其中所述特定CIM类中的特定CIM服务类与相应的所述核心简档服务提供器相关联地被注册到该CIMOM中。该CIMOM优选地为现有的CIMOM。
III.本发明的用于构建SMI-S设备的模拟器的方法
下面参照附图描述根据本发明的实施例的用于构建SMI-S设备的模拟器的方法。该方法优选地由前述根据本发明的实施例的用于构建SMI-S设备的模拟器的装置300来实现,但也可以由其他装置来实现。为简明起见,在以下描述中,省略了一些与前述内容重复的部分,因此可参照前述内容获得对该方法的更完整的理解。
图10示出了根据本发明的实施例为SMI-S设备构建模拟器的方法。
如图所示,该方法包括以下步骤:
在步骤1001,根据SMI-S为相关的通用设备类型实现核心简档服务,从而形成用于所述通用设备类型的核心服务提供器,其中所述核心简档服务包含用于所述通用设备类型的核心CIM类。
优选地,所述为相关的通用设备类型实现核心简档服务包括为如下四种类型的通用设备类型实现核心简档服务:盘阵列,带库、交换机和HBA。
在步骤1002,从将被模拟的SMI-S设备的真实的服务提供器中挖掘特定CIM类的模式定义以及实例数据,并在本地储存库中构建所述特定CIM类及其实例。
优选地,所述挖掘步骤1002是使用能够获得类的正确顺序的深度优先类挖掘算法执行的,且所述构建步骤是根据所述获得的类的正确顺序执行的。
在步骤1003,将来自所述真实的服务提供器中的特定CIM类映射到所述核心简档服务包含的核心CIM类,使得所述核心简档服务能够使用所述本地储存库中的所述特定CIM类及其实例进行操作,从而形成所述SMI-S设备的模拟器。
优选地,所述映射步骤1003还包括将所述特定CIM类中的特定CIM服务类与相应的所述核心服务提供器相关联地注册到CIMOM中。
优选地,所述映射步骤1003是通过在映射文件中建立的核心CIM类与特定CIM类的名称对实现的。
优选地,该方法还包括可选步骤1004,在该步骤中,根据用户设置,对所述本地储存库中的实例数据进行配置,从而对在模拟器运行时根据所存储的类实例数据形成的虚拟设备及其组件进行进一步的配置和扩展。
优选地,所述配置步骤1004是根据由用户创建或修改的配置文件进行的。
本发明可以硬件、软件、或硬件与软件的结合的方式实现。本发明可以集中的方式在一个计算机系统中实现,或以分布方式实现,在这种分布方式中,不同的部件分布在若干互连的计算机系统中。适于执行本文中描述的方法的任何计算机系统或其它装置都是合适的。优选地,本发明以计算机软件和通用计算机硬件的组合的方式实现,在这种实现方式中,当该计算机程序被加载和执行时,控制该计算机系统而使其执行本发明的方法,并构成本发明的装置。
本发明也可体现在计算机程序产品中,该程序产品包含使能实现本文中描述的方法的所有特征,并且当其被加载到计算机系统中时,能够执行所述方法。
尽管已参照优选实施例具体示出和说明了本发明,但是本领域内的那些技术人员应理解,可在形式和细节上对其进行各种改变而不会背离本发明的精神和范围。

构建基于存储管理计划规范的设备的模拟器的方法和装置.pdf_第1页
第1页 / 共34页
构建基于存储管理计划规范的设备的模拟器的方法和装置.pdf_第2页
第2页 / 共34页
构建基于存储管理计划规范的设备的模拟器的方法和装置.pdf_第3页
第3页 / 共34页
点击查看更多>>
资源描述

《构建基于存储管理计划规范的设备的模拟器的方法和装置.pdf》由会员分享,可在线阅读,更多相关《构建基于存储管理计划规范的设备的模拟器的方法和装置.pdf(34页珍藏版)》请在专利查询网上搜索。

一种用于构建SMI-S设备的模拟器的方法和装置,该方法包括以下步骤:根据SMI-S为相关的通用设备类型实现核心简档服务,从而形成用于所述通用设备类型的核心服务提供器,其中所述核心简档服务包含用于所述通用设备类型的核心CIM类;从将被模拟的SMI-S设备的真实的服务提供器中挖掘特定CIM类的模式定义以及实例数据,并在本地储存库中构建所述特定CIM类及其实例;以及将来自所述真实的服务提供器中的特定CI。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1