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

文档序号:6461334阅读:118来源:国知局
专利名称:构建基于存储管理计划规范的设备的模拟器的方法和装置的制作方法
技术领域
本发明涉及计算机领域,更具体涉及一种构造用于存储及网络设备管理应用的测试的、基于存储管理计划规范(SMI-S)的设备的模拟器的方 法和系统。
背景技术
由分布式管理任务組(DMTF)开发的公共信息模型(CIM)是一种 月于描述关于应用和设备的数据的标准方式,它使得管理员和软件管理程 序可以相同方式控制不同平台上的应用和设备,确保了在整个网络例如因 特网上的互操作性。由于CIM的通用体系结构,它已被广泛应用于管理各 种类型的存储和网络i殳备的管理软件中。存储网络行业协会(SN1A)的SMI-S使用CIM作为实施模型。SMI-S 定义了用于存储设备的标准类、属性、方法和方法的执行逻辑过程。SMI-S 允许对异类存储环境进行简单的、标准化的和成本高效的管理。它允许IT 管理者^f吏用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接口 。图l示出了l吏用CIM的设备管理控制台的体系结构。其中,CIMOM 处理与CIM客户的HTTP(S)通信以及CIM-XML编码/解码。它负责CIM 模式(schema)操作,并将实例和方法请求转发给相应的服务提供器(即 CIM提供器)。提供器接口处理CIMOM和提供器之间的通信。所有主要 的CIMOM定义了自己的提供器^接口。服务提供器是为每个设备开发 的、并注册在CIMOM中的服务程序。它由CIMOM调用以操作设备,它 负责处理所有的实例请求,实现外部方法和指示(indication)处理。为了实现用于很多通用存储设备的存储管理软件,测试到这些设备的 接口是必不可少的。而且,为了开发管理应用,重要的是进行充分的测试。 然而,在真实设备以及所实现的CIM代理和SMI-S服务提供器上进行完 全测试是困难的。问题在于硬件总是很昂贵的,而在多人之间共享有限 的硬件总会妨碍每个人的工作;不足的硬件资源也会对更完全的测试造成 约束,例如,当试图使用4个盘测试巻创建,而仅有三个盘时,当进行压 力测试时,如果需要100个盘,则更难以实现。因此,建立某种模拟器环境来进行更有效的测试是非常重要的。通过 具有CIM代理和SMI-S服务提供器的通用设备的模拟器,可以无需使用 真实的存祸Ti殳备而测试高层管理软件。尽管SMI-S定义了处理任何请求和方法的标准过程,但不同的服务提 供器还会定义将由上层管理应用访问的特定的类和属性。因此,目前的一 些解决方案是独立地为不同的设备开发不同的模拟器。具体地说,在现有 技术中,当需要为一个设备开发模拟器时,需要根据该设备的规格说明文 档,手动编写才莫拟器程属性,则为该模拟器程序建立相应的虚拟设备模型。然而,由于不同种类的设备的数量是很大的,为这些设备中的每一个 单独地构建模拟器是成本高昂和耗时的。而在现有技术中,不存在为多个设备开发一个公用的模拟器的方法。此外,为了使才莫拟器尽可能与真实的 服务提供器相同,在开发这种模拟器时应当首先阅读真实的服务提供器的 规格说明(尤其是其中的提供器的特定模式定义,以及初始化过程),否 则这种模拟器是没有意义的。然而这需要4艮大的工作量。显然,本领域中需要一种能够更快速、高效、自动和容易地构建SMt-S 设备的模拟器的方法。发明内容为克服现有技术中存在的上述缺点,而提出了本发明。 根据本发明的一个方面,提供了 一种用于构建SMI-S设备的模拟器的 方法及装置,该方法包括以下步骤根据SMI-S为相关的通用设备类型实 现核心筒档服务,从而形成用于所述通用设备类型的核心服务提供器,其 中所述核心简档服务包含用于所述通用设备类型的核心CIM类;从将被模 拟的SMI-S设备的真实的服务提供器中挖掘特定CIM类的模式定义以及 实例数据,并在本地储存库中构建所述特定CIM类及其实例;以及将来自 所述真实的服务提供器中的特定CIM类映射到所述核心简档服务包含的 核心CIM类,使得所述核心简档服务能够使用所述本地储存库中的所述特 定CIM类及其实例进行操作,从而形成所述SMI-S设备的模拟器。 本发明的优点包括它提供了一种自动的、容易的方法来构建用于真实的硬件设备(及其 服务提供器)的模拟器,这对于开发和测试基于C1M的设备管理软件是很 重要的;该方法可用于为所有基于SMI-S的设备构建模拟器,而不限于某些设 备类型或某些厂商的设备;真实设备可被转化为虚拟设备,而虚拟设备的组件可以根据用户的配置进行扩展,非常有助于代码的开发和测试,并节省了大量的用户购买石更件设备的成本;以及不需要花费很多资源来为不同设备开发不同的模拟器,从而节省了开 发成本。


所附权利要求中阐述了被认为是本发明的特点的创造性特征。但是, 通过参照附图阅读下面对说明性实施例的详细说明可更好地理解发明本身 以及其优选使用模式、另外的目标、特征以及优点,在附图中'. 图1示出了使用CIM的设备管理控制台的体系结构; 图2示出了使用本发明的方法所构建的模拟器的效果图; 图3示出了根据本发明的实施例的用于构建SMI-S设备的模拟器的装置;图4示出了根据本发明的实施例实现核心简档服务的具体步骤; 图5示出了 SMI-S中用于CIM—StorageConfigurationService服务类 中的CreateOrModifyStoragePool方法的模型;图6示出了本发明的实施例中使用的深度优先类挖掘算法的示例性实现;图7示出了本发明的映射机制的示意图;图8示出了才艮据本发明的一个实施例使用半自动的方式来为核心服务 模块中的核心类建立映射关系的过程;图9示出了根据本发明的实施例的映射机制在本发明的模拟器的运行 过程中发挥作用的方式;以及图10示出了根据本发明的实施例为SM1-S设备构建模拟器的方法。
具体实施方式
下面参照附图来说明本发明的实施例。然而,应当理解的是,本发明 并不限于所介绍的特定实施例。相反,可以考虑用下面的特征和元素的任意组合来实施和实践本发明,而无论它们是否涉及不同的实施例。因此, 下面的方面、特征、实施例和优点仅作说明之用而不应被看作是所附权利 要求的要素或限定,除非权利要求中明确提出。本发明提供了一种通过智能地挖掘现有的真实的CIMOM服务器来自 动建立SMI-S设备的模拟器的快速和容易的方法和装置,该模拟器提供了 高层存储管理软件和低层存储设备之间的接口 。该方法和装置也将真实的 设备转换为可扩展的虛拟设备。所构建的模拟器将具有与真实的SMI-S设 备相同的类、属性和方法定义,并且可以由用户自由地配置和扩展虛拟设 备的組件(例如盘驱动器、电池、存储器等)。当存在真实的服务提供器时,不需要用户手工进行编码,不需要去阅 读模式定义和初始化数据定义。因为,在本发明的模拟器构建装置中提供 了挖掘模块,用于自动挖掘出真实的服务提供器中所有的类定义和初始化 数据。本发明涉及服务提供器自定义的扩展类(或称特定类)和SMI-S中定 义的标准核心类模型之间的映射关系。本发明的模拟器构建装置中的映射 模块能够使得服务提供器的扩展类模型能够关联到已建立的核心服务模块 上,从而使得所生成的模拟器在操作扩展类模型时也能够正常工作。图2示出了使用本发明的方法所构建的模拟器的效果图。如图所示, 在该模拟器中除包括现有技术的CIMOM等部件外,还包含SMI-S核心服 务提供器,以及虚拟设备。其中,所述SMI-S核心服务提供器用于向 CIMOM提供符合SMI-S的用于相关的通用设备类型的核心简档(profile) 服务,并在此过程中对虚拟设备进行搮作。所述虚拟设备是在模拟器运行 过程中根据存储在一虛拟设4^存库中的相关CIM类及其实例数据形成 的。在图中所示的虚拟i殳备中,diskl、 disk2和memoryl对应于真实i殳备 中现存的组件,而disk3和memory2则是才艮据用户i殳置扩展的组件。I.本发明的用于构建SMI-S设备的模拟器的装置下面参照附图描述本发明的用于构建SMI-S设备的模拟器的装置。图3示出了根据本发明的实施例的用于构建SMI-S设备的模拟器的装 置。如图所示,该用于构建SMI-S设备的模拟器的装置300包括核心服务 模块301 ,挖掘模块302,映射模块303,并优选地还包括设备管理模块304, 虚拟设^ft存库305,以及CIMOM 306。下面分别对才艮据本发明的实施例 的用于构建SMI-S设备的模拟器的装置300中的各模块进行详细说明。 A.核心服务模块 核心服务模块301用于根据SMI-S为相关的通用设备类型实现核心简 档服务,从而形成用于所述通用设备类型的核心服务提供器,其中所述核 心简档服务包含用于所述通用i殳备的核心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_StoreageConfigurationServke
■ CIM一SoftwarelnstallationService
■ 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. i殳置所创建的CIM—StoragePool实例的属性;
6. 创建ConcreteJob实例;
7. 创建C1M—AffectedJobElement。
类似地,对于所述CIM—StorageConfigurationService中的其他方法, 所述盘阵列核心服务提供器中的其他服务的其他方法,以及其他设备核心 服务提供器中的各服务的各方法,也可根据SMI-S中关于该方法的模型来 实现,从而形成用于各通用设备类型的设备核心服务提供器。
应指出的是,以上所述仅为示例,而不是对本发明的限制。例如,在本 发明的其他实施例中,所述核心服务才莫块301可用于为多于、少于或不同于所述四种类型的设备类型实现核心简档服务。只要存在关于某种设备类 型的标准简档服务的规格说明,就可以使用上述方法,根据该规格说明中 关于该设备类型的标准简档服务中的各方法的相关说明,实现用于该设备 类型的各种服务中的各种功能,并进而实现该设备类型的服务提供器。
B.挖掘模块
挖掘模块302用于从将被模拟的SMI-S设备的真实的服务提供器中挖 掘特定CIM类的模式定义以及实例数据,并在本地虛拟设4^存库中构建 所述特定CIM类及其实例(在本文中,所述特定CIM类应被理解为包括 真实的服务提供器中的所有类,既包括该服务提供器对SMI-S标准类进行 扩展而得到的扩展类,也包括服务提供器所直接采用的SMI-S标准类)。 优选地,所述挖掘模块302使用能够获得类的正确顺序的深度优先类挖掘 算法执行所迷挖掘,且根据所述获得的类的正确顺序执行所迷构建。
例如,当欲为所述四种类型中的某一种类型的硬件设备的服务提供器 生成模拟器时,将挖掘模块302连接到该硬件设备的真实的服务提供器, 并使用深度优先类挖掘算法挖掘该真实的服务提供器的储存库。挖掘过程 有两个目标挖掘出真实的服务提供器中所有的类^t式定义,并将其构建 到储存库中;以及挖掘出每个类下的所有实例,并将其复制到本地储存库 中。因此,在挖掘后,在本地将存在与真实的服务提供器的储存库完全一 样的完整的储存库。通过挖掘,获得了真实的服务提供器中的所有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构建到本地储存库中 时,CIIVLService应当已经存在,换言之,应当在构建 CIM StorageConfiguration之前构建CIM Service 。
其次,在CIM中还存在一些关联类,这些关联类用于将两个类的实例 相关联,并且对象路径(被当作实例的关键字)将初3文入关联类的实例中。 因此,这要求这两个类的实例应当在关联类的实例被复制之前被复制。
为解决这些问题,在本发明中使用了如下方案首先,在本发明的挖 掘过程中,获得类的正确顺序;其次,在挖掘之后,l吏用所获得的正确的 类顺序将类构建到本地储存库中;最后,也^f吏用该正确的类顺序将类的实 例复制到本地储存库中。
根据本发明的优选实施例,在挖掘过程中,使用深度优先类挖掘算法 来挖掘类并获得其正确的顺序。图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,判断堆栈中是否有^t需要挖掘。如果该判断的结果为 否,则返回到步骤612,以便处理堆栈中需要挖掘的下一个方法(如果有 的话)。如果该判断的结果为是,则转到步骤618。
在步骤618,从堆栈中取出一个^:。
在步骤619,判断该参数的数据类型是否是未被挖掘的类。如果该判 断的结果为否,则返回到步骤617,以便处理堆栈中可能有的下一个^L 如果该判断的结果为是,则转到步骤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是用于顶层设备对象的标准类,但在Storage Blade中,为其定义了子类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示出了根据本发明的实施例的映射机制在本发明的模拟器的运行 过程中发挥作用的方式。
如图所示,在步骤卯l, CIMOM接收到来自CIM客户的对于某硬件设 备的特定服务的客户请求。
在步骤902, CIMOM查找相应的核心服务提供器。
在步骤卯3, CIMOM判断是否找到相应的核心服务提供器。如果该判 断的结果为否,则过程结束。如果该判断的结果为是,则转到步骤904。
在步骤904,开始运行该核心服务提供器。
在步骤905,在该核心服务提供器的运行过程中,根据已建立的映射关 系判断该核心服务提供器使用的核心类是否有对应的特定类。如果该判断 的结果为是,则转到步骤906。如果该判断的结果为否,则转到步骤907。
在步骤卯6,操纵所对应的特定类的实例。
在步骤907,操纵核心类的实例。
D.设备管理模块
设备管理模块304用于根据用户设置,对所述本地储存库中的实例数 据进行配置,从而可扩展和配置在模拟器运行时所生成的虚拟设备及其组 件。优选地,所述设备管理模块304根据由用户创建或修改的配置文件进
行所述配置。
换言之,该设备管理模块304负责配置虛拟硬件设备的虚拟组件。例 如,对于一个存储刀片设备,配置10个盘,每个盘100G。配置优选地是 根据配置文件进行的,且该配置文件优选地是XML格式的。
设备管理才莫块304可根据配置文件对本地储存库中的实例数据进^fiS更 置,这样,在本发明的模拟器的运行过程中,就可获得具有所要求配置的 虚拟的存储设备。该配置文件既可以完全由用户创建,也可以由本发明的挖掘模块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将所述特定类映射为核心服务提供器中的核心类,以及可选地4吏用设备管理
模块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示出了根据本发明的实施例为SMT-S设备构建模拟器的方法。
如图所示,该方法包括以下步骤
在步骤1001,根据SMI-S为相关的通用设备类型实现核心简档服务,从而形成用于所述通用设备类型的核心服务提供器,其中所述核心简档服
务包含用于所述通用设备类型的核心CIM类。
优选地,所述为相关的通用设备类型实现核心简档服务包括为如下四 种类型的通用设备类型实现核心简档服务盘阵列,带库、交换机和HBA。
在步骤1002,从将被模拟的SMI-S设备的真实的服务提供器中挖掘特 定CIM类的模式定义以及实例数据,并在本地储存库中构建所迷特定CIM 类及其实例。
优选地,所述挖掘步骤1002是使用能够获得类的正确顺序的深度优先 类挖掘算法执行的,且所述构建步骤是根据所述获得的类的正确顺序执行的。
在步骤1003,将来自所述真实的服务提供器中的特定CIM类映射到 所述核心简档服务包含的核心CIM类,使得所述核心简档服务能够使用所 述本地储存库中的所述特定CIM类及其实例进行操作,从而形成所述 SMI-S设备的模拟器。
优选地,所述映射步骤1003还包括将所迷特定CIM类中的特定CIM 服务类与相应的所述核心服务提供器相关联地注册到CIMOM中。
优选地,所述映射步骤1003是通过在映射文件中建立的核心CIM类 与特定C1M类的名称对实现的。
优选地,该方法还包括可选步骤1004,在该步骤中,根据用户设置, 对所述本地储存库中的实例数据进行配置,从而对在模拟器运行时根据所 存储的类实例数据形成的虚拟设备及其組件进行进一步的配置和扩展。
优选地,所述配置步骤1004是根据由用户创建或修改的配置文件进行的。
本发明可以硬件、软件、或硬件与软件的结合的方式实现。本发明可 以集中的方式在一个计算机系统中实现,或以分布方式实现,在这种分布 方式中,不同的部件分布在若干互连的计算机系统中。适于执行本文中描 述的方法的任何计算机系统或其它装置都是合适的。优选地,本发明以计 算机软件和通用计算机硬件的組合的方式实现,在这种实现方式中,当该计算机程序被加载和执行时,控制该计算机系统而使其执行本发明的方法, 并构成本发明的装置。
本发明也可体现在计算机程序产品中,该程序产品包含使能实现本文 中描述的方法的所有特征,并且当其被加载到计算机系统中时,能够执行 所述方法。
尽管已参照优选实施例具体示出和说明了本发明,但是本领域内的那 些技术人员应理解,可在形式和细节上对其进行各种改变而不会背离本发 明的精神和范围。
权利要求
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设备的模拟器的方法和装置,该方法包括以下步骤根据SMI-S为相关的通用设备类型实现核心简档服务,从而形成用于所述通用设备类型的核心服务提供器,其中所述核心简档服务包含用于所述通用设备类型的核心CIM类;从将被模拟的SMI-S设备的真实的服务提供器中挖掘特定CIM类的模式定义以及实例数据,并在本地储存库中构建所述特定CIM类及其实例;以及将来自所述真实的服务提供器中的特定CIM类映射到所述核心简档服务包含的核心CIM类,使得所述核心简档服务能够使用所述本地储存库中的所述特定CIM类及其实例进行操作,从而形成所述SMI-S设备的模拟器。
文档编号G06F9/455GK101520739SQ200810082238
公开日2009年9月2日 申请日期2008年2月26日 优先权日2008年2月26日
发明者张俊伟, 建 徐, 顾春花 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1