專利名稱:一種在分布式存儲中處理存儲熱點的方法、裝置及系統的制作方法
技術領域:
本發明涉及存儲技術領域,尤其涉及一種在分布式存儲中處理存儲熱點的 方法、裝置及系統。
背景技術:
在現代存^(諸系統中,不同的存儲對象有不同的訪問頻率,訪問頻率高的存儲對象稱為熱點(hotspot)。當訪問過于集中某些設備并導致整個系統對用戶響 應時間的延遲,那么該設備就成為存儲系統的熱點。為了能使系統及時響應用 戶請求就必須消除熱點,從而消除系統的訪問瓶頸。在分布式存儲系統中,特別是并行磁盤陣列系統中,存儲的熱點問題一直 是存儲系統的詬病。圖1是一個典型的基于分布式架構的并行控制器拓樸圖, 其中主機可以通過任意一個控制器訪問巻,每個控制器后端連接物理磁盤,其 中所有的控制器在邏輯上都是全互聯的形式。從主機側過來的數據最終都會落 到磁盤陣列系統中的物理磁盤之上,由于應用模式的差別,就會形成有的物理 磁盤區域很熱(訪問很頻繁),而有的區域很冷(訪問很少),這就形成了物理 ;茲盤上面的熱點。現有存儲系統中規避熱點的方法是通過主機的多路徑軟件來實現路徑的負 載均衡,以消除訪問存儲的熱點。在實現本發明的過程中,發明人發現現有技術中至少存在如下問題現有 技術采用多路徑軟件只是均衡了訪問路徑,但是無法消除物理磁盤上面的熱點,發明內容本發明實施例提供一種在分布式存儲中處理存儲熱點的方法、裝置及系 統,可實現有效減少物理磁盤的熱點。4本發明實施例提供一種在分布式存儲中處理存儲熱點的方法,包括 獲得控制器下邏輯單元的訪問頻率總和;判斷所述獲得的訪問頻率總和是否大于預先設置的訪問頻率閾值; 當判斷所述獲得的訪問頻率總和大于所述預先設置的訪問頻率閾值時, 將所述控制器下訪問頻率最高的邏輯單元遷移到訪問頻率總和最小的控制器。本發明實施例還提供一種一種在分布式存儲中處理存儲熱點的裝置,包括獲得單元,用于獲得控制器下邏輯單元的訪問頻率總和; 判斷單元,用于判斷所述獲得的訪問頻率總和是否大于預先設置的訪問 頻率閾值;遷移單元,用于在所述判斷單元判斷所述獲得的訪問頻率總和大于預先 設置的訪問頻率闊值時,將所述控制器下訪問頻率最高的邏輯單元遷移J 'J訪 問頻率總和最小的控制器。本發明實施例還提供一種系統,包括遷移管理模塊及與所述遷移管理模 塊連接的至少兩個控制器,每一控制器控制至少兩個邏輯單元,所述遷移管 理模塊包括獲得單元、判斷單元及遷移單元,所述獲得單元,用于獲得所述控制器下邏輯單元的訪問頻率總和;所述判斷單元,用于判斷所述獲得的訪問頻率總和是否大于預先設置的訪問頻率閾值;所述遷移單元,用于在所述判斷單元判斷所述獲得的訪問頻率總和大于 預先設置的訪問頻率閾值時,將所述控制器下訪問頻率最高的邏輯單元遷移 到訪問頻率總和最小的控制器。本發明實施例在判斷控制器下邏輯單元的訪問頻率總和大于所述預先設置 的訪問頻率閾值時,將所述控制器下訪問頻率最高的邏輯單元遷移到訪問頻率 總和最小的控制器,減少所述控制器下邏輯單元的訪問頻率總和,從而實現邏5輯單元在控制器之間的動態遷移,有效減少了物理》茲盤的熱點。
為了更清楚地說明本發明實施例的技術方案,下面將對實施例或現有技 術描述中所需要使用的附圖作一筒單地介紹,顯而易見地,下面描述中的附 圖僅僅是本發明一部分實施例,對于本領域普通技術人員來講,在不付出創 造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。圖l是現有基于分布式架構的并行控制器拓樸示意圖; 圖2是本發明實施例表示物理磁盤的邏輯單元位置的映射表的結構示意圖; 圖3是本發明實施例一在分布式存儲中處理存儲熱點的方法的流程示意圖; 圖4是本發明實施例二在分布式存儲中處理存儲熱點的方法的流程示意圖; 圖5是本發明實施例在分布式存儲中處理存儲熱點的系統的結構示意圖; 圖6是本發明實施例在分布式存儲中處理存儲熱點過程中的系統的結構示 意圖。
具體實施方式
為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實 施方式,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施方 式僅僅用于解釋本發明,并不用于限定本發明。請參考圖2,為本發明實施例表示物理磁盤的邏輯單元位置的映射表的結 構示意圖,本發明實施例中存儲系統包括多個物理磁盤,每個磁盤包括多個邏 輯單元,通過一個映射表來跟蹤維護物理^茲盤的每個邏輯單元的位置,這種方 法中物理磁盤的每個邏輯單元的位置都不是固定的,可以通過修改映射指針的 形式來根據需要調整。本發明實施例以B+TRE的形式實現映射表,可以理解 的是,也可以采用其他形式的映射表來跟蹤維護物理磁盤的每個邏輯單元的位 置。如圖2所示,本發明實施例將物理;茲盤分割為多個邏輯單元(bnode),每個邏輯單元的大小大約為128MB-1GB,這些邏輯單元一開始被均勻的分布在系 統的N個控制器上面,并通過一個全局的映射表(B+TREE)來跟蹤這些邏輯 單元的位置。在B+TREE中,才艮據邏輯單元的身份信息(編號或ID )作為關鍵字來檢索 邏輯單元的信息,所屬信息包括所述邏輯單元的編號(ID)、所述邏輯單元對 應的控制器ID及所述邏輯單元的訪問頻率,所述訪問頻率包括每秒讀取所述邏 輯單元的次數和每秒寫入所述邏輯單元的次數,可簡稱為IOPS。系統中,每個控制器都會定期(例如,每10S)將邏輯單元的這些信息上 傳至遷移管理模塊。當一個控制器上面的總的IOPS達到一個臨界值,比如一個N個控制器的 系統中,每個控制器的理想負載是1/N,如果負載超過了 1/N的60% (0.618), 即負載達到或者超過1.618/N的時候就從所述控制器中選取IOPS最高的邏輯單 元遷移到系統中總IOPS最低的控制器,并重復該過程只到所述控制器上面的 總的IOPS低于1.618/N為止。請參考圖3,為本發明實施例一在分布式存儲中處理存儲熱點的方法的流 程示意圖,所述方法包括步驟S100:獲得控制器下邏輯單元的訪問頻率總和。在存儲系統中,包括有至少兩個控制器,每個控制器下包括至少兩個邏輯 單元,所述邏輯單元以上述映射表的形式便于系統確定其位置和狀態。所述邏 輯單元的信息包括邏輯單元的訪問頻率,即每秒讀寫所述邏輯單元的次數。每個控制器定期或者不定期地將所述控制器下的至少兩個邏輯單元的訪問 頻率上傳至遷移管理才莫塊,所述遷移管理才莫塊將所述控制器上傳的邏輯單元的 訪問頻率進^f亍加總獲得所述控制器下邏輯單元的訪問頻率總和。可以理解的是,所述遷移管理才莫塊也可以定期或不定期地訪問各個控制器, 從而獲得所述控制器下邏輯單元的訪問頻率總和。步驟S120:判斷所述獲得的訪問頻率總和是否大于預先設置的訪問頻率閾值。在存儲系統中,每個控制器設有一個訪問頻率閾值,如果控制器下的邏輯 單元的訪問頻率總和超過這個閾值,則所述控制器就被認為是熱點控制器,表 示所述控制器下邏輯單元的訪問頻率過高,可能會影響系統的整體性能。在本發明實施例中,假設有存儲中有N個控制器,每個控制器的理想負載是1/N,則預先設定訪問頻率閾值是1.618/N,所述遷移管理模塊將所述獲得的 訪問頻率總和與所述訪問頻率閾值1.618/N進行比較,判斷所述獲得的訪問頻 率總和是否大于所述預先設置的訪問頻率閾值1.618/N,當判斷為是時,執行步 驟S140;當判斷為否時,結束流程。步驟S140:將所述控制器下訪問頻率最高的邏輯單元遷移到訪問頻率總和 最小的控制器。當步驟S130判斷所述獲得的訪問頻率總和大于預先設置的訪問頻率闊值 時,即所述控制器的負載達到或者超過1.618/N時,所述控制器就被認為是熱 點控制器,所述遷移管理模塊從所述控制器中選取IOPS最高的邏輯單元遷移 到系統中總IOPS最低的控制器。在執行步驟S140后,由于已經將所述控制器中IOPS最高的邏輯單元遷移 到其他控制器,則所述控制器下邏輯單元的訪問頻率總和就會減小,即所述控 制器的負載也相應減小,但是此次的邏輯單元遷移后,所述控制器下邏輯單元 的訪問頻率總和可能仍舊大于預先設置的訪問頻率閾值,因此在執行步驟S140 后,返回到步驟S120,即繼續獲得所述控制器下邏輯單元的訪問頻率總和,并 重復上述步驟只到所述控制器下邏輯單元的訪問頻率總和低于預先設置的訪問 頻率閾值為止。本發明實施例在判斷控制器下邏輯單元的訪問頻率總和大于所述預先設置 的訪問頻率閾值時,將所述控制器下訪問頻率最高的邏輯單元遷移到訪問頻率 總和最小的控制器,減少所述控制器下邏輯單元的訪問頻率總和,從而實現邏 輯單元在控制器之間的動態遷移,有效減少了物理》茲盤的熱點。8請參考圖4,為本發明實施例二在分布式存儲中處理存儲熱點的方法的流 程示意圖,其與本發明實施例一在分布式存儲中處理存儲熱點的方法相似,不同在于在步驟120判斷為否時,進一步包括步驟160:判斷存儲系統中是否 還有其他控制器,如果還有其他控制器,則返回執行步驟S120;若判斷存儲系 統中沒有其他控制器,則流程結束。通過判斷存儲系統中是否還有其他控制器, 可一次遍歷所述存儲系統中的所有控制器,進而循環執行本發明實施例一的步 驟實現所述存^f諸系統中所有控制器的熱點處理。請參考圖5,為本發明實施例在分布式存儲中處理存儲熱點的系統的結構 示意圖,所述系統包括遷移管理模塊40及與所述遷移管理模塊連接的至少兩個 控制器,如控制器51、控制器5n,每一控制器控制至少兩個邏輯單元,如圖所 示,所述控制器51控制邏輯單元511、邏輯單元512、邏輯單元51n。 所述遷移管理模塊40包括獲得單元42、判斷單元44及遷移單元46。 所述獲得單元42,用于獲得控制器下邏輯單元的訪問頻率總和。與所述遷 移管理模塊40連接的控制器51會定期或者不定期地將所述控制器51下的至少 兩個邏輯單元的訪問頻率上傳至遷移管理^:莫塊,所述獲得單元42可將所述控制器51上傳的訪問頻率加總獲得所述控制器下邏輯單元的訪問頻率總和。可以理解的是,所述獲得單元42還可主動訪問各個控制器,從而獲得所述控制器51下邏輯單元的訪問頻率總和。所述判斷單元44,用于判斷所述獲得的訪問頻率總和是否大于預先設置的訪問頻率閾值。在存儲系統中,每個控制器設有一個訪問頻率闞值,如果控制器下的邏輯 單元的訪問頻率總和超過這個闊值,則所述控制器就被認為是熱點控制器,表 示所述控制器下邏輯單元的訪問頻率過高,可能會影響系統的整體性能。在本發明實施例中,,I設有存儲中有N個控制器,每個控制器的理想負載 是1/N,則預先設定訪問頻率閾值是1.618/N,所述判斷單元44將所述獲得的 訪問頻率總和與所述訪問頻率閾值1.618/N進行比較,判斷所述獲得的訪問頻率總和是否大于所述預先設置的訪問頻率閾值1.618/N。所述遷移單元46,用于在所述判斷單元44判斷所述獲得的訪問頻率總和 大于預先設置的訪問頻率閾值時,將所述控制器下訪問頻率最高的邏輯單元遷 移到訪問頻率總和最小的控制器。當所述判斷單元44判斷所述獲得的訪問頻率總和大于預先設置的訪問頻 率閾值時,即所述控制器的負載達到或者超過1.618/N時,所述控制器就被認 為是熱點控制器,所述遷移管理模塊從所述控制器中選取IOPS最高的邏輯單 元遷移到系統中總IOPS最低的控制器。在所述判斷單元44判斷所述控制器51下邏輯單元511、 512......51n的訪問頻率總和大于預先設置的訪問頻率閾值時,所述遷移單元46將所述控制器51下訪問頻率最高的邏輯單元511遷移到訪問 頻率總和最小的控制器5n,如圖6所示。所述遷移單元46將所述控制器下訪問頻率最高的邏輯單元遷移到訪問頻 率總和最小的控制器后,所述獲得單元42繼續獲得所述控制器下邏輯單元的訪 問頻率總和,然后所述判斷單元44繼續判斷所述獲得的訪問頻率總和是否大于 預先設置的訪問頻率閾值,在判斷為是時,所述遷移單元46將所述控制器下訪 問頻率最高的邏輯單元遷移到訪問頻率總和最小的控制器,如此循環直至所述 獲得的訪問頻率總和是小于預先設置的訪問頻率閾值,從而實現所述控制器熱 點的處理,進而有效消除物理》茲盤的熱點。本發明實施例在判斷控制器下邏輯單元的訪問頻率總和大于所述預先設置 的訪問頻率閾值時,將所述控制器下訪問頻率最高的邏輯單元遷移到訪問頻率 總和最小的控制器,減少所述控制器下邏輯單元的訪問頻率總和,從而實現邏 輯單元在控制器之間的動態遷移,有效減少了物理-茲盤的熱點。上述過程只是消除了 一個控制器的熱點問題,存儲系統中 一般包括至少兩 個控制器,所以在另一實施例中,所述判斷單元44在判斷所述獲得的訪問頻率 總和不大于預先設置的訪問頻率闊值時,所述判斷單元44進一步判斷存儲系統 中是否還有其他控制器,如果還有其他控制器則所述獲得單元42進一步用于獲10得存儲系統中其他控制器下邏輯單元的訪問頻率總和,然后所述判斷單元44 繼續判斷所述獲得的訪問頻率總和是否大于預先設置的訪問頻率閾值,在判斷為是時,所述遷移單元46將所述控制器下訪問頻率最高的邏輯單元遷移到訪問頻率總和最小的控制器,如此循環直至所述獲得的訪問頻率總和是小于預先設 置的訪問頻率闊值,>^人而實現所述存儲系統中所有控制器的熱點處理。本領域普通技術人員可以理解實現上述實施例方法中的全部或部分流程, 是可以通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于一計算 機可讀取存儲介質中,該程序在執行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory, ROM)或隨機存儲記憶體(RandomAccess Memory, RAM)等。以上所述,僅為本發明較佳的具體實施方式
,但本發明的保護范圍并不局 限于此,任何熟悉本技術領域的技術人員在本發明揭露的技術范圍內,可輕易 想到的變化或替換,都應涵蓋在本發明的保護范圍之內。因此,本發明的保護 范圍應該以權利要求的保護范圍為準。
權利要求
1、一種在分布式存儲中處理存儲熱點的方法,包括獲得控制器下邏輯單元的訪問頻率總和;判斷所述獲得的訪問頻率總和是否大于預先設置的訪問頻率閾值;當判斷所述獲得的訪問頻率總和大于所述預先設置的訪問頻率閾值時,將所述控制器下訪問頻率最高的邏輯單元遷移到訪問頻率總和最小的控制器。
2、 如權利要求1所述的方法,其特征在于在執行所述遷移步驟后, 繼續執行所述獲得控制器下邏輯單元的訪問頻率總和的步驟。
3、 如權利要求2所述的方法,其特征在于在判斷所述獲得的訪問頻 率總和不大于預先設置的訪問頻率閾值時,還包括判斷存儲系統中是否還有其他控制器,如果還有其他控制器,則返回執 行所述獲得控制器下邏輯單元的訪問頻率總和的步驟。
4、 一種在分布式存儲中處理存儲熱點的裝置,包括 獲得單元,用于獲得控制器下邏輯單元的訪問頻率總和;判斷單元,用于判斷所述獲得的訪問頻率總和是否大于預先設置的訪問 頻率閾值;遷移單元,用于在所述判斷單元判斷所述獲得的訪問頻率總和大于預先 設置的訪問頻率閾值時,將所述控制器下訪問頻率最高的邏輯單元遷移到訪 問頻率總和最小的控制器。
5、 如權利要求4所述的裝置,其特征在于所述遷移單元將所述控制 器下訪問頻率最高的邏輯單元遷移到訪問頻率總和最小的控制器后,所述獲 得單元繼續獲得所述控制器下邏輯單元的訪問頻率總和。
6、 如權利要求5所述的裝置,其特征在于所述判斷單元在判斷所述 獲得的訪問頻率總和不大于預先設置的訪問頻率閾值時,所述判斷單元進一步判斷存儲系統中是否還有其他控制器,如果還有其他控制器則所述獲得單 元進一步用于獲得存儲系統中其他控制器下邏輯單元的訪問頻率總和。
7、 一種系統,包括遷移管理模塊及與所述遷移管理模塊連接的至少兩 個控制器,每一控制器控制至少兩個邏輯單元,所述遷移管理模塊包括獲得 單元、判斷單元及遷移單元,所述獲得單元,用于獲得所述控制器下邏輯單元的訪問頻率總和;所述判斷單元,用于判斷所述獲得的訪問頻率總和是否大于預先設置的訪問頻率閾值;所述遷移單元,用于在所述判斷單元判斷所述獲得的訪問頻率總和大于 預先設置的訪問頻率閾值時,將所述控制器下訪問頻率最高的邏輯單元遷移 到訪問頻率總和最小的控制器。
8、 如權利要求7所述的系統,其特征在于所述遷移單元將所述控制 器下訪問頻率最高的邏輯單元遷移到訪問頻率總和最小的控制器后,所述獲 得單元繼續獲得所述控制器下邏輯單元的訪問頻率總和。
9、 如權利要求8所述的系統,其特征在于所述判斷單元在判斷所述 獲得的訪問頻率總和不大于預先設置的訪問頻率閾值時,所述判斷單元進一 步判斷存儲系統中是否還有其他控制器,如果還有其他控制器則所述獲得單 元進一步用于獲得存儲系統中其他控制器下邏輯單元的訪問頻率總和。
全文摘要
本發明實施例提供一種在分布式存儲中處理存儲熱點的方法,包括獲得控制器下邏輯單元的訪問頻率總和;判斷所述獲得的訪問頻率總和是否大于預先設置的訪問頻率閾值;當判斷所述獲得的訪問頻率總和大于所述預先設置的訪問頻率閾值時,將所述控制器下訪問頻率最高的邏輯單元遷移到訪問頻率總和最小的控制器。本發明實施例在判斷控制器下邏輯單元的訪問頻率總和大于所述預先設置的訪問頻率閾值時,將所述控制器下訪問頻率最高的邏輯單元遷移到訪問頻率總和最小的控制器,減少所述控制器下邏輯單元的訪問頻率總和,從而實現邏輯單元在控制器之間的動態遷移,有效減少了物理磁盤的熱點。
文檔編號H04L29/08GK101582013SQ200910059578
公開日2009年11月18日 申請日期2009年6月10日 優先權日2009年6月10日
發明者羅姣林 申請人:成都市華為賽門鐵克科技有限公司