旧时王谢堂前燕,飞入寻常百姓家——Infiniband实现10Gbps互联
http://www.chiphell.com/thread-725877-1-1.html
(出处: Chiphell - 分享与交流用户体验的最佳平台)

好不容易转正了,来发第一帖。Show点之前没人show过的东西。
因为最近在DIY NAS的过程中突然产生了一个想法,考虑把台式机的硬盘基本都转移到NAS的阵列上面。虽然主板上有双1Gbps链路聚合,但是始终觉得就这样通过网络访问阵列实在是太浪费RAID6的性能了。于是便开始琢磨搞10Gbps的网络。

10G网络互连开始准备了几个方案:

1. 搞2块10G的二手网卡,结果一看ebay的价格立刻就跪了。不仅二手货很少,而且价格都是好几百刀。

2. 搞2块光纤网卡,同样是给价格打败了。

3. 2块Infiniband。心想这货都是高性能计算用,价格肯定也是吓死人的。

结果发现二手的10G的Infiniband卡只要几十刀而已,于是果断入了下面这两张卡,准备开工。

硬件篇

Infiniband是什么?
Infiniband是一种交换式互联网络,由于其高性能低延迟的特性,通常用于高性能计算、超级计算机、企业级数据中心等领域。目前Top500强的超级计算机里有224台使用Infiniband作为互联网络。

Infiniband有多重规格,不同的规格和链路数量的组合可以提供不同的通信速度:
Infiniband速度一览表
表中列出的速度是串行信号的传输速度。因为Infiniband使用8b/10b或者64b/66b编码,所以实际的数据传输速度要打点折扣。

目前主流的系统使用最多的是4x QDR,而速度较慢的SDR和DDR设备逐渐淘汰,所以才能买到比较便宜的二手货。当然,新货还是很贵,都是Mellanox和Intel垄断的原因。

我自己用的这两张卡都是4x SDR的,信号速度是10Gb/s,数据传输速度有8Gb/s(1GB/s)。

两张卡的总线接口不大一样,PCI-X的那张准备装在NAS上,PCI-E 8x的那张是给台式机用的。每张卡都自带128MB ECC DDR SDRAM作为缓存。每张卡上有2路Infiniband。

PCI-X这张是Mellanox原厂的MHET2X-1TC,缓存芯片是奇梦达生产的,正反两边一共9颗。

PCI-e这张卡是TopSpin(Cisco)的,用的还是Mellanox的芯片,不过缓存变成了镁光的。

有了卡之后,自然要有线。Infiniband SDR和DDR一般用的都是CX4的接口。像这样:

这接口在一些比较奇葩的早期SAS阵列卡上也能见到。

QDR和FDR之类基本都用QSFP了,和CX4完全不同的。

买了一根对应的线:

两张卡用连接起来以后就像这样:

NAS装机前还拍了张合照:

Supermicro X7DVL-i的主板,配的是Xeon L5410一只,也算是有四个核了,都是二手古董,除了超便宜以外满是嘈点。日后考虑可以再装一个CPU。

基本安装与配置

先列一下两台测试机的主要配置。
NAS:
CPU:Intel Xeon L5410 2.33GHz 12MB$ x1
主板:Supermicro X7DVL-i
内存:2GB FB-DIMM x2
阵列卡:LSI 8888ELP
硬盘:WD 2T 红盘 x8 (还没买),只有个80G的系统盘。使用Ramdisk进行测试。
操作系统:Debian 6.0,linux-3.2.32-scst kernel

台式机:
CPU:Intel i7-2600K @ 4.5GHz
主板:ASUS P8Z68-V
内存:贼船Vengeance 4GB x2
操作系统:Windows 8 Pro

Debian上的安装配置比较繁琐,反正一堆命令,我就先不详细写了。Windows上的安装比较简单,主要就是安装驱动程序。驱动使用开源的 OFED,windows对应的安装程序是 OFED 3.1。不过比较坑的是官方的安装包只支持到Win7,Win8是装不了的。不过好在官方论坛有人发了重新打包的版本,我这才安装成功。

没装驱动之前,系统还是能识别出来有一个新的Infiniband设备

装好驱动以后就冒出一堆新设备了。

这里有IPoIB的驱动是一定要装的,不然是没有办法通过IP网路通信的。SPR的驱动其实是可选的,详细的后面再说。


这里出现了2个IPoIB网卡,这个是Infiniband提供的IP网络通信设备,对应2个IB接口。虽然Infiniband的底层传输协议和以太网完全不同,不过这并不影响IP协议栈的实现。点开属性就可以看到赫然写着的10Gbps:

属性里面已经有IPv4和IPv6的协议了

因为是两台机器直连,不经过交换机。参考对等网的IP配置:
NAS:192.168.32.1
台式机:192.168.32.3

除了IP的配置以外,网卡的工作模式也有一些设置要注意。
Infiniband网卡默认的工作模式是datagram,我这里需要的是connected模式

MTU也要设置一下,不过一般默认的65520的可以了。这才是真Jambo Frame。

到这一步IP网络就已经通了。给Ramdisk架了简单的Samba服务测试一下速度。结果当然是…… 相当坑爹!持续传输速度就只有200MB/s左右

于是这问题在哪?

问题就处在传统网络设备的工作模式需要CPU参与数据拷贝,对于高速网络来说在网络链路饱和之前CPU占用率就已经到100%了。为了解决这个问题,使用零拷贝技术是必须的。

零拷贝(zero-copy)是实现主机或路由器等设备高速网络接口的主要技术。零拷贝技术通过减少或消除关键通信路径影响速率的操作,降低数据传输的操作系统开销和协议处理开销,从而有效提高通信性能,实现高速数据传输。
零拷贝技术可以减少数据拷贝和共享总线操作的次数,消除通信数据在存储器之间不必要的中间拷贝过程,有效地提高通信效率,是设计高速接口通道、实现高速服务器和路由器的关键技术之一。数据拷贝受制于传统的操作系统或通信协议,限制了通信性能。采用零拷贝技术,通过减少数据拷贝次数,简化协议处理的层次,在应用和网络间提供更快的数据通路,可以有效地降低通信延迟,增加网络吞吐率。

Infiniband设备实现的功能是RDMA(Remote DMA),允许数据直接从内存复制到IB设备的缓存中而不需要CPU干预。

而要使用RDMA进行磁盘访问就必须要安装前面提到的SRP(SCSI RDMA Protocol)驱动。这个东西的原理和iSCSI比较像,也是可以把远程的target映射为本地的磁盘。只不过SRP可以利用RDMA的功能,而iSCSI在Infiniband上还是得通过IPoIB的形式。iSCSI也有一个iSCSI RDMA Protocol (iSER) ,回头有机会再试试吧。

于是直接上结果吧:
首先是在服务器使用Ramdisk作为块设备的结果

基本上有621MB/s的稳定速度

服务器端使用内存文件做虚拟盘也能得到差不多的速度:

而且要提的一点是这两种情况下NAS的CPU占用率都不超过50%,零拷贝带来的效果十分明显。
虽然离1GB/s的理论速度有差距,但是目前是没有办法解决的。因为NAS端是的IB卡是PCI-X接口的,Intel的南桥相当坑爹,没有办法提供PCI-X 133接口的理论带宽。目前在考虑换成一个PCI-e接口的卡。

所以这里只能转个别人的图展示一下极限速度了

真950MB/s读速度!不过写速度没我的快,因为他的卡没有缓存。

===================================
总结

1. Infiniband做家用网络还是很靠谱的,10Gbps的速度估计在相当长的时间内都不会过时吧(毕竟SATAIII也才6Gbps),而且价格便宜这一点还是很诱人的。

2. 不过“便宜”二字是是有前提条件的:不能用Infiniband交换机,因为这货即便是二手的也是超贵,好几百刀这样的水平(12口左右的,SDR/DDR这种淘汰技术)。如果你有多台机器要连接,可以采用类似菊花链的形式,但是必须要使用2口的IB卡。不过菊花链的形式下可能只有IPoIB能工作,SRP可能是没法用的。

3. IB卡是分有缓存和无缓存两种。主要差别实在写速度上的差别。有缓存的卡SRP写操作的速度要快得多。

恩,有其他的再补充好了。

补充1:之前说Samba运行在IPoIB上性能一般,因为没有利用RDMA。但是微软最新的SAMBA 3.0协议是添加了这一支持的,Win8和WinServer2012就可以使用(Win7不行)。但是Linux上的Samba服务器还没有实现这一支持,所以我还没办法测试。不过将来总会支持的XD。

补充2:ID照漏了,赶紧补上

DSC_1940.jpg(554.93 KB, 下载次数: 6)

DSC_1942.jpg(533.99 KB, 下载次数: 4)

new_disk.jpg(24.62 KB, 下载次数: 6)

srp.jpg(19.95 KB, 下载次数: 5)

旧时王谢堂前燕,飞入寻常百姓家——Infiniband实现10Gbps互联相关推荐

  1. 旧时王谢堂前燕,飞入寻常百姓家

                        旧时王谢堂前燕,飞入寻常百姓家 买手机看重的是什么?估计找100个人,就有100个答案. 但是如果时光能够倒流10年,即使还是找100个人,答案也只有一两个.倒 ...

  2. 显卡性能暴涨,2K高清+144hz显示器飞入寻常百姓家

    双11刚过去不久,马上双12就要来了.虽然说双12的优惠力度可能没有双11来的那么大,但也还是有许多不错的产品值得入手.在双11犹犹豫豫没有入手好物的朋友们,此次的双12可以说是你们查缺补漏的好时候了 ...

  3. 带鱼屏这种极致体验的电脑显示器也“飞入寻常百姓家”

    21:9的超宽显示器,电竞玩家俗称"带鱼屏,"能够展示出传统显示器无法比拟的超宽画面.在3.4年前,因为硬件性能(显卡.CPU)的制约,当时的带鱼屏也仅仅适用于一些高端的电竞玩家. ...

  4. 让机器人飞入寻常百姓家,优必选这三步棋很关键

    9月27日,机器人明星公司优必选在上海召开年度发布会,发布了便携式智能机器人悟空和全球首个大规模商用的服务机器人操作系统ROSA,同时与上海当代艺术馆达成跨界战略合作,并宣布日本Robi机器人之父高桥 ...

  5. Nervos DeFi 新知第一期:让 DeFi 飞入寻常百姓家

    ​​ DeFi 无疑是去年至今最火热的区块链应用领域,Nervos 也认为 DeFi 是区块链上的永恒场景.<DeFi 新知>正是在这个背景下诞生的 Nervos 新栏目,专门针对近期区块 ...

  6. 当VR遇上云计算,华为要让VR飞入寻常百姓家

    戴上VR虚拟现实头盔的瞬间,就宛如置身地球之外的深邃太空,又或是在外星球欣赏前所未见的奇特景象,这就是笔者在华为上海研究所亲身感受到的震撼体验. 相信很多人都曾经感受过VR设备带来的沉浸式体验,但是受 ...

  7. SOTA模型飞入寻常百姓家-BEiT模型在AIStudio动手实践

    转自AI Studio,原文链接:​​​​​​SOTA模型飞入寻常百姓家-BEiT模型在AIStudio动手实践 - 飞桨AI Studio 一.缘起 众所周知Transformer模型精度高,但是训 ...

  8. 中国人工智能企业数全球第二 业界盼AI早日飞入寻常百姓家

    http://hz.m.chinanews.com/wapapp/toutiao/sh/2019/05-10/8833389.shtml 民众参观全球智博会上的人工智能展示. 钟升 摄 中新网苏州5月 ...

  9. VR广告飞入寻常百姓家?No,它现在还是海市蜃楼

    无孔不入的广告和VR结合在一起,会擦出如何的火花?它会取代现有的传统广告形式吗? 今天是双十一,已经剁完手的小编,一边心绞痛的看着花呗的账单,一边又焦虑的盼着快递盒子飞奔而来.当码完这排字的时候,天猫 ...

最新文章

  1. ASCII码对应表,ASCII码值的大小顺序
  2. JavaScript新知:sessionStorage and localStorage
  3. 沉浸式技术immersive technology
  4. 7个套路让妹子心甘情愿陪你看魔兽世界大电影
  5. 吸收Mockito的流利度
  6. 算法第四版_第二章_练习题_2.1.1~2.1.12
  7. 计算机高特效吃鸡游戏主机配置单,畅玩主流游戏吃鸡LOL组装电脑配置清单
  8. JAVA ME游戏----个人移植:9688雷霆战机
  9. 在web项目中使用Nginx搭建静态资源服务器,展示静态资源
  10. Unable to launch WebDriverAgent because of xcodebuild failure: “iproxy exited with code ‘234‘“
  11. linux与ipad传输文件,实用!三种iPhone与Windows电脑互传文件操作技巧,建议收藏...
  12. 2022浙江最新八大员之(安全员)模拟考试试题及答案
  13. 头歌:打印直角三角形
  14. 解决img撑大父盒子
  15. Debian完全卸载清理并重新安装MySQL服务器
  16. kubernetes系列之五:IPVS概览
  17. COMSS BOOT USB杀毒使用教程
  18. 数据库管理员岗位职责
  19. 总是提示下载百度云管家的解决办法
  20. 探伤行业怎样选择适合的高斯计

热门文章

  1. 违章查询接口免费php,基于聚合数据的全国违章直连查询接口示例-PHP版
  2. Unity动画分层和遮罩
  3. 云计算相关的国内核心期刊
  4. 一种可以旋转菜籽油燃油喷嘴和氧气喷嘴的汽车发动机
  5. QT小控件-遥控按钮
  6. USB2.0协议规范详解
  7. 机器人工程专业讲师的工作经历和体会
  8. 搭建maya2015 API C++ plugin开发环境
  9. 360极速浏览器csdn写博客提示当前版本过低解决办法
  10. 【C++从入门到入土】第一篇:从C到C++