虚拟环境下存储系统的扩展升级

有些人认为,数据中心的整合看起来就像是将一大堆的服务器捆绑起来,并且增加一些如VMware的虚拟化软件,而且简单得很,就像吹蜡烛一样,就拥有了数据中心整合和应用程序虚拟化。

我听到许多将服务器数量从1000下降到100台服务器的人同时表示,他们并没有需要改变的基本存储基础设施。其中一个我听说的故事是这样的:一个站点正在使用他们的LTO4系统来对经过整合的数据中心进行备份,而且他们甚至仍然计划使用原有旧服务器上的1Gb FC HBA卡和整套1Gb架构。鉴于目前1Gb的HBA卡都已经停产,因此LTO4系统并不能进行必要的检验且获得良好支持,因此这个站点不能够按照预想的效率运行,而且人们遇到了不少的麻烦。

现在让我们下降几个级别,并且看一看这样的情况对于数据中心整合和存储体系的影响——每当我听到有人说他们计划整合服务器并降低成本时,我都在问自己,他们是否真的知道他们正在进入的领域。

假设你有1000个服务器,通过2000个连接SAN环境中以保证可靠性,如果以1Gb光纤通道为例,每台服务器占用了20%的存储带宽和IOPS。这些服务器很可能已经使用了数年,因此还在用着72GB的万转硬盘,性能约合每秒100 IOPS,数据持续传输性在67MB/s作用。在这期间,RAID控制器可能支持128个I/O请求,同时光纤通道的流处理速率基本相同。必须要说的是,对于大多数类型的Windows应用来说,IOPS比流处理更重要,因为NTFS的分配数据方式更倾向于IOPS。

下面是一个具体的例子:

设备
整合前
整合后
备注
服务器
1,000
100
10:1整合率
HBA端口
2,000
200
仍然使用冗余的双HBA端口
每端口带宽(MB/s
100
400
1Gbps FC 4Gbps FC
服务器总带宽(MB/s
195
78
带宽大幅降低
总存储容量(TB
10
100
存储容量增长10
驱动器数量RAID-5 4+1
178
427
72GB 10K RPM drives 300GB 15K RPM驱动器
驱动器总IOPS
14,222
51,200
提升3.6

这个表格有问题么?我认为是的。从存储到服务器的带宽方面,总带宽确实大幅下降,因为来自服务器的带宽有限,所以RAID的带宽也就不可能提高,即使以前利用率很低,比如说服务器总带宽只有20%被发挥,也就是195*20%,那么就是39MB/s,即使是一半的带宽也够之前的存储使用,但是现在,78MB/s的带宽即使全部发挥也不够用。

最大的问题还不在此,而是IOPS性能,整合后,IOPS性能提高了3.6倍,这只是杯水车薪。从1000台服务器精简到100台意味着每台服务器的IOPS会增长10倍。如果我们回到假设,服务器总带宽利用率为20%,但是你的CPU性能提高了可能不止10倍,因此2000个CPU将能够处理比之前多得多的IOPS数,显然,CPU和存储空间的10倍提升很显然比3.6倍的IOPS提升要多得多。

除此以外,还有别的问题,比如说,不同哦你的应用同时从一台服务器向存储发出的请求越多,存储中存储系统中的随机I/O请求就越多。如果多应用同时发出多请求的话,NFTS可以很好地持续分配数据。对于所有免费的Linux文件系统也一样,因为许多服务器虚拟化产品都是在Linux操作系统下运行的,所以在制订架构策略的时候一定要记住这一点。多I/O数据流的连续分配问题一直是文件系统开发者尝试解决却没有成功的难题。至少就我所知,整合的程度越高,就越是需要关注存储性能,这意味着要提高IOPS的可用性。

架构师要做什么?

在过去的八年里,CPU的性能提升了至少10倍,但是,即使你在用一万五千转的2.5英寸SAS驱动器,IOPS的性能也仅仅提高了2.5倍,从100 IOPS达到了250 IOPS(译者注:显然这种性能提升是杯水车薪)。

2.5英寸驱动器每个驱动器的存储容量稍低一些,所以在正确架构的情况下你能更有效地使用它。现在希捷1.5万转、73GB的2.5英寸SAS驱动器IOPS性能提高了9.86倍,CPU数量和CPU性能比10:1。这非常接近现有的CPU数量,比使用1.5万转300GB驱动器的3.6:1好很多,因为驱动器更少。

如果现在让我开发一个虚拟环境系统架构,那么我首选会为我的系统考虑一下下面的五个总要因素:

•服务器到存储的带宽利用率是多少?

•服务器到存储的IOPS利用率是多少?

•服务器到存储的可用带宽是多少?

•服务器到存储的总IOPS是多少?

•底层文件系统是什么、这些文件系统如何处理同时写入的多个数据流?

上面的所有问题中,第五点最为重要,如果你不知道文件系统对数据请求提供的I/O数有多么糟糕的话,那么你就很难决定到底系统需要多少IOPS的带宽。

IOPS的提升需要CPU处理性能的提升。如果CPU的处理性能增长了10倍,那么磁盘的IOPS至少要提高10倍甚至更多。问题是,由于IOPS和带宽的原因,I/O性能并不随着密度增加而提高。记住一点,采用老系统的时候,更少的数据流流向更少的磁盘驱动器,文件系统可能连续分配数据,减少旋转延迟的寻道和开销数量。即使你可以有效地维持不变的CPU运算能力,那也有可能在使用新系统的时候要处理更多的I/O请求。现有的PCIe总线设计速度要比老式的PCI总线高许多,我发现大多数PCI总线无法达到标定的性能水平,而且没有必要达到,因为我们被局限在把1Gb光纤通道作为最高速度连接。新的PCIe 2.0在老系统上的带宽大约是老式PCI总线的30倍之多。相比老系统来说,能够处理更多的I/O请求可能导致驱动器层级更多的寻道和旋转延迟。

作为整合和虚拟化数据中心的架构师,你不能只拿着一份表格就想当然地在这或者在那把服务器数量精简到原来的1/10,还想着获得你预期的性能水平。你要考虑到架构的方方面面,考虑不能与CPU和密度扩展比例同步的一些方面。当对一个环境进行架构和虚拟化的时候,你需要考虑整个数据路径,其中包括文件系统如何老系统上分配数据、如何在新系统中运作等等,因为可能随机I/O请求会更多。