存储 频道

533MHz PPC处理器 LSI SAS 9211-8i评测

  【IT168评测中心】10月27日的时候,著名的存储适配器公司LSI在北京宣布推出基于SAS 6Gb/s 技术的全新系列高性能SATA+SAS 主机总线适配器(Host Bus Adapter,HBA)。这种基于LSI SAS 2008 6Gb/s SAS 控制器芯片的HBA产品可以为内外部SATA+SAS直联存储部署带来更高的性能和可扩展性,并将会是未来两三年内的主力产品。


LSI SAS 9211-8i宣传照

  新一代的HBA产品最大的特点是6Gb/s的接口带宽,而在之前,接口带宽只有3Gb/s。除了SAS 6Gb/s之外,LSI推出的新一代HBA卡还有许多特点,现在这一代HBA卡中有一块已经到达了我们IT168评测中心手中,我们接下来将可以细细观察这块卡的细节,并借助我们的专业解说领略新一代SAS 6Gb/s的独特魅力。


LSI SAS 9211-8i实物照


官方站点的特点介绍

 


很传统的包装盒


LSI SAS 9211-8i真容,LSI SAS 9211-8i具备8个SAS口,是LSI这一代HBA中较高级别的型号


Low Profile,也就是“低矮”外形,和往常一样,包装盒里面同时包含了“低矮”挡板和正常的挡板以适应不同的情况 


背面上也有很多贴片元件,毕竟,这么一块相对“清爽”的东西就比看起来庞大的普通显卡要贵不少


为什么HBA卡这么贵呢?它到底有什么作用呢?


HBA贵的原因在于它的芯片,实际上它几乎就是一个SoC(System on Chip),内部包含了一个或者多个通用处理器;LSI SAS 9211-8i包含的是一个533MHz的PowerPC 440处理器,533MHz的PowerPC 440有多强?而LSI上一代的SAS阵列卡MegaRAID 8708ELP用的就是500MHz的PowerPC 440处理器


处理器在阵列卡上要负责繁重的XOR运算,不过在HBA上不需要做这个(不过仍然可以支持RAID 0/1这样简单的阵列应用),因此LSI SAS 9211-8i可以提供很强的IO能力,据称,连续读取速率、连续写入速率、吞吐速率分别高达2.6GB/s、3.0GB/s和317,000 IOPS,是上一代的两倍以上。更高的配置就意味着更高的发热量,LSI SAS 9211-8i的后挡板特别做了镂空处理以加强散热


两个SFF-8087 mini-SAS接口,每个接口可以直接连接四个SAS 6Gb/s接口,总共就是可以直接连接8个SAS 6Gb/s设备,总带宽就是4800MB/s,双向总带宽9600MB/s


如此之高的设备带宽需要总线带宽相搭配,LSI SAS 9211-8i使用的是PCI Express 2.0版本,带宽是x8,总共可以提供4GB/s的单向带宽和8GB/s的双向带宽,比设备接口总带宽要小一点,考虑到磁盘的速度还远远跟不上接口的速度,这应该是可以原谅的……

 PCI Express 2.0还有一个好处,就是支持更多的特性,其中一个是MSI-X(Extended Message Signaled Interrupt,扩展消息信号中断)。MSI-X是什么?它是MSI的扩展,MSI/MSI-X中断方式是传统的基于信号线的中断方式的革新,它通过PCIE设备直接发送消息的方式构建设备中断,从而可能实现多个处理器同时处理一个设备发起的中断的情况。MSI-X包含在PCI 3.0规范里面,而PCI Express只由1.1版本开始才具备这个特性,要知道MSI-X的更多信息,请看后面几页的页面


两代SAS HBA:中间的为LSI SAS 9211-8i,规格是PCIe 2.0、SAS 6Gb/s;上为LSI SAS 3041E-R,下为LSI SAS 3081E-R,它们的规格都是PCIe 1.0a和SAS 3Gb/s,自然,也只支持普通的MSI而不支持MSI-X

  如先前承诺的一样,在这里笔者将会介绍MSI/MSI-X中断方式,这是一种和传统设备的INTx方式不同的新的中断方式。

  随着处理器速度的不断提升,I/O设备的吞吐量也日益见涨,人们开始逐渐碰到了一些以往没有碰到过的问题:更大的吞吐量需要吞噬更多的CPU能力:


在近14万IOps下,笔者的Core i7 920系统具有近15%的CPU占用率,这已经超过了单个Core i7 920核心的处理能力

  如上图所示,Dynamo.exe进程是Iometer的负载产生器,占用率为4%,而“系统中断”项目,则是表现了驱动程序在处理磁盘控制器的I/O吞吐而消耗在ISR(中断服务例程)和DPC(延迟过程调用)上的处理器能力,在老旧的平台上,它将会很快压垮一个单一的CPU核心并导致其成为瓶颈。这个情况的出现包括了硬件和软件上的因素,14万IOps不算高,靠单个CPU核心来处理肯定是不行的,硬件和软件都需要为消除单点瓶颈而走向多核化而设计。

软件上的其中一个因素:到底改进了什么?Win7/2008 R2内核剖析

 
PCIe设备出生起就支持MSI中断方式,从PCIe 1.1版本起则支持MSI-X增强中断方式

  工业界当然准备了相关的解决方案,对通用的设备来说,PCI总线为其准备了MSI/MSI-X中断方式,其中,MSI在PCI 2.2规范当中引入,MSI-X则在PCI 3.0规范中引入。对于常见的PCIe总线而言,1.0版本开始就能支持MSI,1.1开始支持MSI-X;PCIe设备必须支持MSI/MSI-X的其中一种。

  那么, MSI/MSI-X是什么呢?


两代SAS HBA:中间的为LSI SAS 9211-8i,规格是PCIe 2.0、SAS 6Gb/s;上为LSI SAS 3041E-R,下为LSI SAS 3081E-R,它们的规格都是PCIe 1.0a和SAS 3Gb/s,自然,也只支持普通的MSI而不支持MSI-X

  Interrupt中断是CPU与I/O设备交流的一种方法,中断发生后,被中断的CPU会停止当前工作而处理导致中断的设备的需求。通常以两种常用方法来实现中断:vectored向量化和polled轮询。这两种方法通常都会提供总线中断优先级别。向量化设备还会提供中断向量。轮询设备则不提供中断向量。

  Legacy Interrupt传统中断-传统或固定中断是指使用早期总线技术的中断。使用这些技术,可通过一个或多个“带外”(也就是独立于I/O总线的总线,通常是几个连接到中断仲裁器的针脚)连线的外部管脚来发送中断信号。较新的总线技术(如 PCI Express)可以通过带内机制模拟传统中断来维持软件兼容性。

  Message Signaled Interrupt消息告知中断-消息告知中断(Message Signaled Interrupt, MSI) 使用带内消息而不是使用带外的针脚,也就是在I/O总线内部通过发送一个消息来产生一个中断。这个消息在主桥(host bridge)上被解析并确定中断的目标地址。MSI可以实现将数据与中断消息一起发送。每个MSI都不是独占的,保证指定给某一设备的MSI在系统中是唯一的,而传统的中断则可以在最多四个PCI设备中共享。独占的中断可以消除在同一个中断号内分辨多个共享的设备的麻烦和性能降低,一个PCI功能可以最多请求1、2、4、8、16或者32个MSI中断向量。

  Extended Message Signaled Interrupt扩展消息告知中断-扩展消息告知中断(Extended Message Signaled Interrupt, MSI-X) 是MSI的增强版本。与MSI相比,MSI-X 中断具有以下新增的优点:

            支持2048个中断向量而不是32个中断向量,并且不再限制为2的幂,以及不再限制其必须为连续的中断向量

           每个中断向量支持独立的消息地址和消息数据

            支持按PCI功能遮罩或者按向量遮罩

            软件分配的向量少于硬件请求的向量时可具有更大灵活性。软件可以在多个MSI-X插槽中重用相同的MSI-X 地址和数据。

  所谓的“向量”,就是一个带有方向的“标量”,MSI/MSI-X中断向量可以同时指向多个不同的处理器乃至CPU核心,从而起到将负荷分布、并行处理中断的目的。有没有不需要消耗CPU资源处理中断的系统?暂时没有。在高吞吐量的系统上,中断处理是CPU一个很重要的工作。一些网络设备提供了“中断聚合”这样的机制用来降低中断量,但是在存储设备上笔者暂时还没有听说过(SATA/SAS协议内有类似的东西,不过里面的中断不是现在说的PCI总线内的中断)。这或许是以后的一个方向。


图上的LSI SAS 9211-8i使用了15个中断向量,其它如PCIe 2.0的GTX275显卡之类的都只使用了一个,而如使用传统中断1394控制器之类的普通设备甚至需要和多个其它设备共享

  LSI SAS 9211-8i使用了15个中断向量,它支持MSI-X,当然这需要插在PCIe 1.1以上的插槽上,上图是是直接插在笔者的X58主板的一个PCIe 2.0 x16插槽上。假如插在南桥ICH10R上,那么带宽不仅会打半折,MSI-X特性也将会无从发挥。要SLI/CrossFire还是要完美的存储表现?这是一些高级玩家需要选择的问题。

测试平台、测试环境
测试分组
类别LSI SAS 9211-8i
处理器子系统
处理器Intel Core i7 920
主频2.66GHz
FSB/QPI2x QPI
L2 Cache4x256KB
L3 Cache8MB
主板
主板型号ASUS P6T Deluxe V2
北桥芯片组(MCH)Intel X58
内存2GB DDR3 1333 SDRAM x6 @ DDR3 1066
系统磁盘子系统
磁盘控制器LSI MegaRAID SAS 8708ELP RAID Controller
磁盘控制器规格LSI1078 RoC
500MHz PowerPC 440
128MB RAM
8x SAS 3Gb/s
RAID 0/1/5/6
MSI
SG-DMA
磁盘控制器设置RAID 5
MSI
SG-DMA
磁盘控制器驱动
OS Built-In
磁盘Seagate
Cheetah 15K.6
ST314656SS x3
磁盘规格15000RPM
146GB
SAS 3Gb/s
16MB Cache
磁盘设置SAS 3Gb/s
50GB系统分区
测试磁盘子系统
磁盘控制器LSI SAS 9211-8i
磁盘控制器规格PCI Express 2.0 x8
533MHz PowerPC 440
8x SAS 6Gb/s
MSI/MSI-X
SG-DMA
磁盘控制器设置
PCI Express 2.0 x8 @ 2.0 x8 @ X58 IOH
MSI-X
SG-DMA
磁盘控制器驱动LSI MegaSAS
2.00.08.00
磁盘Seagate
Savvio 15K.2
ST9146852SS
磁盘规格
2.5"
15000RPM
146GB
SAS 6Gb/s
16MB Cache
磁盘设置
SAS 6Gb/s
软件环境
操作系统Microsoft
Windows 7 Ultimate x64
测试软件Iometer 2006.07.27

   测试平台使用了笔者自用的台式机,基于Core i7 920处理器和X58芯片组,提供了“比较”足够的处理能力。说实话,笔者很想使用更高端的处理器,不过即使是975之类,也不能单核心就满足LSI SAS 9211-8i的需求,如前面所述。


测试使用的硬盘是Seagate Savvio 15K.2,支持SAS 6Gb/s,刚好可以跟LSI SAS 9211-8i搭配,这个硬盘的评测可以见这里:

I/O至尊 希捷Savvio15K.2硬盘详细评测

  另外告诉大家一个小秘密:LSI的系列存储适配器的存储驱动,只有在使用Windows Server 2008、Windows 7、Windows Server 2008 R2、RHEL5、SLES10、SLES11等较新的操作系统下才支持MSI/MSI-X特性。因此我们的测试平台使用了Windows 7。关于Windows 7操作系统起到的作用,可以查看这里:

到底改进了什么?Win7/2008 R2内核剖析

  测试软件使用了传统的Iometer,测试结果则部分地与LSI上一代SAS HBA 3041E-R对比。根据版本的不同,3041E-R使用了在200MHz附近变化的一个ARM处理器,可见9211-8i的533MHz PowerPC 440处理器规格之高:


266042.37 IOps,是3041E-R的三倍多


写入IOps也有两倍多

  26.6万的IOps,让笔者的Core i7 920平台达到了25%的CPU占用率,不使用MSI/MSI-X是没有机会达到这么高的性能的。

  再告诉大家一个小秘密:目前LSI的驱动所支持的操作块大小是有限制的,犹如当初Windows NT 6.0之前的内核的限制一样。在32位下,LSI驱动的最大块大小是1MB,64位下,这个数值是2MB。笔者测试了1MB块大小下的性能,以作参考,虽然这个数值和卡本身关系不算很大:

  使用较大的存取块大小可以降低中断的数量,从而可以降低CPU的占用率。从Vista开始的Windows,系统本身主要使用1MB的块大小。

  【IT168评测中心】很明显,总线适配器(Host Bus Adapter,HBA)的作用就是快速地处理存储操作指令以给系统提供足够强大的Throughtput和IOps,LSI SAS 9211-8i提供了31.7万的理论IOps(宣传文档:31.7万,官网文档:29万),在我们的测试平台上展现出来的是26.6万,倒是和官网宣传的相去不远。


LSI SAS 9211-8i:26.6万IOps,此时吞吐量为129.9MB/s,CPU占用率则达到了25%(4核心超线程的Core i7 920)

  尽管笔者认为这个IOps还有些提升的空间,不过这或许需要笔者再多找几块Savvio 15K.2硬盘。另外吞吐量测试可能还需要使用高带宽的SSD固态硬盘。一般的固态硬盘虽然传输速率较高,然而控制芯片能力并不高,无法提供如Savvio 15K.2硬盘这样高的连续IOps输出。当然Savvio 15K.2的随机IOps能力不如正常的SSD,因此我们没有给出随机IOps。


LSI SAS 9211-8i:支持PCIe 2.0,因此支持MSI-X

  测试中达到26.6万之高的IOps需要软硬件的配合,你需要使用PCIe 2.0的插槽以支持MSI-X,当然PCIe 1.1也可以支持,不过基于这个规格设计的插槽倒是如凤毛麟角一般。使用PCIe 1.0a上的普通的MSI也不是不行,不过性能也会有损失,同时也意味着9211-8i的x8接口只能运行在2GB/s的带宽下(单向)。

  除了硬件,软件也需要注意,你需要使用较新的操作系统,如Windows Server 2008、Windows 7和Windows Server 2008 R2、RHEL5、SLES10、SLES11等以支持MSI-X,同时较新的操作系统在MSI-X之外的机制部分也可以更好地利用多核。例如,Vista、Server 2003及之前的系统将所有的中断(ISR/DPC)都固定在CPU 0上运行,很明显会形成瓶颈并会导致CPU 0过载,特别是服务器上通常伴随而生的网络I/O也会绑定在CPU 0,真可谓是雪上加霜。其他操作系统也有这样的情况。


LSI SAS 9211-8i,支持SAS 6Gb/s

  说回LSI SAS 9211-8i,它确实是一块很好的卡,使用533MHz的PowerPC 440 SoC,不仅仅和上一代的2xxMHz具有着一倍的差别,处理器微架构上发射宽度的不同也不容忽略。唯一需要担心的可能是其价格。上一代LSI MegaRAID 8708ELP使用的也是500MHz的PowerPC 440 SoC,可见这块HBA卡的价格大概会和上一代的阵列卡差不多。

  抛开价格的因素,LSI SAS 9211-8i适合所有不需要复杂的RAID 5/RAID 6功能的用户包括一些如笔者这样的桌面发烧友。此外,较新的互联网应用将数据安全从硬件(阵列卡)转移到软件(操作系统软阵列或者分布式文件系统)上,那么LSI SAS 9211-8i对他们来说也很合适。笔者最后的忠告是,桌面用户需要注意散热,虽然文档上宣称9211-8i只有9W的功耗,不过在笔者的普通机器上不加主动散热的话长时间运行很容易导致死机(经过连续数十小时的Iometer测试之后),这时把手放到散热器上就可以直接烤肉了。


官方站点的特点介绍:x8 5GT/s PCI Express 2.0接口;支持RAID 0、1、1E和10

0
相关文章