分布式文件服务体系结构系统的制作方法

文档序号:6476224阅读:200来源:国知局
专利名称:分布式文件服务体系结构系统的制作方法
技术领域
本发明总体上涉及存储系统体系结构,具体而言,涉及一种用于提供具有元数据存储虚拟化的分布式文件服务体系结构的方法、设备和程序存储装置。
背景技术
计算机在存储和管理信息方面的日益增加的能力已经使得它们日益成为现代商业所不可缺少的。这些机器的流行导致诸如电子邮件和文档之类的数据在一个或多个计算机网络上的广泛共享和通信,其中所述一个或多个计算机网络包括局域网、诸如因特网的广域网以及无线网络。
计算机操作系统是较大的、复杂的软件,其用于管理计算机处理系统的硬件和软件资源。另一方面,存储管理软件用于将存储装置(诸如盘)组织成为逻辑分组,以便实现各种性能和可利用性特征。例如,所述存储装置可以被设置为创建单独的卷或者卷的级联、镜像集(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然后能把元数据384 RDMA到缓冲器中,并且利用递送操作状态的正常消息来响应所述客户端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性能障碍被忽略了,例如,存取大小粒度现在只受传输的能力和传输驱动程序来限制,避免了上下文切换和中断处理开销,并且避免了额外的复制操作和双重高速缓存。
已经为了举例说明和描述的目的给出了本发明的示例性实施例的先前描述。这不意味着穷举或者把本发明限制为所公开的具体形式。根据上述教义能够进行许多修改和变化。其意图是,本发明的范围不由这种详细说明来限制,而是由所附权利要求书来限定。
权利要求
1.一种主机,包括用于在其上运行应用程序的中央处理单元;用于在其中存储数据的存储器;以及耦合至所述存储器的主机总线适配器,所述主机总线适配器包括适配器处理器,其被设置为用于向元数据服务器发布输入/输出请求,并且用于允许直接在存储器和数据服务器之间进行与所述输入/输出请求相关联的数据的直接存储器存取传送。
2.如权利要求1所述的主机,其中所述适配器处理器被进一步配置为用于允许经由RDMA通道进行直接存储器存取。
3.如权利要求2所述的主机,其中允许经由RDMA通道进行直接存储器存取还包括从主机总线适配器至存储器的直接存储器存取,其中所述存储器包括用户模式存储器。
4.如权利要求2所述的主机,其中所述RDMA通道是由所述主机启动的。
5.如权利要求2所述的主机,其中所述RDMA通道是由所述数据服务器启动的。
6.如权利要求1所述的主机,其中所述适配器处理器被进一步配置为用于响应于发布所述输入/输出请求来接收来自于元数据服务器的数据块位置信息。
7.如权利要求1所述的主机,其中所述适配器处理器被进一步配置为用于向数据服务器发布用来标识主机处的存储器位置的命令,以便允许在存储器和数据服务器之间进行与输入/输出请求相关联的数据的直接存储器存取传送。
8.如权利要求1所述的主机,其中所述适配器处理器被进一步配置为用于向元数据服务器通知已经完成所述输入/输出请求。
9.如权利要求1所述的主机,其中利用客户端文件存取堆栈将所述适配器处理器进一步配置为用于控制输入/输出请求,所述客户端文件存取堆栈包括用于接收来自于应用程序的数据请求并且发布所述输入/输出请求的文件存取协议;用于提供虚拟寻址和解析的虚拟化层;以及用于控制与主机的连接并且验证支持所述输入/输出请求的存储器存取的RDMA传输层。
10.如权利要求9所述的主机,其中所述RDMA传输层通过保持存储器地址映射直到数据服务器的RDMA传输地址被验证为止来验证存储器存取。
11.如权利要求1所述的主机,其中利用客户端文件存取堆栈将所述适配器处理器进一步配置为用于控制输入/输出请求,所述客户端文件存取堆栈包括用于接收来自于应用程序的数据请求并且发布所述输入/输出请求的文件存取协议;用于解析输入/输出请求的虚拟地址并且为解析的虚拟地址开启RDMA通道的RDMA端点地址适配层;用于保持存储器映射并且验证支持输入/输出请求的存储器存取的RDMA传输端点供应商层;以及用于控制与主机的连接的RDMA传输层。
12.如权利要求1所述的主机,其中所述输入/输出请求包括带有数据目标位置的文件存取请求。
13.如权利要求1所述的主机,还包括智能RDMA部件,用于控制文件-块数据在主机存储器和存储装置之间的RDMA传送。
14.一种元数据服务器,包括用于存储与数据服务器上的数据相关联的元数据的存储器;以及处理器,被配置为用于接收来自于主机的输入/输出请求,并且根据所述元数据向数据服务器发布输入/输出操作细节,以便直接在主机处的存储器和数据服务器之间传送文件-块数据。
15.如权利要求14所述的元数据服务器,其中所述输入/输出请求是请求直接从主机处的存储器地址向数据服务器写入数据的请求。
16.如权利要求14所述的元数据服务器,其中所述输入/输出请求是请求从数据服务器直接向主机处的存储器读取由输入/输出操作细节涉及的数据的请求。
17.如权利要求14所述的元数据服务器,其中所述处理器被配置为虚拟化位于所述数据服务器的文件-块数据。
18.如权利要求14所述的元数据服务器,其中所述输入/输出请求是对元数据的请求,所述处理器把所请求的元数据返回至主机处的存储器地址。
19.如权利要求14所述的元数据服务器,其中所述处理器在主机和元数据服务器之间经由RDMA通道返回所请求的元数据。
20.如权利要求14所述的元数据服务器,其中所述处理器被进一步配置为用于接收来自于数据服务器的完成通知,并且向主机发布表示完成与输入/输出请求相关联的会话的文件存取响应。
21.如权利要求14所述的元数据服务器,其中所述处理器被进一步配置为当与高速缓存的数据相关联的元数据在所述元数据服务器改变时,在主机处使高速缓存的数据无效。
22.如权利要求14所述的元数据服务器,其中所述处理器被进一步配置为把来自于主机的输入/输出请求从RDMA文件存取语言翻译为元数据服务器的元文件系统语言,以便允许输入/输出请求被映射到数据服务器上的原始数据块。
23.如权利要求14所述的元数据服务器,还包括智能RDMA部件,用于控制文件-块数据在主机的存储器地址和数据服务器之间的RDMA传送。
24.一种数据服务器,包括用于在其上存储文件-块数据的至少一个存储装置;以及可操作地耦合至所述存储装置的处理器,所述处理器被配置为用于从元数据服务器接收与主机的输入/输出请求相关联的输入/输出操作细节,用于建立与由所接收的输入/输出操作细节标识的主机处的存储器地址的直接连接,并且用于直接在主机的存储器地址和至少一个存储装置之间传送由接收到的输入/输出操作细节涉及的文件-块数据。
25.如权利要求24所述的数据服务器,其中所述处理器被进一步配置为用于向元数据服务器提供完成通知,以便发信号通知主机的存储器地址和存储装置之间的文件数据传送已经完成。
26.如权利要求24所述的数据服务器,其中所述处理器还包括存储控制器,用于作为逻辑单元号来给出至少一个存储装置,并且用于通过处理主机的存储器地址和至少一个存储装置之间的文件-块数据来满足所述输入/输出请求。
27.如权利要求24所述的数据服务器,其中所述数据服务器堆栈还包括智能RDMA部件,用于控制文件-块数据在主机的存储器地址和至少一个存储装置之间的RDMA传送。
28.如权利要求24所述的数据服务器,其中所述处理器利用主机处的操作系统的最小处理开销,直接在主机的存储器地址和至少一个存储装置之间传送由所接收的输入/输出操作细节涉及的文件-块数据。
29.一种存储网络,包括主机,所述主机包括用于在处理输入/输出请求中使用的第一存储器,所述主机被配置为用于发布输入/输出请求;耦合至所述主机的元数据服务器,所述元数据服务器包括用于存储与文件-块数据相关联的元数据的第二存储器,所述元数据服务器进一步被配置为用于接收来自于所述主机的输入/输出请求并且用于提供输入/输出操作细节以便处理输入/输出请求;以及可操作地耦合至所述主机和所述元数据服务器的数据服务器,所述数据服务器包括用于在其上存储文件-块数据的至少一个存储装置,所述数据服务器被配置为用于从元数据服务器接收输入/输出操作细节以便处理所述输入/输出请求,用于建立与由来自于元数据服务器的输入/输出操作细节标识的主机处的存储器地址的直接连接,并且用于直接在主机处的标识出的存储器位置和至少一个存储装置之间传送由所述输入/输出操作细节涉及的文件-块数据。
30.一种可由计算机读取的程序存储装置,所述介质有形地包含可由计算机执行的一个或多个指令程序,以便执行用于在具有元数据存储虚拟化的分布式文件服务体系结构中以数据服务器连接速度进行数据存取的方法,所述方法包括如下步骤向元数据服务器发布输入/输出请求;以及直接在所述存储器和数据服务器之间传送与输入/输出请求相关联的数据。
31.一种可由计算机读取的程序存储装置,所述介质有形地包含可由计算机执行的一个或多个指令程序,以便执行用于在具有元数据存储虚拟化的分布式文件服务体系结构中允许以数据服务器连接速度进行数据存取的方法,所述方法包括如下步骤存储与数据服务器上的数据相关联的元数据;并且响应于输入/输出请求,根据所述元数据向数据服务器发布输入/输出操作细节,以便直接在主机处的存储器和数据服务器之间传送文件-块数据。
32.一种可由计算机读取的程序存储装置,所述介质有形地包含可由计算机执行的一个或多个指令程序,以便执行用于在具有元数据存储虚拟化的分布式文件服务体系结构中以数据服务器连接速度提供数据存取的方法,所述方法包括如下步骤在包括至少一个存储装置的数据服务器上存储文件-块数据;在数据服务器从元数据服务器接收与主机的输入/输出请求相关联的输入/输出操作细节;建立从数据服务器到由接收到的输入/输出操作细节标识的主机处的存储器地址的直接连接;并且直接在主机的存储器地址和数据服务器之间传送由接收到的输入/输出操作细节涉及的文件-块数据。
33.一种可由计算机读取的程序存储装置,所述介质有形地包含可由计算机执行的一个或多个指令程序,以便执行用于提供具有元数据存储虚拟化并且以数据服务器连接速度进行数据存取的分布式文件服务体系结构的方法,所述方法包括如下步骤从主机发布包括数据目标位置的文件存取请求;处理包括数据目标位置的文件存取请求;响应于包括数据目标位置的文件存取请求的处理,发布远程直接存储器存取通道端点连接;并且直接在主机处的存储器和数据服务器之间传送与文件存取请求相关联的文件-块数据。
全文摘要
提供了一种用于提供具有元数据存储虚拟化并且以数据服务器连接速度进行数据存取的分布式文件服务体系结构的方法、设备和程序存储装置。主机发布包括数据目标位置的文件存取请求。对包括数据目标位置的文件存取请求进行处理。响应于所述文件存取请求的处理而发布远程直接存储器存取(RDMA)通道端点连接。直接在主机处的存储器和数据服务器之间进行与文件存取请求相关联的文件-块数据的RDMA传送。
文档编号G06F11/20GK1771495SQ200480002421
公开日2006年5月10日 申请日期2004年5月6日 优先权日2003年5月7日
发明者理查德·V·基斯利, 菲利普·D·奈特 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1