其实本文更合适的标题是:vSAN支持RDMA吗 :)
最近几个月,我经常被问到 “vSAN支持InfiniBand吗”,其实这个问题不能简单地回答是,或者否。请耐心读到最后,相信会有所收获的,并且会总结出一个简单的答案。InfiniBand简称IB。
下面把我的研究和看法向大家汇报一下,欢迎指正。
先确认一点,早在vSphere 5.5(可能更早),做为Hypervisor的vSphere就已经支持InfiniBand端口了。参见下图一:
这张截图来自于vSphere 6.5 的规格参数,
http://119.90.25.38/www.vmware.com/pdf/vsphere6/r65/vsphere-65-configuration-maximums.pdf
在vSphere 5.5(可能更早)的类似文档就可以看到InfiniBand端口。
在 https://www.bussink.ch/?p=1306 上发表了详细的文章InfiniBand install & config for vSphere 5.5。相信在Google,Bing.com都能轻松地搜索到vSphere 6.0下如何安装,或者直接去Mellanox官网找。
安装完以后,可以在vCenter里使用IB。
这张截图来自于VMworld 2016大会上,InfiniBand厂商Mellanox的演讲《InfiniBand Enhancing Virtualization ROI With New Data Center Efficiencies》,全文可前去软件定义存储讨论 QQ群:122295009 下载,这个群还上传了好几篇vSAN或vSphere与IB或者RDMA的文章。
听说国内有些电信运营商使用过vSphere+IB的场景,性能相比没有IB,提升了30%。下面这张图可以看到采用IB技术中的RDMA,相比TCP/IP,支持多达140个VMware View的虚拟桌面。
需要注意的是,目前虽然vSphere支持IB端口,虚机的网络也可以用到RDMA技术,但vSAN Traffic还是走的以太网。
对于分布式存储/Server SAN,关注IB所包含的RDMA才更有价值。下面就来讨论一下IB和RDMA,及其与vSAN的关系。
首先来认识一下,什么是InfiniBand?
1999年,Compaq, Dell, HP, IBM, Intel, Microsoft, 和Sun公司共同创建了InfiniBand行业系会(InfiniBand Trade Association,简称IBTA),制定了InfiniBand规范,其目的是突破PCI或PCI-X的限制,把服务器总线网络化,构建系统互连的新技术标准。总线技术中采用的DMA(Direct Memory Access)技术在InfiniBand中以RDMA(Remote Direct Memory Access)的形式得以实现。
IB是一种开放标准的高带宽、低延迟网络互连技术。InfiniBand网络可以以极低的CPU负荷消耗来实现多种网络流量类型的高性能,包括集群通信网、存储网、与管理网。并且所有这些传输可以同时在同一InfiniBand链路实现。 InfiniBand不仅可以构建高性能数据中心内部高速网,通过远程InfiniBand互连设备,它可以实现数据中心与数据中心之间的高速数据传输。
在许多HPC/高性能计算领域,包括2016年全球超级计算机Top500的65%都是采用InfiniBand做为其互联方案。另外还有少数私有网络,如Cray,不过基于InfiniBand互连系统的数量是基于Cray系统的5倍以上。
InfiniBand的市场上,主流厂商是Mellanox;另外还有一家是Intel(在2012年花费1.2亿美元收购了Qlogic的InfiBand业务)。
许多数据库一体机也采用了InfiniBand技术,如Oracle Exadata、天玑数据PBData、云和恩墨zData、沃趣QData、创意信息TData、斯坦德S-Data等。
此外,企业级存储中,也有不少采用了InfiniBand技术,包括IBM XIV、EMC VMAX3、InfiniData、EMC Isilon、DDN等。
个人认为,在HCI(超融合架构)中使用InfiniBand技术,主要是利用其低延时的特点,而这一特点是由RDMA来实现的。InfiniBand即可以运行传统TCP/IP应用,也可以运行基于RDMA的应用。
那么,什么是RDMA?
前面提到,RDMA,也即Remote Direct Memory Access,就是远程直接内存访问。RDMA服务可在处理器之间进行跨网络数据传输,不通过操作系统内核以及 TCP/IP 协议栈,因此延迟非常低,CPU 消耗非常少。RDMA减少了对带宽和处理器开销的需要。
如上图所示,Host 1节点直接访问Host 2节点的存储,无需经由Host 2的CPU。
需要注意的是,RDMA除了运行在InfiniBand之上,还能运行在RoCE、iWARP上。下面这张RDMA primer(入门)图,能够更清晰地看到Bypass(略过)的许多堆栈。
而且,在上面这张图可以看到在这个领域的厂商,包括Mellanox、Intel 、Chelsio、Emulex等。
下面列出一些用到RDMA的软件:
数据库集群
•IBM DB2 pureScale
•Oracle ExaData/RAC
分布式文件系统
•IBM GPFS
•Open source Lustre
•Red Hat Storage Server (GlusterFS)
分布式缓存
•Dell Fluid Cache(流动缓存,原RNA)
笔者曾亲自参与过DELL Fluid Cache for SAN (流动缓存)的POC测试,对于RDMA的低延时,以及随带的超高IOPS,留下了深刻的印象。摘引SDS新书《软件定义存储:原理、实践与生态》第25章 内存虚拟化与SDS及DELL Fluid Cache 的一段描述:
“RDMA的延迟到底有多么低呢? 以Mellanox的万兆、四万兆网卡,以及DELL Force 10 S4800、S6000为例,我们可以看到:
DELL Force 10 S6000交换延迟为0.6微秒;DELL Force 10 S4800交换延迟为0.8微秒;
Mellanox 40GE RoCE延迟为0.8微秒;Mellanox 10GE RoCE延迟为0.9微秒;
这意味着,如果采用Mellanox 40GE RoCE网卡和DELL S6000网络交换机,IO从一个服务器节点,通过RDMA技术,去访问另一个服务器节点的SSD,其网络总延迟仅为:0.8 x 2 + 0.6 = 2.2微秒”
2015年初,笔者就认定,Server SAN要进一步提升性能,未来必须支持类似RDMA这种极大降低延迟的技术。这也是在SDS新书《软件定义存储:原理、实践与生态》邀请了InfiniBand/RDMA主要厂商Mellanox的专家-刘通撰写第23章《网络与SDS》的原因。
目前市场上支持RDMA的Server SAN有一些,但并不多见,可能市场需求并不迫切。从VMware官方幻灯片的如下截图,可以看到目前网络延迟还是要比SSD的延迟小许多的。也就是网络延迟尚未成为Server SAN的瓶颈,至少对于vSAN是如此。
举个例子,详见: VSAN性能剖析及超融合架构性能测试工具-HCIBench简介 & 资料下载 。混合配置下的VSAN, 4个主机构成的VSAN集群, 每个主机一个磁盘组(1+4)。70%:30%的读写混合负载下,每个ESXi主机至少2.2万IOPS(整个集群超过9万IOPS),相信这个性能已经能满足目前大多数生产应用对于性能的要求了。再分享一个截图,是在vSAN 6.2(尚未支持RDMA技术)的性能测试。
这个测试使用到了HGST SSD搭建vSAN全闪存,网络交换机和万兆网卡采用的是Mellanox(迈络思),业务逻辑比较简单,从一个几十亿的数据库里检索到一条记录,再增加一些信息,插入到另一个几十亿的数据库里,每次提交仅做一条记录的查询和查询。保守估计,采用两个磁盘组,TPS能提升到4万多。如果业务层面继续优化,例如多条记录合并再提交,可能TPS还会有所提升。
4万多的TPS是什么概念? 以刚刚过去的2016年阿里双十一为例,在零点9分39秒,支付宝的支付峰值达到12万笔/秒,相当于12万的TPS。虽然这两者的业务逻辑复杂度大不一样。但是考虑支付宝后面使用了成千上万台的服务器,并发运行达到12万TPS的峰值。可以看出,这个4台DELL PowerEdge服务器搭建出来的vSAN全闪存集群,性能不可小觑。
随着NVMe SSD(一种比SAS SSD更快的PCIe SSD),甚至NVDIMM(完全断电的时候依然数据存在)的出现,网络延迟的问题就会凸显出来。果然,当vSAN 6.5新特性出来之际,我看到下图后,注意到右下角的一段小字:网络延迟 >> 设备延迟
我猜想等到类似NVDIMM的存储介质逐渐普及,也即网络延迟成为分布式存储的瓶颈时,支持RDMA将成为必备标准。VMware vSAN也不例外,而且按照vSAN一贯保持着技术的先进性,相信不会比大多数分布式存储更慢。
InfiniBand的RDMA是一个很好的技术,但随着技术的发展,并不一定需要配置全部的InfiniBand配件(例如IB交换机和IB卡也即InfiniBand HCA),才能支持RDMA。我们看看下面这张图,能看出InfiniBand与Ethernet(以太网)的层次对应。TCP/IP借助IPoIB,也可以连接到InfiniBand交换机上。另外,借助RoCE(RDMA over Converged Ethernet),也可以连接到以太网交换机,并使用RDMA这一低延迟的特性(原来InfiniBand才有的特性)。
从目前发展态势来看,在vSphere环境里,使用RoCE来获得RDMA特性,是一个能够落地可行的选择。例如,Mellanox的ConnectX。2016年6月推出的ConnectX-5,包含了支持100Gbps的InfiniBand和以太网适配器。
对于标题这个问题 "InfiniBand支持vSAN吗",如何回答呢?
InfiniBand支持vSphere,也支持vSAN。但vSAN目前尚不支持RDMA。
详细解释:
支持vSAN时,是用TCP/IP 协议来运行的,也即上图提到的IPoIB(交换机用的是InfiniBand交换机)。
如果使用基于以太网的技术,例如Mellanox的以太网交换机和网卡,就类似市场上其他常见的以太网组件,更可以支持vSAN。不过vSAN目前(包含2016年11月刚推出的vSAN 6.5)暂时还不能用到Mellanox以太网组件的RDMA特性。但在未来,vSAN将支持RDMA。不过,根据前面的分析,鉴于网络相比SSD的延迟还比较小,目前vSAN即使不支持RDMA,对于当前大多数业务性能的性能影响也不大。
感谢在本撰写过程中,给予帮助和启发的Mellanox 刘通、黄本鹏;杉岩数据 陈坚;斯坦德 茅利军;VMware的Ron ScottAdams、Grant Challenger 和胡国华。如果想要详细了解Mellanox刘通撰写的第23章《网络与SDS》,欢迎参加赠书活动尝试机会,或者点击“阅读原文”购买SDS新书《软件定义存储:原理、实践与生态》。
备注:
刘通,现任Mellanox公司亚太区市场开发总监兼国际高性能计算咨询委员会亚太区主席
---End---
微信公众号平台"乐生活与爱IT"在目前阶段,主要是分享软件定义存储(SDS),及VMware VSAN相关的文章,偶尔也会分享虚拟化、云计算、大数据,甚至生活类的好文章。欢迎对SDS感兴趣的朋友,加入软件定义存储讨论 QQ群:122295009,可下载原创的一些文章,及其他有参考价值的文档。
欢迎您通过扫描关注微信公众号:“乐生活与爱IT”。
关注后,可以通过点击左下角的“文章目录”,通过输入三位数(记住!是三位数,目前第一位是0或者1)详细了解如何查看历史文章。