Symmetrix性能平衡管家Optimizer的原理與配置方法
楓林 發表于:13年11月05日 16:48 [原創] 存儲在線
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中文支持論壇參與討論。