2008年(8065)
分类: 服务器与存储
2008-11-03 12:57:06
我曾经听有人说他们把1000台服务器精简到100台,但同时又称没有必要改变底层架构。我还听说一家采用LTO-4用于备份整合数据中心的站点,他们还计划利用陈旧服务器的的1Gb光纤通道HBA和1Gb架构。考虑到1GB HBA是EOL的,所有LTO-4支持未经过测试而且是不提供支持的,你无法正常运行磁带驱动器,因为这些设备可能会给你带来麻烦。
那么让我们来看一看与数据中心整合相关的问题,以及对存储架构的影响。每当我听说有人宣称他们计划整合服务器和削减成本的时候,我就会问我自己,这些人是否针对知道他们在做什么吗?
让我们来看一看这些问题的具体例子:
这个表格有什么问题?我有很多看法。从存储到服务器的带宽方面,总带宽大幅下滑。因为来自服务器的带宽是有限的,所有RAID带宽就不可能提高。即使以前的利用率很低(大约是存储性能的20%),而现在你所能运行50%的理论带宽也是不够的。
我认为最大的问题就是IOPS性能。IOPS性能提高了3.6倍,这只是杯水车薪。从1000台服务器精简到100台意味着每台服务器的IOPS会增长10倍。让我们再回到那个假设,虽然利用率为20%,但是你的CPU能力提高了10倍,因此2000个CPU可以处理更多的的IOPS。显然,CPU性能的10倍提升和存储空间的10倍提升并等于IOPS的3.6倍提升。
我还发现一个问题,不同应用同时从一台服务器向存储发出请求越多,存储系统中的随机I/O请求就越多。如果多应用同时发出多请求的话,NFTS可以很好地持续分配数据。对于所有免费的文件系统也一样,因为许多服务器虚拟化产品都是在Linux下运行的,所以在制订架构策略的时候一定要记住这一点。多I/O数据流的连续分配问题一直是文件系统开发者尝试解决却没有成功的难题。至少就我所知,整合的程度越高,就越是需要关注存储性能,这意味着要提高IOPS的可用性。
架构师应该做什么?
在过去的八年时间里,我们把CPU性能提高了10倍。即使你正在使用1.5万转的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请求。现有的e总线设计速度要比老式的PCI总线高许多,我发现大多数PCI总线无法达到标定的性能水平,而且没有必要达到,因为我们被局限在把1Gb光纤通道作为最高速度连接。新的PC 2.0在老系统上的带宽大约是老式PCI总线的30倍之多。相比老系统来说,能够处理更多的I/O请求可能导致驱动器层级更多的寻道和旋转延迟。
作为整合和虚拟化数据中心的架构师,你不能只拿着一份表格就想当然地在这或者在那把服务器数量精简到原来的1/10,还想着获得你预期的性能水平。你要考虑到架构的方方面面,考虑不能与CPU和密度扩展比例同步的一些方面。当对一个环境进行架构和虚拟化的时候,你需要考虑整个数据路径,其中包括文件系统如何老系统上分配数据、如何在新系统中运作等等,因为可能随机I/O请求会更多。