CN101751227B - 小型计算机系统接口输入输出(scsi i/o)指点的定标 - Google Patents

小型计算机系统接口输入输出(scsi i/o)指点的定标 Download PDF

Info

Publication number
CN101751227B
CN101751227B CN200910181079.1A CN200910181079A CN101751227B CN 101751227 B CN101751227 B CN 101751227B CN 200910181079 A CN200910181079 A CN 200910181079A CN 101751227 B CN101751227 B CN 101751227B
Authority
CN
China
Prior art keywords
data
storage system
indication
response
subclass
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN200910181079.1A
Other languages
English (en)
Other versions
CN101751227A (zh
Inventor
罗斯·E·泽维斯勒
安德鲁·J·斯派瑞
杰拉尔德·J·弗雷丁
肯尼思·J·吉布森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Avago Technologies General IP Singapore Pte Ltd
Original Assignee
Infineon Technologies North America Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US12/316,713 external-priority patent/US8307240B2/en
Priority claimed from US12/316,778 external-priority patent/US8219715B2/en
Application filed by Infineon Technologies North America Corp filed Critical Infineon Technologies North America Corp
Publication of CN101751227A publication Critical patent/CN101751227A/zh
Application granted granted Critical
Publication of CN101751227B publication Critical patent/CN101751227B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4552Lookup mechanisms between a plurality of directories; Synchronisation of directories, e.g. metadirectories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

小型计算机系统接口输入输出(SCSII/O)指点的定标。一种方法包括:发布命令至第一数据存储系统,用于定址数据集合及包括指向至少一个第二数据存储系统或数据集合的第一子集合的指点的至少一个第一指点响应。存取至少一个第一指点响应,至少一个第一指点响应包括指向至少第二数据存储系统或数据集合的第一子集合的指点。发布命令至第二数据存储系统,用于定址数据集合和第二指点响应,第二指点响应包括指向第一数据存储系统和第三数据存储系统中至少一个的指点,第二数据存储系统包括数据集合中至少一个第二子集合。存取数据集合的第二子集合和第二指点响应,第二指点响应包括指向第一数据存储系统和第三数据存储系统中至少一个指点。

Description

小型计算机系统接口输入输出(SCSI I/O)指点的定标
技术领域
本发明一般涉及网络存储器领域,更具体地涉及用于提供启动系统和块存储群中多个端口之间的任意数量的小型计算机系统接口(SCSI)指点的系统和方法。
背景技术
块存储群和网络存储可以提供访问跨过多个存储装置的数据的系统/方法。
发明内容
一种方法包括但不限于:发布命令至第一数据存储系统,用于定址数据集合以及包括指向至少一个第二数据存储系统或该数据集合的第一子集合的指点的至少一个第一指点响应,并且该第一指点响应包括指向所述至少第二数据存储系统的指点;存取该至少一个第一指点响应,该至少一个第一指点响应包括指向所述至少第二数据存储系统或该数据集合的第一子集合的指点,并且该第一指点响应包括指向所述至少第二数据存储系统的指点;发布命令至第二数据存储系统,用于定址数据集合和第二指点响应,第二指点响应包括指向第一数据存储系统和第三数据存储系统中至少一个的指点,该第二数据存储系统包括该数据集合中的至少一个第二子集合;以及存取数据集合的第二子集合和第二指点响应,第二指点响应包括指向第一数据存储系统和第三数据存储系统中的至少一个的指点。
存储群包括但不限于:第一数据存储系统,用于产生第一指点响应或存储数据集合的第一子集合并产生第一指点响应中的至少一种;以及第二数据存储系统,用于存储数据集合的第二子集合并产生第二指点响应,其中第一指点响应包括指向至少第二数据存储系统的指点,并且第二指点响应包括指向第一数据存储系统和第三数据存储系统中的至少一个的指点。
一种系统包括但不限于:用于发布命令至第一数据存储系统,用于定址数据集合以及包括指向至少一个第二数据存储系统或该数据集合的第一子集合的指点的至少一个第一指点响应的装置,以及该第一指点响应包括指向所述至少第二数据存储系统的指点;用于存取该至少一个第一指点响应的装置,该至少一个第一指点响应包括指向所述至少第二数据存储系统或该数据集合的第一子集合的指点,并且该第一指点响应包括指向所述至少第二数据存储系统的指点;用于发布命令至第二数据存储系统的装置,用于定址数据集合和第二指点响应,第二指点响应包括指向第一数据存储系统和第三数据存储系统中至少一个的指点,该第二数据存储系统包括该数据集合中的至少一个第二子集合;以及用于存取数据集合的第二子集合和第二指点响应的装置,第二指点响应包括指向第一数据存储系统和第三数据存储系统中的至少一个的指点。
应该理解,上述一般描述和下面的具体描述都仅示例性和解释性的,并且不用来限制本公开。附图结合于此并构成本说明书的一部分示出了本公开的主题内容。该说明书和附图一起用来解释本公开的原理。
附图说明
通过参考附图,本公开的许多优点能够被本领域技术人员更好地理解。
图1是根据本公开的经由块存储协议可存取的网络存储实施方式/系统的框图;
图2是由/根据本公开实施的具有指点的SCSI命令/响应远程过程调用的示意框图;
图3是示出了根据本公开的用于在启动系统和块存储群之间通信的方法的流程图;
图4是根据本公开的实施例的SCSI指点列表格式的示意图;
图5是示出了用于链接指点列表分配的系列SCSI指点的框图;以及
图6是示出了用于指点列表树分配的系列SCSI指点的框图。
具体实施方案
下面具体参考附图中示出的所公开的主题内容。
总体参考图1,示出了经由块存储协议可存取的网络存储实施方式/系统。例如,块存储协议可以是在能够媒体传输的网络上实现的小型计算机系统接口(SCSI)协议,例如Fibre信道、iSCSI或串行附加SCSI(SAS)。本发明还可以以其他块存储协议实现,例如SCSI RDMA协议(SRP)。本发明的系统/方法将块存储协议延伸供在形成块存储群的多个、离散、协作存储系统上分配具有通用逻辑块地址空间的数据。
网络存储实施方式/系统/存储结构100可以包括应用系统/服务器102。应用系统102可以运行一个或多个应用程序104。在应用系统102上运行的应用程序104可以通过/经由/使用网络(例如,存储区网络(SAN)110)存取存储在一个或多个存储系统(106-108)上的存储资源。应用程序可以使用服务器(不失通用性)的操作系统114的块存储协议栈(例如,小型计算机系统接口(SCSI)协议栈)112来存取存储资源/网络存储资源。服务器102的操作系统114可以在服务器硬件上直接运行或可以在不失通用性的虚拟环境中的虚拟计算机中运行。
在本发明的当前实施例中,服务器102的SCSI协议栈112可以将本地(例如服务器上)或远程(例如在网络上)存储资源呈现给应用程序104作为块存储装置/逻辑单元/SCSI逻辑单元。每个逻辑单元/SCSI逻辑单元可以具有独特的逻辑块地址空间。远程存储资源/远程存储装置(106-108)可以被服务器102的一个或多个SAN适配器116和/或存储系统(106-108)存取,其可以运行网络媒体传输协议,通过网络传输协议块存储协议被映射。例如,SCSI协议可以通过各种类型的实施的网络传输被映射。不失通用性,SAN 116及其媒体传输协议层可以是物理或虚拟网络适配器。
在本发明的示例性实施例中,存储区网络110可以由允许端口层寻址的任何网络媒体和传输协议(例如Fibre信道、EtherNet、InfiniBand和串行附加SCSI(SAS))实现。媒体传输层协议可以处理通过网络结构110的从端点至端点的所有协议包的路由。不失通用性,网络110可以被实施为单一结构或多个冗余结构。优选地,应用系统/服务器102上的网络端口能够物理到达存储系统(106-108)上的网络端口。
在本发明的其他实施例中,存储系统(106-108)可以是网络附加的存储装置。例如,存储系统(106-108)可以是通用计算机,专用存储阵列或网络盘驱动器,其使其本地装置在SAN 110上可视。存储系统的存储资源可以经由运行媒体传输协议层的SAN端口被存取。SCSI层可以使用所述SAN端口以与存储网络通信作为存储端口。每个存储系统106-108可以包括本地块模拟层(118-120),其可以施加数据保护或块抽象至物理存储装置。例如,诸如廉价磁盘冗余阵列(RAID)可以在专用网络存储系统上使用。每个存储系统106-108还可以包括内部块协议栈(122-124),其可以存取实际附加的物理存储装置126,其输出到网络110。
应用服务器/应用系统/服务器102可用的存储量可以通过向单独存储系统(106-108)增加存储装置126来扩展,或者通过向存储区网络增加额外的存储系统(106-108)来扩展。当额外的存储装置126增加到单独存储系统(106-108)时,存储系统(106-108)中的本地块虚拟层(118-120)可以被群块虚拟层(132)使用来通过多个物理磁盘(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的存储装置对于存储装置107和108是可见的,存储系统107的存储装置对于存储系统106和108是可见的,以及存储系统108的存储装置对于存储系统106和107是可见的)存储检测到或看到以允许由群块虚拟化层132创建虚拟卷(128,130)。在多个存储系统聚集实施方式中,仅虚拟卷(128,130)通过存储区网络110由群块虚拟化层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)的通用块地址空间。
提供SCSI指点技术/方法用于与网络存储实施方式/系统,例如图1中所示的所述的实施方式/系统100。参考图3,示出了根据本发明的示例性实施例的经由网络存储实施方式进行数据传输的方法(例如,在启动系统/启动器和块存储群之间进行通信的方法)。例如,该方法可以如下所述(以及如图2和3所示)使用存储协议命令和应答序列(例如,诸如SCSI命令/响应远程处理调用模型)来实施用于块存储群集。在当前的本发明的实施例中,方法300包括步骤:发布命令至第一数据存储系统,用于定址数据集合以及包括指向至少一个第二数据存储系统或该数据集合的至少一个第一子集合的指点的至少一个第一指点响应,以及该第一指点响应包括指向所述至少第二数据存储系统302的指点。例如,块存储群至少可以包括第一数据存储系统106、第二数据存储系统108、以及第三数据存储系统107,每个都通信连接到/包括物理存储装置126。第一数据存储系统106可以包括数据集合的第一子集合。该第一指点响应可以包括指向包括数据集合的其他子集合(例如-诸如第二数据存储系统108)的另一数据存储系统的至少一个指点。该命令可以通过启动器/启动系统/主机/服务器102经由存储区网络110发送到第一数据存储系统106(例如-目标系统/目标)。在示例性实施例中,该命令可以是I/O请求,例如对数据的请求(例如-读请求)。在其他实施例中,目的地可以是块存储群中的任何存储系统,并且该命令可以使用块存储群中的任何预期目标存储系统上的任何端口(例如,如图2中所示的SCSI目标0的端口)被发送。该命令可以是SCSI命令,启动器/启动系统102可以是SCSI启动器,以及目标(例如-第一存储系统106)可以是SCSI目标。
在其他实施例中,当通过存储区网络110/网络传输发送时,该命令可以在建立的启动器和目标结合(例如-I_T Nexus)上发送。在SCSI协议中,启动器和目标之间的该I_T Nexus可以在启动器上的SCSI端口(例如-服务器/应用系统102的SCSI端口)和目标上的SCSI端口(例如-第一存储系统106的SCSI端口)之间建立。具有多个存储系统的块存储群可以提供用于群中的所有存储系统上的每个端口的独有的端口标识符。此外,每个SCSI命令可以通过卷的逻辑块地址空间中的起始地址和长度识别来识别将被传输的数据。
在示例性实施例中,该方法300可以还包括步骤:存取该至少一个第一指点响应,该至少一个第一指点响应包括指向所述至少第二数据存储系统或该数据集合的所述至少第一子集合的指点,以及该第一指点响应包括指向所述至少第二数据存储系统304的指点。该第一指点响应可以从第一数据存储系统106发送至启动器系统102。在本发明的当前实施例中,接收该命令的存储在/驻留在存储系统(例如-目标存储系统)中的被请求数据的任何子集合可以被移动/传送至启动器或移动/传送来自启动器的被请求数据。例如,数据可以通过上述/相同的I_T Nexus上的系列SCSI数据传递步骤在目标106和启动器102之间移动(例如,存储在第一存储系统106上的数据可以被传送到应用系统/启动系统102)。在本发明的当前实施例中,数据可以根据特定SCSI命令的要求在启动器和目标之间的任意或两个方向上流动。存取该数据集合的第一子集合可以包括通过启动器系统102接收第一数据存储系统106的状态以指示第一子集合传输的结束。该状态可以是标准SCSI状态指示符。
当在数据请求中请求的数据的子集合没有存储/驻留在第一数据存储系统中,但是存储/驻留在包括在块存储群的多个存储系统中的第二数据存储系统中时,指点响应可以从第一数据存储系统发送至启动系统。指点响应可以为启动器提供不是原始数据请求中请求的所有数据被传送的指示符,该指点响应可以提供用于将启动系统定向至第二数据存储系统的指点,和/或该指点响应可以为启动系统指示/提供群的一个或多个其他存储系统(例如-第二存储系统108)存储所述数据的部分/剩余部分的指示符。指点响应可以基于包括在第一数据存储系统上的数据由第一数据存储系统产生。指点响应可以包括指向被请求的数据的剩余部分(例如-在步骤302接收到的原始数据请求中所请求的数据的剩余部分)所位于/所存储的群的一个或多个其他存储系统/群节点(例如-诸如第二存储系统108)的指点列表。
如上所述,存在用于必须被用于实现原始数据请求的启动器所获取的数据所在的每个额外群节点/存储系统的指点。在本发明的当前实施例中,指点列表的每个指点可以包括用于指示符所指向的每个存储系统/节点的下面信息(如图4所示):端口标识符(例如-与包括在原始数据请求中所请求的数据的至少一些剩余部分的群节点/存储系统上的端口结合);偏移量(例如-在其相关数据存储系统/存储节点上的数据的第一字节的逻辑块地址);以及数据长度(例如-为该指点将被传送的数据的数量)。例如,数据长度可以是将在其相关数据存储系统/存储节点上传送的子集合中的数据量。数据长度可以包括在其相关数据存储系统/存储节点的所有子数据存储系统/存储节点上传送的所有子集合中的全部数量的数据。如果第二数据存储系统/存储节点位于第一数据存储系统/存储节点的指点列表中,则第二数据存储系统/存储节点可以第一数据存储系统/存储节点的子节点。此外,第二数据存储系统/存储节点的子节点可以是第一数据存储系统/存储节点的子节点。指点响应的缺少可能表示数据存储系统/存储节点没有子数据存储系统/存储节点。需要其他信息来完成指点,例如卷、逻辑单元,以及目标可以从产生SCSI指点的命令的语境得到。
在本发明的当前实施例中,方法300还可以包括步骤:发布命令至第二数据存储系统,用于定址数据集合和第二指点响应306。第二数据存储系统108可以包括数据集合的第二子集合。第二指点响应可以包括指向包括数据集合的其他子集合(例如-第三数据存储系统107)的其他数据存储系统的至少一个指点。该命令可以由启动器/启动系统/主机/服务器102通过存储区网络110发送到第二数据存储系统108(例如-目标系统/目标)。在示例性实施例中,该命令可以是I/O请求,例如对数据的请求(例如-读请求)。在其他实施例中,目标可以是块存储群中的任何存储系统,并且该命令可以使用块存储群中的任何期望目标存储系统上的任何端口(例如-如图2所示的SCSI目标1的端口)被发送。该命令可以是SCSI命令,启动器/启动器系统102可以是SCSI启动器,以及目标(例如-第二存储系统108)可以是SCSI目标。
在其他实施例中,当通过存储区网络110/网络传输发送时,该命令可以在所建立的启动器和目标联合(例如-I_T Nexus)上发送。在SCSI协议中,启动器和目标之间的I_T Nexus可以在启动器上的SCSI端口(例如-服务器/应用系统102的SCSI端口)和目标上的SCSI端口(例如-第二存储系统108的SCSI端口)之间建立。具有多个存储系统的块存储群可以提供用于群中的所有存储系统上的每个端口的独有的端口标识符。此外,每个SCSI命令可以通过卷的逻辑块地址空间中的其起始地址和长度来识别将被传输的数据。
在示例性实施例中,方法300还可以包括存取数据集合的第二子集合和第二指点响应308的步骤。第二指点响应可以从第二数据存储系统108发送到启动器系统102。在本发明的当前实施例中,接收该命令的存储在/驻留在存储系统(例如-目标存储系统)中的所请求的数据的任何子集合可以移动/发送到启动器或从启动器移动/发送。例如,数据可以在目标108和启动器102之间通过系列SCSI数据发送步骤在上述/相同I_T Nexus上移动(例如-存储在第二数据存储系统108上的数据可以传送到应用系统/启动器系统102)。在本发明的当前实施例中,数据可以根据特定SCSI命令的需要在启动器和目标之间的任意方向或两个方向上流动。存取数据集合的第二子集合可以包括由指示器系统102接收第二数据存储系统108的状态以指示第二子集合的发送的完成。该状态可以是标准SCSI状态指示器。
当在数据请求中所请求的数据的子集合没有存储/驻留在第二数据存储系统中、但是存储/驻留在包括在块存储群的多个存储系统中的第三数据存储系统中时,指点响应可以从第二数据存储系统发送到启动器系统。指点响应可以为指示器提供不是在原始数据请求中所请求的数据都被发送的指示器,该指点响应可以提供用于将指示器系统定向至第三数据存储系统的指点,和/或指点响应可以指示/提供群的一个或多个其他存储系统(例如-第三存储系统107)存储所述数据的所述部分/剩余部分的指示器给系统。指点响应可以包括指向所请求的数据的剩余部分(例如-在步骤302接收到的原始数据请求中所请求的数据的剩余部分)所在/所存储的群的一个或多个其他存储系统/群节点(例如-第三存储系统107)的指点列表。在其他实施例中,块存储协议启动器102可以通过使用在指点列表中指示的端口来发送不同命令至持有在原始请求中所请求的数据的群中的所有其他存储系统。在响应于基于所述指点发布的命令的所有数据发送都已经完成之后,块存储协议可以通过返回其调用程序来完成该操作。
参考图5-6,示出了由本公开提供的数据集合分布的各个指点列表。例如,所链接的指点列表分布500具有四个指点的最大指点列表长度,160块的总数据长度,以及每个独立数据存储/群节点包括10块的数据集合的子集合。在链接的指点列表分布500中,启动器系统(未示出)发布用于存取总数据长度170块的数据集合的命令至第一数据存储系统(未示出)并接收数据长度10块的数据集合的子集合和包括用于数据存储器/群节点502-508的指点的指点列表。指点502-506包括端口标识符、数据偏移量、以及由其指点引用的数据子集合的数据长度。指点508的数据存储/群节点具有包括用于数据存储/群节点510-516的指点的指点列表(由箭头550所示)。指点510-532的数据存储/群节点都是指点508的数据存储/群节点的子节点,所以指点508的数据长度包括指点510-532的总数据长度和指点508的子集合数据长度的总和。类似地,指点516的数据存储/群节点具有包括用于数据存储/群节点518-524的指点的指点列表(由箭头551所示)。指点518-532的数据存储/群节点都是指点516的子节点。数据存储/群节点502-506,510-514,518-522以及526-532的指点不具有子节点。
指点列表树分布600具有四个指点的最大指点列表长度、160块的总数据长度以及每个独立的数据存储/群节点包括10块的数据集合的子集合。在指点列表树分布600中,启动系统(未示出)发布用于存取总数据长度170块的数据集合的命令至第一数据存储系统(未示出)并接收数据长度10块的数据集合的子集合,以及包括用于数据存储/群节点602-608的指点的指点列表。指点602-608包括端口标识符、数据偏移量、以及用于由其指点和子指点引用的数据子集合的数据长度。用于指点601-608的数据存储/群节点都具有指点列表650-653。指点608的数据存储/群节点具有包括用于数据存储/群节点628-632的指点的指点列表(由箭头653所示)。指点628-632的数据存储/群节点都是指点608的数据存储/群节点的子指点,因此指点608的输出长度包括指点628-632的总数据长度和指点608的子子集数据长度的总和。类似地,指点604的数据存储/群节点具有包括用于数据存储/群节点616-620的指点的指点列表(由箭头651所示)。指点616-620的数据存储/群节点都是指点604的子指点。数据存储/群节点610-614,616-620,622-626以及628-632的指点不具有子指点。
可能需要块存储群技术来提供多种属性。例如,块存储协议目标可能需要被分布在群中的所有存储系统(106-108)上。此外,群中的所有存储系统上的所有端口可能需要具有独有的端口标识符。另外,用于虚拟卷的逻辑块地址空间可能需要在其上存在虚拟卷的所有存储系统上为通用的。此外,可能需要在所有存储系统上的群块虚拟化功能(134)能够确定群中哪个存储系统持有虚拟卷(128,130)中的数据的地址范围。
如上所讨论的,本发明的方法可以在提供存储系统(106-108)上的块虚拟化的块存储群中实现。在示例性实施例中,本发明的系统/方法不是使用命令转发或代理I/O,而是实现群块虚拟化(132,134),其通过完成其具有状态信息的本地数据传输和SCSI感测数据中的指点列表来指示数据驻留在其他群节点上。该状态信息可以包括SCSI检测状态。
在另外的实施例中,SCSI启动器102可以被配置以检测一新检测状态,为每个指点发布新的SCSI命令。启动器102可以还被配置用以累积通过跨过多个启动器-目标联结的指点取回的数据。
在本公开中,所公开的方法可以作为装置可读的指令集合或软件来实现。此外,应该理解在所公开的方法中的步骤的特定顺序或层次是示例性方法的示例。根据设计优选,应该理解方法中的步骤的特定顺序或层次可以被重新布置而保留在本公开的主题内容中。伴随的方法主张了示例顺序中的各种步骤的当前元素,但是不意味着局限于所呈现的特定顺序或层次。
应该理解本公开及其伴随的优点可以通过上面的描述被理解,而且在不背离所公开的主题内容或不牺牲其所有材料优势的情况下,对成分的形式、结构和布置进行的各种改变是显而易见的。上述的形式仅是示例性的,并且下面的权利要求包含并旨在包括这些改变。

Claims (7)

1.一种数据传输方法,包括:
发布一命令至一第一数据存储系统,用于定址一数据集合以及包括指向至少一个第二数据存储系统或所述数据集合的至少一个第一子集合的指点的至少一个第一指点响应,并且所述第一指点响应包括所述指向至少所述第二数据存储系统的指点;
存取所述至少一个所述第一指点响应,所述至少一个第一指点响应包括指向所述至少第二数据存储系统或所述数据集合的所述至少第一子集合的指点,并且所述第一指点响应包括指向所述至少第二数据存储系统的指点;
发布一命令至所述第二数据存储系统,用于定址所述数据集合和一第二指点响应,所述第二指点响应包括指向所述第一数据存储系统和一第三数据存储系统中至少一个的指点,所述第二数据存储系统包括所述数据集合中的至少一个第二子集合;以及
存取所述数据集合的所述第二子集合和所述第二指点响应,所述第二指点响应包括指向所述第一数据存储系统和所述第三数据存储系统中的至少一个的所述指点;
其中指向所述第一数据存储系统的所述指点进一步包括:
一第一端口标识符,其与所述第一数据存储系统的一端口相关,
所述数据集合的所述第一子集合的一第一数据偏移量,以及
用于所述第一数据存储系统的一第一数据长度;
其中指向所述第二数据存储系统的所述指点进一步包括:
一第二端口标识符,其与所述第二数据存储系统的一端口相关,
所述数据集合的所述第二子集合的一第二数据偏移量,以及
用于所述第二数据存储系统的一第二数据长度;以及
其中指向所述第三数据存储系统的所述指点进一步包括:
一第三端口标识符,其与所述第三数据存储系统的一端口相关,
所述数据集合的第三子集合的一第三数据偏移量,以及
用于所述第三数据存储系统的一第三数据长度;
其中用于所述第一数据存储系统的所述第一数据长度是用于所述数据集合的所述第一子集合的所述数据长度和用于在用于所述第一数据存储系统的所有子指点响应中的所有子数据存储系统上的所述数据集合的所有子集合的数据长度之和;
用于所述第二数据存储系统的所述第二数据长度是用于所述数据集合的所述第二子集合的所述数据长度和用于在用于所述第二数据存储系统的所有子指点响应中的所有子数据存储系统上的所述数据集合的所有子集合的数据长度之和;以及
用于所述第三数据存储系统的所述第三数据长度是用于所述数据集合的所述第三子集合的所述数据长度和用于在用于所述第三数据存储系统的所有子指定响应中的所有子数据存储系统中的所述数据集合的所有子集合的数据长度之和。
2.根据权利要求1所述的方法,所述发布一命令至所述第一数据存储系统进一步包括:
通过小型计算机系统接口(SCSI)输入/输出(I/O)请求命令发布一命令至所述第一数据存储系统,所述第一数据存储系统是一SCSI存储系统以及所述第二数据存储系统是一SCSI存储系统;以及
所述发布一命令至所述第二数据存储系统进一步包括:
通过SCSI I/O请求命令发布一命令至所述第二数据存储系统,所述第二数据存储系统是一SCSI存储系统以及所述第三数据存储系统是一SCSI存储系统。
3.根据权利要求1所述的方法,其中指向所述第一数据存储系统的所述指点进一步包括:
一第一端口标识符,所述第一端口标识符标识所述第一数据存储系统的一端口,通过所述端口可存取所述第一数据存储系统;
其中指向所述第二数据存储系统的所述指点进一步包括:
一第二端口标识符,所述第二端口标识符标识所述第二数据存储系统的一端口,通过该端口可存取所述第二数据存储系统;以及
其中指向所述第三数据存储系统的所述指点进一步包括:
一第三端口标识符,所述第三端口标识符标识所述第三数据存储系统的一端口,通过该端口可存取所述第三数据存储系统。
4.根据权利要求1所述的方法,其中所述存取所述至少一个所述第一指点响应,所述至少一个第一指点响应包括指向所述至少第二数据存储系统或所述数据集合的所述至少第一子集合的指点,并且所述第一指点响应包括指向所述至少第二数据存储系统的指点进一步包括:
接收用于所述第一数据存储系统和包括指向所述至少所述第二数据存储系统的所述指点的所述第一指点响应的状态;以及
其中存取所述数据集合的所述第二子集合进一步包括:
接收用于所述第二数据存储系统和包括指向所述第一数据存储系统或所述第三数据存储系统中的所述至少一个的所述指点的所述第二指点响应的状态;
其中所述存取所述数据集合的所述第一子集合是经由传送用于所述第一数据存储系统的状态的所述第一数据存储系统来完成的;以及
其中所述存取所述数据集合的所述第二子集合是经由传送用于所述第二数据存储系统的状态的所述第二数据存储系统来完成的。
5.一种数据传输设备,包括:
用于发布一命令至一第一数据存储系统的装置,其用于定址一数据集合以及包括指向至少一个第二数据存储系统或所述数据集合的至少一个第一子集合的指点的至少一个第一指点响应,并且所述第一指点响应包括所述指向至少所述第二数据存储系统的指点;
用于存取所述至少一个所述第一指点响应的装置,所述至少一个第一指点响应包括指向所述至少第二数据存储系统或所述数据集合的所述至少第一子集合的指点,并且所述第一指点响应包括指向所述至少第二数据存储系统的指点;
用于发布一命令至所述第二数据存储系统的装置,其用于定址所述数据集合和一第二指点响应,所述第二指点响应包括指向所述第一数据存储系统和一第三数据存储系统中至少一个的指点,所述第二数据存储系统包括所述数据集合中的至少一个第二子集合;以及
用于存取所述数据集合的所述第二子集合和所述第二指点响应的装置,所述第二指点响应包括指向所述第一数据存储系统和所述第三数据存储系统中的至少一个的所述指点;
其中指向所述第一数据存储系统的所述指点进一步包括:
一第一端口标识符,其与所述第一数据存储系统的一端口相关,
所述数据集合的所述第一子集合的一第一数据偏移量,以及
用于所述第一数据存储系统的一第一数据长度;
其中指向所述第二数据存储系统的所述指点进一步包括:
一第二端口标识符,其与所述第二数据存储系统的一端口相关,
所述数据集合的所述第二子集合的一第二数据偏移量,以及
用于所述第二数据存储系统的一第二数据长度;以及
其中指向所述第三数据存储系统的所述指点进一步包括:
一第三端口标识符,其与所述第三数据存储系统的一端口相关,
所述数据集合的第三子集合的一第三数据偏移量,以及
用于所述第三数据存储系统的一第三数据长度;
其中用于所述第一数据存储系统的所述第一数据长度是用于所述数据集合的所述第一子集合的所述数据长度和用于在用于所述第一数据存储系统的所有子指点响应中的所有子数据存储系统上的所述数据集合的所有子集合的数据长度之和;
用于所述第二数据存储系统的所述第二数据长度是用于所述数据集合的所述第二子集合的所述数据长度和用于在用于所述第二数据存储系统的所有子指点响应中的所有子数据存储系统上的所述数据集合的所有子集合的数据长度之和;以及
用于所述第三数据存储系统的所述第三数据长度是用于所述数据集合的所述第三子集合的所述数据长度和用于在用于所述第三数据存储系统的所有子指定响应中的所有子数据存储系统中的所述数据集合的所有子集合的数据长度之和。
6.根据权利要求5所述的设备,其中所述第一数据存储系统是一SCSI存储系统;
其中所述第二数据存储系统是一SCSI存储系统;以及
其中所述第三数据存储系统是一SCSI存储系统。
7.根据权利要求5所述的设备,其中指向所述第一数据存储系统的所述指点进一步包括:
一第一端口标识符,所述第一端口标识符识别经由其可存取所述第一数据存储系统的所述第一数据存储系统的一端口;
其中指向所述第二数据存储系统的所述指点进一步包括:
一第二端口标识符,所述第二端口标识符识别经由其可存取所述第二数据存储系统的所述第二数据存储系统的一端口;以及
其中指向所述第三数据存储系统的所述指点进一步包括:
一第三端口标识符,所述第三端口标识符识别经由其可存取所述第三数据存储系统的所述第三数据存储系统的一端口。
CN200910181079.1A 2008-12-15 2009-10-28 小型计算机系统接口输入输出(scsi i/o)指点的定标 Expired - Fee Related CN101751227B (zh)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US12/316,778 2008-12-15
US12/316,713 US8307240B2 (en) 2008-12-15 2008-12-15 Small computer system interface input output (SCSI IO) referral
US12/316,713 2008-12-15
US12/316,778 US8219715B2 (en) 2008-12-15 2008-12-15 Multi-pathing with SCSI I/O referrals
US21530409P 2009-05-04 2009-05-04
US61/215,304 2009-05-04
US12/553,558 2009-09-03
US12/553,558 US8171178B2 (en) 2008-12-15 2009-09-03 Scaling of small computer system interface input output (SCSI I/O) referrals

Publications (2)

Publication Number Publication Date
CN101751227A CN101751227A (zh) 2010-06-23
CN101751227B true CN101751227B (zh) 2014-12-24

Family

ID=42026201

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910181079.1A Expired - Fee Related CN101751227B (zh) 2008-12-15 2009-10-28 小型计算机系统接口输入输出(scsi i/o)指点的定标

Country Status (6)

Country Link
US (1) US8171178B2 (zh)
EP (1) EP2196894B1 (zh)
JP (1) JP5280342B2 (zh)
KR (1) KR101200594B1 (zh)
CN (1) CN101751227B (zh)
TW (1) TWI405119B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8656070B2 (en) * 2009-04-29 2014-02-18 Lsi Corporation Striping with SCSI I/O referrals
WO2014077451A1 (ko) * 2012-11-13 2014-05-22 주식회사 유투엔 Iscsi 스토리지 시스템을 이용한 네트워크 분산 파일 시스템 및 방법
KR101531564B1 (ko) * 2013-11-27 2015-06-26 주식회사 유투앤 네트워크 분산 파일 시스템 기반 iSCSI 스토리지 시스템에서의 부하 분산 방법 및 시스템
US10732903B2 (en) 2018-04-27 2020-08-04 Hewlett Packard Enterprise Development Lp Storage controller sub-LUN ownership mapping and alignment

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6378031B1 (en) * 1998-07-07 2002-04-23 Matsushita Electric Industrial Co., Ltd. Data processing apparatus and file management method therefor
EP1811378A2 (en) * 2006-01-23 2007-07-25 Xyratex Technology Limited A computer system, a computer and a method of storing a data file
CN101013352A (zh) * 2003-10-23 2007-08-08 株式会社日立制作所 可以逻辑分割的存储装置和存储装置系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03266039A (ja) 1990-03-16 1991-11-27 Fujitsu Ltd フリーフォーマットデータリンク処理方式
US6473401B1 (en) * 1998-04-06 2002-10-29 Iscale, Inc. Self-scaling method for exploiting cached resources across organizational boundaries to enhance user response time and to reduce server and network load
KR100364747B1 (ko) * 2000-12-30 2002-12-16 엘지전자 주식회사 Aal2/aal5 변환 장치 및 방법
US7007142B2 (en) * 2002-02-19 2006-02-28 Intel Corporation Network data storage-related operations
JP4386694B2 (ja) * 2003-09-16 2009-12-16 株式会社日立製作所 記憶システム及び記憶制御装置
US7475167B2 (en) * 2005-04-15 2009-01-06 Intel Corporation Offloading data path functions
US7430629B2 (en) * 2005-05-12 2008-09-30 International Business Machines Corporation Internet SCSI communication via UNDI services
JP2007079749A (ja) * 2005-09-13 2007-03-29 Hitachi Ltd ストレージ装置およびディスク制御方法
US8001267B2 (en) * 2005-12-15 2011-08-16 International Business Machines Corporation Apparatus, system, and method for automatically verifying access to a multipathed target at boot time

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6378031B1 (en) * 1998-07-07 2002-04-23 Matsushita Electric Industrial Co., Ltd. Data processing apparatus and file management method therefor
CN101013352A (zh) * 2003-10-23 2007-08-08 株式会社日立制作所 可以逻辑分割的存储装置和存储装置系统
EP1811378A2 (en) * 2006-01-23 2007-07-25 Xyratex Technology Limited A computer system, a computer and a method of storing a data file

Also Published As

Publication number Publication date
JP5280342B2 (ja) 2013-09-04
KR101200594B1 (ko) 2012-11-12
TW201023027A (en) 2010-06-16
CN101751227A (zh) 2010-06-23
EP2196894A3 (en) 2011-07-06
KR20100069566A (ko) 2010-06-24
US20100153613A1 (en) 2010-06-17
US8171178B2 (en) 2012-05-01
JP2010140477A (ja) 2010-06-24
EP2196894A2 (en) 2010-06-16
EP2196894B1 (en) 2013-03-20
TWI405119B (zh) 2013-08-11

Similar Documents

Publication Publication Date Title
JP5227361B2 (ja) Scsii/oリファーラルを利用したイニシエータ及びストレージクラスタ間の通信方法及びシステム
JP5026283B2 (ja) 協調的共用ストレージアーキテクチャ
US7055014B1 (en) User interface system for a multi-protocol storage appliance
US8090908B1 (en) Single nodename cluster system for fibre channel
CN101676856B (zh) 虚拟存储系统
US7979402B1 (en) System and method for managing file data during consistency points
EP1763734B1 (en) System and method for supporting block-based protocols on a virtual storage appliance executing within a physical storage appliance
US8201149B1 (en) System and method for remote execution of a debugging utility using a remote management module
US8566845B2 (en) System and method for optimizing multi-pathing support in a distributed storage system environment
US7930164B1 (en) System and method for simulating a software protocol stack using an emulated protocol over an emulated network
US20040030668A1 (en) Multi-protocol storage appliance that provides integrated support for file and block access protocols
US8219715B2 (en) Multi-pathing with SCSI I/O referrals
CN101751227B (zh) 小型计算机系统接口输入输出(scsi i/o)指点的定标
JP2021510215A (ja) I/o要求処理方法およびデバイス
US9037900B2 (en) Small computer system interface input output (SCSI IO) referral
US7565568B1 (en) Method and system for virtualization switch failover
US7783611B1 (en) System and method for managing file metadata during consistency points
JP2011048427A (ja) データ管理システム、その分散記憶装置とユーザ計算端末、そのコンピュータプログラムとデータ処理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20160808

Address after: Singapore Singapore

Patentee after: Avago Technologies General IP (Singapore) Pte. Ltd.

Address before: Milpitas, California, USA

Patentee before: LSI Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20141224

Termination date: 20151028

EXPY Termination of patent right or utility model