大規(guī)模時間序列數(shù)據(jù)存儲系統(tǒng)的研究與實現(xiàn)_第1頁
大規(guī)模時間序列數(shù)據(jù)存儲系統(tǒng)的研究與實現(xiàn)_第2頁
大規(guī)模時間序列數(shù)據(jù)存儲系統(tǒng)的研究與實現(xiàn)_第3頁
大規(guī)模時間序列數(shù)據(jù)存儲系統(tǒng)的研究與實現(xiàn)_第4頁
大規(guī)模時間序列數(shù)據(jù)存儲系統(tǒng)的研究與實現(xiàn)_第5頁
免費預(yù)覽已結(jié)束,剩余52頁可下載查看

付費下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、 學(xué)校代碼1 0 4 8 學(xué)號 密大規(guī)模時間序列數(shù)據(jù)的研究與實現(xiàn)系統(tǒng)學(xué)位申請人學(xué)科專業(yè)指導(dǎo)教師旭答辯日期2013119 學(xué)校代碼1 0 4 8 學(xué)號 密大規(guī)模時間序列數(shù)據(jù)的研究與實現(xiàn)系統(tǒng)學(xué)位申請人學(xué)科專業(yè)指導(dǎo)教師旭答辯日期2013119 AbmittedinPartialFulfillmentoftheforAbmittedinPartialFulfillmentofthefortheDegreeofMasterofResearchandionALargeScaleTime-seriesDataStorageCommunication&InformationteProf.DuHuazhongU

2、niversityofScience&Technology Wuhan, 430074, P.R.ChinaJan,獨創(chuàng)本日期月日使書本華。本不(請在以上方框內(nèi)打)年月日年月日獨創(chuàng)本日期月日使書本華。本不(請在以上方框內(nèi)打)年月日年月日摘要生產(chǎn)生活中重要的信形式RRDtoolRRDtool I/ORRDmem-RRD MooseFSRRDtool I/Omem-RRD RRDtool mem-RRD 摘要生產(chǎn)生活中重要的信形式RRDtoolRRDtool I/ORRDmem-RRD MooseFSRRDtool I/Omem-RRD RRDtool mem-RRD MooseFS 系統(tǒng)的方案最

3、后針對系統(tǒng)的I/O性能可用性和擴展MooseFS I/O 時間序列數(shù)據(jù) mem-I/O:IRRDtool is currently a verypopular ased database used to store time-series However, the performance of RRDtool is currently a verypopular ased database used to store time-series However, the performance of an RRDtool-based storage system is quite poor in

4、ty of RRD t need to be updated due to the operating readahead and buffer-cache behaviors, which will result in limited scalability of system: tens of thousands of, or perhaps dred thousand of RRD files in a system. Another challenge is the flexibilityof the systems capacitywhich stores a ra ly incre

5、asing number of RRD files. Moreover, it is significant and essential to keep the system highly available regardless of component or system failures.his thesis, a storage system which combines mem-RRD and MooseFS for scale time-series data is investigated and implemented in response to the es above.

6、Mem-RRD is designed to replace the original RRDtool, it exploits user-level buffering and performs better on the aspect of I/O. MooseFS is a distributed file system which guarantees high availabilityand flexible capacity. The system is built and deployed in a network measurement circumstance and its

7、 effectiveness is demonstrated by detailed testing and observation. Briefly speaking, this large scale time-series data storage providesgoodperformanceincludingI/Operformance, availabilityandKeywords:Time-seriesI/O目錄摘12目錄摘12345致緒RRD(RoundRobinI/O的基本過本章小mem-RRD的設(shè)計原mem-RRD的實本章小I/O性能測本章小結(jié)束本文總工作展參考文插圖目圖

8、插圖目圖圖RRD數(shù)據(jù)庫的組RRD數(shù)據(jù)庫頭部的結(jié)RRD數(shù)據(jù)庫RRA結(jié)一個典型的RRD數(shù)據(jù)庫文件及其操更新RRD數(shù)據(jù)庫文件過程中緩存的行MooseFS的系統(tǒng)架read的處理過write的處理過3-1mem-RRD的組3-2mem-RRD和mem-RRD的實現(xiàn)方mem-RRD沖刷數(shù)據(jù)的“節(jié)奏mem-RRDupdate和RRDtoolupdate對mem-RRDfetch和RRDtoolfetch對mem-RRDfetch的處mem-RRD程序流程3-4-userCPU使用對sysCPU使用對ioCPU使用對4-4-4-4-磁盤讀操作頻率(前12小時磁盤讀操作頻率(后12小時磁盤寫操作頻率(前12小時

9、磁盤寫操作頻率(后12小時RRDtool構(gòu)建系統(tǒng)的性能極mem-RRD構(gòu)建系統(tǒng)的性能極V表表表表I/O性能對比項1緒需要人們分析。特別是在二十世紀70 年ernet 間間隔 的數(shù)據(jù)點的序列稱為時間序列數(shù)據(jù)2,每個數(shù)據(jù)點都與一個時間戳相聯(lián) 。量1緒需要人們分析。特別是在二十世紀70 年ernet 間間隔 的數(shù)據(jù)點的序列稱為時間序列數(shù)據(jù)2,每個數(shù)據(jù)點都與一個時間戳相聯(lián) 。量的規(guī)模還任務(wù)的密集程度都可能是前所未有的。這種情況下,以什么樣I/OI/OI/O并1 RRDMooseFS請I/O RRDtool 更新數(shù)據(jù)量較大、更新任務(wù)較為密集的情況下,有 RRDMooseFS請I/O RRDtool 更新

10、數(shù)據(jù)量較大、更新任務(wù)較為密集的情況下,有效較低 CPU 用于等待 I/O完成的處理時間從而保證較低的 I/O 負荷和較高的 I/O 吞吐量使在 I/O1) 工具 RRDtool RRD I/O 2) 23) 4) RRDtool 題的基和具體實現(xiàn)一種命名為mem-RRD的RRD數(shù)據(jù)庫的實現(xiàn),該實RRDtool3) 4) RRDtool 題的基和具體實現(xiàn)一種命名為mem-RRD的RRD數(shù)據(jù)庫的實現(xiàn),該實RRDtool I/O MooseFS 括:RRDRRDtool的數(shù)據(jù)系統(tǒng)存在及已有改進;一種傳統(tǒng)分布式文件系統(tǒng)的替代方案MooseFS,對其系統(tǒng)架構(gòu)、可用性、擴展性等方面進行闡述;I/O相關(guān)技術(shù)

11、,如磁盤RRD 的具體的設(shè)計與實現(xiàn)方案,將mem-RRD MooseFS 構(gòu)建和部署的面向大規(guī)模時間序列數(shù)據(jù)的I/O32相關(guān)技術(shù)介RRD(RoundRobin。人們提出一種“循環(huán)數(shù)據(jù)庫”(RRD,RoundRobinDatabase)4RRD 數(shù)據(jù)庫的數(shù)據(jù)值按照時間的先后順序依次排列的,無形中為每2相關(guān)技術(shù)介RRD(RoundRobin。人們提出一種“循環(huán)數(shù)據(jù)庫”(RRD,RoundRobinDatabase)4RRD 數(shù)據(jù)庫的數(shù)據(jù)值按照時間的先后順序依次排列的,無形中為每RRD 數(shù)據(jù)庫的結(jié)構(gòu)非常簡單。除了實際的具體數(shù)據(jù)點外,RRD 數(shù)據(jù)庫還定2.1.1 RRD數(shù)據(jù)源(DS,DataSourc

12、e) RRDA數(shù)據(jù)源類型(DST, Data Source Type) DS RRD 5 種DST:COUNTER,DERIVE,ABSOLUTEGAUGECOMPUTE心搏RRD 時間間隔超過 UNKOWNRoundRobin包(RRA,Round RobinRRD數(shù)據(jù)庫中真基礎(chǔ)數(shù)據(jù)點(PDPPrimaryData) 最終存入RRA的數(shù)據(jù)是由初始PDP過合并計算得到的。PDPRRD合并數(shù)據(jù)點(CDPConsolidatedData) PDP 4華技大學(xué)合并函數(shù)(CFConsolidationFunction) 將若干6一個CDP2.1.2 RRDtool 華技大學(xué)合并函數(shù)(CFConsoli

13、dationFunction) 將若干6一個CDP2.1.2 RRDtool RRDRRDtool4TobiasOetikerRRD2-1RRD2-1,RRDtoolRRDRRDDS的定義、RRA2-25頭部(元數(shù)據(jù)數(shù)華技大學(xué)8字靜態(tài)頭 PDP準備ttttt 2-2RRDic靜態(tài)頭部 RRD結(jié)構(gòu);3)DS RRD的數(shù)據(jù)序列;5)PDPstepPDP之間的時間;6)為將來可能可以80 個字節(jié)。DS定義(DSRRDDSDS的名字,DSTDS相關(guān)的參數(shù)(DS PDP 值等RRA定義(RRA CDP華技大學(xué)8字靜態(tài)頭 PDP準備ttttt 2-2RRDic靜態(tài)頭部 RRD結(jié)構(gòu);3)DS RRD的數(shù)據(jù)序

14、列;5)PDPstepPDP之間的時間;6)為將來可能可以80 個字節(jié)。DS定義(DSRRDDSDS的名字,DSTDS相關(guān)的參數(shù)(DS PDP 值等RRA定義(RRA CDP動態(tài)頭部(live6PDP準備區(qū)(PDPprepPDP的“依賴數(shù)據(jù)”CDP準備區(qū)(CDPprepCDPCDP的“依賴數(shù)據(jù)”RRA指針(RRARRAPDP準備區(qū)(PDPprepPDP的“依賴數(shù)據(jù)”CDP準備區(qū)(CDPprepCDPCDP的“依賴數(shù)據(jù)”RRA指針(RRARRARRARRA中RRA2- DSCDP2-3RRDRRARRD數(shù)據(jù)庫(RRA中)的第一個數(shù)據(jù)(CDP)會被隨機的存在某一行,數(shù)據(jù)“覆蓋”2.1.3 RRDt

15、oolRRDtoolRRD7華技大學(xué)來7MRTG(Multi-Router Traffic Grapher)8I/O RRD 數(shù)據(jù)庫下面結(jié)合實例從操作系統(tǒng)的預(yù)讀機制和緩存機制對RRD 次數(shù)I/OI/O求頁面數(shù)的頁面,后續(xù)讀操作完成華技大學(xué)來7MRTG(Multi-Router Traffic Grapher)8I/O RRD 數(shù)據(jù)庫下面結(jié)合實例從操作系統(tǒng)的預(yù)讀機制和緩存機制對RRD 次數(shù)I/OI/O求頁面數(shù)的頁面,后續(xù)讀操作完成所需的時間就更短1011。大多數(shù)應(yīng)用都RRDtool 實際更新的區(qū)2-4 RRD2-4 RRD 數(shù)據(jù)庫文件(2 DS6 RRA:更新時間間隔3052AVERAGERRA

16、MAXRRA,2 RRA 中的一行)RRD 8RRD頭部(元數(shù)據(jù)30-sec5-2-hour30-sec5-2-hour華技大學(xué)預(yù)讀算法定義了預(yù)讀窗口來決定預(yù)讀的字節(jié)數(shù)12。對ext2和ext3來說32 RRD 0 華技大學(xué)預(yù)讀算法定義了預(yù)讀窗口來決定預(yù)讀的字節(jié)數(shù)12。對ext2和ext3來說32 RRD 0 實際會有16 個頁會加載到緩存。MAX 8MAX RRA更新時,情況類似,預(yù)讀4 個頁面。RRD3 28 個數(shù)據(jù)塊加 16個頁面13不必的數(shù)據(jù)真正需的數(shù)據(jù)2-5 RRD如圖 25RRD200,000 RRD200,000 x 28x 4K(大20和頁面置換,從而使磁盤的讀寫操作更加費時。

17、如果可以僅僅把需要的數(shù)據(jù)塊放入9 x 3x 4KB(2.3G)。RRDtool 系統(tǒng)的性能得到優(yōu)化。相反, I/ORRD 文件的系統(tǒng)的性能變得很差,系統(tǒng)的擴展性受到ix_fadvise 系統(tǒng)調(diào)用14區(qū)域(示)ix_fadvise ,還可以告訴操作系統(tǒng)這些區(qū)域的數(shù)據(jù)在未來是否會被再 x 3x 4KB(2.3G)。RRDtool 系統(tǒng)的性能得到優(yōu)化。相反, I/ORRD 文件的系統(tǒng)的性能變得很差,系統(tǒng)的擴展性受到ix_fadvise 系統(tǒng)調(diào)用14區(qū)域(示)ix_fadvise ,還可以告訴操作系統(tǒng)這些區(qū)域的數(shù)據(jù)在未來是否會被再目的RRDtool 版本(rrdtool-1.4.7)相比最初版本,已經(jīng)

18、在update 接口的 ix_fadviseRANDOM系統(tǒng)調(diào)抑制操作系統(tǒng)的預(yù)讀行為,在緩存中只有保存那些真正需要緩存的數(shù)據(jù)塊,高效地/OI/ORRDI/O,計算處理數(shù)都由一臺機器完成那么對機器的也沒有必要這樣做。通常會采用分布式文件系統(tǒng)152.2.1 網(wǎng)絡(luò)文件系統(tǒng)(NetworkFileSystemNFS)16廣泛,它能夠通過網(wǎng)絡(luò)實現(xiàn)不同主機、不同操作系統(tǒng)之間共空間和數(shù)據(jù)NFS NFS 服NFS客戶端數(shù)目尚小時,服NFS NFS NFS NFS行NFS 。2.2.2 MooseFS NFS 服NFS客戶端數(shù)目尚小時,服NFS NFS NFS NFS行NFS 。2.2.2 MooseFSS 就

19、需要找到一種替換方案。目前,市面上存在很多分布式文件系統(tǒng)可供選擇,但ustr1xt3 的依賴太大;moilS2E 像本地文件一樣的操作其中的文MooseFS錯誤!的方案,主要是考慮到其高可用性23和動態(tài)擴展性24華技大學(xué),也可以快速恢復(fù),盡量把損失降到最低;MooseFS 的體系架構(gòu)搭建好后,具有很好此外,MooseFSMooseFS的理由 MooseFS華技大學(xué),也可以快速恢復(fù),盡量把損失降到最低;MooseFS 的體系架構(gòu)搭建好后,具有很好此外,MooseFSMooseFS的理由 MooseFS更好地使用體驗:提供類似 JAVA 語言的Web MooseFSMooseFSMooseFS 2

20、.2.3 MooseFSMooseFS 務(wù)器共同管理。FileSystem27LustreMooseFS4部分組成,如圖 2-管理服務(wù)器 元數(shù)據(jù)備份服務(wù)- 數(shù)據(jù)管狀態(tài)數(shù)據(jù)服務(wù)器元數(shù)據(jù)變化-狀數(shù)據(jù)服務(wù)器數(shù)據(jù)服務(wù)器客戶端客戶端2-6MooseFS管理服務(wù)器:又稱主服務(wù)器(masterserver)或元數(shù)據(jù)服務(wù)器(metadataserver)元數(shù)據(jù)操-數(shù)-數(shù)-MooseFS數(shù)據(jù)服務(wù)器:又稱塊服務(wù)器kserver)。MooseFS MooseFSmfsmount客戶端之間傳遞。對客戶端主機來說,對掛載于 MooseFS 的文件進行操作的整個過程是透明的,和對本地文件系統(tǒng)上的文件的操作是完全一致的29

21、2.2.4 MooseFSMooseFS數(shù)據(jù)服務(wù)器:又稱塊服務(wù)器kserver)。MooseFS MooseFSmfsmount客戶端之間傳遞。對客戶端主機來說,對掛載于 MooseFS 的文件進行操作的整個過程是透明的,和對本地文件系統(tǒng)上的文件的操作是完全一致的292.2.4 MooseFS。MooseFS MooseFS MooseFS 允許用戶通過在配置文件中設(shè)置”goal”goal”1。MooseFS 服務(wù)器會定期備份管理服務(wù)器上的全部元數(shù)據(jù),形成一個檢查點31最2.2.5 MooseFS系容統(tǒng)具有動態(tài)擴展的特性32量,滿足業(yè)務(wù)需求;另一方面,也可能存在減容量的情況。MooseFS 可

22、以”goal”1。MooseFS 服務(wù)器會定期備份管理服務(wù)器上的全部元數(shù)據(jù),形成一個檢查點31最2.2.5 MooseFS系容統(tǒng)具有動態(tài)擴展的特性32量,滿足業(yè)務(wù)需求;另一方面,也可能存在減容量的情況。MooseFS 可以。器上的數(shù)據(jù)塊“移動”(通過塊的 和刪除實現(xiàn))新加入的數(shù)據(jù)服務(wù)器上35上述的容量擴展工作在任意時間動態(tài)()立即可用。管理服務(wù)器及所有數(shù)據(jù)服務(wù)器會在華技大學(xué)I/O和I/O(輸入/輸出)I/O直接關(guān)系的時間序列數(shù)據(jù)的連續(xù)性和完整性。下面介紹I/O的基本原理2.3.1 read系統(tǒng)調(diào)用文件系統(tǒng)頁面華技大學(xué)I/O和I/O(輸入/輸出)I/O直接關(guān)系的時間序列數(shù)據(jù)的連續(xù)性和完整性。下面

23、介紹I/O的基本原理2.3.1 read系統(tǒng)調(diào)用文件系統(tǒng)頁面高速緩塊設(shè)備驅(qū)動硬件設(shè)2-7read2-7,read(也就是輸入操作)rd 文件系統(tǒng)層用與文件系統(tǒng)類型對應(yīng)的處理接口在頁高速緩存中檢查與特定索引節(jié)點對應(yīng)的一個或多個頁;I/O 塊操作并分配新頁;塊設(shè)備驅(qū) 實際數(shù)據(jù)到新分配的頁36華技大學(xué)2.3.2 write系統(tǒng)調(diào)用文件系統(tǒng)頁面高速緩塊設(shè)備驅(qū)華技大學(xué)2.3.2 write系統(tǒng)調(diào)用文件系統(tǒng)頁面高速緩塊設(shè)備驅(qū)動讀請求隊寫入數(shù)硬件設(shè)2-8write2-8,write ite文件系統(tǒng)層用與文件系統(tǒng)類型對應(yīng)的處理接口在頁高速緩存中檢查與特定索引red對頁高速緩存的檢查的處理不同:如果找到然后再將

24、其重寫;I/O 塊操作,并排入塊設(shè)備驅(qū)動的寫請求隊列;寫請求隊列中的所有臟也會順次被寫到磁盤上37本節(jié)綜合論述了與大規(guī)模時間序列數(shù)系統(tǒng)相關(guān)的技術(shù)。首先介紹了RRDtool 硬件數(shù)寫請求隊3一種基于用戶空間緩沖的 RRD(mem-RRD)的設(shè)計與實RRDtool I/O RRDtool的I/O效率錯誤!源。393一種基于用戶空間緩沖的 RRD(mem-RRD)的設(shè)計與實RRDtool I/O RRDtool的I/O效率錯誤!源。39RRDtoolmem-RRDmem-RRD MooseFS I/Omem-RRDRRDRRD數(shù)據(jù)庫文件中。在下一批數(shù)據(jù)到來之前(5 1 分鐘,甚至更短的時間)必須完成

25、所有 RRD 數(shù)據(jù)庫文件的更新工作。因此,這段時間內(nèi)發(fā)生的磁盤讀寫的頻率非常高,在I/O 等待上要花費掉較多CPU CPU、緩存等資源非常有限時,就難以保證在有限的時RRD 數(shù)據(jù)庫文件的更新任務(wù),這樣就會影響對后續(xù)存入系統(tǒng)的數(shù)據(jù)fadvise RANDOM mem-RRD I/O 行為進行干預(yù),主要采用“聚合”I/O 由多個更新 daemon 共同分擔(dān)數(shù)量巨大的更新任務(wù),通過并發(fā)處理來支持系采用內(nèi)存作為用戶空間緩沖,“收集”多次更新的數(shù)據(jù),將其推遲寫到 RRD數(shù)據(jù)庫文件中,以此將頻度密集的“小”I/O轉(zhuǎn)化為合適頻度的“大”I/O 華學(xué)內(nèi)磁RRD磁盤文RRD磁盤文RRD磁盤文3-1mem-RRD

26、如圖 3-1,mem-RRD 由 mRRD update daemon、mRRDcache、mRRDlib mRRDcachewriter華學(xué)內(nèi)磁RRD磁盤文RRD磁盤文RRD磁盤文3-1mem-RRD如圖 3-1,mem-RRD 由 mRRD update daemon、mRRDcache、mRRDlib mRRDcachewritermRRDupdatemRRD update daemon接收mem-RRDmRRDlib提供的更新(update)接口將新的數(shù)據(jù)放入用戶空間緩沖,即下面介紹的 mRRDcachemRRDupdate daemon mem-RRD 客戶端的更RRD mRRDRR

27、D每隔一段時間將mRRDcache中的mRRD內(nèi)存文件同步到磁盤上對應(yīng)的 RRDmRRD 內(nèi)存文件更好被寫滿,如果此時不進行數(shù)據(jù)同步,mRRD 內(nèi)存文件將被“覆寫”。mRRDcachewriter 完成mRRDcacheI/O 任務(wù)調(diào)度,通過回I/O行為(相對較為頻繁的數(shù)據(jù)沖刷)I/O性能。 mRRDlib是一個可安裝庫,它提供包括更新(update)、獲取數(shù)據(jù)(fetch)、繪圖(graph)RRDRRDtool mRRD內(nèi)存文 mRRD內(nèi)存文 mRRD內(nèi)存文 于強制將內(nèi)存緩沖區(qū)mRRDCache的數(shù)據(jù)同步到磁盤的RRDmem-RRD mRRDlibmRRDcachemRRD內(nèi)存文件內(nèi)mRR

28、DmRRD update daemon,這樣可以保證以正確的順序更新數(shù)據(jù);mRRDcachewriter mRRDcache RRD RRD 數(shù)據(jù)庫文件中,這稱為“沖刷數(shù)據(jù)”。借助“批處理” I/O 于強制將內(nèi)存緩沖區(qū)mRRDCache的數(shù)據(jù)同步到磁盤的RRDmem-RRD mRRDlibmRRDcachemRRD內(nèi)存文件內(nèi)mRRDmRRD update daemon,這樣可以保證以正確的順序更新數(shù)據(jù);mRRDcachewriter mRRDcache RRD RRD 數(shù)據(jù)庫文件中,這稱為“沖刷數(shù)據(jù)”。借助“批處理” I/O內(nèi)磁mem-3-2mem-RRD和如圖3-2,磁盤的頻率也可以看出,m

29、RRD 對update 做了很大改進。內(nèi)存中的 1MB 數(shù)據(jù)只需 250,000ns,而從磁盤順序1MB 數(shù)據(jù)需I/O序I/OI/O務(wù)mem-RRDmem-RRDmem-RRD華技mRRDcache如何組織和管理與每個RRD(mRRD內(nèi)存文件mRRDcachewriterI/ORRD數(shù)據(jù)庫文件(磁盤)的內(nèi)容不具備實時性的情況下,如何實現(xiàn)獲取+3-3mem-RRDmem-RRD華技mRRDcache如何組織和管理與每個RRD(mRRD內(nèi)存文件mRRDcachewriterI/ORRD數(shù)據(jù)庫文件(磁盤)的內(nèi)容不具備實時性的情況下,如何實現(xiàn)獲取+3-3mem-RRDmem-RRD3.2.1 mem-

30、RRD mem-RRD RRD 操作請求(update, fetch, gragh, flush等);mem-RRD處理完該操作請求后,將反饋數(shù)mem-RRD 和客戶端之間交互的消息用文本串定義,mem-RRDmRRDlib 中的操作接口進行相應(yīng)的處理。更新:客戶端向 mem-RRD 提供新的時間戳-數(shù)據(jù)值-value)mem-RRDmRRDlibupdateupdate-template|-t ds-name:ds-:value:value. filename 表示要更新的RRD 數(shù)據(jù)庫文件名-template|-t ds-name:ds-name. 選項可以指定更新哪些數(shù)據(jù)源以及按照什么順

31、序進行更新。mem-RRDDSUNKNOWN值作為更新值。默認情況下,updateRRDvalue:valueDSRRD 數(shù)據(jù)庫中特定時間范圍內(nèi),以特定方式合-template|-t ds-name:ds-name. 選項可以指定更新哪些數(shù)據(jù)源以及按照什么順序進行更新。mem-RRDDSUNKNOWN值作為更新值。默認情況下,updateRRDvalue:valueDSRRD 數(shù)據(jù)庫中特定時間范圍內(nèi),以特定方式合fetchfilenameCF-resolution|-r-start|-sstart-end|-efilename 表示作為數(shù)據(jù)來源的 RRD 數(shù)據(jù)庫文件名CFRRA的依據(jù)之一。RR

32、ACF-resolution|-rresolution 也是選取的 RRA 的依據(jù), 盡量選取時間粒度和resolution-start|-sstart 和-end|-eend RRA 中的數(shù)據(jù)。mem-RRD RRD RRD graphfilenameoptiondatadefinition.variabledefinition. graphelement.alculationelementfilename 指定要產(chǎn)生以.png, .svg, .eps filename是 datadefinition& DEF:=:step=:start=:en 抽象出一個變量RRD 數(shù)據(jù)庫文件個 RRA(

33、通過:step=:start=:end=選出中的段 數(shù) 據(jù) ( 對 應(yīng) 于 特 定 數(shù) 據(jù) 源 , 時 間 范 圍 為:start=:end=; 段 數(shù) 據(jù) ( 對 應(yīng) 于 特 定 數(shù) 據(jù) 源 , 時 間 范 圍 為:start=:end=; N 通過逆波蘭式(RPN 表達式)40DEF vnamevnameRPN N VDEFvnamegraph element 說明構(gòu)圖元素,指定繪制圖形使用線或者區(qū)域塊,線條的粗細實element說明將要上打印的信息文字mem-RRD RRD 數(shù)據(jù)庫的數(shù)據(jù)同步到RRD 數(shù)據(jù)庫文件中。flushfilename 表示要沖刷的RRD 數(shù)據(jù)庫文件名請求消息的文本

34、串都以換行符rn 結(jié)尾,作為消息的結(jié)束標志。mem-RRD 。在目前的實現(xiàn)中,mem-RRD給客戶端的反饋消息比較簡單:如果客戶端的3.2.2 mRRDupdatedaemon 利用多線程或多進程技術(shù)來實現(xiàn)多個更新守護進程(update daemon),通過多個 mRRD update daemonRRD數(shù)據(jù)庫的更新mRRD update daemon 專門處理。RRD RRD10:10-140,那么這 3 次更新必須按照上述順序進行,如果 10:10-140 最先更新,那么將后續(xù)的 10:00-125,10:05-120 更新將失敗,導(dǎo)致 10:00 和 10:05 對應(yīng)的數(shù)據(jù)為 mRRDu

35、pdatedaemon mRRDupdatedaemonRRDmRRD update daemon 本文采用 MD541這一廣泛使用的哈希算法來構(gòu)造哈希函數(shù), 開源包OpenSSL MD5 C RRDRRDmRRD update daemon 本文采用 MD541這一廣泛使用的哈希算法來構(gòu)造哈希函數(shù), 開源包OpenSSL MD5 C RRDMD5 算法將這個名字運算為128 M(8位NmRRD update 1mRRD update daemon RRDmRRDupdatedaemon mRRD update daemon 至updatedaemon3.2.3 mRRDcachewriter

36、mRRDcachewriter 充當(dāng)內(nèi)存與磁盤之間 I/O 調(diào)度器,在特定的情況下,mRRDcachewriterRRD數(shù)據(jù)庫的更新次數(shù)達到一定數(shù)量時沖刷; RRD 數(shù)據(jù)庫文件中獲取數(shù)據(jù); #includeunsignedlonghashfunc(char*msg,/*MD5_DIGEST_LENGTH16*/ unsignedcharmd5MD5_DIGEST_LENGTH;unsignedchar*p=(unsignedchar*)msg; MD5(p, msg_len, md5);return (md50 | md51 8 | md5MD5_DIGEST_LENGTH-2 16 | md

37、5MD5_DIGEST_LENGTH-1 24);華技1 mRRDcachewritermRRDcachemRRDcachewritermRRDupdate3.3.2 至可以各個輸出隊列,每個mRRDcachewriter 處理一個特定輸出隊列中的任mRRhwriter不能對內(nèi)存進行及時的沖刷,就可能出現(xiàn)新數(shù)據(jù)覆蓋舊數(shù)據(jù)的情況,為了盡可能避免這種情況的發(fā)生,需要仔細考慮分配的內(nèi)存大小和沖按照內(nèi)存上次沖刷的時間的前后對輸出隊列進行重新排序,將最長時間沒有被沖刷的內(nèi)存排在隊首,最短時間沒有被沖刷的內(nèi)存排在隊尾。時華技1 mRRDcachewritermRRDcachemRRDcachewriter

38、mRRDupdate3.3.2 至可以各個輸出隊列,每個mRRDcachewriter 處理一個特定輸出隊列中的任mRRhwriter不能對內(nèi)存進行及時的沖刷,就可能出現(xiàn)新數(shù)據(jù)覆蓋舊數(shù)據(jù)的情況,為了盡可能避免這種情況的發(fā)生,需要仔細考慮分配的內(nèi)存大小和沖按照內(nèi)存上次沖刷的時間的前后對輸出隊列進行重新排序,將最長時間沒有被沖刷的內(nèi)存排在隊首,最短時間沒有被沖刷的內(nèi)存排在隊尾。時3-4mem-RRD沖刷數(shù)據(jù)的“節(jié)奏如圖 3-4,本次沖刷開始時刻與下一次沖刷開始時刻之間的時間間隔稱為沖刷沖刷的 mRRD item 的數(shù)量較少時,相鄰兩次沖刷之間相距 1ms 足以完成所有的沖刷mRRDitem數(shù)量較多

39、時,則盡量使沖刷的時間間隔最長。這樣I/ORRD3.2.4 mRRDcache前面提到,用戶空間緩沖區(qū)被“劃分”mRRD mRRDcache mRRD RRDtypedefstruct沖刷間將 mem-RRD 中與每個 RRD 數(shù)據(jù)庫對應(yīng)的內(nèi)存文件取名為 mRRD item, mRRDcache mRRD item mRRD item的結(jié)構(gòu)體中定義了:1)RRDRRD數(shù)據(jù)庫關(guān)聯(lián)的標識, 2)3)將 mem-RRD 中與每個 RRD 數(shù)據(jù)庫對應(yīng)的內(nèi)存文件取名為 mRRD item, mRRDcache mRRD item mRRD item的結(jié)構(gòu)體中定義了:1)RRDRRD數(shù)據(jù)庫關(guān)聯(lián)的標識, 2

40、)3)RRA(鏈表RRD 數(shù)據(jù)庫暫時保存在內(nèi)存中的信息,3)上次沖刷的時間,mRRDcachemRRDitem沖刷到磁盤 RRDmRRD item 中定義RRD 數(shù)據(jù)庫相同數(shù)量的RRA 存放實際數(shù)據(jù),每個RRA都會被分配一塊內(nèi)存,其起始地址為 base,內(nèi)存的大小 len 與 mRRDcachewriter 沖刷 3.2.3pdp_stepPDP的時間間隔;rra_defti RRAt)1 i ;60 *60 / (pdp_step * rra_def RRADS 的數(shù)據(jù)點(CDP)doublebaselen=sizeof(double)t*60*60/(pdp_step*rra_deftyp

41、edefstructchar * base;size_t len;/*用于存放RRA數(shù)據(jù)的內(nèi)存的大小*/size_t cur;/*RRA數(shù)據(jù)的內(nèi)存的當(dāng)前寫入位置 */ size_tunflush_bytes; /*RRA數(shù)據(jù)的內(nèi)存中未沖刷的字節(jié)數(shù)*/typedefstructrrd_head_tlive_head_t * live_head; /*動態(tài)頭部*/ pdp_prep_t * pdp_prep; /*PDP數(shù)據(jù)準備區(qū)*/ cdp_prep_t * cdp_prep; /*CDP數(shù)據(jù)準備區(qū)*/ rra_ptr_t *rra_ptr;/*各RRA指針的鏈表*/constchar*rrd_

42、file_name; /*RRD文件名*/ rrd_head_t * rrd_head;/*RRD文件頭部*/rra_t * rra;/*RRD數(shù)據(jù)部分RRA的鏈表*/ time_t last_flush;pthread_rwlock_t * rwlock; /*內(nèi)存的讀寫鎖*/頭”cur 的取值在0, len-1之間。unflush_bytes 表示從上次沖刷到目前為止此 RRA 內(nèi)尚未沖刷的數(shù)據(jù)的字節(jié)數(shù),在下次沖刷之前,unflush_bytes 一直增加。通過 cur unflush_bytes 就可以確定沖刷的內(nèi)存的范圍。30RRD 數(shù)據(jù)庫的數(shù)據(jù)需要多少內(nèi)存。這里假定每個 頭”cur

43、的取值在0, len-1之間。unflush_bytes 表示從上次沖刷到目前為止此 RRA 內(nèi)尚未沖刷的數(shù)據(jù)的字節(jié)數(shù),在下次沖刷之前,unflush_bytes 一直增加。通過 cur unflush_bytes 就可以確定沖刷的內(nèi)存的范圍。30RRD 數(shù)據(jù)庫的數(shù)據(jù)需要多少內(nèi)存。這里假定每個 RRD 數(shù)據(jù)庫文件都具有2 DS,6 RRA,每個RRA CDP 都是每60 秒產(chǎn)生一60 300,000 x 2 x 6 = 3,600,000 3,600,000 x 8 x 601,728,000,000Bytes1.6GB當(dāng)一個更新到來時,mem-RRD 必須能盡可能快地從 mRRDcache

44、實現(xiàn)上利用平衡二叉樹mRRDitemglib GTreepare_func 一個節(jié)點,keyvalue key3.2.5 mRRDlib mem-RRD RRD mRRDlib mRRDlibRRDtoolupdatefetchgraph mRRDlibmRRDerg_tree_lookup(GTree*tree,ervoidg_tree_insert(GTree*tree,erkey,erGTree*gtreenew(GCompareFunckeycompare華技大學(xué) mRRD (磁盤是否RRA(磁盤(內(nèi)存RRA(內(nèi)存RRDtool 華技大學(xué) mRRD (磁盤是否RRA(磁盤(內(nèi)存RRA(

45、內(nèi)存RRDtool mRRD 3-5mem-RRDupdateRRDtoolupdate3-5,mem-RRD updateRRDtoolupdate除并關(guān)閉文件;mRRDupdate mRRD創(chuàng)建mRRDitem華技獲取RRA數(shù)(磁盤(內(nèi)存或磁盤解除文并關(guān)華技獲取RRA數(shù)(磁盤(內(nèi)存或磁盤解除文并關(guān)閉文mRRDRRDtool3-6mem-RRDfetch和RRDtoolfetch在更新過程中引入用戶空間緩沖的同時帶來了RRD映fetchRRDtool fetchfetchfetch實現(xiàn):根據(jù)指定的時間范圍從內(nèi)存和(或)上次沖即將到來的沖上次更從文件獲從mRRDRRD3-7mem-RRDfet

46、ch如圖 3-7,獲取數(shù)據(jù)時,根據(jù)指定的時間起點(start)和時間終點(end),可能會從 RRD(和mRRDfetch對不同的情況都做了對應(yīng)的計算處理,1) RRD 數(shù)據(jù)庫磁盤文件獲取2) 對于從最近一次沖刷數(shù)據(jù)的時間點到最近一次更新的時間點之間的數(shù)據(jù),可RRDtool fetchsync。mRRDfetchmRRDmem-RRD變量,既2) 對于從最近一次沖刷數(shù)據(jù)的時間點到最近一次更新的時間點之間的數(shù)據(jù),可RRDtool fetchsync。mRRDfetchmRRDmem-RRD變量,既可以直接來源于 DS,也可以來源于對 DS 的加工計算(等RRD 數(shù)據(jù)庫中取出對應(yīng)區(qū)間的數(shù)據(jù)RRA

47、CDP序列,并且根據(jù)文mRRDfetchmRRDmRRD item 中的數(shù)據(jù)(RRA 數(shù)據(jù))RRD mRRDitem RRD華技大學(xué)3.2.6 flush命令隊列之創(chuàng)建 創(chuàng)并接受連update命令隊并執(zhí)行更華技大學(xué)3.2.6 flush命令隊列之創(chuàng)建 創(chuàng)并接受連update命令隊并執(zhí)行更新操命flush命從內(nèi)存中3-8mem-RRD3-8 mem-RRD4 的過程(粗線框表示2 2 進程(listen收集進程(enqueuethread)mRRD更新進程(updatethread)mRRDupdatedaemon的角色,處理更新 mRRDitem 刷新至RRD文查找需要沖刷mRRD 華技大學(xué)m

48、em-RRD MooseFSRRDtool I/O 管理服務(wù)數(shù)據(jù)服務(wù)器數(shù)據(jù)服務(wù)器數(shù)據(jù)服華技大學(xué)mem-RRD MooseFSRRDtool I/O 管理服務(wù)數(shù)據(jù)服務(wù)器數(shù)據(jù)服務(wù)器數(shù)據(jù)服務(wù)器mem-RRD服務(wù)器mem-RRD服務(wù)器服務(wù)服務(wù)3-9 圖mem-RRDMooseFS mem-RRD RRD 據(jù)庫格式組織這些數(shù)據(jù),注意,這些數(shù)據(jù)都是先寫入到內(nèi)存緩沖區(qū)中的,然后mem-RRDRRD數(shù)據(jù)同步到磁盤,RRD的MooseFSMooseFSmem-RRD 服務(wù)器在更新數(shù)據(jù)密集的情況下仍能夠保持較好的工作性能,MooseFSmem-RRDI/OMooseFS RRD MooseFS MooseFS m

49、em-RRD 服務(wù)器在更新數(shù)據(jù)密集的情況下仍能夠保持較好的工作性能,MooseFSmem-RRDI/OMooseFS RRD MooseFS MooseFS mem-RRD1) MooseFS 2) 3) mem-RRDmem-RRD RRD mem-RRDRRDtool I/O mem-RRDRRD,詳細論述了它的設(shè)計原理和實mem-RRD MooseFS I/O華學(xué)4測試與I/O4.1.1 華學(xué)4測試與I/O4.1.1 4-1 ,其寫入4-1 N update daemon SNMP 環(huán)”。“循環(huán)”5 RRD 目錄 6400 個文件 ,大部分 RRD 都含有 8 個 RRAAVERAGE-

50、5min updatedaemon 5 5updatedaemon5 N次“更新處理”4-4-1 rrdtool-1.0.47,mem-RRDfadviseRANDOM4.1.2 mem-RRD24 1. mem-RRDI/OmemRRD/O 文獻13(.抑制預(yù)讀但無用戶空4-1 rrdtool-1.0.47,mem-RRDfadviseRANDOM4.1.2 mem-RRD24 1. mem-RRDI/OmemRRD/O 文獻13(.抑制預(yù)讀但無用戶空C.不抑制預(yù)讀但有用戶空間緩沖三種情況)memRRD/O 4 況列出如表 42。4-2I/Odaemon數(shù)ARRD文件讀寫時不抑制操作I/O

51、操作B+RRD 文件讀寫時抑制操作系C+RRD 文件讀寫時不抑制操作I/O 操作8 16 x 2Linuxext2-3I/O性能RRDCPU3)RRD 文件的效率如何變化。3I/O性能RRDCPU3)RRD 文件的效率如何變化。2. mem-RRDmem-RRD RRD 53 CPURRD1. A.B.C.不抑制預(yù)讀但有用戶空間緩沖 D.既抑制預(yù)讀又有用戶空間緩沖這四種情況下各時間段的 “更新處理”完成情況(A, B, C 的數(shù)據(jù)來自參考文獻13,可以發(fā)現(xiàn):在不抑制操作系統(tǒng)預(yù)讀機制且不采用用戶空間緩沖的情況下,28 個 update daemon 進行每次“更新處理”5 分鐘,有些“更新處理”

52、耗時竟然10 分鐘; daemon 完成每次“更新處理”5 分鐘; daemon 可以在5 分鐘內(nèi)完成對全部16 萬個RRD 文件的更新update daemon D+RRD 文件讀寫時既抑制操作I/O 操作華技4) 在既抑制操作系統(tǒng)的預(yù)讀機制,又采用用戶空間緩沖(mem-RRD)的情況下, 28updatedaemon華技4) 在既抑制操作系統(tǒng)的預(yù)讀機制,又采用用戶空間緩沖(mem-RRD)的情況下, 28updatedaemon5update daemon30 秒左右即可完成每次“更新處理”。 2. CPURRD4-2userCPU如圖 4-2,A.不抑制預(yù)讀且無用戶空間緩沖 B. 不抑制

53、預(yù)讀但有用戶空間緩沖 D.既抑制預(yù)讀又有用戶空間緩沖(mem-RRD)四種情況下,user CPU20%。mem-RRDuser CPU B,CA華技4-3sysCPU4-3,mem-RRD華技4-3sysCPU4-3,mem-RRD相比其他三種情況(A, B, C)sys CPU4-4ioCPU花了將近 40%的處理時間在等待 I/O 完成上,也就是說讀寫 RRD 文件花費了較長時間,這也是 5 分鐘內(nèi)不能完成所有 RRD 文件的更新任務(wù)的直接原因;采用了用戶空 mem-RRD I/O 1%CPUI/O華技CPU用于等待CPU 華技CPU用于等待CPU RRD4-5 磁盤讀操作頻率(12小時

54、4-6 磁盤讀操作頻率(12小時如圖 4-5 和圖 4-6,在不抑制操作系統(tǒng)預(yù)讀機制且不采用用戶空間緩沖的情況90000 100 I/O華技10000 mem-RRD 每CPU 華技10000 mem-RRD 每CPU I/O I/O I/O4-7 磁盤寫操作頻率(12小時4-8 磁盤寫操作頻率(12小時如圖 4-7 和圖 4-8,抑制操作系統(tǒng)預(yù)讀機制前后的磁盤寫操作發(fā)生率相近,差RRD 文件數(shù)量的差別;若采用用戶空間緩RRD1 華技4000次/秒;mem-RRD4000 次/RRD 文件的更新任務(wù)。說明:4.1.3 華技4000次/秒;mem-RRD4000 次/RRD 文件的更新任務(wù)。說明

55、:4.1.3 A. 不抑制預(yù)讀且不使用用戶空間緩沖,B. 抑制預(yù)讀但不使 4. fadviseRANDOMRRDtool mem-RRDRRDtool(rrdtool-1.4.7)RRD mem-RRDRRD文件的過程中,直460,000RRD5 update daemon 都可以完成全部的“新處理”13 5 RRD 480,000 后,5 updatedaemon進行一次“更新處理”564-9RRDtoolRRDtoolRRDCPU I/O CPU 10%RRD 360,000 后,CPU 80%華技4-10mem-RRD4-10mem-RRD RRD 文件的過程中,CPU RRD 420,

56、000 后,CPU華技4-10mem-RRD4-10mem-RRD RRD 文件的過程中,CPU RRD 420,000 后,CPU 80%RRD 文件數(shù)量超過 480,000 后,CPU 100%。4.1.1 mem-RRD 460,000 RRDRRDtoolCPURRD說明:4.1.3fadviseRANDOMRRDtool文獻134.2.1 4.1 MooseFS 式1 1 3 。RRD RRD 文件的”goal”2RRD 2 4.2.2 4.2.2 2) kserver -s 1 1 1 2)4)error.log,檢查是否出現(xiàn)異常。MooseFS1mfsfileinfo 命令檢查各

57、個副本所在的位置;3) 關(guān)閉除加入的數(shù)據(jù)服務(wù)器外的其他數(shù)據(jù)服務(wù)器,檢查錯誤日志1 error.log mfscheckfileRRD22 臺數(shù)據(jù)服務(wù)器的服務(wù)進程后,error.log RRD RRD 文件的”goal”2,但由于沒有足夠數(shù)量的數(shù)據(jù)服務(wù)器,只有一臺數(shù)據(jù)RRD 文件的副本。error.log ERRORopeningrrdNosuchfileordirectory.RRDRRD2. 4 2 44 加入的數(shù)據(jù)服務(wù)器外的其他數(shù)據(jù)服務(wù)器后,發(fā)現(xiàn) 2. 4 2 44 加入的數(shù)據(jù)服務(wù)器外的其他數(shù)據(jù)服務(wù)器后,發(fā)現(xiàn) 中沒有出現(xiàn)任何RRDRRD文件的唯一副本都已“轉(zhuǎn)移”MooseFSI/O RRD

58、 5結(jié)束時間序列數(shù)據(jù)是生產(chǎn)生活中信息的重要表示方式,循環(huán)數(shù)據(jù)庫(RRD, RobinDatabase) RRDtool 出 I/O 能mem-RRD RRDtoolmem-RRDMooseFS 5結(jié)束時間序列數(shù)據(jù)是生產(chǎn)生活中信息的重要表示方式,循環(huán)數(shù)據(jù)庫(RRD, RobinDatabase) RRDtool 出 I/O 能mem-RRD RRDtoolmem-RRDMooseFS RRDtool mem-RRD,包括與客戶端的通信協(xié)議、mem-I/Omem-RRD MooseFS 系統(tǒng)可以較好地滿足I/O性能mem-RRD MooseFS 1) mem-RRD RRD 就會全部丟失。為了能在

59、 RRD 對所有的RRD數(shù)據(jù)庫的操作,如果內(nèi)存中 對所有的RRD數(shù)據(jù)庫的操作,如果內(nèi)存中RRD數(shù)據(jù)異常丟失,考慮到操作日志的大小不能太大,由于 mRRDcachewriter RRD 數(shù)據(jù)寫到磁盤后,操作日志中此前的操作就都可刪除,所以可以可以在每次數(shù)據(jù)沖刷后將日志清空。為了避免日志造成較大的I/O負荷mRRDlibupdate, fetch, graph(如 tune,restore)可能會讀寫 RRD 的頭部和數(shù)據(jù)部分。mem-RRD 目前尚致謝和。!致謝和。!參考文趙澄東, 王艷麗(6): 32-.及分析. 福建電腦, 2009, Brutlag JD. Aberrant g. In:

60、Proceedings of the 14th ime Series for Network on Systems Administration, 2000. 沈俊, 顧冠群, 羅軍舟. 網(wǎng)絡(luò)管理的研究和發(fā)展. 參考文趙澄東, 王艷麗(6): 32-.及分析. 福建電腦, 2009, Brutlag JD. Aberrant g. In: Proceedings of the 14th ime Series for Network on Systems Administration, 2000. 沈俊, 顧冠群, 羅軍舟. 網(wǎng)絡(luò)管理的研究和發(fā)展. 計算機研究與發(fā)展, 2002, 0): 115

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論