对于EMC高端存储阵列Symmetrix,它的优势在于多前后端控制器,并行多核CPU处理,分布式的缓存。那么作为用户,并不想自己所花费的巨资购买的存储阵列只能发挥一半的性能潜力吧?让硬件发挥最大潜力的,需要遵循一个原则“平衡”,如何将存储阵列配置在一个性能平衡的状态。本文就Symmetrix VMAX和DMX性能配置给出了几点建议。
所谓的最佳实践,可以理解为一些比较配置做法,这些做法被厂商或者其他用户所验证。然而,对于用户来说,它们并不是一定要遵守的“规则”。用户通常被建议所遵循这些最佳实践的规则来配置。不过,如果用户不那么做,阵列也可以运行良好。但是作为用户,你并不想自己锁花的巨资购入的硬件,也许只能发挥一半的潜力吧?让Symmetrix DMX和VMAX硬件发挥最大潜力的,需要遵循一个原则 – 那就“Balance“,”平衡“,如何配置整个阵列让他工作在平衡的状态,我们可以从以下几点考虑:
我们先要从Symmetrix的性能组件讲起,我们也把这些组件理解为阵列中的性能资源,这些阵列中的性能资源各自都有自己的处理IO的限制,最大的IOPS和数据吞吐量(MB per Seconds),它们包括:物理磁盘(Disk Drive)、后端控制器(DA,DX)、前端控制器(Fibre、FICON、FCoE、iSCSI)、SRDF控制器等等。
1. 对于这些组件的扩展:首先需要考虑的是尽量配置足够的资源来支持峰值的负载,同时尽量使用统一的规则分布这些资源。例如,在扩展当前硬件的的情况的,建议以相同的硬件配置扩展引擎。原来的系统装有两个引擎,480个物理磁盘,64GB缓存。那么如果要对现有的VMAX进行扩展到4个引擎,需要同样添加两个引擎,包括480个物理磁盘(内部的类型混合也需要类似),64GB缓存,避免不平衡现象的发生。
2. 对于CPU和缓存利用率:建议值是VMAX阵列整体利用率在50%-70%会相对健康。阵列的整体的利用率会直接影响到对于前端主机应用的响应时间。也许有些用户会说,我的阵列长期处于80%的整体利用率,系统响应时间也可以接受。那么,我们还需要考虑到极端情况 – 硬件故障,因为VMAX阵列的所有组件都是以配对的形式存在。在一边硬件故障的时候,所有的负载会直接转移到另外一个,那对于配对的另外一边组件,CPU,缓存的压力就会翻倍,那么如果长期运行在80%,那么在某个组件损坏以后,结果就是一个组件需要一下子处理超过160%的负载,性能影响将会很严重。所以,尽量将各个引擎的负载“平衡“分配,可以保证阵列运行在健康的性能状态之下。
3. 对于物理磁盘配置:建议也尽量将所有的物理磁盘在所有的控制器上均匀分布。特别是针对EFD(闪存盘),尤为重要,因为EFD的IOPS可以达到1000以上,对DA的负载要求比FC和SATA要求更高,均衡的“平衡”分布,会最大化DA的处理能力。尽量使用适合的RAID保护级别,不同RAID保护级别在性能和空间利用率上有所差异,这里就不详细展开了,具体内容参考(浅谈RAID写惩罚(Write Penalty)与IOPS计算)。 在性能考虑的时候需要计算,而这种计算需要在满足容量需求的前提下考虑IOPS。这里提一下些不同磁盘的IOPS的比较:显然EFD的IOPS是最高的,15K FC通常会比10K FC快30%左右(对于Read Miss而言),比SATA快60%左右。10K FC比SATA快40%左右。但是SATA在顺序读的IO情况下表现还是不错的,但是前提是没有并发的读取发生,如果并发,则磁盘需要更多的寻道时间,SATA的就会比较慢了。
4. 对于FE前端卡的连接: 建议遵循的原则是“Go wide before you go deep”, 也就是说, 尽量将主机的链路扩展多个前端控制器,如果你的主机有8条链路,正巧你的VMAX也是8个引擎,那么比较推荐的做法是将这八条链路分别连接到每个前端卡的一个端口上。如果是4个引擎,可以选择是将4条链路分别连接到FE前端卡的0 Port,另外连接四条1 Port。如果只有双引擎,以此类推。另外,如果在同一个前端控制器的两个端口连接两个链路,其实并不会对IO处理量带来太多的提升。
5. 关于Meta Device和主机端的条带: 有些用户会问,如果我用Symmetrix中的Meta Device,是不是还需要使用主机端的,比如LVM的条带?这里的建议是尽量不要使用多层次的条带。然而,一个大的Meta Device的性能表现会好于有主机条带组成的多个小的Meta Device,例如,24个Meta Member组成的单个Meta Device性能会好于由4个Meta Member组成的6个Meta Device然后做了主机端条带的。同时,使用Symmetrix 的Meta Device一定意义上可以降低主机端的配置复杂度。主机端的条带也有的优势,就是对于每个主机端卷,都可以维护一个IO队列,并发吞吐量会比较高。所以,Meta Device 和主机端的条带选择,还需要看实际情况,IO访问类型(关于不同应用程序存储IO类型的描述)等等,没有绝对最优做法。
6. 适时的性能监控: 即使你的Symmetrix阵列已经很好的配置,可以很好的完成应用存储负载。但没有适当地对系统进行监控,性能问题可能在短期内不会出现,而长期来看,也许一年两年后,性能问题还是可能会出现。因为这段时间,前端的应用负载在增加,存储的数据总容量也会增长。原先没有显现的性能问题会慢慢浮出水面,所以适当的时候使用工具(Symmetrix SPA,主机端的IOSTAT、SAR、RMF)监控阵列和存储的状态也是必要的工作之一。
最后总结一下几点本文的几个要点:
•配置足够的资源来对应负载,同时足够考虑峰值和硬件损坏的状况。
•均匀的使用阵列中的资源,前端、后端控制器、物理磁盘等等。
•尽量简单的配置,不要把配置搞得太复杂。
•使用多路径控制软件可以优化前端卡的负载,使用FAST和Optimizer可以优化后端卡的负载。
本文作者为EMC中文技术社区(https://community.emc.com/go/chinese)技术版主。如果您对本文有任何疑问和不同见解,也欢迎到EMC中文支持论坛参与讨论。