在大規(guī)模文件系統(tǒng)中,大多數(shù)文件長期不用,少數(shù)文件經(jīng)常使用,就單個文件來說,剛創(chuàng)建之后的一段時間內(nèi)訪問頻率最高;隨著時間推移,訪問頻率下降,鑒于不同數(shù)據(jù)之間存在著顯著的訪問頻率差異,人們提出了分級存儲系統(tǒng),它由具有不同的存儲容量、I/O速度、單位價格的多級存儲設(shè)備構(gòu)成;按照近期訪問情況的不同,將數(shù)據(jù)存放到合適的存儲設(shè)備上,目標(biāo)是在滿足存儲容量和硬件成本約束的前提下,提供較高的I/O性能。
在分級存儲系統(tǒng)中,數(shù)據(jù)的訪問頻率和服務(wù)質(zhì)量需求是不斷變化的,為了使數(shù)據(jù)能夠與存儲設(shè)備動態(tài)匹配,需要在不同級別的存儲設(shè)備之間遷移數(shù)據(jù),數(shù)據(jù)遷移的規(guī)則通常由數(shù)據(jù)的訪問頻率、存儲設(shè)備的容量和性能等因素確定,這就要求分級存儲系統(tǒng)能夠檢測到數(shù)據(jù)狀態(tài)的變化,并進(jìn)行數(shù)據(jù)在線遷移,同時,數(shù)據(jù)位置的移動需要對應(yīng)用是透明的,數(shù)據(jù)遷移過程對于應(yīng)用I/O性能影響不大。
現(xiàn)有的分級存儲系統(tǒng)中的數(shù)據(jù)遷移方法對前臺I/O性能影響較大,原因包括數(shù)據(jù)分級只考慮文件的創(chuàng)建時間、上次訪問時間或文件大小等單一因素;數(shù)據(jù)訪問缺失則觸發(fā)數(shù)據(jù)升級活動,造成數(shù)據(jù)遷移量較大;數(shù)據(jù)降級遷移過程缺乏自動控制。
本文提出了分級存儲系統(tǒng)中一種數(shù)據(jù)自動遷移方法AutoMig,它綜合考慮了文件訪問歷史、文件大小、設(shè)備的空間利用情況、文件關(guān)聯(lián)性等因素,對文件進(jìn)行動態(tài)分級,并在數(shù)據(jù)遷移過程中,根據(jù)負(fù)載變化自適應(yīng)地調(diào)整遷移速率,在實際系統(tǒng)中的實驗表明:與已有方法相比,AutoMig有效縮短了前臺I/O響應(yīng)時間。
1 相關(guān)工作
He等人提出了一種基于面向?qū)ο笪募到y(tǒng)Lustre的分級存儲系統(tǒng),數(shù)據(jù)從磁帶到磁盤的遷移是由訪問缺失觸發(fā)的,缺點是升級的文件過多,SANBoost系統(tǒng)口3使用SSD設(shè)備和磁盤構(gòu)成兩級存儲系統(tǒng),它引入一個遷移閾值以減少數(shù)據(jù)遷移量,只有用戶訪問達(dá)到一定次數(shù)后才進(jìn)行遷移。
有效的數(shù)據(jù)預(yù)取能夠降低I/O訪問延遲,而錯誤的預(yù)取只會干擾前臺I/O負(fù)載,已經(jīng)有一些數(shù)據(jù)預(yù)取算法,如穩(wěn)固后繼預(yù)測方法、首次穩(wěn)固后繼、最近最常見預(yù)測方法等,它們的缺點是只預(yù)測下一個訪問,可用于預(yù)取的時間間隙很短。
降級遷移算法需要選擇遷移哪些文件到慢速設(shè)備,現(xiàn)有的降級遷移算法主要包括FIFO,LRU,size—only,space—time和file—aging,space—time算法根據(jù)文件大小和文件上次使用間隔的乘積來分級,file-aging算法根據(jù)文件上次使用時間、文件大小和以前計算的遷移值來計算當(dāng)前的遷移值,應(yīng)用在Web文件緩存中的GreedyDualSize替換算法,根據(jù)文件的時效性、大小和預(yù)取成本給出文件替換決策。
分級存儲系統(tǒng)TH—TS中實現(xiàn)了一種自動的數(shù)據(jù)遷移方法CuteMig,它的缺點是沒有考慮文件訪問之間的關(guān)聯(lián)性。
在數(shù)據(jù)遷移速率控制方面,第1種方式在保證數(shù)據(jù)遷移期限的前提下,盡量使用磁盤的空閑周期進(jìn)行數(shù)據(jù)遷移,第2種方式MS Manners,當(dāng)檢測到非重要進(jìn)程的前進(jìn)速度放緩時,進(jìn)一步降低它的運行速率,第3種方式Aqueduct把存儲系統(tǒng)看作一個黑盒子,只測量應(yīng)用所察覺到的性能,因此無法迅速檢測到存儲系統(tǒng)上的應(yīng)用負(fù)載的變化,第4種方式是用收益最大化框架來解決數(shù)據(jù)遷移問題,缺點是需要事先詳細(xì)掌握系統(tǒng)特性和負(fù)載特征,從而使該方法受到一定的實用性限制。
2 數(shù)據(jù)遷移方法AutoMig
數(shù)據(jù)自動遷移方法AutoMig由3部分組成:1)數(shù)據(jù)動態(tài)分級策略,數(shù)據(jù)分級的改變觸發(fā)數(shù)據(jù)的遷移;2)關(guān)聯(lián)文件挖掘技術(shù),關(guān)聯(lián)的文件用于自動預(yù);3)遷移過程中的速率控制,在前臺I/O性能影響和數(shù)據(jù)遷移完成期限之間尋找合理的權(quán)衡。
2.1數(shù)據(jù)動態(tài)分級策略
AutoMig中的數(shù)據(jù)分級評價包括文件升級評價和文件降級評價2部分。
AutoMig根據(jù)數(shù)據(jù)升級的單位成本收益效率來決定是否對文件執(zhí)行升級操作,文件升級的收益效率用文件升級后單位時間內(nèi)被訪問的數(shù)據(jù)量來衡量,令A(yù)S和AF分別表示文件升級后的文件訪問大小和文件訪問頻率,則文件升級后的性能收益效率為AS×AF,文件升級的成本可以使用文件大小FS來衡量,由此,數(shù)據(jù)升級的單位成本收益效率(即效用值)計算為util=(AS×AF)/FS,如果一個文件的升級效用值高于升級閾值,則升級該文件。
在給出升級決策時,只有文件大小FS是確定的,AutoMig統(tǒng)計文件歷次訪問大小的平均值,作為未來訪問大小AS的估計值,為了能夠在文件訪問間隔的預(yù)測中體現(xiàn)變化趨勢,引入時效性因子(recency factor)概念,預(yù)測文件訪問間隔的公式為Ik=β×Ik-1+(1-β)×Mk,這里,M為第k次訪問間隔的測量值;β為時效性因子,因為0 <β<1,一次測量值對于未來預(yù)測值的貢獻(xiàn)隨著時間而以因子β衰減。
AutoMig降級算法的基本思想是,根據(jù)訪問情況在LRU隊列中維護快速存儲設(shè)備上的所有文件,一個降級線程每隔一定時間從LRU隊列中取出最冷的文件作為降級對象,該降級間隔時間長短與快速存儲設(shè)備的空間空閑率有關(guān)。
AutoMig的數(shù)據(jù)升級算法兼顧了文件訪問歷史和文件大小兩個指標(biāo),既使得文件遷移所需代價相對較小,也保證遷移后得到的文件I/O性能收益較高,降級間隔的確定方式保證了快速存儲設(shè)備始終有足夠的空閑空間,當(dāng)存儲在慢速存儲設(shè)備上的文件被訪問時,計算升級遷移的效用值;當(dāng)存儲在快速設(shè)備上的文件被訪問時,更新對應(yīng)LRU隊列狀態(tài),數(shù)據(jù)動態(tài)分級算法無需定期掃描所有文件以進(jìn)行文件價值評價,故增加的計算開銷不大。
2.2關(guān)聯(lián)文件挖掘技術(shù)
為了有效實現(xiàn)文件預(yù)取,AutoMig使用數(shù)據(jù)挖掘技術(shù)來有效識別系統(tǒng)中的文件關(guān)聯(lián)性,它把一個文件映射成一個項,把一個訪問序列映射成序列數(shù)據(jù)庫中的一個序列,一個頻繁子序列表示相關(guān)文件經(jīng)常一起被訪問。
一個文件能以各種方式訪問,除了打開關(guān)閉,還可能以進(jìn)程形式執(zhí)行,AutoMig通過記錄這些系統(tǒng)調(diào)用來構(gòu)建一個長的訪問trace. AutoMig采用簡單切割的方法把長trace切成許多短序列,AutoMig把問題轉(zhuǎn)化為挖掘頻繁閉合序列問題,采用挖掘算法BIDE,并作了一定程度的改進(jìn)。
BIDE算法本質(zhì)是以深度優(yōu)先的方式,一邊構(gòu)建頻繁子樹,一邊檢查閉合性,一邊進(jìn)行剪枝,BIDE算法實現(xiàn)的兩個關(guān)鍵任務(wù)是:1)閉合性檢查;2)搜索空間剪枝,BIDE算法采用了雙向擴展模式:向前擴展用于增長前綴模式和前綴模式的閉合性檢查;向后擴展用于前綴模式的閉合性檢查和搜索空間剪枝,對于當(dāng)前序列,BIDE向前掃描每個映射序列,找到局部頻繁項,對于每個局部頻繁項,檢查是否可以剪枝,如果不能剪枝則向前擴展當(dāng)前序列。
在AutoMig實現(xiàn)中,運用邏輯短路原理,對BIDE作了3點優(yōu)化:
1)閉合性檢查時,因為向前擴展檢查是容易完成的,故先做向前檢查,若“沒有向前擴展項”這一命題為假,則無需進(jìn)行向后檢查;
2)在每次進(jìn)行閉合性檢查時,都已經(jīng)有在半最大段組中搜索不到向后擴展項這一結(jié)論,如果該前綴序列的第一實例的最后一項和最后實例的最后一項位置相同,則不必檢查最大段就可斷定沒有向后擴展項;
3)眾多最大段組中只要得到一個最大段組中各序列交集非空即可斷定向后擴展項存在。
為了把頻繁序列轉(zhuǎn)換成關(guān)聯(lián)規(guī)則,AutoMig由每個序列生成一些規(guī)則,AutoMig規(guī)定一個規(guī)則右邊的項數(shù)為1,因為這對于文件預(yù)取是足夠的,為了限制規(guī)則數(shù)目,AutoMig約束一個規(guī)則左邊的項數(shù)不超過2。
AutoMig還用可信度參數(shù)來衡量規(guī)則的可依賴程度,一條規(guī)則a一b的可信度可以通過如下公式計算:conf(a-6)=sup(ab)/sup(a),這里,sup(a)和sup(ab)分別表示序列a和序列ab的支持度,當(dāng)用一條關(guān)聯(lián)規(guī)則來預(yù)測未來訪問時,規(guī)則的可信度表示預(yù)測的精度,AutoMig使用最小可信度閾值過濾低質(zhì)量的關(guān)聯(lián)規(guī)則,剩下的規(guī)則稱為強關(guān)聯(lián)規(guī)則。
把這些強關(guān)聯(lián)規(guī)則直接用于文件預(yù)取,存在嚴(yán)重的冗余現(xiàn)象,從而加重了維護和查找的成本,把前件長度為L的規(guī)則稱為“L_規(guī)則”,對于一條2-規(guī)則xy-z,AutoMig通過檢查是否存在同時滿足如下條件的1-規(guī)則a-b來判斷它是否為冗余規(guī)則:1)b=z,即有著相同后件;2)a-x或者a-y,即1-規(guī)則的前件與2一規(guī)則的前件中某項相同,AutoMig -旦檢測到冗余規(guī)則,就將其從規(guī)則集合中刪除,剩下非冗余的強關(guān)聯(lián)規(guī)則可以直接用于文件預(yù)取。
預(yù)取與升級文件相關(guān)聯(lián)的文件可以降低對這些文件的訪問延遲,然而,一個普遍擔(dān)心的是數(shù)據(jù)預(yù)取是否會影響正常數(shù)據(jù)升級的性能,AutoMig采取兩種方法來避免文件預(yù)取的性能影響,對于關(guān)聯(lián)的小文件組,在低級設(shè)備上集中存放,并采取升級捎帶的方式進(jìn)行預(yù)取,對于稍大的關(guān)聯(lián)文件,采取下面介紹的速率控制機制來保證在前臺負(fù)載較輕時執(zhí)行數(shù)據(jù)預(yù)取。
2.3 遷移速率控制機制
AutoMig中的遷移速率控制方法,將遷移任務(wù)劃分成緊急遷移和可控遷移2種,并采用不同的遷移速率控制策略,文件升級等任務(wù)比較緊迫,因而采用“盡力而為”的策略;降級任務(wù)、數(shù)據(jù)預(yù)取等任務(wù)相對不緊迫,可以進(jìn)行速率控制。
AutoMig的遷移速率控制的核心思想是反饋控制,系統(tǒng)檢測當(dāng)前存儲子系統(tǒng)的負(fù)載密集程度,相應(yīng)的調(diào)整遷移速率,從而平衡系統(tǒng)性能和遷移效率間的矛盾,圖1給出了反饋控制的邏輯示意圖,執(zhí)行器以一定速率執(zhí)行數(shù)據(jù)遷移操作,檢測器對存儲子系統(tǒng)進(jìn)行采樣,并把所得的負(fù)載信息W (k)傳遞給控制器,控制器比對W(k)和性能參照值,并通過控制函數(shù)來調(diào)整遷移速率,輸出新的遷移速率R(k)給執(zhí)行器,執(zhí)行器相應(yīng)地調(diào)整數(shù)據(jù)降級的速率。
圖1 反饋控制的邏輯示意圖
在分級存儲系統(tǒng)中,快速存儲設(shè)備往往負(fù)載較重,而慢速存儲設(shè)備一般是低負(fù)載或者無負(fù)載的,所以在速率控制過程中,主要考慮的是快速存儲設(shè)備所承受的IOPS。
控制器的性能參照值為W,它是快速存儲設(shè)備所能承受的最大負(fù)載,負(fù)載總量w由前臺I/O請求和遷移I/O請求兩部分組成,每個采樣周期,控制器得到存儲設(shè)備的負(fù)載參數(shù)W(k),首先,控制器計算W(k)與性能參照值之間的差值:E(k)=W-W(k),在得到E(k)之后,通過控制函數(shù)計算出新的遷移速率:R(k) =R(k-1)+E(k)。
AutoMig中的遷移速率控制方法將區(qū)別遷移需求和反饋控制思想相結(jié)合,根據(jù)前臺I/O負(fù)載變化,自適應(yīng)調(diào)整數(shù)據(jù)遷移速率,使得數(shù)據(jù)遷移動作本身對于前臺I/O性能的影響非常小,同時使得數(shù)據(jù)遷移任務(wù)能夠盡快完成。
3 性能測試
本文將數(shù)據(jù)自動遷移方法AutoMig應(yīng)用到分級存儲系統(tǒng)Tri-Right中,進(jìn)行了比較全面的性能測試。
3.1分級存儲系統(tǒng)原型
如圖2所示,Tri-Right采用帶外架構(gòu),并在文件系統(tǒng)內(nèi)部實現(xiàn),它由文件系統(tǒng)客戶端、元數(shù)據(jù)服務(wù)器和數(shù)據(jù)服務(wù)器組成,客戶端節(jié)點向用戶提供I/O訪問接口,它接收用戶的文件訪問請求;向元數(shù)據(jù)服務(wù)器讀寫相關(guān)文件的元數(shù)據(jù);向數(shù)據(jù)服務(wù)器讀寫相關(guān)文件的內(nèi)容;并最終把結(jié)果返回給用戶。
圖2 Tri-Right的系統(tǒng)架構(gòu)
元數(shù)據(jù)服務(wù)器維護所有文件的相關(guān)信息,包括文件數(shù)據(jù)在多個數(shù)據(jù)服務(wù)器上的分布情況等;根據(jù)文件訪問情況和設(shè)備分級信息,給出數(shù)據(jù)遷移的決策;根據(jù)數(shù)據(jù)服務(wù)器的負(fù)載情況進(jìn)行文件遷移的速率控制,數(shù)據(jù)服務(wù)器用來實際存儲分片后的文件數(shù)據(jù),它處理來自客戶端的文件I/0請求;把自身負(fù)載情況返回給元數(shù)據(jù)服務(wù)器;并在元數(shù)據(jù)服務(wù)器的指示下執(zhí)行文件的遷移操作。
核心關(guān)注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:分級存儲系統(tǒng)中一種數(shù)據(jù)自動遷移方法(上)
本文網(wǎng)址:http://www.ezxoed.cn/html/support/1112156920.html