CN105683934B - 数据传输的目标端口处理方法和装置 - Google Patents

数据传输的目标端口处理方法和装置 Download PDF

Info

Publication number
CN105683934B
CN105683934B CN201380080585.6A CN201380080585A CN105683934B CN 105683934 B CN105683934 B CN 105683934B CN 201380080585 A CN201380080585 A CN 201380080585A CN 105683934 B CN105683934 B CN 105683934B
Authority
CN
China
Prior art keywords
data
target port
memory
storage array
array controllers
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.)
Active
Application number
CN201380080585.6A
Other languages
English (en)
Other versions
CN105683934A (zh
Inventor
R·K·塔马
S·纳扎里
阿吉特库马尔·A·纳塔拉詹
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.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
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
Application filed by Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of CN105683934A publication Critical patent/CN105683934A/zh
Application granted granted Critical
Publication of CN105683934B publication Critical patent/CN105683934B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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
    • 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]
    • 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/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/283Plural cache memories

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 Security & Cryptography (AREA)
  • Information Transfer Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种方法包括在目标端口中接收命令,其中该命令是由发起器提供的并且与写入操作关联。该方法包括:响应于该命令而使用该目标来处理与该写入操作关联的该发起器的数据传输。该处理包括:基于该命令的特性,选择性地针对传输使用在该目标端口接收到该命令之前由存储阵列控制器预先分配的内存或针对该传输从该存储阵列控制器请求内存的分配。

Description

数据传输的目标端口处理方法和装置
背景方法
计算机可以访问存储区域网络(SAN),以存储和检索大量数据。典型的SAN包括整合的大容量存储设备(磁带驱动器、硬盘驱动器、光盘驱动器等)的池,并且该SAN典型地提供相对高速的块级存储,这对于备份应用、归档应用、数据库应用和其它此类目的可以是有利的。
附图说明
图1是根据示例实现方式的计算机系统的示意图。
图2是根据示例实现方式的图1的物理机器的示意图,该物理机器包含主适配器和存储阵列控制器。
图3和图4是根据示例实现方式的描述命令的目标端口处理的流程图。
具体实施方式
参考图1,根据示例实现方式,计算机系统100包括存储区域网络(SAN)110,存储区域网络110包括整合的物理介质存储设备130(磁带驱动器、光盘驱动器、硬盘驱动器、这些设备的组合等)的池,该物理介质存储设备的池可以由客户端102(台式计算机、便携式计算机、平板计算机、智能手机等)用于数据存储和检索目的。
作为示例,客户端102可以与计算机系统100的各服务器170(数据库、电子邮件服务器、文件服务器等)通信,并且作为这些通信的结果,服务器170可以生成块级访问请求,以向SAN 110存储数据并且从SAN 110检索数据。对于图1的示例而言,客户端102可以使用网络结构106(如基于局域网(LAN)的结构、基于广域网(WAN)的结构、基于因特网的结构等)与服务器170通信。
一般来说,由服务器170生成的块级读取和写入被SAN 110的存储阵列120(图1中示出的N个存储阵列120-1…120-N)的存储阵列控制器134处理,以便在阵列120的物理存储设备130中存储数据和从阵列120的物理存储设备130中检索数据。
如图1所示,服务器170通过SAN结构180耦接至存储阵列120,如技术人员能够理解的,SAN结构180可以包括(作为示例)光纤通道(FC)结构、基于因特网协议(IP)的结构、交换机、网关、FC至SCSI桥等。
根据本文公开的示例实现方式,服务器170使用符合光纤通道协议(FCP)或因特网小型计算机系统接口(iSCSI)协议的消息传输协议来与存储阵列120通信;并且更具体地,服务器170可以通过提供以特定主适配器端口为目标的消息来发起特定的读取或写入操作。
一般来说,根据示例实现方式,特定存储阵列120包括一个或多个主适配器136。主适配器136提供前端接口,该前端接口被构造为与服务器170通信并且将存储阵列120的驱动器130上的存储呈现为逻辑单元。存储阵列120进一步包括存储阵列控制器134,存储阵列控制器134(在它的其它功能中)执行逻辑存储单元至物理存储单元的转换,并且提供后端接口来与存储阵列120的关联驱动器130通信。
在下面的详述的上下文中,针对在服务器170和存储阵列120之间传输数据的特定写入或读取,“发起器”(例如服务器170的主端口)通过提供消息来发起对特定“目标”端口(例如,主适配器136的端口)的写入或读取操作,该消识别该目标端口、包括写入/读取命令并且指定该关联的写入/读取操作的一个或多个特性。该消息可以是(FCP的)信息单位(IU)或者(iSCSI协议的)协议数据单元(PDU)。
特定的目标和发起器可以经历登录过程,该登录过程设置如何在这两个实体之间发生数据传输。例如,作为登录过程的结果,特定目标端口可以被指定为能够接收非请求数据(或“直接”数据),该非请求数据伴随来自该发起器的消息中的写入命令。
作为替代,该登录过程可以导致将目标端口指定为不接收具有写入命令的非请求数据。对于后面这种配置,目标端口控制发起器提供与该写入关联的数据的时机,因为直到目标端口用指示该目标端口准备好接收写入数据的消息作出响应,发起器才提供该写入数据。这可以另外被称为目标端口提供(FCP的)XFR_RDY或者(iSCSI协议的)R2T信号。
现在转向更具体的示例,发起器可以生成包括以主适配器136的特定端口为目标的写入命令的消息。对于该示例以及本文描述的其它示例,目标端口被配置为不接收具有写入命令的非请求数据。作为替代,对于写入操作,在发起器向目标端口提供数据之前,发起器等待目标端口提供准备好接收该写入数据的指示。
当目标端口接收数据作为写入操作的一部分时,目标端口将数据传输至存储阵列控制器134的主内存的区域中,该区域是存储阵列控制器134为此目的而分配的。在任何时候,可以分配存储阵列控制器134的主内存来从多个正在进行的写入操作接收数据。
处置在目标端口处接收的写入命令的处理的一种方式是存储阵列控制器直接参与该写入操作的数据传输阶段。在该方法中,存储阵列控制器控制目标端口何时断言(向发起器)其准备好接收写入数据。此外,当接收到写入命令以及内存变得可用时,存储阵列控制器在目标端口之间分配用于接收写入数据的其主内存的区域。
更具体地,在该直接方法中,响应于接收到写入命令,目标端口首先向存储阵列控制器(例如经由中断)通知该命令。存储阵列控制器然后分配其主内存的一部分来接收关联的写入数据,并且向目标端口通知该分配。在接收到该内存分配以后,目标端口用准备就绪的指示(即,目标端口提供具有XFR_RDY或R2T信号的消息)向该发起器做出响应,并且发起器通过将数据传输至目标端口来做出响应。
可以以减少该目标上每个事务的中断数以及改善CPU利用率和延迟的方式处置SCSI写入事务。减少该目标上每个事务的中断数(并且减少SCSI写入请求的延迟)的一种方法是基于SCSI标准的“首次突发”方法,其中目标接收具有写入命令的非请求数据的突发。首次突发特征由在登录过程中协商该首次突发特征的发起器和目标设置,使得当该目标被配置为接收首次突发时,目标使用预先分配的缓冲区。因此,当发起器发送写入命令时,该写入命令伴有写入数据,并且在中断该阵列控制器之前,该目标使用预先分配的缓冲区来存储该数据。然而,发起器可以不被构建或被配置为实现首次突发。
根据本文公开的示例方法,针对非首次突发写入事务预先分配目标主机总线适配器上的缓冲区,这还允许在没有发起器参与情况下中断数量的减少,并且不依赖发起器支持首次突发的能力。
以此方式,本文公开的系统和方法用于通过为发起器和目标端口之间的关联写入数据的传输预先分配内存来优化写入(例如优化SCSI写入)。在此上下文中,“预先分配的”内存指由存储阵列控制器分配的供特定端口针对今后的写入操作专门使用的存储阵列控制器的内存的一个或多个区域。该预先分配指存储阵列控制器134不直接参与在特定写入操作的数据阶段。以此方式,根据本文公开的示例实现方式,特定目标端口被构造为针对特定写入操作而与发起器通信,以将写入数据传输至该目标端口并且将该数据存储在存储阵列控制器134的预先分配的内存区域中,所有这些都无需存储阵列控制器134的参与。因此,在可能的益处中,开销可以从存储阵列控制器134卸给目标端口,并且可以减少与写入数据的传输关联的时间。
更具体地,根据示例实现方式,存储阵列控制器134用一个或多个参数来规划主适配器136的特定端口,该一个或多个参数以由该端口使用预先分配的内存处置其数据传输的一类写入操作为特征。为了由该端口用来胜任写入操作,阵列控制器134向特定端口预先分配一个或多个内存缓冲区。
根据示例实现方式,特定端口对其被分配的用于指定的那类写入的一个或多个内存缓冲区具有独占访问权,直到该端口将被分配的内存缓冲区释放回存储阵列控制器134为止。如果特定写入命令不落入该指定的类内,那么存储阵列控制器134直接参与该数据阶段:该目标端口提醒存储阵列控制器134接收该命令;并且,在该目标端口向发起器发送指示准备好接收写入数据的消息之前,目标端口等待存储阵列控制器134分配用于传输关联写入数据的内存。
因此,参见图3,根据示例实现方式,一种方法300包括:在端口中接收(框304)来自发起器的写入命令。依照方法300的框308,基于写入操作的一个或多个特性(由写入命令描述的),通过选择性地针对数据传输使用预先分配的内存或者针对与写入操作关联的数据传输从存储阵列控制器请求内存的分配,该端口处理该与写入操作关联的数据传输。
结合图1参见图2,根据示例实现方式,主适配器136和存储阵列控制器134可以是相同物理机器200的一部分。在该上下文中,物理机器200是由真实的硬件(中央处理单元(CPU)、内存设备、总线接口等)和真实的机器可执行指令或“软件”(操作系统指令、驱动指令、应用指令等)形成的真正的机器。
作为示例,存储阵列控制器134可以由物理机器200的主系统板形成,并且主适配器136可以由被插入主板上的相应总线插槽内的主适配器卡形成。在进一步的实现方式中,存储阵列控制器134和主适配器136可以进一步在相同的主板上形成。因此,预期很多变化,这些变化在所附的权利要求的范围内。
如图2所示,主适配器136通常可以包含一个或多个端口处理器(图2中示出Q个端口处理器210-1…210-Q),该一个或多个端口处理器形成各自的目标端口204(例如图2中示出的Q个目标端口204-1…204-Q)。在一些示例实现方式中,特定端口处理器210被配置为处理针对指定的目标端口204的读取和写入操作;并且在进一步的示例实现方式中,特定端口处理器210可以处理针对多个指定的目标端口204的读取和写入操作。如本文描述的,作为该处理的一部分,端口处理器210使用预先分配的内存缓冲区来处置与预先限定的类内的写入命令关联的数据传输。
更具体地,根据示例实现方式,存储阵列控制器134包括一个或多个中央处理单元(CPU)214,该一个或多个中央处理单元(CPU)214通过桥218耦接至存储阵列控制器134的主内存220。
一般来说,主内存220可以暂时性地存储与机器可执行指令的执行关联的指令,以及在与该处理关联的初步结果、中间结果和最终结果中涉及的数据。根据一些实现方式,主内存220可以存储如下机器可执行指令:该机器可执行指令在由一个或多个CPU 214执行时使该一个或多个CPU 214执行本文公开的方法中的全部或一部分,如方法300和方法400(下面描述)。
一般来说,根据具体实现方式,主内存220是可以由半导体存储设备、光存储设备、基于磁性介质的存储设备、可移除的介质设备等形成的非暂时性存储介质。
根据示例实现方式,分配主内存220的区域以接收到来的写入数据。更具体地,根据示例实现方式,内存220包含接收到来的写入数据的缓冲区221。缓冲区221是主内存220的指定区域。缓冲区221可以各自具有相同的长度或大小;或者根据特定实现方式,缓冲区221可以具有不同的大小。
当端口处理器210接收关联的写入操作的写入数据时,端口处理器210对主内存220执行直接内存访问(DMA),以将写入数据存储在被分配的一个或多个缓冲区221中。在已经传输数据后,一个或多个CPU 214可以执行像逻辑至物理数据单元转换这样的功能,并且经由一个或多个输入/输出(I/O)处理器230将数据存储在存储设备130中的一个或多个中。根据关联的写入是否落入有资格的或指定的类内,针对特定写入命令分配的一个或多个缓冲区221可以是在接收写入命令之前预先分配的,或者可以是在接收写入命令之后分配的。
根据示例实现方式,一个或多个CPU 214识别要由特定端口204的特定端口处理器210处置的写入操作的有资格的或指定的一类写入操作,并且相应地规划端口处理器210。就这一点而言,一个或多个CPU 214可以用描述该类写入操作的一个或多个参数来规划该特定端口处理器210,并且用要在向主内存220传输写入数据时使用的预先分配的一个或多个缓冲区221池规划该端口处理器210。根据示例实现方式,由指定的端口204独占性地使用预先分配的一个或多个缓冲区221。
通过对要涵盖的写入操作的一个或多个特性进行描述的一个或多个参数,限定待由特定端口204处置的指定的一类写入操作。例如,根据一些实现方式,特定写入操作类包括与特定块长或大小的写入数据关联的写入命令。以此方式,块大小可以与存储阵列控制器134的缓存内存222的缓存行大小相关。例如,特定缓存大小可以是32千字节(kB)。
根据进一步的示例实现方式,端口处理器210可以考虑除写入数据的块大小以外的考虑。例如,根据一些示例实现方式,特定写入操作可以与数据偏移量关联。该类写入操作可以是如下写入操作:在该写入操作中,偏移量不导致将写入数据存储在一个以上缓存行中。
例如,特定写入操作的块大小可以等于缓存行大小。因此,根据示例实现方式,10的偏移量可以导致要使用两个缓存行,因此可以不认为是该写入类的一部分。同样地,存储阵列控制器134通过首先将一个或多个缓冲区221分配给端口处理器210来处置这种写入操作的初始阶段,然后端口处理器210向发起器通知其准备就绪。
参考图4,作为更特定的示例,根据示例实现方式,写入命令可以依据方法400而由存储阵列120处理。方法400包括目标端口从发起器接收(框404)命令。如果目标端口确定(决策框408)该命令是写入命令,那么目标端口确定(决策框412)该写入命令是否有资格使端口处置与发起器的通信,以使用预先分配的内存传输数据。如果是这样,那么目标端口使用(框416)来自其预先分配的池的缓冲区来处置该传输,并且根据框416,向发起器指示其准备就绪。然而,如果写入命令没有资格(决策框412),则该端口将该请求转发(框420)至存储阵列控制器,等待来自该控制器的内存缓冲区的识别,然后表示该端口准备好接收数据。如图4所示,在向发起器表示其准备就绪以后,目标端口等待(框424)写入数据。
如决策框428所示,向存储阵列控制器的内存的数据传输取决于写入是否在要使用预先分配的内存处置的类中。以此方式,如果写入是有资格的写入,那么根据框432,目标端口使用DMA来将数据传输至位于适当偏移量的存储阵列控制器的预先分配的内存。否则,根据框436,该目标端口使用DMA传输来将该数据传输至在接收到写入命令以后分配的存储阵列缓冲区。
当数据传输完成时,目标端口向存储阵列控制器通知(框440)数据阶段结束。然后,目标端口等待(框444)来自存储阵列控制器的状态,并且根据框450,将该状态送往(框450)发起器。
如图4所示,如果该命令不是写入命令(决策框408),则根据框446该端口使用存储阵列控制器来调节对发起器的附加处理阶段;并且控制进行至框444。
在本文公开的方法和系统的潜在优势中,可以在无需发起器修改其标准行为的情况下提升写入操作性能。配置处于存储阵列的完全控制之下。存储阵列控制器可以经历中断处理的显著减少,并且存储阵列控制器可以经历其CPU负载的显著降低。本文公开的系统和方法可以特别有益于具有相对高目标端口密度的存储阵列。预料到在所附权利要求的范围内的其它的和不同的优势。
虽然本文已经公开了有限多个示例,但是得益于本公开,本领域技术人员将理解从中获得的多种修改和变化。期望所附权利要求覆盖所有这些修改和变化。

Claims (13)

1.一种数据传输的目标端口处理方法,包括:
在目标端口中接收写入命令,所述命令由发起器提供;
响应于接收到所述命令,使用所述目标端口来处理用于所述发起器的数据传输,其中该处理包括:基于所述命令的特性,选择性地针对该传输使用在由所述目标端口接收到所述命令之前由存储阵列控制器预先分配的内存,或者针对该传输从所述存储阵列控制器请求内存的分配;以及
使用所述存储阵列控制器来用指示所述特性的至少一个参数来规划所述目标端口,其中规划参数具有写入操作类的特征,
并且进一步包括,
根据所述写入命令是否在以所述规划参数为特征的写入操作类中:
将所述数据传输至在所述目标端口接收到所述命令之前由所述存储阵列控制器预先分配的所述内存;或者
将所述数据传输至在所述目标端口接收到所述命令之后由所述存储阵列控制器分配的内存。
2.根据权利要求1所述的方法,其中使用所述目标端口包括:选择性地在针对该传输不从所述存储阵列控制器请求内存的分配的情况下,使用所述目标端口来向所述发起器提供准备好传输信号。
3.根据权利要求1所述的方法,其中使用所述目标端口包括:至少部分地基于与所述数据关联的块大小,选择性地在不首先请求内存的分配的情况下表示所述目标端口准备好接收所述数据。
4.根据权利要求3所述的方法,其中使用所述目标端口包括:至少部分地基于所述块大小是否超过由所述存储阵列控制器使用的缓存内存的行大小,选择性地在不首先请求内存的分配的情况下表示所述目标端口准备好接收所述数据。
5.根据权利要求1所述的方法,其中使用所述目标端口包括:至少部分地基于与所述数据关联的偏移量是否与由所述存储阵列控制器使用的缓存内存的一个以上的行关联,选择性地在不首先从所述存储阵列控制器请求内存的分配的情况下表示所述目标端口准备好接收所述数据。
6.一种数据传输的目标端口处理装置,包括:
存储阵列控制器,用于:
响应于端口指示接收到来自发起器的写入命令来写入数据,分配内存来接收所述数据;以及
在所述端口接收所述写入命令之前,用指示所述命令的特性的至少一个参数来规划所述端口,其中规划参数具有写入操作类的特征;
端口处理器,用于处理所述写入操作,所述端口处理器根据所述写入命令是否在以所述规划参数为特征的写入操作类中:
向所述发起器提供所述端口准备好接收所述数据的指示;或者
将所述数据传输至在所述端口接收到所述写入命令之前由所述存储阵列控制器预先分配的内存区域。
7.根据权利要求6所述的装置,其中所述端口处理器用所预先分配的内存区域来规划,所预先分配的内存区域与由所述存储阵列控制器预留的供所述端口处理器使用的至少一个内存缓冲区关联。
8.根据权利要求6所述的装置,其中所述端口处理器执行所述数据向所述内存区域的直接内存访问(DMA)传输。
9.根据权利要求6所述的装置,其中基于所述写入操作的特性,在所述端口处理器接收到所述命令之后,所述端口处理器选择性地等待来自所述存储阵列控制器的内存的关联。
10.根据权利要求6所述的装置,进一步包括:
介质存储驱动器,所述介质存储驱动器耦接至所述存储阵列控制器,其中所述存储阵列控制器将所述数据存储在所述驱动器中的至少一个内。
11.一种存储指令的非暂时性计算机可读存储介质,该指令在由计算机执行时使所述计算机:
在端口接收写入命令之前,用至少一个参数规划端口处理器,所述至少一个参数描述至少一个特性,其中规划参数具有写入操作类的特征,所述端口处理器用来处理写入操作,并且基于所述写入操作的特性而选择性地向发起器表示准备好接收所述写入命令的数据,或者将所述数据传输至在所述端口处理器接收到所述写入命令之前分配的内存区域;以及
在所述端口处理器接收到未由所述至少一个参数描述的另一写入命令之后,为所述端口处理器分配内存以传输所述另一写入命令的数据。
12.根据权利要求11所述的非暂时性计算机可读存储介质,其中所述特性包括与所述数据关联的块大小。
13.根据权利要求11所述的非暂时性计算机可读存储介质,其中所述至少一个参数表示所述数据将与一个缓存行关联还是与多个缓存行关联。
CN201380080585.6A 2013-10-31 2013-10-31 数据传输的目标端口处理方法和装置 Active CN105683934B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/067787 WO2015065436A1 (en) 2013-10-31 2013-10-31 Target port processing of a data transfer

Publications (2)

Publication Number Publication Date
CN105683934A CN105683934A (zh) 2016-06-15
CN105683934B true CN105683934B (zh) 2019-04-05

Family

ID=53004842

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380080585.6A Active CN105683934B (zh) 2013-10-31 2013-10-31 数据传输的目标端口处理方法和装置

Country Status (4)

Country Link
US (1) US10209906B2 (zh)
EP (1) EP3063641A4 (zh)
CN (1) CN105683934B (zh)
WO (1) WO2015065436A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105683934B (zh) 2013-10-31 2019-04-05 慧与发展有限责任合伙企业 数据传输的目标端口处理方法和装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101923443A (zh) * 2008-10-17 2010-12-22 Lsi公司 用于存储阵列控制器的嵌入式横向扩展聚合器

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5941972A (en) 1997-12-31 1999-08-24 Crossroads Systems, Inc. Storage router and method for providing virtual local storage
US6353874B1 (en) 2000-03-17 2002-03-05 Ati International Srl Method and apparatus for controlling and caching memory read operations in a processing system
US7864758B1 (en) 2001-09-28 2011-01-04 Emc Corporation Virtualization in a storage system
US7809693B2 (en) 2003-02-10 2010-10-05 Netapp, Inc. System and method for restoring data on demand for instant volume restoration
US7330862B1 (en) 2003-04-25 2008-02-12 Network Appliance, Inc. Zero copy write datapath
US7613785B2 (en) 2003-11-20 2009-11-03 International Business Machines Corporation Decreased response time for peer-to-peer remote copy write operation
US7934023B2 (en) 2003-12-01 2011-04-26 Cisco Technology, Inc. Apparatus and method for performing fast fibre channel write operations over relatively high latency networks
US7249227B1 (en) * 2003-12-29 2007-07-24 Network Appliance, Inc. System and method for zero copy block protocol write operations
US7631148B2 (en) 2004-01-08 2009-12-08 Netapp, Inc. Adaptive file readahead based on multiple factors
US7328307B2 (en) 2004-01-22 2008-02-05 Tquist, Llc Method and apparatus for improving update performance of non-uniform access time persistent storage media
US7843906B1 (en) * 2004-02-13 2010-11-30 Habanero Holdings, Inc. Storage gateway initiator for fabric-backplane enterprise servers
US7752386B1 (en) 2005-12-29 2010-07-06 Datacore Software Corporation Application performance acceleration
US7836220B2 (en) 2006-08-17 2010-11-16 Apple Inc. Network direct memory access
US8644305B2 (en) 2007-01-22 2014-02-04 Synopsys Inc. Method and system for modeling a bus for a system design incorporating one or more programmable processors
US20110004732A1 (en) * 2007-06-06 2011-01-06 3Leaf Networks, Inc. DMA in Distributed Shared Memory System
US8219776B2 (en) 2009-09-23 2012-07-10 Lsi Corporation Logical-to-physical address translation for solid state disks
US9077654B2 (en) 2009-10-30 2015-07-07 Iii Holdings 2, Llc System and method for data center security enhancements leveraging managed server SOCs
US8145848B2 (en) 2009-11-30 2012-03-27 Oracle America, Inc. Processor and method for writeback buffer reuse
US8243511B2 (en) 2010-09-27 2012-08-14 Seagate Technology Llc Reuse of information from memory read operations
US8688926B2 (en) * 2010-10-10 2014-04-01 Liqid Inc. Systems and methods for optimizing data storage among a plurality of solid state memory subsystems
US8732357B2 (en) 2010-10-28 2014-05-20 International Business Machines Corporation Apparatus and method for dynamically enabling and disabling write XFR—RDY
WO2014045391A1 (ja) * 2012-09-21 2014-03-27 株式会社 東芝 物理ブロック間でデータをコピーするディスクアレイ装置、ディスクアレイコントローラ及び方法
US8924619B2 (en) 2013-03-15 2014-12-30 Seagate Technology Llc Unified message-based communications
CN105683934B (zh) 2013-10-31 2019-04-05 慧与发展有限责任合伙企业 数据传输的目标端口处理方法和装置
US9977730B2 (en) * 2015-05-08 2018-05-22 Dell Products, Lp System and method for optimizing system memory and input/output operations memory

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101923443A (zh) * 2008-10-17 2010-12-22 Lsi公司 用于存储阵列控制器的嵌入式横向扩展聚合器

Also Published As

Publication number Publication date
EP3063641A4 (en) 2017-07-05
WO2015065436A1 (en) 2015-05-07
US10209906B2 (en) 2019-02-19
US20160253115A1 (en) 2016-09-01
CN105683934A (zh) 2016-06-15
EP3063641A1 (en) 2016-09-07

Similar Documents

Publication Publication Date Title
US20210255776A1 (en) Management of File System Requests in a Distributed Storage System
US10120586B1 (en) Memory transaction with reduced latency
US12021759B2 (en) Packet processing with hardware offload units
US6839706B2 (en) Block data storage within a computer network
KR20200078382A (ko) 개시자 모드를 갖는 솔리드-스테이트 드라이브
JP4144897B2 (ja) 共通作業キュー環境における最適格サーバ
TW200929258A (en) A storage device coordinator and a host device that includes the same
EP2840576A1 (en) Hard disk and data processing method
CN109408243A (zh) 一种基于rdma的数据处理方法、装置和介质
WO2016008338A1 (zh) 一种i/o请求处理方法及存储系统
EP3465450B1 (en) Improving throughput in openfabrics environments
CN105683934B (zh) 数据传输的目标端口处理方法和装置
US10776033B2 (en) Repurposable buffers for target port processing of a data transfer
CN114296916B (zh) 一种提高释放rdma性能的方法、装置及介质
CN108292278A (zh) 计算机系统和计算机
CN106325377B (zh) 外部设备扩展卡及输入输出外部设备的数据处理方法
CN113572575A (zh) 一种自适应数据传输方法及系统
TW201111993A (en) System, method, and computer program product for maintaining a direct connection between an initiator and a drive
CN117076409B (zh) 文件共享方法、装置、系统、电子设备及存储介质
US20220188259A1 (en) Data transfer system and system host
US20240231630A1 (en) Managing both baseline and burst i/o request rates
US10042809B2 (en) Method for communication using PCI express dedicated communication module and network device including the same
JP5924060B2 (ja) I/o制御装置およびi/o装置の制御方法、並びにコンピュータ・プログラム
WO2017090154A1 (ja) ストレージシステム及びストレージプログラム
US20030014559A1 (en) Data communication apparatus and method, data communication system, information-processing apparatus and method, recording medium, and program

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant