CN100517308C - 元数据服务器、数据服务器、存储网络及数据存取方法 - Google Patents
元数据服务器、数据服务器、存储网络及数据存取方法 Download PDFInfo
- Publication number
- CN100517308C CN100517308C CNB2004800024212A CN200480002421A CN100517308C CN 100517308 C CN100517308 C CN 100517308C CN B2004800024212 A CNB2004800024212 A CN B2004800024212A CN 200480002421 A CN200480002421 A CN 200480002421A CN 100517308 C CN100517308 C CN 100517308C
- Authority
- CN
- China
- Prior art keywords
- data server
- data
- main frame
- rdma
- request
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17331—Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
- G06F16/183—Provision of network file services by network file servers, e.g. by using NFS, CIFS
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/188—Virtual file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0667—Virtualisation aspects at data level, e.g. file, record or object virtualisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols 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]
Abstract
通过提供了一种用于提供具有元数据存储虚拟化并且以数据服务器连接速度进行数据存取的分布式文件服务体系结构的方法、设备和程序存储装置,从而提供了元数据服务器、数据服务器、存储网络及数据存取方法。主机发布包括数据目标位置的文件存取请求。对包括数据目标位置的文件存取请求进行处理。响应于所述文件存取请求的处理而发布远程直接存储器存取(RDMA)通道端点连接。直接在主机处的存储器和数据服务器之间进行与文件存取请求相关联的文件-块数据的RDMA传送。
Description
技术领域
本发明总体上涉及存储系统体系结构,具体而言,涉及一种用于提供具有元数据存储虚拟化的分布式文件服务体系结构的方法、设备和程序存储装置。
背景技术
计算机在存储和管理信息方面的日益增加的能力已经使得它们日益成为现代商业所不可缺少的。这些机器的流行导致诸如电子邮件和文档之类的数据在一个或多个计算机网络上的广泛共享和通信,其中所述一个或多个计算机网络包括局域网、诸如因特网的广域网以及无线网络。
计算机操作系统是较大的、复杂的软件,其用于管理计算机处理系统的硬件和软件资源。另一方面,存储管理软件用于将存储装置(诸如盘)组织成为逻辑分组,以便实现各种性能和可利用性特征。例如,所述存储装置可以被设置为创建单独的卷或者卷的级联、镜像集(mirror sets)或者镜像带区集(stripes of mirror sets)、乃至独立盘的冗余阵列(RAID)。操作系统在其上执行以便提供这种管理功能的计算机系统平台通常包括主机,所述主机耦合至管理存储卷的存储适配器或者控制器。所述操作系统尤其通过调用支持在计算机上执行的软件处理或者应用程序的输入/输出(I/O)操作来在功能上组织这种平台。
存储体系结构将存储装置的管理分解到独立部件中,并且相对于它们当中的信息和控制流来定义它们的功能操作。所述独立部件包括I/O子系统以及文件系统,它们每一个通常均彼此独立并且根据由所述体系结构定义的接口来相互作用。所述I/O子系统提供计算机和存储装置之间的有效通信模式,其允许程序和数据被输入计算机的存储器中以便处理。所述子系统还能够使根据计算该信息获得的结果被记录到存储装置上。
所述文件系统包含有关在所述存储装置上的信息的组织的一般知识,并且提供用于实现期望的存储体系结构的属性/性能的算法。所以,所述文件系统是包括程序模块集合的高级软件实体,例如用于合并存储装置的命令集的软件驱动程序。
存储网络可以包括一个或多个服务器计算机,其是大数据块的源以及储存库,并且存储网络还包括多个客户端计算机,其用于与所述服务器通信、对较小的数据块进行操作并且把编辑的数据传送回所述服务器。所述服务器计算机通常能够存储大量数据。可以采用各种数据存储系统来实现这种存储,所述数据存储系统包括大的磁和磁光盘库以及磁带库。
如上所述,服务器可以实现文件系统,以便管理存储介质的空间。所述文件系统向计算机系统的用户提供逻辑框架以便存取存储在存储介质中的数据。所述逻辑框架通常包括目录结构的分层结构以便定位包含用户命名的程序或者数据的文件集合。目录和文件的使用消除了用户在存储介质中查找所存储的信息的实际物理位置的必要。
所述逻辑框架可以被存储为“元数据”或者文件的控制信息,诸如文件大小和类型以及指向实际数据的指针。文件的内容可以被称为文件数据以便与元数据相区别。元数据是“有关数据的数据”。元数据是用于跟踪与卷上所有文件有关的每件事的文件系统开销。例如,元数据可以告知对于给定文件而言什么样的分配单元组成所述文件数据,什么样的分配单元处于空闲,什么样的分配单元包含坏扇区等等。
由于应用程序通常与所述文件系统进行交互以便操作(即,读取或者写入)所述文件,所以I/O处理通常是在文件系统的支持下执行。另一方面,I/O子系统通过操作数据块以较低软件级别与存储装置进行交互。所述文件系统以及I/O子系统包括许多层的软件驱动程序代码,将它们通称为I/O堆栈。常规的I/O堆栈可以包括文件系统驱动程序、逻辑卷驱动程序、盘分类驱动程序和特定设备(device-specific)驱动程序,诸如小型计算机系统接口(SCSI)端口以及迷你端口驱动程序。
硬件平台中的文件系统以及I/O子系统的组织在常规的存储体系结构当中是改变的。例如,如上所述,传统的存储体系结构通常包括被组织为完全在主机上执行的文件系统以及I/O子系统。响应于由应用程序发布的I/O事务请求,主处理器执行从存储装置向主存储器传送数据所需要的文件系统以及I/O子系统的软件代码。在此体系结构中,所述主处理器实际上为I/O事务执行两次I/O堆栈的代码:一次是因为事务使堆栈减少,而另一次是因为事务的结果被返回到所述应用程序。此类体系结构的I/O操作的执行明显地消耗了大量的计算机资源。
为了避免资源的这种消耗,某些存储体系结构改变它们的文件系统和I/O子系统的布置。例如,可以提供常规的RAID控制器体系结构,其中所述文件系统被包含在主机内,并且I/O子系统被分布在主机和控制器之间。此体系结构的大部分的实现方式被配置为通过在文件系统和控制器之间传送离散的面向块的请求来执行RAID相关的操作。然而,当完成这些请求时,借助于中断、即由主处理器改变指令执行的正常流的事件来通知主处理器。对于此类体系结构来说,可存在许多与单个事务相关联的中断。因为每一中断必须由主处理器服务,所以这种体系结构导致处理器的使用效率低。
其他存储体系结构完全在所述控制器上提供它们的文件系统和I/O子系统。例如,主机可以依照常规的客户端一服务器计算模式与控制器进行交互,其中所述主机(“客户端”)通常跨越诸如网络之类的互连向控制器(“服务器”)转发每一I/O事务。所有事务被发送给控制器并且在主机没有任何事务被本地服务。用于管理大容量存储装置的文件系统的文件控制器被耦合至存储处理器。尽管这种体系结构把主处理器从I/O处理中解放出来,但是它还不利地影响文件系统等待时间,即,由应用程序向文件系统发布I/O事务请求和由文件系统完成该请求之间的时间段。
近年来,数据服务器已经经由至少一个元数据服务器连接(interface)于数据网络。所述元数据服务器依照网络文件存取协议从数据网络中的客户端接收数据存取命令。所述元数据服务器执行文件锁定(locking)管理和网络文件向数据服务器中存储器的逻辑块地址的映射,并且在客户端和数据服务器的存储器之间移动数据。然而,使用元数据服务器的体系结构目前要求客户端操作系统提供数据控制,和/或未能以数据服务器连接的速度提供文件存取。
发明内容
为了解决现有技术中的局限性以及当阅读和理解本说明书时将变得明显的其他局限性,本发明公开了一种用于提供具有元数据存储虚拟化并且以数据服务器连接速度进行数据存取的分布式文件服务体系结构的方法、设备和程序存储装置。
本发明通过在元数据服务器虚拟化文件-块数据并且提供由数据服务器直接存取主机的存储器来解决上述问题。所述元数据服务器允许基于元数据向数据服务器提供输入/输出操作细节,以便直接在处于主机的存储器和数据服务器之间传送文件-块数据。
依照本发明原理的主机包括用于在其上运行应用程序的中央处理单元、用于在其中存储数据的存储器和被耦合至所述存储器的主机总线适配器,所述主机总线适配器包括适配器处理器,它被配置为用于向元数据服务器发布输入/输出请求,并且用于允许直接在存储器和数据服务器之间对与所述输入/输出请求相关联的数据进行直接存储器存取传送。
在本发明的另一个实施例中,提供了元数据服务器。所述元数据服务器包括用于存储与数据服务器上的数据相关联的元数据的存储器、以及处理器,所述处理器被配置为用于接收来自于主机的输入/输出请求,并且根据所述元数据向数据服务器发布输入/输出操作细节,以便直接在主机的存储器和数据服务器之间传送文件-块数据。
在本发明的另一个实施例中,提供了数据服务器。所述数据服务器包括用于在其上存储文件-块数据的至少一个存储装置,以及可操作地耦合至所述存储装置的处理器,所述处理器被配置为用于从元数据服务器接收与主机的输入/输出请求相关联的输入/输出操作细节,用于建立与由所接收的输入/输出操作细节标识的主机的存储器地址的直接连接,并且用于直接在主机的存储器地址和至少一个存储装置之间传送由接收到的输入/输出操作细节涉及的文件-块数据。
在本发明的另一个实施例中,提供了存储网络。所述存储网络包括:主机,所述主机包括用于在处理输入/输出请求中使用的第一存储器,所述主机被配置为用于发布输入/输出请求;被耦合至所述主机的元数据服务器,所述元数据服务器包括用于存储与文件-块数据相关联的元数据的第二存储器,所述元数据服务器进一步被配置为用于接收来自于所述主机的输入/输出请求并且用于提供输入/输出操作细节以便处理输入/输出请求;以及可操作地耦合至主机和所述元数据服务器的数据服务器,所述数据服务器包括用于在其上存储文件-块数据的至少一个存储装置,所述数据服务器被配置为用于从元数据服务器接收输入/输出操作细节以便处理所述输入/输出请求,用于建立与由来自于元数据服务器的输入/输出操作细节标识的主机的存储器地址的直接连接,并且用于直接在主机的标识出的存储器位置和至少一个存储装置之间传送由所述输入/输出操作细节涉及的文件-块数据。
在本发明的另一个实施例中,提供了另一种存储网络。这种存储网络包括:被配置为用于发布文件存取请求的主机;被耦合至所述主机的元数据服务器,所述元数据服务器被配置为用于接收来自于主机的文件存取请求并且用于向主机提供与所述文件存取请求相关联的数据块信息;以及可操作地耦合至所述主机的数据服务器,所述数据服务器包括用于在其上存储文件-块数据的至少一个存储装置,所述数据服务器被配置为用于接收标识存储器位置的命令,并且用于直接在主机的标识出的存储器位置和至少一个存储装置之间传送文件-块数据。
在本发明的另一个实施例中,提供了一种可由计算机读取的程序存储装置。所述介质有形地包含可由计算机执行的一个或多个指令程序,以便执行用于在具有元数据存储虚拟化的分布式文件服务体系结构中以数据服务器连接速度进行数据存取的方法,其中所述方法包括向元数据服务器发布输入/输出请求,并且直接在主机的存储器和数据服务器之间传送与输入/输出请求相关联的数据。
在本发明的另一个实施例中,提供了另一种可由计算机读取的程序存储装置。此介质有形地包含可由计算机执行的一个或多个指令程序,以便执行用于在具有元数据存储虚拟化的分布式文件服务体系结构中以数据服务器连接速度进行数据存取的方法,其中所述方法包括在数据服务器上存储与数据相关联的元数据,并且响应于输入/输出请求,基于所述元数据向数据服务器发布输入/输出操作细节,以便直接在主机的存储器和数据服务器之间传送文件-块数据。
在本发明的另一个实施例中,提供了可由计算机读取的另一程序存储装置。此介质有形地包含可由计算机执行的一个或多个指令程序,以便执行用于在具有元数据存储虚拟化的分布式文件服务体系结构中以数据服务器连接速度进行数据存取的方法,其中所述方法包括在具有至少一个存储装置的数据服务器上存储文件-块数据,并且在数据服务器从元数据服务器接收与主机的输入/输出请求相关联的输入/输出操作细节,建立从数据服务器到由接收到的输入/输出操作细节标识的主机的存储器地址的直接连接,并且直接在主机的存储器地址和数据服务器之间传送由接收到的输入/输出操作细节涉及的文件-块数据。
在本发明的另一个实施例中,提供了可由计算机读取的另一程序存储装置。此介质有形地包含可由计算机执行的一个或多个指令程序,以便执行用于在元数据存储虚拟化的分布式文件服务体系结构中以数据服务器连接速度进行数据存取的方法,其中所述方法包括从主机发布包括数据目标位置的文件存取请求,处理包括数据目标位置的文件存取请求,响应于包括数据目标位置的文件存取请求的处理而发布远程直接存储器存取通道端点连接,并且直接在主机的存储器和数据服务器之间传送与文件存取请求相关联的文件-块数据。
在本发明的另一个实施例中,提供了另一主机。这种主机包括用于在其上运行应用程序的装置、用于在其中存储数据的存储器装置、以及处理装置,所述处理装置被配置为用于向元数据服务器发布输入/输出请求,并且用于允许直接在存储器和数据服务器之间进行与所述输入/输出请求相关联的数据的直接存储器存取传送。
在本发明的另一个实施例中,提供了另一元数据服务器。这种元数据服务器包括用于存储与数据服务器上的数据相关联的元数据的装置,以及用于接收来自于主机的输入/输出请求并且根据元数据向数据服务器发布输入/输出操作细节以便直接在主机的存储器和数据服务器之间传送文件-块数据的装置。
在本发明的另一个实施例中,提供了另一数据服务器。所述数据服务器包括:用于在其上存储文件-块数据的装置;以及可操作地耦合至用于存储的装置的装置,用于从元数据服务器接收与主机的输入/输出请求相关联的输入/输出操作细节,用于建立与由所接收的输入/输出操作细节标识的主机的存储器地址的直接连接,并且用于直接在主机的存储器地址和至少一个存储装置之间传送由接收到的输入/输出操作细节涉及的文件-块数据。
在本发明的另一个实施例中,提供了另一存储网络。所述存储网络包括:主机装置,所述主机装置包括用于在处理输入/输出请求中使用的第一存储器装置,所述主机被配置为用于发布输入/输出请求;被耦合至所述主机装置的元数据装置,所述元数据装置包括用于存储与文件-块数据相关联的元数据的第二存储器装置,所述元数据装置进一步被配置为用于接收来自于主机装置的输入/输出请求,并且用于提供输入/输出操作细节以便处理所述输入/输出请求;以及可操作地耦合至主机装置和元数据装置的数据装置,所述数据装置包括用于在其上存储文件-块数据的至少一个存储装置,所述数据装置被配置为从元数据服务器接收输入/输出操作细节以便处理所述输入/输出请求,用于建立与由来自于元数据装置的输入/输出操作细节标识的主机装置的存储器地址的直接连接,并且用于直接在主机装置的标识出的存储器位置和数据装置之间传送由所述输入/输出操作细节涉及的文件-块数据。
在本发明的另一个实施例中,提供了另一存储网络。这种存储网络包括:用于发布文件存取请求的主机装置;被耦合至所述主机装置的元数据装置,所述元数据装置接收来自于主机的文件存取请求并且向主机提供与所述文件存取请求相关联的数据块信息;以及可操作地耦合至所述主机装置的数据装置,所述数据装置包括用于在其上存储文件-块数据的至少一个存储装置,所述数据装置接收用于标识存储器位置的命令,并且直接在主机装置的标识出的存储器位置和所述数据装置之间传送文件-块数据。
在本发明的另一个实施例中,提供了一种用于提供具有元数据存储虚拟化并且以数据服务器连接速度进行数据存取的分布式文件服务体系结构的方法。所述方法包括从主机发布包括数据目标位置的文件存取请求,处理包括数据目标位置的文件存取请求,响应于包括数据目标位置的文件存取请求的处理而发布远程直接存储器存取通道端点连接,并且直接在主机的存储器和数据服务器之间传送与文件存取请求相关联的文件-块数据。
附图说明
现在将参照如下附图、仅仅通过举例来描述本发明的实施例,其中:
图1举例说明了用于提供文件数据服务的一个解决方案,其中元数据由独立于服务实际文件块数据的实体的实体来服务;
图2举例说明了用于提供文件数据服务的第二种体系结构决,其中元数据由独立于服务实际文件块数据的实体的实体来服务;
图3举例说明了根据本发明实施例的存储系统体系结构;
图4举例说明了作为客户端堆栈的一部分的智能RDMA部件;
图5根据本发明实施例举例说明了客户端软件栈的附加细节以及按照RDMA传输(RDMA-T)的虚拟寻址问题;
图6举例说明了在没有硬件限制的情况下本发明的功能;以及
图7举例说明了根据本发明的存储系统部件500,其中参照图3-6举例说明的处理被有形地包含到计算机可读介质或者载体中。
具体实施方式
在本发明的优选实施例的随后描述中,对形成本发明的一部分的附图作出参考,并且其中通过图示示出了可以实施本发明的这些实施例。应该理解的是,由于在不脱离本发明的范围的情况下可以做出结构上的改变,故而也可以利用其他实施例。
本发明提供了一种用于提供具有元数据存储虚拟化并且以数据服务器连接速度进行数据存取的分布式文件服务体系结构的方法、设备以及程序存储装置。本发明允许在虚拟化的存储体系结构中以数据服务器连接速度使文件-级数据得以服务于客户端,其中所述元数据由不同于服务实际文件块数据的实体的实体来服务。
图1举例说明了用于提供文件数据服务的一个体系结构100,其中元数据由独立于服务实际文件块数据的实体的实体来服务。在图1中,元数据服务器(MS)110依照网络文件存取协议接收来自于数据网络中的客户端114的数据存取命令112。所述元数据服务器110执行文件锁定管理,并且执行网络文件向数据服务器(DS)120中存储逻辑块地址的映射。在图1中,两个连接130、132用于提供四个步骤的处理以便取出数据到文件系统客户端114。所述客户端114查询所述元数据服务器110以便获得文件属性及其在虚拟存储中的位置116,其中所述虚拟存储由数据服务器120管理。然后,在独立的数据连接中,所述客户端114很可能经由独立的网络请求来自于数据服务器120的数据。所有这些活动都在客户端114上的可安装的文件系统中进行,从而所述客户端的应用程序看不到差别。
所述客户端114包括文件系统解释器(未示出),用于翻译由元数据服务器110服务的客户端114的文件系统的视图。所述元数据服务器110把元数据服务器数据结构中的指针转发至客户端114。元数据服务器数据结构指向数据服务器120上的实际数据块。所述元数据服务器数据结构充当客户端114的元文件系统。所述客户端114使用其文件系统解释器来解释所述元数据服务器数据结构,以便产生涉及实际数据块的文件系统元数据。由此,客户端114上的文件系统解释器根据元数据服务器110来确定数据块位于数据服务器120的什么位置,并且向数据服务器120做出原始(raw)块请求117。所述数据服务器120返回请求数据118。
在图1中举例说明的系统体系结构提供了客户端114上的可安装的文件系统,安装在客户端114上的存储存取驱动程序,智能元数据服务器110,以及处于数据服务器120的产品硬盘驱动器(HDD)存储附件。图1中举例说明的系统体系结构还使用了典型的存储网络基础结构,诸如交换机、电缆、主机总线适配器(HBA)等等。
图1中举例说明的系统体系结构的优点包括在元数据服务器110的存储虚拟化以及管理,以客户端连接速度对数据服务器120的大文件存取以及数据服务器120具有JBOD(Just a Bunch Of Disks)智能水平的需要。文件系统语义优点包括在元数据服务器110的可管理性以及复制服务,同时不需要改变客户端114的应用程序。
然而,图1中举例说明的系统体系结构具有几个消极方面。首先,要求客户端114的文件系统的基础的根本改变。图1中举例说明的系统体系结构还要求两个完全同步事务来实现数据传送。图1中举例说明的系统体系结构的典型实现方式经由IP LAN(网际协议局域网)来设置元数据连接130,并且经由光纤信道SAN(存储区网络)来设置数据服务器连接132。另一缺点在于数据递送与正发布请求的线程同步。这通常由多线程来处理,以便每一线程环境等待操作系统(OS)服务的数据请求。尽管如此,数据传送仍在客户端114处的操作系统的控制下,其中所述客户端114具有隐含的所有性能障碍,例如页面大小存取粒度、上下文切换以及中断处理开销、潜在的额外复制操作、应用程序和OS之间的双高速缓存问题。此外,客户端被限制在标准OS文件系统接口或者直接存储块接口。
图2举例说明了用于提供文件数据服务的第二种体系结构200,其中元数据由独立于服务实际文件块数据的实体的实体来服务。在图2中,存储虚拟化在元数据服务器210被控制。客户端214请求212来自于处于元数据服务器210的存储虚拟化解释器的数据。然后,所述元数据服务器210对其拥有的存储器220做出实际数据请求217。然后,通过元数据服务器210把数据响应218从数据服务器220集中回客户端214。客户端214的文件系统不需要改变,不过其存储存取驱动程序将改变以便将元数据服务器虚拟化设备标识为存储目标。
图2中举例说明的第二体系结构的对象包括被安装在客户端214上的存储存取驱动程序、智能元数据服务器210、产品HDD存储附件和典型存储网络基础结构(诸如交换机、电缆、HBA等等)。图2中举例说明的第二体系结构的优点包括在元数据服务器210的存储虚拟化和管理,并且允许数据服务器220只具有JBOD智能水平。客户端214的应用程序也未被改变。
尽管如此,图2中举例说明的第二体系结构还包括几个消极方面。首先,图2中举例说明的第二体系结构要求单个同步事务(从客户端的角度)以便实现数据传送。此外,典型实现方式经由IP LAN来设置元数据连接230,并且经由光纤信道SAN设置数据连接232。然而,数据递送与正发布请求的线程同步,并且通常通过多线程来处理,以便每一线程环境等待OS服务的数据请求。更进一步讲,数据传送仍然在具有如上所述的隐含的所有性能障碍的操作系统的控制下。所述元数据服务器210现在还必须是高吞吐量的可堆叠的存储切换,或者所述体系结构将是不可扩展的。此外,客户端214被限制在标准OS文件系统接口或者直接存储块接口。
正如可以从图1-2中举例说明的体系结构所看到的那样,使用元数据服务器的这种系统目前要求客户端操作系统提供数据控制,和/或所述系统未能以数据服务器连接速度提供文件存取。由此,本发明提供了具有元数据存储虚拟化并且以数据服务器连接速度进行数据存取的分布式文件服务体系结构。本发明允许执行元数据服务器所期望的SAN速度的I/O传送,同时实现那些I/O传送的客户端开销的空前减少。
图3举例说明了根据本发明实施例的存储系统体系结构300。图3中举例说明的存储系统使用元数据服务器310来提供文件数据服务,其中所述元数据服务器310独立于用于服务实际文件块数据的数据服务器320。在图3中,存储虚拟化在元数据服务器310被控制。所述客户端314利用数据目标位置312经由操作通道340向元数据服务器310提出文件存取请求。所述元数据服务器310请求来自于元数据服务器310中的存储虚拟化解释器的数据。然后,所述元数据服务器310向数据服务器320提供RDMA I/O操作细节342。此后,所述数据服务器320启动I/O。远程直接存储器存取344用于在数据服务器320和客户端314上的缓冲器之间传送数据。当I/O完成时,所述数据服务器320向元数据服务器310发送完成通知346。然后,所述元数据服务器310向客户端314发送表示完成会话(session)的文件存取响应348。
此过程通过基于文件的RDMA协议(FRP)会话350来完成。所述客户端314向元数据服务器310告知文件存取协议。直接存取文件系统(DAFS)是文件存取协议的一个具体例子。所述客户端314包括客户端文件存取堆栈352,所述客户端文件存取堆栈352包括应用程序353、FRP客户端和适配层354以及RDMA存取驱动程序/DS地址虚拟化355。根据本发明的存储系统体系结构使用DAFS客户端-服务器连接。虽然将参照DAFS解释本发明,但是不意味着把本发明限制为DAFS。倒不如说,可以使用那些用于提供类似功能以便实现相同结果的任何文件存取协议。
在元数据服务器310实现分布式远程直接存储器存取(RDMA)文件服务体系结构,并且在数据服务器320实现RDMA引擎370。所述元数据服务器310具有元数据服务器堆栈360,其包括FRP服务器361、RDMA交换协议引擎362以及RDMA存取驱动程序/DS地址虚拟化363。数据服务器320包括数据服务器堆栈370,其用于提供RDMA交换协议引擎371、RDMA启动器引擎372以及RDMA存取驱动程序/DS地址虚拟化373。
元协议允许RDMA I/O操作启动细节和完成通知的交换。例如,对于来自于所述元数据服务器的每个I/O而言,处于数据服务器320中的RDMA引擎370可以接收I/O标记、连接id、客户端、客户端存储器位置、客户端保护标记、文件位置、文件偏移、字节计数等等。
所述DAFS协议被设计成利用新出现的RDMA互连技术,诸如InfiniBand、虚拟接口(Virtual Interface,VI)以及iWARP。DAFS提供了经由RDMA通道341存取来自于数据服务器320的数据的快速方法。这种RDMA互连技术提供了两个在传统的互连网络上没有发现的基础性新能力。
第一个能力是直接存储器-至-存储器传送。远程直接存储器存取(RDMA)是一个计算机利用对存储器总线带宽和CPU处理开销的最小需求将信息直接置于另一计算机存储器中、同时保持存储器保护机制的能力。远程过程调用(RPC)消息协议提供了两个不同的结构:调用消息和应答消息(即,RPC调用消息和RPC应答消息)。客户端314使用这些消息来对网络服务程序做出远程过程调用并且接收包含过程执行结果的应答。通过为远程过程提供唯一规范,RPC可以把应答消息与每一调用(或者请求)消息相匹配。RDMA允许成批数据绕过正常协议处理并且在通信机器上适当定位的缓冲器之间直接传送。
第二个能力是直接应用程序存取,其中应用程序处理可以在操作系统不介入的情况下直接向RDMA适应的网络接口排队数据传送操作。由此,DAFS允许应用程序服务器集群有效地共享数据,同时防止通用操作系统强加的开销。
支持诸如虚拟接口(VI)体系结构的互连接口技术的适配器提供了数据直接从适配器上的缓冲器至应用程序缓冲器的直接存储器存取,省略从适配器缓冲器至操作系统网络缓冲器的复制、以及从联网缓冲器到操作系统文件缓冲器的复制。可以经由IP网络、InfiniBand网络、光纤信道网络以及有限数量的专有网络实现。这种适配器可以被实现在如图3中所示的本发明的存储系统体系结构300的部件中。
因为客户端314可以防止为其与传统的文件存取模型相关联的应用程序做出数据复制,所以每一文件存取使用更少的客户端CPU,并且每一文件缓冲器使用更少的客户端存储器。在元数据服务器310实现分布式RDMA文件服务体系结构300,并且在数据服务器320上实现RDMA引擎370,以便实现这些目标。
DAFS客户端-服务器连接由包括三个通道的会话组成。所述客户端在操作通道340上提交所有请求,其中只有所述客户端被允许异步地启动通信。第二通道是反向控制通道343,在其上,元数据服务器310通过RDMA交换协议345启动所有通信。第三通道是RDMA通道341,其中所述数据服务器320为到/来自于客户端314的缓冲器的原始数据传送启动所有通信。所述RDMA通道341实际上只是单向的,并且除了通道建立(setup)外其对于客户端314是不可见的。作为DAFS构造,RDMA通道341仅仅是用于两个RDMA存储存取驱动程序(在客户端314和数据服务器320上的)之间的连接的包装程序(wrapper),在此通道上不存在DAFS级别请求或者响应。RDMA最好由数据服务器320启动,并且对于客户端314而言,其的存在是不可见的。
一旦RDMA传送已经被标记为完成,那么所述元数据服务器310根据例如DAFS协议在操作通道340上提供操作响应。所述操作通道340和RDMA通道341是相同的客户端-服务器会话350的一部分,但是相对于RDMA存储存取驱动程序和适配器,它们是两个独立的RDMA通信端点连接。所述RDMA通道341是从数据服务器320开始的单向的,在传输级除建立外没有协议交换并且在DAFS级别没有会话绑定。
客户端314上的RDMA存取驱动程序355受控于所述体系结构实现者,并且由此可以使用命名空间概括来允许数据服务器320作为一个虚拟地址呈现给FRP客户端和适配层354。由此,FRP实现可以构成从操作通道340连接至元数据服务器310、以及从RDMA通道341至数据服务器320的虚拟地址的会话。
在客户端314,所述RDMA存取驱动程序355允许其缓冲器的直接存取。所述客户端314还包括用于直接存取RDMA启动的适配器的客户端应用程序的FRP客户端和适配层354,并且允许到/来自于应用程序缓冲器的RDMA。
所述元数据服务器310告知所述FRP并且提供数据服务器320上的数据的虚拟化。在此系统中,存在至少两种类型的元数据。首先,存在文件系统元数据,其包括被存储在原始数据块中并且形成目录结构的“inodes”,用于把文件块映射到原始数据块。其次,存在数据块虚拟化元数据,其实质上是“元文件系统”。每一客户端将与一“文件系统解释器”进行通信,所述文件系统解释器最好驻留在元数据服务器处。文件系统解释器也可以驻留在客户端/主机处,但是这要求修改客户端并且因此不是十分有效。
实现基于文件的RDMA协议(FRP)要求向元数据服务器310添加RDMA文件存取部件(RFAC)364。所述RFAC 364充当文件系统解释器。所述RFAC 364把FRP文件系统映射至元数据服务器310的元文件系统。所述RFAC 364是文件服务器,并且还管理用于所述FRP会话的服务器侧连接端点。所述RFAC 364把RDMA文件存取语言翻译为元文件系统语言。然后,所述元数据服务器310提供(为每个请求)到数据服务器320上的原始数据块的映射。RFAC 364与每一数据服务器320的适当的智能RDMA部件374进行通信,以便交换所述会话的RDMA连接通道端点信息和需要的数据交换342的细节。然后,用于该数据服务器320的所述智能RDMA部件374启动直接到/来自客户端的存储器缓冲器的RDMA活动344。在完成时,数据服务器320的智能RDMA部件374通知RFAC 364,并且RFAC 364接着向客户端314答复所述传送已经完成。数据服务器320的智能RDMA部件374可以是特殊的独立控制器、RAID控制器自身的增值特征等等。还需注意的是,所述数据服务器320可以包括RAID控制器。
作为选择,所述智能RDMA部件374可以作为元数据服务器310上的额外的软件部件来实现。虽然把所述智能RDMA部件374作为数据服务器堆栈370的一部分来举例说明,但是所述智能RDMA部件374可以是元数据服务器堆栈360的一部分。
作为另外的替代方式,所述智能RDMA部件374可以作为客户端/主机314处的可安装部件来实现。由此,即便在图3中将智能RDMA部件374作为数据服务器堆栈370的一部分来举例说明,所述智能RDMA部件也可以是客户端堆栈352的一部分。即使智能RDMA部件374是作为处于客户端/主机314的可安装部件实现的,RDMA也仍然被用于从数据服务器320向客户端314传送数据,由所述智能RDMA部件374控制它。在该情况下,所述智能RDMA 374向由数据服务器320提供的原始块存储发布命令。
图4举例说明了作为根据本发明的客户端堆栈400的一部分的智能RDMA部件。在操作中,客户端414向元数据服务器410发布FRP命令412,所述元数据服务器410包括RDMA文件存取部件(RFAC)464,用作用于体系结构中的FRP的控制连接端点服务器。所述RFAC464与标准元数据服务器软件部件通信,以便发现数据服务器420上的哪些数据块将被需要以服务于所述请求。然后,所述RFAC 464把数据块信息发送回到处于客户端的智能RDMA部件474。然后,处于客户端414的智能RDMA部件474通过发布带有作为自变量的客户端目标缓冲器的用户级联网命令418来启动来自于数据服务器的RDMA。所述RDMA传送然后被启动。当RDMA完成时,从用户级联网接口发布回叫信号(callback)。在RDMA完成时,所述智能RDMA部件474必须在元数据服务器410、即所述RFAC 464,并且在客户端414、即客户端的FRP客户端476触发完成。所述智能RDMA部件474可以向处于元数据服务器410的RFAC 464发送完成通知480,然后由RFAC 464向客户端414发送传统的FRP完成通知482,或者向元数据服务器410上的RFAC 464发送完成通知480,同时向客户端414发送完成通知484。
因为所述智能RDMA部件474必须知晓关注流量控制序号的元数据服务器410和客户端414之间的控制连接,所以第二过程具有不利方面。这是不同类型的连接语义,其实际上依照与FRP客户端476和智能RDMA部件474之间的协议不同的协议来触发良好形成的消息。然而,它保存某些延迟。
再次参照图3,由于由来自于其他客户端的写入或者其他原因(例如,文件系统移植、恢复操作等)而引起的元数据改变,所述元数据服务器310使客户端的高速缓存无效。如果所述高速缓存层是隔片(shim)或者库,那么没有驻留线程来响应由元数据服务器310启动的高速缓存无效。这由反向控制或者辅助操作通道343(DAFS将其称为‘反向控制通道’)来处理,其考虑了启动异步递送到客户端314的操作的服务器(在该情况下,是元数据服务器310)。然后,客户端314的高速缓存库的职责是检验此通道343是否有来自于元数据服务器310的通知:在使用高速缓存的元数据以前强制全部或者部分的高速缓存无效。
所述数据服务器320包括RDMA引擎370(例如,所述RDMA交换协议引擎、RDMA启动器引擎和RDMA存取驱动程序/DS地址虚拟化),其位于数据服务器320的控制器(未示出)处或者位于其附近,其与元数据服务器310交互以便获取连接和客户端目标缓冲器信息,启动对客户端缓冲器的RDMA读和写以便实现数据传送,并且向元数据服务器310发送RDMA操作的完成通知。RDMA引擎370可以被设置于每一数据服务器320处,并且能够管理RDMA存储存取端点、RDMA交换协议端点和单向RDMA FRP通道端点。所述RDMA引擎可以被设置在存储附件内部的非常小的服务器引擎上,或设置在RDMA启用的适配器之后并对其进行控制,或者被设置在外部。然而,在外部设置RDMA引擎370提出了可扩展性和带宽问题。
数据服务器320可以刚好是带有满足光纤信道数据请求的RAID控制器前端的LUN(逻辑单元号)的集合。所述数据服务器320不管理元数据。由此,所述数据服务器320没有文件块的概念,只有LUN块的概念,LUN块正好是由RAID控制器作为LUN给出的逻辑阵列部分。因此,所述数据服务器320使用产品HDD存储附件。
如上所述,所述客户端314将具有与元数据服务器310的FRP连接。所述FRP连接必须依照连贯方式与用于RDMA的数据服务器手动切断。DAFS规定了作为同一会话的一部分的额外通道。这些通道中的一个可以与通过表示所有数据服务器320的虚拟地址设置的数据服务器320建立,如此使得DAFS客户端对于其会话具有至少两个连接,一个是与元数据服务器310的连接用于元数据存取和I/O启动,而另一个是与设置虚拟地址的客户端314的入站通道的连接,它是到客户端314的入站通道,即其中由数据服务器320启动传送的连接。
例如,对于文件读取来说,客户端314位于SAN上,并且向请求RDMA读取的元数据服务器310告知FRP。所述客户端314发送其本机缓冲器信息以及保护标记,如在FRP 312中所表明的那样。所述元数据服务器310(在满足正常元数据请求之后,为此而设计的)向数据服务器320中继RDMA信息342。所述数据服务器320直接向客户端314的缓冲器RDMA 344所述文件数据,并且向元数据服务器310应答346所述读取已经被满足。所述元数据服务器310向客户端314发送FRP读取响应348。因为FRP通常是异步输入/输出启动器,所以轻微增加的等待时间不是问题,但是就应用程序性能而言,减少的客户端开销却是巨大的优点。由此,RDMA从数据服务器320向客户端314进行以便传递文件块数据(用于读取),并且获得文件块数据(服务器启动的RDMA读取,响应于客户端FRP写入请求,即,客户端RDMA写入)。
元数据递送可以经由客户端和元数据服务器之间的标准请求/响应RPC类型的信息交换来提供,并且可以经由从元数据服务器到客户端的元数据的RDMA递送来提供。对于较大块的元数据、诸如较大目录列表的递送、长存取控制列表标识的递送、或者扩展的文件属性规范来说,RDMA是优选的。由此,所述客户端可以向元数据服务器310提出元数据请求382,规定足够大以便保存所请求的信息的应答缓冲器。所述元数据服务器310然后能把元数据384RDMA到缓冲器中,并且利用递送操作状态的正常消息来响应所述客户端314。
正如可以看到的那样,即便本发明的存储系统体系结构包括兼作数据服务器320的元数据服务器310,元数据服务器310还是独立于服务于块存储的装置320的逻辑单元,其中所述数据服务器320使用代表元数据服务器310和数据服务器320的同一服务器上的软件模块。此文件系统的客户端314具有可安装文件系统(IFS)驱动程序,其把应用程序数据请求翻译为元数据的文件系统请求以及元数据服务器310的文件位置,其位于同一存储区域网络(SAN)上。
数据存取在一个FRP会话350上发生,所述一个FRP会话350由操作通道340和RDMA通道341组成。这样能够进行五个步骤的处理来进行数据存取,如图3中所示那样,客户端看上去像一个数据请求/响应对。以传输速度从数据服务器320到客户端314上的应用程序缓冲器进行数据传送,这由数据服务器320上的RDMA引擎堆栈370启动,象由元数据服务器310的元数据服务器FRP服务器堆栈360控制的那样。这样实现了元数据服务器310的存储虚拟化,同时允许以数据服务器320的连接速度进行客户端314的数据存取,并且防止向客户端OS给予数据控制的内在问题。
支持第三方以及客户端启动的RDMA通道341。对于独立的RDMA连接来说,客户端314可以直接与数据服务器320或者元数据服务器310进行交互。所述连接是独立的通道,但是是同一会话的一部分。RDMA可以在客户端314和元数据服务器310之间经由用于该会话的主操作通道连接3340、以及经由存在于客户端和第三方之间的另一个通道进行,所述第三方例如是数据服务器320。通道340、341(将他们连系为同一总体会话350)的分离允许RDMA在数据服务器320和客户端314之间与操作协同进行。所述会话识别符将被作为元协议的一部分在元数据服务器310和数据服务器320之间传递,以便数据服务器320可以在面对客户端314处的连接验证时进行RDMA。
所述客户端314仍然可以启动RDMA。虽然最好是只允许数据服务器320或者元数据服务器310启动的RDMA,例如,出于服务器缓冲器安全性和服务器性能/管理原因,客户端启动的RDMA可以跨越任何所论述的通道来进行。实际上,如上面所建议的那样,由客户端314进行的写入可以被设置为RDMA写入而不是RDMA读取,即,这种写入本质上是客户端启动的。
必须考虑在这些RDMA通道上的客户端侧高速缓存的后果。元数据会占据客户端的高速缓存的重要位置,以便当遍历目录树时,增大目录查找的速度,或者保存存储控制列表以增大对于各种操作的用户权限确定速度。因为它降低了网络和服务器负载,故而这是合乎需要的。所述FRP客户端354将具有其自己的元数据高速缓存,或者使用第三方的高速缓存隔片(shim)层或者库来处理如上所述的这些活动。
当启动到客户端314的RDMA时,由数据服务器320看来,存在与虚拟地址有关的问题。这特别关系到数据服务器地址虚拟化的管理。如上所述,一个独立通道用于数据服务器-至-客户端的RDMA341,其是一个总体会话350的一部分,所述会话负责客户端314和全部元数据服务器310/数据服务器320集之间的文件存取。当每一数据服务器320将必然具有不同的传输层地址时,所述客户端314可以具有一个持续的RDMA连接341用于从全部范围的数据服务器320到来的RDMA。然而,本发明的存储系统体系结构不依赖这种虚拟化。
图5根据本发明实施例举例说明了客户端软件栈的附加细节以及按照RDMA传输(RDMA-T)500的虚拟寻址问题。参照客户端文件存取堆栈510,地址虚拟化是由RDMA端点地址虚拟化层(AV层)512来实现的。所述AV层库512与其下面的RDMA传输端点供应商层(EP层)514交互,以便向FRP客户端516呈现单个连接视图。所述AV层512可以由FRP客户端516提供虚拟地址。所述虚拟地址是一个配置项。存在两种可能的用于解析所述虚拟地址的方法。首先,作为配置细节,所述AV层512可以查阅虚拟地址翻译的设置文件。其次,所述AV层512可以联系RDMA-T网络520上的RDMA-T命名服务器(例如,元数据服务器524)以便解析所述虚拟地址。在这第二种方法中,命名服务器524的所述RDMA-T地址522将会是一个配置选项。
所述AV层512然后可以开启与虚拟地址涉及的RDMA-T地址530-534集合的持续RDMA连接。由于RDMA操作不会导致消息在EP层514上发送/接收,所以AV层512只需要考虑用作RDMA目标的缓冲器是否向所有它管理的连接终点进行了注册。这增加了缓冲器注册的等待时间,但是大部分的应用程序将在初始化时为RDMA注册缓冲器,然后此后变得迟钝,以便防止在关键路径中出现该操作的已经很高的成本。如果连接断开,则所述AV层512也许会或者也许不会试图重建它——这是一个策略确定点。如果一次或者两次重试失败,那么AV层512可以假定上层516将已经处理了所述结果。如果最后的或者唯一的连接断开,那么AV层512必须把断开连接通知递送至FRP客户端516。
仍参照图5,其还示出了第二种实现方式。所述AV层512和EP层514可以被合并以便形成作为一个组合的新层,即,虚拟端点层或者VEP层550。这假定控制所述VEP层550的实现以便允许虚拟寻址和解析。然而,对于这种实现而言,存在障碍。简单地讲,这种障碍包括验证问题和相对于虚拟地址实现缓冲器注册。
首先,验证问题涉及确定VEP层550如何获知来自于给定数据服务器540的RDMA请求是有效的而不是攻击。对于在到元数据服务器524的原始请求中提及的应用程序缓冲器而言,所述数据服务器540必须获知缓冲器注册关键字。所述数据服务器540还必须获知元数据服务器524的连接标识符,以便不仅可以使其能够对正确的客户端544进行RDMA,而且可以使其与验证其客户端544的存取。元数据服务器524的连接标识符是由元数据服务器524经由元数据服务器524和数据服务器540之间的RDMA交换协议560发送的。所述元数据服务器524给予数据服务器540其自身端点标识关键字,以便当数据服务器540对客户端544启动RDMA时,它可以传递适当的端点标识符以及缓冲器位置、客户端处理id以及客户端缓冲器注册关键字。
由此,即便所述RDMA没有从与其建立连接的元数据服务器524RDMA-T端点进入到客户端544的VEP层550中,所述客户端544也可以验证所述存取。对于上层来说,这样看起来好像数据服务器540正通过使用其验证欺骗元数据服务器RDMA-T地址522。所述验证可以对照由客户端配置的虚拟地址向数据服务器的RDMA-T地址530-534集合的映射来进行双重核对,其中所述地址必须包括启动RDMA的数据服务器540的RDMA-T地址。这种映射可以通过称为第一种实现方式的相同的两种方法来再次实现,例如,作为配置细节,所述VEP层550查阅虚拟地址翻译的设置文件,或者VEP层550可以联系RDMA-T网络520上的RDMA-T命名服务器(例如,元数据服务器524)以解析所述虚拟地址。此外,在第二种方法中,命名服务器524的所述RDMA-T地址然后将会是一个配置选项。
如上所述,第二障碍是相对于虚拟地址实现缓冲器注册。所述RDMA-T引擎必须确保处于客户端544的缓冲器处于物理存储器,即,其必须是从RDMA-T网络接口直接存储器存取的目标,以及是从元数据服务器524请求RDMA操作的处理的部分地址空间。这是通过向RDMA-T驱动程序518进行注册来实现的,其用客户端OS栓定或者锁定缓冲器存储器,以便使其以所定义的映射保存在物理存储器中,并且在其索引中创建条目,所述索引将那个缓冲器映射到连系缓冲器的处理保护标记、处理id和RDMA-T端点。所述标记是通过注册被返回的。通过与RDMA-T驱动程序518配合在此层中设置虚拟化,来自于数据服务器540的RDMA将呈现适当连接的保护标记,将成为虚拟地址-数据服务器映射集的成员,并且由此将被验证。在缓冲器可以被注册以前,将必须完成虚拟地址到数据服务器地址集映射,如此使得所述虚拟地址是有效的端点。然后,可以创建虚拟端点,其体现了所述映射,并且用作注册处理的索引点。
图6举例说明了在没有硬件限制的情况下本发明的功能600。在图6中,主机610对元数据服务器614提出基于文件的RDMA请求(FRP)612。所述元数据服务器614包括RFAC 616,其用于把RDMA文件存取语言翻译为元文件系统语言。例如处于主机610或者元数据服务器614中的文件系统解释器620提供原始数据块信息。RDMA通道端点和数据细节被提供给智能RDMA部件630。可以驻留在主机610、元数据服务器614或者数据服务器(未示出)中的智能RDMA部件630控制在主机610处的存储器和数据服务器(未示出)之间的RDMA传送650。
图7举例说明了根据本发明的存储系统部件500,其中参照图3-6示出的过程可以被有形地包含在计算机可读介质或者载体中,例如包含在图5中所示的一个或多个固定和/或可移除的数据存储装置568中,或者包含在其他数据存储或数据通信装置中。表示在可移除的数据存储装置568上包含的处理的计算机程序590可以被载入存储器592或者存储系统部件500中、例如处理器(未示出)中用于执行,以便配置图5的存储系统部件500。计算机程序590包括指令,当由图5的存储系统部件500读取并且执行所述指令时,使存储系统部件500执行实现本发明的步骤或者元件所必须的步骤。本领域技术人员将认识到的是,存储系统部件500可以是客户端、元数据服务器、数据服务器、控制器等等。此外,只有每一部件要求的处理需要被载入所述部件中。
因此,本发明提供了许多优点。例如,在元数据服务器处对存储进行虚拟化和管理,通过在元数据服务器处的可管理性和复制服务使文件系统语义优点得以增长。在实现者控制点、即RDMA存储存取驱动程序处,存取也被虚拟化。此外,以客户端RDMA通道的速度进行对数据服务器的所有文件存取,并且数据服务器只需要JBOD智能级即可——增加运行RDMA引擎堆栈的控制器。数据传送是应用程序控制的。通过事件驱动的和异步的完成通知体系结构可以实现完全的异步。所述文件系统接口不再通过对OS的分块调用,因此客户端不再需要多线程来有效地进行流水线存取请求,并且为了可靠性和用户定制化,可以拥有它们自身的异步文件系统接口。OS性能障碍被忽略了,例如,存取大小粒度现在只受传输的能力和传输驱动程序来限制,避免了上下文切换和中断处理开销,并且避免了额外的复制操作和双重高速缓存。
已经为了举例说明和描述的目的给出了本发明的示例性实施例的先前描述。这不意味着穷举或者把本发明限制为所公开的具体形式。根据上述教义能够进行许多修改和变化。其意图是,本发明的范围不由这种详细说明来限制,而是由所附权利要求书来限定。
Claims (16)
1.一种元数据服务器,包括:
用于存储与数据服务器上的数据相关联的元数据的存储器;
用于接收来自于主机的输入/输出请求的装置;以及
用于根据所述元数据向数据服务器发布输入/输出操作细节,以便控制直接在主机处的存储器和数据服务器之间的文件块数据传送的装置,
其中所述输入/输出操作细节用于建立所述数据服务器与由所述输入/输出操作细节标识的主机处的存储器地址的直接连接。
2.如权利要求1所述的元数据服务器,其中所述输入/输出请求是请求直接从主机处的存储器地址向数据服务器写入数据的请求。
3.如权利要求1所述的元数据服务器,其中所述输入/输出请求是请求从数据服务器直接向主机处的存储器读取由输入/输出操作细节涉及的数据的请求。
4.如权利要求1所述的元数据服务器,还包括用于虚拟化位于所述数据服务器的文件块数据的装置。
5.如权利要求1所述的元数据服务器,其中所述输入/输出请求是对元数据的请求,所述元数据服务器还包括用于把所请求的元数据返回至主机处的存储器地址的装置。
6.如权利要求1所述的元数据服务器,还包括用于在主机和元数据服务器之间经由RDMA通道返回所请求的元数据的装置。
7.如权利要求1所述的元数据服务器,还包括:
用于接收来自于数据服务器的完成通知的装置;以及
用于向主机发布表示完成与输入/输出请求相关联的会话的文件存取响应的装置。
8.如权利要求1所述的元数据服务器,还包括用于当与高速缓存的数据相关联的元数据在所述元数据服务器改变时,在主机处使高速缓存的数据无效的装置。
9.如权利要求1所述的元数据服务器,还包括用于把来自于主机的输入/输出请求从RDMA文件存取语言翻译为元数据服务器的元文件系统语言,以便允许输入/输出请求被映射到数据服务器上的原始数据块的装置。
10.如权利要求1所述的元数据服务器,还包括智能RDMA部件,用于控制文件块数据在主机的存储器地址和数据服务器之间的RDMA传送。
11.一种数据服务器,包括:
用于在其上存储文件块数据的至少一个存储装置;
用于从元数据服务器接收与主机的输入/输出请求相关联的输入/输出操作细节的装置;
用于在所述元数据服务器的控制下建立与由所接收的输入/输出操作细节标识的主机处的存储器地址的直接连接的装置;以及
用于直接在主机的存储器地址和至少一个存储装置之间传送由接收到的输入/输出操作细节涉及的文件块数据的装置。
12.如权利要求11所述的数据服务器,还包括用于向元数据服务器提供完成通知,以便发信号通知主机的存储器地址和存储装置之间的文件数据传送已经完成的装置。
13.如权利要求11所述的数据服务器,还包括存储控制器,用于将至少一个存储装置呈现为逻辑单元号,并且用于通过处理主机的存储器地址和至少一个存储装置之间的文件块数据来满足所述输入/输出请求。
14.一种存储网络,包括:具有用于在处理输入/输出请求中使用的第一存储器的主机,所述主机被配置为用于发布所述输入/输出请求;耦合至所述主机的如权利要求1至10中任一项所述的元数据服务器;以及可操作地耦合至所述主机和所述元数据服务器的如权利要求11-13中任一项所述的数据服务器。
15.一种在具有元数据存储虚拟化的分布式文件服务体系结构中允许以数据服务器连接速度进行数据存取的方法,所述方法包括如下步骤:存储与数据服务器上的数据相关联的元数据;并且响应于输入/输出请求,根据所述元数据向数据服务器发布输入/输出操作细节,以便控制直接在主机处的存储器和数据服务器之间的文件块数据传送,其中所述输入/输出操作细节用于建立所述数据服务器与由所述输入/输出操作细节标识的主机处的存储器地址的直接连接。
16.一种执行用于在具有元数据虚拟化的分布式文件服务体系结构中以数据服务器连接速度提供数据存取的方法,所述方法包括如下步骤:在包括至少一个存储装置的数据服务器上存储文件块数据;在数据服务器从元数据服务器接收与主机的输入/输出请求相关联的输入/输出操作细节;在元数据服务器的控制下建立从数据服务器到由接收到的输入/输出操作细节标识的主机处的存储器地址的直接连接;并且直接在主机的存储器地址和数据服务器之间传送由接收到的输入/输出操作细节涉及的文件块数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/431,413 | 2003-05-07 | ||
US10/431,413 US7610348B2 (en) | 2003-05-07 | 2003-05-07 | Distributed file serving architecture system with metadata storage virtualization and data access at the data server connection speed |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1771495A CN1771495A (zh) | 2006-05-10 |
CN100517308C true CN100517308C (zh) | 2009-07-22 |
Family
ID=33416451
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004800024212A Active CN100517308C (zh) | 2003-05-07 | 2004-05-06 | 元数据服务器、数据服务器、存储网络及数据存取方法 |
Country Status (6)
Country | Link |
---|---|
US (4) | US7610348B2 (zh) |
EP (1) | EP1620813A2 (zh) |
KR (1) | KR100754306B1 (zh) |
CN (1) | CN100517308C (zh) |
TW (1) | TWI343010B (zh) |
WO (1) | WO2004099989A2 (zh) |
Families Citing this family (277)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6658091B1 (en) | 2002-02-01 | 2003-12-02 | @Security Broadband Corp. | LIfestyle multimedia security system |
JP2004192179A (ja) * | 2002-12-10 | 2004-07-08 | Fujitsu Ltd | Rdma機能を持ったnicをハードウェアメモリ保護を行わないで、専用のモニタプロセスなしにシステムに組み込むための装置 |
US7610348B2 (en) | 2003-05-07 | 2009-10-27 | International Business Machines | Distributed file serving architecture system with metadata storage virtualization and data access at the data server connection speed |
US7383444B2 (en) * | 2003-05-27 | 2008-06-03 | Canon Kabushiki Kaisha | Information processing system, information processing apparatus, method of controlling the information processing apparatus, disk array device, method of controlling the disk array device, method of controlling display of the disk array device, and control programs for implementing the methods |
EP1528478A1 (en) * | 2003-11-03 | 2005-05-04 | Sun Microsystems, Inc. | Generalized addressing scheme for remote direct memory access enabled devices |
JP2005148868A (ja) * | 2003-11-12 | 2005-06-09 | Hitachi Ltd | ストレージ装置におけるデータのプリフェッチ |
US9213609B2 (en) * | 2003-12-16 | 2015-12-15 | Hewlett-Packard Development Company, L.P. | Persistent memory device for backup process checkpoint states |
JP2005182122A (ja) * | 2003-12-16 | 2005-07-07 | Alpine Electronics Inc | リムーバブル記録媒体及びそのファイル制御方法 |
US11916870B2 (en) | 2004-03-16 | 2024-02-27 | Icontrol Networks, Inc. | Gateway registry methods and systems |
US10142392B2 (en) | 2007-01-24 | 2018-11-27 | Icontrol Networks, Inc. | Methods and systems for improved system performance |
US20090077623A1 (en) | 2005-03-16 | 2009-03-19 | Marc Baum | Security Network Integrating Security System and Network Devices |
GB2428821B (en) | 2004-03-16 | 2008-06-04 | Icontrol Networks Inc | Premises management system |
US11489812B2 (en) | 2004-03-16 | 2022-11-01 | Icontrol Networks, Inc. | Forming a security network including integrated security system components and network devices |
US10062273B2 (en) | 2010-09-28 | 2018-08-28 | Icontrol Networks, Inc. | Integrated security system with parallel processing architecture |
US11159484B2 (en) | 2004-03-16 | 2021-10-26 | Icontrol Networks, Inc. | Forming a security network including integrated security system components and network devices |
US10721087B2 (en) | 2005-03-16 | 2020-07-21 | Icontrol Networks, Inc. | Method for networked touchscreen with integrated interfaces |
US10382452B1 (en) | 2007-06-12 | 2019-08-13 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US11316958B2 (en) | 2008-08-11 | 2022-04-26 | Icontrol Networks, Inc. | Virtual device systems and methods |
US11368429B2 (en) | 2004-03-16 | 2022-06-21 | Icontrol Networks, Inc. | Premises management configuration and control |
US10156959B2 (en) | 2005-03-16 | 2018-12-18 | Icontrol Networks, Inc. | Cross-client sensor user interface in an integrated security network |
US10444964B2 (en) | 2007-06-12 | 2019-10-15 | Icontrol Networks, Inc. | Control system user interface |
US11244545B2 (en) | 2004-03-16 | 2022-02-08 | Icontrol Networks, Inc. | Cross-client sensor user interface in an integrated security network |
US11343380B2 (en) | 2004-03-16 | 2022-05-24 | Icontrol Networks, Inc. | Premises system automation |
US10522026B2 (en) | 2008-08-11 | 2019-12-31 | Icontrol Networks, Inc. | Automation system user interface with three-dimensional display |
US10339791B2 (en) | 2007-06-12 | 2019-07-02 | Icontrol Networks, Inc. | Security network integrated with premise security system |
US11113950B2 (en) | 2005-03-16 | 2021-09-07 | Icontrol Networks, Inc. | Gateway integrated with premises security system |
US11582065B2 (en) | 2007-06-12 | 2023-02-14 | Icontrol Networks, Inc. | Systems and methods for device communication |
US10348575B2 (en) | 2013-06-27 | 2019-07-09 | Icontrol Networks, Inc. | Control system user interface |
US9531593B2 (en) | 2007-06-12 | 2016-12-27 | Icontrol Networks, Inc. | Takeover processes in security network integrated with premise security system |
US9729342B2 (en) | 2010-12-20 | 2017-08-08 | Icontrol Networks, Inc. | Defining and implementing sensor triggered response rules |
US8635350B2 (en) | 2006-06-12 | 2014-01-21 | Icontrol Networks, Inc. | IP device discovery systems and methods |
US8963713B2 (en) | 2005-03-16 | 2015-02-24 | Icontrol Networks, Inc. | Integrated security network with security alarm signaling system |
US11368327B2 (en) | 2008-08-11 | 2022-06-21 | Icontrol Networks, Inc. | Integrated cloud system for premises automation |
US11277465B2 (en) | 2004-03-16 | 2022-03-15 | Icontrol Networks, Inc. | Generating risk profile using data of home monitoring and security system |
US7711796B2 (en) | 2006-06-12 | 2010-05-04 | Icontrol Networks, Inc. | Gateway registry methods and systems |
US9141276B2 (en) | 2005-03-16 | 2015-09-22 | Icontrol Networks, Inc. | Integrated interface for mobile device |
US11677577B2 (en) | 2004-03-16 | 2023-06-13 | Icontrol Networks, Inc. | Premises system management using status signal |
US10237237B2 (en) | 2007-06-12 | 2019-03-19 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US11811845B2 (en) | 2004-03-16 | 2023-11-07 | Icontrol Networks, Inc. | Communication protocols over internet protocol (IP) networks |
US10200504B2 (en) | 2007-06-12 | 2019-02-05 | Icontrol Networks, Inc. | Communication protocols over internet protocol (IP) networks |
US11201755B2 (en) | 2004-03-16 | 2021-12-14 | Icontrol Networks, Inc. | Premises system management using status signal |
US7945657B1 (en) * | 2005-03-30 | 2011-05-17 | Oracle America, Inc. | System and method for emulating input/output performance of an application |
US7546631B1 (en) * | 2004-04-30 | 2009-06-09 | Sun Microsystems, Inc. | Embedded management system for a physical device having virtual elements |
US7124143B2 (en) | 2004-05-10 | 2006-10-17 | Hitachi, Ltd. | Data migration in storage system |
EP1769395A2 (en) * | 2004-05-21 | 2007-04-04 | Computer Associates Think, Inc. | Object-based storage |
US7779081B2 (en) * | 2004-07-16 | 2010-08-17 | International Business Machines Corporation | Method, system, and program for forwarding messages between nodes |
US9264384B1 (en) | 2004-07-22 | 2016-02-16 | Oracle International Corporation | Resource virtualization mechanism including virtual host bus adapters |
JP4438582B2 (ja) * | 2004-09-22 | 2010-03-24 | 株式会社日立製作所 | データ移行方法 |
US7464124B2 (en) | 2004-11-19 | 2008-12-09 | International Business Machines Corporation | Method for autonomic data caching and copying on a storage area network aware file system using copy services |
US7383406B2 (en) * | 2004-11-19 | 2008-06-03 | International Business Machines Corporation | Application transparent autonomic availability on a storage area network aware file system |
US7457930B2 (en) | 2004-11-19 | 2008-11-25 | International Business Machines Corporation | Method for application transparent autonomic data replication improving access performance for a storage area network aware file system |
US7610307B2 (en) * | 2004-11-30 | 2009-10-27 | Microsoft Corporation | Method and system of detecting file system namespace changes and restoring consistency |
US7496565B2 (en) * | 2004-11-30 | 2009-02-24 | Microsoft Corporation | Method and system for maintaining namespace consistency with a file system |
US20170180198A1 (en) | 2008-08-11 | 2017-06-22 | Marc Baum | Forming a security network including integrated security system components |
US20120324566A1 (en) | 2005-03-16 | 2012-12-20 | Marc Baum | Takeover Processes In Security Network Integrated With Premise Security System |
US20110128378A1 (en) | 2005-03-16 | 2011-06-02 | Reza Raji | Modular Electronic Display Platform |
US10999254B2 (en) | 2005-03-16 | 2021-05-04 | Icontrol Networks, Inc. | System for data routing in networks |
US11496568B2 (en) | 2005-03-16 | 2022-11-08 | Icontrol Networks, Inc. | Security system with networked touchscreen |
US9306809B2 (en) | 2007-06-12 | 2016-04-05 | Icontrol Networks, Inc. | Security system with networked touchscreen |
US11615697B2 (en) | 2005-03-16 | 2023-03-28 | Icontrol Networks, Inc. | Premise management systems and methods |
US11700142B2 (en) | 2005-03-16 | 2023-07-11 | Icontrol Networks, Inc. | Security network integrating security system and network devices |
US20060271579A1 (en) * | 2005-05-10 | 2006-11-30 | Arun Batish | Storage usage analysis |
US7636801B1 (en) * | 2005-06-20 | 2009-12-22 | Symantec Operating Corporation | Coordination of quality of service in a multi-layer virtualized storage environment |
US7363457B1 (en) | 2005-07-21 | 2008-04-22 | Sun Microsystems, Inc. | Method and system for providing virtualization data services for legacy storage devices |
US9813283B2 (en) | 2005-08-09 | 2017-11-07 | Oracle International Corporation | Efficient data transfer between servers and remote peripherals |
US8560503B1 (en) * | 2006-01-26 | 2013-10-15 | Netapp, Inc. | Content addressable storage system |
US7756943B1 (en) * | 2006-01-26 | 2010-07-13 | Symantec Operating Corporation | Efficient data transfer between computers in a virtual NUMA system using RDMA |
US7702743B1 (en) | 2006-01-26 | 2010-04-20 | Symantec Operating Corporation | Supporting a weak ordering memory model for a virtual physical address space that spans multiple nodes |
CN100423491C (zh) * | 2006-03-08 | 2008-10-01 | 杭州华三通信技术有限公司 | 虚拟化网络存储系统及其网络存储设备 |
JP4175379B2 (ja) * | 2006-04-25 | 2008-11-05 | 日本電気株式会社 | ファイル共有方法およびファイル共有システム |
US10079839B1 (en) | 2007-06-12 | 2018-09-18 | Icontrol Networks, Inc. | Activation of gateway device |
US20080033980A1 (en) * | 2006-08-03 | 2008-02-07 | Jaroslav Andrew Delapedraja | System and method for automatically adjusting file system settings |
CN101170416B (zh) * | 2006-10-26 | 2012-01-04 | 阿里巴巴集团控股有限公司 | 网络数据存储系统及其数据访问方法 |
US8935302B2 (en) * | 2006-12-06 | 2015-01-13 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume |
US8489817B2 (en) | 2007-12-06 | 2013-07-16 | Fusion-Io, Inc. | Apparatus, system, and method for caching data |
WO2008070814A2 (en) * | 2006-12-06 | 2008-06-12 | Fusion Multisystems, Inc. (Dba Fusion-Io) | Apparatus, system, and method for a scalable, composite, reconfigurable backplane |
US7930263B2 (en) | 2007-01-12 | 2011-04-19 | Health Information Flow, Inc. | Knowledge utilization |
US11706279B2 (en) | 2007-01-24 | 2023-07-18 | Icontrol Networks, Inc. | Methods and systems for data communication |
US7633385B2 (en) | 2007-02-28 | 2009-12-15 | Ucontrol, Inc. | Method and system for communicating with and controlling an alarm system from a remote server |
US8451986B2 (en) | 2007-04-23 | 2013-05-28 | Icontrol Networks, Inc. | Method and system for automatically providing alternate network access for telecommunications |
US20080306818A1 (en) * | 2007-06-08 | 2008-12-11 | Qurio Holdings, Inc. | Multi-client streamer with late binding of ad content |
US10423309B2 (en) | 2007-06-12 | 2019-09-24 | Icontrol Networks, Inc. | Device integration framework |
US11218878B2 (en) | 2007-06-12 | 2022-01-04 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US10523689B2 (en) | 2007-06-12 | 2019-12-31 | Icontrol Networks, Inc. | Communication protocols over internet protocol (IP) networks |
US10616075B2 (en) | 2007-06-12 | 2020-04-07 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US11646907B2 (en) | 2007-06-12 | 2023-05-09 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US11089122B2 (en) | 2007-06-12 | 2021-08-10 | Icontrol Networks, Inc. | Controlling data routing among networks |
US11316753B2 (en) | 2007-06-12 | 2022-04-26 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US11237714B2 (en) | 2007-06-12 | 2022-02-01 | Control Networks, Inc. | Control system user interface |
US10389736B2 (en) | 2007-06-12 | 2019-08-20 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US11423756B2 (en) | 2007-06-12 | 2022-08-23 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US11212192B2 (en) | 2007-06-12 | 2021-12-28 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US10498830B2 (en) | 2007-06-12 | 2019-12-03 | Icontrol Networks, Inc. | Wi-Fi-to-serial encapsulation in systems |
US11601810B2 (en) | 2007-06-12 | 2023-03-07 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US10666523B2 (en) * | 2007-06-12 | 2020-05-26 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US20080313029A1 (en) * | 2007-06-13 | 2008-12-18 | Qurio Holdings, Inc. | Push-caching scheme for a late-binding advertisement architecture |
US20090019223A1 (en) * | 2007-07-09 | 2009-01-15 | Lection David B | Method and systems for providing remote strage via a removable memory device |
US7802071B2 (en) * | 2007-07-16 | 2010-09-21 | Voltaire Ltd. | Device, system, and method of publishing information to multiple subscribers |
US7996482B1 (en) | 2007-07-31 | 2011-08-09 | Qurio Holdings, Inc. | RDMA based real-time video client playback architecture |
US7805373B1 (en) | 2007-07-31 | 2010-09-28 | Qurio Holdings, Inc. | Synchronizing multiple playback device timing utilizing DRM encoding |
US9749712B2 (en) * | 2007-08-20 | 2017-08-29 | The Directv Group, Inc. | Method and apparatus for generating an overlay code for a set top box from an external device |
US11831462B2 (en) | 2007-08-24 | 2023-11-28 | Icontrol Networks, Inc. | Controlling data routing in premises management systems |
US20090144463A1 (en) * | 2007-11-29 | 2009-06-04 | Dell Products L.P. | System and Method for Input/Output Communication |
US7836226B2 (en) | 2007-12-06 | 2010-11-16 | Fusion-Io, Inc. | Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment |
US9519540B2 (en) | 2007-12-06 | 2016-12-13 | Sandisk Technologies Llc | Apparatus, system, and method for destaging cached data |
US8762476B1 (en) | 2007-12-20 | 2014-06-24 | Qurio Holdings, Inc. | RDMA to streaming protocol driver |
US11916928B2 (en) | 2008-01-24 | 2024-02-27 | Icontrol Networks, Inc. | Communication protocols over internet protocol (IP) networks |
US8060904B1 (en) | 2008-02-25 | 2011-11-15 | Qurio Holdings, Inc. | Dynamic load based ad insertion |
CN101551802B (zh) * | 2008-04-03 | 2011-09-21 | 纬创资通股份有限公司 | 用于一管理系统的文件存取方法 |
US8775718B2 (en) * | 2008-05-23 | 2014-07-08 | Netapp, Inc. | Use of RDMA to access non-volatile solid-state memory in a network storage system |
US20170185278A1 (en) | 2008-08-11 | 2017-06-29 | Icontrol Networks, Inc. | Automation system user interface |
US11258625B2 (en) | 2008-08-11 | 2022-02-22 | Icontrol Networks, Inc. | Mobile premises automation platform |
US11792036B2 (en) | 2008-08-11 | 2023-10-17 | Icontrol Networks, Inc. | Mobile premises automation platform |
US11729255B2 (en) | 2008-08-11 | 2023-08-15 | Icontrol Networks, Inc. | Integrated cloud system with lightweight gateway for premises automation |
US11758026B2 (en) | 2008-08-11 | 2023-09-12 | Icontrol Networks, Inc. | Virtual device systems and methods |
US10530839B2 (en) | 2008-08-11 | 2020-01-07 | Icontrol Networks, Inc. | Integrated cloud system with lightweight gateway for premises automation |
US8307044B2 (en) * | 2008-08-28 | 2012-11-06 | Netapp, Inc. | Circuits, systems, and methods to integrate storage virtualization in a storage controller |
US20100083247A1 (en) * | 2008-09-26 | 2010-04-01 | Netapp, Inc. | System And Method Of Providing Multiple Virtual Machines With Shared Access To Non-Volatile Solid-State Memory Using RDMA |
US8306935B2 (en) * | 2008-12-22 | 2012-11-06 | Panduit Corp. | Physical infrastructure management system |
US8312487B1 (en) | 2008-12-31 | 2012-11-13 | Qurio Holdings, Inc. | Method and system for arranging an advertising schedule |
CN101520805B (zh) * | 2009-03-25 | 2011-05-11 | 中兴通讯股份有限公司 | 一种分布式文件系统及其文件处理方法 |
US8171219B2 (en) * | 2009-03-31 | 2012-05-01 | Intel Corporation | Method and system to perform caching based on file-level heuristics |
US8638211B2 (en) | 2009-04-30 | 2014-01-28 | Icontrol Networks, Inc. | Configurable controller and interface for home SMA, phone and multimedia |
US9973446B2 (en) | 2009-08-20 | 2018-05-15 | Oracle International Corporation | Remote shared server peripherals over an Ethernet network for resource virtualization |
JP5999645B2 (ja) * | 2009-09-08 | 2016-10-05 | ロンギチュード エンタープライズ フラッシュ エスエイアールエル | ソリッドステート記憶デバイス上にデータをキャッシングするための装置、システム、および方法 |
WO2011031900A2 (en) | 2009-09-09 | 2011-03-17 | Fusion-Io, Inc. | Apparatus, system, and method for power reduction management in a storage device |
US8601222B2 (en) | 2010-05-13 | 2013-12-03 | Fusion-Io, Inc. | Apparatus, system, and method for conditional and atomic storage operations |
EP2476079A4 (en) | 2009-09-09 | 2013-07-03 | Fusion Io Inc | APPARATUS, SYSTEM, AND METHOD FOR STORAGE ALLOCATION |
US9223514B2 (en) | 2009-09-09 | 2015-12-29 | SanDisk Technologies, Inc. | Erase suspend/resume for memory |
US9122579B2 (en) | 2010-01-06 | 2015-09-01 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for a storage layer |
US8527749B2 (en) * | 2009-11-11 | 2013-09-03 | International Business Machines Corporation | User device, computer program product and computer system for system for secure network storage |
US8732343B1 (en) * | 2009-12-16 | 2014-05-20 | Symantec Corporation | Systems and methods for creating dataless storage systems for testing software systems |
US8533299B2 (en) | 2010-04-19 | 2013-09-10 | Microsoft Corporation | Locator table and client library for datacenters |
US9170892B2 (en) | 2010-04-19 | 2015-10-27 | Microsoft Technology Licensing, Llc | Server failure recovery |
US8181061B2 (en) | 2010-04-19 | 2012-05-15 | Microsoft Corporation | Memory management and recovery for datacenters |
US8438244B2 (en) | 2010-04-19 | 2013-05-07 | Microsoft Corporation | Bandwidth-proportioned datacenters |
US9813529B2 (en) | 2011-04-28 | 2017-11-07 | Microsoft Technology Licensing, Llc | Effective circuits in packet-switched networks |
US9454441B2 (en) | 2010-04-19 | 2016-09-27 | Microsoft Technology Licensing, Llc | Data layout for recovery and durability |
US8447833B2 (en) | 2010-04-19 | 2013-05-21 | Microsoft Corporation | Reading and writing during cluster growth phase |
US8996611B2 (en) | 2011-01-31 | 2015-03-31 | Microsoft Technology Licensing, Llc | Parallel serialization of request processing |
US8572276B2 (en) | 2010-04-29 | 2013-10-29 | International Business Machines Corporation | Pipelining protocols in misaligned buffer cases |
EP2569712B1 (en) | 2010-05-10 | 2021-10-13 | Icontrol Networks, Inc. | Control system user interface |
US8285762B2 (en) | 2010-05-11 | 2012-10-09 | International Business Machines Corporation | Migration of metadata and storage management of data in a first storage environment to a second storage environment |
US8725934B2 (en) | 2011-12-22 | 2014-05-13 | Fusion-Io, Inc. | Methods and appratuses for atomic storage operations |
EP2598996B1 (en) | 2010-07-28 | 2019-07-10 | SanDisk Technologies LLC | Apparatus, system, and method for conditional and atomic storage operations |
US8589603B2 (en) * | 2010-08-30 | 2013-11-19 | International Business Machines Corporation | Delaying acknowledgment of an operation until operation completion confirmed by local adapter read operation |
US8984216B2 (en) | 2010-09-09 | 2015-03-17 | Fusion-Io, Llc | Apparatus, system, and method for managing lifetime of a storage device |
US9331963B2 (en) | 2010-09-24 | 2016-05-03 | Oracle International Corporation | Wireless host I/O using virtualized I/O controllers |
US8836467B1 (en) | 2010-09-28 | 2014-09-16 | Icontrol Networks, Inc. | Method, system and apparatus for automated reporting of account and sensor zone information to a central station |
WO2012082792A2 (en) | 2010-12-13 | 2012-06-21 | Fusion-Io, Inc. | Apparatus, system, and method for auto-commit memory |
US9208071B2 (en) | 2010-12-13 | 2015-12-08 | SanDisk Technologies, Inc. | Apparatus, system, and method for accessing memory |
US10817502B2 (en) | 2010-12-13 | 2020-10-27 | Sandisk Technologies Llc | Persistent memory management |
US10817421B2 (en) | 2010-12-13 | 2020-10-27 | Sandisk Technologies Llc | Persistent data structures |
US9047178B2 (en) | 2010-12-13 | 2015-06-02 | SanDisk Technologies, Inc. | Auto-commit memory synchronization |
US9218278B2 (en) | 2010-12-13 | 2015-12-22 | SanDisk Technologies, Inc. | Auto-commit memory |
US11750414B2 (en) | 2010-12-16 | 2023-09-05 | Icontrol Networks, Inc. | Bidirectional security sensor communication for a premises security system |
US9147337B2 (en) | 2010-12-17 | 2015-09-29 | Icontrol Networks, Inc. | Method and system for logging security event data |
WO2012083308A2 (en) | 2010-12-17 | 2012-06-21 | Fusion-Io, Inc. | Apparatus, system, and method for persistent data management on a non-volatile storage media |
CN102088484B (zh) * | 2010-12-20 | 2014-12-10 | 南京中兴新软件有限责任公司 | 一种分布式文件系统的写锁定方法及系统 |
US20120185618A1 (en) * | 2011-01-13 | 2012-07-19 | Avaya Inc. | Method for providing scalable storage virtualization |
US9213594B2 (en) | 2011-01-19 | 2015-12-15 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for managing out-of-service conditions |
JP5249368B2 (ja) * | 2011-01-31 | 2013-07-31 | 株式会社バッファロー | ネットワーク装置 |
US8874823B2 (en) | 2011-02-15 | 2014-10-28 | Intellectual Property Holdings 2 Llc | Systems and methods for managing data input/output operations |
US9201677B2 (en) | 2011-05-23 | 2015-12-01 | Intelligent Intellectual Property Holdings 2 Llc | Managing data input/output operations |
US9003104B2 (en) | 2011-02-15 | 2015-04-07 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for a file-level cache |
WO2012116369A2 (en) | 2011-02-25 | 2012-08-30 | Fusion-Io, Inc. | Apparatus, system, and method for managing contents of a cache |
WO2012129191A2 (en) | 2011-03-18 | 2012-09-27 | Fusion-Io, Inc. | Logical interfaces for contextual storage |
US9563555B2 (en) | 2011-03-18 | 2017-02-07 | Sandisk Technologies Llc | Systems and methods for storage allocation |
US8843502B2 (en) | 2011-06-24 | 2014-09-23 | Microsoft Corporation | Sorting a dataset of incrementally received data |
GB201114118D0 (en) * | 2011-08-17 | 2011-10-05 | Appsense Ltd | Improvements in and relating to virtualised systems |
US10133662B2 (en) | 2012-06-29 | 2018-11-20 | Sandisk Technologies Llc | Systems, methods, and interfaces for managing persistent data of atomic storage operations |
US9274937B2 (en) | 2011-12-22 | 2016-03-01 | Longitude Enterprise Flash S.A.R.L. | Systems, methods, and interfaces for vector input/output operations |
CN103186349B (zh) * | 2011-12-27 | 2016-03-02 | 杭州信核数据科技股份有限公司 | 块级分布式存储系统及其数据读写方法 |
US9251086B2 (en) | 2012-01-24 | 2016-02-02 | SanDisk Technologies, Inc. | Apparatus, system, and method for managing a cache |
US9116812B2 (en) | 2012-01-27 | 2015-08-25 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for a de-duplication cache |
US10359972B2 (en) | 2012-08-31 | 2019-07-23 | Sandisk Technologies Llc | Systems, methods, and interfaces for adaptive persistence |
US9824131B2 (en) | 2012-03-15 | 2017-11-21 | Hewlett Packard Enterprise Development Lp | Regulating a replication operation |
US8688733B2 (en) * | 2012-03-16 | 2014-04-01 | International Business Machines Corporation | Remote inventory manager |
US9229901B1 (en) * | 2012-06-08 | 2016-01-05 | Google Inc. | Single-sided distributed storage system |
US20130332841A1 (en) * | 2012-06-10 | 2013-12-12 | Apple Inc. | Integrated tools for creating and sharing image streams |
US9612966B2 (en) | 2012-07-03 | 2017-04-04 | Sandisk Technologies Llc | Systems, methods and apparatus for a virtual machine cache |
US10339056B2 (en) | 2012-07-03 | 2019-07-02 | Sandisk Technologies Llc | Systems, methods and apparatus for cache transfers |
US9778856B2 (en) | 2012-08-30 | 2017-10-03 | Microsoft Technology Licensing, Llc | Block-level access to parallel storage |
US8862561B1 (en) * | 2012-08-30 | 2014-10-14 | Google Inc. | Detecting read/write conflicts |
US9058122B1 (en) * | 2012-08-30 | 2015-06-16 | Google Inc. | Controlling access in a single-sided distributed storage system |
US9164702B1 (en) * | 2012-09-07 | 2015-10-20 | Google Inc. | Single-sided distributed cache system |
US10509776B2 (en) | 2012-09-24 | 2019-12-17 | Sandisk Technologies Llc | Time sequence data management |
US10318495B2 (en) | 2012-09-24 | 2019-06-11 | Sandisk Technologies Llc | Snapshots for a non-volatile device |
ES2625828T3 (es) * | 2012-10-08 | 2017-07-20 | Patrick Soon-Shiong | Sistemas y métodos de almacenamiento distribuido |
US9529938B2 (en) * | 2012-10-26 | 2016-12-27 | Google Inc. | Unified file search |
US9083550B2 (en) | 2012-10-29 | 2015-07-14 | Oracle International Corporation | Network virtualization over infiniband |
US9438638B2 (en) * | 2013-03-15 | 2016-09-06 | Silicon Graphics International Corp. | Method for transparently connecting augmented network socket operations |
US9842053B2 (en) | 2013-03-15 | 2017-12-12 | Sandisk Technologies Llc | Systems and methods for persistent cache logging |
US10102144B2 (en) | 2013-04-16 | 2018-10-16 | Sandisk Technologies Llc | Systems, methods and interfaces for data virtualization |
US10558561B2 (en) | 2013-04-16 | 2020-02-11 | Sandisk Technologies Llc | Systems and methods for storage metadata management |
CN104135496B (zh) * | 2013-05-02 | 2017-08-18 | 华中科技大学 | 一种同构环境下的rpc数据传输方法及系统 |
EP2997496B1 (en) | 2013-05-16 | 2022-01-19 | Hewlett Packard Enterprise Development LP | Selecting a store for deduplicated data |
US10592347B2 (en) | 2013-05-16 | 2020-03-17 | Hewlett Packard Enterprise Development Lp | Selecting a store for deduplicated data |
US9338193B2 (en) * | 2013-05-31 | 2016-05-10 | International Business Machines Corporation | Remote procedure call with call-by-reference semantics using remote direct memory access |
TWI563394B (en) * | 2013-06-02 | 2016-12-21 | Compal Electronics Inc | System and method for transmitting data, and electronic apparatus using the method |
US9986028B2 (en) * | 2013-07-08 | 2018-05-29 | Intel Corporation | Techniques to replicate data between storage servers |
KR101529877B1 (ko) * | 2013-07-26 | 2015-06-18 | 서울시립대학교 산학협력단 | 원격 데이터 연산 방법 및 시스템 |
US10223326B2 (en) * | 2013-07-31 | 2019-03-05 | Oracle International Corporation | Direct access persistent memory shared storage |
US9842128B2 (en) | 2013-08-01 | 2017-12-12 | Sandisk Technologies Llc | Systems and methods for atomic storage operations |
US11422907B2 (en) | 2013-08-19 | 2022-08-23 | Microsoft Technology Licensing, Llc | Disconnected operation for systems utilizing cloud storage |
US9313274B2 (en) * | 2013-09-05 | 2016-04-12 | Google Inc. | Isolating clients of distributed storage systems |
US9094284B1 (en) * | 2013-10-02 | 2015-07-28 | Tribune Broadcasting Company, Llc | System and method for transmitting a packet stream to a device |
US10019320B2 (en) | 2013-10-18 | 2018-07-10 | Sandisk Technologies Llc | Systems and methods for distributed atomic storage operations |
GB2519534A (en) | 2013-10-23 | 2015-04-29 | Ibm | Persistent caching system and method for operating a persistent caching system |
US9525734B2 (en) * | 2013-10-30 | 2016-12-20 | Annapurna Labs Ltd. | Hybrid remote direct memory access |
US10073630B2 (en) | 2013-11-08 | 2018-09-11 | Sandisk Technologies Llc | Systems and methods for log coordination |
US9977760B1 (en) * | 2013-12-23 | 2018-05-22 | Google Llc | Accessing data on distributed storage systems |
US9798631B2 (en) | 2014-02-04 | 2017-10-24 | Microsoft Technology Licensing, Llc | Block storage by decoupling ordering from durability |
CN110275840B (zh) * | 2014-02-23 | 2024-03-15 | 拉姆伯斯公司 | 在存储器接口上的分布式过程执行和文件系统 |
KR102192198B1 (ko) * | 2014-02-24 | 2020-12-17 | 삼성전자주식회사 | 전자 장치 및 그것의 통신 방법 |
US9666244B2 (en) | 2014-03-01 | 2017-05-30 | Fusion-Io, Inc. | Dividing a storage procedure |
US11405463B2 (en) | 2014-03-03 | 2022-08-02 | Icontrol Networks, Inc. | Media content management |
US11146637B2 (en) | 2014-03-03 | 2021-10-12 | Icontrol Networks, Inc. | Media content management |
US10372685B2 (en) * | 2014-03-31 | 2019-08-06 | Amazon Technologies, Inc. | Scalable file storage service |
US9852138B2 (en) * | 2014-06-30 | 2017-12-26 | EMC IP Holding Company LLC | Content fabric for a distributed file system |
CN104202391B (zh) * | 2014-08-28 | 2018-09-25 | 浪潮(北京)电子信息产业有限公司 | 共享系统地址空间的非紧耦合系统间的rdma通信方法 |
CN105765569B (zh) * | 2014-11-05 | 2018-02-02 | 华为技术有限公司 | 一种数据分发方法,装载机及存储系统 |
US20170013046A1 (en) * | 2014-11-18 | 2017-01-12 | Primarydata, Inc. | Data-centric data storage |
US10469580B2 (en) * | 2014-12-12 | 2019-11-05 | International Business Machines Corporation | Clientless software defined grid |
US10554749B2 (en) | 2014-12-12 | 2020-02-04 | International Business Machines Corporation | Clientless software defined grid |
US9933950B2 (en) | 2015-01-16 | 2018-04-03 | Sandisk Technologies Llc | Storage operation interrupt |
US10956189B2 (en) * | 2015-02-13 | 2021-03-23 | Red Hat Israel, Ltd. | Methods for managing virtualized remote direct memory access devices |
US9946607B2 (en) | 2015-03-04 | 2018-04-17 | Sandisk Technologies Llc | Systems and methods for storage error management |
US9900386B2 (en) * | 2015-04-09 | 2018-02-20 | International Business Machines Corporation | Provisioning data to distributed computing systems |
US11829349B2 (en) | 2015-05-11 | 2023-11-28 | Oracle International Corporation | Direct-connect functionality in a distributed database grid |
US10019718B2 (en) | 2015-05-12 | 2018-07-10 | Bank Of America Corporation | Customer-based associate interfaces |
US10009438B2 (en) | 2015-05-20 | 2018-06-26 | Sandisk Technologies Llc | Transaction log acceleration |
US9760314B2 (en) | 2015-05-29 | 2017-09-12 | Netapp, Inc. | Methods for sharing NVM SSD across a cluster group and devices thereof |
US9792248B2 (en) * | 2015-06-02 | 2017-10-17 | Microsoft Technology Licensing, Llc | Fast read/write between networked computers via RDMA-based RPC requests |
US10257273B2 (en) | 2015-07-31 | 2019-04-09 | Netapp, Inc. | Systems, methods and devices for RDMA read/write operations |
US9952797B2 (en) | 2015-07-31 | 2018-04-24 | Netapp, Inc. | Systems, methods and devices for addressing data blocks in mass storage filing systems |
US10437506B2 (en) * | 2015-08-17 | 2019-10-08 | Microsoft Technology Licensing Llc | Optimal storage and workload placement, and high resiliency, in geo-distributed cluster systems |
US10725963B2 (en) | 2015-09-12 | 2020-07-28 | Microsoft Technology Licensing, Llc | Distributed lock-free RDMA-based memory allocation and de-allocation |
US10713210B2 (en) | 2015-10-13 | 2020-07-14 | Microsoft Technology Licensing, Llc | Distributed self-directed lock-free RDMA-based B-tree key-value manager |
US10375167B2 (en) | 2015-11-20 | 2019-08-06 | Microsoft Technology Licensing, Llc | Low latency RDMA-based distributed storage |
US10423499B2 (en) * | 2016-03-25 | 2019-09-24 | Netapp, Inc. | Cataloging metadata for replication management and recovery |
US10474636B2 (en) | 2016-03-25 | 2019-11-12 | Amazon Technologies, Inc. | Block allocation for low latency file systems |
US10545927B2 (en) | 2016-03-25 | 2020-01-28 | Amazon Technologies, Inc. | File system mode switching in a distributed storage service |
US10140312B2 (en) | 2016-03-25 | 2018-11-27 | Amazon Technologies, Inc. | Low latency distributed storage service |
CN105912451A (zh) * | 2016-04-01 | 2016-08-31 | 浪潮电子信息产业股份有限公司 | 一种lustre文件系统检测方法及装置 |
CN107622055B (zh) * | 2016-07-13 | 2021-01-05 | 航天科工智慧产业发展有限公司 | 一种快速实现数据服务发布的方法 |
US20180059990A1 (en) | 2016-08-25 | 2018-03-01 | Microsoft Technology Licensing, Llc | Storage Virtualization For Files |
US10423559B2 (en) * | 2016-09-23 | 2019-09-24 | Intel Corporation | System for selectively upgradeable disaggregated server components |
CN106713465B (zh) * | 2016-12-27 | 2020-11-17 | 北京锐安科技有限公司 | 一种分布式存储系统 |
CN108268208B (zh) * | 2016-12-30 | 2020-01-17 | 清华大学 | 一种基于rdma的分布式内存文件系统 |
US11089100B2 (en) * | 2017-01-12 | 2021-08-10 | Vivint, Inc. | Link-server caching |
US11082523B2 (en) * | 2017-02-09 | 2021-08-03 | International Business Machines Corporation | System, method and computer program product for a distributed virtual address space |
US11507534B2 (en) | 2017-05-11 | 2022-11-22 | Microsoft Technology Licensing, Llc | Metadata storage for placeholders in a storage virtualization system |
US10346315B2 (en) | 2017-05-26 | 2019-07-09 | Oracle International Corporation | Latchless, non-blocking dynamically resizable segmented hash index |
US10803039B2 (en) * | 2017-05-26 | 2020-10-13 | Oracle International Corporation | Method for efficient primary key based queries using atomic RDMA reads on cache friendly in-memory hash index |
CN109391647B (zh) * | 2017-08-04 | 2021-08-17 | 杭州海康威视系统技术有限公司 | 存储资源回收方法、装置及系统 |
US10719446B2 (en) | 2017-08-31 | 2020-07-21 | Oracle International Corporation | Directly mapped buffer cache on non-volatile memory |
US11086876B2 (en) | 2017-09-29 | 2021-08-10 | Oracle International Corporation | Storing derived summaries on persistent memory of a storage device |
US10956335B2 (en) | 2017-09-29 | 2021-03-23 | Oracle International Corporation | Non-volatile cache access using RDMA |
US10732836B2 (en) | 2017-09-29 | 2020-08-04 | Oracle International Corporation | Remote one-sided persistent writes |
US10802766B2 (en) | 2017-09-29 | 2020-10-13 | Oracle International Corporation | Database with NVDIMM as persistent storage |
US10523675B2 (en) * | 2017-11-08 | 2019-12-31 | Ca, Inc. | Remote direct memory access authorization |
US10992967B2 (en) * | 2017-12-05 | 2021-04-27 | Sony Interactive Entertainment LLC | Ultra high-speed low-latency network storage |
KR102292389B1 (ko) | 2018-01-17 | 2021-08-25 | 한국전자통신연구원 | 원격 직접 메모리 접근을 통한 분산 처리 장치 및 그 방법 |
US11347678B2 (en) | 2018-08-06 | 2022-05-31 | Oracle International Corporation | One-sided reliable remote direct memory operations |
US10911539B2 (en) | 2019-01-08 | 2021-02-02 | Box, Inc. | Managing shared content directory structure metadata |
US11500856B2 (en) | 2019-09-16 | 2022-11-15 | Oracle International Corporation | RDMA-enabled key-value store |
CN110633580A (zh) * | 2019-09-20 | 2019-12-31 | 徐州医科大学附属医院 | 一种面向xml数据的安全分布式存储方法 |
RU2718233C1 (ru) | 2019-10-01 | 2020-03-31 | Общество с ограниченной ответственностью «ПИРФ» (ООО «ПИРФ») | Способ построения файловой системы на базе иерархии узлов |
CN113535068A (zh) * | 2020-04-21 | 2021-10-22 | 华为技术有限公司 | 数据读取方法和系统 |
US11709804B1 (en) * | 2020-05-13 | 2023-07-25 | Parallels International Gmbh | Virtual client file systems and methods within remote sessions |
CN111796772A (zh) * | 2020-07-07 | 2020-10-20 | 西北工业大学 | 缓存的管理方法、缓存节点及分布式存储系统 |
CN114327239A (zh) * | 2020-09-27 | 2022-04-12 | 伊姆西Ip控股有限责任公司 | 存储和访问数据的方法、电子设备和计算机程序产品 |
US11755503B2 (en) | 2020-10-29 | 2023-09-12 | Storj Labs International Sezc | Persisting directory onto remote storage nodes and smart downloader/uploader based on speed of peers |
KR20220154596A (ko) * | 2021-05-13 | 2022-11-22 | 현대자동차주식회사 | M2m 시스템에서 대량의 데이터를 전달하기 위한 방법 및 장치 |
CN117135171A (zh) * | 2023-03-31 | 2023-11-28 | 荣耀终端有限公司 | 云存储方法及系统 |
CN116302618B (zh) * | 2023-05-17 | 2023-09-12 | 上海云脉芯联科技有限公司 | 一种会话信息处理方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6219693B1 (en) * | 1997-11-04 | 2001-04-17 | Adaptec, Inc. | File array storage architecture having file system distributed across a data processing platform |
CN1356644A (zh) * | 2000-11-30 | 2002-07-03 | 国际商业机器公司 | 从网络服务器向客户计算机提供资源的方法 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6339787B1 (en) * | 1995-11-30 | 2002-01-15 | Stampede Technologies, Inc. | Apparatus and method for increasing speed in a network file/object oriented server/client system |
US6081883A (en) * | 1997-12-05 | 2000-06-27 | Auspex Systems, Incorporated | Processing system with dynamically allocatable buffer memory |
JP2000020490A (ja) * | 1998-07-01 | 2000-01-21 | Fujitsu Ltd | 遠隔手続き呼出し機構またはオブジェクトリクエストブローカ機構を有する計算機、データ転送方法、および転送方法記憶媒体 |
US20010011247A1 (en) | 1998-10-02 | 2001-08-02 | O'flaherty Kenneth W. | Privacy-enabled loyalty card system and method |
US6978312B2 (en) | 1998-12-18 | 2005-12-20 | Microsoft Corporation | Adaptive flow control protocol |
US6453354B1 (en) * | 1999-03-03 | 2002-09-17 | Emc Corporation | File server system using connection-oriented protocol and sharing data sets among data movers |
US6502174B1 (en) * | 1999-03-03 | 2002-12-31 | International Business Machines Corporation | Method and system for managing meta data |
US6351776B1 (en) * | 1999-11-04 | 2002-02-26 | Xdrive, Inc. | Shared internet storage resource, user interface system, and method |
US6877044B2 (en) | 2000-02-10 | 2005-04-05 | Vicom Systems, Inc. | Distributed storage management platform architecture |
US7506034B2 (en) | 2000-03-03 | 2009-03-17 | Intel Corporation | Methods and apparatus for off loading content servers through direct file transfer from a storage center to an end-user |
EP1272934B1 (en) | 2000-04-11 | 2003-10-01 | Analog Devices, Inc. | Non-intrusive application code profiling method and apparatus |
WO2001080524A2 (en) | 2000-04-17 | 2001-10-25 | Circadence Corporation | Method and system for overcoming denial of service attacks |
US7281032B2 (en) | 2000-06-30 | 2007-10-09 | Hitachi, Ltd. | File sharing system with data mirroring by storage systems |
US7010614B2 (en) * | 2000-07-05 | 2006-03-07 | International Business Machines Corporation | System for computing cumulative amount of data received by all RDMA to determine when a complete data transfer has arrived at receiving device |
US6792507B2 (en) * | 2000-12-14 | 2004-09-14 | Maxxan Systems, Inc. | Caching system and method for a network storage system |
US6931450B2 (en) * | 2000-12-18 | 2005-08-16 | Sun Microsystems, Inc. | Direct access from client to storage device |
US7165096B2 (en) | 2000-12-22 | 2007-01-16 | Data Plow, Inc. | Storage area network file system |
US6907457B2 (en) | 2001-01-25 | 2005-06-14 | Dell Inc. | Architecture for access to embedded files using a SAN intermediate device |
US7171494B2 (en) | 2001-01-31 | 2007-01-30 | Hewlett-Packard Development Company, L.P. | Extending a standard-based remote file access protocol and maintaining compatibility with a standard protocol stack |
US6883029B2 (en) | 2001-02-14 | 2005-04-19 | Hewlett-Packard Development Company, L.P. | Separate read and write servers in a distributed file system |
US20040233910A1 (en) * | 2001-02-23 | 2004-11-25 | Wen-Shyen Chen | Storage area network using a data communication protocol |
IES20010611A2 (en) | 2001-03-08 | 2002-09-18 | Richmount Computers Ltd | Distributed lock management chip |
US6625604B2 (en) | 2001-03-09 | 2003-09-23 | Hewlett-Packard Development Company, L.P. | Namespace service in a distributed file system using a database management system |
US20030145230A1 (en) * | 2002-01-31 | 2003-07-31 | Huimin Chiu | System for exchanging data utilizing remote direct memory access |
US7610348B2 (en) | 2003-05-07 | 2009-10-27 | International Business Machines | Distributed file serving architecture system with metadata storage virtualization and data access at the data server connection speed |
-
2003
- 2003-05-07 US US10/431,413 patent/US7610348B2/en not_active Expired - Fee Related
-
2004
- 2004-04-30 TW TW093112315A patent/TWI343010B/zh not_active IP Right Cessation
- 2004-05-06 CN CNB2004800024212A patent/CN100517308C/zh active Active
- 2004-05-06 KR KR1020057018681A patent/KR100754306B1/ko not_active IP Right Cessation
- 2004-05-06 EP EP04731397A patent/EP1620813A2/en not_active Withdrawn
- 2004-05-06 WO PCT/GB2004/001968 patent/WO2004099989A2/en active Search and Examination
-
2009
- 2009-09-15 US US12/560,333 patent/US9262094B2/en not_active Expired - Fee Related
-
2016
- 2016-01-04 US US14/987,632 patent/US10095419B2/en not_active Expired - Fee Related
- 2016-07-08 US US15/206,174 patent/US10042561B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6219693B1 (en) * | 1997-11-04 | 2001-04-17 | Adaptec, Inc. | File array storage architecture having file system distributed across a data processing platform |
CN1356644A (zh) * | 2000-11-30 | 2002-07-03 | 国际商业机器公司 | 从网络服务器向客户计算机提供资源的方法 |
Non-Patent Citations (3)
Title |
---|
Los Alamos HPDS: High-Speed Data Transfer. William Collins, James Brewton, Danny Cook, LynnJones,Kathleen kelly, Lynn Kluegel, Dan Krantz, CherylRamsey.PUTTING ALL THAT DATA TO WORK. PROCEEDINGS. 1993 |
Los Alamos HPDS: High-Speed Data Transfer. William Collins, James Brewton, Danny Cook, LynnJones,Kathleen kelly, Lynn Kluegel, Dan Krantz, CherylRamsey.PUTTING ALL THAT DATA TO WORK. PROCEEDINGS. 1993 * |
The Emerging Storage Management Paradigm. Samuel S. Coleman, Richard W. Watson, RobertA.Coyne,Harry Hulen.PUTTING ALL THAT DATA TO WORK.PROCEEDINGS. 1993 |
Also Published As
Publication number | Publication date |
---|---|
US9262094B2 (en) | 2016-02-16 |
TWI343010B (en) | 2011-06-01 |
US20170010825A1 (en) | 2017-01-12 |
US10095419B2 (en) | 2018-10-09 |
CN1771495A (zh) | 2006-05-10 |
KR100754306B1 (ko) | 2007-09-03 |
WO2004099989A2 (en) | 2004-11-18 |
US20040225719A1 (en) | 2004-11-11 |
US7610348B2 (en) | 2009-10-27 |
KR20060009244A (ko) | 2006-01-31 |
EP1620813A2 (en) | 2006-02-01 |
WO2004099989A3 (en) | 2005-02-10 |
TW200516392A (en) | 2005-05-16 |
US20100095059A1 (en) | 2010-04-15 |
US10042561B2 (en) | 2018-08-07 |
US20160224507A1 (en) | 2016-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100517308C (zh) | 元数据服务器、数据服务器、存储网络及数据存取方法 | |
US6173374B1 (en) | System and method for peer-to-peer accelerated I/O shipping between host bus adapters in clustered computer network | |
US11782783B2 (en) | Method and apparatus to neutralize replication error and retain primary and secondary synchronization during synchronous replication | |
US9009427B2 (en) | Mirroring mechanisms for storage area networks and network based virtualization | |
US8612481B2 (en) | System and method for proxying data access commands in a storage system cluster | |
US8180855B2 (en) | Coordinated shared storage architecture | |
US6907457B2 (en) | Architecture for access to embedded files using a SAN intermediate device | |
US7506009B2 (en) | Systems and methods for accessing a shared storage network using multiple system nodes configured as server nodes | |
US8205043B2 (en) | Single nodename cluster system for fibre channel | |
US20070094466A1 (en) | Techniques for improving mirroring operations implemented in storage area networks and network based virtualization | |
US20070094465A1 (en) | Mirroring mechanisms for storage area networks and network based virtualization | |
US20090259817A1 (en) | Mirror Consistency Checking Techniques For Storage Area Networks And Network Based Virtualization | |
CN1723434A (zh) | 用于可扩展网络附接存储系统的装置和方法 | |
US20030120743A1 (en) | System and method of implementing disk ownership in networked storage | |
US20080021992A1 (en) | System and method for transferring volume ownership in networked storage | |
US20090259816A1 (en) | Techniques for Improving Mirroring Operations Implemented In Storage Area Networks and Network Based Virtualization | |
KR100450400B1 (ko) | 안전 기억 장치가 없는 환경을 위한 이중화 구조의 주 메모리 상주 데이터베이스 관리시스템 및 그 데이터 일치성 제어방법 | |
US20070078911A1 (en) | Replicating data across the nodes in a cluster environment | |
KR20080096547A (ko) | 가상 네트워크 저장 시스템, 네트워크 저장 장치 및 가상 방법 | |
JP2005502096A (ja) | ファイルスイッチ及び交換ファイルシステム | |
US20080209148A1 (en) | High performance storage access environment | |
US10031682B1 (en) | Methods for improved data store migrations and devices thereof | |
US20050193021A1 (en) | Method and apparatus for unified storage of data for storage area network systems and network attached storage systems | |
EP1122924A2 (en) | Method and apparatus for providing local path I/O in a distributed file system | |
US20050278501A1 (en) | Method and apparatus for caching storage system |
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 |