传输未知SCSII/O指点.pdf

上传人:000****221 文档编号:970118 上传时间:2018-03-22 格式:PDF 页数:22 大小:985.41KB
返回 下载 相关 举报
摘要
申请专利号:

CN201010200195.6

申请日:

2010.06.13

公开号:

CN102006316A

公开日:

2011.04.06

当前法律状态:

撤回

有效性:

无权

法律详情:

发明专利申请公布后的视为撤回IPC(主分类):H04L 29/08申请公布日:20110406|||实质审查的生效IPC(主分类):H04L 29/08申请日:20100613|||公开

IPC分类号:

H04L29/08; G06F17/30

主分类号:

H04L29/08

申请人:

LSI公司

发明人:

罗斯·E·威斯勒; 罗伯特·L·设菲尔德; 安德鲁·J·斯派瑞; 杰拉尔德·J·弗瑞丁; 肯尼思·J·吉布森

地址:

美国加利福尼亚州米尔皮塔斯市

优先权:

2009.09.01 US 12/552,058

专利代理机构:

北京纽乐康知识产权代理事务所 11210

代理人:

田磊

PDF下载: PDF下载
内容摘要

传输未知SCSI I/O指点。本发明涉及一种通过SCSI I/O指点提供启动器与通过网络通信连接的存储群集之间多路径的方法,存储群集包括至少第一目标设备和第二目标设备。该方法包括通过网络在所述第一目标设备接收来自启动器的I/O。I/O包括数据请求。当包含在数据请求中的数据未存储在第一目标设备上而是存储在第二目标设备上时,该方法进一步包括将SCSI I/O指点列表传输给启动器。指点列表包括为第二目标设备的第一端口和第二端口各自标识的第一端口标识符和第二端口标识符。第一端口标识符和第二端口标识符是SCSI相关端口标识符。目标设备的第一端口和第二端口被标识为用于访问数据请求中被请求的数据的访问端口。

权利要求书

1.一种通过小型计算机系统接口输入/输出(SCSI I/O)指点提供启动器与通过网络通信连接的存储群集之间的多路径的方法,所述存储群集包括至少一第一目标设备和一第二目标设备,所述方法包括:通过所述网络在所述第一目标设备接收来自所述启动器的一输入/输出(I/O),所述I/O包括一用于数据的第一部分和数据的第二部分的请求;当所述数据的第一部分而不是数据的第二部分存储在所述第一目标设备上,而所述数据的第二部分存储在所述第二目标设备上时,启动所述数据的第一部分到所述启动器的传输并将一SCSI I/O指点列表传输给所述启动器;其中所述指点列表包括用于标识所述第二目标设备的一第一端口的一第一SCSI相关端口标识符和标识所述第二目标设备的一第二端口的一第二SCSI相关端口标识符,所述第一端口和第二端口被标识为用于访问所述数据的第二部分的访问端口。2.如权利要求1所述的方法,进一步包括:通过所述网络在所述第二目标设备接收来自所述启动器的一指点I/O,所述指点I/O响应于所述SCSI I/O指点列表,所述指点I/O通过以下之一请求访问所述数据的第二部分:由所述启动器指引的所述第一端口和所述第二端口。3.如权利要求2所述的方法,进一步包括:启动所述数据的第二部分到所述启动器的传输。4.如权利要求3所述的方法,其中所述数据的第一部分位于一第一数据片段上以及所述数据的第二部分位于一第二数据片段上。5.如权利要求4所述的方法,其中所述第一数据片段和所述第二数据片段被包含在一虚拟卷中。6.如权利要求5所述的方法,其中所述第一目标设备和所述第二目标设备是下列之一:磁盘、存储阵列、磁带库和存储设备。7.如权利要求5所述的方法,其中所述指点列表通过所述第二数据片段的一数据偏移值标识所述第二数据片段。8.如权利要求7所述的方法,其中所述指点列表通过所述第二数据片段的一数据长度值标识所述第二数据片段。9.如权利要求8所述的方法,其中指点列表将所述第一数据标识符和所述第二数据标识符与所述第二数据片段、所述第二数据片段的所述数据偏移值以及所述第二数据片段的所述长度值相关联。10.一种具有计算机可执行指令的计算机可读介质,所述计算机可执行指令用于执行通过小型计算机系统接口输入/输出(SCSI I/O)指点提供启动器与通过网络通信连接的存储群集之间的多路径的方法,所述存储群集包括至少一第一目标设备和一第二目标设备,所述方法包括:通过所述网络在所述第一目标设备接收来自所述启动器的一输入/输出(I/O),所述I/O包括一用于数据的第一部分和数据的第二部分的请求;当所述数据的第一部分而不是所述数据的第二部分存储在所述第一目标设备上,而所述数据的第二部分存储在所述第二目标设备时,启动所述数据的第一部分到所述启动器的传输并将一SCSI I/O指点列表传输给所述启动器;其中所述指点列表包括标识所述第二目标设备的一第一端口的一第一SCSI相关端口标识符和标识所述第二目标设备的一第二端口的一第二SCSI相关端口标识符,所述第一端口和第二端口被标识为用于访问所述数据的第二部分的访问端口。11.如权利要求10所述的计算机可读存储介质,所述方法进一步包括:通过所述网络在所述第二目标设备接收来自所述启动器的一指点I/O,所述指点I/O响应于所述SCSI I/O指点列表,所述指点I/O通过由所述启动器指引的所述第一端口和所述第二端口之一请求访问所述数据的第二部分。12.如权利要求11所述的计算机可读存储介质,所述方法进一步包括:启动所述数据的第二部分到所述启动器的传输。13.如权利要求12所述的计算机可读存储介质,其中所述数据的第一部分位于一第一数据片段上以及所述数据的第二部分位于一第二数据片段上。14.如权利要求13所述的计算机可读存储介质,其中,其中所述第一数据片段和所述第二数据片段被包含在一虚拟卷中。15.如权利要求14所述的计算机可读存储介质,其中,其中所述第一目标设备和所述第二目标设备是下列之一:磁盘、存储阵列、磁带库和存储设备。16.如权利要求14所述的计算机可读存储介质,其中所述指点列表通过所述第二数据片段的一数据偏移值标识所述第二数据片段。17.如权利要求16所述的计算机可读存储介质,其中所述指点列表通过所述第二数据片段的一数据长度值标识所述第二数据片段。18.如权利要求17所述的计算机可读存储介质,其中指点列表将所述第一数据标识符和所述第二数据标识符与所述第二数据片段、所述第二数据片段的所述数据偏移值和所述第二数据片段的所述长度值相关联。19.一种系统,包括:用于在一第一目标设备接收来自一启动器的一输入/输出(I/O)的装置,所述I/O包括一用于数据的第一部分和数据第二部分的请求;以及当所述数据的第一部分而不是数据的第二部分存储在所述第一目标设备上,而所述数据的第二部分存储在所述第二目标设备时,启动所述数据第一部分到所述启动器的传输的装置和将一SCSI I/O指点传输给所述启动器的装置;其中所述指点列表包括用来标识所述第二目标设备的第一端口的第一相关端口标识符和用来标识所述第二目标设备的第二端口的第二相关端口标识符,所述第一端口和所述第二端口被标识为用于访问所述数据的第二部分的访问端口。20.一种具有计算机可执行指令的计算机可读介质,所述计算机可执行指令用于执行通过小型计算机系统接口输入/输出(SCSI I/O)指点提供启动器与通过网络通信连接的存储群集之间的多路径的方法,所述存储群集包括至少一第一目标设备和一第二目标设备,所述方法包括:通过所述网络在所述第一目标设备接收来自所述启动器的一输入/输出(I/O),所述I/O包括一数据请求;当包括在所述数据请求中的数据未存储在所述第一目标设备上而是存储在所述第二目标设备上时,将一SCSI I/O指点列表传输给所述启动器,其中所述指点列表包括用来标识所述第二目标设备的一第一端口的一第一相关端口标识符和用来标识第二目标设备的一第二端口的一第二相关端口标识符,所述第一端口和第二端口被标识为用于访问所述数据的第二部分的访问端口;通过网络在所述第二目标设备接收来自所述启动器的一指点I/O,所述指点I/O响应于所述SCSI I/O指点列表并且所述指点I/O请求通过下列之一访问数据:由所述启动器指引的所述第一端口和所述第二端口;启动所述数据到所述启动器的传输。

说明书

传输未知SCSI I/O指点

技术领域

本发明涉及通过块存储协议访问的网络存储领域,特别是涉及一种通过小型计算机系统接口(SCSI)输入/输出指点(referral)实现多路径的系统和方法,其中多路径在启动器系统和块存储群集之间,块存储群集在由多个网络传输协议实现的网络之上。

背景技术

提供块存储群集与启动器之间的通信的当前可用的系统/方法可能不能提供期望的性能级别。

因此,可能需要提供块存储群集与启动器之间的通信的系统/方法,该系统/方法目的是提供所述提到问题的当前可获得的解决方案。

发明内容

相应的,本发明的一个实施例涉及一种方法,该方法通过小型计算机系统接口输入/输出(SCSI I/O)指点(referral)提供启动器与通过网络通信连接的存储群集之间的多路径,所述存储群集包括至少一第一目标设备和一第二目标设备,所述方法包括:通过网路在所述第一目标设备接收来自所述启动器的一输入/输出(I/O);所述I/O包括为数据的第一部分和数据的第二部分的请求;以及当所述数据的第一部分而不是数据的第二部分被存储在所述第一目标设备上而所述数据的第二部分被存储在所述第二目标设备上时,启动所述数据的第一部分到所述启动器的传输并将SCSI I/O指点列表传输给所述启动器,其中所述指点列表包括用于标识所述第二目标设备的第一端口的第一端口标识符和用于标识所述第二目标设备的第二端口的第二端口标识符,所述第一端口和第二端口被确定为用于访问所述数据的第二部分的访问端口,其中所述第一端口标识符和第二端口标识符是SCSI相关端口标识符。

本发明的一个另外的实施例提供了一种具有计算机可执行指令的计算机可读介质,所述计算机可执行指令用于执行通过小型计算机系统接口输入/输出(SCSI I/O)指点提供在启动器与通过网络通信连接的存储群集之间的多路径的方法,所述存储群集包括至少一第一目标设备和一第二目标设备,所述方法包括:通过网路在所述第一目标设备接收来自所述启动器的一输入/输出(I/O);所述I/O包括用于数据的第一部分和数据的第二部分的请求;以及当所述数据的第一部分而不是所述数据的第二部分被存储在所述第一目标设备上而所述数据的第二部分被存储在所述第二目标设备上时,启动所述数据的第一部分到启动器的传输并将SCSI I/O指点列表传输给所述启动器,其中所述指点列表包括用于标识所述第二目标设备的第一端口的第一端口标识符和用于标识所述第二目标设备的第二端口的第二端口标识符,所述第一端口和第二端口被确定为用于访问所述数据的第二部分的访问端口,其中所述第一端口标识符和第二端口标识符是SCSI相关端口标识符。

本发明的进一步实施例包括一种具有计算机可执行指令的计算机可读存储介质,该计算机可执行指令用于执行通过小型计算机系统接口输入输出(SCSI I/O)指点提供在启动器与通过网络通信连接的存储群集之间的多路径的方法,所述存储群集包括至少一第一目标设备和一第二目标设备,所述方法包括:通过网路在所述第一目标设备接收来自所述启动器的一输入/输出(I/O);所述I/O包括一数据请求;当包括在所述数据请求中的数据未被存储在所述第一目标设备上而是被存储在所述第二目标设备上时,将一SCSI I/O指点列表传输给所述启动器,其中所述指点列表包括用于标识所述第二目标设备的第一端口的第一端口标识符和用于标识所述第二目标设备的第二端口的第二端口标识符,所述第一端口和第二端口被确定为用于访问所述数据的访问端口;通过网络在所述第二目标设备接收来自所述启动器的一指点I/O,所述指点I/O响应于所述SCSI I/O列表并且所述指点I/O通过下列之一请求对所述数据的访问:所述启动器指引的所述第一端口和第二端口;以及启动所述数据到所述启动器的传输,其中所述第一端口标识符和第二端口标识符是SCSI相关端口标识符。

应该理解的是,不管是所述概括的描述还是后面详细的描述都仅仅是示例性和说明性的,并且不仅限于当前发明要求的内容。包括并组成说明书一部分的附图揭示了本发明的实施例。同时,说明书和附图用来解释本发明的原理。

附图说明

通过参考附图,当前发明的众多优点可以被本领域的技术人员更好地理解:

图1是本发明的一个示例性实施例所述的经由块存储协议可访问的网络存储应用/系统的方框图;

图2是本发明的一个示例性实施例实施/所述的通过指点进行SCSI命令/响应远程过程调用的示意性方框图;

图3是本发明的一个示例性实施例所述的在启动器系统和群集存储阵列之间进行通信的方法的流程图;

图4是本发明示例性实施例所述的一SCSI指点格式的图表;

图5是本发明的进一步的示例性实施例所述的具有到虚拟卷的多个部分的多路径的网络存储应用的拓扑结构的方框图;

图6是本发明进一步的实施例所述的具有多路径的SCSI I/O指点格式图表;

图7是本发明可选的进一步的示例性实施例所述的具有多路径的SCSI I/O指点的格式图表;

图8是本发明的进一步示例性实施例所述的具有优先的多路径的SCSI I/O指点格式图表;

图9是说明本发明的示例性实施例所述的一个方法流程图,该方法通过小型计算机系统接口输入/输出(SCSI I/O)指点在启动器与通过网络通信连接的存储群集之间提供多路径;

图10是说明与本发明的可选的示例性实施例所述的一个方法流程图,该方法通过小型计算机系统接口输入/输出(SCSI I/O)指点在启动器与通过网络通信连接的存储群集之间提供多路径;

图11是与本发明的进一步实施例所述的具有从多传输协议到虚拟卷的多个部分的多路径的网络存储应用的拓扑结构的方框图。

具体实施方案

参照相关附图中所描述的内容将详细揭示本发明优选实施例的内容。

参考图1,与本发明示意性实施例所述的通过块存储协议可访问的网络存储应用/系统被展示。例如,所述块存储协议可以是在例如光纤通道、iSCSI、或串联SCSI(SAS)的网络传输介质上应用的小型计算机系统接口(SCSI)协议。此外本发明可以在其它块存储协议上应用,例如SCSI RDMA协议(SRP)。本发明的所述系统/方法扩展了块存储协议以允许数据在组成块存储群集的多个、分立、合作存储系统中的通用逻辑块地址空间上分布。

在示例性的实施例中(如图1所示),网络存储实现/系统/存储结构100包括应用系统/服务器102。所述应用系统102可以运行一个或多个应用程序104。在应用系统102上运行的应用程序104可以通过/经由/利用存储区域网络(SAN)110来访问存储在一个或多个存储系统(106,108)上的存储资源。所述应用程序可以利用所述服务器(不失一般性)的操作系统114的块存储协议堆栈(例如:小型计算机系统接口(SCSI)协议堆栈)112来访问所述存储资源/网络存储资源。所述服务器102的操作系统114可以直接运行在服务器硬件上或者运行在不失一般性的虚拟环境的虚拟机中。

在本发明的当前实施例中,所述服务器102的SCSI协议堆栈112可以呈现本地(例如:在服务器上)和远程(例如:在网络上)的资源给所述应用程序104以作为块存储设备/逻辑单元/SCSI逻辑单元。每一个逻辑单元/SCSI逻辑单元可以具有一个唯一的逻辑块地址空间。所述远程存储资源/远程存储设备(106,108)可以被服务器102和/或存储系统(106,108)的一个或多个SAN适配器116访问,其中所述适配器可以运行与块存储协议被映射的网络媒介传输协议。例如,SCSI协议可以被映射到各种类型的可实现的网络传输上。不失一般性的,所述SAN适配器116和它们的传输协议层可以是物理或者虚拟网络适配器。

在本发明的示例性实施例中,存储区域网络110可以被来自任何网络媒介(例如,光纤通道、以太网、无限频带(InfiniBand)、以及串联SCSI(SAS))和允许端口级寻址的传输协议来实现。媒介传输层协议可以处理协议数据包在网络结构110上的从终点到终点端口的所有路由。不失一般性的,所述网络110可以被实现为一个单一结构或多个冗余结构。网络110可以是由单一网络媒介和传输协议实现的单一网络或由多个网络媒介和传输协议的组合实现的多个网络。优选地,在应用系统/服务器102上的网络端口能够物理地到达存储系统(106,108)上的网络端口。

在本发明的进一步的实施例中,存储系统(106,108)可以是网络连接存储设备。例如,所述存储系统(106,108)可以是通用计算机、专用存储阵列或网络磁盘驱动器,这使得它们的本地设备在SAN 110上可见。存储系统的存储资源可以通过SAN端口被访问,SAN端口运行媒介传输协议层。SCSI层可以利用所述SAN端口作为存储端口与存储网络进行通信。每一个存储系统106,108可以包括一个应用数据保护或者块提取到其物理存储设备的本地块虚拟化层(118,120)。例如,数据保护例如廉价磁盘冗余阵列(RAID)可以被用在专用网络存储系统上。每一个存储系统106,108可以进一步包括一个可以访问输出到网络110的实际连接的物理存储设备126的内部块协议堆栈(122,124)。

应用服务器/应用系统/服务器102可获得的存储容量可以通过增加多个存储设备126到单个存储系统(106,108)中或通过增加额外的存储系统(106,108)到存储区域网络上被扩展。当额外的存储设备被增加到单个存储系统(106,108)上时,存储系统(106,108)中的本地块虚拟化层(118,120)可以被用来从多个物理磁盘(126)中创建更大的虚拟块存储设备(128,130)。这可以保留虚拟卷(128,130)的单一逻辑块地址空间,但是,在某些位置,单个存储系统(106,108)上的物理连接的数量可能被用尽,这样在整体能力的扩展上提供了限制。当存储系统被增加到存储区域网络时,可用的应用的整体存储容量可以被增加到超出单一存储系统的限制。不过,由多存储系统(106,108)提供的存储容量可能需要被合并到一个通用逻辑块地址空间以被应用服务器(102)使用。

许多技术被用来从多个网络连接存储系统(106,108)上的存储资源126创建一个单一名字空间/通用逻辑地址空间。例如,所述技术可以使用不同的网络协议,例如群集文件系统或对象存储协议。块存储群集聚合可以被增加到所述存储网络110,这样块存储聚合可以通过多个冗余SAN结构110中的每一个中的群集块虚拟化设备提供。群集块虚拟化设备可以在网络存储系统和应用系统之间。群集块虚拟化设备可以输入由网络存储系统/存储系统输出的块存储逻辑单元,以及可以通过创建虚拟卷来创建附加的块虚拟化层。群集块虚拟化设备然后可以输出作为逻辑单元的虚拟卷到应用系统。应用系统没有看到或访问存储系统输出的逻辑单元,而是仅看到虚拟卷/群集虚拟卷。群集物理结构发现、虚拟化映射和管理可以通过群集虚拟化管理器提供。群集虚拟化管理器可以驻留在分离的一对冗余设备中,该冗余设备在SAN的边缘或其上任何地方。不失一般性的,块存储群集聚合功能可以被分布在整个群集块虚拟化设备/块群集虚拟化设备中。

可选地,块存储群集聚合/块群集聚合可以被增加到应用系统102(应用系统聚合)。例如,块群集聚合可通过增加到应用系统的块存储协议堆栈的附加提取层提供。可实施多个选项以将所述提取层放置到应用系统。块虚拟化层可掩蔽或隐藏存储系统输出的逻辑单元并可以呈现虚拟卷给块存储协议堆栈中的块虚拟化层之上的层。与块存储群集聚合被增加到存储区域网络(网络聚合)不同的是,当增加块存储群集聚合到应用系统时,存储系统输出的逻辑单元对应用系统/服务器是可访问的。块虚拟化层可以隐藏从运行在应用系统/服务器上的应用到所述逻辑单元的访问。与网络聚合相似,当块群集聚合被增加到应用系统时,群集虚拟化管理器功能可以出现以发现位于群集中的存储资源和跨越应用服务器分布虚拟化映射。这种管理方式的一个变形可以包括在每一服务器中具有独立的群集虚拟化配置,这可以防止虚拟卷被应用服务器共享。可选地,为提供虚拟卷的共享,一个群集范围的虚拟机管理器可能被需要。

在本发明示例的实施例中(如图1所示),块存储群集聚合可以被增加到存储系统(106,108)(存储系统聚合)上。块群集聚合可以通过增加到一个或两个存储系统(106,108)的块协议堆栈(122,124)的群集块虚拟化层132来提供。群集块虚拟化层132可以将本地或远程存储系统上的存储设备126组成虚拟卷(128,130)。群集中每一存储系统(106,108)上的存储设备126对一个或多个其它存储系统是可检测/可见的(例如,存储系统106的存储设备对存储系统108是可见的并且存储系统108的存储设备对存储系统106是可见的),以允许通过群集虚拟化层132的虚拟卷(128,130)的创建。在多个存储系统聚合的应用中,只有虚拟卷(128,130)通过群集块虚拟化层132输出到存储区域网络上的应用系统102。在一些网络存储应用中,从一个或多个不同存储系统请求数据的到达一个存储系统(106或108)的输入/输出(I/O)请求被发送到正确的存储系统以满足所述I/O请求。许多技术被应用以实现I/O的重新定向,例如代理I/O和命令转发。正如上面描述的其它块存储群集技术,在存储系统聚合中,一个单独群集虚拟化管理功能134可能被需要在存储结构中的至少一个存储系统(106,108)中存在。不失一般性的,所述群集虚拟化管理器功能134可以被分布到群集中的存储系统(106,108)上,因此提供一个低成本低侵袭性的存储管理功能的应用。

为创建块存储群集的所述方法/应用提供很多有用的特性。例如,块存储群集可以被扩展到多个存储系统(106,108)上。同时,应用系统102可以访问来自群集中的任何存储系统的数据。更进一步,虚拟卷(128,130)可以在所有存储节点/存储系统(106,108)上提供通用块地址空间。然而,每一个所述方法/应用(网络聚合,存储系统聚合,应用系统聚合)都具有不同的缺点。

在网络110(网络聚合)中的存储聚合可能具有如下缺点,它可能需要网络110中的额外的特殊目的组件。所述特殊目的组件可能增加网络结构的成本并且可能在从单一存储系统转移到多系统群集时强加一高成本。此外,当网络结构被创建以最小化总成本时,如果存储聚合设备并没有包括在该网络结构中,所述网络可能需要重新布置以将所述聚合设备和群集虚拟化管理器包括进去。更进一步,从单一存储系统转移到存储群集需要整个应用系统的重配置以利用虚拟卷而不是利用来自存储系统的原始卷。

在应用服务器102(应用系统聚合)上的存储聚合可能具有如下缺点,它可能需要额外的组件增加到服务器块存储堆栈112。所述组件可能需要掩蔽所有非虚拟逻辑单元以防止运行在系统上的应用程序104的访问。如果对所有访问群集的操作系统114掩蔽不彻底,由于对非虚拟逻辑单元的不规则访问,可能发生数据中断或丢失。应用系统中的群集块虚拟化层可能也需要为应用程序提供块虚拟化。唯一的块虚拟化组件可能为每一个操作系统所需要。这些唯一的群集块虚拟化组件可以被强制使用系统存储堆栈中的非正式接口来完成它们的功能,这样可能产生需要被维持和验证的配置的展开。此外,群集虚拟化管理器可能依然需要与应用系统分离的外部系统。如果群集虚拟化管理器放置在应用系统上,它可能会消耗可以被应用程序使用的资源,所述群集虚拟化管理器可能依然被需要与所有其它位于结构中的应用系统通信。不论存储虚拟化管理器的位置在哪里,可能需要独立的协议以分布和升级由群集虚拟化管理器维持并由应用系统中群集块虚拟化层使用的块存储映射。

存储系统(106,108)(存储系统聚合)中的存储聚合可以消除额外网络组件的成本。存储系统聚合可以进一步消除存储堆栈112中的额外组件的应用服务器102上的影响并且也可以消除运行在应用服务器102上的存储虚拟化管理器的影响。存储系统聚合可以允许所有为块存储群集/块存储聚类需要的组件被定位在存储系统(106,108)上。当I/O请求被发送到错误的存储系统时,存储系统聚合可以要求I/O请求被重定向。如前所述,代理I/O和/或命令转发可以用来重定向,然而,所述两者具有它们的缺点。当代理I/O被使用时,这可能会增加一个额外的存储和转发延迟来通过接收原始的错误定向的请求的存储系统路由数据。在一个私有存储互连群集上的命令转发可能会增加额外成本到存储群集并且会限制群集的最大容量。

本发明通过提供用于网络存储应用/系统使用的SCSI指点技术/方法克服了所述提到的块存储群集技术的缺点,例如所述应用系统/系统如图1所示。本发明的所述技术/方法被设计成允许创建块存储群集,而不需要在应用系统块存储堆栈112中增加非标准的组件或者在存储网络110中增加额外的专用群集设备。

参考图3,表示本发明示例性实施例所述的通过网络存储实现(例如,在启动器系统/启动器和群集存储阵列/块存储群集阵列之间通信的方法)的为数据传输的方法。例如,所述方法可以为块存储聚类实施利用如下所述(如图2和图3所示)的存储协议命令和应答顺序(例如,SCSI命令/应答远程过程调用模型)的技术。在本发明的当前实施例中,方法300包括在第一存储系统中接收一个指令的步骤302,其中第一存储系统包括在群集存储阵列的多个存储系统中。例如,块存储群集可以包括各通信地耦合/包括物理存储设备126的两个或多个存储系统(106,108)。此外,所述命令可以通过存储区域网络110被一个启动器/启动器系统/主机/服务器102传输到第一存储系统106(例如,目标系统/目标)。在示例性实施例中,所述命令可以是一I/O请求,例如数据请求(例如,读请求)。在进一步的实施例中,所述目标设备可以是群集阵列中的任何存储系统并且所述命令可以利用任何端口(例如,主端口,如图2所示)被发送到群集/群集存储阵列中的任何预期的目标存储系统上。更进一步,所述命令可以是一SCSI命令,所述启动器/启动器系统102可以是一SCSI启动器,并且所述目标设备(例如,第一存储系统106)可以是一SCSI目标设备。

在其它实施例中,当命令通过存储区域网络110/网络传输发送时,所述命令可以被传送到已建立的启动器和目标关联上(例如,一I_T连接(Nexus))。在SCSI协议中,所述位于启动器和目标设备之间I_T连接可以被建立在启动器上的SCSI端口(例如,服务器/应用系统102的SCSI端口)和目标设备上的SCSI端口(例如,第一存储系统106的SCSI端口)之间。具有多个端口的目标设备可以为每一端口提供唯一的SCSI端口标识符。具有多个存储系统的块存储群集(例如,块存储群集的目标设备)可以为群集中所有存储系统上的每一端口提供唯一的端口标识符。SCSI端口标识符可以是被定义在SCSI结构模型说明中的SCSI相关端口标识符。在另一个实施例中,每一SCSI命令可以指定数据根据在所述卷的逻辑块地址空间中的所述数据的起始地址和长度被传输。

在一个示例性实施例中,方法300进一步包括通过存储区域网络将在数据请求中请求的数据传输到启动器系统的步骤304,其中所述数据请求被存储在第一存储系统中。在本发明的当前实施例中,被存储/驻留在接收指令的存储系统(例如,目标存储系统)中的被请求数据的任何部分可以被移动/传输到启动器中。例如,通过在所述提到/相同I_T连接(例如,存储在第一存储系统106上的数据可以被传输到应用系统/启动器系统102上)上的一系列的SCSI数据传输步骤,数据可以在目标设备106和启动器102之间被移动。在本发明的当前实施例中,数据可以根据特定SCSI命令的要求在启动器和目标设备之间的一个或者两个方向之间流动。

在本发明的进一步实施例中,方法300可以进一步的包括当数据请求中被请求的数据的一部分没有被存储/没有驻留在第一存储系统而是被存储/驻留在包括多个存储系统的存储群集/群集存储阵列306的第二存储系统中时,将一指点应答从第一存储系统传输到启动器系统的步骤。在示例性的实施例中,指点应答可以提供一不是所有的在原始数据请求中被请求的数据都已经被传输的指点到启动器,所述指点应答可以为定向启动器系统到第二存储系统提供信息,和/或所述指点应答可以指示/提供群集的一个或多个其它存储系统(例如,第二存储系统108)存储所述部分/剩余部分的数据的指示符到启动器系统。例如,指点应答可以包括到所述群集的一个或多个其它存储系统/群集节点(例如,第二存储系统108)的指点列表,其中被请求数据的剩余部分(例如,在步骤302接收的原始数据请求的被请求数据的剩余部分)存储/驻留在所述存储系统/群集节点中。

如上所述,为每一额外的群集节点/存储系统有一指点,其中为满足原始的数据请求数据必须通过启动器来得到。在本发明的当前实施例中,提交给启动器的指点列表的每一指点可以为每一存储系统/节点包括如下的信息(如图4所示):端口标识符(例如,与包括至少一些在原始数据请求中的数据的剩余部分的群集节点/存储系统相关联的端口),偏移量(例如,在其关联的存储系统/存储节点上第一比特数据的逻辑块地址);以及长度(例如,为所述指点被传输的数据量)。端口标识符可以遵照定义在SCSI结构模型说明中的SCSI相关端口标识符的定义。为完成一个指点需要的其它信息,例如容量、逻辑单元以及目标设备从生成SCSI指点的命令的上下文是可得到的。

在本发明的示例性实施例中,方法300进一步包括在第二存储系统308接收一第二命令。例如,为了响应接收指点列表,启动器102可以将所述第二命令传输(例如,通过存储区域网络)到群集的其它存储系统中的一个,其中其它存储系统在指点列表中被标识为存储所述数据剩余部分的至少一部分。例如,启动器可以将第二命令(例如,可以基于指点应答)传输到被标识在指点列表中的一端口上,所述端口与所述第二系统关联。在进一步的实施例中,块存储协议启动器102可以发送独立的命令到群集的所有其它存储系统,其中所有其它存储系统通过使用标识在指点列表中的端口(例如,二级端口)来保留在原始请求中被请求的数据。

在本发明的进一步实施例中,方法300进一步包括通过存储区域网络310将所述被请求数据的被存储部分从第二存储系统传输到启动器系统的步骤310。例如,启动器102,如上所述,可以发送指令到群集中的所有其它存储系统(例如,存储系统108),其中所有其它存储系统通过使用被标识在指点列表中的端口(例如,二级端口)以保留原始请求中被请求的数据,所述存储系统将它们的本地数据连同指示本地数据已被传送的状态发回到启动器。当响应于基于所述指点发布的命令的所有数据的传输已经被完成之后,块存储协议可以通过返回其调用者来完成操作。

在本发明的可选实施例中,其中所有在原始数据请求中被请求的数据(步骤302)已经被第一存储系统存储并被传输,方法300进一步包括将一个传输完成的应答从第一存储系统传输到启动器系统的步骤312,所述传输完成应答指点所有数据请求中被请求的数据已经被传输。在进一步的实施例中,当响应于一指令的所有数据已经被传输或如果一错误条件发生在命令或数据传输中,SCSI目标设备可以通过返回/发送包括命令状态的SCSI应答到启动器来完成操作(方法步骤314)。

为支持本发明,存储阵列群集技术可以被要求来提供许多特性。例如,块存储协议目标设备可以被要求跨越群集中的所有存储系统(106,108)分布。此外,群集中所有存储系统上的所有端口被要求各具有唯一端口标识符。所述端口标识符可以被要求是定义在SCSI结构模型说明中的SCSI相关端口标识符。更进一步,虚拟卷的逻辑块地址空间可以被要求是跨越虚拟卷存在的所有存储系统的公用空间。此外,可以被要求在所有存储系统(106,108)上的群集块虚拟化功能(134)应该能够确定群集中哪个存储系统保留其地址范围的数据在虚拟卷(128,130)内。

如上所讨论的,本发明的方法可以被实现在块存储群集中,所述方法提供在存储系统(106,108)上的块虚拟化。在示例性实施例中,本发明的系统/方法不是利用命令转发或者代理I/O,而是通过完成具有包含SCSI检查条件和SCSI读出数据中的指点列表的状态信息的其本地数据传输来实现群集块虚拟化(132,134),其指示数据驻留在其它群集节点。

在进一步实施例中,SCSI启动器102可以被配置用以检测一新的检查条件,为每一指点发出新的SCSI命令,并且追踪何时所有指点被完成。启动器102可以被进一步被配置用以累积数据,所述数据通过跨越多个启动器-目标设备连接的指点重新得到。

本发明的系统/方法在当前块存储群集方法上提供了很多优点。首先,为了支持群集在存储结构中不需要额外的硬件。在主机代理和存储系统常驻块虚拟化的情况下,没有硬件需要被增加到SAN 110上。此外,目标设备和逻辑单元的发现对启动器102可以是不变的,在存取群集的所有节点上所述目标设备可见,并且存储群集的所有节点被配置用以判断通过目标设备中的哪个逻辑单元可用。更进一步,不需要从启动器中隐藏非虚拟卷并且只有虚拟卷被从群集中的存储系统中输出。此外,启动器不需要保留关于群集中数据分布的信息。本发明的启动器/主机102被配置用以确定数据驻留在群集中地方。数据可以被从群集中任何节点上的任何端口所请求。所述指点定向启动器到保留数据的群集节点上。此外,存储系统(106,108)上的数据可以在不通知启动器的情况下被移动,因为,如果启动器试图通过一个错误群集节点上的端口访问数据的话,启动器仅需要简单的被重定向(通过指点)到包括数据的群集节点上的端口。更进一步的,本发明的方法可以被应用在任何数量的存储设备上,与SAN 110上的限制增加到SAN上的硬件容量存储虚拟化形成对照。此外,本发明的方法可以被应用到群集节点上具有多个端口的存储群集。如果数据通过多于一个路径是可访问的,那么指点仅需要包括单一端口,通过该端口数据可以被访问。在标准存储协议中实现本发明可具有如下优势,启动器上的块存储协议堆栈中的不需要独特的软件安装。

为提供SCSI I/O指点的所述系统/方法可以允许启动器访问逻辑单元号(LUNs)上的数据,其中逻辑单元号跨越多个目标设备传播。目标设备可以是磁盘、存储阵列、磁带库、或任何其它类型的存储设备。在本发明的进一步示例性实施例中,我们可以提供一种系统/方法,其允许启动器通过多于一个目标端口来访问虚拟卷的一部分(例如,所述部分是数据片段,所述部分可以由物理盘、虚拟盘或者任何其它目标设备上的可用数据片段组成)。例如,如果具有访问数据片段的目标设备具有多于一个连接到存储区域网络(SAN)的目标端口,所述情况就可能发生。在这种情况下,本发明的系统/方法可以提供允许目标设备(可以利用所述SCSI I/O指点的方法)通知启动器关于数据片段可用的多个路径的每一个。

参考图5,表示本发明示例性实施例所述的通过SCSI I/O指点配置为提供多路径的系统(例如:拓扑结构)。系统500可以包括启动器502(例如,应用服务器)。所述启动器502可以被配置用以通过存储区域网络504通信与多个目标/目标设备/存储设备通信连接。在本发明的当前实施例中,系统500可以进一步包括多个数据片段(514,516,518,520),所述数据片段组成/是部分的/被包括在虚拟卷522。启动器502可以被配置用以通过目标设备的一个或多个端口(如图5中所示端口0到7)访问虚拟卷522的一部分(例如,所述部分是数据片段514,516,518,520的一个或多个)。例如,利用所述的SCSI I/O指点的方法的启动器502可以具有到组成虚拟卷522的数据片段的每一个的多个路径。

在本发明的一个示例性实施例中,为了通知启动器502数据片段(514,516,518或520)通过多个目标端口可用,目标设备(506,508,510,512)可以返回列出不同端口的多个SCSI I/O指点,但是其相关的不同端口/指示的所述不同端口与相同数据片段相关联。所述数据片段可以在SCSI指点列表中通过它们的数据偏移量和数据长度唯一地标识。例如,启动器502可以通过目标设备506的端口0或端口1联系/发送一I/O到目标设备中的一个(例如,目标设备506)来请求数据,所述数据跨越数据片段(514,516,518,520)传播并通过多个端口可访问。例如,I/O可以请求存储/传播跨越数据片段514、516,518,520的每一个的数据。目标设备506然后可以为数据被保留在本地启动数据传输(例如,数据片段514上的数据)。进一步,目标设备506可以返回包括如下指点的SCSI I/O指点列表:

端口2标识符,数据片段516数据偏移量,数据片段516数据长度

端口3标识符,数据片段516数据偏移量,数据片段516数据长度

端口4标识符,数据片段518数据偏移量,数据片段518数据长度

端口5标识符,数据片段518数据偏移量,数据片段518数据长度

端口6标识符,数据片段520数据偏移量,数据片段520数据长度

端口7标识符,数据片段520数据偏移量,数据片段520数据长度

在本发明的当前实施例中,启动器502,为了响应接收所述I/O指点列表,可以然后被配置为发送指点I/O到标识在SCSI I/O指点列表中每一个数据片段。例如,为了找到由启动器502发出在原始I/O中的被请求的数据的剩余部分,启动器502可以发送I/O指点到数据片段516,518,520。在本发明的一个示例性实施例中,启动器502可以选择性地决定通过哪个端口来访问每一个数据片段。由于本发明前面所述的I/O指点多路径列表方法,基于所述I/O指点列表启动器502能够为访问一个相同的数据片段决定可能的可选路径/多路径。例如,基于所述的SCSI I/O指点列表,为通过指点I/O访问数据片段516,启动器502可以选择端口2或者端口3。进一步,如果指定的指点I/O遇到问题,启动器502能够在其它能够访问相同数据片段的端口上选择重试。例如,如果启动器502通过端口2发送一指点I/O到访问/请求访问数据片段516并且所述指点I/O遇到问题,启动器可以替代的通过端口3重新尝试发送指点I/O(例如,当到数据片段的一指定路径变得不可用时,启动器可以切换到可选的路径)。图6展示了一个由上面提到的拓扑结构中的一目标设备提供的示例性SCSI I/O指点列表,当原始I/O被发送到目标设备514的端口0时,原始I/O的大小是400块(blocks),并且每一个数据片段(514,516,518,520)保留所述原始I/O请求中被请求数据的100块。

如上所述的I/O指点多路径方法/功能可以允许启动器在任何时候利用新的/可选的到数据片段的路径。所述功能的可能使用可以是为系统500达到负载平衡,例如通过轮叫调度(Round Robin Scheduling)。根据启动器的性态,上述的I/O指点多路径方法/功能可以允许目标设备基于SCSI指点列表中的指点的顺序来分布负载。这样的顺序可以通过轮叫调度由当前负载分发等决定。

在本发明的一个可选实施例中,SCSI I/O指点列表可以直接的分组多个端口到相同的数据片段,而不是执行如前所述的隐性的端口分组。所述直接分组可以通过增加额外的结构到SCSI I/O指点列表中来被达到。参考图7,一个可选的示例性SCSII/O指点列表(如图6所示)可以被如上所述的与本发明的一个进一步实施例所述的拓扑结构中的目标设备提供。端口标识符可以遵照定义在SCSI结构模型说明中的SCSI相关端口标识符的定义。在数据片段通过多端口是通常可访问的配置中,图7所示的直接端口分组/可选SCSI I/O指点列表的可选方法可以这样提高性能,通过消除/避免不得不为每一可用端口重复/重列表数据片段偏移量和数据片段长度的需要。

在本发明的进一步实施例中,尽管允许进一步附加次序被包含本发明中,允许目标设备指定主要和可选的路径是有利的。参考图8,可选的示例性SCSI I/O指点列表可以由所述拓扑结构中的目标设备提供,所述列表实现如前所述的与本发明的进一步示例性实施例所述的主要和可选路径的指定。端口标识符可以遵照定义在SCSI结构模型说明中的SCSI相关端口标识符的定义。

参考图9,表示本发明的一个示例性实施例所述的方法900,该方法通过小型计算机系统接口输入输出(SCSI I/O)指点提供启动器与通过网络通信连接的存储群集之间的多路径。在示例性实施例中,所述方法900可以通过上述系统500实现。在本发明的当前实施例中,存储群集包括至少一第一目标设备和一第二目标设备。例如,所述第一目标设备和/或第二目标设备可以是磁盘、存储阵列、磁带库、和/或存储设备。在本发明的一个示例性实施例中,方法900包括通过网络在第一目标设备从启动器接收输入/输出(I/O)902。例如,所述I/O可以包括用于数据的第一部分和数据的第二部分的请求(例如,读请求)。在本发明的当前实施例中,数据的第一部分位于第一数据片段上而数据的第二部分位于第二数据片段上。进一步,第一数据片段和第二数据片段可以被包括在一虚拟卷中。

在进一步的实施例中,当数据的第一部分而不是数据的第二部分存储在所述第一目标设备时,以及当数据的第二部分存储在所述第二目标设备时,方法900可以进一步的包括如下步骤:启动数据的第一部分到启动器的传输904;以及将SCSI I/O指点列表传输到启动器906。在示例性实施例中,指点列表可以包括用来标识第二目标设备的第一端口的第一端口标识符和用来标识第二目标设备的第二端口的第二端口标识符。第一端口和第二端口可以被标识在指点列表中作为访问数据的第二部分的访问端口(例如,第二目标设备的访问端口,通过该访问端口启动器可访问数据的第二部分)。在进一步的实施例中,指点列表可以通过第二数据片段的数据偏移量和/或第二数据片段的数据长度来确定第二数据片段。进一步的,指点列表可以将第一端口标识符和第二端口标识符与第二数据片段相关联。第一端口标识符和第二端口标识符可以遵照定义在SCSI结构模型说明中的SCSI相关端口标识符的定义。

在进一步的实施例中,方法900可以进一步包括通过网络在第二目标设备从启动器接收指点I/O 908。例如,指点I/O可以响应于SCSI I/O指点列表。同时,所述指点I/O可以通过下列之一来请求到数据的第二部分的访问:由启动器指引的第一端口和第二端口。在进一步的实施例中,方法900可以进一步包括启动数据的第二部分到启动器的传输910。

参考图10,表示本发明的一个示例性实施例所述的方法1000,该方法通过小型计算机系统接口输入输出(SCSI I/O)指点提供启动器与通过网络通信连接的存储群集之间的多路径。在示例性实施例中,所述方法1000可以通过如上所述系统500实现。存储群集可以包括至少一第一目标设备和一第二目标设备。方法1000可以包括通过网络(例如,I/O包括一数据请求)在第一目标设备从启动器接收输入/输出(I/O)的步骤1002。方法1000可以进一步包括,当包含数据请求中的数据不是存储在第一目标设备而是存储在第二目标设备时,将SCSI I/O指点列表传输到启动器1004。指点列表包括用来标识第二目标设备的第一端口的第一端口标识符和用来标识第二目标设备的第二端口的第二端口标识符,第一端口和第二端口被标识为访问所述数据的访问端口。第一端口标识符和第二端口标识符可以遵照定义在SCSI结构模型说明中的SCSI相关端口标识符的定义。方法1000可以包括通过网络在第二目标设备从启动器接收指点I/O的步骤1006。指点I/O可以响应于所述SCSI I/O指点列表,并且所述指点I/O可以请求通过由启动器指引的第一或第二端口访问数据。方法1000可以进一步包括启动数据到启动器的传输1008。

参考图11,表示本发明的示例性实施例所述的被配置用以通过SCSI I/O指点提供多路径的系统(例如,拓扑结构)。系统1100可以包括启动器1102(例如,应用服务器)。启动器1102可以被配置用以通过存储区域网络(1104,1106)通信连接多个目标/目标设备/存储设备(1108,1110)。如图11所示,存储区域网络1104(光纤通道)和1106(iSCSI)可以由来自不同的媒介传输层协议实现。在本发明的当前实施例中,系统1100可以进一步包括多个数据片段(1112,1114),所述数据片段组成虚拟卷1122或是虚拟卷1122的部分或被包括在虚拟卷1122中。目标设备、数据片段以及虚拟卷可以组成存储群集1116。启动器1102可以被配置用以通过目标设备的一个或多个端口(如图11中的端口1到端口4)访问虚拟卷1122的一部分,所述部分是数据片段(1112,1114)的一个或多个,例如,利用上述方法的SCSI I/O指点的启动器1102可以具有到组成虚拟卷1122的数据片段的每一个的多路径。

在本发明的一个示例性实施例中,为了通知启动器1102数据片段(1112,1114)通过多目标端口是可用的,目标设备(1108,1110)可以返回列出不同端口的多个SCSI I/O指点,但是其关联不同的端口/指点所述不同端口与相同数据片段相关联。数据片段可以通过它们的逻辑块地址(LBA)和数据长度被唯一标识在SCSI指点列表中。例如,启动器1102可以通过目标设备1110的端口3或者端口4联系/发送I/O到目标设备中的一个(例如,目标设备1110),请求跨越数据片段(1112,1114)分布的数据并通过多个端口可访问。例如,下面的I/O可请求存储在数据片段112和数据片段1114的每一个上/跨越数据片段112和数据片段1114的每一个分布的数据:

端口4,逻辑块地址(LBA)0,长度200

目标设备1110然后可以为数据保留在本地启动数据传输(例如,数据片段1114上的数据)。进一步,假定数据片段1112和数据片段1114的长度都是100块,目标设备1110然后可以返回包含下列指点列表的SCSI I/O指点列表,下列指点列表包含一个条目:

LBA 0,长度100,端口1相关端口ID,端口2相关端口ID

在本发明的当前实施例中,响应接收I/O指点列表,启动器1102可以然后被配置用以发送指点I/O到标识在SCSI I/O指点列表中的数据片段的每一个。例如,启动器1102可以发送I/O指点到数据片段1112和1114以找回由启动器1102发送的原始I/O的数据请求中的剩余部分。在本发明的示例性实施例中,启动器1102可以选择性判断通过哪个端口去访问每一数据片段。由于如上描述的本发明的I/O指点多路径列表方法,启动器1102能够基于所述I/O指点列表判定为访问相同数据片段的可能的可选路径/多路径。例如,基于上面的SCSI I/O指点列表,启动器1102可以为通过指点I/O访问数据片段1112而选择端口1或者端口2。更进一步,如果给定的指点I/O遇到问题,启动器可以尝试选择其它端口去访问所述相同的数据片段。例如,如果启动器1102通过端口2发送指点I/O以访问/请求访问数据片段1112并且所述指点I/O遇到问题,启动器可通过替代的端口1重试发送指点I/O(例如,当到数据片段的指定路径变得不利时,启动器可以切换到其它路径)。

所述I/O指点方法/功能可以允许多个媒介传输协议并存在一SCSI指点存储系统中。所述方法/功能可以允许SCSI指点存储系统中的端口标识符有固定的大小。除此之外,为不同媒介传输层协议的SCSI端口的端口标识符可以共存在由本发明的方法/功能发出的指点或指点列表中。进一步,发送到一个媒介传输协议的I/O可以被重新定向到第二媒介传输协议的端口上。例如,被定向到SAS端口的I/O可以被重定向到光纤通道端口。

应该注意的是,根据本发明的所述实施例可以使用传统的通用数字计算机容易地实现,其中所述计算机根据本说明书所教导的内容被编程,说明书中的内容对计算机领域的技术人员来说是显而易见的。基于当前公开的教导,适合的软件代码可已被熟练的编程员准备好,所述实现对软件领域的技术人员来说也是显而易见的。

应该理解本发明可以以软件包的形式来方便地实现。这样一个软件包可以是利用计算机可读媒介的计算机程序产品,该计算机可读媒介包括储存的用于编程计算机以实现本发明已公开的功能和过程的计算机代码。所述计算机可读媒介可以包括但不限于:任何类型的传统软盘、光盘、CD-ROM、磁盘、硬盘驱动器、磁光盘、ROM、RAM、EPROM、EEPROM、磁或光卡、或者其它任何合适用来存储电子指令的媒介。

应该理解所述方法公开的步骤的特定顺序或层次是示例方法的例子。应当理解,基于设计偏好,所述方法中的步骤的特定顺序或层次可以重新排列,而仍在本发明的主题精神内。所附方法权利要求以样本顺序呈现了不同步骤的要素,并不必意味着仅限于所呈现的特定次序或层次。

应当相信,通过前述将理解本发明和许多其伴随的优点,显而易见,其组成的形式、结构和布置可以进行不同的变化,而不脱离本发明的范围和精神或不牺牲所有其物质优点。这里以前所述的形式只是示例说明,下列权利要求的目的是包含和包括此类变化。

传输未知SCSII/O指点.pdf_第1页
第1页 / 共22页
传输未知SCSII/O指点.pdf_第2页
第2页 / 共22页
传输未知SCSII/O指点.pdf_第3页
第3页 / 共22页
点击查看更多>>
资源描述

《传输未知SCSII/O指点.pdf》由会员分享,可在线阅读,更多相关《传输未知SCSII/O指点.pdf(22页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN102006316A43申请公布日20110406CN102006316ACN102006316A21申请号201010200195622申请日2010061312/552,05820090901USH04L29/08200601G06F17/3020060171申请人LSI公司地址美国加利福尼亚州米尔皮塔斯市72发明人罗斯E威斯勒罗伯特L设菲尔德安德鲁J斯派瑞杰拉尔德J弗瑞丁肯尼思J吉布森74专利代理机构北京纽乐康知识产权代理事务所11210代理人田磊54发明名称传输未知SCSII/O指点57摘要传输未知SCSII/O指点。本发明涉及一种通过SCSII/O指点提供启动器与通。

2、过网络通信连接的存储群集之间多路径的方法,存储群集包括至少第一目标设备和第二目标设备。该方法包括通过网络在所述第一目标设备接收来自启动器的I/O。I/O包括数据请求。当包含在数据请求中的数据未存储在第一目标设备上而是存储在第二目标设备上时,该方法进一步包括将SCSII/O指点列表传输给启动器。指点列表包括为第二目标设备的第一端口和第二端口各自标识的第一端口标识符和第二端口标识符。第一端口标识符和第二端口标识符是SCSI相关端口标识符。目标设备的第一端口和第二端口被标识为用于访问数据请求中被请求的数据的访问端口。30优先权数据51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求。

3、书3页说明书12页附图6页CN102006329A1/3页21一种通过小型计算机系统接口输入/输出SCSII/O指点提供启动器与通过网络通信连接的存储群集之间的多路径的方法,所述存储群集包括至少一第一目标设备和一第二目标设备,所述方法包括通过所述网络在所述第一目标设备接收来自所述启动器的一输入/输出I/O,所述I/O包括一用于数据的第一部分和数据的第二部分的请求;当所述数据的第一部分而不是数据的第二部分存储在所述第一目标设备上,而所述数据的第二部分存储在所述第二目标设备上时,启动所述数据的第一部分到所述启动器的传输并将一SCSII/O指点列表传输给所述启动器;其中所述指点列表包括用于标识所述第。

4、二目标设备的一第一端口的一第一SCSI相关端口标识符和标识所述第二目标设备的一第二端口的一第二SCSI相关端口标识符,所述第一端口和第二端口被标识为用于访问所述数据的第二部分的访问端口。2如权利要求1所述的方法,进一步包括通过所述网络在所述第二目标设备接收来自所述启动器的一指点I/O,所述指点I/O响应于所述SCSII/O指点列表,所述指点I/O通过以下之一请求访问所述数据的第二部分由所述启动器指引的所述第一端口和所述第二端口。3如权利要求2所述的方法,进一步包括启动所述数据的第二部分到所述启动器的传输。4如权利要求3所述的方法,其中所述数据的第一部分位于一第一数据片段上以及所述数据的第二部分。

5、位于一第二数据片段上。5如权利要求4所述的方法,其中所述第一数据片段和所述第二数据片段被包含在一虚拟卷中。6如权利要求5所述的方法,其中所述第一目标设备和所述第二目标设备是下列之一磁盘、存储阵列、磁带库和存储设备。7如权利要求5所述的方法,其中所述指点列表通过所述第二数据片段的一数据偏移值标识所述第二数据片段。8如权利要求7所述的方法,其中所述指点列表通过所述第二数据片段的一数据长度值标识所述第二数据片段。9如权利要求8所述的方法,其中指点列表将所述第一数据标识符和所述第二数据标识符与所述第二数据片段、所述第二数据片段的所述数据偏移值以及所述第二数据片段的所述长度值相关联。10一种具有计算机可。

6、执行指令的计算机可读介质,所述计算机可执行指令用于执行通过小型计算机系统接口输入/输出SCSII/O指点提供启动器与通过网络通信连接的存储群集之间的多路径的方法,所述存储群集包括至少一第一目标设备和一第二目标设备,所述方法包括通过所述网络在所述第一目标设备接收来自所述启动器的一输入/输出I/O,所述I/O包括一用于数据的第一部分和数据的第二部分的请求;当所述数据的第一部分而不是所述数据的第二部分存储在所述第一目标设备上,而所述数据的第二部分存储在所述第二目标设备时,启动所述数据的第一部分到所述启动器的传输并将一SCSII/O指点列表传输给所述启动器;权利要求书CN102006316ACN102。

7、006329A2/3页3其中所述指点列表包括标识所述第二目标设备的一第一端口的一第一SCSI相关端口标识符和标识所述第二目标设备的一第二端口的一第二SCSI相关端口标识符,所述第一端口和第二端口被标识为用于访问所述数据的第二部分的访问端口。11如权利要求10所述的计算机可读存储介质,所述方法进一步包括通过所述网络在所述第二目标设备接收来自所述启动器的一指点I/O,所述指点I/O响应于所述SCSII/O指点列表,所述指点I/O通过由所述启动器指引的所述第一端口和所述第二端口之一请求访问所述数据的第二部分。12如权利要求11所述的计算机可读存储介质,所述方法进一步包括启动所述数据的第二部分到所述启。

8、动器的传输。13如权利要求12所述的计算机可读存储介质,其中所述数据的第一部分位于一第一数据片段上以及所述数据的第二部分位于一第二数据片段上。14如权利要求13所述的计算机可读存储介质,其中,其中所述第一数据片段和所述第二数据片段被包含在一虚拟卷中。15如权利要求14所述的计算机可读存储介质,其中,其中所述第一目标设备和所述第二目标设备是下列之一磁盘、存储阵列、磁带库和存储设备。16如权利要求14所述的计算机可读存储介质,其中所述指点列表通过所述第二数据片段的一数据偏移值标识所述第二数据片段。17如权利要求16所述的计算机可读存储介质,其中所述指点列表通过所述第二数据片段的一数据长度值标识所述。

9、第二数据片段。18如权利要求17所述的计算机可读存储介质,其中指点列表将所述第一数据标识符和所述第二数据标识符与所述第二数据片段、所述第二数据片段的所述数据偏移值和所述第二数据片段的所述长度值相关联。19一种系统,包括用于在一第一目标设备接收来自一启动器的一输入/输出I/O的装置,所述I/O包括一用于数据的第一部分和数据第二部分的请求;以及当所述数据的第一部分而不是数据的第二部分存储在所述第一目标设备上,而所述数据的第二部分存储在所述第二目标设备时,启动所述数据第一部分到所述启动器的传输的装置和将一SCSII/O指点传输给所述启动器的装置;其中所述指点列表包括用来标识所述第二目标设备的第一端口。

10、的第一相关端口标识符和用来标识所述第二目标设备的第二端口的第二相关端口标识符,所述第一端口和所述第二端口被标识为用于访问所述数据的第二部分的访问端口。20一种具有计算机可执行指令的计算机可读介质,所述计算机可执行指令用于执行通过小型计算机系统接口输入/输出SCSII/O指点提供启动器与通过网络通信连接的存储群集之间的多路径的方法,所述存储群集包括至少一第一目标设备和一第二目标设备,所述方法包括通过所述网络在所述第一目标设备接收来自所述启动器的一输入/输出I/O,所述I/O包括一数据请求;当包括在所述数据请求中的数据未存储在所述第一目标设备上而是存储在所述第二目标设备上时,将一SCSII/O指点。

11、列表传输给所述启动器,其中所述指点列表包括用来标权利要求书CN102006316ACN102006329A3/3页4识所述第二目标设备的一第一端口的一第一相关端口标识符和用来标识第二目标设备的一第二端口的一第二相关端口标识符,所述第一端口和第二端口被标识为用于访问所述数据的第二部分的访问端口;通过网络在所述第二目标设备接收来自所述启动器的一指点I/O,所述指点I/O响应于所述SCSII/O指点列表并且所述指点I/O请求通过下列之一访问数据由所述启动器指引的所述第一端口和所述第二端口;启动所述数据到所述启动器的传输。权利要求书CN102006316ACN102006329A1/12页5传输未知S。

12、CSII/O指点技术领域0001本发明涉及通过块存储协议访问的网络存储领域,特别是涉及一种通过小型计算机系统接口SCSI输入/输出指点REFERRAL实现多路径的系统和方法,其中多路径在启动器系统和块存储群集之间,块存储群集在由多个网络传输协议实现的网络之上。背景技术0002提供块存储群集与启动器之间的通信的当前可用的系统/方法可能不能提供期望的性能级别。0003因此,可能需要提供块存储群集与启动器之间的通信的系统/方法,该系统/方法目的是提供所述提到问题的当前可获得的解决方案。发明内容0004相应的,本发明的一个实施例涉及一种方法,该方法通过小型计算机系统接口输入/输出SCSII/O指点RE。

13、FERRAL提供启动器与通过网络通信连接的存储群集之间的多路径,所述存储群集包括至少一第一目标设备和一第二目标设备,所述方法包括通过网路在所述第一目标设备接收来自所述启动器的一输入/输出I/O;所述I/O包括为数据的第一部分和数据的第二部分的请求;以及当所述数据的第一部分而不是数据的第二部分被存储在所述第一目标设备上而所述数据的第二部分被存储在所述第二目标设备上时,启动所述数据的第一部分到所述启动器的传输并将SCSII/O指点列表传输给所述启动器,其中所述指点列表包括用于标识所述第二目标设备的第一端口的第一端口标识符和用于标识所述第二目标设备的第二端口的第二端口标识符,所述第一端口和第二端口被。

14、确定为用于访问所述数据的第二部分的访问端口,其中所述第一端口标识符和第二端口标识符是SCSI相关端口标识符。0005本发明的一个另外的实施例提供了一种具有计算机可执行指令的计算机可读介质,所述计算机可执行指令用于执行通过小型计算机系统接口输入/输出SCSII/O指点提供在启动器与通过网络通信连接的存储群集之间的多路径的方法,所述存储群集包括至少一第一目标设备和一第二目标设备,所述方法包括通过网路在所述第一目标设备接收来自所述启动器的一输入/输出I/O;所述I/O包括用于数据的第一部分和数据的第二部分的请求;以及当所述数据的第一部分而不是所述数据的第二部分被存储在所述第一目标设备上而所述数据的第。

15、二部分被存储在所述第二目标设备上时,启动所述数据的第一部分到启动器的传输并将SCSII/O指点列表传输给所述启动器,其中所述指点列表包括用于标识所述第二目标设备的第一端口的第一端口标识符和用于标识所述第二目标设备的第二端口的第二端口标识符,所述第一端口和第二端口被确定为用于访问所述数据的第二部分的访问端口,其中所述第一端口标识符和第二端口标识符是SCSI相关端口标识符。0006本发明的进一步实施例包括一种具有计算机可执行指令的计算机可读存储介质,该计算机可执行指令用于执行通过小型计算机系统接口输入输出SCSII/O指点提供在说明书CN102006316ACN102006329A2/12页6启动。

16、器与通过网络通信连接的存储群集之间的多路径的方法,所述存储群集包括至少一第一目标设备和一第二目标设备,所述方法包括通过网路在所述第一目标设备接收来自所述启动器的一输入/输出I/O;所述I/O包括一数据请求;当包括在所述数据请求中的数据未被存储在所述第一目标设备上而是被存储在所述第二目标设备上时,将一SCSII/O指点列表传输给所述启动器,其中所述指点列表包括用于标识所述第二目标设备的第一端口的第一端口标识符和用于标识所述第二目标设备的第二端口的第二端口标识符,所述第一端口和第二端口被确定为用于访问所述数据的访问端口;通过网络在所述第二目标设备接收来自所述启动器的一指点I/O,所述指点I/O响应。

17、于所述SCSII/O列表并且所述指点I/O通过下列之一请求对所述数据的访问所述启动器指引的所述第一端口和第二端口;以及启动所述数据到所述启动器的传输,其中所述第一端口标识符和第二端口标识符是SCSI相关端口标识符。0007应该理解的是,不管是所述概括的描述还是后面详细的描述都仅仅是示例性和说明性的,并且不仅限于当前发明要求的内容。包括并组成说明书一部分的附图揭示了本发明的实施例。同时,说明书和附图用来解释本发明的原理。附图说明0008通过参考附图,当前发明的众多优点可以被本领域的技术人员更好地理解0009图1是本发明的一个示例性实施例所述的经由块存储协议可访问的网络存储应用/系统的方框图;00。

18、10图2是本发明的一个示例性实施例实施/所述的通过指点进行SCSI命令/响应远程过程调用的示意性方框图;0011图3是本发明的一个示例性实施例所述的在启动器系统和群集存储阵列之间进行通信的方法的流程图;0012图4是本发明示例性实施例所述的一SCSI指点格式的图表;0013图5是本发明的进一步的示例性实施例所述的具有到虚拟卷的多个部分的多路径的网络存储应用的拓扑结构的方框图;0014图6是本发明进一步的实施例所述的具有多路径的SCSII/O指点格式图表;0015图7是本发明可选的进一步的示例性实施例所述的具有多路径的SCSII/O指点的格式图表;0016图8是本发明的进一步示例性实施例所述的具。

19、有优先的多路径的SCSII/O指点格式图表;0017图9是说明本发明的示例性实施例所述的一个方法流程图,该方法通过小型计算机系统接口输入/输出SCSII/O指点在启动器与通过网络通信连接的存储群集之间提供多路径;0018图10是说明与本发明的可选的示例性实施例所述的一个方法流程图,该方法通过小型计算机系统接口输入/输出SCSII/O指点在启动器与通过网络通信连接的存储群集之间提供多路径;0019图11是与本发明的进一步实施例所述的具有从多传输协议到虚拟卷的多个部分的多路径的网络存储应用的拓扑结构的方框图。说明书CN102006316ACN102006329A3/12页7具体实施方案0020参照。

20、相关附图中所描述的内容将详细揭示本发明优选实施例的内容。0021参考图1,与本发明示意性实施例所述的通过块存储协议可访问的网络存储应用/系统被展示。例如,所述块存储协议可以是在例如光纤通道、ISCSI、或串联SCSISAS的网络传输介质上应用的小型计算机系统接口SCSI协议。此外本发明可以在其它块存储协议上应用,例如SCSIRDMA协议SRP。本发明的所述系统/方法扩展了块存储协议以允许数据在组成块存储群集的多个、分立、合作存储系统中的通用逻辑块地址空间上分布。0022在示例性的实施例中如图1所示,网络存储实现/系统/存储结构100包括应用系统/服务器102。所述应用系统102可以运行一个或多。

21、个应用程序104。在应用系统102上运行的应用程序104可以通过/经由/利用存储区域网络SAN110来访问存储在一个或多个存储系统106,108上的存储资源。所述应用程序可以利用所述服务器不失一般性的操作系统114的块存储协议堆栈例如小型计算机系统接口SCSI协议堆栈112来访问所述存储资源/网络存储资源。所述服务器102的操作系统114可以直接运行在服务器硬件上或者运行在不失一般性的虚拟环境的虚拟机中。0023在本发明的当前实施例中,所述服务器102的SCSI协议堆栈112可以呈现本地例如在服务器上和远程例如在网络上的资源给所述应用程序104以作为块存储设备/逻辑单元/SCSI逻辑单元。每一。

22、个逻辑单元/SCSI逻辑单元可以具有一个唯一的逻辑块地址空间。所述远程存储资源/远程存储设备106,108可以被服务器102和/或存储系统106,108的一个或多个SAN适配器116访问,其中所述适配器可以运行与块存储协议被映射的网络媒介传输协议。例如,SCSI协议可以被映射到各种类型的可实现的网络传输上。不失一般性的,所述SAN适配器116和它们的传输协议层可以是物理或者虚拟网络适配器。0024在本发明的示例性实施例中,存储区域网络110可以被来自任何网络媒介例如,光纤通道、以太网、无限频带INFINIBAND、以及串联SCSISAS和允许端口级寻址的传输协议来实现。媒介传输层协议可以处理协。

23、议数据包在网络结构110上的从终点到终点端口的所有路由。不失一般性的,所述网络110可以被实现为一个单一结构或多个冗余结构。网络110可以是由单一网络媒介和传输协议实现的单一网络或由多个网络媒介和传输协议的组合实现的多个网络。优选地,在应用系统/服务器102上的网络端口能够物理地到达存储系统106,108上的网络端口。0025在本发明的进一步的实施例中,存储系统106,108可以是网络连接存储设备。例如,所述存储系统106,108可以是通用计算机、专用存储阵列或网络磁盘驱动器,这使得它们的本地设备在SAN110上可见。存储系统的存储资源可以通过SAN端口被访问,SAN端口运行媒介传输协议层。S。

24、CSI层可以利用所述SAN端口作为存储端口与存储网络进行通信。每一个存储系统106,108可以包括一个应用数据保护或者块提取到其物理存储设备的本地块虚拟化层118,120。例如,数据保护例如廉价磁盘冗余阵列RAID可以被用在专用网络存储系统上。每一个存储系统106,108可以进一步包括一个可以访问输出到网络110的实际连接的物理存储设备126的内部块协议堆栈122,124。0026应用服务器/应用系统/服务器102可获得的存储容量可以通过增加多个存储设说明书CN102006316ACN102006329A4/12页8备126到单个存储系统106,108中或通过增加额外的存储系统106,108到。

25、存储区域网络上被扩展。当额外的存储设备被增加到单个存储系统106,108上时,存储系统106,108中的本地块虚拟化层118,120可以被用来从多个物理磁盘126中创建更大的虚拟块存储设备128,130。这可以保留虚拟卷128,130的单一逻辑块地址空间,但是,在某些位置,单个存储系统106,108上的物理连接的数量可能被用尽,这样在整体能力的扩展上提供了限制。当存储系统被增加到存储区域网络时,可用的应用的整体存储容量可以被增加到超出单一存储系统的限制。不过,由多存储系统106,108提供的存储容量可能需要被合并到一个通用逻辑块地址空间以被应用服务器102使用。0027许多技术被用来从多个网络。

26、连接存储系统106,108上的存储资源126创建一个单一名字空间/通用逻辑地址空间。例如,所述技术可以使用不同的网络协议,例如群集文件系统或对象存储协议。块存储群集聚合可以被增加到所述存储网络110,这样块存储聚合可以通过多个冗余SAN结构110中的每一个中的群集块虚拟化设备提供。群集块虚拟化设备可以在网络存储系统和应用系统之间。群集块虚拟化设备可以输入由网络存储系统/存储系统输出的块存储逻辑单元,以及可以通过创建虚拟卷来创建附加的块虚拟化层。群集块虚拟化设备然后可以输出作为逻辑单元的虚拟卷到应用系统。应用系统没有看到或访问存储系统输出的逻辑单元,而是仅看到虚拟卷/群集虚拟卷。群集物理结构发现。

27、、虚拟化映射和管理可以通过群集虚拟化管理器提供。群集虚拟化管理器可以驻留在分离的一对冗余设备中,该冗余设备在SAN的边缘或其上任何地方。不失一般性的,块存储群集聚合功能可以被分布在整个群集块虚拟化设备/块群集虚拟化设备中。0028可选地,块存储群集聚合/块群集聚合可以被增加到应用系统102应用系统聚合。例如,块群集聚合可通过增加到应用系统的块存储协议堆栈的附加提取层提供。可实施多个选项以将所述提取层放置到应用系统。块虚拟化层可掩蔽或隐藏存储系统输出的逻辑单元并可以呈现虚拟卷给块存储协议堆栈中的块虚拟化层之上的层。与块存储群集聚合被增加到存储区域网络网络聚合不同的是,当增加块存储群集聚合到应用系。

28、统时,存储系统输出的逻辑单元对应用系统/服务器是可访问的。块虚拟化层可以隐藏从运行在应用系统/服务器上的应用到所述逻辑单元的访问。与网络聚合相似,当块群集聚合被增加到应用系统时,群集虚拟化管理器功能可以出现以发现位于群集中的存储资源和跨越应用服务器分布虚拟化映射。这种管理方式的一个变形可以包括在每一服务器中具有独立的群集虚拟化配置,这可以防止虚拟卷被应用服务器共享。可选地,为提供虚拟卷的共享,一个群集范围的虚拟机管理器可能被需要。0029在本发明示例的实施例中如图1所示,块存储群集聚合可以被增加到存储系统106,108存储系统聚合上。块群集聚合可以通过增加到一个或两个存储系统106,108的块。

29、协议堆栈122,124的群集块虚拟化层132来提供。群集块虚拟化层132可以将本地或远程存储系统上的存储设备126组成虚拟卷128,130。群集中每一存储系统106,108上的存储设备126对一个或多个其它存储系统是可检测/可见的例如,存储系统106的存储设备对存储系统108是可见的并且存储系统108的存储设备对存储系统106是可见的,以允许通过群集虚拟化层132的虚拟卷128,130的创建。在多个存储系统聚合的应用中,只有虚拟卷128,130通过群集块虚拟化层132输出到存储区域网络上的应用系统102。在一些网络存储应用中,从一个或多个不同存储系统请求数据的到达一个存储系统说明书CN1020。

30、06316ACN102006329A5/12页9106或108的输入/输出I/O请求被发送到正确的存储系统以满足所述I/O请求。许多技术被应用以实现I/O的重新定向,例如代理I/O和命令转发。正如上面描述的其它块存储群集技术,在存储系统聚合中,一个单独群集虚拟化管理功能134可能被需要在存储结构中的至少一个存储系统106,108中存在。不失一般性的,所述群集虚拟化管理器功能134可以被分布到群集中的存储系统106,108上,因此提供一个低成本低侵袭性的存储管理功能的应用。0030为创建块存储群集的所述方法/应用提供很多有用的特性。例如,块存储群集可以被扩展到多个存储系统106,108上。同时,。

31、应用系统102可以访问来自群集中的任何存储系统的数据。更进一步,虚拟卷128,130可以在所有存储节点/存储系统106,108上提供通用块地址空间。然而,每一个所述方法/应用网络聚合,存储系统聚合,应用系统聚合都具有不同的缺点。0031在网络110网络聚合中的存储聚合可能具有如下缺点,它可能需要网络110中的额外的特殊目的组件。所述特殊目的组件可能增加网络结构的成本并且可能在从单一存储系统转移到多系统群集时强加一高成本。此外,当网络结构被创建以最小化总成本时,如果存储聚合设备并没有包括在该网络结构中,所述网络可能需要重新布置以将所述聚合设备和群集虚拟化管理器包括进去。更进一步,从单一存储系统转。

32、移到存储群集需要整个应用系统的重配置以利用虚拟卷而不是利用来自存储系统的原始卷。0032在应用服务器102应用系统聚合上的存储聚合可能具有如下缺点,它可能需要额外的组件增加到服务器块存储堆栈112。所述组件可能需要掩蔽所有非虚拟逻辑单元以防止运行在系统上的应用程序104的访问。如果对所有访问群集的操作系统114掩蔽不彻底,由于对非虚拟逻辑单元的不规则访问,可能发生数据中断或丢失。应用系统中的群集块虚拟化层可能也需要为应用程序提供块虚拟化。唯一的块虚拟化组件可能为每一个操作系统所需要。这些唯一的群集块虚拟化组件可以被强制使用系统存储堆栈中的非正式接口来完成它们的功能,这样可能产生需要被维持和验证。

33、的配置的展开。此外,群集虚拟化管理器可能依然需要与应用系统分离的外部系统。如果群集虚拟化管理器放置在应用系统上,它可能会消耗可以被应用程序使用的资源,所述群集虚拟化管理器可能依然被需要与所有其它位于结构中的应用系统通信。不论存储虚拟化管理器的位置在哪里,可能需要独立的协议以分布和升级由群集虚拟化管理器维持并由应用系统中群集块虚拟化层使用的块存储映射。0033存储系统106,108存储系统聚合中的存储聚合可以消除额外网络组件的成本。存储系统聚合可以进一步消除存储堆栈112中的额外组件的应用服务器102上的影响并且也可以消除运行在应用服务器102上的存储虚拟化管理器的影响。存储系统聚合可以允许所有。

34、为块存储群集/块存储聚类需要的组件被定位在存储系统106,108上。当I/O请求被发送到错误的存储系统时,存储系统聚合可以要求I/O请求被重定向。如前所述,代理I/O和/或命令转发可以用来重定向,然而,所述两者具有它们的缺点。当代理I/O被使用时,这可能会增加一个额外的存储和转发延迟来通过接收原始的错误定向的请求的存储系统路由数据。在一个私有存储互连群集上的命令转发可能会增加额外成本到存储群集并且会限制群集的最大容量。0034本发明通过提供用于网络存储应用/系统使用的SCSI指点技术/方法克服了所说明书CN102006316ACN102006329A6/12页10述提到的块存储群集技术的缺点,。

35、例如所述应用系统/系统如图1所示。本发明的所述技术/方法被设计成允许创建块存储群集,而不需要在应用系统块存储堆栈112中增加非标准的组件或者在存储网络110中增加额外的专用群集设备。0035参考图3,表示本发明示例性实施例所述的通过网络存储实现例如,在启动器系统/启动器和群集存储阵列/块存储群集阵列之间通信的方法的为数据传输的方法。例如,所述方法可以为块存储聚类实施利用如下所述如图2和图3所示的存储协议命令和应答顺序例如,SCSI命令/应答远程过程调用模型的技术。在本发明的当前实施例中,方法300包括在第一存储系统中接收一个指令的步骤302,其中第一存储系统包括在群集存储阵列的多个存储系统中。。

36、例如,块存储群集可以包括各通信地耦合/包括物理存储设备126的两个或多个存储系统106,108。此外,所述命令可以通过存储区域网络110被一个启动器/启动器系统/主机/服务器102传输到第一存储系统106例如,目标系统/目标。在示例性实施例中,所述命令可以是一I/O请求,例如数据请求例如,读请求。在进一步的实施例中,所述目标设备可以是群集阵列中的任何存储系统并且所述命令可以利用任何端口例如,主端口,如图2所示被发送到群集/群集存储阵列中的任何预期的目标存储系统上。更进一步,所述命令可以是一SCSI命令,所述启动器/启动器系统102可以是一SCSI启动器,并且所述目标设备例如,第一存储系统106。

37、可以是一SCSI目标设备。0036在其它实施例中,当命令通过存储区域网络110/网络传输发送时,所述命令可以被传送到已建立的启动器和目标关联上例如,一I_T连接NEXUS。在SCSI协议中,所述位于启动器和目标设备之间I_T连接可以被建立在启动器上的SCSI端口例如,服务器/应用系统102的SCSI端口和目标设备上的SCSI端口例如,第一存储系统106的SCSI端口之间。具有多个端口的目标设备可以为每一端口提供唯一的SCSI端口标识符。具有多个存储系统的块存储群集例如,块存储群集的目标设备可以为群集中所有存储系统上的每一端口提供唯一的端口标识符。SCSI端口标识符可以是被定义在SCSI结构模型。

38、说明中的SCSI相关端口标识符。在另一个实施例中,每一SCSI命令可以指定数据根据在所述卷的逻辑块地址空间中的所述数据的起始地址和长度被传输。0037在一个示例性实施例中,方法300进一步包括通过存储区域网络将在数据请求中请求的数据传输到启动器系统的步骤304,其中所述数据请求被存储在第一存储系统中。在本发明的当前实施例中,被存储/驻留在接收指令的存储系统例如,目标存储系统中的被请求数据的任何部分可以被移动/传输到启动器中。例如,通过在所述提到/相同I_T连接例如,存储在第一存储系统106上的数据可以被传输到应用系统/启动器系统102上上的一系列的SCSI数据传输步骤,数据可以在目标设备106。

39、和启动器102之间被移动。在本发明的当前实施例中,数据可以根据特定SCSI命令的要求在启动器和目标设备之间的一个或者两个方向之间流动。0038在本发明的进一步实施例中,方法300可以进一步的包括当数据请求中被请求的数据的一部分没有被存储/没有驻留在第一存储系统而是被存储/驻留在包括多个存储系统的存储群集/群集存储阵列306的第二存储系统中时,将一指点应答从第一存储系统传输到启动器系统的步骤。在示例性的实施例中,指点应答可以提供一不是所有的在原始数据请求中被请求的数据都已经被传输的指点到启动器,所述指点应答可以为定向启动器系说明书CN102006316ACN102006329A7/12页11统到。

40、第二存储系统提供信息,和/或所述指点应答可以指示/提供群集的一个或多个其它存储系统例如,第二存储系统108存储所述部分/剩余部分的数据的指示符到启动器系统。例如,指点应答可以包括到所述群集的一个或多个其它存储系统/群集节点例如,第二存储系统108的指点列表,其中被请求数据的剩余部分例如,在步骤302接收的原始数据请求的被请求数据的剩余部分存储/驻留在所述存储系统/群集节点中。0039如上所述,为每一额外的群集节点/存储系统有一指点,其中为满足原始的数据请求数据必须通过启动器来得到。在本发明的当前实施例中,提交给启动器的指点列表的每一指点可以为每一存储系统/节点包括如下的信息如图4所示端口标识符。

41、例如,与包括至少一些在原始数据请求中的数据的剩余部分的群集节点/存储系统相关联的端口,偏移量例如,在其关联的存储系统/存储节点上第一比特数据的逻辑块地址;以及长度例如,为所述指点被传输的数据量。端口标识符可以遵照定义在SCSI结构模型说明中的SCSI相关端口标识符的定义。为完成一个指点需要的其它信息,例如容量、逻辑单元以及目标设备从生成SCSI指点的命令的上下文是可得到的。0040在本发明的示例性实施例中,方法300进一步包括在第二存储系统308接收一第二命令。例如,为了响应接收指点列表,启动器102可以将所述第二命令传输例如,通过存储区域网络到群集的其它存储系统中的一个,其中其它存储系统在指。

42、点列表中被标识为存储所述数据剩余部分的至少一部分。例如,启动器可以将第二命令例如,可以基于指点应答传输到被标识在指点列表中的一端口上,所述端口与所述第二系统关联。在进一步的实施例中,块存储协议启动器102可以发送独立的命令到群集的所有其它存储系统,其中所有其它存储系统通过使用标识在指点列表中的端口例如,二级端口来保留在原始请求中被请求的数据。0041在本发明的进一步实施例中,方法300进一步包括通过存储区域网络310将所述被请求数据的被存储部分从第二存储系统传输到启动器系统的步骤310。例如,启动器102,如上所述,可以发送指令到群集中的所有其它存储系统例如,存储系统108,其中所有其它存储系。

43、统通过使用被标识在指点列表中的端口例如,二级端口以保留原始请求中被请求的数据,所述存储系统将它们的本地数据连同指示本地数据已被传送的状态发回到启动器。当响应于基于所述指点发布的命令的所有数据的传输已经被完成之后,块存储协议可以通过返回其调用者来完成操作。0042在本发明的可选实施例中,其中所有在原始数据请求中被请求的数据步骤302已经被第一存储系统存储并被传输,方法300进一步包括将一个传输完成的应答从第一存储系统传输到启动器系统的步骤312,所述传输完成应答指点所有数据请求中被请求的数据已经被传输。在进一步的实施例中,当响应于一指令的所有数据已经被传输或如果一错误条件发生在命令或数据传输中,。

44、SCSI目标设备可以通过返回/发送包括命令状态的SCSI应答到启动器来完成操作方法步骤314。0043为支持本发明,存储阵列群集技术可以被要求来提供许多特性。例如,块存储协议目标设备可以被要求跨越群集中的所有存储系统106,108分布。此外,群集中所有存储系统上的所有端口被要求各具有唯一端口标识符。所述端口标识符可以被要求是定义在SCSI结构模型说明中的SCSI相关端口标识符。更进一步,虚拟卷的逻辑块地址空间可以被要求是跨越虚拟卷存在的所有存储系统的公用空间。此外,可以被要求在所有存储系统说明书CN102006316ACN102006329A8/12页12106,108上的群集块虚拟化功能13。

45、4应该能够确定群集中哪个存储系统保留其地址范围的数据在虚拟卷128,130内。0044如上所讨论的,本发明的方法可以被实现在块存储群集中,所述方法提供在存储系统106,108上的块虚拟化。在示例性实施例中,本发明的系统/方法不是利用命令转发或者代理I/O,而是通过完成具有包含SCSI检查条件和SCSI读出数据中的指点列表的状态信息的其本地数据传输来实现群集块虚拟化132,134,其指示数据驻留在其它群集节点。0045在进一步实施例中,SCSI启动器102可以被配置用以检测一新的检查条件,为每一指点发出新的SCSI命令,并且追踪何时所有指点被完成。启动器102可以被进一步被配置用以累积数据,所述。

46、数据通过跨越多个启动器目标设备连接的指点重新得到。0046本发明的系统/方法在当前块存储群集方法上提供了很多优点。首先,为了支持群集在存储结构中不需要额外的硬件。在主机代理和存储系统常驻块虚拟化的情况下,没有硬件需要被增加到SAN110上。此外,目标设备和逻辑单元的发现对启动器102可以是不变的,在存取群集的所有节点上所述目标设备可见,并且存储群集的所有节点被配置用以判断通过目标设备中的哪个逻辑单元可用。更进一步,不需要从启动器中隐藏非虚拟卷并且只有虚拟卷被从群集中的存储系统中输出。此外,启动器不需要保留关于群集中数据分布的信息。本发明的启动器/主机102被配置用以确定数据驻留在群集中地方。数。

47、据可以被从群集中任何节点上的任何端口所请求。所述指点定向启动器到保留数据的群集节点上。此外,存储系统106,108上的数据可以在不通知启动器的情况下被移动,因为,如果启动器试图通过一个错误群集节点上的端口访问数据的话,启动器仅需要简单的被重定向通过指点到包括数据的群集节点上的端口。更进一步的,本发明的方法可以被应用在任何数量的存储设备上,与SAN110上的限制增加到SAN上的硬件容量存储虚拟化形成对照。此外,本发明的方法可以被应用到群集节点上具有多个端口的存储群集。如果数据通过多于一个路径是可访问的,那么指点仅需要包括单一端口,通过该端口数据可以被访问。在标准存储协议中实现本发明可具有如下优势。

48、,启动器上的块存储协议堆栈中的不需要独特的软件安装。0047为提供SCSII/O指点的所述系统/方法可以允许启动器访问逻辑单元号LUNS上的数据,其中逻辑单元号跨越多个目标设备传播。目标设备可以是磁盘、存储阵列、磁带库、或任何其它类型的存储设备。在本发明的进一步示例性实施例中,我们可以提供一种系统/方法,其允许启动器通过多于一个目标端口来访问虚拟卷的一部分例如,所述部分是数据片段,所述部分可以由物理盘、虚拟盘或者任何其它目标设备上的可用数据片段组成。例如,如果具有访问数据片段的目标设备具有多于一个连接到存储区域网络SAN的目标端口,所述情况就可能发生。在这种情况下,本发明的系统/方法可以提供允。

49、许目标设备可以利用所述SCSII/O指点的方法通知启动器关于数据片段可用的多个路径的每一个。0048参考图5,表示本发明示例性实施例所述的通过SCSII/O指点配置为提供多路径的系统例如拓扑结构。系统500可以包括启动器502例如,应用服务器。所述启动器502可以被配置用以通过存储区域网络504通信与多个目标/目标设备/存储设备通信连接。在本发明的当前实施例中,系统500可以进一步包括多个数据片段514,516,518,说明书CN102006316ACN102006329A9/12页13520,所述数据片段组成/是部分的/被包括在虚拟卷522。启动器502可以被配置用以通过目标设备的一个或多个。

50、端口如图5中所示端口0到7访问虚拟卷522的一部分例如,所述部分是数据片段514,516,518,520的一个或多个。例如,利用所述的SCSII/O指点的方法的启动器502可以具有到组成虚拟卷522的数据片段的每一个的多个路径。0049在本发明的一个示例性实施例中,为了通知启动器502数据片段514,516,518或520通过多个目标端口可用,目标设备506,508,510,512可以返回列出不同端口的多个SCSII/O指点,但是其相关的不同端口/指示的所述不同端口与相同数据片段相关联。所述数据片段可以在SCSI指点列表中通过它们的数据偏移量和数据长度唯一地标识。例如,启动器502可以通过目标。

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

当前位置:首页 > 电学 > 电通信技术


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