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