一旦对存储子系统进行了基准测试并得到了测试结果,就为解决问题做好了铺垫。最好是从查看存储基础设施配置问题入手,并移除占用大量存储I/O带宽的工作负载。
解决配置问题
在使用闪存驱动器以及闪存存储阵列时,存储基础设施搞定工作负载通常绰绰有余。但配置问题限制了虚拟机获得最佳性能。存储基础设施成为瓶颈可能有很多原因,大多与配置有关。
对虚拟机来说最重要的是在客户机操作系统中安装hypervisor的虚拟化工具。这些工具包括了适用于各类驱动器的驱动,而且能够大大提升虚拟机使用可用存储资源的效率。
查看hypervisor是否提供了半虚拟化的磁盘控制器。与其他选项相比,这是更好的选择。然而,这要求你使用专门的操作系统安装盘预先加载驱动,或者在安装操作系统并加载hypervisor虚拟化工具后改变控制器类型。
很多虚拟化管理员经常忘记的是不起眼的直通磁盘。如果存储系统以LUN形式提供存储,或者你希望虚拟机使用某些其他的专用存储设备,那么将存储设备直接提供给虚拟机可以极大地提升性能。
使用hypervisor能够感知的防病毒软件。不必在每台虚拟机内运行与虚拟环境不协调的防病毒工具。现在hypervisor能够与防病毒产品配合以联合方式扫描虚拟机,减轻存储压力。
你可能还需要调整分区。这不是存储系统的问题,和之前的操作系统相比,今天出问题的可能性更小。但是,仍有必要做一些研究。
搞定极端存储
关于虚拟化平台需要牢记的一件事是所有的虚拟化平台都不是为在一台虚拟机上的单歌虚拟磁盘会使用1000万的IOPS而设计的。1000万的IOPS只是疯狂的想法。即使是现在,能够提供1000万IOPS的存储系统价格将非常昂贵。
实际上有可能会购买提供1000万IOPS的存储系统,超级融合集群应该能够提供1000万甚至更多的IOPS,那么怎么使用这些价格不菲的存储系统呢?
首先,为给单台虚拟机提供1000万的IOPS,肯定会牵涉到hypervisor厂商。不与厂商的工程师团队进行直接沟通无法达到这个效果,这与使用什么存储支撑集群无关。
然而,如果可用的IOPS有1000万而且需要搞清楚如何高效地使用,那么可以在hypervisor管理软件中看到存储存在的限制。有些工作负载将会贪婪地占用存储资源。
当可用的资源成倍增加时,问题才会被放大。考虑对已部署的所有工作负载进行分析,对工作负载能够使用的CPU、磁盘以及网络资源进行限制。
队列深度事关重大,尤其是对当今的快速存储系统而言。如果没有获取与闪存盘有关的信息,那么在存储系统中有大量的闪存并没有多大用处。
NVME是被发明的用于解决上述问题的一个存储协议示例。闪存能够提供高性能在很大程度上是因为队列深度低。物理以及虚拟控制器共同组成了物理驱动器,在控制器之间分配数据也受低队列深度的影响。你可以使用较少数量的队列以及线程进行基准测试,然后逐步增加队列及线程数量,查看随着I/O队列深度的增加,性能是保持不变或者,更可能出现的情况是—直线下降。新的驱动器、固件或者控制器软件有助于解决上述问题。
存储很复杂,这也是在存储市场上有很多厂商、很多产品的部分原因所在。问题可能出现在很多不同的地方,答案往往不像是仅仅增加速度这么简单。
虚拟化管理员解决存储问题要做的第一件事就是停止猜测并开始测试。去掉不确定性和盲目的猜测,收集证据、分析证据、设计一个假设并测试可能的解决方案。
牢记存储互联特性,尤其是在处理机械磁盘时更是如此。读操作越多,写操作就会相应减少
了解你使用的存储,不同系统的写惩罚方式不同。将写密集型的工作负载从读写比为1:1的系统迁移到读写比为2:1的系统可能会给其他系统造成巨大影响。
存在怀疑时,可以通过提问获得帮助。存储以及虚拟化社区非常庞大,可能某些人也在面临同样的问题,可以寻求VMware 虚拟化专家、微软MVP、Cisco Champion以及EMC Elect的帮助。在相关论坛提问或者在Twitter上找到合适的人很快就能够获得答案或者至少是能够缩小为解决问题应该联系的厂商的范围。
====================================分割线================================
本文转自d1net(转载)