在10Gbps的以太网出现以前,像iSCSI和NFS那样的基于IP的存储技术基本都停留在1Gbps的时代,那时2Gbps和4Gbps的光纤信道拥有至高无上的地位。现在,面对适用面广,廉价的10GbE网络硬件,许多人反而争论起来了——真是够讽刺的,世道的确是变了啊!

    当你开始认真研究它的时候,那些原始的吞吐量统计数据到底能起到多大的作用呢?10Gbps的速度给运维带来的那些好处,多个1Gbps的连接无法提供吗?要回答这些问题似乎很简单,但是又不像看上去那么简单。

    推送数据

    当然,物理法则仍然存在:使用10GbE的管道,你可以推送的数据量大约是1GbE管道的10倍。但是,让我们回过头来,用现实的眼光来看一看这些数字。

    在现实生活中,使用一个1Gbps的连接,你可以获得110MBps的iSCSI吞吐量——在配置正确,负载均衡也完美无缺的情况下,这个数字可能会翻倍。在我见过的一些10GbE测试平台上,单个连接的推送速度大约是1,150MBps。

    这比1GBps要高一些。我承认还有许多优秀的案例,但是,我们中有多少人敢说一个正常的应用程序的确需要高速地迁移这么多的数据(或者只是提供迁移这么多数据的能力)呢?我敢打赌,就算在大型的企业,政府和学术界中,这样的应用程序也是寥寥无几的。

    一般来说,你遇到的最常见的存储问题并不是对原始数据吞吐量的处理,而是对大量的,非常微小的,而且完全是随机的I/O操作的处理。对于完整的数据库应用程序来说,这些类型的负载更加常见,对于传统的旋转式磁盘来说,这些负载是最难处理的。

    这是因为磁片旋转的速度和磁头的定位速度都是有限的。最后,一个相对重量级的磁盘的IOPS(每秒I/O的次数)也许只能达到20,000 4KB IOPS,原始的吞吐量也许只能达到80MBps——一个1GbE连接已经足够用了。但是,由于磁盘延迟的限制,同样的负载可能需要高于110 15K RPM的磁盘。对于这些类型的负载来说,存储的瓶颈通常是磁盘子系统本身,而不是存储设备之间的互联速度。

    可以肯定的是,如果可以把当前的磁盘全部替换成超高速的SSD,那么瓶颈又会变成存储设备之间的互联速度,甚至是服务器本身。但是现在,SSD那高昂的价格,以及相对较低的容量,导致它们很难引起的大家的注意(除了那些需要使用最高端的事务处理程序的人和那些预算十分充足的人)。如果你要把当前的磁盘全部替换成超高速的SSD,那么10GbE的互联速度才是必须的,因为只有这样才能完全发挥出它的潜力。

    否则,除了特定用途的应用程序(例如:高码率的视频和图像应用程序)以外,在生产环境下,你很少能看到磁盘负载可以“吃掉”10GbE带宽的情况。但是,有一个重要的领域需要特别说明一下,那就是:备份。为了保护我们日益增长的,堆积如山的数据,我们要不断地进行备份。

    不像数据库应用程序,备份通常会持续不断地迁移大量的数据——通常迁移到高性能的磁带驱动器,它们可以很轻松地承受高于1Gbps的连续吞吐量。如果你需要在一个夜间备份窗口中备份几十个TB的数据,那么,并行地运行大量的磁带驱动器也许是实现这个目标的唯一方法。如果你采取了这种方法,并且不考虑其他因素的话,那么只有10GbE的互联速度才可以确保你的SAN能够满足你的备份设备的需要。

    减少延迟

    10GbE的以太网能提高性能的另外一个领域是延迟领域。但是,它们之间的差别也许并不想你想象的那样明显。除了一些磁盘问题之外,还有两个和延迟有关的问题必须要考虑:传输和序列化。

    传输是指数据通过特定介质(光纤,铜线,等等)的速度。无论是实施10GbE的以太网还是1GbE的以太网,只要使用的介质相同,那么绝对不会对传播速度造成什么影响的——电子或光学信号从导线的一端传送到导线另外一端的速度都是一样的,这和你把多少数据放入了那个管道没有什么关系。另一方面,序列化是指你把指定数量的数据放入那个管道的速度。在这方面,10GbE的以太网可以快10倍。

    在延迟时间中,序列化时间只占很小的一部分。连接层的巨大延迟主要是由连接的每一端的接口和系统引入的。在一天快要结束的时候,你可能会发现,对于一个特定的包来说,它通过一个调整好的1GbE的连接的往返时间是135μs,而它通过一个10GbE的连接的往返时间只能下降到75μs——大多数其他的开销都是来自于设备的两端,而不是来自于连接本身。

    虽然10GbE以太网的延迟时间比1GbE以太网的延迟时间要少,但是,一般来说,这个差别并不会对存储性能造成太大的影响——尤其是你使用传统的旋转式磁盘的时候。当你的存储设备要花费长达100倍的时间来响应的时候,减少60微秒的连接延迟时间并不会起到什么明显的效果。如果你大量使用SSD的话,那么,相对于存储的延迟时间来说,这个连接延迟时间所占的比例会更大一些,也许在这种情况下,值得进行这项额外的投资。

    可管理性和聚合

    10GbE以太网的亮点是容易管理。虽然通过多个1GbE的连接,使用现有的硬件和软件也可以实现MPIO (Multi-Path IO),但是配置,监控和管理起来都比较痛苦。甚至布线也成为了一种痛苦——一个1GbE的SAN,在两个冗余控制器之间可能有8个或8个以上的1GbE连接,而且,一个1GbE的SAN通常会使用上限为4个控制器的主动/被动控制器架构。

    即使在存储设备上你不选择10GbE的以太网,你也应该认真地考虑一下在服务器端使用它——尤其是你处在虚拟化的环境下。一个支持iSCSI的虚拟主机主机,如果使用1GbE网络的话,每次(也许是每两次)进行主机管理,虚拟机通信,以及iSCSI访问至少会消耗掉6个1GbE的端口。你可以用一对冗余的10GbE接口替换掉那6个接口,这是很容易做到的,你可以通过这对接口来做任何事情,虽然你的端口消耗量和电缆数显著地减少了,但是你的总体可用带宽却增加了。

    此外,如果你使用“刀片”架构的话,那么你可以通过使用智能的聚合网络(converged networking)进一步深化这个模型。HP为他们的C类“刀片”产品提供的Virtual Connect模块就是一个很好的例子(当然,这方面的例子不止这一个)。通过这个VC(Virtual Connect)模块,你可以在“刀片”服务器内置的10GbE接口上创建多个“Flex NIC”,它们每个都有自己的带宽限制和网络设置。一个完整的“刀片”框架也许只需要两个或四个外部的10GbE连接就可以连接到你的物理交换网络的其余部分了——令人难以置信的管理和成本优势。

    不要冲动,冲动是“魔鬼”

    概括起来,10GbE的IP存储比1GbE的IP存储更快,更容易管理,但是,它还是太贵了,并且,你可能根本就不需要它(但是如果你能得到它,那么你会喜欢它的)。

    当然,在接下来的几年里,这些陈述也许会变得十分不合时宜,就像我在几年之前(那时我的笔记本还没有Gb级的接口)说的话一样:“除了核心的网络骨干之外,没有人会需要1GbE的网络。”或者,再往前几年,人们会说:“除了核心的网络骨干之外,没有人会需要100Mbps的网络。”或者,许多,许多年以前,人们会说:“LocalTalk比较不错——以太网太贵了。”欢迎大家在评论中谈谈自己的想法。