分配存储设备的逻辑存储实体的方法和系统的制作方法

文档序号:6582399阅读:195来源:国知局
专利名称:分配存储设备的逻辑存储实体的方法和系统的制作方法
分配存储设备的逻辑存储实体的方法和系统 技术领域0001本发明涉及存储管理。更具体地说,涉及将存储设备的逻辑存储实体分配给计算机系统的多个分区,使得分区只访问被允许 访问的逻辑存储实体并当访问逻辑存储实体时能够共享资源。
背景技术
0002大型计算机系统通常被划分成多个逻辑分区。每个逻辑 分区代表系统中的一部分资源,并且作为独立的逻辑系统工作。逻辑 分区的一个例子是将多处理器系统划分成多个独立的服务器,每个服务器具有它自己的处理器、主存储器和i/o设备。0003每个逻辑分区所需的典型资源是磁盘存储器。许多系统 使用支持小型计算机系统接口 (SCSI)标准的设备,SCSI标准定义 了存储设备的命令、协议、以及电接口和光学接口。大多数存储设备 使用SCSI高层协议(ULP)来控制这些设备。0004SCSI设备之间的关系通过客户端-服务器服务传递模 型来封装。客户端被称作SCSI发起者,而服务器被称作SCSI目标。 SCSI域由通过一个服务传递子系统互连的至少一个SCSI设备、至少 一个SCSI目标和至少一个发起者组成。SCSI目标由一个或多个SCSI 逻辑存储实体组成,例如每个带有一个逻辑单元号(LUN)的逻辑单 元。对于分区访问存储设备, 一个分区是一个SCSI发起者,而一个 存储设备是一个SCSI目标。例如当小型硬盘被用作存储设备时,一 个存储设备(或目标)可以包含一个单个的LUN。或者,例如当存储 设备包括外部RAID盒时, 一个存储设备可以包含多个LUN。每个分 区必须对所有分配给该分区的LUN进行访问,但是不应访问没有分 配给该分区的任4可LUN。) SCSI目标是包含多个LUN的目 标。大型计算机系统可以包含一个或多个多LUN SCSI目标,每个多 重LUN SCSI目标的不同LUN可以^L分配给不同的分区。当SCSI ULP允许一个发起者(即分区)把命令发送到一个目标时,包含在该 目标内的所有LUN将被暴露给发起者。因此, 一个分区可以看到分 配给其它分区的LUN。0006为了避免一个分区访问分配给其它分区的LUN,包含 在一个目标中的所有LUN可以被分配给一个单个的分区。然而,诸 如外部RAID存储盒这样的大型存储设备不能在多个分区之间共享, 因此导致了资源的浪费。作为替代,代理服务器分区(例如虚拟I/O 服务器)可以被用于帮助分区和LUN之间的通信。代理服务器分区 将拥有分配给其他分区的所有LUN和那些LUN的服务器部分。然而, 由于命令和数据需要通过第三方分区(即代理服务器分区)被路由,因而将存在大量附加的处理开销和数据传输开销。 发明内容0007将存储设备的逻辑存储实体分配给计算机系统的多个分 区的方法、计算机程序产品和计算机系统,包括将每个逻辑存储实体 与被允许访问该逻辑存储实体的分区中的一个相关联;配置分区管理 器以控制分区对逻辑存储实体的访问,使得当访问逻辑存储实体时分 区能够共享资源;并在分区管理器中提供拦截器,使得如果选中的分 区没有被允许访问选中的存储实体,则拦截选中的逻辑存储实体和选 中的分区之间的请求或响应。


0008图1是表明共享多LUN SCSI目标的多个分区的概念图。0009图2是示出其中可以实现本发明的 一 个优选实施例的流程图。0010图3是表明在分区管理器中的请求路径拦截器和响应路0011图4是表明分区和LUN之间的请求和响应的图示。0012图5是示出分区怎样共享物理资源的图示。0013图6是其中可以实现本发明的计算机系统的概念图。
具体实施方式
0014现在将通过例子的方式参考附图中所示的实施例更加详 细地描述本发明。应当注意的是,下面描述的实施例仅仅通过举例的 方式给出,不应理解为将本发明的构思限制在任何特定的物理配置。 此外,如果使用了词语"较高"、"较低"、"前"、"后"、"上"、"下"和 类似这种词语,除非另有声明,这些词语不应理解为将本发明限制在 特定方向,而是仅在相对的基础上使用这些词语。0015本领域技术人员应该理解,本发明可以作为系统、方法 或计算机程序产品来实现。因此,本发明可以采取完全的硬件实施方 式、完全的软件实施方式(包括固件、常驻软件、微代码等)或结合 这里通常都可以被称作"电路"、"模块"或"系统"的软件和硬件方面的 实施方式的形式来实现。此外,本发明可以采取在任何有形表达介质 中体现的计算机程序产品的形式来实现,该有形表达介质具有在介质 中体现的计算机可用程序代码。0016可以使用一个或多个计算机可用或计算机可读介质的结 合。计算机可用或计算机可读介质例如可以是电子、磁、光、电磁、 红外或半导体系统、装置、设备或传播介质,但不限于此。计算机可 读介质的更具体的例子(非穷举的列表)包括以下形式具有一根或 多根线路的电连接、便携式计算机软盘、硬盘、随机存取存储器 (RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM 或闪存)、光纤、便携式光盘只读存储器(CD-ROM)、光存储设备、 诸如支持互联网或内联网的传输介质或者磁存储设备。需要注意的 是,计算机可用或计算机可读介质甚至可以是纸或其上印有程序的其 它适当的介质,因为程序可以经由诸如纸或其它介质的光扫描被电子捕获,然后如果需要的话被编译、解读、或者以适当的方式处理,然 后被存储在计算机存储器中。在本文的背景下,计算机可用或计算机 可读介质可以是能够包含、存储、通信、传播或传输程序以供指令执 行系统、装置或设备使用或与其相关的程序的任何介质。计算机可用 介质可以包括其中体现计算机可用程序代码的传播的数据信号,所述 传播的数据信号在基带中传播或者作为载波的一部分。计算机可用程 序代码可以使用任何适当的介质传输,包括但不限于无线、有线、光纤缆线、RF等等。0017可以以一种或多种编程语言的任何组合编写用于执行本 发明的操作的计算机程序代码,所述编程语言包括诸如Java、 Smalltalk、 C十+等的面向对象编程语言,以及诸如"C,,编程语言或类 似编程语言的常规顺序编程语言。程序代码可以完全在用户的计算机 上、部分地在用户的计算机上、作为独立软件包部分地在用户的计算 机上以及部分地在远程计算机上或完全在远程计算机或服务器上执 行。在后一种情况下,远程计算机可以通过包括局域网(LAN)或广 域网(WAN)的任何类型的网络连接到用户计算机,或者可以连接 到外部计算机上(例如由互联网服务提供商通过互联网连接)。0018以下参考根据本发明实施例的方法、设备(系统)和计 算机程序产品的流程图和/或框图来描述本发明。应该理解的是,可以 由计算机程序指令执行这些流程图和/或框图的每个方框以及在这些 流程图和/或框图中的方框的組合。可以把这些计算机程序指令提供给 通用计算机、专用计算机或其它可编程数据处理"i殳备的处理器,以得 到一种机器,使得经由计算机或其它可编程数据处理设备的处理器执 行的指令创建了用于执行在所述流程图和/或框图的方框中指定的功 能/动作的装置。0019这些计算机程序指令还可以被存储在计算机可读介质 中,其能够指导计算机或其它可编程数据处理设备以特定的方式运 行,使得存储在计算机可读介质中的指令生成包括指令装置的产品, 该指令装置执行在流程图和/或框图的方框中指定的功能/动作。0020计算机程序指令还可以被加载到计算机或其它可编程数 据处理器设备上以使得一系列可操作步骤在计算机或其它可编程设 备上执行以得到 一种计算机执行的方法,使得在计算机或其它可编程 设备上执行的指令提供了用于执行在流程图和/或框图的方框中指定 的功能/动作的处理。0021附图中的流程图和框图示出了根据本发明的各实施例的 系统、方法和计算机程序产品的可能的实现形式的体系结构、功能和 操作。为此,在流程图或框图中的每个方框可以代表包括用于实现指 定逻辑功能的一个或多个可执行指令的模块、片断或代码部分。应该 注意的是,在某些替代实施方式中,在方框中标注的功能可以不按照 图中标注的顺序发生。例如,根据所涉及的功能,连续示出的两个方 框实际上可以基本上同时地执行,或者这些方框有时也可以以相反的 顺序执行。还应该注意的是,框图和/或流程图的每个方框以及在框图 和/或流程图中的方框的组合可以通过执行指定功能或动作的基于硬 件的专用系统或专用硬件和计算机指令的组合来实现。0022本发明涉及一种能够4吏多个分区共享多LUNSCSI目标 的方法。分区可以将命令直接发送到它们在SCSI目标中所拥有的 SCSI LUN。由于当分区访问它自身的LUN时不需要代理服务器分区, 从而减少了不必要的开销。在本发明中,分区能够使用完整的SCSI ULP来控制目标设备。分区共享对于该SCSI目标共用的物理路径(例 如PCI总线、1/0适配器、设备总线)。没有专用于单个分区的路径。 由于每个分区只能看到并访问它所拥有的LUN,因而不需要分区到分 区之间的用于协调的通信。0023图1是示出了共享多LUNSCSI目标的多个分区的概念 图。目标170是具有四个逻辑单元的SCSI存储设备LUN 180、 LUN 181、 LUN 182和LUN 183。这四个LUN被分配给三个不同的分区 分区110、分区111和分区112。为了描述本发明的目的,作为示例, 将LUN 182分配给分区110,将LUN 181和LUN 183分配给分区111, 并将LUN 182分配给分区112。还可以进行到分区的其它可能的LUN分配,这对于本领域技术人员来说是很明显的。目标170具有两个I/O 端口目标端口 160和目标端口 161,这两个端口净皮连接到SCSI资 源,即I/O适配器。在本例中示出了 I/O适配器140和I/O适配器141 这两个I/O适配器。三个分区经由所述I/O适配器和目标端口访问 LUN。本领域技术人员还可以想到包含任意数量的LUN的多LUN SCSI目标、 一个或多个目标端口、以及一个或多个I/O适配器的其它配置。在一个替代实施例中, 一个i/o适配器也可以被连接到一个或多个目标端口。0024分区管理器120将分区(例如图1中的分区110-112) 连接到SCSI资源(例如I/0适配器)。分区管理器将物理资源分配 给虚拟分区。资源管理器130管理数据存储资源。资源管理器130的 功能可以包括数据存储、数据收集、数据备份、数据恢复、存储虚拟 化、存储供应、用户鉴别、SAN性能分析、预测未来需求和管理网络 扩展。0025图2是示出其中可以实现本发明的一个优选实施例的步 骤的流程图。在状态201中,LUN被分配给分区。资源管理器130 发现连接到该系统的所有LUN。发现方法对于存储系统使用的协议 (即外设部件互连(PCI)、串行连接SCSI (SAS)和光纤通道)是 特定的。例如,如果系统使用SAS, LUN通过将SCSI报告LUN命 令发送给LUN 0或连接到每个目标端口 -目标对(也被称作发起者目 标(I_T )节点)的已知LUN而4皮发现。0026在状态202中,资源管理器130将LUN分配发送到分 区管理器120,并且配置分区管理器120。在完成配置之后,物理资 源被分配给虚拟分区。例如,如在图1中所示,分区110被配置为访 问LUN 180,类似地,LUN 181和LUN 183 ^皮分配给分区111,并且 LUN 182被分配给分区112。经由针对系统特定的配置通知101来发 送LUN分配,如在图3中所示。0027在状态203中,请求路径拦截器121被添加到分区管理 器120,如在图3中所示。请求路径拦截器121修改由一个分区所发分区不拥有的任何LUN的任何SCSI ULP请 求。类似地,在状态204中,响应路径拦截器122在分区管理器120 中创建。响应路径拦截器122移除与一个分区不拥有的任何LUN相 关的任何响应数据。图3示出了请求路径拦截器121和响应路径拦截 器122。0028图4示出了请求路径拦截器121和响应路径拦截器122 是怎样被用来限制分区和LUN之间的请求或响应的。请求路径拦截 器121修改由分区IIO发送的试图查询或修改分区110不拥有的任何 LUN的SCSI ULP请求105。类似地,响应路径拦截器122移除与分 区110不拥有的任何LUN(即181、 182和183 )相关的任何响应106。0029表示对连接到该系统的LUN可能的改变的响应106使 得响应路径拦截器122将一个LUN改变通知107(如在图3中所示的) 发送到资源管理器130。例如,当一个新的LUN被添加到系统时,通 过一个LUN改变通知107告知资源管理器130。在本发明的一个实施 例中,每当来自报告LUN命令的LUN列表的内容发生改变时,目标 170创建一个待决的单元注意条件,以标记"所净艮告的LUN数据已改 变"。该单元注意条件将在连接到该目标的任何LUN上所发布的下一 个命令上报告。该单元注意条件将由资源路径拦截器122拦截,该资 源路径拦截器将把LIJN改变通知107发送到资源管理器130。0030仅需拦截SCSI ULP请求的一个小的子集。例如,应当 拦截报告与一个目标相连的所有LUN的报告LUN请求,因为分区不 能看到它所不拥有的LUN。应当拦截可能影响超过一个LUN的其它 请求,例如模式选择请求、发送诊断请求或写入緩冲请求。这些被拦 截的请求通常不是性能敏感的。将不拦截读取或写入请求。它们将直 接被传送给它们意图访问的LUN,因此不存在对于性能敏感的读取和 写入请求的不利处置。0031在本发明中,分区共享资源,否则这些资源将只能是专 用的。这些资源包括诸如操作系统和设备驱动程序这样的软件资源, 也包括诸如适配器卡、存储设备和物理接口这样的硬件资源。作为例子,图5表明了不同的分区怎样共享资源。在图5中,三条不同的虛 线代表三个分区(分区110、 111和112)的请求/响应。如图5中所 示,分区110和分区111共享I/O适配器140,分区110和分区111 共享目标端口 160,分区110、分区111和分区112共享目标170。本发明并没有限制对其它部件的共享,这对于本领域技术人员来说是很 明显的。0032本发明不限于单一硬件传输。其对于诸如并行SCSI、 串行连接SCSI ( SAS )、光纤通道(FC )、外设部件接口 (例如PCI、 PCI-X、 PCI-E)的主要工业标准传输同样适用。0033图6示出了本发明可以基于其实现的计算机系统(602)。 该计算机系统可以是个人计算机系统、工作站计算机系统、笔记本电 脑计算机系统、嵌入式控制器系统、基于微处理器的系统、基于数字 信号处理器的系统、手持设备系统、个人数据助理(PDA)系统、无 线系统、无线联网系统等中的任意一种。计算机系统包括总线(604) 或用于信息通信的其它通信机制,以及与总线(604)耦连的用于处 理信息的处理器(606 )。计算机系统还包括诸如随机存取存储器 (RAM)或其它动态存储设备(例如动态RAM (DRAM)、静态 RAM (SRAM)、同步DRAM (SDRAM)、闪速RAM)的主存储 器,所述主存储器耦连到总线,用于存储信息和要由处理器(606) 执行的指令。此外,主存储器(608 )可以被用于在执行要由处理器 执行的指令期间存储临时变量或其它中间信息。计算机系统还包括只读存储器(ROM ) 610或耦连到总线604用于存储静态信息和处理器 指令的其它静态存储设备(例如可编程ROM( PROM )、可擦除PROM (EPROM)和电可擦除PROM (EEPROM))。提供了诸如磁盘或 光盘的存储设备(612),并将其耦连到总线,用于存储信息和指令。 该存储设备是计算机可读介质的 一个例子。0034计算机系统还包括输入/输出端口 (630),以将输入信 号耦连到计算机系统。这种耦合可包括直接电连接、无线连接、联网 连接等,用于实现自动控制功能、远程控制功能等。可以安装适当的接口卡以提供必要的功能和信号电平。0035计算机系统还可以包括专用逻辑设备(例如专用集成电 路(ASIC))或可配置逻辑设备(例如通用逻辑阵列(GAL)或可 重复编程现场可编程门阵列(FPGA)),它们可以用来代替参考图 1-图5所描述的方法的任意部分或全部的功能。可以使用适当的设 备总线(例如小型计算机系统接口 (SCSI)总线、增强型集成设备电 子器件(IDE)总线或超直接存储器存取(DAM)总线)向计算机系 统添加其它可移动介质设备(例如光盘、磁带和可移动磁光介质)或 固定的高密度介质驱动器。计算机系统还可以附加地包括光盘读取 器、光盘读写单元或光盘自动点唱机,它们中的每一个均可以被连接 到相同的设备总线或另 一设备总线。0036计算机系统可以经由总线耦连到诸如阴极射线管 (CRT)、液晶显示器(LCD)、语音合成硬件和/或软件等的显示 器(614),用于向计算机用户显示和/或提供信息。显示器可以由显 示器或图形卡控制。计算机系统包括诸如键盘(616)和光标控制器 (618)的输入设备,用于向处理器(606)传送信息和命令选择。这 种命令选择可以经由用作输入设备(616)的语音识别硬件和/或软件 来实现。光标控制器(618)例如是鼠标、轨迹球、光标方向键、触 摸屏显示器、光字符识别硬件和/或软件等,用于将方向信息和命令选 择传送到处理器(606)和用于控制显示器(614)上的光标移动。此 外,打印机(未示出)可以提供数据结构、信息等的打印列表,或者 由计算机系统存储和/或生成的其它数据。0037计算机系统响应于处理器执行包含在诸如主存储器的存 储器中的一个或多个指令的一个或多个序列而执行本发明的一部分 或全部处理步骤。这种指令可以从诸如存储设备的另一个计算机可读 介质读入到主存储器中。还可以使用在多处理设备中的一个或多个处 理器执行包含在主存储器中的指令序列。在一个替代实施例中,可以 使用硬连线电路来代替软件指令或与其结合。因此,实施例不限于硬 件电路和软件的任何特定組合。0038本发明的计算机代码设备可以是任何已解释的或可执行 的代码机制,包括脚本、解释程序、动态链接库、Java类和完全可执 行程序,但不限于此。此外,本发明的处理过程的各部分可以被分散 以实现更好的性能、可靠性和/或成本。0039计算机系统还包括耦连到总线的通信接口。通信接口 (602)提供了耦连到网络链接(622)的双向数据通信,所述网络链 接(622)可以例如连接到本地网络(624)。例如,通信接口 (620) 可以是网络接口卡,以连接到任何分组交换局域网(LAN)。作为 另一个例子,通信接口 (620)可以是非对称数字用户线路(ADSL) 卡、综合业务数字网络(ISDN)卡或调制解调器,以向提供至对应类 型电话线路的数字通信连接。还可以经由通信接口 (620)实现无线 链接。在任何这种实施方式中,通信接口 ( 620)发送和接收承载了 代表各种类型信息的数字数据流的电、电磁或光信号。0040网络链接(622)典型地通过一个或多个网络向其它数 据设备提供数据通信。例如,网络链接可以通过本地网络(624 )(例 如LAN)或者通过由服务提供商运营的设备提供至计算机(626)的 连接,其中服务提供商通过通信网络(628)提供通信服务。在优选 实施例中,本地网络和通信网优选地使用承载了数字数据流的电、电 磁或光信号。通过各种网络的信号以及在网络链接上和通过通信接口 的信号是传递信息的载波的示例性形式,其将数字数据承载到计算机 系统并从计算机系统承载数字数据。计算机系统可以通过网络、网络 链接和通信接口发送通知和接收数据,包括程序代码。0041应该理解的是,本发明不一定要限制在所示出的和以上 描述的特定过程、设备、材料和部件,而是可以在本发明的范围内进 行多种改变。
权利要求
1.一种用于将存储设备的逻辑存储实体分配给计算机系统的多个分区的方法,包括将每个逻辑存储实体与被允许访问该逻辑存储实体的至少一个分区相关联;配置分区管理器以控制分区对逻辑存储实体的访问,使得当访问逻辑存储实体时分区能够共享资源;和在分区管理器中提供拦截器,使得如果选中的分区不被允许访问选中的存储实体,在选中的逻辑存储实体和选中的分区之间的请求或响应被拦截。
2. 如权利要求l中所述的方法,其中所述拦截器还包括请求拦 截器,用于当选中的分区不被允许访问选中的存储实体时拦截选中的 逻辑存储器实体和选中的分区之间的请求。
3. 如权利要求1中所述的方法,其中所述拦截器还包括响应拦截器,用于当选中的分区不被允许访问选中的存储实体时拦截选中的 逻辑存储实体和选中的分区之间的响应。
4. 如权利要求1中所述的方法,其中所述逻辑存储实体包括带 有逻辑单元号(LUN)的逻辑单元。
5. 如权利要求1中所述的方法,其中所述资源包括软件资源和 硬件资源。
6. 如权利要求l中所述的方法,还包括提供资源管理器以管理 逻辑存储实体和配置分区管理器。
7. 如权利要求l中所述的方法,其中仅拦截可能影响超过一个 逻辑存储实体的SCSIULP请求,而不拦截读请求或写请求。
8. —种用于将存储设备的逻辑存储实体分配给计算机系统的 多个分区的计算机程序产品,所述计算机程序产品包括实现权利要求 1-7中任一项所述方法的计算机可用程序代码。
9. 一种计算机系统,包括处理器;与所述处理器可操作地耦连的存储器; 与所述处理器和存储器可操作地耦连的存储设备;和 用于将所述存储设备的逻辑存储实体分配给所述计算机系统的 多个分区的计算机程序产品,所述计算机程序产品包括具有其中体现了计算机可用程序代码的计算机可用介质,所述计算机可用程序代码包括将每个逻辑存储实体与被允许访问逻辑存储实体的至少一 个分区相关联的指令;配置分区管理器以控制分区对逻辑存储实体的访问,使得当 访问逻辑存储实体时分区能够共享资源的指令;和在分区管理器中提供拦截器,使得如果选中的分区不被允许 访问选中的存储实体,选中的逻辑存储实体和选中的分区之间的 请求或响应被拦截的指令。
10. 如权利要求9中所述的计算机系统,其中所述拦截器还包 括请求拄截器,用于当选中的分区不被允许访问选中的存储实体时拦 截选中的逻辑存储实体和选中的分区之间的请求。
11. 如权利要求9中所述的计算机系统,其中所述拦截器还包 括响应拦截器,用于当选中的分区不被允许访问选中的存储实体时拦 截选中的逻辑存储实体和选中的分区之间的响应。
12. 如权利要求9中所述的计算机系统,其中所述逻辑存储实 体包括带有逻辑单元号(LUN)的逻辑单元。
13. 如权利要求9中所述的计算机系统,其中所述资源包括软 件资源和硬件资源。
14. 如权利要求9中所述的计算机系统,还包括提供资源管理 器以管理逻辑存储实体和配置分区管理器的指令。
15. 如权利要求9中所述的计算机系统,其中仅拦截可能影响 超过一个逻辑存储实体的SCSI ULP请求,而不拦截读请求或写请求。
全文摘要
一种用于将存储设备的逻辑存储实体分配给计算机系统的多个分区的方法、计算机程序产品和计算机系统,其包括将每个逻辑存储实体与不被允许访问逻辑存储实体的分区中的一个相关联;配置分区管理器以控制分区对逻辑存储实体的访问,使得当访问逻辑存储实体时分区能够共享资源;以及在分区管理器中提供拦截器,使得如果选中的分区不被允许访问选中的存储实体,选中的逻辑存储实体和选中的分区之间的请求和响应被拦截。
文档编号G06F3/06GK101599005SQ20091020314
公开日2009年12月9日 申请日期2009年6月2日 优先权日2008年6月3日
发明者B·E·贝克, E·M·鲍曼, L·A·桑德尔巴赫, T·J·施姆克 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1