運行時動態性能偏斜消除的制作方法
【專利摘要】提供用于計算機環境中的運行時動態性能偏斜消除的各種示例性方法、系統和計算機程序產品實施例。在一個實施例中,計算機環境被構造用于通過使用以區間粒度收集的多個細粒度統計數據來計算行列熱量,包括考慮帶寬(BW)和每秒輸入/輸出(IOPS)度量。產生自適應數據放置計劃以重新定位數據。數據被放置在數據存儲行列之間。數據存儲行列根據自適應數據放置計劃而被平衡。
【專利說明】運行時動態性能偏斜消除
【技術領域】
[0001]本發明一般地涉及計算機,更具體地講,涉及計算存儲環境中的運行時動態性能偏斜消除。
【背景技術】
[0002]在現今的社會中,計算機系統很常見。可在工作場所、在家庭或者在學校發現計算機系統。計算機系統可包括數據存儲系統或盤存儲系統以處理并存儲數據。存儲系統可包括一個或多個盤驅動器。盤驅動器可被以陣列(諸如,獨立盤冗余陣列(RAID))布局構造,以在硬件或軟件故障的情況下提供數據安全性。數據存儲系統可連接到主機,諸如大型計算機。許多數據存儲系統中的盤驅動器通常已知為直接存取存儲裝置(DASD)。DASD裝置通常把數據存儲在軌道上,軌道是盤的表面上的圓形路徑,在該圓形路徑上記錄信息并且從該圓形路徑讀取記錄的信息。為了在同時處理多個并發IO請求的系統中實現更高的吞吐量,數據可分布在多個物理裝置(諸如,盤驅動器、適配器等)之間,從而可同時處理訪問不同數據位置的請求。然而,隨著時間過去,工作負荷可使得一些裝置可能被過度使用,而一些裝置未被充分使用。此外,在數據存儲系統中,盤存儲子系統的工作負荷可能隨時間而波動并且可能產生自然偏斜。該偏斜可能沿帶寬(BW)和每秒輸入/輸出(I/O) (IOPS)維度產生不平衡,因此無法提供可接受的性能。
【發明內容】
[0003]在具有各種存儲裝置(一些存儲裝置具有比其它存儲裝置高的性能)的數據處理系統中,存儲系統可能產生自然偏斜并且沿帶寬和每秒輸入/輸出(I/O) (IOPS)維度變得不平衡。計算環境內的偏斜的產生降低性能和系統處理。
[0004]因此,考慮到前述情況,提供用于計算機環境中的運行時動態性能偏斜消除的各種示例性方法、系統和計算機程序產品實施例。在一個實施例中,計算機環境被構造用于通過使用以區間(extent)粒度收集的多個細粒度統計數據來計算行列(rank)熱量,包括考慮帶寬(BW)和每秒輸入/輸出(IOPS)度量。自適應數據放置計劃被產生以重新定位數據。數據被放置在數據存儲行列之間。數據存儲行列根據自適應數據放置計劃而被平衡。
[0005]除了前述示例性實施例之外,還提供各種其它系統和計算機程序產品實施例并且各種其它系統和計算機程序產品實施例提供相關優點。提供前述“
【發明內容】
”以便以簡化形式介紹以下在“【具體實施方式】”中進一步描述的概念的選擇。該“
【發明內容】
”并不旨在標識要求保護的主題的關鍵特征或必要特征,也不旨在用于輔助確定要求保護的主題的范圍。要求保護的主題不限于解決在“【背景技術】”中標注的任何或所有缺點的實現方式。
【專利附圖】
【附圖說明】
[0006]現在將參照附圖僅作為例子描述本發明的實施例,其中:
[0007]圖1表示具有可實現本發明的各方面的示例性存儲裝置的計算機存儲環境;[0008]圖2表示顯示可實現本發明的各方面的計算機系統中的數據存儲系統的硬件結構的示例性方框圖;
[0009]圖3是表示用于運行時動態性能偏斜消除的示例性方法的流程圖;
[0010]圖4是表示可實現本發明的各方面的等待時間曲線的示例性示圖;
[0011]圖5A是表示可實現本發明的各方面的增加行列使用情況的示例性示圖;
[0012]圖5B是表示可實現本發明的各方面的增加行列替代流程的示例性示圖;
[0013]圖5C是表示可實現本發明的各方面的性能偏斜使用情況的示例性示圖;
[0014]圖是表示可實現本發明的各方面的性能偏斜消除機制的示例性示圖;和
[0015]圖6是表示用于數據存儲行列之間的運行時動態性能偏斜的示例性方法的流程圖。
【具體實施方式】
[0016]由于幾個因素的組合,存儲系統可能產生自然偏斜,并且沿帶寬(BW)和每秒輸入/輸出(I/o) (IOPS)維度變得不平衡,并且無法提供可接受的性能。這些因素可包括:1)數據放置:把“同時訪問的熱點數據”放置在相同裝置(諸如,行列)上,2)使以前最佳的放置提供次最佳并且不可接受的性能的工作負荷變化,3)硬件的增加/刪除/劣化以及系統不能適應于結構變化,4)其它遷移活動或結構變化,諸如卷的創建/刪除/遷移,和5)系統中的遷移、新硬件的增加和劣化的硬件全都可促成性能偏斜。
[0017]用于解決自然偏斜的已有方案使用諸如條帶化或隨機放置的技術。然而,這種方案在顯露訪問模式之前分配放置并且僅減小偏斜的概率。這種方案無法消除偏斜并且無法在最初發生偏斜時校正偏斜。其它技術使用工作負荷再平衡方案,其中如果主位置過載,則工作負荷被重新引導至數據的冗余輔助位置。這種方案也無法在運行時消除存儲子系統內的偏斜,也無法在沒有輔助位置可用時解決問題。這些方案無法在存儲子系統級別有效地解決性能劣化,這是由于系統中的一些行列過載而一些行列未被充分使用所導致。無法解決該問題的主要因素在于:這些方案未以存儲子系統所需的細粒度解決問題,或者如果它們以存儲子系統所需的細粒度解決問題,則它們僅以靜態方式以存儲子系統所需的細粒度解決問題。
[0018]在一個實施例中,示出的實施例的機制通過在數據存儲行列之間自適應地放置數據來提供運行時動態性能偏斜消除。自適應算法基于工作負荷和結構。
[0019]在一個實施例中,示出的實施例的機制使用以區間粒度收集的細粒度統計數據計算行列熱量,同時考慮硬件的帶寬和IOPS能力以及工作負荷特性。使用行列的平均行列熱量(變型包括使用IOPS等待時間曲線和相關系數),并且產生用于重新定位區間的計劃以便減小系統中的長期性能偏斜而沒有突然的自動反應。相應地調整遷移。計劃過程由性能偏斜的存在和其它事件(諸如,硬件的增加/刪除/劣化、卷的創建/刪除/重新配置以及其它這種配置事件(諸如,合并池))觸發。
[0020]參照圖1,描述可實現本發明的各方面的示例性計算機系統10。計算機系統10包括連接到大容量存儲裝置14和存儲裝置16的中央處理單元(CPU) 12。大容量存儲裝置能夠包括能夠在獨立盤冗余陣列(RAID)中配置的硬盤驅動器(HDD)裝置、固態裝置(SSD)等。能夠在位于系統10中或別處的裝置14上執行進一步描述的備份操作。存儲裝置16能夠包括諸如電可擦除可編程只讀存儲器(EEPROM)的存儲器或相關裝置的主機。存儲裝置16和大容量存儲裝置14經信號承載介質連接到CPU12。另外,CPU12通過通信端口 18連接到通信網絡20,通信網絡20具有連接的多個另外的計算機系統22和24。
[0021]圖2是顯示根據本發明的計算機系統中的數據存儲系統的硬件結構的示例性方框圖200。參照圖2,示出主機計算機210、220、225,主機計算機210、220、225中的每一個用作用于執行數據處理的中央處理單元,用作數據存儲系統200的一部分。主機(物理或虛擬裝置)210、220和225可以是數據存儲系統200中的用于實現本發明的目的的一個或多個新的物理裝置或邏輯裝置。在一個實施例中,僅作為例子,數據存儲系統200可被實現為IBM ? System Storage? DS8000?。網絡連接260可以是光纖通道設備、光纖通道點到點鏈路、以太網上光纖通道或點到點鏈路、FICON或ESCON I/O接口、任何其它I/O接口類型、無線網絡、有線網絡、LAN、WAN、異構、同構、公共(即,互聯網)、專用或其任何組合。主機210、220和225可在本地或分布在一個或多個位置之間,并且可裝備有通向存儲控制器240的任何類型的設備(或設備通道)(圖2中未示出)或網絡適配器260,諸如光纖通道、FIC0N、ESC0N、以太網、光纖、無線或同軸適配器。數據存儲系統200因此裝備有合適的設備(圖2中未示出)或網絡適配器260以進行通信。在圖1中描述了數據存儲系統200,數據存儲系統200包括存儲控制器240和存儲器230。
[0022]為了方便更清楚地理解這里描述的方法,存儲控制器240在圖2中被示出為單個處理單元,包括微處理器242、系統存儲器243和非易失性存儲器(“NVS”)216,以下將對此進行更詳細的描述。需要注意的是,在一些實施例中,存儲控制器240包括多個處理單元,所述多個處理單元中的每一個具有它們自己的處理器設施和系統存儲器,所述多個處理單元由數據存儲系統200內的專用網絡互連。存儲器230可包括通過存儲網絡連接到存儲控制器240的一個或多個存儲裝置,諸如存儲陣列。
[0023]在一些實施例中,存儲器230中所包括的裝置可按照循環架構連接。存儲控制器240管理存儲器230,并方便用于存儲器230的寫和讀請求的處理。存儲控制器240的系統存儲器243存儲程序指令和數據,處理器242可訪問所述程序指令和數據以在計算機存儲環境中執行與管理存儲器230關聯的功能和方法步驟并且執行用于運行時動態性能偏斜消除的本發明的步驟和方法。在一個實施例中,系統存儲器243包括計算機存儲環境中的包括這里描述的方法和操作的用于運行時動態性能偏斜消除的操作軟件250,與操作軟件250關聯,或者與操作軟件250通信。如圖2中所示,系統存儲器243可還包括用于緩沖分別稱為寫/讀請求的“寫數據”和“讀數據”及其關聯數據的用于存儲器230的高速緩存245 (在這里也稱為“高速緩沖存儲器”),或者與高速緩存245通信。在一個實施例中,在系統存儲器243外部的裝置中分配高速緩存245,但保持可由微處理器242訪問高速緩存245,并且除了執行如這里所述的操作之外,高速緩存245還可用于提供針對數據損失的另外的安全性。
[0024]在一些實施例中,高速緩存245利用易失性存儲器和非易失性存儲器而被實現,并且經本地總線(圖2中未示出)耦合到微處理器242以實現數據存儲系統200的增強的性能。數據存儲控制器中所包括的NVS 216可由微處理器242訪問,并用于為如其它附圖中所述的本發明的操作和執行提供另外的支持。NVS 216也可稱為“永久”高速緩存或“高速緩沖存儲器”,并利用非易失性存儲器來實現,所述非易失性存儲器可使用外部電源保留存儲在它里面的數據或者可不使用外部電源保留存儲在它里面的數據。為了適合實現本發明的目標的任何目的,NVS可被存儲在高速緩存245中以及與高速緩存245—起存儲。在一些實施例中,備用電源(圖2中未示出)(諸如,電池)在數據存儲系統200的電源損失的情況下向NVS 216提供足夠的電源以保留存儲在它里面的數據。在某些實施例中,NVS 216的容量小于或等于高速緩存245的總容量。
[0025]存儲器230可在物理上包括一個或多個存儲裝置,諸如存儲陣列。存儲陣列是各存儲裝置的邏輯分組,諸如硬盤。在某些實施例中,存儲器230包括JBOD (磁盤簇)陣列或RAID(獨立盤冗余陣列)陣列。一批物理存儲陣列可進一步組合以形成行列,所述行列使物理存儲與邏輯結構分開。行列中的存儲空間可被分配到邏輯卷,所述邏輯卷定義在寫/讀請求中指定的存儲位置。在一個實施例中,僅作為例子,如圖2中所示的存儲系統可包括邏輯卷(或簡單稱為“卷”),可具有不同種類的分配。存儲區230a、230b和230η被顯示為數據存儲系統200中的行列,并且在這里被稱為行列230a、230b和230η。行列可相對于數據存儲系統200位于本地,或者可位于物理遠程位置。換句話說,本地存儲控制器可與遠程存儲控制器連接并管理在遠程位置的存儲區。行列230a被顯示為利用兩個完整卷234和236以及一個部分卷232a來構造。行列230b被顯示為具有另一部分卷232b。因此,卷232被在行列230a和230b之間分配。行列230η被顯示為完全分配給卷238—也就是說,行列230η指的是卷238的整個物理存儲區。從以上例子,將會理解,行列可被構造為包括一個或多個部分和/或完整卷。卷和行列可進一步被劃分成所謂的“軌道”,所述軌道代表存儲區的固定塊。軌道因此與給定卷關聯并且可被給予給定行列。
[0026]在計算機存儲環境中,存儲控制器240可包括性能偏斜消除模塊255和行列熱量模塊247以輔助運行時動態性能偏斜消除。性能偏斜消除模塊255和行列熱量模塊247都可結合存儲控制器240、主機210、220、225和存儲裝置230中的每個部件而工作。性能偏斜消除模塊255和行列熱量模塊247可在結構上是一起聯合工作以用于計算機存儲環境中的運行時動態性能偏斜消除的一個完整的模塊,或者可以是單獨模塊。性能偏斜消除模塊255和行列熱量模塊247也可位于高速緩存245或存儲控制器240的其它部件中以實現本發明的目的。
[0027]存儲控制器240可構造為具有:控制開關241,用于控制針對主機計算機210、220、225的光纖通道協議;微處理器242,用于控制所有的存儲控制器240 ;非易失性控制存儲器243,用于存儲用于控制存儲控制器240的操作的微程序(操作軟件)250、用于控制的數據和稍后描述的每個表;高速緩存245,用于臨時存儲(緩沖)數據;和緩沖器244,用于輔助高速緩存245讀和寫數據;控制開關241,用于控制用于控制通向存儲器230或來自存儲器230的數據傳輸的協議;性能偏斜消除模塊255 ;和行列熱量模塊247,在行列熱量模塊247上可設置信息。可利用本發明實現多個緩沖器244以輔助計算機存儲環境中的運行時動態性能偏斜消除。
[0028]在一個實施例中,僅作為例子,主機計算機或者一個或多個物理或虛擬裝置210、220、225和存儲控制器240通過作為接口的網絡適配器(這能夠是光纖通道)260 (即,經稱為“設備”的開關)連接。在一個實施例中,僅作為例子,將描述圖2中示出的系統的操作。微處理器242可控制存儲器243以存儲來自主機裝置(物理或虛擬)210的命令信息和用于識別主機裝置(物理或虛擬)210的信息。控制開關241、緩沖器244、高速緩存245、操作軟件250、微處理器242、存儲器243、NVS 216、性能偏斜消除模塊255和行列熱量模塊247彼此通信,并且可以是分開的部件或一個單獨部件。此外,幾個部件(如果并非所有部件的話)(諸如,操作軟件250)可被包括在存儲器243中以用于計算機存儲環境中的運行時動態性能偏斜消除。在一個實施例中,僅作為例子,為了適合本發明的目的,存儲裝置內的每個部件可被鏈接在一起,并且可彼此通信。
[0029]圖3是表示用于運行時動態性能偏斜消除的示例性方法300的流程圖。示出的實施例的機制用于通過考慮到結構變化而保持工作負荷均勻地分布在系統中的不同行列之間的平衡區間池來提高總體系統性能和并發性。數據被自適應地放置在存儲行列(裝置)之間。自適應數據算法基于工作負荷和系統結構。此外,示出的實施例的機制使用使用以區間粒度收集的細粒度統計數據計算行列熱量。使用行列之間的平均行列熱量,產生用于重新定位區間的計劃以實現最佳性能。區間可以是數據放置的單位。例如,在DS8000系統中,區間可以是IG的固定大小,這也可以是數據遷移的單位。該算法可被應用于由該系統支持的數據放置/遷移的任何其它單位。
[0030]方法300通過使用以區間粒度收集的細粒度統計數據計算一個或多個行列熱量來開始(步驟302),包括考慮帶寬(BW)和每秒輸入/輸出(IOPS)度量(步驟304)。產生自適應數據放置計劃以重新定位數據(步驟306)。數據可被反映為區間或數據段。數據被放置在數據存儲行列之間(步驟308)。數據存儲行列根據自適應數據放置計劃而被平衡(步驟310)。例如,自適應數據放置計劃可基于再平衡算法(計算)、一個或多個行列熱量、決定窗口和/或系統可容忍的偏斜的閾值中的一種或多種。方法300結束(步驟312)。
[0031]如上所述,用于減少盤存儲子系統的工作負荷的一種方法在于:當需求增加時,把大量訪問的數據移動、放置或“遷移”到更可接受的裝置上。自適應數據放置決定自身復雜并且可考慮下面的因素:1)工作負荷和隨著時間的變化,包括平均值和峰值行為,(主要問題在于:數據之間的位置和關系由工作負荷行為動態地創建,而非先驗地已知或“在先”已知),2)裝置特性,諸如BW、IOPS能力(度量),和3)系統結構,諸如行列分配。基于自適應數據放置計劃的數據的遷移可能不是即時活動并且可受到可用帶寬限制。
[0032]對再平衡的要求應該是可調節的(即,再平衡系統并消除偏斜所需的資源應該與再平衡的數據的量成比例),對工作負荷的短暫變化強壯,是動態的(即,適應于工作負荷或系統中的新事件和變化,諸如結構變化),能夠預測未來事件(諸如,工作負荷和數據放置變化)以考慮到可能在分析和執行之間存在顯著遲滯的事實,并且是通有的(即,支持來自不同銷售商的各種裝置類型并且還支持不同的工作負荷行為(隨機、順序和/或混合))。
[0033]運行時動態性能偏斜消除目的之一是通過保持工作負荷均勻地分布在系統中的行列之間的平衡區間池來實現提高的系統性能和并發性。區間池可以是可被用于管理與給定的行列組關聯的相同類型的一組區間的邏輯構造。當定義區間池時,它可被分配行列組和區間類型。具有相同區間類型的一個或多個行列可被分配給區間池,但行列可被僅分配給一個區間池。可存在與行列一樣多的區間池。關于分配給區間池的行列的數量或大小沒有限制。分配給區間池的行列的所有區間對于分配給與該區間池關聯的邏輯卷是獨立可用的。這些機制應用關鍵部件以方便通過熱量度量計算、決定窗口、計劃大小估計和/或運行時動態性能偏斜消除算法消除偏斜。
[0034]熱量度量可被用于計算行列熱量。從區間熱量測量值重建行列熱量。定期地從基礎系統收集區間熱量測量值。區間統計數據的機制使用是雙重的:(I)運行時動態性能偏斜消除使用區間熱量測量值計算行列熱量,和(2)運行時動態性能偏斜消除機制使用區間熱量測量值識別源行列中的熱點區間,并且在交換操作的情況下,識別和/或交換目標行列上的冷門區間。行列熱量可以是基于區間熱量的指數移動平均值(EMA)(累加測量值)和瞬時行列結構(即,行列中的當前的一組區間)的瞬時行列熱量。在一個實施例中,僅作為例子,可考慮下面的方程以計算行列熱量和區間熱量:
[0035]Rh = Σ EMA (Hextent) (I)
[0036]其中Rh是行列熱量,EMA是指數移動平均值,并且Hextent是區間熱量。區間屬于瞬時行列結構(行列中的當前的一組區間)。可計算區間熱量自身作為隨機和順序IO計數的某一線性組合,諸如:
[0037]FMA(Hextent)=EMA(RIOC)+EMA(SIOC) (2)
[0038]其中RIOC是隨機輸入輸出計數并且SIOC是順序輸入/輸出計數。保持區間熱量的EMA以便識別行列內的熱點區間。用于計算行列熱量的其它可能的變型包括根據裝置能力、等待時間度量等使用隨機和順序訪問的加權度量。
[0039]運行時動態性能偏斜消除機制的目標之一在于:對于選擇的度量,使系統保持在平衡狀態。通過使用決定窗口計算可實現這一點。決定窗口代表產生自適應數據放置計劃的頻率。可基于各種因素選擇決定窗口的長度,所述各種因素包括但不限于工作負荷特性、可用遷移帶寬和其它適用的硬件和工作負荷特性。
[0040]為了表示決定窗口的功能,下面的描述并不意圖在所有情況下應用,而是用于提供對代表產生自適應數據計劃的頻率和應用前述各種因素的工作理解。在一個實施例中,這些機制考慮根據需要選擇多個決定窗口,例如,決定窗口可以是6小時的決定窗口。在每個決定窗口,產生遷移意見。意見代表用于遷移的計劃并包括需要遷移的一組區間、源行列和目標行列。意見大小表示產生的這種遷移計劃的數量。對于意見大小計算,可使用許多因素(諸如,系統中的有效區間的數量、可用遷移帶寬的量、系統上的當前負荷和決定窗口的長度)計算遷移意見大小。
[0041]例如,可通過使用包括成本和遷移意見大小的計算的幾項計算來表示決定窗口的邏輯操作。這些計算并不意圖在所有情況下應用,而是為了表示決定窗口計算中的幾項計算而被示出。
[0042]對于成本計算:
[0043]假設Tm=每個決定窗口花費在遷移上的時間 (3)
[0044]在再平衡狀態下花費的持續時間可小于Tm以證明花費在遷移上的資源,例如4Tm。這個自變量意味著:再平衡的決定基于長度為4Tm的決定窗口。使用以上例子,假設2天的決定窗口,可在每個窗口執行720分鐘的遷移活動。以每5分鐘4次遷移的速度,可在每個決定窗口執行576次遷移。每個決定窗口再平衡的行列的數量可如下:假設熱點行列的10%需要遷移以便再平衡(對于串行連接小型計算機系統接口(SAS)/固態驅動器(SSD)行列,80個區間;以及對于串行高級技術附件(SATA)行列,200個區間)。僅利用“移動”操作,7.2個SAS/SSD行列和2.88個SATA行列可被再平衡。僅利用“交換”操作,在每個決定窗口,
[0045]3.6個SAS/SSD行列和1.44個SATA行列可被再平衡。[0046]對于遷移意見大小:
[0047]Max Adv Size=Minimum(基于有效區間的上限,基于帶寬的上限)(4)其中Max AdvSize是最大意見大小,并且Minimum是基于有效區間的上限和基于帶寬的上限。
[0048]Act extentup=#extentstier/2 (5)
[0049]其中Act extentup是基于有效區間的上限,并且#extentstiOT是層中的區間的數量。
[0050]Bffup= (#rankstier/*rankBWthreshold* (%Bffmig/100.0) *DWd) / (extent腿)(6)
[0051]其中BWup是基于帶寬的上限,Srankstier是層中的行列的數量,rankBffthreshold是行列帶寬閾值,%BWmig是可用于遷移的帶寬的百分比,DWd是決定窗口的持續時間,并且extentM是以兆字節(MB)為單位的區間大小。
[0052]因此,可在決定窗口內使用這些計算以通過對于選擇的度量使系統保持在平衡狀態來完成運行時動態性能偏斜消除機制的目標之一。
[0053]如前所述,這些機制可應用概率算法以識別用于數據放置活動的潛在的目標,同時確保目標在遷移時不過載。同時,自適應數據算法確保裝置(行列)不會未被充分使用。在一個實施例中,對于當前區間池中的每個層,計算和自適應數據算法流程可被描述如下。第一,這些機制可對于每個行列計算行列熱量,其中投影行列熱量(PRH)可等于實際行列熱量(ARH)。第二,按照行列熱量的降序排序行列熱量。應該注意的是,根據計算系統的需要或所希望的偏好,行列熱量可以是一個單一行列熱量,或者可包括多個行列熱量。此外,根據系統,也可按照升序排序行列熱量。第三,計算正被再平衡的一組行列之間的行列熱量的平均值(AVE)和標準偏差(STDEV)。第四,這些機制可識別PRH大于AVE的一組(多組)熱點行列H。第五,在存在熱點行列并且存在目標行列時,這些機制可指定熱點行列作為源行列并且從源行列指定其區間之一作為源區間。第六,這些機制可識別PRH小于AVE并且PRH小于行列的輸入/輸出(I/O)閾值的多個目標行列(冷門行列或僅僅“C”)。可基于裝置校準靜態地確定行列的閾值以觀察在等待時間超過可接受的性能之前行列上的最大可接受負荷是多少。如果熱量(源區間)加上PRH(目標行列)小于AVE,則確定在目標行列中是否存在備用容量并把源區間移動到目標行列。否則,把目標區間識別為等于目標行列中的最冷門區間,然后交換目標區間與源區間,其后更新源行列和目標行列的PRH。這些機制可按照行列熱量的降序/升序重復行列熱量的排序。此外,可采用旨在通過試圖實現行列熱量之間的更小的標準偏差來使系統中的偏斜最小化的自適應算法。該算法的其它變型用于減小偏斜,如以下所述。
[0054]圖4是表示可實現本發明的等待時間曲線400的示例性示圖。在數據存儲系統內的裝置中,例如,圖1和圖2,可先驗地已知與圖4中的等待時間曲線(曲線)400相似的等待時間IOPS曲線。等待時間曲線400的垂直軸410表示系統的等待時間,并且水平軸412表示IOPS 406(在圖4中示出為406A-406B)。該曲線顯示熱點區域402 (利用柵格狀圖案表示)和冷門區域404(利用斜紋線表示)以及利用“A”標記的IPOSA 406A和利用“B”標記的IOPSB 406B。一旦已知10PSB,可計算行列閾值。
[0055]在一個實施例中,用于運行時動態性能偏斜消除的算法的可能的變型使用IOPS等待時間曲線400并且與前面描述的原始算法相似,不同之處在于,如果投影行列熱量(PRH)大于行列的IOPSB閾值,則行列被歸類為“熱點”,即源行列。在一個實施例中,如果PRH小于IOPSB,則行列可被歸類為“冷門”,即目標行列。可基于裝置類型的IOPSB點、行列中的驅動器的數量和RAID方案計算10PSB。
[0056]在一個實施例中,自適應數據算法的第三變型使用相關系數識別緊密相關的熱點區間并且重新分配區間以減少使行列變得過載的工作負荷尖峰。在一個實施例中,這些機制識別正被考慮用于偏斜消除的區間池中的最熱點區間的前N%。由于池中的區間的總數可能很大,所以為了效率起見,這些機制可使再平衡操作局限于基于EMA(區間熱量)確定的最熱點區間的前N%。在這些區間之間計算互相關系數。使用簡單的相關群集機制,這些機制將會把區間劃分成正相關的區間的群集。對于每個群集,可根據區間熱量排序區間。在層中可用的行列之間使用條帶化來重新分配區間。
[0057]圖5A-?是表不用于性能偏斜消除的各種過程和機制的不例性不圖。圖5A是表示可實現本發明的各方面的增加行列使用情況的示例性示圖500。圖5A-5D中的每一個表示幾個行列502。在每個行列502A內,存在幾個區間;熱點區間510或冷門區間512。為了表示熱點區間510和/或冷門區間512的遷移的目的,行列502被分成熱點行列502A和目標行列502B。在圖5A中,可利用同一層中的多個行列的存在識別前提。幾個另外的前提可包括:1)行列統計數據的可用性和排序行列的能力,和2)行列結構的可用性,諸如行列映射。
[0058]在一個實施例中,通過具有預先存在的行列的層中的新的行列的增加來觸發這些機制。在被觸發時,這些機制可對于層中的所有行列計算熱量。在性能偏斜超過閾值(閾值能夠被定義為系統中的偏斜的可接受的量)時,這些機制可識別熱點行列(在熱點行列中,熱量超過閾值)。目標行列502B可等于新增加的行列。如果存在熱點行列502A,則這些機制可把熱點區間(510)從熱點行列502A遷移到目標行列502B。例如,熱點行列502A中的熱點區間510被遷移到目標行列502B。隨后的遷移顯示沒有遷移的熱點區間510的新的熱點行列502A。遷移的熱點區間510現在出現在目標行列502B中。圖5A表示目標行列502B是空的,并且在熱點區間510遷移之后,目標行列現在包含一個熱點區間510。
[0059]圖5B是表示可實現本發明的各方面的增加行列替代流程的示例性示圖。在圖5B內,三個方案520、522和524表示具有替代流程的增加行列。在第一方案520中,熱點區間510之一從熱點行列502A遷移到目標行列502B。發生至新增加的行列的遷移。在第二方案522中,沒有熱點區間(510)存在于熱點行列502A中,并且在熱點行列502A中僅發現冷門區間512。因為性能偏斜未超過閾值,所以不發生從熱點行列502A到目標行列502B的遷移。在第三方案524中,盡管在熱點行列502A中存在熱點區間(510),但由于源行列不足夠熱,所以不發生從熱點行列502A到目標行列502B的遷移。
[0060]圖5C是表示可實現本發明的性能偏斜使用情況的示例性示圖。在一個實施例中,可利用同一層中的多個行列的存在識別前提。幾個另外的前提可包括:1)行列統計數據的可用性和排序行列的能力,和2)行列結構的可用性,諸如行列映射。
[0061]在一個實施例中,通過位于決定窗口的當前時間周期來觸發這些機制。在被觸發時,這些機制可對于層中的所有行列計算熱量。在行列性能偏斜超過閾值(閾值能夠被定義為系統中的偏斜的可接受的量)時,示出的實施例的機制可識別熱點行列(在熱點行列中,熱量超過閾值)。如果存在熱點行列502A,則示出的實施例的機制可目標行列502B(其中源和目標之間的偏斜最大)。如果在目標行列502B中存在備用容量,則這些機制可把熱點區間510從熱點行列502A移動到目標行列502B。否則,這些機制可交換熱點行列502A的熱點區間510與目標行列502B的冷門區間512。例如,從熱點行列502A遷移的熱點區間510現在出現在目標行列502B中。圖5C表示目標行列502B在遷移之前僅包含冷門區間512,并且在遷移之后,熱點區間510被放置在目標行列502B中,目標行列502B現在包含一個熱點區間510和一個冷門區間512。
[0062]圖是表示可實現本發明的具有替代流程的性能偏斜消除機制的示例性示圖。在圖內,三個方案530、532和534表示具有替代流程的性能偏斜使用情況。在第一方案530中,僅一個熱點區間510存在于熱點行列502A中,并且存在幾個冷門區間512。因為源行列不足夠熱,所以不發生從熱點行列502A到目標行列502B的遷移。應該注意的是,不使區間從熱點行列遷移到冷門行列的另一條件是遷移將會使冷門行列超過正被再平衡的行列之間的AVE或者遷移將會使冷門行列負荷超過裝置閾值。在第二方案532中,熱點區間510和冷門區間512都存在于目標行列502B中并且僅熱點區間510存在于熱點行列502A中。由于性能偏斜未超過閾值,所以不發生遷移。在第三方案534中,熱點行列502A完全充滿熱點區間(510)并且目標行列502B完全充滿冷門區間512。發生從熱點行列502A到目標行列502B的遷移,或者由于在熱點行列502A或冷門行列502B中不存在備用容量,所以“交換” 一些熱點區間510與一些冷門區間512。
[0063]圖6是表示用于數據存儲行列之間的運行時動態性能偏斜的示例性方法600的流程圖。在一個實施例中,示出的實施例的機制在多個維度/度量(BW和10PS)上識別長期偏斜,并提供穩定、非侵入并且可調節的策略以消除多層系統的單層內的行列之間的偏斜。通過使用IOPS和BW資源的百分比使用因子,可產生算法并且該算法可自動應用于多個銷售商裝置。另外,通過使用累加測量值(諸如,指數移動平均值(EMA)),算法可解決尖峰而沒有自動反應。概率算法可被使用并應用以識別用于數據放置活動的潛在的目標,同時確保目標在遷移時或在執行遷移計劃之后不過載,同時該算法確保裝置(行列)不會未被充分使用。在一個實施例中,幾種反饋機制被用于調整根據系統活動產生的放置意見的量以識別系統中的“熱點”和“冷門”之間的切換,并且在識別出不可補救的情況時自動停止意見產生。
[0064]該方法開始(步驟S602)于通過性能偏斜的存在和事件來觸發計劃過程(步驟S603)。方法600將會使用以區間粒度收集的統計數據計算行列熱量(步驟S604)。細粒度統計數據被包括在該統計數據中,并且方法600將會沿多個維度(諸如,帶寬和每秒輸入/輸出操作)和工作負荷特性考慮各種硬件裝置的能力(步驟S606)。識別多個維度上的長期偏斜和短期偏斜(步驟S607)。方法600將會應用維度的百分比使用(步驟S608)。行列之間的平均熱量被用于產生計劃(步驟S609)。定位目標以自適應地放置數據(步驟S610)。在數據遷移時以及在執行遷移指令之后防止目標(目標裝置)過載(步驟S611)。產生用于重新定位、遷移和放置區間的計劃(步驟S612)。該方法將會在計劃中包括穩定、非侵入并且可調節的策略以消除例如多層系統的單個層內的行列之間的偏斜(步驟S613)。遷移一個或多個區間(步驟S614)。方法600將會把遷移的區間放置在目標行列中(步驟S616)。幾個測量值被使用并應用以解決尖峰(步驟S618)。該方法將會應用反饋機制以調整數據的放置,同時保持平衡的區間池(步驟S620)。方法600將會在遷移時使數據存儲行列適應于最大使用(步驟S622)。方法600結束(步驟S624)。[0065]如前所述,這些機制使用以區間粒度收集的細粒度統計數據計算行列熱量,同時考慮硬件的帶寬和IOPS能力以及工作負荷特性。使用行列之間的平均行列熱量(變型包括使用IOPS等待時間曲線和相關系數),這些機制可產生用于重新定位區間的計劃以便減小系統中的長期性能偏斜而沒有突然的自動反應。調整數據(區間)的遷移,并且用于自適應數據計劃的計劃過程由性能偏斜的存在和其它事件(諸如,硬件的增加/刪除/劣化、卷的創建/刪除/重新配置以及其它這種結構事件(諸如,合并池))觸發。
[0066]應該理解,諸如“強制”、“要求”、“需要”和“必須”的術語為了清楚而表示在這里描述的特定實現方式或應用的情況下做出的實現方式選擇,而非意圖是限制性的,因為在替代的植入、操作、構造或實現方式中,相同的元件可被定義為不是強制的并且不是要求的或者甚至可被完全消除。另外,在單數上下文中在這里提及或描述的部件或結構可為了清楚以及作為例子而僅在特定實現方式或應用中被描述,而非意圖是限制性的,因為在這里描述的方法和系統的替代的植入、操作、構造和/或實現方式中可使用多個部件或結構。
[0067]本領域技術人員將會理解,本發明的各方面可以實現為系統、方法或計算機程序產品。因此,本發明的各方面可以采用通常全部可在本文稱為“電路”、“模塊”或“系統”的完全硬件實施例、完全軟件實施例(包括固件、常駐軟件、微碼等)或組合軟件和硬件方面的實施例的形式。另外,本發明的各方面可以采用實現于具有計算機可讀程序代碼的一個或多個計算機可讀介質的計算機程序產品的形式。
[0068]可以使用一個或多個計算機可讀介質的任何組合。計算機可讀介質可以是計算機可讀信號介質或計算機可讀存儲介質。計算機可讀存儲介質可以是例如但不限于電子、磁、光學、電磁、紅外或半導體系統、設備或裝置或者前述各項的任何合適的組合。計算機可讀存儲介質的更具體的例子(非窮舉列表)將會包括下述各項:具有一個或多個線的電氣連接、便攜式計算機盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦除可編程只讀存儲器(EPR0M或閃存)、光纖、便攜式壓縮盤只讀存儲器(CD-ROM)、光學存儲裝置、磁存儲裝置或前述各項的任何合適的組合。在這個文件的上下文中,計算機可讀存儲介質可以是能夠包含或存儲由指令執行系統、設備或裝置使用或結合指令執行系統、設備或裝置使用的程序的任何有形介質。
[0069]可以使用任何合適的介質(包括但不限于無線、有線、光纖光纜、RF等或前述各項的任何合適的組合)傳輸計算機可讀介質上包含的程序代碼。可以按照一種或多種編程語言的任何組合編寫用于執行本發明的各方面的操作的計算機程序代碼,所述編程語言包括:面向對象的編程語言,諸如Java、Smalltalk、C++等;和常規程序化編程語言,諸如“C”編程語言或類似編程語言。程序代碼可以完全在用戶的計算機上執行、部分在用戶的計算機上執行、作為獨立軟件包執行、部分在用戶的計算機上并且部分在遠程計算機上執行或者完全在遠程計算機或服務器上執行。在后面的方案中,遠程計算機可以通過任何類型的網絡(包括局域網(LAN)或廣域網(WAN))連接到用戶的計算機,或者可以(例如,使用互聯網服務提供商(ISP)通過互聯網)連接到外部計算機。
[0070]以上參考根據本發明實施例的方法、設備(系統)和計算機程序產品的流程圖和/或方框圖描述了本發明的各方面。將會理解,流程圖和/或方框圖中的每個方框以及流程圖和/或方框圖中的方框的組合可由計算機程序指令實現。這些計算機程序指令可被提供給通用計算機、專用計算機或者其它可編程數據處理設備的處理器,以產生一臺機器,從而指令(所述指令經計算機或者其它可編程數據處理設備的處理器執行)產生用于實現流程圖和/或方框圖的一個或多個方框中規定的功能/動作的裝置。
[0071]這些計算機程序指令也可存儲在計算機可讀介質中,該計算機可讀介質可指示計算機、其它可編程數據處理設備或其它裝置按照特定的方式發揮作用,從而存儲在計算機可讀介質中的指令產生一種制造產品,所述制造產品包括實現流程圖和/或方框圖的一個或多個方框中規定的功能/動作的指令。計算機程序指令也可被加載到計算機、其它可編程數據處理設備或其它裝置上,以使得在所述計算機、其它可編程設備或其它裝置上執行一系列的操作步驟以產生計算機實現的過程,從而在該計算機或其它可編程設備上執行的指令提供用于實現流程圖和/或方框圖的一個或多個方框中規定的功能/動作的過程。
[0072]以上附圖中的流程圖和方框圖表示根據本發明的各種實施例的系統、方法和計算機程序產品的可能實現方式的架構、功能和操作。在這個方面,流程圖或方框圖中的每個方框可代表包括用于實現規定的邏輯功能的一個或多個可執行指令的代碼的模塊、段或一部分。還應該注意的是,在一些替代的實現方式中,方框中標注的功能可以不按附圖中標注的次序執行。例如,事實上,根據涉及的功能,連續示出的兩個方框可以基本上同時執行,或者這些方框有時候可以以相反的次序執行。還應該注意的是,方框圖和/或流程圖中的每個方框以及方框圖和/或流程圖中的方框的組合能夠由執行規定的功能或動作的基于專用硬件的系統或專用硬件和計算機指令的組合實現。
[0073]盡管已詳細表示了本發明的一個或多個實施例,但本領域普通技術人員將會理解,在不脫離如下面的權利要求所闡述的本發明的范圍的情況下可做出對這些實施例的修改和改變。
【權利要求】
1.一種在計算存儲環境中由處理器裝置執行的用于運行時動態性能偏斜消除的方法,包括: 通過使用以區間粒度收集的多個細粒度統計數據來計算多個行列熱量,包括考慮帶寬(Bff)和每秒輸入/輸出(IOPS)度量; 產生自適應數據放置計劃以重新定位數據; 在多個數據存儲行列之間放置數據;以及 根據自適應數據放置計劃平衡所述多個數據存儲行列。
2.如權利要求1所述的方法,還包括:使用所述多個數據存儲行列的平均行列熱量、IOPS等待時間曲線和多個相關系數中的一種來產生自適應數據放置計劃。
3.如權利要求1所述的方法,還包括執行下面的至少一個步驟: 把數據放置在所述多個數據存儲行列中的多個目標之一中;以及 通過性能偏斜的存在和多個事件來觸發用于自適應數據計劃的計劃過程。
4.如權利要求1所述的方法,還包括執行下面的至少一個步驟: 識別帶寬(BW)和IOPS度量中的至少一個度量的多個維度上的多個偏斜, 應用所述多個維度的百分比使用, 定位多個目標以用于數據的放置, 使用多個累加測量值以解決多個峰值,以及 應用反饋機制以調整數據的放置。
5.如權利要求1所述的方法,還包括執行下面的至少一個步驟: 在所述多個數據存儲行列之間放置數據時防止多個目標過載,以及 在遷移時使所述多個數據存儲行列適應于最大使用。
6.如權利要求1所述的方法,還包括執行下面的至少一個步驟: 根據升序和降序之一對所述多個行列熱量進行排序, 根據所述多個行列熱量計算平均行列熱量和標準偏差行列熱量之一, 識別具有大于實際行列熱量(ARH)的投影行列熱量(PRH)的多個熱點行列⑶, 在存在所述多個熱點行列和多個目標行列時,指定作為最熱點行列的源行列并且從源行列指定作為最熱點區間之一的源區間,以及 識別所述多個目標行列中PRH小于AVE并且PRH小于所述多個數據存儲行列的輸入/輸出(I/O)閾值的目標行列作為冷門行列(C)。
7.如權利要求6所述的方法,其中識別所述多個目標行列中的作為冷門行列的目標行列包括,如果源區間和PRH小于AVE,則: 如果備用容量存在于所述多個目標行列上,則把源區間移動到所述多個目標行列之一,否則: 在所述多個目標行列之一中識別等于最冷門區間的目標區間,以及 交換目標區間與源區間,其中源行列和目標行列的PRH被更新。
8.一種用于計算存儲環境中的運行時動態性能偏斜消除的系統,包括: 處理器裝置,能在計算存儲環境中操作,其中所述處理器裝置適應于執行如權利要求1至7中任何一項所述的步驟。
9.一種用于在計算存儲環境中由處理器裝置執行的運行時動態性能偏斜消除的計算機程序產品,該計算機程序產品包括非暫態計算機可讀存儲介質,該非暫態計算機可讀存儲介質具有存儲在其中的計算機可讀程序代碼部分,當由計算機執行所述計算機可讀程序代碼部分時,所述計算機可讀程序代碼部分使計算機執行如權利要求1至7中任何一項所述的步驟。`
【文檔編號】G06F12/00GK103502956SQ201280020910
【公開日】2014年1月8日 申請日期:2012年4月12日 優先權日:2011年4月29日
【發明者】S·塞沙德里, L·Y·楚, P·H·穆恩齊 申請人:國際商業機器公司