拥有最长前缀匹配交换机的可扩展存储系统的制作方法_3

文档序号:9308967阅读:来源:国知局
CP请求可以 在430从所述客户端402传输。所述LPM交换机404接收所述TCP报文并进行OSI第4层 交换。例如,所述交换机可以核对根据所述UDP请求创建的对应流表以通过最长前缀匹配 来确定所述报文的目的地。目标服务器的信息(例如,输出端口)可以基于客户端-服务 器的流表中的表项来获得,例如,表9中的一个表项。所述LPM交换机404可以根据需要编 辑所述TCP请求并且随后根据检索到的信息向所述服务器406转发所述报文。
[0064] 接收到所述客户端402的TCP请求后,所述服务器406在440通过传输一个或多 个携带请求的文件的TCP报文进行响应。向所述LPM交换机404发送所述服务器的响应, 所述LPM交换机404核对所述服务器-客户端的流表(例如,表10)并将所述报文转发到 发出命令或请求的合适的客户端。在一个实施例中,所述LPM交换机404针对上述讨论的 服务器的TCP响应进行OSI第4层交换。
[0065] 图6为最长前缀匹配方法的实施例的流程图500。所述流程图500中的步骤可以 在拥有至少一个客户端和至少一个网络存储设备,例如服务器的数据存储系统中实现,而 所述系统可以与至少一个交换机互相连接。例如,所述流程图500中的步骤可以由存储系 统中的LPM交换机执行,其中,该存储系统,例如为包括多个客户端310,交换机320和322 以及多个服务器330的系统300。所述流程图500开始于步骤510 :LPM交换机(例如,图3 中的LPM交换机320和322)从服务器接收初始UDP报文。在步骤520中,所述LPM交换机 从所述UDP报文中获得服务器信息并将所述信息注册到索引表和段表的表项中。可以针对 后续TCP请求的目的地对索引表和段表中的端口编号、IDX值、MAC地址、IP地址以及TCP地址进行更新。接下来,在步骤530中,所述LPM交换机提供字符串/端口查找内存。哈希 函数和/或布隆过滤器可以用来减少比特的数量并节省内存的空间。
[0066]服务器注册后,所述方法进一步包括步骤540 :所述LPM交换机从客户端以UDP报 文的形式接收请求。所述请求可以包括请求的文件以及所述文件的目录或路径名。在步骤 550中,所述LPM交换机随后在对应的FIB或流表中创建流表项。一个流表项可以包括出端 口的地址来将报文从所述客户端转发至所述服务器;另外的流表项可以用于入端口从所述 服务器接收报文并转发至所述客户端。这些表项可以在CAM-CS和CAM-SC流表中创建,例 如表9和表10。另外,各个单独的FIB表中的表项可以组合成一个表,以形成从客户端到服 务器以及从服务器到客户端的双向报文流。
[0067]接下来,在步骤560中,所述LPM交换机从所述客户端接收TCP报文。在步骤570 中,所述LPM交换机可以采用流表确定所述报文的出端口。在步骤580中,所述LPM交换机 通过确定出的出端口向目标服务器转发所述接收到的报文。该方法结束于步骤590 :所述 LPM交换机接收然后向所述客户端传输服务器的TCP响应。所述TCP响应可以包括所述客 户端请求的文件。所述LPM交换机可以基于流表中的流表项确定向哪一个客户端转发所述 报文。
[0068] 为了让客户端的请求到达合适的存储服务器,交换机需要获知前缀与出端口之间 的映射;然后交换机可以对所述客户端的请求与FIB进行最长前缀匹配。LPM交换机可以 对需要检索的文件的目录名称与所述FIB的表项进行最长前缀匹配。最长前缀匹配本身可 以通过传统的最长前缀匹配算法来进行,正如此处描述的,布隆过滤器和哈希函数可以用 来实现所述最长前缀匹配。LPM交换机可以实现两个新的FIB中的至少一个:P0SIX文件系 统中的〈prefixofdirectory/subdirectories,nextegressport> 以及扁平二进制 0-1 命名方式的键值存储文件系统中的〈prefixof0-1series,nextegressport〉。当客户 端作出请求,所述名称可以为POSIX文件系统中的文件的路径或者键值存储对象的扁平二 进制0-1名称。所述LPM交换机可以拦截所述请求,并相应核对所述FIB,确定与所述请求 共有最长前缀的表项。然后,可以向所述合适的出端口转发所述请求。在另一个实施例中, LPM交换可以类似实现于DHT键值存储。
[0069]进一步地,例如,LPM交换机可以包括请求拦截模块和最长前缀匹配模块,所述请 求拦截模块可以处理客户端的请求以及服务器的通知或响应。在作出请求之前,客户端可 能不知道要连接的服务器。该请求可能被发送到一个虚拟的地址,该地址可被带有所请求 的目的地的LPM交换机识别。其它发送所述请求的方法也能够实现,只要该请求能够被LPM 交换机识别并拦截。所述客户端可能不知道针对具体请求要连接的服务器的确切地址;但 是,所述LPM交换机有能力针对每一个请求将客户端连接到合适的服务器,这可能使得所 述客户端一侧将分布式系统作为本地系统,因为服务器集群的分布式属性可能被互相连接 的LPM交换机的网络掩盖。接收到客户端的带有内嵌名称的请求后,所述模块可以提取内 容名称并在对应的FIB中开始进行LPM。在另一个实施例中,所述LPM交换机的请求拦截模 块也可以针对服务器的响应将服务器连接到客户端。当在FIB中创建流表项时,其中,所述 流表项涉及到向哪一个出端口转发客户端的请求,会针对响应建立从服务器到客户端的另 外的流表项。对于服务器通知,所述交换机可以记录前缀以及所述通知进入FIB所经过的 端口。
[0070] 本发明所述的至少部分特征/方法可在网元中实施,例如,本发明所述的特征/方 法可通过硬件、固件和/或在硬件上安装运行的软件实现。所述网元可以是通过网络传递 数据的任何设备,如交换机、路由器、网桥、服务器、客户端等。
[0071] 图7示出了LPM交换机600的实施例,所述LPM交换机600可以是通过网络传递 和处理数据的任何网元。例如,所述LPM交换机600可以为实现如上所述的最长前缀匹配 方案的内容路由器或任何装置或交换机。所述LPM交换机600可以用于实现或支持如上所 述的存储服务器分配、前缀聚合和最长前缀匹配策略。
[0072] 所述LPM交换机600可包括一个或多个与收发器(Tx/Rx)612耦合的端口或面 610,收发器612可以包括发射器和接收器。收发器612可以与端口 610親合以传输和/或 从其它节点接收帧。第一收发器612可以与分布式存储系统中的服务器耦合以从服务器接 收消息并向服务器传输消息;例如,所述第一收发器612可以用于执行步骤345、370和/或 510以及如步骤375中描述的内容转发和/或与图5中所示的服务器406进行通信。第二 收发器612可以与客户端耦合以从所述客户端接收消息并向所述客户端传输消息;例如, 所述第二收发器612可以用于执行步骤355或与图5中所示的客户端402进行通信。
[0073] 处理器625与收发器612耦合以处理所述帧和/或确定向哪些节点发送所述帧。 所述处理器625可以包括一个或多个带有请求拦截模块627、LPM模块628以及内存模块 622的多核处理器。所述请求拦截模块627可以实现前述的LPM交换机的属性,例如识别 并拦截来自客户端和/或服务器的请求。为传输请求或响应,所述模块627也可以将服务 器连接到客户端或将客户端连接到服务器。所述LPM模块628在内存模块622被使用时可 以基于最长前缀匹配进行路由/交换,其中,所述内存模块622可以用作数据存储器,缓冲 器等。所述处理器625可以作为一个或多个中央处理单元(CPU)芯片、核(例如,多核处理 器)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)和/或数字信号处理器(DSP)实现。 所述端口 610可以包含电和/或光传输和/或接收器件,所述LPM交换机600可以为进行 路由决策的路由器件。
[0074] 所述内存模块622可以为任何存储数据的设备,例如缓存器、随机存取存储器 (RAM)、只读存储器(ROM)、从存储器或者它们任意的组合。所述从存储器通常包括一个或多 个磁盘驱动器或磁带机,用于非易失性存储数据,并且当RAM没有足够的空间来容纳所有 工作数据的时候,所述从存储器用作溢出数据存储设备。当选择执行加载到RAM的程序时, 所述从存储器可以用于存储这些程序。所述ROM用于储存在程序执行期间读取的指令或数 据,所述ROM为一种非易失性存储设备,相对于拥有更大存储能力的从存储器,它通常具有 较小的存储能力。所述RAM用于存储易失性数据或储存指令。通常,对ROM和RAM的访问 都快于对从存储器的访问,缓存器访问快于任何其它类型的内存访问。映射信息可以保留 在所述内存模块622中的转发信息库(FIB)624。所述FIB624可以用于存储执行LPM方法 (例如,图6所示)时的流表以及服务器信息,例如,段,索引,字符串和/或端口查找内存。
[0075] 应理解的是,通过将可执行指令编程入和/或将可执行指令载入LPM交换机600, 处理器625和存储器622中的至少一个发生变化,将LPM交换机600部分转换成具有本发 明所述的新颖功能的特定机器或装置,例如多核转发架构。对于电气工程和软件工程技术 至关重要的是,能够按照公认的设计规则将功能转换为硬件实现方式,所述功能可通过将 可执行软件加载到计算机来实现。在软件还是硬件中实现某一概念通
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1