如何应对虚拟机数量增加产生的数据带宽问题

简介:
  有些人把数据中心整合简单地看作是,集合许多服务器然后添加VMware这样的虚拟化软件,之后就算是完成了数据中心整合和应用虚拟化。

我曾经听有人说他们把1000台服务器精简到100台,但同时又称没有必要改变底层存储架构。我还听说一家采用LTO-4用于备份整合数据中心的站点,他们还计划利用陈旧服务器的的1Gb光纤通道HBA和1Gb架构。考虑到1GB HBA是EOL的,所有LTO-4支持未经过测试而且是不提供支持的,你无法正常运行磁带驱动器,因为这些设备可能会给你带来麻烦。

那么让我们来看一看与数据中心整合相关的问题,以及对存储架构的影响。每当我听说有人宣称他们计划整合服务器和削减成本的时候,我就会问我自己,这些人是否针对知道他们在做什么吗?

设想一下你拥有1000台服务器和2000个与SAN的连接来确保可靠性。如果以前拿1Gb光纤通道举例的话,假设每台服务器使用20%的存储带宽和IOPS。因为这1000台服务器中可能许多服务器已经使用数十年时间了,许运行着72GB 10K RPM驱动器(大约每秒100次IOPS操作数和67 MB/s的持续性能)。在这期间,RAID控制器可能支持128个I/O请求以及光纤通道的处理速率。应该指出一点,对于大多数这种类型的Windows应用来将,IOPS要比流式处理更重要,因为NTFS分配数据的方式是不同的。

让我们来看一看这些问题的具体例子:

让存储跟上服务器虚拟化的步伐

这个表格有什么问题?我有很多看法。从存储到服务器的带宽方面,总带宽大幅下滑。因为来自服务器的带宽是有限的,所有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文件系统也一样,因为许多服务器虚拟化产品都是在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请求。现有的PCIe总线设计速度要比老式的PCI总线高许多,我发现大多数PCI总线无法达到标定的性能水平,而且没有必要达到,因为我们被局限在把1Gb光纤通道作为最高速度连接。新的PCIe 2.0在老系统上的带宽大约是老式PCI总线的30倍之多。相比老系统来说,能够处理更多的I/O请求可能导致驱动器层级更多的寻道和旋转延迟。

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

 
  作者:过客
来源:51CTO
目录
相关文章
|
Linux KVM 虚拟化
如何恢复故障KVM虚拟机qcow2磁盘镜像文件LVM分区中的数据
如何恢复故障KVM虚拟机qcow2磁盘镜像文件LVM分区中的数据
492 0
如何恢复故障KVM虚拟机qcow2磁盘镜像文件LVM分区中的数据
|
存储 Java 索引
JVM:Java运行时数据区域----Java虚拟机栈
JVM:Java运行时数据区域----Java虚拟机栈
84 0
JVM:Java运行时数据区域----Java虚拟机栈
|
监控 KVM 虚拟化
通过libVirt抓取kvm虚拟机监控指标数据
通常在我们的云环境中,为了保证云平台中虚拟机的正常运行,基本都需要这样一个功能,就是收集虚拟机的监控数据,比如cpu的使用率、内存的使用率、磁盘io、网络io等基本信息。可以利用这些信息及时调整云平台环境中出现的一些问题,从而实现保证VM的正常运行。
4886 0
jvm虚拟机中运行时数据区域介绍
jvm虚拟机中,运行时数据区域包括七大部分 i. 程序计算器 i. 定义 1) 极小的内存空间; 2) 行号指示器,程序的分支、循环、跳转、异常处理、线程恢复等基本功能都需要依赖程序计算器; 3) 线程私有的。
6177 0
|
存储 数据中心 虚拟化
阿里云发布vSphere虚拟机备份服务 ,网络带宽有限条件下依然能有效保护数据
在6月上旬举行的云栖大会上海峰会上,阿里云发布了vSphere虚拟机备份上云服务(HBR for vSphere),并已经在7月份开始邀测。利用混合云备份服务可以将虚拟机镜像备份上云,避免了传统备份方案复杂的软件部署,存储资源规划,异地备份保护等难点,客户在网络带宽有限的条件下依然能够有效地保护vSphere虚拟机数据。
2450 0