虚拟化被人们当成解决许多企业IT难题的万灵药。从增强的应用程序可用性到简化的灾难恢复,以及到减少的基础设施和成本等问题,虚拟化似乎提供了所有的答案。虚拟化似乎还提供了简化的IT管理,甚至"更绿色"的计算解决方案。
然而,要从服务器虚拟化中获得最大的益处,基础设施的其它一些要素(特别是存储)弥补虚拟化环境的不足是非常重要的。否则,就会出现许多错误。应用程序会出人意料地慢得像在爬行。本来是降低成本的计算的替代方法却需要大量的投资才能实现其全部功能。使用虚拟化改善应用程序和服务器正常运行时间的做法突然在IT基础设施的其它方面暴露出痛苦的弱点。下面是企业实施服务器虚拟化时最常见的两个陷阱。
陷阱1:选择错误的存储平台
服务器虚拟化的主要好处之一是能够把正在使用的客户应用程序在不同的服务器的管理程序之间移动。无论这样做是为了编排计划、负载平衡还是灾难恢复,硬件独立性都是支持任何虚拟化实施的主要推动因素之一。然而,如果你的存储与具体的服务器硬件联系在一起,移动应用程序就会变得比较复杂,甚至不得要领。
网络附加存储经常用作简化虚拟服务器存储配置的一种方法。网络附加存储容量的设置非常简单,容量的扩大不需要管理程序的参与。遗憾的是,使用网络附加存储存在性能方面的弱点。许多应用程序(如微软的Exchange)使用网络附加存储根本就不能运行。由于这些原因,大多数虚拟化厂商将向那些寻求更有效的应用程序性能的人们推荐使用存储局域网。
光纤通道存储局域网
采用光纤通道存储局域网,用户不仅需要说明光纤通道存储、转换和管理等增加的成本是合理的,而且他们还需要为他们连接到存储局域网的每一台服务器配置价格昂贵的主机总线适配器。应用现有的光纤通道存储局域网的那些企业不会遇到什么障碍。要获得服务器虚拟化的重大好处,这个完整的光纤通道基础设施(包括交换机和主机总线适配器)需要支持NPIV(N端口ID虚拟化)协议。目前大部分产品都不包含NPIV.
即使采用NPIV,VMware也只能在一个光纤通道区域内的机器之间传送客户程序。这就意味着,虽然用户已经在服务器方面取得了硬件独立性,但是,在一个能够相互传送客户应用程序的小组中的全部物理服务器在存储方面是不依赖于一个单个的光纤通道区域的(通常是一个阵列或者甚至一个硬盘)。服务器方面的硬件独立性能够在存储方面引起危险的多应用硬件依赖性。
为虚拟化环境优化存储解决方案
iSCSI(互联网小型计算机系统接口)或者IP SAN(IP存储局域网)提供了虚拟化服务器环境中的最佳存储解决方案,不仅从明显的成本优势方面看是最佳的,而且从虚拟架构的可用性、灵活性和伸缩性等方面看也是最佳的。一个iSCSI SAN存储系统还能够为使用广域网灾难恢复虚拟化的企业提供明显的优势。快照也可以在存储级使用,以便把数据复制到本地或者远程备用站点。
此外,iSCSI存储局域网存储系统比光纤通道存储局域网有明显的广域网优势。光纤通道存储广域网复制需要采购价格昂贵的FCIP(IP-光纤通道)网关。用于iSCSI存储局域网存储的广域网复制不需要购买、应用、操作和管理额外的系统。iSCSI是一种在整个广域网本地工作的TCP/IP协议。光纤通道和iSCSI广域网复制都会引起远距离吞吐量下降或者数据包丢失。用于iSCSI存储局域网存储的广域网或者TCP/IP优化设备能够缓解这个问题。这种广域网或者TCP/IP优化设备对于FCIP网关没有影响,或者影响很小。
陷阱2:超额配置的困境
即使有正确的存储局域网解决方案,应用程序迁移到一个虚拟化的环境有时候也会慢得像在爬行一样。如果服务器硬件配置是正确的,管理员也说不清是什么原因。在这种情况下,存储通常是引起问题的原因。
虚拟化为基础设施提高的效率是通过使用管理程序故意超额配置实现的。虚拟客户应用程序被分配一份低于最佳标准的物理资源。这样做依据的原则是所有的应用程序在统计学上不可能同时需求资源。按比例使用的原则在实践中一般是可行的。然而,大多数存储局域网和存储局域网存储已经使用了超额配置,物理存储资源双重超额配置的结果是灾难性的。
由于存储基础设施真的非常紧张,冲突就成了一个问题,并且出现了瓶颈和缓存溢出问题。使管理员感到更复杂的是这些冲突问题能够发生在存储基础设施的多个层面上。
在单个硬盘的层面上,输入/输出请求的队列将增加。这个问题在配置速度较慢的SATA硬盘时会更加突出。在SATA硬盘中,队列的深度一般是0至32个请求,而在SAS(串行附加SCSI)或者光纤通道硬盘中,队列深度是256至512个请求。这就意味着指望应用虚拟化基础设施的企业需要一个不限制他们选择后台的硬盘的存储局域网解决方案。
在存储LUN(逻辑单元号)层,管理程序本身一般要把一个物理存储池或者LUN分割为多个虚拟LUN.然后,这些LUN将分配给不同的虚拟客户应用程序。这些物理的LUN不能区分这些客户应用程序。过度的资源冲突会降低存储性能。
同样,管理程序层面的超额配置也能在拥有主机总线适配器、引发器、端口和交换机的存储局域网基础设施层引起一些问题。这些资源经常采取8:1的超额配置或者超过存储局域网本身的配置。这种双重超额配置的复合效应不仅降低了性能,而且还将导致请求超时和应用程序崩溃。
使用虚拟存储局域网存储解决过度冲突
一个选择是关闭管理程序中的存储虚拟化功能,人工把LUN分配给每一个客户应用程序。然而,许多厂商不支持这样做。这样做还会失去关键的虚拟化功能。
另一个选择是从存储方面处理这个问题,减少存储局域网架构中的本地超额配置水平。采用一个物理的存储局域网,这是复杂的并且将显著降低为虚拟化主机的存储局域网的效率。采用虚拟化的存储局域网存储,这种重新配置不仅更简单,而且能够经常根据物理主机区别对待管理程序,以优化整个存储局域网的效率。
的确,一个虚拟化的存储局域网还能够用于把单个的LUN分散到多个存储资源,进一步缓解资源冲突问题。虚拟化的存储局域网以网络附加存储的简单性提供存储局域网的性能。