扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
如果你希望在应用虚拟化技术的过程中不出现任何问题的话,那么显然这是不切合实际的期望。虚拟化技术能给你的数据中心带来诸多好处,但是为了可以利用虚拟化的优势,你需要了解可能会面对哪些问题。
即使虚拟化技术已经被应用到了许多企业中,包括数据中心,但它还是一项新兴技术,仍然有很多需要克服的技术难题。
找出性能削弱的原因并非易事,而且这可能在生产环境中引发很多问题。服务虚拟化和存储虚拟化都可能存在问题,但是他们的本质是不同的。如果你知道如何应用的话,其实一些问题是很容易解决的,这样你在虚拟化数据中心的时候就不会碰到那么多挑战。
虚拟化往往取决于你正在运行的应用类型。所幸的是,有很多例如VMware AppSpeed的软件程序,旨在虚拟应用的响应时间内发现是否有性能水平的降低,提供处理解决这个问题的方案或者VKernel Capacity Bottleneck Analyzer Virtual Appliance等工具。
甚至有专门针对某个操作系统的计划——VMWare的Virtual Data Center Operating System——旨在解决虚拟化的瓶颈以及其他性能/管理问题,不过这种操作系统是否能像期望的那样运行现在还无法得知。
解决虚拟化瓶颈的方法有很多。最常见的瓶颈是哪些与CPU或者RAM瓶颈、I/O瓶颈和存储瓶颈。虽然如何解决这些瓶颈没有统一的看法,但是可以遵循一些基本的原则。
CPU/RAM瓶颈
CPU/RAM瓶颈是这三个瓶颈中最容易找到并且解决的。正如你所知,虚拟化需要功能更完善的设备——因为虚拟要在一个物理服务器上运行多个逻辑设备,你不能期望一个1GHz的CPU或者一个512MB的RAM完成5台计算机的工作,对吗?这就是为什么你需要增加更多的RAM或者升级CPU。升级RAM或者CPU一般就可以解决CPU/RAM瓶颈,所以这个问题往往很容易解决。然而,你可能会面临一些限制——例如,你不能增加超过主板所能支持的更多RAM或者处理速度更快的CPU。
解决CPU/RAM瓶颈的另一个方法就是配置更少的虚拟服务器。这将减少设备上的工作负载和降低性能。虚拟化技术的理念就是利用未被充分利用的计算能力,同时不会过度应用导致设备崩溃,所以如果你发现主机设备无法处理的话,只要终止其中一些处理负载并且其转移到其他主机上就行了。
当没有足够的RAM空间的时候,系统就将启动向磁盘的交换,这将降低设备运转速度,导致更严重的I/O瓶颈。这甚至消耗了更多有限的CPU资源和I/O能力。在虚拟化环境中I/O瓶颈是本身存在的,那么为什么还要让情况更糟?
I/O瓶颈
I/O瓶颈是虚拟化环境中最常见的问题,它主要依赖于你正在运行的应用,但是大多数虚拟服务器往往需要比服务器更多的连接,而这里是不使用虚拟化的。因此当你计划和架构虚拟解决方案的时候一定要考虑到这一点。
这样,当不采用虚拟化技术的物理服务器运行一个或者几个应用(这些应用需要占用所有I/O资源),虚拟服务器就要运行更多的应用,每个应用需要独立的I/O资源。这反过来就要求有更多的I/O资源——每个设备的6到10个端口,这大约是不采用虚拟化技术的物理服务器的2到3倍。因此,这是解决I/O瓶颈的最好方法——增加更多连接、或者更有针对性的解决方案,这既提供了所需的互连性又不需要更大型的机架设备。虽然现在市场中有这样的解决方案,但是其中增加了虚拟化的成本,它解决了I/O方面的难题。
存储瓶颈
从技术上来讲,存储瓶颈是I/O瓶颈的衍生物,但是因为他们是最常见的虚拟化瓶颈,所有我们要分开讨论这个问题。一般来说从NAS到SAN存储的连接是最常见的问题根源。大多数虚拟化解决方案支持NAS、SAN和iSCSI,但并非所有虚拟机可以直接与之相连接。如果虚拟化不能直接与存储连接的话,这就意味着需要更长的响应时间,或者可能导致存储操作发生故障。
主要存在4种与存储相关的瓶颈——虚拟服务器中资源的超额分配磁盘驱动器和目标存储系统中资源的超额分配、SAN架构资源的超额分配以及目标存储端口资源的超额分配。超额分配的情况很常见,它导致存储利用率的提高,但如果你估计错误的话,存储就会成为瓶颈所在。你需要对每个应用的存储需求进行监控并以此来分配资源,而不是采用通常的分配原则。虚拟应用需要存储路径,它的数量是决定最优化分配率的标准之一,但是每个应用的操作数和特性更加重要。增加更多的存储容量并不是一个解决方案,因为你实际上需要的是更好的互连性,而不是存储容量。
如果虚拟化技术所带来的问题仅仅局限于我们上述的这些那就是万幸了。实际上,往往会有2个甚至更多与虚拟化相关的因素导致某个问题,除非你将所有这些问题检测出来,否则他们将一直存在。但是这与非虚拟化设备是不同的吗?