EQL动力揭秘PS6100/4100控制器设计分析

从EqualLogic PS6100、4100的区别谈起

早在2009年初的“iSCSI + SAS:PS5000XV与MD3000i的别样生活”一文中,当时的ZDNet存储时代主编张广彬(现任CBSi企业解决方案中心首席分析师)就曾分析过Dell EqualLogic PS5000系列的控制器设计。

大约一年之后,我们又在“存储时间:戴尔固态盘iSCSI阵列PS6000S视频解析” 中,为读者简单展示、分析了EqualLogic PS6000的控制器。不过由于笔者当时水平所限,似乎还有些遗憾和意犹未尽的感觉。总之,PS6000以及后来支持万兆iSCSI主机接口的 PS6010系列存储系统,与之前的产品在设计上还是有不少接近之处的,特别是后端连接驱动器的3Gb/s SAS控制器 + 12端口扩展器芯片。

EQL动力揭秘:PS6100/4100控制器设计分析 

戴尔EqualLogic PS6100XV 3.5”和PS6100E后视图,二者都是4U 24个3.5英寸驱动器位,只是搭配的硬盘转速不同。

可能是和EqualLogic产品比较有缘吧,最近CBSi企业解决方案中心又在第一时间拿到了1台PS6100XV 3.5”和1台PS4100XV 3.5”测试样机,各自带有12个3.5英寸转速15,000rpm的600GB硬盘。也就是说前者安装了一半的驱动器热插拔位,而后者是满配。

关于PS6100/4100系列的硬件规格,我们已经在“EqualLogic和3PAR,分步硬起来”这期《存储时间》中有过比较详细的介绍,9月于张家界举办的2011戴尔存储论坛上 笔者又见到了PS6100E和PS4100XV 3.5”的实物样机。除了这些,用户们当然还关心性能,不过吸引我去做的第一件事却不是实际测试——而是控制器的拆解。因为EqualLogic家族产品 的高级软件特性主要还是传承过去的,而由于新品在结构上改为采用SBB 2.0规范,RAID控制器的外观尺寸(Form Factor)有了明显的变化。

在展示更多的照片之前,我们想先列出PS6100/4100系列的一些不同之处。

EQL动力揭秘:PS6100/4100控制器设计分析

戴尔EqualLogic PS6100/4100系列iSCSI存储系统功能对比(部分)

为什么要比较这个呢?因为笔者想说明一下,PS6100和PS4100除了差在iSCSI主机接口之外,还有其它软件功能上的不同(暂时先不讨论性 能)。比如说卷、快照、并发连接数等方面,特别值得注意的是表格中最下面一项:被称为“动车组”的EqualLogic阵列Scale-out——可同步 提升性能和容量的横向扩展模式,PS6100最多可达到16台,而PS4x00则只能支持2台。

如果您对上一代的PS6000和PS4000系列有了解的话,它们也是如此,但今天有一点不同:戴尔在同时宣传和推广PS6100和PS4100, 而之前似乎只力推PS6000。其实这个问题是定价策略导致的——据了解以前PS4000和PS6000的出货价格基本相同(任何人都知道该买哪一个 吧?),而如今Dell显然是受到了来自EMC VNXe(带有大部分VNX中端阵列的软件功能,而且还是统一存储)这些入门级产品的竞争压力,从而放下了PS4100的身价。

当然还有戴尔和EMC这对昔日的盟友,如今成了竞争对手。原来合作的结晶之一(CLARiiON)AX4-5光纤通道阵列,戴尔将不再销售,如此也就不用担心EqualLogic侵入中低端市场会给其它产品线带来明显的影响。

这里我们又产生2个疑问,PS4100和PS6100在硬件成本上究竟有多大差距?上面表格中两款产品的不同之处,主要是由于处理能力的原因,还是人为限制呢?

本文就是想通过戴尔EqualLogic PS6100/4100 iSCSI阵列控制器的拆解,来分析其结构设计,并比较二者之间的异同。

EQL动力揭秘:PS6100/4100控制器设计分析 

戴尔EqualLogic PS6100阵列控制器:左侧有4个千兆以太网iSCSI主机接口,右边则是专门用于管理的百兆网口和1个串口。

我们期待的一切奥妙之处,可以说都在这个控制器中…

DRAM内存、闪存+电容的缓存保护模块

EQL动力揭秘:PS6100/4100控制器设计分析  

在EqualLogic PS6100控制器向内连接背板的一侧,除了多个兼容SBB定义的供电、信号连接器之外,我们看到左边似乎还有一个Micro-SD存储卡插槽(红圈部分)。至于它的作用,我想有些读者可能已经大概知道,下文中将会有进一步的展示和说明。

EQL动力揭秘:PS6100/4100控制器设计分析

拆掉RAID控制器的金属上盖,我们了解到电路板的一个概况。首先是PCB上印有“DELL EqualLogic”的字样,反映出是戴尔EQL研发团队的自主设计;其次有3颗覆盖着散热片的主要芯片,加上2个ALTERA公司的FPGA(现场可 编程门阵列);最上方插着2条内存,在它们左边应该是由电容等组成的缓存保护模块(EqualLogic PS6100/4100带有备份到闪存的DRAM断电数据保护功能)。

EQL动力揭秘:PS6100/4100控制器设计分析 

从这个角度,可以更清晰的看到控制器缓存、电容模块以及2颗不同型号的ALTERA FPGA芯片。此外在内存插槽的旁边还有2排一共12个小型BGA封装芯片,显然是与内存访问和控制有关,后面我们还会具体介绍。

EQL动力揭秘:PS6100/4100控制器设计分析 

来自美光(Micron)的2GB ECC Registered DDR2-800 SDRAM内存条——EqualLogic PS6100控使用的是244-pin VLP Mini-RDIMM,与标准尺寸内存相比节约了控制器PCB上的空间占用。除了每控制器增加一条容量翻倍到4GB之外,它们在电气和功能特性上与我们以 前评测的LSI Engenio 2600(被NetApp收购之后的E2600,也包括OEM给IBM的DS3500和戴尔的MD3200/3600系列)中的内存基本相同。

EQL动力揭秘:PS6100/4100控制器设计分析 

EqualLogic PS6100的电容模块比较容易拆下来,上面并排放置了4个蓝色的大电容,让我们想起了“永不消逝的缓存数据:Adaptec 5445Z RAID卡评测”一文中ZMCP(零维护缓存保护)模块的电容单元。它们在连通电源时充满的电量,用于异常断电时将DRAM缓存中的数据写入闪存以防止丢失。另外这一小块PCB上也印有“DELL”和“EQUALLOGIC, INC.”的字样。

EQL动力揭秘:PS6100/4100控制器设计分析 

上图中可以看到2个浅色的连接器(实际方向呈斜对角),就是用于安装电容模块的。如果不出意外的话,有可能是从左下方的连接器充电,而通过右上方那 个放电,供应给邻近的DRAM内存、ALTERA Cyclone III FPGA和Micron 32Gb(4GB)SLC NAND闪存芯片。 

ALTERA Cyclone III FPGA芯片在这里的作用应该与NetApp E2600(原LSI 2600)大致相同,主要负责连接Flash和DRAM缓存,控制数据的备份和还原操作;而Adaptec 5445Z RAID卡使用的FPGA为Lattice ECP2。不过EqualLogic PS6100配置的闪存容量和DRAM同样是4GB,而LSI Engenio/CTS 2600存储系统和Adaptec 5445Z RAID卡的闪存都是内存容量的4倍。至于为什么会有这些不同的设计?我们曾经猜测过可能的原因。

还有一个我们在上文中提到过的组件——照片左下角弹出的1GB Micro SD卡,应该是存放控制器固件(Firmware)也就是操作系统。您还记得以前的EqualLogic PS5000系列控制器上CF存储卡和PS6000上Micro SD卡的位置吗?

EQL动力揭秘:PS6100/4100控制器设计分析 

NXP半导体的CBTU4411——11-bit DDR2 SDRAM MUX/bus switch with 12W ON resistance(带有12欧姆阻抗的内存总线开关/切换器)。其实在控制器电路板的背面还有12颗同样的芯片,对于它们我并没有多大兴趣,反而是对 与之相关的内存控制器,以及“特殊?”设计的访问方式(可能与双控制器缓存镜像有关)更加好奇。

本文写到这里,涉及的都还是控制器的周边部分,接下来我们就要陆续揭开EqualLogic PS6100的核心——CPU、SAS RoC(RAID on Chip)和扩展器芯片。

四核心64位MIPS CPU+网络控制器

EQL动力揭秘:PS6100/4100控制器设计分析 

我们取下了PS6100控制器3颗最主要芯片上的散热片——来自NetLogic公司的XLS616 CPU+网络控制器(MAC)、LSI SAS2108 6Gb/s SAS RoC和PMC-Sierra的36x6GSec SAS扩展器(Expander)芯片,当然还有中间ALTERA公司的Arria GX系列FPGA负责I/O。我们是怎样判断它们的分工,以及互相之间的联系呢?下面先对每个芯片的功能进行介绍。

EQL动力揭秘:PS6100/4100控制器设计分析 

NetLogic XLS616 X D 1000 核心处理器+网络控制器(MAC)

NetLogic MicroSystems是一家以网络相关芯片为主要业务的公司,今年9月Broadcom(博通)宣布以约37亿美元将其收购。不过NetLogic XLS616在EqualLogic控制器中的角色应该是核心处理器+网络控制器(MAC,媒介访问控制层),我们来看一下它的结构图:

EQL动力揭秘:PS6100/4100控制器设计分析 

NetLogic XLS616处理器芯片结构图

首先NetLogic XLS616包含了4个64-bit MIPS CPU核心,XLS616 X D 1000中的“1000”代表这颗芯片的主频为1GHz(另有800MHz和1.2GHz两种频率),每个核心能够提供4路vCPU硬件多线程,这样总共就是16线程。4个CPU核心共享1MB L2 Cache(二级缓存)。

关于MIPS指令集,笔者没有太多的研究,只记得这家芯片设计公司多年前曾经被SGI收购而后又被卖出。还有就是我国自主知识产权的“龙芯”CPU就是采用了该指令集的授权。总之,戴尔EqualLogic PS6100的CPU属于64位RISC而不是逐渐流行的x86架构,但又没有选择NetApp E2600、E7900(原LSI Engenio 7900,对应IBM DS5300)和Infortrend ESVA等那样的Power PC处理器。

继续看上面的结构图,左下方是一个网络加速器,可以最多配置为8个千兆以太网MAC(8 SGMII或者7 SGMII + 1 RGMII接口),EqualLogic PS6100控制器只使用了一半。我们看到NetLogic XLS616芯片公开的资料有限,但考虑到每组的4个MAC可选配置为一个XAUI高速接口,因此估计更换配合的PHY(物理层)部分芯片就可以提供2个10GbE iSCSI主机接口。尽管PS6100现在还没有推出万兆iSCSI的版本,但是也快了,到时候的产品名称可能是PS6110吧?

接着往右看是4通道DMA引擎,这个应该有助于LSI SAS2108 RoC芯片直接访问NetLogic XLS616控制的内存,来处理RAID运算工作。当然前提是RAID功能不放在MIPS CPU核心上运行。

系统I/O部分也是我们关注的一个重点,因为它涉及到连接后面我们将要讨论的6Gb/s SAS RoC芯片等。NetLogic XLS616的PCIe 1.1(而不是2.0,注意)控制器能够支持4个x1或者1个x4 lane的配置。我们知道1.1版本的PCI Express x4的单向理论带宽为1GB/s,于是这里很可能又遇到了类似于EqualLogic PS5000/6000/6010那样的后端瓶颈——当初通过PCI-X 133MHz总线连接的LSI SAS1068 3Gb/s SAS控制器的带宽也不超过1GB/s。在当前4个1GbE iSCSI主机接口的情况下没什么影响,一旦将来前端换成2个万兆,恐怕还是难以发挥出最大的带宽性能吧?

另外,笔者还注意到NetLogic XLS616处理器的PCIe接口还可以选择配置为SRIO(Serial RapidIO),不过其频率能否超过PCIe 1.1的2.5GHz达到3.125GHz则很难说。据了解,在EMC的高端存储系统Symmetrix VMAX/VMAXe的虚拟矩阵架构中,每个引擎之间就使用了高速的RapidIO互连。至于一旦换成串行RapidIO,如何连接到PCI Express接口的LSI SAS2108 RoC?我们会在后面为您解释这种方式可能性。

NetLogic XLS616芯片中的安全和压缩/解压缩加速器,目前应该没有被使用到。在结构图的右下角,4个36位(带有ECC)的DDR2内存控制器可以配置成2个 72位内存通道,也就是说在EqualLogic PS6100控制器上的2条内存有可能是双通道的形式。

RoC实现RAID?SAS扩展器预留JBOD接口

EQL动力揭秘:PS6100/4100控制器设计分析 

LSI SAS2108:8端口6Gb/s SAS RoC芯片(注意上方空焊的244-pin VLP Mini-DIMM插槽,还有左侧的2个元件位置)

LSI SAS2108这颗RoC如今广泛应用在主流的6Gb/s SAS RAID卡上。我们以前曾介绍过,NetApp E2600存储系统的核心是16端口的LSI SAS2116,因为它还有2组x4 SAS link(miniSAS SFF-8088连接器)作为主机接口使用。尽管两款芯片的处理能力基本相同,不过SAS2108 RoC在EqualLogic PS6100中应该只负责RAID或者SAS控制器的功能,因为它没有本地内存

空焊的244-pin VLP Mini-DIMM插槽等位置,意味着LSI SAS2108在这里可能只充当SAS控制器的角色,或者像LSI MegaRAID SAS 9240系列入门级6Gb/s SAS RAID卡上的LSI SAS2008那样(当然SAS2108集成的PowerPC频率比SAS2008要高),通过CPU(在PS6100控制器上就是NetLogic XLS616)的内存控制器来实现RAID处理和缓存访问。当然如果在此处添加了专用的RAID缓存(特别是write-back型写缓存),性能应该可 以更好,不过还要单独考虑断电数据保护的问题。

 EQL动力揭秘:PS6100/4100控制器设计分析

PMC-Sierra SXP 36x6GSec 36端口6Gb/s SAS扩展器(Expander),芯片编号为PM8005

EqualLogic PS6100没有像NetApp E2600(包括戴尔PowerVault MD3200/3600系列)那样使用功能相似的LSISAS2X36 36端口6Gb/s SAS扩展器,毕竟EqualLogic研发团队不像Engenio是NetApp从LSI收购来的外部存储业务,由于SAS 2.0规范良好的设备互操作性选择PMC-Sierra 36x6GSec也很正常。值得注意的是,在控制器电路板正面,我们可以看到由该芯片引出的32条SAS连接,其中24个lane通向背板(驱动器);而LSI SAS2108与PMC-Sierra 36x6GSec之间的通信由PCB背面的4条SAS连接实现。那么,剩下的8个SAS信道用到哪里去了呢?

EQL动力揭秘:PS6100/4100控制器设计分析 

您注意到左上方两个空焊的SFF-8088 miniSAS x4连接器位置了吗?它们就是由PMC-Sierra 36x6GSec 6Gb/s SAS扩展器引出的。我们可以想象,戴尔EqualLogic PS6100已经预留了纵向扩展的能力,也就是通过控制器柜向上级联SAS JBOD(如:PowerVault MD1200/1220)来增加驱动器的数量。未来我们很有可能看到EqualLogic存储系统可以同时支持Scale-out(横向扩展)和Scale-up

在2个SFF-8088连接器位置的右边,就是4个千兆以太网iSCSI主机接口,以及与它们相关的一颗Broadcom芯片。按照上图拍摄的方向,下面还有一个被我们取下散热片的VITESSE芯片。再放大详细看看:

EQL动力揭秘:PS6100/4100控制器设计分析 

Broadcom BCM5466R四端口千兆以太网收发器、VITESSE VSC3312 6.5 Gbps 12×12 Crosspoint Switch芯片

Broadcom BCM5466R四端口千兆以太网收发器(PHY),用于配合NetLogic XLS616处理器芯片中的MAC来实现iSCSI主机接口。而VITESSE VSC3312则是一颗12端口6.5 Gbps异步交换芯片,在很多iSCSI/以太网统一存储系统中都有类似的设计。将来的EqualLogic PS6100万兆版本上,BCM5466R几乎一定会换成双端口10GbE PHY。

多协议可编程FPGA I/O控制器设计

EQL动力揭秘:PS6100/4100控制器设计分析 

ALTERA Arria GX系列FPGA芯片

Arria GX EP1AGX20C——就是那颗不带散热片、尺寸较大的ALTERA FPGA,我们在前文中曾经说过它负责I/O。还是先简单看下该芯片的资料:

EQL动力揭秘:PS6100/4100控制器设计分析 

ALTERA Arria GX系列最多包含12个高速串行收发器通道,它们可以是PCI Express、千兆以太网、XAUI、SDI或者Serial RapidIO等连接协议,速率支持600Mbps~3.125Gbps。EP1AGX20C属于Arria GX系列芯片中一款低端的4通道型号。

在分析Arria GX的作用之前,我们先来回顾一下戴尔PowerVault MD32x0i(基于NetApp E2600)和IBM Storwize V7000存储系统控制器架构图中的I/O设计。

LSI CTS2600:6Gbps SAS存储系统架构解析 

戴尔PowerVault MD3200/3220i的控制器设计,用它来代表NetApp E2600(LSI Engenio 2600)一个小的改款

请注意上图中的32-lane PCI-E交换芯片(最多可以配置出8个接口),即NetApp E2600控制器中的PLX PEX8632。这里使用了2个PCI-E x8分别连接LSI SAS2116 RoC芯片和HIC主机接口扩展子卡,2个PCI-E x4连接到背板用于双控制器之间的通信,还有一组(实际上应该是2个PCI-E x1,在戴尔MD3200/3600系列中只使用了1个)连接1Gb/s管理网口控制芯片。

LSI CTS2600:6Gbps SAS存储系统架构解析 

IBM Storwize V7000控制器结构图

IBM Storwize V7000中端存储系统中的48 lane PCIe交换芯片,使用了16个PCIe 2.0信道向上连接Xeon C5500/3500系列CPU。由此分别中转到用于前端接口的8Gb/s FC Controller、8端口6Gb/s SAS Controller,此外还有通过SBB高速背板与另一个控制器通信的PCIe信道,以及前端可插拔PCIe卡(选配10Gb iSCSI主机接口)。

以上PCIe Switch芯片实现的这些功能,还有哪些我们在EqualLogic PS6100上没介绍到呢?千兆iSCSI主机接口的MAC已经集成在NetLogic XLS616中,USB to LAN管理网口芯片也是直接连到这颗MIPS CPU上;剩下的主要就是双控制器之间的背板通信,用于实现Active-Standby冗余高可用和写缓存镜像;还有前文中未决的NetLogic XLS616 PCIe/SRIO和LSI SAS2108 6Gb/s SAS RoC之间的连接方式。

根据手头掌握的有限资料,我们这样判断:ALTERA Arria GX FPGA芯片通过PCIe或者串行RapidIO连接到NetLogic XLS616处理器;然后以同样协议连接到背板与另一个控制器通信,使用PCIe连接LSI SAS2108 RoC。另外,我们还在PCB背面看到Arria GX和ALTERA Cyclone III这2颗FPGA之间应该也有连线。

这里为什么要使用FPGA,而不是固定功能的PCIe Switch ASIC芯片?其好处就是灵活的可编程特性,根据需要可以选择不同的I/O协议。当然,上述猜测的这部分功能,除了Arria GX之外还有与其配合的相关辅助芯片,我们就不一一介绍了。

EQL PS4100:一颗精简的“芯”?

EQL动力揭秘:PS6100/4100控制器设计分析 

戴尔EqualLogic PS4100阵列控制器:与PS6100相比减少了2个千兆以太网iSCSI主机接口

 EQL动力揭秘:PS6100/4100控制器设计分析

PS4100控制器的电路板设计与EqualLogic PS6100如出一辙,只是PCB的绿色显得更深些,这个不过是因为2个批次的电路板来自不同的供应商。那么,散热片下面的芯片型号也都相同吗?

EQL动力揭秘:PS6100/4100控制器设计分析 

在控制器上最关键的4个芯片中,EqualLogic PS4100只有NetLogic XLS608 CPU+网络控制器(MAC)这一颗和PS6100不同。

EQL动力揭秘:PS6100/4100控制器设计分析 

NetLogic XLS608处理器芯片结构图

与EqualLogic PS6100使用的NetLogic XLS616相比,XLS608 X D 0800的主频为800MHz,而且它只有2个四线程的64-bit MIPS CPU核心,也就是说其处理能力约为XLS616的40%。除此之外,两颗处理器的其它功能模块基本相同。

回到本文开头我们提到的PS6100和PS4100之间的差别——卷、快照、并发连接数等方面,还有Scale-out 线性扩展的节点数量限制。包括这些在内的高级软件功能应该都是由NetLogic MIPS CPU来实现的,那么选择性能不同的XLS616和XLS608也在情理当中。

EQL动力揭秘:PS6100/4100控制器设计分析 

EqualLogic PS4100控制器的电路板上,千兆以太网iSCSI接口“PORT 2、PORT 3”的位置都是空焊。此外,PS4100应该也具备连接6Gb/s SAS JBOD扩展驱动器数量的潜力。

而在另一方面,iSCSI主机接口的个数则主要是人为限制,因为PS6100和PS4100使用的都是同一颗Broadcom BCM5466R四端口1Gb/s以太网PHY芯片(见下图)。

EQL动力揭秘:PS6100/4100控制器设计分析 

Broadcom BCM5466R,以及旁边带有散热片的VITESSE VSC3312 6.5 Gbps 12×12 Crosspoint Switch芯片

总结

写到这里,我们可以说已经大致搞清了戴尔EqualLogic PS6100和PS4100的控制器硬件设计。其实EqualLogic存储产品家族的更多价值体现在软件功能上,包括精简配置(Thin Provisioning)、阵列内部(PS6100XS)和阵列之间的自动分层存储、SAN HQ多组监控管理,还有集成各种主流服务器、虚拟化应用的数据保护功能。而且它们还都是免费提供给用户的,也就是说不需要购买任何附加License。

本文所写的这些内容,不见得每一个企业存储用户都感兴趣,不过我们的影响受众面可能还包括戴尔及其他厂商的技术人员。其实笔者还有这样一个目的:希 望能够在研究、学习EqualLogic的同时提高我们自己——也包括各国内存储厂商的产品设计水平。最后借用业内一位朋友的话:“振兴民族科教!”