用于内容中心网络中的直接存储装置存取的系统和方法
【技术领域】
[0001]本发明大体上涉及促进数据网络内的存储装置接入。更具体来说,本发明涉及用于促进内容中心网络(CCN)中的直接存储装置存取的系统和方法。
【背景技术】
[0002]因特网和电子商务的增殖持续激发网络行业中的革命性改变。当今,从在线电影观看到每日新闻递送、零售销售和即时消息接发,大量的信息交换是在线进行的。越来越多数目的因特网应用程序也在变成移动的。然而,当前因特网在主要基于位置的寻址方案上操作。两种最普遍存在的协议:因特网协议(IP)和以太网协议,都是以基于位置的地址为基础。也就是说,内容的消费者仅可通过从与物理对象或位置接近地相关联的地址(例如,IP地址或以太网媒体接入控制(MAC)地址)明确请求内容而接收所述内容。此限制性寻址方案正变得逐渐更不足以满足不断改变的网络需求。
[0003]最近,行业中已经提出内容中心网络(CCN)架构。CCN带来内容输送的新方法。并非在应用级将网络业务视为内容在其上行进的端到端对话,而是基于内容的唯一名称来请求或返回内容,且网络负责将内容从提供者路由到消费者。应注意,内容包含可在通信系统中输送的数据,包含例如文本、图像、视频和/或音频等任何形式的数据。消费者和提供者可为在计算机旁的人或在CCN内部或外部的自动过程。一条内容可指代整个内容或内容的相应部分。举例来说,报纸文章可能由体现为数据包的多条内容表示。一条内容也可与元数据相关联,所述元数据以例如验证数据、创建日期、内容所有者等信息来描述或增强所述条内容。
[0004]在CCN中,内容对象和兴趣是由其名称识别,通常是阶层式结构化可变长度识别符(HSVLI)。当在CCN节点处接收到对一条内容的兴趣时,检查本地内容高速缓冲存储器以查看正请求的内容是否存在。另外,CCN节点可选择性高速缓冲存储流行的内容对象以增加网络响应速率。为了高速缓冲存储大量内容,CCN路由器或开关可耦合到存储装置,所述存储装置可组织为直接附接存储(DAS)系统、网络附接存储(NAS)系统和或存储区域网络(SAN)系统。
【发明内容】
[0005]本发明的一个实施例提供用于将内容数据高速缓冲存储到附接到内容中心网络CCN中的节点的存储装置的系统。在操作期间,所述系统接收内容包;将所述内容包转发到对所述内容包的兴趣的传入端口 ;在所述附接存储装置中高速缓冲存储所述内容包的副本;组装对应于所述内容包的查询,所述查询包含至少网络标头和与所述内容包的所述经高速缓冲存储副本所位于的存储块相关联的地址;以及将所述查询存储在高速缓冲存储器表中,进而促进使用所述经组装查询对所述存储块的后续直接存取以检索所述内容包的所述副本。
[0006]在此实施例的一个变型中,所述附接存储装置包含以下各项中的至少一者:以太网上的高级技术附接(ATA)存储阵列,以太网上的光纤通道(FCoE)存储阵列,以及因特网小型计算机系统接口(iSCSI)存储阵列。
[0007]在另一变型中,所述网络标头包含以太网标头。
[0008]在此实施例的一个变型中,所述内容包包含多个片段。所述系统通过将每一片段存储到连续存储块的单独集合中来高速缓冲存储所述内容包的副本,且针对每一片段组装单独的查询。高速缓冲存储器表中对应于内容包的条目包含对应于所述多个片段的多个查询。
[0009]在此实施例的一个变型中,所述系统随后接收对所述内容包的兴趣;搜索所述高速缓冲存储器表以获得所述查询;将所述查询发送到所述附接存储装置;响应于所述查询从所述附接存储装置接收数据包;从所接收数据包移除网络标头;以及转发所述数据包。
[0010]在另一变型中,搜索高速缓冲存储器表涉及基于所接收的兴趣执行最长前缀匹配查找。
[0011 ] 在另一变型中,所述系统进一步基于存储于高速缓冲存储器表中的元素构造所述查询的网络表示。
[0012]在此实施例的一个变型中,与所述存储块相关联的地址包含逻辑块寻址(LBA)地址。
[0013]在此实施例的一个变型中,所述节点包含各自能够接收内容和兴趣包的多个线卡。所述系统进一步将高速缓冲存储器表填充到所有所述多个线卡。
【附图说明】
[0014]图1图解说明根据本发明的实施例的网络的示范性架构。
[0015]图2呈现说明根据本发明的实施例的具有附加存储的示范性内容中心网络(CCN)启用切换器的图。
[0016]图3呈现说明根据本发明的实施例的CCN启用切换器中的示范性线卡的图。
[0017]图4呈现说明根据本发明的实施例的存储于内容存储区中的示范性高速缓冲存储器表的图。
[0018]图5呈现根据本发明的实施例的存储于高速缓冲存储器表中用于直接存储装置存取的示范性以太网帧。
[0019]图6呈现说明根据本发明的实施例的从附接存储装置检索的示范性内容对象片段的图。
[0020]图7呈现说明根据本发明的实施例的将内容对象高速缓冲存储在附接存储装置中的过程的流程图。
[0021]图8呈现说明根据本发明的实施例的从附接存储装置检索经高速缓冲存储内容对象的过程的流程图。
[0022]图9图解说明根据一实施例的用于对附接存储装置的直接存取的示范性系统。
[0023]在图式中,相同参考数字指代相同图式元件。
【具体实施方式】
[0024]摄述
[0025]本发明的实施例提供用于对附接到CCN启用切换器或路由器的存储装置的快速高效存取的系统和方法。在操作期间,当CCN启用切换器或路由器接收到内容对象或内容对象的片段时,所述切换器确定所述内容对象应高速缓冲存储,且将内容对象的副本(或其片段)发送到内容存储区管理器。内容存储区管理器重新组装所述片段(在需要时),且将内容对象的副本写入到附接存储装置中。更具体来说,在写入到附接存储装置中之前,内容存储区管理器还可将内容对象分段为用于输送的合适的大小。将每一输送片段写入到附接存储装置中的连续块集合中,且内容存储区管理器将输送和片段标头添加到每一连续块集合。另外,内容存储区管理器产生且填充由内容对象的名称前缀编索引的高速缓冲存储器表。高速缓冲存储器表中的条目指定内容对象的片段所位于的存储块集合的位置。在一些实施例中,高速缓冲存储器条目包含预先组装数据通信帧的集合,其中每一帧专用于一片段。预先组装帧可包含适当输送标头和指向存储块的指针,且可用以从附接存储装置检索对应片段。
[0026]一般来说,CCN使用两个类型的消息:兴趣和内容对象。兴趣携载内容对象的阶层式结构化可变长度识别符(HSVLI),也称为“名称”,且充当针对所述对象的请求。如果网络元件(例如,路由器)接收到对同一名称的多个兴趣,那么其可聚合那些兴趣。沿着关于匹配内容对象的兴趣的路径的网络元件可高速缓冲存储且返回所述对象,从而满足所述兴趣。内容对象遵循兴趣到所述兴趣的起源的反向路径。除了其它信息之外,内容对象含有同一 HSVL1、对象的有效负载和用以将HSVLI绑定到有效负载的密码信息。
[0027]本发明中使用的术语大体上如下界定(但其解译不限于此):
[0028]“HSVLI”:阶层式结构化可变长度识别符,也称为名称。其是名称组件的有序列表,其可为可变长度八位位组串。以人可读形式,其可以例如ccnx:/path/part的格式表示。不存在主机或查询串。如上所述,HSVLI涉及内容,且它们能够表示用于内容的有组织结构且至少部分对人有意义是合意的。HSVLI的个别组件可具有任意长度。此外,HSVLI可具有明确定界的组件,可包含任何字节序列,且不限于人可读字符。最长前缀匹配查找在以HSVLI转发包时是重要的。举例来说,指示对“/parc/home/bob”的兴趣的HSVLI将匹配“/pare/home/bob/test, txt”和“/parc/home/bob/bar.txt”两者。在名称组件的数目方面,最长匹配被视为最佳的,因为其是最特定的。
[0029]“兴趣”:对内容对象的请求。兴趣指定HSVLI名称前缀和其它任选的选择器,所述选择器可用以在具有相同名称前缀的多个对象当中进行挑选。名称匹配兴趣名称前缀和选择器的任何内容对象满足所述兴趣。
[0030]“内容对象”:响应于兴趣而发送的数据对象。其具有经由密码签名而绑定在一起的HSVLI名称和内容有效负载。任选地,所有内容对象具有由内容对象的SHA-256摘要组成的隐式终端名称组件。在一个实施例中,隐式摘要不在线上传送,但在需要时在每一跃点处计算。
[0031]如之前所提到,HSVLI指示一条内容,经阶层式结构化,且包含从最一般层级到最特定层级排序的连续组件。相应HSVLI的长度不是固定的。在内容中心网络中,不同于常规IP网络,包可由HSVLI识别。举例来说,“abcd/bob/papers/ccn/news”可为内容的名称且识别对应包,即,在名为“AB⑶”的组织处针对名为“Bob”的用户的来自“ccn”论文收集的“新闻”文章。为了请求一条内容,节点通过所述内容的名称来表达(例如
,广播)对所述内容的兴趣。对一条内容的兴趣可为根据所述内容的名称或识别符对所述内容的查询。在网络中可用的情况下,内容从存储所述内容的任何节点路由回到网络。路由基础结构将兴趣智能地传播到很可能具有所述信息的前瞻性节点且随后沿着所述兴趣穿越的路径携载可用的内容返回。
[0032]图1图解说明根据本发明的实施例的网络的示范性架构。在此实例中,网络180包括节点100到145。网络中的每一节点耦合到一或多个其它节点。网络连接185是此类连接的实例。网络连接展示为实线,但每一线也可表示可将一个节点耦合到另一节点的子网络或超网络。网络180可为内容中心的本地网络、超网络或子网络。这些网络中的每一者可经互连以使得一个网络中的节点可到达其它网络中的节点。网络连接可为宽带、无线、电话、卫星或任何类型的网络连接。节点可为计算机系统、表示用户的端点和/或可产生兴趣或发源内容的装置。
[0033]根据本发明的实施例,消费者可产生对一条内容的兴趣且随后将所述兴趣发送到网络180中的节点。所述条内容可由可位于网络内部或外部的出版商或内容提供者存储在网络180中的节点处。举例来说,在图1中,对一条内容的兴趣在节点105处发源。如果所述内容在所述节点不可用,那么所述兴趣流动到耦合到所述第一节点的一或多个节点。举例来说,在图1中,兴趣流动(兴趣流150)到并不具有可用的所述内容的节点115。接着,所述兴趣从节点115流动(兴趣流155)到再次并不具有所述内容的节点125。所述兴趣随后流动(兴趣流160)到确实具有可用的所述内容的节点130。内容的所述流随后反向地回溯其路径(内容流165、170和175)直到其到达递送所述内容的节点105。在所述内容流中可涉及例如验证等其它过程。
[0034]在网络180中,在内容持有者(节点130)与兴趣产生节点(节点105)之间的路径中的任何数目的中间节点(节点100到145)可参与在内容在网络上行进时高速缓冲存储所述内容的本地副本。高速缓冲存储通过隐式地共享对本地高速缓冲存储内容的存取而减少对位于接近其它订户处的第二订户的网络负载。
[0035]如先前所描述,在CCN中,期望具有高速缓冲存储内容的本地副本的中间节点。这要求中间节点具有大存储容量,因为穿过网络的内容流的量可为巨大的。举例来说,将需要具有大容量(例如数百万兆字节的容量)的存储装置来维持视频高速缓冲存储器。此大容量存储装置通常以附接存储的形式实施,例如网络附接存储(NAS)。
[0036]图2呈现说明根据本发明的实施例的具有附接存储的示范性内容中心网络(CCN)启用切换器的图。在图2中,CCN启用切换器200包含许多线卡,例如线卡202、204和206 ;以及监控卡208。在图2中,CCN启用切换器200耦合到附接存储阵列210。附接存储阵列210可包含各种类型磁盘阵列,所述磁盘阵列可为网络附接存储(NAS)阵列、存储区域网络(SAN)阵列或虚拟化存储阵列。在一些实施例中,CCN启用切换器200中的每一线卡(例如线卡202、204或206)经由高速切换器212耦合到附接存储阵列210。在一些实施例中,监控卡208耦合到存储阵列210且具有对存储阵列210的直接存取,且所述线卡经配置以经由监控卡208存取存储阵列210。
[0037]为了促进高效内容检索,附接存储阵列210可在高速下操作。在一些实施例中,附接存储阵列210包含用于与CCN启用切换器200介接的高速接口,例如10千兆以太网(10GE)接口。另外,取决于存储阵列的类型,例如高级技术附接(ATA)存储阵列或光纤通道(FC)存储阵列,存储阵列210与CCN启用切换器200之间的通信可使用不同网络协议,例如以太网上的ATA(AoE)、光纤通道(FC)或以太网上的光纤通道(FCoE)。另外,其它基于IP的协议,例如iSCSI (因特网小型计算机系统接口),也可用以实现基于IP的附接存储装置与CCN启用切换器200之间的通信。
[0038]图3呈现说明根据本发明的实施例的CCN启用切换器中的示范性线卡的图。在图3中,线卡300包含许多媒体端口,例如媒体端口 302、304和306 ;网络处理单元(NPU) 308、内容存储区(CS)管理器310和内容存储区312。
[0039]在操作期间,媒体端口 302到306负责与例如其它主机或附接存储阵列等外部装置介接。举例来说,媒体端口 302和306耦合到其它主机且负责向/从其它主机发送/接收兴趣或内容对象,且媒体端口 304耦合到附接存储阵列且负责向/从附接存储阵列高速缓冲存储/检索内容对象。
[0040]NPU 308具有有限计算能力,且负责以线路速度、即以正接收包的相同速度处理传入/传出包。在一些实施例中,NPU 308负责检查接收兴趣包且在例如内容存储区312、待决兴趣表(PIT)和转发信息库(FIB)等各种数据结构中执行前缀匹配查找。应注意图3中未图示PIT和FIB。在一些实施例中,PIT、FIB和内容存储区312可使用随机存取存储器(RAM)来实施,所述RAM可为动态RAM(DRAM)或静态RAM(SRAM)。
[0041]内容存储区(CS) 312类似于在IP路由器中使用的缓冲存储器。在常规CCN中,CS可临时缓冲穿过此切换器的内容对象。然而,此方法意味着CS的大小将决定切换器可高速缓冲存储的内容数据的量。相比之下,在本发明的一些实施例中,替代于保持内容数据,CS312仅维持可用于检索存储于附接存储阵列中的内容对象的高速缓冲存储器表。稍后将描述关于高速缓冲存储器表的细节。
[0042]PIT跟踪向上游朝向内容源转发的兴趣以使得返回的内容对象可向下游发送到其请求者。在CCN中,仅路由兴趣包。返回内容对象遵循兴趣包回到内容请求者的路径。用于兴趣的PIT条目指定兴趣的名称和用于所述兴趣的一或多个传入和传出端口。PIT条目中列出的多个端口指示同一内容已由多个下游用户请求,且多个传出端口指示同一兴趣沿着多个路径转发。
[0043]FIB用以朝向潜在源或匹配内容对象的源转发兴趣包。通常,路由协议用以在网络中的所有节点当中填入FIB。FIB条目常常由名称前缀编索引。
[0044]当兴趣包从远程主机到达媒体端口 302上时,NPU 308基于兴趣名称或HSVLI执行一或多个最长匹配查找。在一些实施例中,使用基于散列的转发,其中每一节点使用同一散列函数来编码名称前缀且使用固定长度散列执行最长匹配查找。散列转发的详细描述可参见由发明人马克.E.莫斯科和迈克尔.F.普拉斯在2013年10月29日申请的标题为“用于具有阶层式结构化可变长度识别符的包的基于散列的转发的系统和方法”的第14/065,961号(代理人案号PARC-20130997US01)美国专利申请案。
[0045]在一些实施例中,用于名称查找的索引结构以一方式排序以使得CS匹配将优选于PIT匹配,而PIT匹配将优选于FIB匹配。因此,如果已经存在CS 312中的匹配条目,那么将检索所述内容对象且从所述兴趣到达的端口(例如媒体端口 302)发送出且所述兴趣将被丢弃。否则,NPU 308检查PIT以查看是否可找到匹配条目。如果是,那么将把兴趣的到达端口添加到PIT条目的请求端口列表且将丢弃所述兴趣。否则,将检查FIB。应注意对于依赖于散列转发的系统,FIB条目可基于转发散列而编索引,且检查FIB涉及寻找FIB中的最长匹配前缀。如果FIB中存在匹配,那么兴趣需要转发到FIB条目中列出的端口。举例来说,FIB可将媒体端口 306列出为用于所接收兴趣的传出端口,且因此,NPU 308将兴趣经由媒体端口 306转发到对应主机。
[0046]当返回所请求内容对象时,其在媒体端口 306上到达线卡300。对于大的内容对象,将在媒体端口 306处接收所述内容对象的片段。随后,NPU 308通过在PIT中匹配内容对象的名称(例如HSVLI或其散列)来处理内容对象(或内容对象的片段)。应注意NPU308可在PIT中未找到匹配条目的情况下丢弃内容对象。另外,NPU 308还可确定内容对象是否是从先前转发对应兴趣(基于PIT中的匹配条目)的端口或可能已转发对应兴趣的端口到达。如果不满足此条件,那么NPU 308丢弃所述内容对象。匹配PIT条目中的入口端口用以转发内容对象(或其片段),因此确保所述内容对象经反向路径转发回到发送兴趣的主机。除转发内容对象之外,NPU 308还确定是否高速缓冲存储所述内容对象。在一些实施例中,NPU 308高速缓冲存储穿过的每个内容对象。在一些实施例中,NPU 308可基于内容对象的流行性或重要性而确定是否高速缓冲存储内容对象,且高速缓冲存储具有超过某一阈值的流行性/重要性等级(例如超过阈值数目的请求者数目)的内容对象。
[0047]一旦NPU 308确定高速缓冲存储内容对象,其便将内容对象的副本发送到CS管理器310。在一些实施例中,NPU 308可将内容对象多播到传出端口(媒体端口 306)和CS管理器310。CS管理器310可为在中央处理单元(CPU)上运行的过程,所述CPU可位于线卡300上或监控卡上。在一些实施例中,CS管理器310可使用硬件来实施。
CS管理器310按需要处理内容对象且经由媒体端口 304将经处理内容对象发送到附接存储阵列。
[0048]取决于内容对象的大小和存储阵列的类型,CS管理器310可对内容对象执行不同操作。举例来说,所接收内容对象可由先前链路中的一或多者分段以便满足那些链路的最大发射单元(MTU)要求。CCN中的内容对象的分段的详细描述可参见2013年10月30日由发明人马克.Ε.莫斯科申请的标题为“用于内容中心网络中的最小路径MTU发现的系统和方法”的第14/067,857号(代理人案号PARC-20130874US01)美国专利申请案。在一些实施例中,在接收到内容对象的片段之后,CS管理器310可即刻基于片段标头重新组装原始内容对象。
[0049]除重新组装经分段内容对象之外,在一些实施例中,CS管理器310还执行包分段。此时,分段的目的是确保每一片段处于用于后续网络输送的合适大小,更确切地说,满足可能的后续链路中的网络输送协议所施加的MTU要求。取决于使用的协议和下伏物理传输媒体,不同网络链路可施加不同MTU。举例来说,IPv6要求所有其数据链路都支持1280字节的最小MTU。以太网数据链路通常具有1500字节的MTU。
[0050]如果用于网络链路的输送协议要求1280字节的MTU,那么内容对象可能需要划分为各自为1200字节的多个片段。CS管理器310随后将每一片段连同输送和片段标头一起写入到附接存储阵列中的连续块集合。举例来说,如果附接存储阵列包含ATA驱动器,那么需要三个连续ATA块来高速缓冲存储经由1280字节MTU链路输送的片段。应注意所述块包含内容对象的片段以及输送和片段标头。所述连续块集合也应配合在本地附接大小内。如果线卡300与附接存储阵列之间的链路上的通信协议是AoE或FCoE,则意味着连续块集合应配合在1500字节的以太网帧大小或9000字节的巨大以太网帧大小内。
[0051]除将内容对象的片段高速缓冲存储到附接存储阵列中之外,CS管理器310还负责产生且填充(在切换器节点内的所有线卡当中)高速缓冲存储器表。高速缓冲存储器表可存储于CS 312中,且通过兴趣或CCN名称编索引。高速缓冲存储器表中的相应条目匹配于对对应内容对象的兴趣。更具体来说,所述条目指定内容对象的片段经高速缓冲存储的存储块集合。在一些实施例中,CS管理器310可预先组装查询集合,所述查询可稍后用于检索所述存储块集合。通过预先组装查询集合,CS管理器310消除了当请求内容对象时的查询计算的需要,因此使得NPU 308 (常常具有比CPU的计算能力有限得多的计算能力,且一般来说并不包含文件系统)可能以线路速度处理后续到达的兴趣且检索内容对象。
[0052]在一些实施例中,替代于预先组装的查询,CS 312存储经压缩表,其包含到存储阵列的网络地址的索引、指示将构造的囊封类型的旗标以及将检索的磁盘地址。当内容对象中的后续兴趣到达时NPU 308构造一或多个适当的网络帧。此方法节省了 CS 312中的存储空间但需要额外NPU处理循环。
[0053]在一些实施例中,线卡300与附接存储阵列之间的链路使用的网络协议是AoE或FCoE,意味着预先组装的查询是预先组装的以太网帧,其包含以太网标头以及特定于存储类型的标头,例如ATA标头或FC标头。图4呈现说明根据本发明的实施例的存储于内容存储区中的示范性高速缓冲存储器表的图。在图4中,高速缓冲存储器表400包含多个名称编索引条目。例如条目402的每一条目对应于内容对象,且包含名称(例如/ABC/DEF.COM)和以太网帧集合。所述名称可为内容对象的名称,或所述内容对象返回到的兴趣的名称。对于使用散列转发的系统,所述名称可为内容对象或对应兴趣的HSVLI的固定长度散列函数。条目中的每一以太网帧(例如FRAME_1到FRAME_N)对应于内容对象的片段。举例来说,如果内容对象当其写入到附接存储阵列中时经分段为三个片段,那么高速缓冲存储器表400中对应于所述内容对象的条目将包含三个以太网帧,其中每一帧对应于一片段。
[0054]在一些实施例中,高速缓冲存储器表中的预先组装以太网帧包含以太网包装程序、片段标头和指向存储片段的存储块的指针。图5呈现根据本发明的实施例的存储于高速缓冲存储器表中用于直接存储装置存取的示范性以太网帧。在图5中,以太网帧500包含逻辑块寻址(LBA)地址502、片段标头504和以太网标头506。
[0055]LBA地址502指定存储内容片段的连续存储块集合的地址。应注意取决于存储装置的类型,可使用某些特定的命令格式。举例来说,ATA读取命令可用以涵盖LBA地址502。图5中未图示那些特定的格式或存储装置标头。片段标头504包含与分段相关联的信息,例如识别内容对象的片段流ID、所述流中的片段总数以及识别每一片段的片段序列号。以太网标头506包含将帧发送到正确目的地所需要的信息,例如目的地(可为物理附接存储装置或虚拟存储装置)的媒体接入控制(MAC)地址。
[0056]当在节点处接收到请求经高速缓冲存储内容对象的兴趣时,检查存储于CS中的高速缓冲存储器表以确定是否可找到匹配条目。在一些实施例中,执行最长前缀匹配查找。一旦找到匹配条目,所述节点便将所述匹配条目中包含的每个以太网帧发送到附接存储装置以检索内容对象的所有片段。应注意,因为以太网帧已经预先组装,所以不需要执行与适合于检索片段的通信帧的组装相关联的任何计算。因此,替代于调用有力的切换器CPU,具有有限计算容量的NPU足以处理所接收兴趣且检索经高速缓冲存储的内容对象。另外,发送先前产生的通信帧(例如以太网帧)的简单性也意味着与其中仅当需要高速缓冲存储器检索时产生适合于与附接存储装置的通信的帧的情形相比可以快得多的速率检索经高速缓冲存储的内容对象。
[0057]一旦那些预先组装的以太网帧发送到附接存储装置,存储装置的控制和管理模块便分析所接收帧以获得所述帧中包含的LBA地址。使用所获得LBA地址,控制和管理模块可存取对应存储块以获得经高速缓冲存储内容。应注意每一以太网帧可用以检索对应内容片段,所述内容片段可占据如LBA地址指定的多个连续存储块。对于以太网上的ATA,经检索内容包可包含以太网上的ATA标头。图6呈现说明根据本发明的实施例的从附接存储装置检索的示范性内容对象片段的图。
[0058]在图6中,经检索内容对象片段600包含内容数据字段602、片段标头604和以太网上的ATA标头606。内容数据字段602包含内容片段。片段标头604类似于片段标头504,且包含与分段相关联的信息。以太网上的ATA标头606包含与以太网链路相关联的信息,例如以太网源和目的地地址,以及ATA特定的字段,例如扇区计数和LBA地址。
[0059]图7呈现说明根据本发明的实施例的将内容对象高速缓冲存储到附接存储装置的过程的流程图。在操作期间,耦合到CCN中的附接存储装置的中间节点(例如切换器或路由器)接收内容对象或内容对象的片段(操作702)。应注意所述中间节点可为CCN启用的切换器,其维持所述三个主要CCN数据结构:内容存储区(CS)、待决兴趣表(PIT)和转发信息库(FIB)。另外,内容对象可能已经由其发源节点分段以确保沿着所述内容对象的路径不需要进一步分段。
[0060]所述中间节点随后基于内容对象的名称或名称前缀识别PIT中的匹配兴趣(操作704),且将内容对象转发到PIT条目中列出的一或多个请求端口(是匹配待决兴趣的传入端口)(操作706)。在一些实施例中,PIT查找和内容对象转发由简单网络处理单元(NPU)以线路速度执行。所述中间节点还确定是否高速缓冲存储所接收内容对象(操作708)。在一些实施例中,NPU基于内容对象的流行性或重要性等级做出此类决策。响应于NPU确定高速缓冲存储内容对象,NPU将所接收内容对象的副本发送到内容存储区(CS)管理器(操作710)。在一些实施例中,内容对象经多播到请求端口(如PIT中列出)和CS管理器。在一些实施例中,CS管理器可为在切换器CPU上运行的过程或独立模块。在接收到内容对象或内容对象的片段之后,CS管理器可即刻基于中间节点与附接存储装置之间的链路的MTU任选地分段(或在其初始接收到片段的情况下再分段)内容对象。对于每一片段,CS管理器以适当的输送和片段标头囊封内容数据(操作714),且将经囊封内容数据帧发送到附接存储装置(操作716)。应注意,为此,CS管理器可能需要确定用于高速缓冲存储内容数据帧所需要的连续存储块的数目。适当标头可包含片段标头(如果内容对象经分段)和输送标头。随后,CS管理器产生可稍后用以从附接存储装置检索经高速缓冲存储内容片段的通信帧(操作718)。当内容对象的所有片段已经高速缓冲存储时,CS管理器产生高速缓冲存储器表中的条目(操作720)。通过对应兴趣(如由PIT条目指示)对所述条目编索引。或者,也可通过经高速缓冲存储内容对象的名称对高速缓冲存储器表中的条目编索引。应注意在使用基于散列的转发的系统中,可通过兴趣的相似性散列对条目编索引。应注意,计算相似性散列以唯一地识别一条内容,且相似性散列可为内容包中的名称和一或多个字段的散列。如果中间节点包含能够接收兴趣的多个线卡,那么CS管
理器(可位于监控卡处)将把高速缓冲存储器表填入到所有线卡,因此确保针对在任一线卡上接收的兴趣检查同一高速缓冲存储器表。
[0061]图8呈现说明根据本发明的实施例的从附接存储装置检索经高速缓冲存储内容对象的过程的流程图。在操作期间,CCN启用切换器接收兴趣(操作802),且确定PIT中是否存在匹配条目(操作804)。在一些实施例中,所述兴趣可到达位于切换器的线卡上的媒体端口,且检查PIT的操作可由同一线卡中包含的NPU执行。在另外的实施例中,检查PIT可包含基于与兴趣相关联的HSVLI执行最长匹配查找。如果是,那么NPU将其上接收到所述兴趣的端口添加到对应PIT条目中列出的传入端口(操作806)。如果不是,那么NPU进一步检查内容存储区以确定是否可在内容存储区处维持的高速缓冲存储器表中找到匹配条目(操作808)。在一些实施例中,高速缓冲存储器表存储于快速存储器中,且高速缓冲存储器表中的不同条目表示存储于附接到CCN启用切换器的存储装置中的不同内容对象。通过对应于内容对象的兴趣的名称(HSVLI或其散列)对条目编索引。高速缓冲存储器表中的相应条目包含许多通信帧,每一通信帧能够从附接存储装置检索内容片段。在一些实施例中,附接存储装置是以太网上的ATA(AoE)存储装置或以太网上的光纤通道(FCoE)存储装置,且通信帧是以太网帧。
[0062]如果在高速缓冲存储器表中找到匹配条目,那么NPU将所述匹配条目中包含的所有通信帧(可为以太网帧)发送到附接存储装置以检索对应内容片段(操作810)。应注意,在一些实施例中,每一条目中包含的帧的总数对应于内容对象中包含的片段的总数。一旦从附接存储装置检索到内容片段,NPU便移除经囊封输送标头,例如AoE或FCoE标头(操作812),且将内容数据(任选地包含片段标头)发送到兴趣的传入端口(操作814)。在一些实施例中,NPU可基于帧是否具有与来自己知存储系统的NPU和源以太网相同的目的地以太网地址而识别应移除其经囊封输送标头的帧。应注意,所接收AoE或FCoE包的有效负载是恰当地形成的CCN内容对象或内容对象片段,不必进行额外处理。如果在高速缓冲存储器表中未找到匹配条目,那么NPU将使用从FIB获得的信息转发兴趣(操作816)。
[0063]应注意,在本发明的实施例中,可直接存取位于附接存储装置上的存储块的查询或通信帧是在实际查询发生之前产生。还应注意,为了从那些存储块直接读取,所述查询需要取决于附接存储装置的类型而遵守某些适当格式。对于AoE或FCoE存储装置,需要以太网标头来囊封ATA或光纤通道读取命令。此囊封可能耗费时间且延迟对传入兴趣的响应。因此,通过预先组装(使用更有力的CPU)适当查询且将那些预先组装的查询高速缓冲存储在快速存储器中,本发明的实施例允许快速内容检索。更具体来说,具有有限计算能力且并不具有文件系统的简单NPU可直接存取附接存储装置用于检索经高速缓冲存储的内容对象。应注意,虽然计算上有限,但NPU能够以比有力的CPU的帧组装速度高得多的速度执行表查找和帧转发的简单操作,因此确保对于CCN合意的快速兴趣响应速率。
[0064]图9图解说明根据一实施例的用于对附接存储装置的直接存取的示范性系统。用于对附接存储装置的直接存取的系统900包括处理器910、存储器920和存储装置930。存储装置930通常存储可加载到存储器920中且由处理器910执行以执行上文提到的方法的指令。在一个实施例中,存储装置930中的指令可实施PIT模块932、FIB模块934和内容存储区管理器936,其全部可通过各种装置彼此连通。
[0065]在一些实施例中,内容存储区可为经压缩表,其包含到存储阵列的网络地址的索弓1、指示将构造的囊封类型的旗标以及将检索的磁盘地址。NPU在需要时构造一或多个适当的网络帧。此方法以CS中的存储空间换得NPU处理循环。
[0066]在一些实施例中,模块932、934和936可部分地或完全地以硬件实施且可为处理器910的部分。此外,在一些实施例中,所述系统可不包含单独的处理器和存储器。实际上,除执行其特定任务之外,模块932、934和936单独地或协同地可为通用或专用计算引擎的部分。
[0067]存储装置930存储将由处理器910执行的程序。具体来说,存储装置930存储实施用于对附接存储装置(例如网络附接存储装置940)的直接存取的系统的程序(应用程序)。在操作期间,所述应用程序可从存储装置930加载到存储器920中且由处理器910执行。因此,系统900可执行上述功能。系统900可耦合到任选的显示器980、键盘960和指向装置970,并且还经由一或多个网络接口耦合到网络982。
[0068]此【具体实施方式】中所描述的数据结构以及代码通常存储在计算机可读存储媒体上,所述计算机可读存储媒体可以是能存储计算机系统可用的代码和/或数据的任何装置或媒体。计算机可读存储媒体包含但不限于易失性存储器、非易失性存储器、磁性以及光学存储装置,例如磁盘驱动器、磁带、CD (压缩光盘),DVD (数字通用光盘或数字视频光盘)、或能够存储目前已知或稍后开发的计算机可读媒体的其它媒体。
[0069]在【具体实施方式】部分中所描述的方法和过程可以代码和/或数据形式体现,所述代码和/或数据可以存储于如上文所描述的计算机可读存储媒体中。当计算机系统读取并且执行存储于计算机可读存储媒体上的代码和/或数据时,计算机系统执行以数据结构以及代码形式体现且存储在计算机可读存储媒体内的方法以及过程。
[0070]此外,本文中所描述的方法以及过程可以包含在硬件模块或设备中。这些模块或设备可以包含但不限于专用集成电路(ASIC)芯片、现场可编程门阵列(FPGA)、在特定时间执行特定软件模块或一段代码的专用处理器或共享处理器、和/或目前已知或稍后开发的其它可编程逻辑装置。当激活硬件模块或设备时,这些硬件模块或设备执行其内部所包含的方法和过程。
【主权项】
1.一种用于将内容数据高速缓冲存储到存储装置的系统,所述存储装置附接到内容中心网络CCN中的节点,所述系统包括: 处理器; 第二存储装置,其耦合到所述处理器且存储在由所述处理器执行时致使所述处理器执行方法的指令,所述方法包括: 接收内容包; 将所述内容包转发到对所述内容包的兴趣的传入端口 ; 在所述附接存储装置中高速缓冲存储所述内容包的副本; 组装对应于所述内容包的查询,所述查询包含至少网络标头和与所述内容包的所述经尚速缓冲存储副本所位于的存储块相关联的地址;以及 将所述查询存储在高速缓冲存储器表中,进而促进使用所述经组装查询对所述存储块的后续直接存取以检索所述内容包的所述副本。2.根据权利要求1所述的系统,其中所述附接存储装置包含以下各项中的至少一者: 以太网上的高级技术附接ATA存储阵列; 以太网上的光纤通道FCoE存储阵列;以及 因特网小型计算机系统接口 iSCSI存储阵列。3.根据权利要求2所述的系统,其中所述网络标头包含以太网标头。4.根据权利要求1所述的系统,其中所述内容包包含多个片段,其中高速缓冲存储所述内容包的副本涉及将每一片段存储到连续存储块的单独集合中,其中针对每一片段组装单独的查询,且其中所述高速缓冲存储器表中对应于所述内容包的条目包含对应于所述多个片段的多个查询。5.根据权利要求1所述的系统,其中所述方法进一步包括: 随后接收对所述内容包的兴趣; 搜索所述高速缓冲存储器表以获得所述查询; 将所述查询发送到所述附接存储装置; 响应于所述查询从所述附接存储装置接收数据包; 从所述所接收数据包移除网络标头;以及 转发所述数据包。6.根据权利要求5所述的系统,其中搜索所述高速缓冲存储器表涉及基于所述所接收兴趣执行最长前缀匹配查找。7.根据权利要求5所述的系统,其中所述方法进一步包括基于存储于所述高速缓冲存储器表中的元素构造所述查询的网络表示。8.根据权利要求1所述的系统,其中与所述存储块相关联的所述地址包含逻辑块寻址LBA地址。9.根据权利要求1所述的系统,其中所述节点包含各自能够接收内容和兴趣包的多个线卡,且其中方法进一步包括将所述高速缓冲存储器表填充到所有所述多个线卡。
【专利摘要】本发明的一个实施例提供用于将内容数据高速缓冲存储到附接到内容中心网络CCN中的节点的存储装置的系统。在操作期间,所述系统接收内容包;将所述内容包转发到对所述内容包的兴趣的传入端口;在所述附接存储装置中高速缓冲存储所述内容包的副本;组装对应于所述内容包的查询,所述查询包含至少网络标头和与所述内容包的所述经高速缓冲存储副本所位于的存储块相关联的地址;以及将所述查询存储在高速缓冲存储器表中,进而促进使用所述经组装查询对所述存储块的后续直接存取以检索所述内容包的所述副本。
【IPC分类】H04L29/08
【公开号】CN104901997
【申请号】CN201510087410
【发明人】M·E·莫斯科
【申请人】帕洛阿尔托研究中心公司
【公开日】2015年9月9日
【申请日】2015年2月25日
【公告号】US20150254347