專利名稱:一種自適應(yīng)數(shù)據(jù)存儲優(yōu)化分布方法
技術(shù)領(lǐng)域:
本發(fā)明屬于數(shù)據(jù)存儲技術(shù)領(lǐng)域,具體涉及一種自適應(yīng)數(shù)據(jù)存儲優(yōu)化分布方法,即一種在海量存儲環(huán)境中管理存儲資源的技術(shù)。
雖然上述技術(shù)發(fā)展日新月異,它還存在以下幾個(gè)方面的問題第一、現(xiàn)有系統(tǒng)有一個(gè)普遍存在的矛盾,即元部件的飛速發(fā)展和整體結(jié)構(gòu)相對固定的矛盾。以最新的磁盤陣列技術(shù)為例,它的構(gòu)成元部件是磁盤,一旦某個(gè)磁盤出故障,它會在備份的新盤上重構(gòu)丟失的數(shù)據(jù)。然而,無論新盤在速度上和容量上比其它舊盤高出多少倍,重構(gòu)后的磁盤陣列總體性能不會有絲毫提高。目前結(jié)構(gòu)的存儲系統(tǒng)不會由于更新了部件而得到整體性能的提高。因而,隨著技術(shù)的進(jìn)步,這種性能停滯不前的系統(tǒng)很快就會過時(shí),用戶不得不購買新的系統(tǒng)來滿足應(yīng)用新的需求;第二、系統(tǒng)結(jié)構(gòu)的組織方式較為固定,不能適應(yīng)應(yīng)用的多樣性和動態(tài)性。例如,磁盤陣列的級別(RAID level)一般設(shè)定好后就固定下來,難以適應(yīng)各種不同性質(zhì)的應(yīng)用,如對事務(wù)處理設(shè)定了RAID5而具有較高的性能,但對流媒體的應(yīng)用就不大合適。
上述問題存在的原因在于現(xiàn)有存儲系統(tǒng)物理和邏輯的組織是一種靜態(tài)的結(jié)構(gòu),而靜態(tài)組織結(jié)構(gòu)模型不能很好地刻畫處于不斷變化之中的系統(tǒng)。這種結(jié)構(gòu)往往適合于特定的應(yīng)用需要,而且缺少適應(yīng)不斷變化的存儲要求的機(jī)制。
在此之前,已有一些相關(guān)技術(shù)被提出來解決對存儲資源的優(yōu)化和管理。
例如,惠普公司開發(fā)的AutoRAID技術(shù),見HP whitepaper,《HP AutoRAIDHigh-Performance Storage for the High-Availability NT Environment》,http//www hp.com.cn/prodserv/server/pcserver/whitepaper/DOCS/autoraid.pdf,該技術(shù)是綜合了不同RAID優(yōu)點(diǎn)的多級RAID陣列技術(shù),它將最近使用的數(shù)據(jù)放在按RAID 0/1方式存儲的快速高性能的磁盤中,將不太常用的數(shù)據(jù)放在RAID5方式存儲的經(jīng)濟(jì)高效的磁盤中。AutoRAID技術(shù)可以使系統(tǒng)的安裝、配置和擴(kuò)展變得容易,該技術(shù)不再需要將數(shù)據(jù)轉(zhuǎn)移到陣列中的其他磁盤上,只需將新磁盤安裝好,AutoRAID就可以自動地判斷磁盤大小,并將它加入磁盤陣列中;系統(tǒng)馬上就可以利用新磁盤的空間,并將更多的數(shù)據(jù)按RAID 0/1方式存儲,以提高系統(tǒng)的性能和存取速度。此外,AutoRAID能夠管理由不同容量磁盤組成的磁盤陣列。動態(tài)數(shù)據(jù)轉(zhuǎn)移是HPAutoRAID的一大特點(diǎn),它是系統(tǒng)內(nèi)部的一套控制機(jī)構(gòu),能夠連續(xù)監(jiān)視磁盤陣列的性能,并決定是否將數(shù)據(jù)保持在緩存中、是否將數(shù)據(jù)按RAID1存儲、是否將數(shù)據(jù)寫入RAID5陣列。這些控制機(jī)構(gòu)能夠適應(yīng)不同的數(shù)據(jù)情況,并保持系統(tǒng)的高性能。對于工作環(huán)境不斷變化的場合,這一特點(diǎn)極為有用。
但是,該技術(shù)僅僅根據(jù)應(yīng)用對數(shù)據(jù)使用頻度的不同,必須在一定的RAID級別上對存儲資源加以優(yōu)化,因此效果還十分有限。
為實(shí)現(xiàn)上述發(fā)明目的,一種自適應(yīng)數(shù)據(jù)存儲優(yōu)化分布方法,其步驟為(1)系統(tǒng)對輸入輸出數(shù)據(jù)進(jìn)化分析,統(tǒng)計(jì)數(shù)據(jù)使用頻率;(2)判斷該數(shù)據(jù)是否為第一次使用(2.1)如果是,將該存放至實(shí)際性能平均的存儲設(shè)備簇上;(2.2.1)否則,若該數(shù)據(jù)的使用率高,將數(shù)據(jù)遷移至性能更好的存儲設(shè)備簇,反之,向性能差的設(shè)備簇遷移;(2.2.2)當(dāng)某一存儲設(shè)備簇的負(fù)載過重時(shí),將部分?jǐn)?shù)據(jù)放置到較為空閑的存儲設(shè)備簇;當(dāng)某一存儲設(shè)備簇的負(fù)載較低時(shí),重構(gòu)存儲設(shè)備簇中的數(shù)據(jù);(3)重復(fù)步驟(1)、(2),直至任務(wù)結(jié)束。
使用本發(fā)明方法,進(jìn)化存儲系統(tǒng)能夠根據(jù)當(dāng)前系統(tǒng)中所有存儲設(shè)備的容量和性能狀況,結(jié)合I/O數(shù)據(jù)的使用頻率和分布特征,按照合適的策略對數(shù)據(jù)進(jìn)行分布,加快經(jīng)常使用的數(shù)據(jù)的存取性能,從而提高了整個(gè)進(jìn)化存儲系統(tǒng)的工作性能,達(dá)到系統(tǒng)自適應(yīng)進(jìn)化的目的。
在存儲庫2中,所有存儲設(shè)備處于三種狀態(tài)運(yùn)行,待機(jī)和禁用。
運(yùn)行池中的存儲設(shè)備按照存儲設(shè)備簇的方式存放。存儲設(shè)備簇是系統(tǒng)中基本的邏輯存儲單位,提供一個(gè)相對穩(wěn)定和線性的存儲空間,它是由一個(gè)或者多個(gè)同構(gòu)的物理存儲設(shè)備的集合。同一存儲設(shè)備簇中的存儲設(shè)備具有相近的存儲容量和物理存儲性能。不同存儲設(shè)備簇可以有不同的存儲參數(shù),如數(shù)據(jù)塊大小。存儲設(shè)備簇中的存儲設(shè)備在物理上不一定相鄰。每個(gè)存儲設(shè)備簇中存儲設(shè)備的數(shù)量可以動態(tài)改變,最少可以是一個(gè)。在保證可靠的存儲空間的基礎(chǔ)上,存儲設(shè)備簇中的存儲設(shè)備可以被另一個(gè)性能相近的存儲設(shè)備替換。當(dāng)存儲設(shè)備簇中的存儲設(shè)備數(shù)量變化或發(fā)生存儲設(shè)備替換時(shí),系統(tǒng)自動重構(gòu)數(shù)據(jù)。存儲設(shè)備簇以數(shù)據(jù)塊的形式提供數(shù)據(jù)存取。
在工作中,處理器3,通過采用SCSI協(xié)議的SCSI總線,或者通過采用光纖通道協(xié)議的光纖,與存儲庫2連通,并將從處理器3接受到的數(shù)據(jù)傳送到存儲庫2處,再將數(shù)據(jù)從存儲庫2中傳送出來送給處理器3。
處理器3對存儲庫2中的物理存儲設(shè)備4的工作性能進(jìn)行實(shí)時(shí)監(jiān)控,根據(jù)結(jié)果決定存儲設(shè)備在存儲庫中的運(yùn)行狀態(tài)。同時(shí)對存儲庫2的輸入輸出數(shù)據(jù)進(jìn)行特征分析,以決定數(shù)據(jù)在物理存儲設(shè)備上的位置分布。
如圖2所示,在工作中,計(jì)算機(jī)節(jié)點(diǎn)1傳入的數(shù)據(jù)經(jīng)過存儲服務(wù)模塊10傳送到存儲庫2中,并通過該模塊接收從存儲庫2中返回的數(shù)據(jù),輸出到計(jì)算機(jī)節(jié)點(diǎn)1,對外界提供可靠的存儲服務(wù)。同時(shí)模塊10對I/O數(shù)據(jù)進(jìn)行采樣,將采樣數(shù)據(jù)傳給數(shù)據(jù)I/O及分布特征分析模塊9,由該模塊對I/O數(shù)據(jù)的使用頻率及該數(shù)據(jù)在存儲庫中的物理位置分布特征進(jìn)行統(tǒng)計(jì)分析,將分析結(jié)果傳送給決策分析模塊8。存儲設(shè)備管理模塊7負(fù)責(zé)對存儲庫2中的存儲設(shè)備進(jìn)行管理,維護(hù)存儲設(shè)備4的LDU標(biāo)識與位置號的映射關(guān)系表,并完成決策分析模塊8發(fā)送過來的操作命令。模塊7還對存儲庫2中的物理存儲設(shè)備4的運(yùn)行狀態(tài)信息進(jìn)行實(shí)時(shí)采樣分析,并將性能分析結(jié)果傳送給決策分析模塊8。
決策分析模塊8綜合從模塊9傳送來的I/O數(shù)據(jù)的使用頻率和分布特征結(jié)果,與從模塊7傳送來的存儲設(shè)備工作性能結(jié)果,在進(jìn)化規(guī)則庫11中選擇適合當(dāng)前運(yùn)行狀況的進(jìn)化規(guī)則,得到該規(guī)則中制定的控制信息,將控制命令發(fā)送到存儲設(shè)備管理模塊7,由存儲設(shè)備管理模塊7對存儲庫中的數(shù)據(jù)重新進(jìn)行分布或?qū)Υ鎯υO(shè)備進(jìn)行再生處理。如果進(jìn)化規(guī)則庫11中有多條適用的進(jìn)化規(guī)則,則讓這幾條規(guī)則進(jìn)行競爭,即發(fā)送每條規(guī)則的測試數(shù)據(jù)到存儲庫中,根據(jù)返回的性能測試結(jié)果選擇最佳的規(guī)則來優(yōu)化系統(tǒng)。以自動優(yōu)化存儲系統(tǒng)工作性能,實(shí)現(xiàn)系統(tǒng)自身的進(jìn)化功能。
在工作過程中,模塊9將系統(tǒng)I/O及分布特征分析結(jié)果實(shí)時(shí)傳送到用戶管理模塊12,以便用戶對系統(tǒng)的數(shù)據(jù)I/O特征進(jìn)行監(jiān)控。同樣存儲設(shè)備管理模塊7將收集到的存儲庫2中的物理存儲設(shè)備4的運(yùn)行狀態(tài)信息實(shí)時(shí)傳送到用戶管理模塊12。用戶可以根據(jù)收集到的所有系統(tǒng)信息對系統(tǒng)運(yùn)行狀況做出分析,可以根據(jù)需要直接發(fā)送系統(tǒng)控制命令到?jīng)Q策分析模塊8,以便對系統(tǒng)進(jìn)行性能優(yōu)化。例如可以手工將某個(gè)使用率較高的應(yīng)用的數(shù)據(jù)統(tǒng)一遷移到性能較高的物理存儲設(shè)備上。
在工作過程中,由于系統(tǒng)會根據(jù)自身狀況和外界的數(shù)據(jù)訪問特征動態(tài)調(diào)整數(shù)據(jù)的分布策略,因此決策分析模塊8會實(shí)時(shí)將存儲庫2中的數(shù)據(jù)分布信息傳給存儲服務(wù)模塊10,以便存儲服務(wù)模塊能夠?qū)ν饨缣峁┛煽康拇鎯Ψ?wù)。
管理員在進(jìn)化存儲系統(tǒng)運(yùn)行過程中,可以通過用戶管理模塊12對進(jìn)化規(guī)則庫11進(jìn)行維護(hù)。根據(jù)存儲系統(tǒng)的運(yùn)行狀態(tài),如果發(fā)現(xiàn)需要添加新的進(jìn)化規(guī)則,則可以通過用戶管理模塊12加入新的進(jìn)化規(guī)則,添加到進(jìn)化規(guī)則庫11中。同樣也可以修改或刪除不適用的進(jìn)化規(guī)則。
圖2中各模塊均設(shè)置在處理器中,但用戶管理模塊12也可以設(shè)置在計(jì)算機(jī)節(jié)點(diǎn)上。
圖3描述的是本發(fā)明方法的實(shí)施例的流程圖,該方法用于對存儲系統(tǒng)中數(shù)據(jù)分布進(jìn)行優(yōu)化。在步驟602中,系統(tǒng)對存儲設(shè)備簇的物理性能作排隊(duì),統(tǒng)計(jì)分析輸入輸出數(shù)據(jù)的使用頻率和數(shù)據(jù)的分布特征。接下來在步驟604中,判斷該輸入輸出數(shù)據(jù)是否為第一次使用。如是第一次使用,則轉(zhuǎn)入步驟606;否則,轉(zhuǎn)入步驟608。在步驟606中,將該輸入數(shù)據(jù)存入實(shí)際性能平均的存儲設(shè)備簇上。在步驟608中,根據(jù)該數(shù)據(jù)的使用頻率進(jìn)行不同操作。在系統(tǒng)空閑時(shí),若該數(shù)據(jù)的使用率高則向性能更好的存儲設(shè)備簇遷移;反之則向性能差的存儲設(shè)備遷移。在步驟610中,當(dāng)某一存儲設(shè)備簇的負(fù)載過重時(shí),將部分?jǐn)?shù)據(jù)放置到較為空閑的存儲設(shè)備簇上;當(dāng)某一存儲設(shè)備簇負(fù)載較低時(shí),重構(gòu)存儲設(shè)備簇中的數(shù)據(jù),對該數(shù)據(jù)進(jìn)行重新分布。此方法主要在系統(tǒng)空閑時(shí)進(jìn)行,數(shù)據(jù)遷移時(shí)必須保證數(shù)據(jù)的一致性。通過以上步驟,系統(tǒng)在不增加新的存儲設(shè)備的基礎(chǔ)上,加快經(jīng)常使用的數(shù)據(jù)的存取性能,從而優(yōu)化了整個(gè)系統(tǒng)的性能,達(dá)到系統(tǒng)進(jìn)化的目的。
盡管已經(jīng)詳細(xì)描述了本發(fā)明公開的實(shí)施例,但應(yīng)理解在不脫離其構(gòu)思和范圍的情況下,本發(fā)明的實(shí)施例還有各種變化,替代和修改。
權(quán)利要求
1.一種自適應(yīng)數(shù)據(jù)存儲優(yōu)化分布方法,其步驟為(1)系統(tǒng)對輸入輸出數(shù)據(jù)進(jìn)化分析,統(tǒng)計(jì)數(shù)據(jù)使用頻率;(2)判斷該數(shù)據(jù)是否為第一次使用(2.1)如果是,將該存放至實(shí)際性能平均的存儲設(shè)備簇上;(2.2.1)否則,若該數(shù)據(jù)的使用率高,將數(shù)據(jù)遷移至性能更好的存儲設(shè)備簇,反之,向性能差的設(shè)備簇遷移;(2.2.2)當(dāng)某一存儲設(shè)備簇的負(fù)載過重時(shí),將部分?jǐn)?shù)據(jù)放置到較為空閑的存儲設(shè)備簇;當(dāng)某一存儲設(shè)備簇的負(fù)載較低時(shí),重構(gòu)存儲設(shè)備簇中的數(shù)據(jù);(3)重復(fù)步驟(1)、(2),直至任務(wù)結(jié)束。
全文摘要
本發(fā)明公開了一種自適應(yīng)數(shù)據(jù)存儲優(yōu)化分布方法,其步驟為①系統(tǒng)對輸入輸出數(shù)據(jù)進(jìn)化分析,統(tǒng)計(jì)數(shù)據(jù)使用頻率。②判斷該數(shù)據(jù)是否為第一次使用如果是,將該存放至實(shí)際性能平均的存儲設(shè)備簇上;否則,若該數(shù)據(jù)的使用率高,將數(shù)據(jù)遷移至性能更好的存儲設(shè)備簇,反之,向性能差的設(shè)備簇遷移;當(dāng)某一存儲設(shè)備簇的負(fù)載過重時(shí),將部分?jǐn)?shù)據(jù)放置到較為空閑的存儲設(shè)備簇;當(dāng)某一存儲設(shè)備簇的負(fù)載較低時(shí),重構(gòu)存儲設(shè)備簇中的數(shù)據(jù)。③重復(fù)步驟①、②。使用本發(fā)明,系統(tǒng)能夠根據(jù)當(dāng)前系統(tǒng)中所有存儲設(shè)備的容量和性能狀況,結(jié)合I/O數(shù)據(jù)的使用頻率和分布特征,按照合適的策略對數(shù)據(jù)進(jìn)行分布,加快經(jīng)常使用的數(shù)據(jù)的存取性能,提高了整個(gè)系統(tǒng)的工作性能,達(dá)到系統(tǒng)自適應(yīng)進(jìn)化的目的。
文檔編號G06F12/06GK1445678SQ03119019
公開日2003年10月1日 申請日期2003年4月30日 優(yōu)先權(quán)日2003年4月30日
發(fā)明者謝長生, 曹強(qiáng), 劉瑞芳, 王宇德, 譚志虎 申請人:華中科技大學(xué)