對單個文件而言,在文件剛創建時訪問頻率最高;隨著時間的推移,訪問頻率下降,在大規模文件系統中,大多數文件長期不用,少數文件經常使用[1],利用海量數據之間存在的訪問頻度差異,人們開始研制分級存儲系統,它根據訪問負載的變化,將具有不同訪問特征的數據在具有不同性能、容量的存儲設備之間動態遷移,目標是在保證應用訪問性能的同時,實現低成本的數據存儲,分級存儲系統設計方面的研究已經發展多年[2,3],并取得較大進展,但是分級存儲系統性能測試方法卻依然非常滯后,性能測試的目標是:確定影響分級存儲系統性能的關鍵因素,從而可以有針對性地進行分析和改進;比較不同的分級存儲系統,為選取不同分級存儲系統提供參考,分級存儲系統性能測試包括兩個指標:一個是將具有不同價值的數據在不同性能存儲設備中分級存儲的能力,另外一個是分級存儲系統的I/O性能,分級存儲系統性能測試需要通過向具有真實狀態的分級存儲系統播放有代表性的訪問負載來完成,涉及兩個主要技術挑戰:創建真實的文件系統狀態、生成有代表性的負載。
生成有代表性負載的問題盡管還沒有徹底得到解決,但是已經朝著這個目標取得了顯著進步,文件系統訪問模式[4−6]和文件系統活動trace[7,8]的實驗研究已經推動了人造負載生成器[9,10]和trace重放方法[11,12]兩方面的研究進展,相對而言,創建對于目標使用場景而言是真實的文件系統狀態,也是更加困難的一個技術挑戰。
目前,還沒有令人滿意的分級存儲系統性能測試工具能夠提供可用的真實的文件系統場景以及配套的文件訪問記錄,已有的文件系統性能測試方法往往針對空白的文件系統播放典型的負載請求,然而,分級存儲系統處理的并不只是活躍的數據,而是整個文件系統內容,這種簡單的文件系統測試方法因為與分級存儲系統應用的真實環境不符而不適用,有人為分級存儲系統提出了專用的測試方法,通過將采集到的文件訪問記錄播放一段時間后得到的文件系統場景作為文件系統狀態,播放后續的訪問記錄作為測試負載,這種方法的優點是能夠提供真實的訪問請求,然而缺點也很突出:它生成的分級存儲狀態非常不真實,導致測試結果具有誤導性,由于文件訪問存在局部性,生成的文件只是真實文件系統中很小的一部分,尤其是必然會丟失那些較長時間不用的文件,這與分級存儲系統的應用場景不相符。
本文給出了一個分級存儲系統性能測試工具DMStone,它使用文件系統快照生成某一時刻的系統狀態,并根據后續的相鄰快照的差異分析出后續訪問負載的宏觀特征,進而生成后續對文件系統的數據訪問,DMStone能夠提供某一時刻完整的文件系統狀態,涵蓋了近期訪問過的和長期不用的所有文件,而且它能夠保證后續文件訪問的局部性與真實應用場景相符合。
我們在Linux平臺上實現了DMStone,實驗結果表明,DMStone能夠生成滿足分級存儲系統測試要求的文件系統真實場景,根據用戶的配置靈活生成文件訪問負載,能夠對分級存儲系統進行全面而合理的測試,應用DMStone對分級存儲系統AIP進行了測試,驗證了DMStone性能測試的有效性。
1 相關工作
分級存儲系統性能測試需要向具有真實狀態的存儲系統播放有代表性的訪問負載,兩個主要技術挑戰是創建真實的文件系統狀態和生成有代表性的I/O負載,在2008年的綜述文章[13]中,Traeger等人查閱了4個國際頂尖會議SOSP,OSDI,FAST,USENIX從1999年~2007年這9年時間內的全部論文,調研了其中存儲相關的106篇論文中提到的415種文件系統和存儲測試方法或工具,我們發現,這些方法都毫無例外地忽略了對存儲系統狀態的構建。
在文件系統場景構建方面,Agrawal和Arpaci-Dusseau等人[14]提出一種構建方法,它根據一定的模型生成相應的目錄樹結構,并將具有不同大小、不同擴展名的文件按照一定方式在這些文件夾之間分布,在處理文件在目錄樹結構中的分布情況時,對文件內容及數據在磁盤上的分布進行處理,以提供用戶指定的文件系統場景,該方法的缺點是沒有考慮I/O負載和系統狀態的匹配問題,同時,沒有對文件的時間、用戶等屬性分布進行研究,不能生成適宜測試分級存儲系統的場景。
在文件訪問負載上,Iometer[15]通過配置讀寫比例、隨機讀與隨機寫的比例、突發請求次數、兩次突發請求的時間間隔等參數生成訪問負載,模擬存儲器或網絡的I/O負載情況,對存儲器或網絡控制器的帶寬、延時吞吐量等進行評測,而SynRGen[10]文件訪問負載生成器在系統調用層實現,它通過訪問獲取應用的特性,對應用的負載情況進行模擬,Fstress[9]是一個支持NFSv3的負載生成器,通過設置文件和文件夾的分布情況、符號鏈接的個數、目錄樹的最大深度、新建文件的訪問情況、文件大小、I/O大小等生成相應負載,目前的負載生成器在生成負載時,并沒有考慮文件訪問在具有不同時間屬性的文件之間的分布規律,但在分級存儲的應用系統中,大部分文件訪問應該集中在最近創建的文件上。
2 DMStone的設計
2.1 系統架構
DMStone使用文件系統快照生成存儲系統某一時刻的系統狀態,并根據后續的相鄰快照的差異分析出期間訪問負載的宏觀特征,進而生成后續對文件系統的訪問請求,如圖1所示,DMStone由4部分組成,分別為快照讀取模塊Retriever、系統狀態重建模塊Reconstructor、訪問請求增強模塊Reinforcer以及訪問請求播放模塊Replayer。
圖1 DMStone組成結構
在對指定的分級存儲系統進行測試的過程中,DMStone的4個模塊依次執行如下動作:
(1)快照讀取模塊根據指定的時間點掃描快照數據,根據快照鏈表結構提取此時間點的狀態描述信息并保存到指定文件中,同時,根據指定時間點快照及其后繼快照信息生成文件訪問請求特征信息;
(2)系統狀態重建模塊依據生成的狀態描述信息及用戶設置的參數,在指定的文件系統中生成文件系統場景;
(3)訪問請求增強模塊根據快照讀取模塊生成的訪問請求特征信息,對文件系統的訪問請求進行細化處理,增強訪問負載的強度;
(4)訪問請求播放模塊在生成的文件系統場景的基礎上,播放增強后的文件訪問負載,同時記錄請求的響應時間等性能統計數據。
2.2被測系統的狀態重建
DMStone根據某一時刻的文件系統快照信息生成文件系統場景,這些快照信息包括文件路徑及文件名、文件大小、文件的最近訪問時間、文件的最近修改時間、用戶名等,將快照信息使用文件記錄的形式來描述有利于生成后續的文件訪問請求,由于文件的內容與系統評測并不相關,所以,某一時刻的快照可由文件系統中所有文件的相關記錄信息來描述,從而便于被測系統的重復創建,進行多次測試。
在生成文件系統場景描述文件后,DMStone根據這些信息生成文件系統場景,并保證系統中文件的屬性與快照中的信息一致,對每條文件記錄,選擇文件的最近訪問時間和最近修改時間中的較小值作為文件的創建時間,為了保證文件的最近訪問時間和最近修改時間與快照中的相一致,在文件創建以后,根據文件的最近訪問時間和最近修改時間中的較大值進行一次文件讀寫操作,并保證除文件的相應時間屬性以外,其余基本屬性不發生變化,如果最近訪問時間值較大,在創建文件后,根據最近訪問時間再對文件進行一次讀操作,如果最近修改時間值較大,則依據這個最近修改時間,對文件進行一次寫操作,對文件內容而言,可以隨機寫入數據。
2.3 負載信息的生成
生成基于已有文件系統場景的文件訪問負載,是DMStone的另外一個重要部分,DMStone生成的文件訪問負載能夠反映文件訪問的局部性,并體現實際應用中的文件訪問特征,生成文件訪問負載包括兩個步驟:生成基本訪問負載以及對基本訪問負載進行負載強度增強處理。
2.3.1基本訪問負載的生成
基本訪問負載信息需要確定所訪問的文件集合以及每個文件的訪問類型,將每個文件訪問請求用以下幾個方面來描述:訪問類型、文件路徑名、訪問起始地址、訪問大小、訪問時間及請求用戶,DMStone通過對比相鄰兩個快照之間的差異得到基本訪問負載信息,由于生成快照會給原系統帶來額外的I/O開銷,所以如果生成快照的間隔太小,則會對系統的I/O性能產生影響;而如果快照生成時間間隔太大,則會影響獲取的負載特征中創建文件及刪除文件請求的訪問執行時間的準確性,出于這樣的考慮,DMStone使用的快照時間間隔為1天,一個文件在兩個相鄰快照之間是否被訪問過,是通過對比相鄰快照之間文件的元數據得到的,如果文件的屬性有變化,則說明文件在這段期間有相應的訪問請求,例如:如果文件的最近訪問時間發生變化,則說明在這兩個快照之間至少有一個對文件的讀訪問,文件的創建與刪除請求,根據文件在前后快照之間是否存在來確定,DMStone根據訪問類型和從快照中可以得到的信息量的不同,確定不同類型的文件訪問的起始位置、偏移大小和執行時間等訪問信息,例如對寫請求,將前一快照的文件大小作為偏移起始地址,并將兩個快照中文件大小的差值作為偏移大小;將后一快照中文件的最近修改時間作為文件訪問的執行時間,而創建和刪除請求的執行時間不能通過比較快照獲得準確的時間點,只能在兩個快照的時間段中隨機生成一個時間點作為請求的執行時間,DMStone通過將后一快照的最近訪問時間和最近修改時間作為訪問請求的執行時間,保證文件在時間屬性上的誤差在1天以內,分級存儲系統處理的數據往往是最近訪問在幾十天以前或幾百天以前的,所以1天以內的誤差對分級存儲系統評測的影響很小。
2.3.2 訪問負載的增強
基本訪問負載并沒有包括所有應當被訪問的文件,且對單個文件而言,每種訪問類型最多只包含一個訪問請求,例如,若在兩個快照之間文件的最近訪問時間有變化,則基本訪問負載中僅有一個此文件的讀請求,為了還原有代表性的訪問負載,需要對這些訪問負載進行強度增強處理,為了完成這個過程,需要確定被訪問的文件、各種訪問的數量、訪問的分布情況、每個訪問的起始地址及偏移大小。
首先,在生成訪問請求的兩個快照時間點之間創建、訪問并刪除的臨時文件并沒有包含在生成的基本負載信息中,針對臨時文件的讀寫特性,Floyd[16]進行了詳細的研究,并得到如下一些結論:(1)臨時文件的數量與實際讀寫文件的數量之間成一定比例;(2)大部分臨時文件的生命周期小于1分鐘;(3)臨時文件的文件大小一般不到1KB,且只有一次或兩次的讀寫,依據這些結論,我們通過基本訪問負載中的讀寫文件數量確定臨時文件的數量;其文件創建時間在訪問開始和結束時間點之間隨機生成,并根據其生命周期性質決定文件的刪除時間;在文件創建以后,等概率地對其進行一次或兩次的文件讀寫操作。
其次,基本訪問負載中,對每個文件的訪問,每種訪問類型最多只有一個,所以對每個被訪問文件的每種訪問,都需要根據快照提供的不同信息進行負載增強處理,其中,創建和刪除文件訪問請求與原始文件訪問負載中的情況相同,在Plan9[17]文件系統的快照中,文件的寫次數可以通過相鄰快照間文件的版本號的差值得到,為了適應不同的應用請求,DMStone根據用戶配置的讀寫訪問比例確定文件的讀寫次數。
文件訪問負載具有突發性,大多數訪問集中在某一個時間段,而較小的部分分散分布,Wang等人通過實驗得到大多應用都具有I/O訪問突發特性,且65%~100%的寫請求集中在一段時間區域[18],為體現文件訪問的突發特性,DMStone首先在文件創建時間或當日訪問請求開始時間和讀寫此文件的訪問執行時間之間確定一個時間點作為突發訪問集中區域,在增強過程中,以這個時間點為中心,每隔1/Pi秒添加一個相應的文件訪問請求,直到文件的訪問請求個數達到預期值或者時間點到達原始文件的訪問執行時間點為止,在添加訪問請求的過程中,Pi值每經過一步,均按照如下方式來變化:
其中,Pmax為用戶設置的最大Pi值,且P0=Pmax;而Pmin為用戶設置的最小Pi值,1/Pi為添加的第i個訪問與前一個訪問之間的執行時間間隔;Di代表Pi的變化系數;D0為用戶設置的初始值,且D0∈(0,1),當D0=1時,表示請求將按照恒定的時間間隔訪問文件,用戶根據期望的文件訪問時間間隔設置Pmax,Pmin和D0的值,從而得到與應用具有相同負載特征的訪問請求。
文件的讀寫訪問請求區分為隨機讀和順序讀、隨機寫和順序寫,DMStone根據指定的參數確定隨機讀寫與順序讀寫之間的比例,并根據這個比例確定文件的讀寫請求的類型,對每個讀寫訪問請求,需要確定讀寫訪問請求的起始地址和偏移大小,隨機讀寫訪問請求的起始地址及偏移大小在文件大小范圍內隨機生成;順序讀寫訪問請求的起始地址從文件起始位置開始,偏移大小按照等概率從512B~64KB之間得到。
2.4 訪問負載的播放
DMStone在評測分級存儲系統的過程中,首先在生成的文件系統場景上運行分級存儲系統,分級存儲系統將依據分級規則,將文件遷移到二級或三級等低級存儲設備中,而將具有較高文件價值的文件保留在一級存儲設備上,在對文件進行分級處理后,DMStone播放增強后的訪問負載來完成分級存儲系統的性能評測。
在真實系統狀態上播放后續的文件訪問請求時,DMStone根據指定參數決定負載播放的時間長短,文件訪問線程每次讀取一個文件訪問請求,當請求播放的時間點到達時,執行對文件的訪問,同時記錄請求類型及請求響應時間,在評測結束時,DMStone對不同類型的數據進行處理,生成相應的數據信息,完成系統性能數據統計。
3 DMStone的特點與使用
將DMStone應用在分級存儲系統AIP中,對AIP進行全面的評測,在評測過程中,DMStone使用了貝爾實驗室的Plan9文件系統快照[17],它包含從1990年~2001年間每天的系統快照信息,在實驗中,DMStone還原了1993年5月31日的文件系統場景,同時生成此后一天的文件訪問請求。
3.1 文件分布
為了驗證DMStone恢復系統狀態的真實性,我們對還原得到的1993年5月31日的文件系統場景進行了統計分析,圖2給出了具有不同最近訪問時間、不同最近修改時間的文件數的累積分布。
圖2 文件按照最近修改時間及最近訪問時間的分布
可以看到,最近10天內訪問過的文件數只占總數的2.8%,而最近50天內訪問過的文件數占總數的8.7%,100天內被訪問過的文件數占總數的12,6%,最近10天內修改過的文件數占總數的1.64%,50天內修改過的文件數占總數的5.0%,最近100天內修改過的文件數占總數的8.74%,這種情況與分級存儲的目標應用相符。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/