TWI587153B - 藉由對執行中的工作負載之學習而部署儲存系統資源的方法 - Google Patents
藉由對執行中的工作負載之學習而部署儲存系統資源的方法 Download PDFInfo
- Publication number
- TWI587153B TWI587153B TW105106482A TW105106482A TWI587153B TW I587153 B TWI587153 B TW I587153B TW 105106482 A TW105106482 A TW 105106482A TW 105106482 A TW105106482 A TW 105106482A TW I587153 B TWI587153 B TW I587153B
- Authority
- TW
- Taiwan
- Prior art keywords
- value
- resource
- percentage
- deviation
- reward
- Prior art date
Links
Landscapes
- Debugging And Monitoring (AREA)
Description
本發明關於一種用於部署儲存系統資源的方法,特別是關於一種藉由對執行中的工作負載之學習而部署儲存系統資源的方法。
傳統上,儲存系統的管理人員一直受困於一個問題:即如何部署“足夠的”資源給所有在儲存系統中運作的工作負載。儲存系統可以用於私有網路或雲端服務中。舉例來說,如果一個系統存取儲存設備資源以執行電子郵件服務與ERP(Enterprise Resource Planning)服務的工作負載,一個控制伺服器必須妥善部署所有儲存設備與其它資源,諸如CPU(Central Processing Unit)使用率與SSD(Solid State Disk)快取大小,以便當工作負載加載時,工作性能,例如每秒輸入輸出操作次數(Input/Output Per Second,IOPS)是可被接受的。實作上,工作負載性能接受度的需求都是訂定於系統的服務層級協議(Service Level Agreement,SLA)。一旦觀
測到的性能小於服務層級協議中所要求的水準,那麼管理人員需要調整資源分布,以便該性能將很快地達到要求的水準。為了達到服務層級協議的標準,即使鮮少發生大量的工作負載要求,管理人員仍可能永久地指定過多額外的資源,以免臨時措手不及。這些額外的資源通常處於待機狀況,不單是資源的浪費,也很少有系統能負擔這麼多的資源浪費。聰明的資源部署必須有效且即時。
一種傳統的資源佈設儲存系統架構如第1圖所繪示。資源佈設儲存系統由一控制伺服器1所操作。控制伺服器1具有許多的模組來執行資源的部署。舉例來說,控制伺服器1可具有一資源分析模組11來偵測不同工作負載的需求,並分析對於該工作負載的最佳資源佈設。控制伺服器1可進一步具有一規則引擎12來提供資源分析模組11相關規則,以及一儲存設備資源管理模組13以執行來自資源分析模組11的佈設指示。每一個佈設指示可能有不同的儲存設備資源2(例如HDD、SSD與快速SSD使用的數量)部署、計算資源3(例如CPU使用率),與網路資源4(例如執行優先次序)。通常來說,資源佈設儲存系統是集中式控管的並具有其它輔助伺服器來分散來自控制伺服器1的工作量。
該儲存系統在運作中遇到很多問題。首先,單一控制伺服器1的工作量通常隨著工作負載增加而變重。儲存系統可能無法及時提供最佳的資源部署。即便輔助伺服器協同運
作來操作儲存系統,它們可以處理的是位於不同位置或網路中分散群的資源;但伺服器協同運作不是簡單的工作,卸載工作到其它伺服器可能無法如預期般及時完成。繁重的工作量對伺服器來說是不好的且可能浪費更多資源。其次,基於不同應用的工作負載,管理人員需要於規則引擎12中設立不同的規則或政策供資源分析模組11遵循。這工作需要嫻熟的管理人員。即便如此,特例常常發生,管理人員必須要立即調整規則或政策以讓儲存系統平順運作。重要的是控制伺服器1並不具有人工智慧也無法學習如何自我調整,只能依靠管理人員的指示。
為了解決上述問題,需要一種藉由對執行中的工作負載之學習而部署儲存系統資源的方法。
本段文字提取和編譯本發明的某些特點。其他特點將被揭露於後續段落中。其目的在涵蓋附加的申請專利範圍之精神和範圍中,各式的修改和類似的排列。
為了解決上述問題,本發明提供一種藉由對執行中的工作負載之學習而部署儲存系統資源的方法。該方法包含步驟:A.設定在特定場景與資源調整下用於一儲存系統的性能參數與工作負載的服務層級協議(Service Level Agreement,SLA)間的偏離百分比之狀態-動作模糊規則,及用於資源調整與獎勵值的動作-獎勵模糊規則,其中該場景為該性能參數
的偏離方向與一對應的資源變化間的特定關係;B.提供一經驗矩陣,該經驗矩陣的任一列中的欄位都參照到在一特定狀態下的獎勵值,且任一行的欄位都參照到對於至少一資源的調整的獎勵值,其中該經驗矩陣所有欄位數值初始值歸零,該狀態是性能參數偏離百分比的一特定組合;C.蒐集來自工作負載之一的目前性能參數偏離百分比,並為前述工作負載提供複數個之後時間點上的預測性能參數偏離百分比;D.隨機選擇一場景,並藉由輸入該些蒐集到的前述工作負載性能的參數偏離百分比到選擇的場景之狀態-動作模糊規則的隸屬函數中,進行模糊化、模糊推理,與結果匯總,以得到一第一動作區間;E.解模糊化(defuzzify)該第一動作區間以得到對至少一資源的一調整量;F.對前述工作負載於該儲存系統中執行該調整量;G.藉由輸入該些提供的前述工作負載的預測性能參數百分比到動作-獎勵模糊規則的隸屬函數中,進行模糊化、模糊推理,與結果匯總,以得到一獎勵區間;H.解模糊化該獎勵區間以得到一偏離獎勵值;I.對於該經驗矩陣中對應的該些預測性能參數偏離百分比之狀態的列,尋找每一列中的最大值;J.累加一偏離獎勵值與來自步驟I中在一先前時間上的選擇值為一更新獎勵值,及以該更新獎勵值取代該經驗矩陣中,在該些性能參數偏離百分比的狀態與先前時間點動作量下的欄位之值;K.重複步驟C到步驟J,直到每一欄位滿足一收斂條件,其中步驟D所使用的工作負載乃是對所有工
作負載依序輪流選定執行;及L.選擇經驗矩陣中對應於觀測到的性能參數偏離百分比的一列,並在該儲存系統中執行對應該列中最大值欄位的特定資源的調整。其中如果步驟I中沒有先前時間點,則該更新獎勵值設為0。
依照本發明,該性能參數可包含延遲時間、流通量、CPU(Central Processing Unit)負載、記憶體使用狀況,或每秒輸入輸出操作次數(Input/Output Per Second,IOPS)。資源可包含SSD(Solid State Disk)讀取快取大小、SSD寫入快取大小、CPU使用率、RAM(Random Access Memory)大小、塊狀輸入輸出頻寬、虛擬機器(Virtual Machine,VM)數量,或配置儲存設備的數量。而時間點的數量可為4或5。
最好,該收斂條件為對所有欄位經過一學習階段後,獎勵值保持不變,或於一有限區間內變動,而該區間維持不變或隨時間縮減。該學習階段長於5小時。如果每一欄位中的獎勵值不隨時間維持不變,則在上限與下限間的一平均值用來與相同列中的其它獎勵值進行比較,以找出一最大值用於該資源的調整。
該方法可進一步包含一步驟E1於步驟E之後:E1.如果一資源的調整量超過該資源的剩餘量時,則維持該資源的量並發出警訊。
如果一動作導致一資源的調整量落在該資源的二連續調整值之間,則選擇較近的一調整值。
依照本發明,步驟A中的設定狀態-動作模糊規則由以下子步驟而獲得:定義用於每一性能參數的語言值(linguistic value);建構隸屬函數以描述所有語言值的程度;及基於該些隸屬函數建構狀態-動作模糊規則。相似地,步驟A中的動作-獎勵模糊規則由以下子步驟而獲得:定義用於資源變化百分比的每個區間、性能參數的每個變化百分比,與每一獎勵值的量的語言值;建構隸屬函數以描述所有性能參數偏離百分比、資源調整,與獎勵值區間的程度;及基於該些隸屬函數建構動作-獎勵模糊規則。
最好,於步驟F,如果一定數量的至少一資源自該工作負載釋放,則給予較高的偏離獎勵值。其中於步驟J中以該偏離獎勵值累加前,每一獎勵值乘上一具調校功能之伽馬值。該伽馬值可介於0與1之間。
1‧‧‧控制伺服器
2‧‧‧儲存設備資源
3‧‧‧計算資源
4‧‧‧網路資源
11‧‧‧資源分析模組
12‧‧‧規則引擎
13‧‧‧儲存設備資源管理模組
第1圖為一習知資源佈設儲存系統架構的示意圖。
第2圖顯示以學習工作負載來部署儲存系統資源方法的步驟之流程圖。
第3圖顯示二個工作負載每秒輸入輸出操作次數的偏離百分比隨時間之改變。
第4圖顯示二個工作負載延遲時間偏離百分比隨時間之改變。
第5圖顯示該系統的所有場景。
第6圖為顯示場景6中所有狀態-動作模糊規則的列表。
第7圖顯示用於每秒輸入輸出操作次數偏離百分比的隸屬函數。
第8圖顯示用於延遲時間偏離百分比的隸屬函數。
第9圖為所有動作-獎勵模糊規則的列表。
第10圖到第14圖說明個別用於SSD讀取快取大小、CPU核心數、變化的每秒輸入輸出操作次數、變化的延遲時間,及獎勵值的隸屬函數。
第15圖顯示一經驗矩陣的例子。
第16圖表示該例子中的狀態。
第17圖表示該例子中的動作例子。
第18圖該系統操作的一個例子。
第19圖為在學習階段完成後的經驗矩陣。
本發明將藉由參照下列的實施方式而更具體地描述。
本發明的概念是在儲存系統內,依據執行中數個工作負載的資源要求,觀測到及預測的性能參數偏離百分比以找出對工作負載的最佳資源部署。在一個學習階段之後,儲存系統將知道如何隨時動態安排“足夠的”資源給每一工作負載,以便所有的工作負載都不致違反服務層級協議的要求。
該學習階段為在一個預設的時間內,學習工作負載之要求以對該儲存系統作最佳資源調配。最好,該學習階段要長於5小時,以便獲得足夠的學習數據。資源浪費可以被減少到最低程度。此處,性能參數指的是延遲時間、流通量、CPU負載、記憶體使用狀況,或每秒輸入輸出操作次數。資源是任何用於服務層級協議中的性能參數要求的硬體。舉例來說,資源可以是SSD讀取快取大小、SSD寫入快取大小、CPU使用率、RAM大小、塊狀輸入輸出頻寬、虛擬機器(Virtual Machine,VM)數量,或配置儲存設備,諸如HDD與SSD的數量。工作負載是該儲存系統所提供的一種服務。舉例來說,前述的電子郵件與ERP服務、視頻串流、遠端計算、雲端儲存設備服務等等。當用戶在線使用相關的服務時,每一個工作負載具有一種隨時間變化的循環模式,例如ERP服務為一家工廠的員工每周從周一上午8點到周五下午5點所使用,並在其它時段維持監視功能。因為不同程度的資料存取或計算,其表現的性能參數將隨資源變化而增加或減少。一旦該系統掌握了所有工作負載的節奏,它便能自動部署資源而無須管理人員干預。只要沒有其它的工作負載部署到該系統中且工作負載服務的用戶數量穩定在一定的範圍內,該系統便無需再進行學習階段,該自動資源部署能持續下去。
請參照到第2圖。該圖為以學習工作負載來部署儲存系統資源方法的步驟之流程圖。在進一步說明該方法前,要
說明使用本發明的儲存系統的應用場景。有兩個工作負載執行於此儲存系統中。依照本發明的精神,並不限制工作負載的數量,只要儲存系統的容量能支撐該些工作負載。第3圖顯示二個工作負載每秒輸入輸出操作次數的偏離百分比隨時間之改變,即工作負載A與工作負載B。縱軸是每秒輸入輸出操作次數與服務層級協議中需求之偏離百分比。對每一工作負載而言,在服務層級協議中的每秒輸入輸出操作次數需求可能與其它的工作負載不同。然而,每秒輸入輸出操作次數偏離百分比可被用來隨時表示部署的資源距實際需求有多遠,而非使用“每秒輸入輸出操作次數”。對每一工作負載而言,不同的每秒輸入輸出操作次數的值代表一種狀態。橫軸顯示觀測到或預測的每秒輸入輸出操作次數偏離百分比所在時間。“-”意味過去的時間。舉例來說,-20是距現在20秒之前。正值的時間指的是未來的時間。因為沒人能準確知道未來的每秒輸入輸出操作次數偏離百分比,此時需要一種可靠的預測方法。任何能夠提供這樣服務的合適的方法、演算法,或模組都能使用。最好使用由相同發明人於美國專利申請案第14/290,533號中所提供的一種儲存設備流量模型,可由該申請案獲得相同技術之共同參考。
依照本發明的精神,服務層級協議規定的性能參數之種類數量不限於一個。多於一種的性能參數可被用來決定儲存設備資源的部署。在本實施例中,第二性能參數為延遲
時間。請參照到第4圖。第4圖顯示工作負載延遲時間偏離百分比隨時間之改變。相似地,“偏離百分比”的觀念也適用於延遲時間。延遲時間偏離百分比也能藉由歷史資料預測。本發明可以目前與未來的每秒輸入輸出操作次數偏離百分比實施。
本發明的第一步驟是設定狀態-動作模糊規則與動作-獎勵模糊規則(S01)。狀態-動作模糊規則是為在特定場景與資源調整下用於儲存系統的性能參數偏離百分比(即每秒輸入輸出操作次數與延遲時間)與工作負載的服務層級協議而設定。動作-獎勵模糊規則是為資源調整與獎勵值而設定。事實上,幾乎所有提及到為工作負載而分配的資源,都或多或少影響每秒輸入輸出操作次數與延遲時間性能。為了簡化說明並提供讀者全面的理解,僅於實施例中使用二個資源:SSD讀取快取大小(%)與CPU使用率(以核心數表示)。要強調的是可供工作負載調整的資源可能超過二個。
此處,場景是性能參數的偏離方向與一對應的資源變化間的特定關係。請參照到第5圖。第5圖顯示系統中所有的場景。依照資源與性能參數的組合,有8個場景(“x”指的是沒影響;“+”指的是增加;“+”指的是減少)。對每一工作負載來說,當SSD讀取快取大小及/或CPU核心數(資源)變化到某個程度,每秒輸入輸出操作次數與延遲時間也將會改變。同時,假設一資源僅影響一特定性能參數的偏離方向。
舉例來說,在場景1中,CPU核心數的數量僅影響每秒輸入輸出操作次數,SSD讀取快取大小僅影響延遲時間。也就是說,CPU核心數的增減導致每秒輸入輸出操作次數的增減,而讀取快取大小的增減導致延遲時間的增減。
依照本發明,資源的調整是定量化的而非連續的。調整量(增加或減少)應該是定量化的。舉例來說,SSD讀取快取大小的調整可以是1%、2%、3%、4%、5%,或6%(比目前多),或-1%、-2%、-3%、-4%、-5%,或-6%(比目前少)。不存在中間值,諸如1.52%。這是為了簡化模糊化的操作。相似地,CPU使用率的調整可以是增加1、2,或3個CPU核心數,它也可以是減少1、2,或3個使用的CPU核心數。
依照模糊邏輯,設定給儲存系統性能參數偏離百分比的狀態-動作模糊規則於可藉由以下子步驟而獲得。首先,定義每一性能參數的語言值。以本實施例之場景6為例,第6圖的列表顯示場景6所有狀態-動作模糊規則。如果延遲時間偏離百分比是正值,它意味著目前一個工作負載的延遲時間比服務層級協議中要求的更快。相反地,如果延遲時間偏離百分比是負值,則指目前工作負載的延遲時間比服務層級協議中要求的更慢。“中性”意味延遲時間偏離百分比是0。目前工作負載的延遲時間和服務層級協議要求的相同。相似地,如果每秒輸入輸出操作次數偏離百分比是正值,它意味著目前工作負載的每秒輸入輸出操作次數較高於服務層級協議所
要求。相反地,如果每秒輸入輸出操作次數偏離百分比是負值,則指目前工作負載的每秒輸入輸出操作次數較低於服務層級協議所要求。“中性”意味每秒輸入輸出操作次數偏離百分比為0。目前工作負載的每秒輸入輸出操作次數和服務層級協議要求的相同。更快、更慢、較高、較低,與中性是所謂的語言值。
接著,下一個子步驟是建構隸屬函數來描述所有語言值的程度。請參照到第7圖與第8圖。第7圖顯示用於每秒輸入輸出操作次數偏離百分比的隸屬函數,第8圖顯示用於延遲時間偏離百分比的隸屬函數。隸屬函數的程度可能對某些每秒輸入輸出操作次數偏離百分比有不同的值。這些每秒輸入輸出操作次數偏離百分比可被視作多語言值。舉例來說,每秒輸入輸出操作次數的程度介於-10%與-30%間可屬於較低或中性且有不同的程度值,SSD讀取快取大小與CPU核心數可在這種情況下變化。要注意的是雖然狀態-動作模糊規則可能在所有場景中是不同的,隸屬函數仍是一致的。第7圖與第8圖僅是本發明隸屬函數的一種態樣,它們不是用來限制隸屬函數的應用。當然,隸屬函數的變化不需要是線性的,也可以包含部分的曲線段。
最後一個子步驟是基於隸屬函數建構狀態-動作模糊規則。狀態-動作模糊規則應提供讀取快取大小與CPU核心數的調整。在第6圖中顯示於表單欄位中的動作處於個別的每
秒輸入輸出操作次數偏離百分比與延遲時間情況下,組成了用於場景6的狀態-動作模糊規則。舉例來說,括號A3欄位指的是一種狀態-動作模糊規則:如果延遲時間偏離百分比較快且每秒輸入輸出操作次數偏離百分比較低,則移除(一部分)SSD讀取快取大小與CPU核心數。隸屬函數能依照儲存系統管理人員的經驗與歷史數據而設定。隸屬函數的細部設計則不於此揭露。
相似地,動作-獎勵模糊規則能由以下的子步驟而獲得。首先,定義用於資源變化百分比的每個區間、性能參數的每個變化百分比,與每一獎勵值的量的語言值。狀態-動作模糊規則中對相同資源的性能參數偏離百分比所使用的語言值可以被繼承,也可以使用重新定義的語言值。第9圖是所有動作-獎勵模糊規則的列表。再一次強調,增加、中性、移除、更遠、不變、更近、低、高、非常低,及非常高都是各自標的的語言值。規則1到規則9指出使用較多的資源,給予較少的獎勵值。規則10到規則12及規則13到規則15顯示較近於服務層級協議要求的每秒輸入輸出操作次數,給予較高的獎勵值。
接著,建構隸屬函數來描述所有性能參數偏離百分比、資源調整,與獎勵值區間的程度。請見第10圖到第14圖,它們各自表示用於描述SSD讀取快取大小調整、CPU核心數調整、每秒輸入輸出操作次數的變化,延遲時間的變化,與獎
勵值之隸屬函數。隸屬函數也能由儲存系統的管理人員,依照個人經驗與歷史數據來定義。最後,動作-獎勵模糊規則基於該些隸屬函數而建構。
本發明的下一個步驟是提供一個經驗矩陣(S02)。該經驗矩陣可儲存於該儲存系統的記憶體或較小的儲存設備中,它能被更新內容而供儲存系統來學習資源的部署。任一列中的欄位都參照到在一特定狀態下的獎勵值,且任一行的欄位都參照到對於至少一資源的調整的獎勵值。此處,狀態指的是性能參數偏離百分比的一特定組合,例如每秒輸入輸出操作次數偏離20%及延遲時間偏離-10%。在學習運作的開始狀態下,經驗矩陣所有欄位數值初始值歸零。經驗矩陣的一個例子顯示於第15圖中。經驗矩陣由“0”欄位所構成。要注意的是每一欄位可能會在稍後更新。因此,欄位中的分數是由累加所有時間點的獎勵值而計算獲得。請見第16圖,該圖表示該例子中所有可能的狀態。每一狀態代表性能參數偏離百分比的一種特定組合。一性能參數的偏離百分比可以是一個固定值或介於一個範圍內的數值。在這例子中是介於一個範圍內的數值。舉例來說,狀態S14包含一個範圍的每秒輸入輸出操作次數偏離百分比,由-25%到0,及一個範圍的延遲時間偏離百分比,由-50%到-25%。請見第17圖。第17圖顯示該例子中的動作。每一動作表示SSD讀取快取及CPU核心數
的改變量。舉例來說,A15移除0到15%的SSD讀取快取並維持CPU核心數不變。
接著,本發明的一個步驟是蒐集來自工作負載之一(工作負載A與工作負載B之一)的目前性能參數偏離百分比,並為前述工作負載提供數個之後時間點上的預測性能參數偏離百分比(S03)。本發明描述中使用的“時間點”指的是特定的時間,包含未來與現在。請見第18圖,第18圖是該系統操作的一個例子,而關於細節會在稍後步驟中詳述之。時間點分別是0秒、10秒、20秒、30秒,與40秒。在0秒,即目前時間,所有性能參數值是由觀察工作負載而蒐集。其餘未來的時間點則是藉由以往蒐集的真實數據預測出來的。未來數據預測的方式已於前面敘述過,此處不再重複。實作上,用於預測性能參數的未來時間點的數量可以是4或5個。
讓儲存系統學習資源的部署的想法是使用一時間點上來自一工作負載的性能參數偏離百分比以及預測值以從中取得獎勵值。每一工作負載的觀測到及預測的性能參數偏離百分比將交替使用以於連續時間點上計算。此處,該例子在服務層級協議設定的每秒輸入輸出操作次數與延遲時間對工作負載A來說是5000與250,對工作負載B來說是4000與200。在時間0秒(目前),工作負載A的性能參數偏離百分比已蒐集,工作負載A性能參數預測離百分比也已提供。此時,每秒輸入輸出操作次數是3000且延遲時間150。每秒輸入輸出操作次數
偏離百分比與延遲時間偏離百分比各自為-40%與-40%。預測的每秒輸入輸出操作次數延遲時間偏離百分比(以括號內之一對來顯示)在未來10秒、20秒、30秒與40秒分別是(-20%,-30%)、(0%,-5%)、(20%,15%),與(10%,-5%)。
本發明的下一個步驟是隨機選擇一場景,並藉由輸入蒐集到的工作負載A的性能參數偏離百分比到選擇的場景之狀態-動作模糊規則的隸屬函數中,進行模糊化、模糊推理,與結果匯總,以得到一第一動作區間(S04)。在0秒,選擇了場景8,應用場景8的狀態-動作模糊規則。接著,模糊化第一動作區間以得到對至少一資源的一調整量(S05)。有很多的方法可用於解模糊化,本發明並未限定使用哪一種,它可以依照觀測的系統操作或基於管理人員的經驗而選擇。SSD讀取快取的變化量依照以上的計算是增加20%,CPU核心數變化量是-2。CPU核心數最小是1。20%增加的SSD讀取快取與減少2個CPU核心數就是調整量。接著,對工作負載A於該儲存系統中執行該調整量(S06)。如果一動作導致一資源的調整量落在該資源的二連續調整值之間,則選擇較近的一調整值。
下一步,藉由輸入該些提供的工作負載A的預測性能參數百分比到動作-獎勵模糊規則的隸屬函數中,進行模糊化、模糊推理,與結果匯總,以得到一獎勵區間(S07)。這就是輸入(-20%,-30%)、(0%,-5%)、(20%,15%),與(10%,-5%)到動作-獎勵模糊規則的隸屬函數中。接著是解模糊化
該獎勵區間以得到一偏離獎勵值(S08)。依照本發明的精神,該偏離獎勵值將會在下一個時間點(10秒)獲得。對於該經驗矩陣中對應的該些預測性能參數偏離百分比之狀態的列,尋找每一列中的最大值(S09)。對於(-20%,-30%)、(0%,-5%)、(20%,15%),與(10%,-5%)的每秒輸入輸出操作次數及延遲時間,對應的狀態各為S14、S15、S22,與S21。在第15圖中的經驗矩陣,最大值分別是0、0、0,與0(開始狀態)。
接著,累加一偏離獎勵值與來自步驟S09中在一先前時間上的選擇值為一更新獎勵值,及以該更新獎勵值取代該經驗矩陣中,在該些性能參數偏離百分比的狀態與先前時間點動作量下的欄位之值(S10)。重複步驟S03到步驟S10直到每一欄位滿足一收斂條件(S11)。步驟S04所使用的工作負載乃是對所有工作負載依序輪流選定執行,也就是第一輪的學習是基於工作負載A的資料,第二輪的學習是基於工作負載B的資料。接著,第三輪的學習是基於工作負載A的資料,而第四輪的學習是基於工作負載B的資料等等。目前是處於第一輪。對步驟S09來說沒有先前時間點,更新獎勵值於一開始設為0。
在時間10秒,對工作負載B來說,每秒輸入輸出操作次數偏離百分比是0%,延遲時間偏離百分比是15%。預測每秒輸入輸出操作次數與延遲時間的偏離百分比在未來20秒、
30秒、40秒與50秒分別是(-10%,15%)、(10%,-5%)、(20%,-30%),與(10%,-50%)。它們分屬S16、S22、S20,與S19。以這些數據再次重複步驟S03到S11。在0秒的更新獎勵值計算得到146。因此,經驗矩陣的欄位(S8,A11)更新為146。在20秒時,回歸到工作負載A。每秒輸入輸出操作次數偏離百分比為-28%,延遲時間偏離百分比為-8%。預測每秒輸入輸出操作次數與延遲時間的偏離百分比在未來30秒、40秒、50秒,與60秒分別是(20%,15%)、(10%,-5%)、(-5%,-22%),與(-18%,-35%)。它們分屬S22、S21、S15,與S14。以這些數據再次重複步驟S03到S11,在10秒的更新獎勵值計算得到-59。這些步驟一直持續下去。如上所述,這些步驟或學習階段應在每一欄位滿足一收斂條件時停止。收斂條件是對所有欄位來說,獎勵值保持不變,或在經過一學習階段後於一有限區間內變動。該區間可能維持不變或隨時間縮減。舉例來說,一欄位可能具有一個固定的最終累計獎勵值,例如588,它也可以在563到607(區間)之間變動。
本發明的最後一個步驟是選擇經驗矩陣中對應於觀測到的性能參數偏離百分比的一列,並在該儲存系統中執行對應該列中最大值欄位的特定資源的調整(S12)。為了有較好的理解,請參照第19圖。第19圖是學習階段後的經驗矩陣。當它應用到系統中時,第一步驟是決定觀測到的性能參數偏離百分比。如果觀測到的每秒輸入輸出操作次數與延遲時間
偏離百分比分別是26%與35%,此時就處於S29。只要找出S29中的最大值(277)並執行對應的動作(A28)即可。系統中資源的部署可由第19圖的經驗矩陣自動執行。
在步驟S10中,在以該偏離獎勵值累加前,每一選擇的值可進一步乘以一具調校功能之伽馬值。該伽馬值介於0與1之間。如果伽馬值接近0,表示傾向考慮即時的獎勵值。如果伽馬值接近1,表示傾向考慮未來的獎勵值。如果每一欄位中的獎勵值不隨時間維持不變,則在上限與下限間的一平均值用來與相同列中的其它獎勵值進行比較,以找出一最大值用於該資源的調整。
本發明的一個特點是給予獎勵值的方式。儲存系統不是獨立地監視及學習工作負載的模式。相反地,當儲存系統對一個工作負載部署資源時,它將考量未來其它工作負載的需求。如果目前儲存系統進行的工作負載使用的資源在未來會超過其實際所需,超過的部分會被釋放。舉例來說,如果工作負載A使用3個CPU核心數來運作但實際上只需要2個,多的一個就可以保留給工作負載B因工作負載B在未來數分鐘內需要進行更多的運算。一個具體的實現方式是給予較高的偏離獎勵值如果至少一資源的部分數量於步驟S06中由一個工作負載中釋放出來。
在其它實施例中,本發明能進一步包含一步驟於步驟S05之後但於步驟S06之前:如果一資源的調整量超過該資
源的剩餘量時,則維持該資源的量並發出警訊。這能預防儲存系統免於供應超過其本身的資源量。同時,管理人員能被警示(可能藉由顯示於其螢幕上的一段訊息)以便他可以開始為該工作負載安裝新的資源。
本發明利用狀態-動作模糊規則與動作-獎勵模糊規則供儲存系統學習如何部署資源。當這套方法為一個系統管理人員所使用時,他僅需開始時設立模糊規則與相關的隸屬函數。儲存系統將找出用於工作負載的最佳資源佈署,本方法起始後便不需人為干涉。雖然對一工作負載的資源部署可能無法完全解決目前工作負載所遭遇的問題,因為部署是動態的調整,該工作負載會在未來某個時間獲得補償。整體來看,所有工作負載的性能參數滿足及達到服務層級協議所要求的水準。然而,如果工作負載內容已被修改或新的工作負載加到儲存系統中運作,該方法就應重新執行一次以獲得新的經驗矩陣來使用。如果需要,該些模糊規則與相關的隸屬函數也要重設。
如上所述,集中式控管的儲存系統通常遭遇沉重的工作負載,而更多的資源或伺服器需要用來解決這問題。本發明以一種分散但合作的代理人方式,提出解決該問題的方法。每一個工作負載能由儲存系統中的一獨立模組所追蹤及預測,該獨立模組比如是控制伺服器中安裝的硬體或軟體。該些模組扮演蒐集網路流量與來自特定資源的需求的代理人
角色。它們分散地蒐集數據,然而,當儲存系統需要對未來資源部署做出決定時,蒐集到的資料就可以分享(以經驗矩陣的形式),而推薦的數據可以交替使用。每一模組也能從其它模組上學習經驗。就這點來說,模組間是相互合作的。因此,本發明避免集中式控管儲存系統的缺點,並為應用本發明提供之方法的儲存系統強化性能。
雖然本發明已以實施方式揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
Claims (15)
- 一種藉由對應用到一儲存系統的工作負載之學習而用於該部署儲存系統資源的方法,包含步驟:A.設定在特定場景與資源調整下用於一儲存系統的性能參數與工作負載的服務層級協議(Service Level Agreement,SLA)間的偏離百分比之狀態-動作模糊規則,及用於資源調整與獎勵值的動作-獎勵模糊規則,其中該場景為該性能參數的偏離方向與一對應的資源變化間的特定關係;B.建立一經驗矩陣,該經驗矩陣的橫軸表示對資源進行調整動作的改變量,而縱軸表示性能參數偏離百分比的狀態,該經驗矩陣的任一列中的欄位都參照到在一特定性能參數偏離百分比的狀態下的獎勵值,且任一行的欄位都參照到在對至少一資源進行調整動作時一特定的改變量下的獎勵值,其中該經驗矩陣中所有欄位的初始值皆預設為零,該性能參數偏離百分比的狀態為至少兩種不同性能參數偏離情況下的一特定組合;C.蒐集來自工作負載之一的目前性能參數偏離百分比,並為前述工作負載提供複數個之後時間點上的預測性能參數偏離百分比;D.隨機選擇一場景,並藉由輸入該些蒐集到的前述工作 負載性能的參數偏離百分比到選擇的場景之狀態-動作模糊規則的隸屬函數中,進行模糊化、模糊推理,與結果匯總,以得到一第一動作區間;E.解模糊化(defuzzify)該第一動作區間以得到對至少一資源的一調整量;F.對前述工作負載於該儲存系統中執行該調整量;G.藉由輸入該些提供的前述工作負載的預測性能參數百分比到動作-獎勵模糊規則的隸屬函數中,進行模糊化、模糊推理,與結果匯總,以得到一獎勵區間;H.解模糊化該獎勵區間以得到一偏離獎勵值;I.對於該經驗矩陣中對應的該些預測性能參數偏離百分比之狀態的列,尋找每一列中的最大值;J.累加一偏離獎勵值與來自步驟I中在一先前時間上的選擇值為一更新獎勵值,及以該更新獎勵值取代該經驗矩陣中原有欄位之值;K.重複步驟C到步驟J,直到每一欄位滿足一收斂條件,其中步驟D所使用的工作負載乃是對所有工作負載依序輪流選定執行;及L.選擇經驗矩陣中對應於觀測到的性能參數偏離百分比的一列,並在該儲存系統中執行對應該列中最大值欄位的特定資源的調整。
- 如申請專利範圍第1項所述之方法,其中如果步驟I中沒有 先前時間點,則該更新獎勵值設為0。
- 如申請專利範圍第1項所述之方法,其中該性能參數包含延遲時間、流通量、CPU(Central Processing Unit)負載、記憶體使用狀況,或每秒輸入輸出操作次數(Input/Output Per Second,IOPS)。
- 如申請專利範圍第1項所述之方法,其中資源包含SSD(Solid State Disk)讀取快取大小、SSD寫入快取大小、CPU使用率、RAM(Random Access Memory)大小、塊狀輸入輸出頻寬、虛擬機器(Virtual Machine,VM)數量,或配置儲存設備的數量。
- 如申請專利範圍第1項所述之方法,其中時間點的數量為4或5。
- 如申請專利範圍第1項所述之方法,其中該收斂條件為對所有欄位經過一學習階段後,獎勵值保持不變,或於一有限區間內變動,而該區間維持不變或隨時間縮減。
- 如申請專利範圍第6項所述之方法,其中該學習階段長於5小時。
- 如申請專利範圍第6項所述之方法,其中如果每一欄位中的獎勵值不隨時間維持不變,則在上限與下限間的一平均值用來與相同列中的其它獎勵值進行比較,以找出一最大值用於該資源的調整。
- 如申請專利範圍第1項所述之方法,進一步包含一步驟E1 於步驟E之後:E1.如果一資源的調整量超過該資源的剩餘量時,則維持該資源的量並發出警訊。
- 如申請專利範圍第1項所述之方法,其中如果一動作導致一資源的調整量落在該資源的二連續調整值之間,則選擇較近的一調整值。
- 如申請專利範圍第1項所述之方法,其中步驟A中的設定狀態-動作模糊規則由以下子步驟而獲得:定義用於每一性能參數的語言值(linguistic value);建構隸屬函數以描述所有語言值的程度;及基於該些隸屬函數建構狀態-動作模糊規則。
- 如申請專利範圍第1項所述之方法,其中步驟A中的動作-獎勵模糊規則由以下子步驟而獲得:定義用於資源變化百分比的每個區間、性能參數的每個變化百分比,與每一獎勵值的量的語言值;建構隸屬函數以描述所有性能參數偏離百分比、資源調整,與獎勵值區間的程度;及基於該些隸屬函數建構動作-獎勵模糊規則。
- 如申請專利範圍第1項所述之方法,其中於步驟F,如果一定數量的至少一資源自該工作負載釋放,則給予較高的偏離獎勵值。
- 如申請專利範圍第1項所述之方法,其中於步驟J中以該偏離獎勵值累加前,每一獎勵值乘上一具調校功能之伽馬 值。
- 如申請專利範圍第14項所述之方法,其中該伽馬值介於0與1之間。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105106482A TWI587153B (zh) | 2016-03-03 | 2016-03-03 | 藉由對執行中的工作負載之學習而部署儲存系統資源的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105106482A TWI587153B (zh) | 2016-03-03 | 2016-03-03 | 藉由對執行中的工作負載之學習而部署儲存系統資源的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI587153B true TWI587153B (zh) | 2017-06-11 |
TW201732631A TW201732631A (zh) | 2017-09-16 |
Family
ID=59687902
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105106482A TWI587153B (zh) | 2016-03-03 | 2016-03-03 | 藉由對執行中的工作負載之學習而部署儲存系統資源的方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI587153B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024075130A1 (en) * | 2022-10-07 | 2024-04-11 | Telefonaktiebolaget Lm Ericsson (Publ) | Optimizing user equipment service level agreement violations for network slice allocation |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080214198A1 (en) * | 2007-02-09 | 2008-09-04 | Wanshi Chen | Flexible channel quality indicator reporting |
TW200919210A (en) * | 2007-07-18 | 2009-05-01 | Steven Kays | Adaptive electronic design |
TW200947225A (en) * | 2007-11-08 | 2009-11-16 | Genetic Finance Holdings Ltd | Distributed network for performing complex algorithms |
-
2016
- 2016-03-03 TW TW105106482A patent/TWI587153B/zh active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080214198A1 (en) * | 2007-02-09 | 2008-09-04 | Wanshi Chen | Flexible channel quality indicator reporting |
TW200919210A (en) * | 2007-07-18 | 2009-05-01 | Steven Kays | Adaptive electronic design |
TW200947225A (en) * | 2007-11-08 | 2009-11-16 | Genetic Finance Holdings Ltd | Distributed network for performing complex algorithms |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024075130A1 (en) * | 2022-10-07 | 2024-04-11 | Telefonaktiebolaget Lm Ericsson (Publ) | Optimizing user equipment service level agreement violations for network slice allocation |
Also Published As
Publication number | Publication date |
---|---|
TW201732631A (zh) | 2017-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20170242729A1 (en) | Method for deploying storage system resources with learning of workloads applied thereto | |
US11394621B2 (en) | Proactively accomodating predicted future serverless workloads using a machine learning prediction model | |
US10169095B2 (en) | Automated capacity provisioning method using historical performance data | |
US9274850B2 (en) | Predictive and dynamic resource provisioning with tenancy matching of health metrics in cloud systems | |
US7441135B1 (en) | Adaptive dynamic buffering system for power management in server clusters | |
Ghanbari et al. | Exploring alternative approaches to implement an elasticity policy | |
EP2615803B1 (en) | Performance interference model for managing consolidated workloads in QoS-aware clouds | |
US8856797B1 (en) | Reactive auto-scaling of capacity | |
KR101630125B1 (ko) | 클라우드 컴퓨팅 자원관리 시스템에서의 자원 요구량 예측 방법 | |
CN115208879A (zh) | 将查询定向到跨主机系统和主机系统的硬件加速器分布的容器编排平台的集群的节点 | |
Barna et al. | Cloud adaptation with control theory in industrial clouds | |
TWI587153B (zh) | 藉由對執行中的工作負載之學習而部署儲存系統資源的方法 | |
US10171572B2 (en) | Server pool management | |
Cerf et al. | Cost function based event triggered Model Predictive Controllers application to Big Data Cloud services | |
CN107179944B (zh) | 通过对执行中工作负载的学习而部署储存系统资源的方法 | |
Bu et al. | A model-free learning approach for coordinated configuration of virtual machines and appliances | |
Wanis et al. | Modeling and pricing cloud service elasticity for geographically distributed applications | |
Patikirikorala et al. | 4M-Switch: Multi-mode-multi-model supervisory control framework for performance differentiation in virtual machine environments | |
Khoshkbarforoushha et al. | Flower: A data analytics flow elasticity manager | |
Akash et al. | An event-driven and lightweight proactive auto-scaling architecture for cloud applications | |
US20230213998A1 (en) | Prediction-based system and method for optimizing energy consumption in computing systems | |
US20240231927A1 (en) | Proactive resource provisioning in large-scale cloud service with intelligent pooling | |
TWI516952B (zh) | 用於軟體定義儲存系統控制性能參數的自適應模糊規則控制系統 | |
CN105279560A (zh) | 用于软件定义储存系统的自适应模糊规则控制系统 | |
Ravikumar et al. | Intelligent Pooling: Proactive Resource Provisioning in Large-scale Cloud Service |