10种方法:改善虚拟服务器的存储性能(上)虚拟化
企业级虚拟基础架构通常都会使用共享存储。这是个不争的事实,即如果你想使用VMware vSphere和Microsoft Hyper-V的高级特性,所有的主机都需要访问虚拟机(VM)的各种文件。虽然VMware VMotion和Microsoft Live Migration的最新版本并不强制要求使用共享存储,但绝大多数的特性就需要使用,比如VMware vSphere高可用性和微软故障切换集群,可能以后也会是这样。
为了使虚拟基础架构(以及你的关键应用)运行良好,其必须配置虚拟CPU、虚拟内存以及虚拟磁盘I/O。随着hypervisor各项统计功能及监控工具越来越智能,监控虚拟CPU和内存也变得简单了。但是,虚拟基础架构的存储性能监控在很大程度上还缺乏科学的方法。当然也有存储性能的科学统计分析方式,不过不同的是对于hypervisor和物理服务器环境,存储时属于外部的。因此,hypervisor(以及你的虚拟化性能监控工具)并不能洞悉存储内部发生的事情(不过这点正在发生改变)。
尽管如此,你仍可采取一些方法来改善虚拟服务器的存储性能。这里列出10项技巧可以帮你改善虚拟机的存储系统性能。
1、了解IOPS
简单来说,虚拟服务器存储调优的学问就是“进入的IOPS和流出的IOPS”。每个LUN中的驱动器每秒能够提供一定数量的I/O,服务器和存储之间的通道亦具备一定的吞吐量,而应用程序则会要求更多。虽然这个问题可以简化成“是否足够或想要更多?”但是答案并不简单。以下技巧中谈到的许多工具、技术和解决方案可以帮助你获取更多的I/O量或降低I/O需求(通常这会要求对应用的深入了解以及和应用所有者或开发者的协作)。
在虚拟基础架构中,理解虚拟机和数据存储I/O情况的最佳途径是使用专为虚拟化技术定制的性能分析工具。每样工具都可以帮你“了解你的IOPS”。
这些工具可以是内置的VMware esxtop CLI工具,vCenter中的性能制表(其中可以通过disk.numberRead.summation和disk.numberWrite.summation计数器反应IOPS),也可以是第三方提供的收费工具。由于vCenter需要根据产生IOPS的抽样时间分段统计,这种方式更适合于估算。而第三方工具(或者VMware vCenter Operation Manager)费用更高,但也更易于使用,更为智能。
注意,LUN配置和RAID类型选择可能会对I/O性能产生巨大的影响。
2、了解应用程序
虽然存储和虚拟化管理员有许多工具来炮制更多的I/O,但通常他们在降低I/O需求方面能做的事情都非常有限。同样,许多IT经理更乐于花精力在建设多如杂草的数据中心基础架构上,而完全忽略了其中运行着的应用程序。
如果你并不了解哪些应用程序是最为I/O密集的、运行在哪些虚拟机上、所承载的服务器集群以及所使用的存储都有哪些,你很难真正了解存储性能。你的应用程序对读操作敏感还是写操作?弄清这些问题可以引导你达到更高效地存储调优。通过理解这些应用程序,并且和应用所有者或开发者协同工作,你或许能够降低I/O工作负载,为公司省下一笔原本要去采购新存储阵列或增加高性能驱动器上的开销。
假如应用程序已经是虚拟化的,你可以使用上述工具来了解其通常的I/O负载和读写操作的敏感程度。假如应用程序没有虚拟化,你可能想要创建应用程序虚拟化的概念验证,在实际负载环境下测试这种虚拟应用,基于测试对生产工作负载进行建模。也可能是,假如生产应用已经使用了SAN环境,你可以在虚拟化之前通过SAN供应商提供的性能工具来测量物理服务器的I/O负载。
3、最大限度地利用现有存储
改善存储性能的方式之一是确保你使用到已有的绝大部分存储。有一部分特性你可能都没用到,也可能有些特性能够降低成本。你甚至要考虑重新配置你的存储LUN或RAID组来为虚拟基础架构获取更好的性能。I/O工作负载一直在变,而已有的LUN部署和RAID组或许已经有很长一段时间,不再适用。通过在不同的LUN中重新平衡工作负载,或者改变某一LUN的RAID类型,你也许可以为虚拟化基础架构和物理服务器改善性能。很多情况下,管理员通常会寻找一些“华而不实”的方法来改善性能,而其实是虚拟化基础架构的存储性能问题通常在传统物理服务器上。
4、VAAI或ODX
VMware的阵列集成应用接口(vStorage APIs for Array Integration,VAAI)允许vSphere hypervisor将部分存储相关的工作交给存储完成。比如,虚拟机的克隆操作可以不经过hypervisor,而在存储上直接完成。VAAI通过使用硬件加速的方式也明显降低了磁盘加锁的时间。所以要确保你的存储支持VAAI,这样才能保证虚拟基础架构能从存储交付中获益。
在Microsoft Hyper-V环境中,卸载数据传输(Offloaded Data Transfer,ODX)和VAAI相似。如果你正使用Hyper-V,你肯定想要你的存储能够支持ODX。
要检查存储是否支持VMware VAAI,你可以在VMware兼容性列表中寻找SAN和NAS的支持名称。而要获悉是否兼容支持ODX,你可以直接询问厂商其产品是否通过Microsoft ODX认证。随着时间的推移,越来越多的厂商会在其企业级存储阵列中增加VAAI和ODX的兼容认证。