用于可扩展网络附接存储系统的装置和方法

文档序号:6422571阅读:165来源:国知局

专利名称::用于可扩展网络附接存储系统的装置和方法
技术领域
:本发明涉及数据存储,更具体地说,涉及用于可扩展的网络附接存储(NAS,NetworkAttachedStorage)系统的装置和方法。
背景技术
:随着因特网商务和以网络为中心的计算日益流行,企业和其他组织正变得越来越依赖于数据。为了处理所有这种信息,已开发了各种类型的存储系统,例如存储阵列网络(SAN)和网络附接存储(NAS)。SAN是基于存储和检索数据块的概念开发的。相反,NAS系统却是基于存储和检索文件的概念。一般的NAS系统是单独的单一(monolithic)节点,该节点执行协议终止、维护文件系统、管理盘空间分配、并且包括许多盘,所有这些都由位于某一位置的一个处理器管理。协议终止是将通过网络从客户接收到的TCP/IP上的NFS或CIFS请求转换为由系统所依赖的操作系统定义的任何内部处理器间通信(IPC)机制。某些NAS系统供应商(例如,CA的NetworkApplianceofSunnyvale)上市了可以处理NFS和CIFS请求的NAS系统,从而使得Unix用户和Windows用户分别可以访问文件。利用这些类型的NAS系统,协议终止节点包括这样的功能将NFS或CIFS请求转变为在该NAS系统中使用的任何通信协议。文件系统维护存储在该文件系统中的所有文件的日志。响应于来自终止节点的请求,文件系统按需检索或存储文件以满足该请求。文件系统也负责管理存储在该系统的各种存储盘中的文件,并且负责锁定正被访问的文件。一般只要打开文件就执行文件锁定,而不管该文件是正被写入还是读出。例如,为了防止第二个用户对当前正由第一个用户进行写入的文件执行写入,该文件被锁定。在读期间也可以锁定文件,以防止该文件正被读取时另一个终止节点企图写或修改该文件。盘控制器承担许多职责,例如访问盘、管理用于备份目的盘上的数据镜像、以及监控盘故障和/或替换。存储盘一般以多种不同的公知配置之一来布置,例如已知级别的独立磁盘冗余阵列(即,RAID1或RAID5)协议终止节点和文件系统通常被实现在运行Windows、Unix或Linux操作系统的计算机服务器中的微代码或软件中。然后,计算机、盘控制器和存储盘阵列被一起组装到机架(rack)中。这样,一般的NAS系统就组装为独立的机架系统并推向市场。当前的NAS系统有许多问题。首先,大多NAS系统都是不可扩展的。每个NAS系统机架维护其自身的文件系统。在企业的信息技术基础设施中,一个机架的文件系统不能与其他机架的文件系统互操作。因此,一个机架的文件系统就不能访问另一个机架的盘空间,反之亦然。因此,NAS系统的性能一般受限于单个机架系统的性能。某些NAS系统是冗余的。但是,即使这些系统也未很好地扩展,并且一般受限于最多只有两个或四个节点。由于前述问题,用于测量NAS系统性能的基准(例如,访问率和全局响应时间)相对贫乏,或者甚至是人为的。常常并行使用这些独立系统中的数个系统,以获得聚合的性能。但是,这并不是真正的扩展,因为这些聚合的系统一般并不是协调的。单独的NAS系统也存在许多缺陷。单独的NAS系统在任何同一时刻可以访问系统的用户数量、在同一时刻可以被供应的文件数量以及数据吞吐量(即,速率或在所请求的文件被供应之前的等待时间)方面都存在限制。当在NAS系统中存储有许多文件、并且存在许多用户时,极大数量的系统资源专门用来管理开销功能,例如,锁定正由用户访问的具体文件。这种开销极大地妨碍了系统的整体性能。现有NAS解决方案的另一个问题在于不能调整系统以适合企业的具体工作量。在单一系统中,无论工作量如何,可以被应用于整个解决方案的处理能力是固定的。但是,某些工作量需要比其他工作量更宽的带宽,某些工作量每秒需要更多的I/O,某些工作量需要非常大数量的文件而只需要适度的带宽和用户,还有其他的工作量需要非常大的总容量而只需要有限的带宽和有限总数的文件。现有系统一般在针对这些各种工作量如何可以优化系统方面非常不灵活。它们一般要求同等扩展所有组件来满足可能仅仅是工作量的一个方面的需求,例如每秒的I/O数量。另一个问题是高度可用性。这类似于前述的可扩展性问题,其中两个或多个节点可以在同一时刻访问相同的数据,但是这是在发生故障期间接管的情况中。现今,支持冗余的系统一般以1对1(1:1)模式工作,由此,一个系统只可以备份一个其他系统。现有NAS系统一般不支持用于多个其他系统的冗余。因此,需要这样的NAS体系结构在需要提供可扩展性、提高性能并且提供高可用性冗余时,该NAS体系结构使得多个终止节点、文件系统和盘控制器节点能够轻易地被添加到系统中。
发明内容为了实现前述需求,根据本发明的目的,公开了用于可扩展的网络附接存储系统的装置和方法。该装置包括可扩展的网络附接存储系统,该网络附接存储系统包括一个或多个终止节点;用于维护文件系统的一个或多个文件服务器节点;用于分别访问存储盘的一个或多个盘控制器节点;以及耦合所述一个或多个终止节点、文件服务器节点和盘控制器节点的交换结构。一个或多个终止节点、文件服务器节点和盘控制器节点可以按需扩展来满足用户的需求。该方法包括接收来自客户的连接请求;基于预定的标准,响应于该连接请求,在多个终止节点中选择终止节点来建立到客户的连接;通过抽取由在连接期间从客户接收到命令请求定义的文件句柄,在选择出的终止节点处终止该命令请求;向多个文件服务器节点中选择出的文件服务器节点转发命令请求;在选择出的文件服务器节点处解释命令请求,并且访问多个盘控制器节点中的适当的盘控制器节点;以及通过适当的盘控制器节点访问存储盘,并且向客户供应访问的数据。终止节点、文件服务器节点和盘控制器节点的数目可以按需扩展来满足用户的需求。图1是根据本发明具有可扩展体系结构的NAS系统的方框图。图2A和图2B是图示了本发明的NAS系统的负载均衡器的操作的流程图。图3是图示了本发明的NAS系统中终止节点的操作的流程图。图4A到图4C是图示了根据本发明NAS系统如何处理来自客户的请求的流程图。图5是图示了根据本发明一种实施方式的NAS系统的实际实现方式的方框图。具体实施例方式参考图1,图1图示了根据本发明具有可扩展体系结构的NAS系统的方框图。NAS系统10包括负载均衡器12、一个或多个终止节点14a到14x、一个或多个文件服务器节点16a到16y、一个或多个盘控制器节点18a到18z、以及多个盘20。交换结构22用来互连终止节点14a到14x、文件服务器节点16a到16y和盘控制器节点18a到18z。在替换实施方式中,存储阵列网络(未示出)可以用在盘控制器节点18a到18z与盘20之间。NAS系统通过标准网络互连连接到网络24。网络24可以是任何类型的包括多个服务器和用户的计算网络,其中所述多个服务器和用户运行诸如Windows、Unix、Linux或者它们的组合之类的各种操作系统。负载均衡器12从网络24中的用户接收访问存储在NAS系统10中的文件的请求。负载均衡器12执行的主要功能是在一个或多个终止节点14a到14x之间均衡活动连接的数目。换句话说,负载均衡器12动态分配用户连接,以使得没有一个终止节点14由于处理太多的连接而成为“瓶颈”。例如,在具有3个终止节点14的系统10中,如果第一、第二和第三终止节点14分别处理七(7)个、十一(11)个和三(3)个连接,则负载均衡器12将向第三终止节点14转发接下来的连接,这是由于其正处理最少数目的连接。如果一个终止节点14发生故障,或者新的终止节点14添加到NAS系统10中,则负载均衡器12还在剩余的终止节点14之间重新分发连接。负载均衡器12还可以使用其他标准来在多个终止节点14之间分发负载。例如,负载均衡器12可以基于CPU的利用、存储器的利用和连接的数目,或者它们的组合来分发负载。参考图2A和图2B,在其中图示了本发明的负载均衡器12的操作的流程图。流程图2A图示了负载均衡器12在维护NAS系统10中可用终止节点14的当前列表时的操作序列。图2B图示了负载均衡器12在可用终止节点的当前列表中的终止节点之间对连接的负载进行均衡时的操作序列。在图2A中,负载均衡器12顺序通过下面的例程。最初,负载均衡器12确定是否有新的终止节点14已被标识为能工作的(判决菱形框30),如果是,则更新可用终止节点14的列表,以包括新的终止节点14(框32)。不管新的终止节点14是否已添加,接下来负载均衡器12都要确定是否有任何可用终止节点14是不能工作的(判决菱形框34)。如果是,则从可用列表移除不能工作的终止节点(框36)。不管不能工作的终止节点14是否已被标识出,总是重复前述序列(控制返回到菱形框30)。这样,负载均衡器12持续更新NAS系统10中可用终止节点14的列表。在图2B中,图示了用于在NAS系统10的可用终止节点14之间对连接负载进行均衡的序列。最初,负载均衡器12确定其是否已接收到了新的连接(判决菱形框40)。如果是,则负载均衡器12查明系统10中每个可用终止节点14的当前负载(框42)。然后,具有最小当前负载的终止节点14被标识出(框44)。然后,新的连接被分配给具有最小负载的终止节点14(框46)。针对后续请求,重复前述序列。这样,通过在NAS系统10的终止节点14之间均匀地分发连接负载,负载均衡器12就能够防止瓶颈。如前所述,连接数目仅仅是负载均衡器12可以使用的一个标准。也可以使用诸如CPU的利用和存储器的利用之类的其他标准。对于这些实施方式,负载均衡器12在向终止节点14分配新的连接时可以单独考虑这些其他标准或者考虑它们的组合。应当注意,一旦连接被分配给了某个终止节点14,后续接收到的与该连接相关联的请求和分组通常都被发送到该相同的终止节点14。终止节点14每个都执行许多功能。终止节点14终止通过负载均衡器12接收到的来自网络24中的客户的连接请求。所接收到的连接请求一般是TCP/IP或UDP/IP协议消息。终止包括将上层协议(通常是NFS或CIFS)转换或转变成由交换结构22使用的通信协议。终止节点14还基于所接收到的NFS或CIFS请求的内容来确定哪个文件服务器节点16将接收转变后的请求。终止节点14在接收到NFS请求时还终止XDR和RPC消息,用CIFS消息维护额外的状态信息,并且能够检测任何服务器节点16的故障。XDR是外部数据表示,并且RPC是远程过程调用。这些是TCP与NFS之间的协议层。XDR创建了标准的数据格式,以使得不同的操作系统可用以共同的方式通信,而RPC允许一台机器运行在远程机器中的过程。在CIFS中,文件句柄不是全局的,即,文件句柄是专用于连接的。这意味着对于相同的文件,CIFS的每个连接可以具有不同的文件句柄。由于希望所有的TCP/IP终止节点14不管连接如何,对于由哪个节点16负责给定的文件都作出相同的决定,所以不得不将CIFS句柄转变为在内部用于该文件的句柄。可用以多种已知的方式检测故障,例如,通过在节点16和节点14之间发送出周期性的消息和确认。选择文件服务器节点16a到16y可能取决于许多因素。一个这种因素是由每个文件服务器节点16所供应的文件句柄的范围。当接收到请求时,终止节点基于该请求所定义的文件句柄来路由该请求。例如,文件服务器节点16a可以分配有文件句柄范围100至499,文件服务器节点16b可以分配有文件句柄范围500至699,并且文件服务器节点16c可以分配有文件句柄范围700至999等。无论何时接收到请求,负责的终止节点14将基于由该请求所定义的文件句柄来向适当的文件服务器节点16转发该请求。应当注意,这里提到的文件范围仅仅是示例性的,决不应该将它们解释为以某种方式限制本发明。在其他实施方式中,可以预分配某些文件服务器节点16来处理某些类型的文件。例如,如果指定文件服务器节点16之一来访问MPEG文件,则处理该请求的终止节点14自动将任何MPEG请求路由至该指定的MPEG文件服务器节点16。可以具有专用文件服务器节点16的其他类型的文件的示例包括“.doc”,由htm或html标识出的web页面,或者由.jpg、.gif、.bmp标识出的图像等。参考图3,图3是图示出了终止节点14的操作的流程图。当接收到来自负载均衡器12的请求时(框50),负责的终止节点14就终止在IP之上运行的TCP或UDP协议(框52)。此后,终止节点14确定该请求是NFS还是CIFS(判决菱形54)。如果是NFS,则终止节点14终止XDR和RPC(框56)。在XDR和RPC终止之后,或者如果该请求是CIFS,则接下来终止节点14抽取由该请求定义的文件句柄(框58)。然后,终止节点14基于所抽取的文件句柄,确定或映射适当的文件服务器节点16来发送该请求。对于CIFS请求,这种映射是对每个连接进行的。对于NFS请求,这种映射是对每个系统进行的(框60)。换言之,给定的文件句柄可能隐含着给定的CIFS连接的一个文件,并且相同的文件句柄可能隐含着不同的CIFS连接的不同文件。因此,每个CIFS连接必须保持其自己的映射,该映射或者是文件句柄到节点16的映射,或者是文件句柄到文件句柄的内部版本的映射,其中所述文件句柄的内部版本在整个NAS系统中,被一致地映射到文件。另一方面,对于整个NAS系统,NFS文件句柄已是一致的,即,用于一个NFS连接的文件句柄到文件的映射对所有NFS连接是完全相同的。终止节点14将请求转换成NFS和CIFS二者公用的格式(框62),并且然后向适当的文件服务器节点16发送转换后的请求(框64)。对于接收到的后续请求,重复前述序列。文件服务器节点16还在NAS系统10内执行许多功能。首先,每个文件服务器节点16实现其自身的文件系统。因此,如果必要,每个文件服务器节点16负责通过盘控制器18a~18z检索文件以服务所接收到的请求。每个文件服务器节点16还负责终止从终止节点14和盘控制器节点18接收到的请求。根据一种实施方式,文件服务器节点16实现“联邦式的”(federated)或“松散耦合的”文件系统。在NAS系统10中,每个文件服务器节点16并非必须与其他文件服务器节点16通信。这使得文件服务器节点16可扩展,因为每个文件服务器节点16并非必须监控或者跟踪其他文件服务器节点16正在访问的文件。每个文件服务器节点16在试图访问文件之前不需要检查或者从其他文件服务器节点16“请求许可”。这种布置极大地减少了NAS系统10中的管理开销。各个文件服务器节点16也负责它们的文件级别的名称空间范围。换言之,各个文件服务器节点16之间名称空间的职责划分的粒度是在文件级别。但是,相同名称空间区域的各个文件服务器节点16之间的工作的划分可以动态变化的。名称空间中的任何改变都传播回终止节点14,以使得它们知道哪个文件服务器节点16负责来自用户的具体请求(与具体的文件相关联)。根据一种实施方式,一旦在文件服务器节点16之间创建或迁移了名称空间,文件服务器节点16就彼此通信。例如,如果一个文件服务器节点具有太大的名称空间,并且处理其名称空间中的所有请求变得太忙,则那个名称空间中的部分或全部可以迁移到另一个文件服务器节点16。每个文件服务器节点16维护一个表,该表指示由文件服务器节点16a到16y中的每一个所管理的名称空间。当名称空间迁移时,更新每个文件服务器节点16的表。类似地,当名称空间被添加到NAS系统10时,再次更新每个文件服务器节点16的表。应当注意,没必要或甚至不希望每个节点16都保持名称空间的完整的表。因此,在替换实施方式中,每个节点16了解其自己的名称空间,即,该节点当前所负责的所有文件,加上在该节点16上曾创建的可能已移动到不同节点的所有文件的位置。应当注意,应当使终止节点14知道当前的名称空间映射,以使得它们可以相应地引导所终止的请求。如果终止节点14具有过时的名称空间映射,则它可能向错误的服务器节点16发送请求。然后,那个服务器节点16可能不得不向发送请求的终止节点14告知名称空间的改变,并且终止节点14将不得不向正确的服务器节点16重发请求。因此,每个服务器节点16了解哪个服务器节点16创建了文件,该文件已经移动到了何处。考虑这样一个示例,在该示例中,服务器节点16a创建在范围0-999中的文件句柄,服务器节点16b创建在范围1000-1999中的文件句柄,并且服务器节点16c创建在范围2000-2999中的文件句柄。所有终止节点14都知道这种静态配置,并且相应地引导文件请求。假定服务器节点16a创建了具有文件句柄321的文件“A”。终止节点14都知道当它们发现对文件句柄321的引用时,由于该句柄落入到范围0-999中,因此被发送到服务器节点16a。现在假定文件“A”由于负载均衡而从16a移动到了16b。如果对文件句柄321的请求来到终止节点14a中,则终止节点14a将向服务器节点16a发送请求。然而,服务器节点16a知道该文件句柄321已经移动到了服务器节点16b。因此,服务器节点16a向终止节点14a发送回消息,告知该终止节点文件句柄321现在正由服务器节点16b处理。然后,终止节点14a将向服务器节点16b发送请求,并且将该异常更新到其映射表中,以用于所有对文件句柄321的后续请求。然后,所有对文件A的后续请求都由终止节点14a直接转发到服务器节点16b。再次假定相同的文件“A”从服务器节点16b移动到16c。当接收到对文件A的另一个请求时,终止节点14a注意到其映射表中用于文件句柄321的异常,并向服务器节点16b发送该请求。服务器节点16b知道文件句柄321已移动到了某个其他节点,因此就回答终止节点14a,让其移除该异常。然后,终止节点14a根据默认的映射向服务器节点16a发该请求。服务器节点16a答复终止节点14a,告知终止节点14a应当向服务器节点16c发送对文件句柄321的这个和所有后续请求。所有后续请求都由服务器节点16c处理,直到文件A移动到另一个服务器节点并且重复上述更新序列之后。注意到这一点是有用的利用这种方案,不是所有文件的状态都必须自动被更新。在任何时刻,只有一个服务器节点16需要知道具体文件位于何处。在上述示例中,服务器节点16a了解文件句柄321的位置。由于不需要自动分发这种信息,所以本发明提供了一种高度可扩展的NAS解决方案。对于该方案另一个值得注意的方面在于创建文件句柄的服务器节点16永久负责存储涉及该文件句柄的信息。这样要求使得系统10在诸如电源故障之类的灾难性事件之后仍知道所有文件位于何处。由于在其中创建文件的服务器节点(在文件“A”的示例中是节点16a)是该文件位于何处的唯一权威,所以该服务器节点也是负责向稳定存储装置(stablestorage)中写入这种信息的唯一服务器节点。在替换实施方式中,可以以多种不同于上述异常处理方案的方式实现对映射方案的更新。例如,在映射异常发生时,节点16可以在后台向终止节点14传播映射异常,而基本上不干扰两组节点14和节点16之间的正常通信。如果该传播已完成,则不存在重定向。如果传播尚未完成,则可能存在某些重定向。总的说来,由于这种重定向一般不发生(这是因为文件未曾移动或者异常条目已在节点14中),或者具有一级间接(这是因为双移动相当少),所以总的性能影响可以忽略。“重定向”发生于在上述示例的第一部分中节点16a告知节点14a文件321位于节点16b中时。而“传播”发生于在节点14甚至试图访问文件321之前节点14被告知文件321已移动到了节点16b时。这种传播将有效地消除前述的重定向。因为重定向可能具有由于用于在节点14和节点16之间来回传送额外消息的时间和处理需求而导致的某些性能影响,所以期望避免重定向。但是,在文件已从16a移动到了16b时到每个节点14已更新它们的映射表来反映该移动之间存在时间窗口。如果在这种时间窗口期间文件请求从网络到来,则有两种可能的方法处理这种情况(i)阻塞所有节点14访问正在移动的文件,直到该移动已完成,并且所有节点14中的映射表都已更新;或者(ii)在包括时间窗口期间在内的任何时间都允许节点14访问该文件,并且允许用重定向处理这种情形,其中在所述时间窗口中节点14具有关于该文件的当前位置在何处的不精确信息。第二个选项是处理该问题的实用方法,并且从性能方面来说是一种合理的解决方案,这是因为重定向的开销并不是特别大。另外,对于映射异常从节点16到节点14的传播,在节点14具有一个文件的错误的位置信息时发生对该文件的访问的可能性相当小。这进一步减小了在不同的节点16之间移动文件的性能影响。异常信息也可以保存在中央位置,从而每个服务器节点16仅仅需要知道它当前负责的文件。如果服务器节点得到了一个对其当前所不具有的文件的文件句柄的请求,则该服务器节点将使终止节点14向中央数据库查询用于该文件当前位置的异常。这样做的优点在于服务器节点16仅仅需要保持它们具有的文件的信息,而这些信息是无论如何都要求它们维护的。根据另一种实施方式,文件服务器节点16可以被配置来缓存最近和/或最常访问的文件。维护缓存拷贝的优点在于文件服务器可以立即供应这些文件,而没有访问盘20的延迟。文件可以基于时间或空间位置原理、或者它们的组合被缓存。可以使用用于正被访问的这类文件的任何适当的替换算法(例如,最近使用或者先进先出)来替换缓存的文件。应当注意,为了冗余目的,文件服务器节点16彼此通信来检测故障。但是,这种通信相对不重要,并且不随系统10中的负载量而变化。根据各种实施方式,文件服务器节点16可以实现动态分发文件系统(例如CODA),或集群文件系统。至于更多的关于CODA的信息,请参见例如SchoolofComputerScience,CarnegieMelloUniversity的PeterJ.Braam的“TheCodaDistributionFileSystem”,通过参考其被结合于此。可以使用的其他文件系统例如包括UFS(Unix文件系统)或AFS(Andrew文件系统)。根据另一种实施方式,文件服务器节点16每个都能够根据多种可能的锁定语义来锁定其正访问的文件。例如使用独占锁定,被一个文件服务器节点16访问的文件的访问会把其他文件服务器节点16的读和写企图都锁在外面。另外,如果一个文件服务器节点16正写一个文件,则它将在该文件上加锁来防止第二个客户写那个文件。但是,读访问可能被准许。最后,如前所述,可配置或优化各个文件服务器节点16来处理特定类型的请求。对于MPEG示例,可优化负责的文件服务器节点16,以基于MPEG文件中的所有帧都将需要被供应的假设,从盘20预取数据块。在另一个示例中,如果文件用于数据库索引,则一种优化可以是提供更多的缓存存储器。由于在文件的相同位置上有活动突发的情况下,数据访问模式可能是随机的,所以这会减少预取的发生。在另一个包括日志文件的示例中,可以提供单个读缓存和相对大量的写缓存,这是由于数据主要是只写的,并且在错误恢复期间才是只读的。在另一个示例中,通常小的web类型的文件可以通过使用盘上的块布局进行优化,这种块布局相对于写而言对读进行了优化,相对于大文件而言对小文件进行了优化。应当注意,可以实现无数种其他特定的优化,并且上面提供的那些优化仅仅是示例性的,而决不应解释为限制。盘控制器节点18分别负责管理盘20。同样,盘控制器节点18负责文件镜像、再定位和其他盘相关的活动,例如那些与无论在系统10中使用何种级别的RAID都相关的活动。另外,盘控制器节点18终止从文件服务器节点16接收到的任何请求,虚拟化(virtualize)物理盘空间、访问合适的存储块来取回所请求的文件,并且充当数据块服务器。盘控制器节点18也监控它们的盘20故障和替换,并且为了备份目的执行存储在盘中的数据的镜像。如前所述,可以以任何类型的配置来布置盘20,例如RAID1。例如,如果盘控制器节点18实现RAID1,则它们将在两个或更多个物理盘之间镜像所有数据,即,当写发生时,每个盘控制器节点18都将创建两个拷贝,而当读发生时,将只读这些拷贝之一。另一方面,利用这种实现方式,服务器节点16认为其正在写单个、标准的盘。但是,实际上它是在对节点18在物理盘空间中实现的虚拟盘执行写。换言之,存储的虚拟视图不同于物理实现。在另一个示例中,考虑360G字节的大文件系统。当前,这个大小的单个盘是不可行的。由于文件系统一般不能跨越多个盘,所以运行在服务器节点16中的文件系统必须看到至少360G字节的盘。因此,盘控制器节点18不得不把多个物理盘逻辑地连接到一起,以向服务器节点16呈现所期望的盘空间。在替换实施方式中,可以使用其他类型的存储介质,例如电磁带、CD-ROM或者基于硅的存储芯片。交换结构22包括多个交换机。在各种实施方式中,交换结构可以包括光纤信道交换机、以太网交换机或者它们的组合。类似地,在交换结构中可以使用多种不同的通信协议。例如,运行在以太网或光纤信道之上的TCP/IP或FCP可以用作穿过交换结构22的通信协议。在一种实施方式中,可以使用专门为NAS系统设计的协议,在这里称作“ABC”协议。至于“ABC”协议的更详细的解释,请参见2002年12月6日提交的题为ApparatusandMethodforaLightweight,Reliable,Packed-BasedTransportProtocol的美国专利申请(序列号为No.10/313,305,律师案卷号为ANDIP018),该专利申请被转让给了相同的受让者,并且为了一切目的通过参考结合于此。参考图4A到图4C,这些示了根据本发明NAS协议10如何处理来自客户的请求的流程图。如图4A所示,当网络24中的客户希望访问NAS系统10时,该客户通过网络24发起连接(框102)。响应于此,如上所述,负载均衡器12选择终止节点14(框104)。所选择的终止节点14建立到该客户的连接(框106)。然后,客户向所选择的终止节点14发送NFS/CIFS命令(框108),该终止节点终止TCP/IP请求,并且抽取该NFS/CIFS命令(框110)。如图4B所述,所选择的终止节点14执行任何必须的虚拟到真实文件地址的转变(框112),并且然后确定哪个文件服务器节点16应接收该请求。如前所述,通常基于请求的内容选择文件服务器节点16(框114)。所选择的文件服务器节点16解释NFS/CIFS命令,并且访问适当的盘控制器节点18(框116)。此后,盘控制器节点18访问适当的盘20,并且向所选择的文件服务器节点16提供所请求的文件(框118)。最后,如图4C所示,文件服务器节点16向所选择的终止节点14提供文件(框120),接下来该终止节点14又通过网络24向客户提供该文件(框122)。参考图5,图5是图示了根据本发明一种实施方式的NAS系统的实现方式的方框图。NAS系统200包括一对负载均衡器12a和12b、一对通用节点202a和202b、多个终止节点14a到14c、多个文件服务器节点16a到16c、多个盘控制器节点18a到18c和分别关联到盘控制器节点18a到18c的多个盘20。本实施方式的交换结构22包括两个G比特以太网交换机204。为了高性能而在上面列举的每个元件之间提供有冗余连接,并且这些冗余连接在连接之一瘫痪时作为备份。“通用节点202”负责管理系统。例如,当管理员登录到文件服务器来为用户设置权限或者建立用户访问控制时,管理员必须通过系统200中的节点完成这些任务。这可以由系统中的任何节点处理,但是如果存在专用的节点(或者为了冗余,两个节点),则这使得实现更为容易。基本上通用节点202负责系统配置和管理。它们不参与文件访问的数据路径。它们可以用于确定各个节点发生故障的时间、用于实现数据从一个节点16移动到另一个节点的策略,所有这些都不影响性能。在这种实施方式中,TCP/IP用于网络24中的用户与终止节点14之间的通信。ABC协议用于终止节点14和文件服务器节点16之间的通信。ABC上的SCSI用于文件服务器节点16和盘控制器节点18之间的通信。最后,光纤信道上的SCSI用于盘控制器节点18和盘20之间的通信。在本发明的一个实施方式中,负载均衡器12a和12b可以实现在在一个或多个计算机中执行的软件或微代码中。在替换实施方式中,负载均衡器12a和12b可以实现于这样的硬件系统中该硬件系统包括一个或多个专用逻辑芯片、诸如现场可编程逻辑器件之类的可编程逻辑器件或者它们的组合。类似地,终止节点14和文件服务器节点16都可以实现在计算机中,例如服务器、专用硬件、可编程逻辑或者它们的组合。此外,终止节点14和文件服务器节点16中的一个或多个可以实现在单个CPU或多个CPU中,并且交换结构可以由(一个或多个)CPU间或CPU内通信机制替换。在本发明的NAS系统中,终止节点14、文件服务器节点16和盘控制器节点18每个都可独立地扩展。如果一类节点变得过载,则那种类型的额外的节点可以添加到系统,直到解决了问题。应当认为上述本发明的实施方式是解释性的,而不是限制性的。本发明不应受限于这里给出的细节,而是可以在所附权利要求的范围和等同物中作出修改。权利要求1.一种装置,包括可扩展的网络附接存储系统,所述网络附接存储系统包括一个或多个终止节点;用于分别维护文件系统的一个或多个文件服务器节点;用于分别访问存储盘的一个或多个盘控制器节点;和耦合所述一个或多个终止节点、文件服务器节点和盘控制器节点的交换结构,其中所述一个或多个终止节点、文件服务器节点和盘控制器节点可以按需添加到所述可扩展的网络附接存储系统,或者从所述可扩展的网络附接存储系统删除。2.如权利要求1所述的装置,还包括被配置为耦合到所述终止节点的负载均衡器,所述负载均衡器被配置为在所述一个或多个终止节点之间均衡连接的负载。3.如权利要求2所述的装置,其中,所述负载均衡器基于一个或多个下面的标准来在所述一个或多个终止节点之间均衡连接的负载每个终止节点的连接的数量;所述终止节点的利用;存储器的利用;或它们的组合。4.如权利要求2所述的装置,其中,所述负载均衡器还被配置为在所述终止节点可能被添加到所述可扩展的网络附接存储系统或者从所述可扩展的网络附接存储系统删除时维护所述终止节点的当前列表。5.如权利要求2所述的装置,其中,所述负载均衡器还被配置为按照所接收到的请求,将与某一连接相关联的所有请求都转发到相同的终止节点。6.如权利要求1所述的装置,其中,所述一个或多个终止节点中的每个都被配置为在接收到请求时终止所述请求。7.如权利要求6所述的装置,其中,所述请求是运行在IP之上的TCP或UDP。8.如权利要求6所述的装置,其中,所述终止节点还被配置为确定任何接收到的请求是NFS还是CIFS。9.如权利要求8所述的装置,其中,所述终止节点还被配置为终止NFS请求的XDR和RPC。10.如权利要求6所述的装置,其中,所述一个或多个终止节点被配置为从其接收到的任何请求分别抽取文件句柄。11.如权利要求10所述的装置,其中,所述一个或多个终止节点被配置为向基于所述抽取的文件句柄所选择出的所述文件服务器节点中的一个发送所述请求。12.如权利要求11所述的装置,其中,所述一个或多个终止节点被配置为以公用的格式向所述文件服务器节点中的所述选择出的一个发送所述请求,而不管所述请求是NFS还是CIFS。13.如权利要求6所述的装置,其中,所述一个或多个终止节点被配置为向基于由所述请求定义的文件的类型所选择出的文件服务器节点发送所述请求。14.如权利要求1所述的装置,其中,所述一个或多个终止节点被配置为检测所述一个或多个文件服务器节点的故障。15.如权利要求1所述的装置,其中,所述一个或多个文件服务器节点每个都被配置为通过所述一个或多个盘控制器节点取回为任何接收到的请求服务所必需的文件。16.如权利要求1所述的装置,其中,所述一个或多个文件服务器节点每个都被配置为终止从所述终止节点和所述盘控制器节点接收到的任何请求。17.如权利要求1所述的装置,其中,所述一个或多个文件服务器节点中每个都维护联邦式的文件系统,其中所述联邦式的文件系统不了解由其他所述文件服务器节点访问的文件。18.如权利要求1所述的装置,其中,由所述一个或多个服务器节点中每一个所维护的所述文件系统分别服务不同的名称空间范围。19.如权利要求18所述的装置,其中,由所述一个或多个服务器节点所服务的所述不同的名称空间范围是动态分配的。20.如权利要求19所述的装置,其中,分配给所述一个或多个服务器节点中每个的所述名称空间动态传播到所述一个或多个终止节点。21.如权利要求1所述的装置,其中,每个所述文件服务器节点在访问文件时能够锁定所述文件。22.如权利要求21所述的装置,其中,在正被读取时、写入时或者正被读取及写入时,所述文件被锁定。23.如权利要求1所述的装置,其中,所述一个或多个文件服务器节点每个都还被配置为维护最近访问文件的缓存,其中在不分别访问所述存储盘的情况下就可以供应所述最近访问的文件。24.如权利要求23所述的装置,其中,使用替换算法来替换所述缓存正的所述文件,所述替换算法是下面的算法之一最近使用或者先进先出。25.如权利要求1所述的装置,其中,所述一个或多个文件服务器节点被优化来处理某些类型的特定请求。26.如权利要求1所述的装置,其中,所述存储盘被布置在一个或多个独立磁盘冗余阵列中。27.如权利要求1所述的装置,其中,每个所述盘控制器节点中都执行一个或多个下面的功能为了备份目的的文件镜像、文件重定位、终止从所述一个或多个文件服务器节点接收到的请求、盘空间虚拟化、监控所述存储盘故障或替换以及充当数据块服务器。28.如权利要求1所述的装置,其中,所述交换结构包括下面类型的交换机以太网交换机、光纤信道交换机或者它们的组合。29.如权利要求1所述的装置,还包括耦合在所述一个或多个盘控制器节点与所述存储盘之间的存储阵列网络。30.如权利要求1所述的装置,一个或多个所述终止节点和所述文件服务器节点实现于一个或多个CPU中,所述交换结构至少部分地用CPU间和/或CPU内通信机制实现。31.一种方法,包括接收来自客户的连接请求;基于预定的标准,响应于所述连接请求,在多个终止节点中选择终止节点来建立到所述客户的连接;通过抽取由在所述连接期间从所述客户接收到命令请求所定义的文件句柄,在所述选择出的终止节点处终止所述命令请求;向多个文件服务器节点中选择出的文件服务器节点转发所述命令请求;在所述选择出的文件服务器节点处解释所述命令请求,并且访问多个盘控制器节点中的适当的盘控制器节点;和通过所述适当的盘控制器节点访问存储盘,并且向所述客户供应所述访问的数据。32.如权利要求31所述的方法,其中,所述预定的标准包括下面的标准之一所述多个终止节点之间的负载、CPU的利用、存储器的利用或者它们的组合。33.如权利要求32所述的方法,其中,基于从所述命令请求抽取的所述文件句柄,向选择出的文件服务器节点转发所述命令请求。34.如权利要求32所述的方法,其中,基于有所述命令请求定义的文件类型,向选择出的文件服务器节点转发所述命令请求。35.如权利要求31所述的方法,还包括按需扩展终止节点、文件服务器节点和盘控制器节点的数目来满足用户的需求。全文摘要本发明公开了用于可扩展的网络附接存储系统的装置和方法。该装置包括可扩展的网络附接存储系统,该网络附接存储系统包括一个或多个终止节点;用于维护文件系统的一个或多个文件服务器节点;用于分别访问存储盘的一个或多个盘控制器节点;以及耦合所述一个或多个终止节点、文件服务器节点和盘控制器节点的交换结构。一个或多个终止节点、文件服务器节点和盘控制器节点可以按需扩展来满足用户的需求。该方法包括接收来自客户的连接请求;基于预定的标准,响应于该连接请求,在多个终止节点中选择终止节点来建立到客户的连接;通过抽取由在连接期间从客户接收到命令请求定义的文件句柄,在选择出的终止节点处终止该命令请求;向多个文件服务器节点中选择出的文件服务器节点转发命令请求;在选择出的文件服务器节点处解释命令请求,并且访问多个盘控制器节点中的适当的盘控制器节点;以及通过适当的盘控制器节点访问存储盘,并且向客户供应访问的数据。终止节点、文件服务器节点和盘控制器节点的数目可以按需扩展来满足用户的需求。文档编号G06F17/30GK1723434SQ200380105300公开日2006年1月18日申请日期2003年11月19日优先权日2002年12月6日发明者托马斯·詹姆斯·埃兹尔,马里奥·玛佐拉,普雷姆·真,西尔瓦诺·加伊,露咔·卡菲罗,毛里利奥·德尼克拉申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1