ADC产品出现10多年来,其架构经历了若干代演变,不同架构之间不免很多口水战。回头看来,自然是各有优劣,存在即合理。最终的发展结果就是当今各主流厂商都选择了的多核多CPU硬件架构,不同之处只是其软件操作系统架构。

最早的架构之争应属Foundry、Alteon、Arrowpoint时代,3家公司当时均采用交换机架构,但内部处理有所不同。Foundry采用CPU处理所有4-7层流量,ASIC只负责2/3层转发和将流量哈希分发到多个CPU,可以说Foundry最早在ADC产品中使用了多CPU(PowerPC)技术,但IPC(处理器间通信)是A10之外厂商至今无法逾越的障碍。Alteon则采用内置RISC处理器的ASIC芯片,每个端口有独立的ASIC芯片和内存。每个ASIC配置的可怜的2M内存自然会带来很多瓶颈。Arrowpoint介于上述2者之间,采用可进行微码编程的内部芯片进行分布式的简单4层流量处理(类似F5后来的PVA 4层加速芯片),7层应用及复杂功能处理则由CPU进行处理。太久的历史,我们无需再考证孰优孰劣。但可以看出的一点就是如何提升4-7层处理性能是ADC产品面世之初即备受关注。后续ADC产品中依然可以看到这几种架构的影子。

接下来就是F5为代表的PC架构式产品和上述3家交换机架构产品之争,这是持续比较长的一个阶段。中间PC阵营有Netscaler(Citrix)等加入,交换机阵营有Radware等加入。PC阵营的公司为了摆脱这种困境,往往将一块交换模块放入机箱,内部使用1个以太网端口原PC网卡相连,这种方式一直持续到2008年。很明显这样的架构无论可靠性还是性能都不可能做到很好。从这方面看似乎交换机阵营处于优势。然而交换机阵营忽略了很重要的一点,就是“应用”。交换机阵营要么不重视应用,要么由于硬件和专有操作系统所限,应用灵活性大打折扣。而使用Unix或Linux的PC阵营这方面就灵活很多。最终还是用户需求说了算,PC阵营依靠应用灵活性在性能处于劣势的情况下占了绝对上风。这中间F5在高端产品中也开始引入硬件芯片PVA进行简单4层加速,但事实证明这只是迫于来自交换机阵营和客户的性能压力的无奈之举。实际用户很少使用到该芯片,而其带来的副作用困扰了很多用户。这也许正是目前F5所有产品放弃该芯片的原因。

前几年出现过试图采用NP(网络处理器)的ADC产品,如Crescendo。市场很快证明NP私有的多核架构、复杂的微码编程、太小的Cache根本无法适应应用灵活性的需求。这中间PC阵营开始使用双核CPU,但真正处理数据的还是只有1个核,另外1个核要么只用于控制、要么索性闲着。

现在看看市场上的ADC产品,绝大部分采用了多核多CPU架构。由于CPU资源足够,交换路由无论硬件还是软件处理都已不是问题,,但根本的一点是内部连接应使用高速的PCI express总线硬件芯片可以在有大量2/3层流量和防攻击方面具有一些优势。如此看来,貌似架构上没什么区别了,其实不然,如何充分发挥相同标准硬件架构的性能,其软件操作系统是至关重要的。最核心之处就是多CPU间是否需要IPC(处理器间通信),是否共享内存。最早的基于通用CPU的多核产品当属A10于2007年发布的AX系列产品,A10网站有其创始人Lee Chen于2007年亲自撰写的架构白皮书认为这是未来ADC产品的发展趋势。之后业内产品确实基本都为多核架构,但至今仍然只有A10为共享内存、无IPC的架构。没有共享内存的情况下,各个核控制自己的内存,处理自己的数据,定时交换信息,这就是不可避免的IPC。独享内存和IPC有什么不利之处?

  • 消耗CPU资源,随着核数量增加,处理器间通讯开销越大,通讯间隔越短开销越大。
  • 内存使用效率低,每个核2-4G内存,这也是目前很多产品动辄16G、32G内存的原因。绝非其采用了64位操作系统,目前为止只有A10在2009年推出了64位ADC产品。
  • 数据准确性,对于连接限制、连接速率限制、最少连接策略等特性,IPC通讯带来的误差可能导致策略完全失效。
  • 性能降级,对于一些应用如涉及全局变量和哈希会话保持表,这种架构不得不降级为单核处理(1/8性能乃至更低)。

那么为什么不采用共享内存呢?共享内存架构只需要保留一份数据,没有数据一致性问题和IPC问题,当然是最佳方案。但如何解决CPU间锁的问题是最大的障碍所在。A10如何解决这个问题做到“零锁定”,自然是不会公开的,作为员工的博主也不得而知。但A10使用1个4核CPU可以达到其它产品2个4核CPU产品的性能证明其架构优势是实实在在的。

下图为共享内存架构和独享内存示意图,

共享内存架构

ADC之架构演变_A10

 

独享内存架构

ADC之架构演变_A10_02

A10唯一的共享内存架构配合其唯一的64位系统架构(突破单核4G内存限制)确保了其技术领先的地位,相信其它产品会慢慢跟上来,只是这不像仿硬件架构那么简单。截止目前已经4年,尚无类似产品推出。我们一起来看需要多久,A10于2007年1月发布该架构,下一个会是谁?201x年?