网络存储市场正在迅速成长。随着SAN成为更加主流的应用,客户对存储解决方案的要求也越来越高,如缩短数据存取时间、增加灵活地对数据存储器进行分区的功能、改善安全性以及降低系统复杂性,这还仅仅是众多要求中的几个。本文探讨如何满足客户的这些要求,以及如何利用WAN市场中迅速成长的信息包处理解决方案-网络搜索引擎(NSE)来提供这些服务。
图1 基于客户机、服务器模型的典型企业网络(略)
图2 SAN分区(略)
存储网络概述
今天的企业网络大多数基于客户机/服务器模型,类似于图1所示的结构。在这些系统中,客户机和服务器通过由以太网交换机组成的网络互连,这些网络基于TCP/IP传输协议。服务器中有两种类型的插入卡。一种是网络接口卡(NIC),另一种是主机总线适配器(HBA)。NIC通过以太网局域网(LAN)通信。HBA在主机内部的外设总线和到存储单元的接口之间起桥接作用。HBA允许文件以一种称为块格式的特殊格式在服务器(主机)和连接到服务器上的存储单元之间传输,存储单元要求用这种块格式。
第一代存储网络一般都采用直接连接存储(DAS)系统形式,这种网络由带有专用存储磁盘驱动器的服务器组成。DAS最终让位于存储局域网(SAN)。由于SAN在本质上是分散性的,因而更可靠、效率更高、规模扩展时也更省钱。但是随着人们对SAN的改进,又出现了一些新的问题。首先,无论是对于已知的还是未知的各种请求的发起者来说,数据都更易于获取了。其次,新建立的连接过多,增加了网络的复杂性,因而难于控制存取过程,也难于跟踪用户以及用户请求的数据。因而改进存取控制成为当务之急。
在有些网络中迅速采用了SAN分区制的概念来改善存取控制。软分区通过在简易名称服务器(SNS)和光纤通道协议之间建立联系来实现分区。当一个端口与SNS接触时,SNS仅返回与发出请求的端口在相同分区中的光纤通道端口的信息。这样,就防止了不在这些分区中的端口被发现,因此光纤通道协议与这类端口的通信就无需考虑了。一种分区方法是建立在隔离操作系统的基础之上的,如图2所示。这种分区策略防止了由于不同操作系统之间的不兼容而导致的错误和数据讹误。
不幸的是,软分区不能完全按照用户的意愿来实施,而且有可能出现事故。例如,可能由于对帧的错误编址,一个Windows NT服务器无意间知道了分配给UNIX服务器的存储器。为了防止这些可能的事故,还需要采用诸如硬件帧过滤等一些其他的方法来实现分区。
网络搜索引擎(NSE)为存储应用提供了可选的硬件解决方案。本文下面专门阐述NSE如何提高存储网络的安全性和性能。
图3 描述了NSE在存储交换机中的典型应用(略)
网络搜索引擎概述
网络搜索引擎(NSE)是一种三进制内容寻址存储器(TCAM)器件,专门用来支持在信息包处理过程中的查找操作。在单个时钟周期中能搜索整个转发或策略表并提供搜索结果的能力,使NSE在WAN、MAN和LAN市场上获得广泛应用。此外,这种产品的三进制特点使其能将很多子网IP地址合并成单个入口。由于这类产品仍然相对较新,所以它们发展很快,密度在迅速提高,各项特性也不断地跟随信息包处理应用的发展进行着优化。让IP市场受益的技术和功能同样易于应用到存储市场。
在采用光纤通道网络的情况下,当帧进入交换机时,分析器将合适的帧信息送给NSE。NSE能在单个时钟周期内搜索整个数据库,并确定相匹配的内容。NSE可以将成功匹配索引返回给处理器,或者利用它与SRAM的连接返回匹配规则或转发地址。NSE与SRAM之间无需额外的接口硬件。
NSE接口现在已经发展到可以支持两种不同的设计理念。一种理念针对基于ASIC或FPGA处理器的系统。支持这种设计理念的NSE有专用的双数据速率(DDR)接口,一般宽度为72比特。这么宽的接口允许处理器在单个时钟周期内给出较大的搜索关键字(长达144比特)。另一种NSE接口支持商用信息包处理器,如英特尔、IBM、AMCC和其他公司提供的网络处理器。纳入业界标准接口以后,不再需要桥接芯片来提供无缝的解决方案,有助于产品快速上市。
网络搜索引擎实现存取表
存储网络的硬分区一般根据存取控制表的不同而不同。网络中不同部分或端口都要遵循存取控制表(ACL)为其建立的存取规则(见图4)。通过检查光纤通道帧中的一组字段,可以惟一识别出存储请求的始发者。如果在ACL中发现了与始发者相匹配的内容,就采取相应的操作:允许或拒绝存取。
以前,系统管理员仅通过检查目的端口和源端口的标识符来执行存取规则。但是现在,人们越来越多地利用其他字段来进行更详细的检查。例如,通过检查TPYE字段和R_CTL字段(每个字段都是8位),系统管理员能根据始发者所使用的操作系统类型将信息包过滤出来,从而拒绝对不兼容系统的存取操作。
LUN字段是另一个可用来过滤信息包的字段。目前业界的一个热门话题是虚拟化。LUN屏蔽可用来将存储设备集中起来,在不同分区之间虚拟分隔存储空间。将LUN包含在ACL中,可以有效执行虚拟分隔。最后,通过检查Opcode,系统可以对特定请求加以限制,比如设置成只读,就可以防止用户覆盖掉有价值的信息。
图4 ACL与ACLs(略)
如图所示,在规则集里使用的字段越多,利用和提供存储容量就越有效率。但是,使用更多的字段意味着给搜索过程增加了更大的复杂性。不仅每个入口的宽度越来越大,而且每个入口可能包含多个字段,其中一个或全部字段中又包含对应一系列数值的通配符。在RAM中,每个特殊的地址区都必须扫描,而且这些地址仅能支持精确的匹配操作。运算法则和散列法能降低这种处理操作的强度,但是又带来了新的问题,如额外的编程开销、有限的扩展性和复杂的表更新处理过程。
图5 NSE架构
图6 在单个NSE器件中的多个表
NSE的TCAM架构不受这些限制。正如前面所提到的,NSE接收由帧字段组成的搜索关键字,这些帧字段是由用户确定的。之后,NSE将这些帧字段与整个表中的内容逐一比较,比较过程在单个时钟周期内完成(见图5)。这种高效率的解决方案与其他硬件/软件搜索技术相比,极大地降低了复杂性和额外开销。此外,通过利用三进制的"无关"位(在比较期间)来将多个信息流或端口合成一个单个入口,ACL表还可以缩小。
|