《传输未知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可以通过目标。