I OAT服务加速器

  • 格式:docx
  • 大小:719.89 KB
  • 文档页数:15

Intel I/OAT技术服务器加速第一代Intel I/O加速技术平台化策略使得英特尔不再仅以推出速度更快的处理器为满足,他们更加注重整个平台的协调和平衡,任何浪费都可能会让他们在提升处理器性能上所做的努力付之东流。

所以,英特尔在去年推出Bensley平台的同时,也推出了英特尔I/O加速技术(I/OAT),充分表达了“以应用为中心的服务器I/O观点”。

概括的来说,I/OAT是一个整合于系统平台中的用于移动数据、访问数据和降低网络I/O过程中系统开销的I/O解决方案。

Intel I/OAT可以帮助从服务器应用程序中更快、更高效(占用更少的CPU周期)的获取数据。

升级到支持I/OAT 的平台,用户原来的应用程序立刻可以从中受益(比如可以同时访问更多的数据、处理更多用户的请求)而无需进行任何的修改。

Intel I/OAT主要在三个方面解决网络I/O瓶颈:∙降低系统开销∙实现流线型内存访问∙优化TCP/IP协议计算Intel I/OAT通过适度的中断、适度的内存访问、并行计算、数据移动和减少上下文切换等措施来降低系统开销。

比如通过预取操作来提升内存访问和数据移动效率,直接访问子系统可用于卸载数据移动和异步拷贝,TSO(TCP segmentation offload)运算转移给网卡(NIC)或者板载LAN控制器(LOM),并且在数据流和特定的处理器核心之间建立密切的联系。

这些技术可以降低网络I/O 过程中的CPU占用率,包括协议计算,并且明显的降低由于缓存未命中和Cache line bouncing所引起的CPU停滞。

英特尔I/OAT所涉及的方方面面如上图所示,Intel I/OAT涉及到服务器系统的方方面面:∙Network Flow Affinity:分割网络堆栈处理并且动态的分配到多个物理或者逻辑CPU,这种方式可以使得数据得到更快的处理。

∙异步低成本拷贝:采用了增强型DMA,可以用更少的CPU时钟从系统内存中的网卡缓冲区复制有效数据到应用程序缓冲区,节约下来的CPU资源可以进一步提升应用程序的负载能力。

∙通过优化TCP/IP栈改进TCP/IP协议:主要优化分离封包头部和有效数据的处理。

结合与栈相关的改进可以降低处理协议的时钟数量。

I/OAT的微妙的生存环境Intel I/OAT刚刚推出之初,其应用环境并不成熟,比如在Windows Server 2003 SP1系统上需要额外安装SNP包和特有的驱动程序,Linux世界尚未接纳这项技术,而且只有Intel自己生产的网卡控制器芯片能支持这个功能。

我们曾经在2006年度服务器横评中发现,英特尔I/O加速技术所面临的局势非常微妙:在这14台服务器中,有3台服务器采用了AMD Opteron平台,因此这21%的产品肯定不支持英特尔I/O加速技术,在剩余的11台服务器中,只有3台服务器支持TOE技术,剩余的8台服务器全部支持英特尔I/O加速技术,从数量上看英特尔I/O加速技术毫无悬念的取得了占有率的领先。

然而,我们发现此次参测的DELL POWEREDGE 2950服务器、HP ProLiant DL380 G5服务器、IBM X3650服务器全部选择了TOE技术,而没有采用英特尔I/O加速技术。

这三家厂商在全球服务器市场占据什么样的地位自不必说,而这三款产品也是各家厂商的主力机型。

短短的一年之后,在IDF2007会议期间,我们获悉Intel I/OAT获得了很多重量级厂商的,其应用环境已经趋于成熟:∙Linux 2.6.18内核支持∙Novell SUSE Linux Enterprise 10支持∙Micorsoft Server 2003 SNP支持∙VMware ESX 3.x即将正式支持实战I/OAT部署要正确的启用I/OAT功能,支持I/OAT的硬件、操作系统和驱动程序三个方面的条件缺一不可:∙操作系统的支持目前Windows Server 2003 with service pack 2可直接支持I/OAT,而Windows Server 2003 with service pack 1用户则需要安装Microsoft Scalable networking pack,这个补丁包为Windows Server 2003 SP1增加了新的体系结构增强功能和应用程序编程接口 (API),以支持下一代的网络加速和基于硬件的卸载技术。

此外,Linux 2.6.18及其以上版本内核、Novell SUSE Linux Enterprise 10等主流的Linux操作系统都已经支持该功能。

∙硬件设备的支持笼统的来讲,目前只有基于Bensley平台的产品才支持I/OAT。

比如,英特尔最新的双核Xeon 5000/5100系列处理器为处理网络堆栈进行优化,处理该类操作效率会更高。

MCH芯片则整合了数据移动引擎(Data movement engine)。

另外,在MAC层实现了硬件辅助加速——这个部分是需要我们重点强调的,属于Bensley平台体系的南桥芯片有两款:6311/6321ESB,只有其中的6321ESB支持英特尔I/OAT。

HY82563是一款配合6321ESB所整合的MAC功能的双端口PHY芯片,目前我们所接触到的Bensley平台均采用了这颗芯片Intel给出了目前支持I/OAT的网卡的列表:o Intel PRO/1000 PT Server Adaptero Intel PRO/1000 PT Dual Port Server Adaptero Intel PRO/1000 PT Quad Port Server Adaptero Intel PRO/1000 PT Quad Port Low Profile Server Adaptero Intel PRO/1000 PF Server Adaptero Intel PRO/1000 PF Dual Port Server Adaptero Intel PRO/1000 PF Quad Port Server Adaptero Intel PRO/1000 PT Network Connectiono Intel PRO/1000 PF Network Connectiono Intel PRO/1000 EB Network Connection with I/O Accelerationo Intel PRO/1000 EB Backplane Connection with I/O Accelerationo Intel PRO/1000 PB Server Connectiono Intel PRO/1000 PB Dual Port Server Connection 驱动程序的支持如果要正确的启用I/OAT功能,用户还需要安装支持I/OAT功能的网卡驱动程序。

如果安装的驱动程序不支持I/OAT功能,网卡还是可以正常工作的,但是在设备管理器中会发现网卡设备前面有黄色叹号的标记。

英特尔提供了一个名称为“Intel I/OAT System Check”的工具,这个工具可以检验用户的硬件是否支持I/OAT,I/OAT功能是否正确启用。

图4-1显示该工具侦测到硬件平台支持I/OAT但是并没有启用。

根据我们的经验,在一台符合要求的服务器上部署Windows Server 2003 SP2可以较为容易的启用I/OAT功能,但是不少用户在Windows Server 2003 SP1上则遇到了问题。

这里我们介绍一下方法:第一步,安装Windows Server 2003 SP1第二步,安装INF驱动程序包,INF 7.3.x.xxxx和INF 8.1.x.xxxx及其以上版本均可。

安装INF驱动程序之后,设备管理器中发现一个名称为“Base System Device”的未知设备(如上图所示),这是启用I/O AT功能的重要设备。

第三步,安装KB912222更新程序,也就是Microsoft Scalable networking pack第四步,安装1A38设备的驱动程序。

一般需要通过设备管理器界面升级“Base System Device”,正确安装驱动之后,其被识别为“Intel 5000 Series Chipsets Integrated Device-1A38。

”在查看Intel 5000 Series Chipsets Integrated Device-1A38的设备属性,会发现一个名称为“Setting”的标签,在这里用户可以选择是否启用英特尔I/O 加速技术。

至此,我们成功的启用了I/OAT功能。

TOE的实现,也是壁垒重重从前面的介绍,用户会发现顺利的启用Intel I/OAT所具备的条件着实不少。

用户如果要在服务器系统中引入TOE技术,那么也需要满足硬件、驱动程序、操作系统等三大方面的要求。

以我们在过去所测试的DELL POWEREDGE 2950服务器、HP ProLiant DL380 G5服务器、IBM X3650服务器这三款支持TOE技术的服务器为例,它们均配置了采用Broadcom BCM5708或者BCM5706C芯片的千兆网卡,这两个系列的芯片才支持TOE、RDMA、iSCSI等加速技术。

用户需要使用Broadcom NetXtreme 8.3和NetXtreme II 2.6及其以上版本的驱动程序才能支持TOE等技术。

用户在Windwos Server 2003 SP1操作系统上也需要安装Microsoft SNP 补丁才能实现对于TOE的支持。

Liunx世界因为可靠性等原因,并没有实现对于TOE的正式支持,比如Redhat目前的Red Hat Enterprise Linux版本并不支持这个功能,而且未来的版本也不会提供支持Intel I/OAT广泛部署于基于Benlsey平台设计的服务器上,有点类似于标准配置的味道,而TOE则不同,它需要用户根据情况另外花钱购买。

比如部分Dell服务器的板载网卡是支持TOE功能的,但是用户需要另外购买硬件钥匙才能启用该功能。

应用TOE的限制也不少,如果系统中安装或激活某些防火墙、构建VPN服务器、启用桥接功能、启用路由服务、启用IPNAT、启用IPSec等功能时,TOE均无法正常工作。

Intel I/OAT则没有这些限制。

英特尔I/OAT效能实测我们在如下表所示的平台上配置了文件服务器,然后利用Netbench v7.03 NIC.tst测试脚本进行了测试,同时利用Windows Server 2003内置的“系统监视器”监测处理器占用率。

这款基于英特尔Bensley平台的服务器采用了Xeon 5080处理器(Dempsey 核心,3.73GHz),可支持I/OAT技术。