Symmetrix性能平衡管家Optimizer的原理与配置方法

枫林 发表于:13年11月05日 16:48 [原创] 存储在线

  • 分享:
[导读]本文对Symmetrix Optimizer的作用和工作原理以及配置方法进行介绍,帮助读者了解高端存储内部的优化机制。

Symmetrix作为一个多控制器,内部安装了上千个物理磁盘的巨无霸级存储阵列,可以同时为几百台物理或者虚拟主机提供数据存取服务。而如何保证所有被服务的主机都处于最优的性能状态,除了在链接主机的时候遵循“平衡”分配的原则。实际投入生产以后,Symmetrix自身也存在多种机制,保证阵列端的数据处理资源的“平衡”,Symmetrix Optimizer就是其中之一,本文对Symmetrix Optimizer的作用和工作原理以及配置方法进行介绍,帮助读者了解高端存储内部的优化机制。

Symmetrix Optimizer的工作原理:

Symmetrix Optimizer(后文简称Optimizer)的主要作用是监控Symmetrix中的逻辑卷(Device)的访问状态,然后将逻辑卷在不同的物理磁盘之间进行迁移,从而达到优化性能,实现阵列中分布的物理磁盘之间的性能“平衡”。它解决的问题是显而易见,即使存储实施前期有比较好的规划,但是由于业务变化,可能导致某些逻辑卷的数据访问量增大,而碰巧这些逻辑卷被创建在相同的物理磁盘上面。这里有必要再提一下Symmetrix中Hyper Volumes的概念,下图显示了Symmetrix中创建逻辑卷(Device),也就是通常所说的LUN,Symmetrix的做法是以将物理磁盘切片成Hyper Volume的方式,然后将Hyper Volume根据不同的RAID保护级别,图中的八个Hyper Volume可以和其他物理磁盘上切割出来的Hyper Volume组成不同RAID级别的逻辑卷(LUN)供主机访问。Optimizer的作用就是将Hyper Volume在物理磁盘之间进行移动,平衡负载,优化性能。

Optimizer的工作组件包含两个部分:

•运行与Symmetrix阵列中管理服务器Service Processor中的引擎。

•用来控制Optimizer参数的管理接口,提供给Symmetrix的命令行SYMCLI和GUI的管理工具访问。

Optimizer的工作方式分为以下几个步骤:

1. 收集Symmetrix后端的I/O统计信息,并建立数据库。在这个阶段,Optimizer会记录以下的性能信息:

1.逻辑卷的读写数量

2.逻辑卷的预读数量

3.每秒逻辑卷的数据读写KB数量

这个过程中,Optimizer会记录下所有的物理磁盘的平均服务时间。平均服务时间 = 寻址时间(Seek Time)+ 延迟(Latency)+ 传输时间(Transfer Time)。寻址时间(Seek Time)指得是磁头移动到需要读取磁道的时间。延迟(Latency)指得是磁盘旋转所需要的时间。传输时间(Transfer Time)则指得是数据磁盘读取和写入的时间。

2. 根据上一步收集的数据,Optimizer会对物理磁盘总服务时间进行排序,确定最繁忙的物理磁盘为优先执行的候选。然后,Optimizer算法会根据逻辑卷和对应的后端物理磁盘位置,算法会尝试通过在不同的物理磁盘上平衡I/O来最小化磁盘平均服务器时间,主要的方法有三种:

•将I/O负载在不同的物理磁盘上进行平衡。

•将负载较高的逻辑卷集中在一起,缩小寻址时间。

•将负载较高的逻辑卷移动到磁盘的外圈,而加快数据传输的速度。

3. 确定候选设备以后,开始执行后端的物理磁盘位置的交换。下图演示了整个交换过程的四个步骤。这个例子中需要将011也1CF这两个逻辑卷进行交换。第一步,DRV卷会介入,第二步,011被转换到DRV卷上面。第三步,1CF转移到原来011的位置。第四步,从DRV卷将011转移到原先1CF的位置。

4. 当交换完成以后,Optimizer对下一次交换进行分析,反复这个同样的过程。

Optimizer的配置方法:

用户可以使用SYMCLI的命令来管理和配置Optimizer,而在这之前,需要有几个前提:

•Symmetrix阵列内部配置了Dynamic Reallocation Volume(DRV),DRV是一个只限阵列内部使用,用户不可访问的逻辑卷。但是用户可以手动创建这种设备。

•Symmetrix的逻辑卷上有空余的Mirror Position,Mirror Position是Symmetrix Enginuity用来操作逻辑卷的指针,每个逻辑卷默认有四个Mirror Position。

•Optimizer做设备交换的时候,需要加载配置锁(Configuration Lock)保证设备交换时候的一致性。

用户可以使用symoptmz命令来配置Optimizer,以下是一些命令的用法:

启用和禁用Optimizer的命令:

symoptmz enabler/disable

显示Optimizer的参数使用命令:

symoptmz -sid xxx show -parms –dp

显示待交换的逻辑卷列表:

symoptmz show -swap_list -sid xxx -v

清除物理磁盘的性能统计信息:

symoptmz -sid xxx clear_stats

使用symoptmz结合配置文件的方式,对Optimizer进行配置,创建opt_config.txt文件,并且在文件内输入配置命令:

set control_parms [start_mode=AUTO | MANUAL>,] [swap_mode=AUTO | USER_OK,] [min_perf_period=min_perf,] [workload_period=workload,] [max_simult_swaps=max_simult,] [swap_rate=max_swaps];

其中start_mode决定是否Optimizer会在开始以后自动运行,swap_mode指的是交换是否为自动或者用户确认的模式,min_perf_period决定性能统计信息收集的最短时间,workload_period决定两次交换的间隔时间,max_simult_swaps决定最大同时运行的交换活动,swap_rate指定每日允许的交换次数。

然后使用symoptmz命令进行提交:

symoptmz –file opt_config.txt commit

为特定的物理磁盘设置交换优先级别,创建opt_config.txt文件,在文件中键入,下面的例子中将DEV 020这个逻辑卷的交换优先级设置成HIGH。

set swap_priority HIGH for dev 020

手动进行交换动作,使用命令,比如把DEV 030和040进行交换,opt_config.txt文件中的命令为:

set dev_swap 0030 with 0040;

然后使用symoptmz命令进行提交:

symoptmz –file opt_config.txt commit

本文作者为EMC中文技术社区(https://community.emc.com/go/chinese)技术版主。如果您对本文有任何疑问和不同见解,也欢迎到EMC中文支持论坛参与讨论。

[责任编辑:枫林]
枫林
存储I/O(后文简称I/O)的处理过程就是计算机在存储器上读取数据和写入数据的过程。本文从I/O(Block)的流向介绍,试图解读整个I/O流与存储性能之间的些许联系。本文作为一篇存储基础的介绍文章,帮助读者了解看似简单的数据读写中的更多细节。
官方微信
weixin
精彩专题更多
华为OceanStor V3系列存储系统是面向企业级应用的新一代统一存储产品。在功能、性能、效率、可靠性和易用性上都达到业界领先水平,很好的满足了大型数据库OLTP/OLAP、文件共享、云计算等各种应用下的数据存储需求。
12月15日,中国闪存联盟成立,同时IBM Flash System卓越中心正式启动
DOIT、DOSTOR、易会移动客户端播报中国存储峰会盛况。
 

公司简介 | 媒体优势 | 广告服务 | 客户寄语 | DOIT历程 | 诚聘英才 | 联系我们 | 会员注册 | 订阅中心

Copyright © 2013 DOIT Media, All rights Reserved.