CN101449559B - 分布式存储器 - Google Patents
分布式存储器 Download PDFInfo
- Publication number
- CN101449559B CN101449559B CN2007800184107A CN200780018410A CN101449559B CN 101449559 B CN101449559 B CN 101449559B CN 2007800184107 A CN2007800184107 A CN 2007800184107A CN 200780018410 A CN200780018410 A CN 200780018410A CN 101449559 B CN101449559 B CN 101449559B
- Authority
- CN
- China
- Prior art keywords
- server
- file
- distributed memory
- storage
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
对对含有多个存储装置的分布式存储器的访问进行管理的服务器包括文件服务管理器和分配管理器,文件服务管理器用于接收在分布式存储器中存储文件的请求,分配管理器用于选择在存储文件时要使用的分布式存储器内的集群。分配管理器配置成与其它服务器中的至少一个其它的分配管理器进行通信,以便确定由哪个分配管理器来选择要被使用的集群。
Description
技术领域
本发明涉及分布式存储系统、分布式存储管理系统以及对分布式存储器的访问进行管理的服务器。
背景技术
对个人和商务用途的数据存储器的需求在不断上升。
例如,随着数字记录和重放装置(如数码相机和音乐播放器)越来越流行,需要存储大量数据(比如大于10G字节)的个人用户的数量在增加。而且,当使用这些装置时,产生或下载的内容的量在积累,因此要存储的数据的量也在增加。
对数据存储的要求也在变化。
传统上,数据文件(比如数码照片)被存储在诸如磁性硬盘的存储装置上的单个存储单元(location),例如存储在家用电脑上。然而,用户不断地希望能够远程甚至在运动中访问他们的数据。而且,用户也可能希望把他们的数据与其它用户共享。
含有一个以上存储装置且用虚拟文件系统来管理的分布式存储器能够提供解决这些问题的方案。
能够增加存储装置以提供额外容量。而且,对用户而言,似乎他们的数据被存储在单个的、可访问的“存储单元”,即使物理上该数据可被完全不同地存储到许多存储装置,甚至其可能随着时间推移而改变。用户也能授予其它用户(如朋友或工作同事)访问权,允许他们读甚至更新他或她的文件。
使用虚拟文件系统的常规分布式存取系统是已知的。
US-A-5873085记载了具有多个服务器的系统,每个服务器管理各自的文件系统且至少一个服务器操作虚拟文件管理系统。该虚拟文件管理系统包含管理表,该表存有虚拟文件标识符、服务器名以及每个虚拟文件的真实文件名。如果服务器从客户机接收请求以读或修改指定文件而该服务器未保存该文件,那么该服务器就识别另外哪个服务器存有该文件,并修改该请求以指示另外那个服务器直接响应该客户机且把修改后的请求向另外那个服务器转发。
该系统存在服务器也存储数据的缺点。这会限制能够添加到任一服务器的存储的量。增加更多的服务器可以提供额外的存储,但是这比仅仅增加额外的存储装置成本更高。
US-A-20050246393记载了具有虚拟文件系统的网络存储系统和具有多个智能存储节点和多个用于识别和访问存储指定目标文件的智能存储节点的控制节点(也称为“分布式目标存储管理器”)的存储器集群(storage cluster)。每个分布式目标存储管理器保存查找表和状态表,查找表标识存储在智能存储节点中的目标文件的存储单元,状态表存储与智能存储节点的总容量和可用状态有关的信息。状态表用来选择存储新目标文件的智能存储节点。如果网络存储系统收到在新目标文件中存储数据的请求,那么负载平衡结构基于有效性选择分布式目标存储管理器之一,并向所选择的分布式目标存储管理器转发该请求。反过来,分布式目标存储管理器选择智能存储节点。
不同的分布式目标存储管理器负责存储新目标文件。因此,至少在最初,每个分布式目标存储管理器只存储与它们负责的文件有关的信息。因此,如果分布式目标存储管理器收到对它们不负责的给定文件进行访问的请求,那么它们就向智能存储节点广播对该文件的请求。所以,必须给智能存储节点提供足够的处理能力以处理该请求。这使增加存储节点更困难。
本发明试图提供改进的服务器,用于对对分布式存储器的访问进行管理,并因而提供改进的分布式存储系统。
发明内容
依照本发明的第一方面,提供了用于管理对包含多个存储装置的分布式存储器的访问的服务器,该服务器配置成与至少一个其它的服务器通信以便确定所述服务器中的哪一个服务器选择在存储数据时要被使用的分布式存储器的一部分。
因此,单个服务器控制数据的存储,有助于避免存储器的并行分配的问题,且有助于使与该数据有关的信息被顺序地存储在单个元数据服务器中。
该服务器可以包括:第一控制器,用于从客户机接收对在分布式存储器中存储数据的请求;以及,第二控制器,用于选择在存储数据时要用的分布式存储器的所述部分。第二控制器配置成与至少一个其它的第二控制器进行通信以便确定第二控制器中的哪一个控制器选择要被使用的分布式存储器的所述部分。
该服务器可被配置成响应另一个服务器将选择要被使用的分布式存储器的所述部分的确定来从另一个服务器接收分布式存储器的所述部分的身份(identity),以及响应它将选择要被使用的分布式存储器的所述部分的确定来选择分布式存储器的所述部分。
该服务器可被配置成选择所述分布式存储器的所述部分内的存储装置之一。
该服务器还可以包括第三控制器,用于响应来自第二控制器的指令选择所述分布式存储器的所述部分内的存储装置之一。
该服务器可以被配置成在所述文件已被存储在一个存储装置后使所述文件被复制到所述分布式存储器的所述部分内的其它存储装置中。该服务器可以被配置成在所述文件已被存储后向元数据服务器发送与所述文件有关的信息。该服务器可以被配置成从元数据服务器接收对应于所述文件的虚拟文件标识符,并向该客户机发送所述虚拟文件标识符。
该服务器可以被配置成响应读或更新文件的请求,向至少一个元数据服务器中的任一元数据服务器发送对与所述文件有关的信息的请求。
存储装置中的至少一个存储装置可由诸如存储器访问网络的远程存储系统提供。
依照本发明的第二方面,提供了分布式存储管理系统,该管理系统包括多个访问管理服务器和用于存储与存储在所述分布式存储器中的文件有关的信息的元数据服务器。
元数据服务器可和访问管理服务器分离。
该分布式存储管理系统还可以包括至少一个另外的元数据服务器,其中,访问管理服务器均被配置成向元数据服务器但不向所述至少一个另外的元数据服务器发送与文件相关的信息。访问管理服务器均被配置成向所述至少一个另外的元数据服务器中的任意元数据服务器发送对与文件相关的信息的请求。
依照本发明的第三方面,提供了分布式存储系统,该存储系统包括分布式文件管理系统和包含多个存储装置的分布式存储器。
该存储装置可包括多种类型的存储装置。
依照本发明的第四方面,提供了操作用于管理对含有多个存储装置的分布式存储器的访问的服务器的方法,该方法包括与至少一个其它的服务器通信以便确定所述服务器中哪一个服务器选择在存储数据时要被使用的分布式存储器的那部分。该方法可以包括从客户机接收在所述分布式存储器中存储数据的请求。
该方法可以包括:第一控制器接收在分布式存储器中存储数据的请求;以及第二控制器与至少一个其它的第二控制器通信以便确定所述第二控制器中的哪一个控制器选择要被使用的分布式存储器的那部分。
该方法可以包括:确定另一个服务器将选择要被使用的分布式存储器的所述部分;以及从另一个服务器接收要被使用的分布式存储器的所述部分的身份。该方法可以包括:确定所述服务器将选择要被使用的分布式存储器的一部分;以及选择要被使用的分布式存储器的一部分。该方法可以包括选择要被使用的所述分布式存储器内的所述部分的存储装置之一。该方法可以包括在分布式存储器的所选部分中存储数据。
该方法可以包括在文件已被存储到一个存储装置之后使所述文件被复制到所述分布式存储器的所述部分内的其它存储装置。该方法可以包括在已存储该文件之后向元数据服务器发送与该文件有关的信息。该方法可以包括从元数据服务器接收对应于该文件的虚拟文件标识符并向客户机发送该虚拟文件标识符。
该方法还可以包括:接收读或更新文件的请求;以及向至少一个元数据服务器中的任一元数据服务器发送对与该文件相关的信息的请求。
依照本发明的第五方面,提供了包括指令的计算机程序,所述指令在被计算机执行时使计算机执行所述方法。
依照本发明的第六方面,提供了存储该计算机程序的计算机可读媒介。
附图说明
现以示例方式并参考附图说明本发明的实施例,其中:
图1是依照本发明的分布式存储系统的示意图;
图2图解了用于图1所示服务器的计算机系统;
图3是用于对分布式存储器的访问进行管理的服务器的框图;
图4是图1所示系统的框图;
图5a和5b图解了在图4所示系统中执行的文件写过程;
图6是操作分配管理器的方法的过程流程图;
图7a和7b图解了在图4所示系统中执行的文件更新过程;以及
图8图解了在图4所示系统中执行的文件读过程。
具体实施方式
参照图1,示出了依照本发明的分布式存储系统1。客户机2、3(在该示例中,桌上型个人电脑2和移动电话手机3)能够通过通信网络4(如Internet)访问分布式存储系统1。为清楚起见,只示出了两个客户机2、3,但是要理解一个客户机或两个以上的客户机能够访问系统1。网络4可以包含多个无线和有线的网络,包括公共陆地移动网络(未示出)或者无线局域网(未示出)。
分布式存储系统1包括用于对分布式存储器的访问进行管理的第一、第二和第三服务器51、52、53(在下文中,服务器51、52、53被称为“文件服务供应者”)。系统1可以具有较少(如一个或两个)或较大数目的文件服务供应者。文件服务(service)供应者51、52、53与存储装置6(例如,以由第三文件服务供应者53提供的硬盘驱动器的形式的第一存储装置61)进行本地通信,或者经通信网络4或经其它通信网络7(如Intranet)与存储装置6进行远程通信。例如,存储区域网络(storage area network:SAN)8可以提供第二存储装置62,网络附属存储器(network attached storage:NAS)9可以提供第三存储装置63,文件服务器10可以提供第四存储装置64。存储装置6的数目可以不同。例如,SAN8或NAS9能够提供一个以上的存储装置,和/或一个以上的SAN或NAS可以被提供,每个提供至少一个存储装置6。可以使用提供存储装置6的其它形式的系统,例如公共互联网文件系统(common internet file system:CIFS)(未示出),可以使用光盘(如DVD)驱动器和USB驱动器。存储装置6的数目可以随时间改变。例如,可以增加或去除存储装置6。也可以改变存储装置6的配置。
存储装置6集中提供单一存储容量26(图4)并配置成集群27(图4),这将在后面作更详细解释。
文件服务供应者5经通信网络7与第一元数据服务器111、并与用于在虚拟文件参考与真实文件之间进行映射的、可选的第二元数据服务器112进行通信。文件服务供应者5能够从第一元数据服务器111读元数据并向第一元数据服务器111写元数据。然而,文件服务供应者51、52、53只能从第二元数据服务器112读元数据。第一和第二元数据服务器111、112在下文中被分别称为“主动”(active)和“被动”(passive)元数据服务器111、112。主动元数据服务器111可以根据需要或者响应预定的触发把元数据(例如周期性地)复制到被动元数据服务器112。可以提供一个以上被动元数据服务器112。而且,可以在两个或两个以上的服务器之间分配每一元数据服务器111、112。
又参照图2,用软件在各自的计算机系统12上实现文件服务供应者5和元数据服务器11。每一计算机系统12包括操作上通过总线16连接的处理器13、内存14和输入/输出(I/O)接口15。计算机系统12可包括一个以上的处理器。I/O接口15操作上连接到网络接口17、硬盘驱动器或驱动器形式的存储器18、以及(可选的)可移动存储器19。可暂时或永久提供包括诸如键盘(未示出)和显示器(未示出)的外围装置的其它单元。
在被计算机系统12执行时使计算机12提供文件服务供应者操作或元数据服务器操作的计算机程序代码201、202存储在硬盘驱动器18上或者被加载到内存14中以供处理器13执行。计算机程序代码201、202可以存储在可移动存储器19上,或者可以从可移动存储器19被传送,或者可以从远程的源(未示出)通过网络接口17被传送。
参照图1和3,每一文件服务供应者5包括与客户机2、3接口(interface)的第一服务或控制器21、用于选择存储器集群27(图4)的第二服务或控制器22、用于选择集群27(图4)内的存储装置6的第三服务或控制器23、用于控制集群27(图4)内和集群27(图4)之间的数据复制的第四服务或控制器24、以及与元数据服务器111、112接口的第五服务或控制器25。
第一服务21管理从客户机2、3接收的对访问文件(如读写文件)的请求,也管理图3所示的其它组成部分。第一服务21在这里被称为“文件服务管理器”。
在写数据时,第二服务22选择集群27(图4),在这里被称为“分配管理器”。分配管理器22与其它分配管理器22通信,这将在后面作更详细解释。一个分配管理器22M(图4),称为“主分配管理器”,被选中来负责选择集群27(图4),而另外的分配管理器22充当该主分配管理器22M的代理(图4)。可以改变被选中的分配管理器22M。
在写或读的过程中,第三服务23选择存储装置6并确认其有效性。在这里,第三服务23被称为“集群管理器”。集群管理器23触发将一个存储装置6中的文件流复制到其它存储装置6。集群管理器23也在存储装置6之间分配读过程以增加吞吐量。集群管理器23也收集与客户机到存储装置的吞吐量有关的数据。在写或读的过程中,可以使用吞吐量数据来选择具有对客户机2、3的更快响应的存储装置6。
第四服务24在这里被称为“复制服务”。如前所释,复制服务24控制集群27(图4)内和集群27(图4)之间的数据复制。倘若存储装置6中的任意存储装置不可用,集群管理器23就记录复制事务。
第五服务25在这里被称为“元数据服务器接口”。元数据服务器接口25向主动元数据服务器111发送元数据(如关于文件的信息),并从主动或被动元数据服务器111、112检索元数据。
参照图4,存储装置6提供单一的存储容量或存储空间26。存储装置6设置到集群27中,其中每一存储装置6存储与在相同集群27中的另一存储装置6相同的数据,即一集群27中的存储装置6是另一个的镜像。为清楚起见,只图解了两个集群27。在一集群27中,存储装置6具有不同的访问配置,例如网络地址。每一文件服务供应者5能够访问每一集群27中的至少一个存储装置6。
元数据服务器111、112存储第一、第二、第三、第四、第五元数据表28、29、30、31、32。元数据包括用于在应用过滤(如文件压缩和病毒检查)之前把虚拟文件参考(file reference)映射到物理文件参考的信息和文件属性。元数据也包括诸如文件夹树、文件夹内容数据以及每一文件和文件夹的访问控制列表的信息。
第一表28(下文中被称为“虚拟文件系统实体表”)存储虚拟实体标识符33、集群标识符34、每一实体的实体类型35(如文件或目录)、以及在物理存储器标识符36中的路径。
第二表29(下文中被称为“虚拟文件系统访问控制列表”)存储虚拟实体标识符37和每一实体的访问列表38,并定义用户(即客户机用户)的安全特权。虚拟文件系统访问控制列表29列出拥有实体访问权的用户及其与该实体有关的访问权集合,例如读权、写权、创建权、删除权和修改权。
由客户机2、3发出的对实体进行访问的每一请求指定用户的身份。因此,文件服务供应者5每次收到对给定实体的访问请求时,它将查询虚拟文件系统访问控制列表29(比如通过检索与该实体和该用户相关的列表29的一部分)以核实该用户的访问权。
第三表30(下文中被称为“虚拟文件系统实体共享列表”)存储虚拟实体标识符39和每个实体的访问列表40,并定义被注册用户邀请来共享文件浏览的未注册用户(被称为“共享浏览者”)的访问权。除了访问权通常受限以外(例如,只读),虚拟文件系统访问控制列表30与虚拟文件系统访问控制列表29相似。
以不同于注册用户的方式识别和认证共享浏览者。识别和认证可以由具有与分布式存储系统1所建立的信任关系的外部系统(未示出)来执行。
虚拟文件系统访问控制列表30可以省略,例如,在不允许共享浏览者访问分布式存储系统1时。
第四表31(下文中被称为“逻辑集群元数据表”)存储每一集群27的(物理)存储装置标识符42和(逻辑)集群标识符41。逻辑集群元数据表31允许集群管理器23识别集群27中的存储装置6。
第五表32(下文中被称为“逻辑集群关系表”)存储每一集群27的关系类型45、第一集群标识符43、和第二集群标识符44,并描述集群27间的关系。例如,逻辑集群关系表32可以指定第一集群27A是第二集群27B的复制物(即镜像)。或者,逻辑集群关系表32可以指定第一集群27A是存储在第二集群27B中的依照预定标准而存储的文件的档案(archive)。档案可以包含很少被访问的文件或在特定日期之前创建的文件。因此,第一集群27A不需要存储被存档在第二集群27B中的文件。例如,被存档的文件可以被存储在磁带存储系统中。
系统1能够被用来向客户机2、3提供文件服务,下文中将作详细描述。不以会话方式交换请求和响应,因此不同的文件服务供应者5能够处理来自同一客户机2、3的不同请求。所以,文件服务供应者5不需要存储与客户机2、3的状态有关的任何信息。而是,客户机2、3能够存储关于其状态的信息,并在向文件服务供应者5发送请求时提供该信息。例如,请求可以包括参照存储在虚拟文件系统访问控制列表29中的访问权确认用户所需的认证信息。
写(创建文件)
现参照图4、5a和5b说明文件写过程。
客户机(该示例中为个人电脑2)向文件服务供应者5的文件服务管理器21发送文件写请求46(步骤W1)。依照路由机制或者由网络4(图1)中的负载平衡器(未示出)选择文件服务供应者5。文件写请求46包含要被写的、含有文件数据48和文件属性49(比如文件类型和文件大小)的文件47。
文件服务管理器21向分配管理器22转发集群分配请求50(步骤W2)。请求50可以包含可用来选择集群27的文件属性49。
主分配管理器22M选择集群27,比如基于文件属性49和/或诸如可用空间及使用百分率的集群属性与状态(未示出)、或者基于诸如循环(round robin)的某些其它的依据选择集群27(步骤W3)。
在选择集群27之前,分配管理器22确定其是否是主分配管理器22M。如果分配管理器22是主分配管理器22M,那么它选择集群27。如果不是,分配管理器22向分配集群27的主分配管理器22M转发该请求,并返回集群标识符。
分配管理器22通过指令51调用集群管理器23来选择已选集群27内的存储装置6(步骤W4)。集群管理器23选择存储装置6(步骤W5)。集群管理器23基于文件服务管理器21和存储装置6之间的最高网络可用性做出选择。使用由分配管理器22和集群管理器23在预定时刻(比如周期性地)所收集的网络状态信息可以确定网络可用性。
集群管理器23向存储装置6发送指令52以创建具有在存储装置6中的给定路径的文件流53(步骤W6)。存储装置6创建文件流53(步骤W7)。唯一的文件句柄与文件流53相关联,其(用指针P)指向位于存储装置6的文件流53中的第一可写块。文件句柄(其识别文件流53)的身份54被返回到集群管理器23(步骤W8)。
集群管理器23向分配管理器22返回文件句柄身份54、路径55和集群身份56(步骤W9),分配管理器22又向文件服务管理器21返回该信息(步骤W10)。
文件服务管理器21对文件数据48应用写过滤(如压缩和/或病毒检查)(步骤W11),并把已过滤的文件数据57写到打开的文件流53(步骤W12)。用已过滤的文件数据填充文件流53。在填充块时,存储装置增加指针P以指向下一可用空块。
一旦写入了已过滤的文件数据57,文件服务管理器21就向集群管理器23发送指令59以关闭文件流53(步骤W13)。集群管理器23向存储装置6发送指令60以关闭文件流53(步骤W14)。存储装置6向文件流52写入文件结束(EOF)标记(W15),释放指针并更新存储系统分配表(未示出),比如由存储装置6所提供的文件分配表。
接着,集群管理器23通过向复制服务24(图2)发送指令(未示出)来触发位于相同集群27的其它存储装置6中的已存储文件流53的复制(步骤W16)。
必要时,文件服务管理器21经元数据服务器接口25向元数据服务器111发送指令62以把元数据写入到虚拟文件系统实体表28、虚拟文件系统访问控制列表29、虚拟文件系统实体共享列表30、逻辑集群元数据表31以及逻辑集群关系表32(步骤W17)。元数据服务器111写入文件信息(步骤W18),并向文件服务管理器21返回虚拟文件标识符63(步骤W19)。文件服务管理器21向客户机2发送文件已写入的确认64,包括虚拟文件标识符63(步骤W20)。
如前所述,分配管理器22确定它是否是主分配管理器22M。接下来,详细说明该实现方法。
选择主分配管理器
参照图4和6,分配管理器22接收分配集群27的请求48(图5a)(步骤S1)。分配管理器22检查主分配管理器22M是否已知(步骤S2)。
如果分配管理器22知道主分配管理器22M的身份,那么分配管理器22确定它是否是主分配管理器22M(步骤S3)。如果是,那么分配管理器22处理该请求,并选择集群27,如前所述(步骤S4)。如果不是,那么分配管理器22向主分配管理器22M转发该请求(步骤S5)。分配管理器22从主分配管理器22M接收集群标识符。
如果分配管理器22不知道主分配管理器22M的身份,那么分配管理器22向其它分配管理器22发送查询65,寻找主分配管理器的身份(步骤S6)。分配管理器22等待应答(步骤S7),并检查该查询是否“超时”,即是否在预定时间消逝前收到响应(步骤S8)。
如果分配管理器22在查询超时前收到应答66,那么它存储主分配管理器22M的身份(步骤S9),并向主分配管理器22M转发该请求(步骤S5)。
如果分配管理器22在查询超时前未收到任何应答,那么它发送消息67声明它是主分配管理器(步骤S11)。该分配管理器22等待反对(步骤S11),并检查该消息67是否超时(步骤S12)。
如果该分配管理器22在该请求超时前未收到任何反对,那么它把自己记录为主分配管理器22M(步骤S13),并处理该请求以选择集群(步骤S4)。
但是,如果该分配管理器22收到反对68,那么它向其它分配管理器22重新发送身份查询65(步骤S6)。
分配管理器22不断地监听查询65和消息67。
如果它收到查询65或消息67且它是主分配管理器22M,那么它分别发送响应66或反对68。如果主分配管理器22M从另一个分配管理器22收到消息67,或者如果文件服务供应者5被停用(如被关闭),那么可以把该主分配管理器22M降级(relegate)。
写(更新文件)
现参照图4、7a和7b说明文件更新过程。
文件更新过程与先前所述的文件写过程相似。简言之,分配管理器22释放为文件的较旧版本所分配的空间,为该文件的较新版本分配空间并写入该文件的较新版本,就像它是新创建的文件。
客户机2向文件服务供应者5的文件服务管理器21发送文件更新请求69(步骤U1)。该文件写请求69包括含有新文件数据71和新文件属性72的更新文件70以及旧文件(如先前存储的文件47)的虚拟文件标识符73。
文件服务管理器21向主动元数据服务器111发送查询74以便找出存储旧文件的那个集群27(步骤U2)。或者,文件服务管理器21可以向被动元数据服务器112发送该查询74。主动元数据服务器111返回旧的集群标识符75、存储装置6中的路径76和旧的文件属性77(步骤U3)。
更新过程(步骤U4至U22)以相似方式进行先前所述的写入过程的步骤W2至W20。
文件服务管理器21向分配管理器22转发集群分配请求78(步骤U4),主分配管理器22M选择集群27(步骤U5)。
分配管理器22发送指令79以选择在所选集群27内的存储装置6(步骤U6)。集群管理器23选择存储装置6(步骤U7)。集群管理器23向该存储装置6发送指令80以创建具有在该存储装置6中的给定路径的新文件流81(步骤U8)。该存储装置6创建文件流81(步骤U9),并向集群管理器23传递新的文件句柄标识符82(步骤U10)。集群管理器23向分配管理器22返回该新数据流81、对应路径83和集群身份84(步骤U11)。分配管理器22向文件服务管理器21转发该信息(步骤U12)。
文件服务管理器21对新的文件数据71应用写过滤(filter)(步骤U13),并向打开的文件流81写入新的已过滤文件数据85(步骤U14)。
一旦已写入新的已过滤的流85,文件服务管理器21就向集群管理器23发送指令87以关闭文件流81(步骤U15)。
集群管理器23向存储装置6发送指令88以便关闭文件流81(步骤U16)。存储装置6向文件流81写入文件结束(EOF)标记89(步骤U17),释放指针并更新存储装置文件系统分配表(未示出)。
集群管理器23通过向复制服务24(图2)发送指令(未示出)来触发在位于相同集群27的其它存储装置6中的文件流81的复制(步骤U18)。
必要时,文件服务管理器21经元数据服务器接口25向元数据服务器111发送指令90以便写入更新的元数据(步骤U19)。元数据服务器111写入更新的文件信息(步骤U20),并向文件服务管理器21返回新的虚拟文件标识符91(步骤U21)。文件服务管理器21向客户机2发送该文件已被写入的确认92(步骤U22)。
文件服务管理器21向集群管理器23发送指令93以便删除旧文件(步骤U23)。集群管理器22查找存储旧文件流的存储装置6(步骤U24),并向该存储装置6发送指令94以便删除旧文件流(步骤U25)。集群管理器23触发该存储装置6的复制(步骤U26)。
读
现参照图4和8说明文件读过程。
客户机2向文件服务供应者5的文件服务管理器21发送文件读请求95(步骤R1)。文件读请求95包含文件(例如先前存储的文件42或者更新的文件68)的虚拟文件标识符96。
文件服务管理器21向被动元数据服务器112发送查询97以便找出存储该文件的那个集群27(步骤R2)。文件服务管理器21可以向主动元数据服务器111发送该查询97。
被动元数据服务器112返回集群标识符98、在存储装置6中的路径99以及文件属性100(步骤R3)。
文件服务管理器21向集群管理器23发送请求101以便选择存储装置6(步骤R4)。集群管理器23依照最高网络可用性选择由集群标识符98所确定的集群27内的存储装置6(步骤R5),并向该存储装置6发送指令102以便打开文件流103(步骤R6)。如果集群管理器23未能访问该存储装置6,那么它参考逻辑集群关系表32以确定该集群27是被镜像还是被存档。如果这样,集群管理器23就向另一个存储装置6发送新指令(未示出)。存储装置6从文件流99中检索文件数据104,并把它转发到集群管理器23(步骤R7)。集群管理器23向文件服务管理器21传递文件数据104(步骤R8)。文件服务管理器21对该文件数据104应用读过滤(步骤R9),并向客户机2转发已过滤的数据流105(步骤R10)。
如前所述,用户可以向被称为“共享浏览者”的其它的用户授予访问权。该用户可以向共享浏览者授予访问权,通过向共享浏览者发送包含诸如以识别文件服务供应者5和虚拟文件的统一资源定位符(URL)形式的链路的电子邮件或者消息把文件或文件夹的地址通报给共享浏览者,以便访问文件或文件夹。共享浏览者选择该链路,因而向文件服务供应者5发送请求以便检索该文件或文件夹。
上文所述的系统1可以被用来提供文件服务而不管存储器的内部结构。用冗余站点上的可插数据流处理,它可以提供在统一存储空间(consolidated storage space)上分布式文件输入和输出。
可由移动电话网络供应商向拥有移动电话手机的用户提供该文件服务,也可由技术集成商和由公司提供该文件服务。
系统1把文件元数据从文件数据解耦(decouple),并结合成真实文件系统(即存储装置),以便它们作为单个存储单元出现。这可有助于使存储装置的限制(例如存储容量、存储装置吞吐量等)最小化或得以避免。
系统1可以处理文件流,并不需要把文件流分成块以供处理。
可以理解可以对上文所述的实施例作许多改变。
Claims (28)
1.一种用于管理对包括多个存储装置的分布式存储器的访问的服务器,所述服务器配置成与至少一个其它的服务器进行通信以便确定所述服务器和所述至少一个其它的服务器中的哪一个服务器选择在存储数据时要被使用的分布式存储器的一部分,其中,所述服务器包括:
内存;以及
至少一个与所述内存通信的处理器,
其中,所述服务器被配置为提供:
第一控制器,用于从客户机接收在所述分布式存储器中存储数据的请求;以及
第二控制器,用于选择在存储所述数据时要用的所述分布式存储器的所述部分,所述第二控制器配置成与至少一个其它的第二控制器进行通信以便确定所述第二控制器和至少一个其它第二控制器中的哪一个控制器选择要被使用的分布式存储器的所述部分。
2.如权利要求1所述的服务器,被配置成响应有关另一个服务器将选择要被使用的分布式存储器的所述部分的确定而从另一个服务器接收所述分布式存储器的所述部分的身份。
3.如权利要求1所述的服务器,被配置成响应有关它将选择要被使用的分布式存储器的所述部分的确定而选择分布式存储器的所述部分。
4.如权利要求1所述的服务器,被配置成选择所述分布式存储器的所述部分内的存储装置之一。
5.如从属于权利要求1的权利要求4所述的服务器,还包括:
第三控制器,用于响应来自所述第二控制器的指令而选择分布式存储器的所述部分内的存储装置之一。
6.如权利要求4或5所述的服务器,被配置成在所述数据已被存储在一个存储装置后使所述数据被复制到所述分布式存储器的所述部分内的其它存储装置中。
7.如权利要求1所述的服务器,被配置成在所述数据已被存储后向元数据服务器发送与所述数据相关的信息。
8.如权利要求7所述的服务器,被配置成从所述元数据服务器接收对应于所述数据的虚拟文件标识符。
9.如权利要求8所述的服务器,被配置成向所述客户机发送所述虚拟文件标识符。
10.如权利要求1所述的服务器,被配置成响应读或更新文件的请求向至少一个元数据服务器中的任意一个元数据服务器发送对与所述文件有关的信息的请求。
11.如权利要求1所述的服务器,其中,所述存储装置中的至少一个存储装置由远程存储系统提供。
12.如权利要求11所述的服务器,其中,所述远程存储系统包括存储访问网络。
13.一种分布式存储管理系统,包括:
多个如前面任一项权利要求所述的用于管理对包括多个存储装置的分布式存储器的访问的服务器;以及
元数据服务器,用于存储与存储在所述分布式存储器中的文件有关的信息。
14.如权利要求13所述的分布式存储管理系统,其中,所述元数据服务器与所述访问管理服务器分离。
15.如权利要求13或14所述的分布式存储管理系统,还包括至少一个另外的元数据服务器,其中,所述访问管理服务器均被配置成向所述元数据服务器但不向所述至少一个另外的元数据服务器发送与文件相关的信息。
16.如权利要求15所述的分布式存储管理系统,其中,所述访问管理服务器均被配置成向所述至少一个另外的元数据服务器中的任意元数据服务器发送对与文件相关的信息的请求。
17.一种分布式存储系统,包括:
如权利要求13-16中任一项权利要求所述的分布式存储管理系统;以及
包括多个存储装置的分布式存储器。
18.如权利要求17所述的分布式存储系统,其中,所述存储装置包括多种类型的存储装置。
19.一种操作服务器的方法,所述服务器用于管理对包括多个存储装置的分布式存储器的访问,所述方法包括:
第一控制器从客户机接收在所述分布式存储器中存储数据的请求;
按照下列方式与至少一个其它的服务器进行通信以便确定所述服务器和所述至少一个其它的服务器中的哪一个服务器选择在存储数据时要被使用的分布式存储器的部分:
第二控制器与至少一个其它的第二控制器进行通信以便确定所述第二控制器和所述至少一个其它的第二控制器中的哪一个控制器选择要被使用的分布式存储器的所述部分。
20.如权利要求19所述的方法,包括:
确定另一个服务器将选择要被使用的分布式存储器的所述部分;以及
从另一个服务器接收要被使用的所述分布式存储器的所述部分的身份。
21.如权利要求19所述的方法,包括:
确定所述服务器将选择要被使用的分布式存储器的一部分;以及
选择要被使用的所述分布式存储器的一部分。
22.如权利要求19所述的方法,还包括:
选择要被使用的所述分布式存储器的所述部分内的所述存储装置之一。
23.如权利要求22所述的方法,还包括:
在所述数据已被存储到一个存储装置之后,使所述数据被复制到所述分布式存储器的所述部分内的其它存储装置中。
24.如权利要求19所述的方法,包括:
在已存储所述数据之后,向元数据服务器发送与所述数据相关的信息。
25.如权利要求24所述的方法,包括:
从所述元数据服务器接收对应于所述数据的虚拟文件标识符。
26.如权利要求25所述的方法,包括:
向所述客户机发送所述虚拟文件标识符。
27.如权利要求19所述的方法,包括:
接收读或更新数据的请求;以及
向至少一个元数据服务器中的任一个服务器发送对与数据文件相关的信息的请求。
28.如权利要求19权利要求所述的方法,包括:
在所述分布式存储器的所选部分中存储所述数据。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP06114443.2A EP1860846B1 (en) | 2006-05-23 | 2006-05-23 | Method and devices for managing distributed storage |
EP06114443.2 | 2006-05-23 | ||
US11/439,784 | 2006-05-23 | ||
US11/439,784 US8255420B2 (en) | 2006-05-23 | 2006-05-23 | Distributed storage |
PCT/EP2007/053657 WO2007134918A1 (en) | 2006-05-23 | 2007-04-13 | Distributed storage |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101449559A CN101449559A (zh) | 2009-06-03 |
CN101449559B true CN101449559B (zh) | 2013-08-21 |
Family
ID=38750737
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800184107A Expired - Fee Related CN101449559B (zh) | 2006-05-23 | 2007-04-13 | 分布式存储器 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8255420B2 (zh) |
CN (1) | CN101449559B (zh) |
Families Citing this family (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008269300A (ja) * | 2007-04-20 | 2008-11-06 | Hitachi Ltd | 計算機システム、中間ノードおよびログ管理方法 |
US9413825B2 (en) * | 2007-10-31 | 2016-08-09 | Emc Corporation | Managing file objects in a data storage system |
US9122397B2 (en) * | 2007-10-26 | 2015-09-01 | Emc Corporation | Exposing storage resources with differing capabilities |
JP4569676B2 (ja) * | 2008-07-02 | 2010-10-27 | 株式会社デンソー | ファイル操作装置 |
SE533007C2 (sv) | 2008-10-24 | 2010-06-08 | Ilt Productions Ab | Distribuerad datalagring |
US8255373B2 (en) * | 2008-10-24 | 2012-08-28 | Microsoft Corporation | Atomic multiple modification of data in a distributed storage system |
US9996572B2 (en) * | 2008-10-24 | 2018-06-12 | Microsoft Technology Licensing, Llc | Partition management in a partitioned, scalable, and available structured storage |
US8825789B2 (en) * | 2008-12-16 | 2014-09-02 | Netapp, Inc. | Method and apparatus to implement a hierarchical cache system with pNFS |
KR101950997B1 (ko) * | 2009-01-28 | 2019-02-21 | 삼성전자주식회사 | 컨텐츠 태그를 이용한 컨텐츠 관리 방법 및 그 장치 |
US20100268673A1 (en) * | 2009-04-16 | 2010-10-21 | The Boeing Company | Associate memory learning agent technology for travel optimization and monitoring |
US20100274886A1 (en) * | 2009-04-24 | 2010-10-28 | Nelson Nahum | Virtualized data storage in a virtualized server environment |
CN101997823B (zh) * | 2009-08-17 | 2013-10-02 | 联想(北京)有限公司 | 一种分布式文件系统及其数据访问方法 |
CN101997884B (zh) * | 2009-08-18 | 2014-05-14 | 升东网络科技发展(上海)有限公司 | 分布式存储系统和方法 |
CN102035815B (zh) | 2009-09-29 | 2013-04-24 | 华为技术有限公司 | 数据获取方法、接入节点和系统 |
JP5512215B2 (ja) * | 2009-09-30 | 2014-06-04 | 株式会社日立システムズ | ジョブ処理システム及びその方法、そのプログラム |
CN102209097A (zh) * | 2010-03-31 | 2011-10-05 | 英业达股份有限公司 | 储存局域网络的储存资源的调配系统 |
EP2387200B1 (en) | 2010-04-23 | 2014-02-12 | Compuverde AB | Distributed data storage |
US8683216B2 (en) * | 2010-07-13 | 2014-03-25 | F-Secure Corporation | Identifying polymorphic malware |
US8868676B2 (en) * | 2010-10-11 | 2014-10-21 | International Business Machines Corporation | Methods and systems for verifying server-storage device connectivity |
CN102594852B (zh) * | 2011-01-04 | 2016-03-30 | 中国移动通信集团公司 | 数据访问方法、节点及系统 |
CN102082832B (zh) * | 2011-01-24 | 2014-08-13 | 中国人民解放军国防科学技术大学 | 一种分布式文件系统中的数据存储方法和装置 |
US9118642B2 (en) * | 2011-06-05 | 2015-08-25 | Apple Inc. | Asset streaming |
US8769138B2 (en) | 2011-09-02 | 2014-07-01 | Compuverde Ab | Method for data retrieval from a distributed data storage system |
US8650365B2 (en) | 2011-09-02 | 2014-02-11 | Compuverde Ab | Method and device for maintaining data in a data storage system comprising a plurality of data storage nodes |
US9626378B2 (en) | 2011-09-02 | 2017-04-18 | Compuverde Ab | Method for handling requests in a storage system and a storage node for a storage system |
US8997124B2 (en) | 2011-09-02 | 2015-03-31 | Compuverde Ab | Method for updating data in a distributed data storage system |
US9021053B2 (en) | 2011-09-02 | 2015-04-28 | Compuverde Ab | Method and device for writing data to a data storage system comprising a plurality of data storage nodes |
US8645978B2 (en) | 2011-09-02 | 2014-02-04 | Compuverde Ab | Method for data maintenance |
US9628438B2 (en) * | 2012-04-06 | 2017-04-18 | Exablox | Consistent ring namespaces facilitating data storage and organization in network infrastructures |
US9064106B2 (en) * | 2012-04-25 | 2015-06-23 | Hitachi, Ltd. | Method and apparatus to keep consistency of ACLs among a meta data server and data servers |
CN102694868B (zh) * | 2012-06-07 | 2016-09-07 | 浪潮电子信息产业股份有限公司 | 一种集群系统实现及任务动态分配方法 |
US9552382B2 (en) | 2013-04-23 | 2017-01-24 | Exablox Corporation | Reference counter integrity checking |
EP3008647A4 (en) | 2013-06-12 | 2017-01-25 | Exablox Corporation | Hybrid garbage collection |
WO2014205286A1 (en) | 2013-06-19 | 2014-12-24 | Exablox Corporation | Data scrubbing in cluster-based storage systems |
US9934242B2 (en) | 2013-07-10 | 2018-04-03 | Exablox Corporation | Replication of data between mirrored data sites |
US10248556B2 (en) | 2013-10-16 | 2019-04-02 | Exablox Corporation | Forward-only paged data storage management where virtual cursor moves in only one direction from header of a session to data field of the session |
US9798791B1 (en) * | 2013-12-04 | 2017-10-24 | Ca, Inc. | System and method for filtering files during data replication |
US9985829B2 (en) | 2013-12-12 | 2018-05-29 | Exablox Corporation | Management and provisioning of cloud connected devices |
US9830324B2 (en) | 2014-02-04 | 2017-11-28 | Exablox Corporation | Content based organization of file systems |
US10659523B1 (en) * | 2014-05-23 | 2020-05-19 | Amazon Technologies, Inc. | Isolating compute clusters created for a customer |
CN104537076B (zh) * | 2014-12-31 | 2017-12-08 | 北京奇艺世纪科技有限公司 | 一种文件读写方法及装置 |
US11010341B2 (en) * | 2015-04-30 | 2021-05-18 | Netflix, Inc. | Tiered cache filling |
US10031685B2 (en) * | 2015-05-14 | 2018-07-24 | Quanta Computer Inc. | Power management of storage subsystem |
US20170060924A1 (en) | 2015-08-26 | 2017-03-02 | Exablox Corporation | B-Tree Based Data Model for File Systems |
CN105824867A (zh) * | 2015-12-14 | 2016-08-03 | 广东亿迅科技有限公司 | 一种基于多级分布化元数据的海量文件管理系统 |
US9846553B2 (en) | 2016-05-04 | 2017-12-19 | Exablox Corporation | Organization and management of key-value stores |
US20180139103A1 (en) * | 2016-11-16 | 2018-05-17 | Lei Guo | Management of multiple clusters of distributed file systems |
US11803517B2 (en) * | 2019-04-30 | 2023-10-31 | Microsoft Technology Licensing, Llc | File system for anonymous write |
US11893064B2 (en) * | 2020-02-05 | 2024-02-06 | EMC IP Holding Company LLC | Reliably maintaining strict consistency in cluster wide state of opened files in a distributed file system cluster exposing a global namespace |
US11323355B1 (en) | 2021-09-01 | 2022-05-03 | Microsoft Technology Licensing, Llc | Partition abstraction in distributed computing systems |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5873085A (en) * | 1995-11-20 | 1999-02-16 | Matsushita Electric Industrial Co. Ltd. | Virtual file management system |
CN1554055A (zh) * | 2001-07-23 | 2004-12-08 | �Ƚ�װ�ù�˾ | 高可用性集群虚拟服务器系统 |
CN1619522A (zh) * | 2003-11-17 | 2005-05-25 | 联想(北京)有限公司 | 机群文件服务系统及其输入输出处理方法 |
CN1671134A (zh) * | 2004-03-19 | 2005-09-21 | 株式会社日立制作所 | 存储系统 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6895591B1 (en) * | 1999-10-18 | 2005-05-17 | Unisys Corporation | Virtual file system and method |
US7062648B2 (en) * | 2000-02-18 | 2006-06-13 | Avamar Technologies, Inc. | System and method for redundant array network storage |
US6952737B1 (en) * | 2000-03-03 | 2005-10-04 | Intel Corporation | Method and apparatus for accessing remote storage in a distributed storage cluster architecture |
US6697795B2 (en) * | 2001-06-04 | 2004-02-24 | Hewlett-Packard Development Company, L.P. | Virtual file system for dynamically-generated web pages |
US7386694B1 (en) * | 2002-12-17 | 2008-06-10 | Symantec Operating Corporation | System and method for reading mirrored data |
JP2005266933A (ja) * | 2004-03-16 | 2005-09-29 | Fujitsu Ltd | ストレージ管理システム及びストレージ管理方法 |
US7634566B2 (en) * | 2004-06-03 | 2009-12-15 | Cisco Technology, Inc. | Arrangement in a network for passing control of distributed data between network nodes for optimized client access based on locality |
US7694082B2 (en) * | 2005-07-29 | 2010-04-06 | International Business Machines Corporation | Computer program and method for managing resources in a distributed storage system |
-
2006
- 2006-05-23 US US11/439,784 patent/US8255420B2/en not_active Expired - Fee Related
-
2007
- 2007-04-13 CN CN2007800184107A patent/CN101449559B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5873085A (en) * | 1995-11-20 | 1999-02-16 | Matsushita Electric Industrial Co. Ltd. | Virtual file management system |
CN1554055A (zh) * | 2001-07-23 | 2004-12-08 | �Ƚ�װ�ù�˾ | 高可用性集群虚拟服务器系统 |
CN1619522A (zh) * | 2003-11-17 | 2005-05-25 | 联想(北京)有限公司 | 机群文件服务系统及其输入输出处理方法 |
CN1671134A (zh) * | 2004-03-19 | 2005-09-21 | 株式会社日立制作所 | 存储系统 |
Also Published As
Publication number | Publication date |
---|---|
US20070276838A1 (en) | 2007-11-29 |
US8255420B2 (en) | 2012-08-28 |
CN101449559A (zh) | 2009-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101449559B (zh) | 分布式存储器 | |
JP5584910B2 (ja) | 分散ストレージ | |
JP5160408B2 (ja) | サービス要求を満足するためのリソース・マネージャを選択するための方法、システム、およびコンピュータ・プログラム | |
EP2263159B1 (en) | Rule-based content request handling | |
CN103533006B (zh) | 一种联合云盘客户端、服务器、系统和联合云盘服务方法 | |
US10223506B2 (en) | Self-destructing files in an object storage system | |
CN100517317C (zh) | 用于保持可由客户机通过网络访问的文件集名称空间的方法、系统 | |
CN101729442B (zh) | 一种实现内容共享的方法和装置 | |
US9462056B1 (en) | Policy-based meta-data driven co-location of computation and datasets in the cloud | |
JP5291181B2 (ja) | データファイル転送の記憶および検索 | |
US20150215405A1 (en) | Methods of managing and storing distributed files based on information-centric network | |
US20020103907A1 (en) | System and method of storing data to a recording medium | |
JP2008537816A5 (zh) | ||
JP2003248611A (ja) | 記憶管理統合システム、および、その記憶管理制御方法 | |
JPH01502786A (ja) | ネットワーク化されたディジタルデータ処理システムのためのネーミング・サービス | |
JP2020154902A (ja) | データ管理システム | |
US11221993B2 (en) | Limited deduplication scope for distributed file systems | |
US7797392B2 (en) | System and method for efficiently supporting multiple native network protocol implementations in a single system | |
US20240223655A1 (en) | Data processing system, data processing method, and related apparatus | |
JP4265413B2 (ja) | 仮想私設組織に対するポリシの実施システム及びその方法 | |
JP7071938B2 (ja) | データベース管理サービス提供システム | |
EP1860846B1 (en) | Method and devices for managing distributed storage | |
JP6809581B2 (ja) | データ管理システム | |
JP6798737B1 (ja) | 個人情報管理システム及び個人情報管理方法 | |
Cardenas et al. | Management of a cooperative cache in grids with grid cache services |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130821 Termination date: 20180413 |