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