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