亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        NTFS 文件系統(tǒng)空間回收方法的研究

        2014-12-02 01:12:10齊嬋穎李戰(zhàn)懷豐文雄張瑞杰
        計(jì)算機(jī)工程 2014年8期
        關(guān)鍵詞:檢測(cè)

        齊嬋穎,李戰(zhàn)懷,張 曉,豐文雄,張瑞杰

        (西北工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,西安 710129)

        1 概述

        云存儲(chǔ)在工業(yè)和學(xué)術(shù)界一直是一個(gè)熱點(diǎn)[1]。虛擬化技術(shù)中的自動(dòng)精簡(jiǎn)配置技術(shù)已廣泛應(yīng)用于云存儲(chǔ)中來(lái)實(shí)現(xiàn)動(dòng)態(tài)資源分配功能[2]。該技術(shù)提供的是運(yùn)行時(shí)空間,可以顯著減少已分配但未使用的存儲(chǔ)空間。自動(dòng)精簡(jiǎn)配置擴(kuò)展了存儲(chǔ)管理功能,可以用較小的物理容量為操作系統(tǒng)提供超大容量的虛擬存儲(chǔ)空間[3]。然而該技術(shù)會(huì)造成在應(yīng)用釋放申請(qǐng)的空間后,存儲(chǔ)系統(tǒng)難以及時(shí)回收這些被釋放的空間,且存在回寫(xiě)緩存造成的數(shù)據(jù)不一致問(wèn)題。

        在SAN 環(huán)境下,若要存儲(chǔ)設(shè)備能有效回收主機(jī)文件系統(tǒng)所釋放的空間,則必須使存儲(chǔ)設(shè)備能感知主機(jī)文件系統(tǒng)對(duì)存儲(chǔ)空間的釋放行為。目前的主要文件系統(tǒng)在空間回收中均需要額外占用存儲(chǔ)資源,配合完成回收。

        針對(duì)空閑空間的回收問(wèn)題,目前國(guó)內(nèi)外主要研究有如下3 類(lèi):(1)Flash 文件系統(tǒng)的研究與設(shè)計(jì)中提出一種碎片回收技術(shù),通過(guò)搬移那些狀態(tài)為OUTUSE 的塊,擦除狀態(tài)為INVALID 的塊來(lái)實(shí)現(xiàn)回收。該方法需要維護(hù)一張無(wú)效數(shù)據(jù)塊-正常使用塊對(duì)應(yīng)表,該表是項(xiàng)目數(shù)為保留塊數(shù)的一個(gè)數(shù)組[4]。這種方法需要額外的存儲(chǔ)空間,存儲(chǔ)效率較低。(2)垃圾回收:存儲(chǔ)設(shè)備在經(jīng)過(guò)一段時(shí)間的分配使用后,會(huì)出現(xiàn)空閑區(qū)和文件碎片,可能導(dǎo)致系統(tǒng)空間不夠用,JFFS2 文件系統(tǒng)采用建立內(nèi)核線程的方法來(lái)實(shí)現(xiàn)垃圾回收。首先重寫(xiě)塊的全部數(shù)據(jù),然后再擦除整個(gè)塊[5]。JFFS2 是一種典型的日志文件系統(tǒng),以節(jié)點(diǎn)的方式管理整個(gè)文件系統(tǒng)上的數(shù)據(jù)。而NTFS通過(guò)簇位示圖存儲(chǔ)數(shù)據(jù),該方法不適合NTFS 文件系統(tǒng)。(3)文件的刪除和反刪除技術(shù):當(dāng)文件被用戶或應(yīng)用程序刪除時(shí),文件并沒(méi)有立即從HDFS 刪除掉,而是被臨時(shí)存入/trash 目錄中,存留一段可配置的時(shí)間長(zhǎng)度。在此時(shí)間過(guò)期前可以實(shí)現(xiàn)反刪除,恢復(fù)文件。當(dāng)預(yù)留時(shí)間結(jié)束,HDFS 會(huì)自動(dòng)釋放與該文件相關(guān)的數(shù)據(jù)塊,完成刪除操作[6]。這種方法需要額外的存儲(chǔ)空間,當(dāng)刪除大量文件時(shí),會(huì)耗費(fèi)較多的系統(tǒng)資源,而且很難對(duì)頻繁的刪除操作做出及時(shí)的響應(yīng)。

        上述方法都存在不同程度的弊端,在釋放空間前,都需要占用額外的空間。而本文提出的SAN 環(huán)境下基于NTFS 文件系統(tǒng)簇位示圖的空間智能回收方法,不需要占用額外的空間,可以實(shí)現(xiàn)實(shí)時(shí)的空間回收,極大提高存儲(chǔ)利用率。該技術(shù)無(wú)需對(duì)每臺(tái)應(yīng)用主機(jī)附加額外的功能;在存儲(chǔ)端實(shí)現(xiàn)空間回收不但可靠性較高,而且對(duì)應(yīng)用的影響較小。

        本文采用如下方法實(shí)現(xiàn)SAN 環(huán)境下NTFS 文件系統(tǒng)中空閑空間的回收:由存儲(chǔ)端識(shí)別主機(jī)文件系統(tǒng)類(lèi)型,若為NTFS,則檢測(cè)關(guān)鍵區(qū)域元數(shù)據(jù),確定主機(jī)文件系統(tǒng)中的閑置存儲(chǔ)單元,根據(jù)映射關(guān)系確定其閑置的TP 頁(yè)數(shù)據(jù),系統(tǒng)在進(jìn)行數(shù)據(jù)一致性確認(rèn)之后,周期性地啟動(dòng)回收線程,進(jìn)行空閑空間的智能回收[7]。

        2 功能結(jié)構(gòu)和基本原理

        最基本的自動(dòng)精簡(jiǎn)配置按需分配給服務(wù)器的是資源池中的頁(yè)面而不是最初的存儲(chǔ)空間[8]。本文提出的ThinPro iSCSI Server 是一種具有自動(dòng)精簡(jiǎn)配置功能的存儲(chǔ)服務(wù)軟件。它通過(guò)容量虛擬和地址映射,可以實(shí)現(xiàn)基于一個(gè)較小容量的塊設(shè)備或文件系統(tǒng),對(duì)外提供多個(gè)可設(shè)置為較大容量的邏輯單元(LU)。

        ThinPro iSCSI Server 向外提供的服務(wù)是在配置文件中預(yù)先設(shè)置的,每一組磁盤(pán)服務(wù)稱(chēng)為一個(gè)target(目標(biāo)端),ThinPro iSCSI Server 可以同時(shí)向外提供多個(gè)target 并分別設(shè)置不同的權(quán)限。Initiator(客戶端)為發(fā)起服務(wù)端,向目標(biāo)端target 發(fā)起iscsi 服務(wù)請(qǐng)求。圖1 為iSCSI 服務(wù)端向外提供磁盤(pán)服務(wù)的整體結(jié)構(gòu)示意圖。

        在傳統(tǒng)的iSCSI 服務(wù)端,磁盤(pán)服務(wù)分為磁盤(pán)加載模塊、容量虛擬模塊、設(shè)備虛擬模塊、地址映射模塊、容量擴(kuò)充模塊以及I/O Trace 模塊。本文對(duì)傳統(tǒng)服務(wù)端進(jìn)行改進(jìn),增加了空間回收模塊,使其具有對(duì)上層應(yīng)用不再使用的空閑存儲(chǔ)空間進(jìn)行回收的功能。

        圖1 iSCSI 整體結(jié)構(gòu)

        該空間回收機(jī)制使得存儲(chǔ)系統(tǒng)可以檢測(cè)到上層應(yīng)用所釋放的存儲(chǔ)空間,并解除與物理存儲(chǔ)空間的映射關(guān)系,從而使該空間可以被再次分配給任一應(yīng)用,降低了發(fā)生過(guò)量提交的可能[9],同時(shí)推遲了預(yù)警和擴(kuò)容的時(shí)間,提高了存儲(chǔ)利用率??臻g回收模塊適時(shí)地配合其他模塊,組成一個(gè)有機(jī)體,使自動(dòng)精簡(jiǎn)配置向用戶提供一個(gè)有效、可用并具有較好性能的存儲(chǔ)服務(wù)。圖2 為T(mén)hinPro iSCSI Server 各個(gè)模塊間的關(guān)系。

        圖2 ThinPro iSCSI Server 內(nèi)部功能模塊

        3 NTFS 文件系統(tǒng)空閑空間檢測(cè)識(shí)別

        3.1 NTFS 文件系統(tǒng)識(shí)別

        主引導(dǎo)扇區(qū)MBR(Master Boot Record)是系統(tǒng)運(yùn)行時(shí)加載到內(nèi)存中的第一塊扇區(qū)[10]。在MBR 中每個(gè)分區(qū)記錄占用16 個(gè)字節(jié),MBR 中最多包含4 個(gè)分區(qū)的信息,而這4 個(gè)分區(qū)稱(chēng)為主分區(qū);不在MBR 中的分區(qū)信息稱(chēng)為擴(kuò)展分區(qū)。第一個(gè)擴(kuò)展分區(qū)的位置信息在MBR 中最后一個(gè)分區(qū)記錄中表示。

        NTFS 文件系統(tǒng)識(shí)別依據(jù)MBR 中每條分區(qū)記錄的第4 個(gè)字節(jié)內(nèi)容進(jìn)行判定。該條記錄可以識(shí)別出分區(qū)本身是文件系統(tǒng)類(lèi)型(FAT 或者NTFS)或者分區(qū)是否為擴(kuò)展分區(qū)(即該記錄指向擴(kuò)展分區(qū)信息所在扇區(qū)),用同樣的方法也可識(shí)別出擴(kuò)展分區(qū)的文件系統(tǒng)類(lèi)型。

        3.2 NTFS 文件系統(tǒng)簇位示圖的檢測(cè)識(shí)別

        當(dāng)用戶將硬盤(pán)的一個(gè)分區(qū)格式化為NTFS 分區(qū)時(shí),就建立了一個(gè)NTFS 文件系統(tǒng)結(jié)構(gòu)。NTFS 文件系統(tǒng)的元數(shù)據(jù)內(nèi)容保存在元文件$MFT(Master File Table 主文件表)中,指示了文件的關(guān)鍵屬性信息,甚至包括文件內(nèi)容。

        在NTFS 文件系統(tǒng)中,所有重要的元數(shù)據(jù)均以文件的形式存放,NTFS 文件系統(tǒng)的元數(shù)據(jù)結(jié)構(gòu)如圖3所示。

        圖3 NTFS 文件系統(tǒng)元數(shù)據(jù)結(jié)構(gòu)

        NTFS 文件系統(tǒng)是以簇為單位對(duì)磁盤(pán)空間和文件的存儲(chǔ)進(jìn)行管理。元文件$Bitmap(簇位示圖)描述了文件系統(tǒng)中簇的分配情況,在其數(shù)據(jù)屬性(80H屬性)中,以一個(gè)位代表一個(gè)簇是否被分配(0:未分配;1:已分配)。通過(guò)檢查$Bitmap 元文件中的所有位,可以得到該文件系統(tǒng)的空間使用情況。$Bitmap 元文件的讀取方法為:

        (1)確定NTFS 分區(qū)每個(gè)簇所占扇區(qū)數(shù),在DBR(主分區(qū)的引導(dǎo)扇區(qū))中0x0D(16 進(jìn)制偏移字節(jié))處,1 個(gè)字節(jié);每個(gè)扇區(qū)的字節(jié)數(shù)在DBR 中0x0B 處,2 個(gè)字節(jié)。

        (2)確定$MFT 的首簇:在DBR 中0x30 處,8 個(gè)字節(jié)。

        (3)計(jì)算$Bitmap 條目位置:將前2 步結(jié)果相乘得$MFT 首扇區(qū),加上12($MFT 為第0 個(gè)文件,$Bitmap 為第6 號(hào)文件,每個(gè)文件記錄一般占2 個(gè)扇區(qū))。

        (4)讀取$Bitmap 條目位置處2 個(gè)扇區(qū)。

        (5)從這2 個(gè)扇區(qū)0x30 處開(kāi)始找80H 屬性:讀8 個(gè)字節(jié),前4 個(gè)為屬性,如果小于80 繼續(xù),后4 個(gè)為此屬性所占字節(jié)(若為0,直接后移),一直到找到80 屬性。30 屬性是文件名,正好確定此文件是否確定是$Bitmap。

        (6)從80 屬性開(kāi)始處向后偏移0x40 字節(jié),此為本文件存放位置,其中,80H 屬性的第1 個(gè)未命名數(shù)據(jù)流也就是文件真正的數(shù)據(jù),由Run List(簇流表)記錄數(shù)據(jù)屬性,由Data Run(數(shù)據(jù)流)記錄其屬性體,即文件數(shù)據(jù)的具體地址。

        (7)此字節(jié)低4 位為簇?cái)?shù)字節(jié)數(shù),高4 位為首簇字節(jié)數(shù)[11]。

        (8)從Data Run 的下一個(gè)字節(jié)開(kāi)始,依次提取出Data Run 所占用的簇?cái)?shù)和Data Run 的起始簇號(hào),分別計(jì)算出$Bitmap 的起始偏移地址和結(jié)束偏移地址。

        3.3 空閑TP 頁(yè)區(qū)間的檢測(cè)識(shí)別

        主文件表$MFT 記錄了包括$Bitmap 在內(nèi)所有文件的基本信息。讀取起始扇區(qū)數(shù)據(jù)可以定位$MFT,檢索$MFT 即可查出$Bitmap 的文件記錄,繼而定位$Bitmap 文件位置。檢測(cè)文件系統(tǒng)的所有閑置簇,把得到的所有閑置簇區(qū)間映射到TP 頁(yè)的地址空間,進(jìn)而計(jì)算出存儲(chǔ)系統(tǒng)中對(duì)應(yīng)的閑置TP 頁(yè)頁(yè)號(hào)。將Thin LUN(精簡(jiǎn)邏輯單元號(hào))從0 開(kāi)始編址其地址空間,劃分為大小相等的TP 頁(yè),TP 頁(yè)大小可以在配置文件中設(shè)置。每個(gè)邏輯單元都包含一個(gè)邏輯卷,該邏輯卷可以格式化為任意文件系統(tǒng)。在本文中,將其格式化為NTFS 文件系統(tǒng),將簇偏移地址設(shè)定為cluster_offset。

        通過(guò)實(shí)時(shí)監(jiān)控元文件$Bitmap,若發(fā)現(xiàn)連續(xù)全0區(qū)間,記錄其起始0 位為cluster_no,0 的個(gè)數(shù)為cluster_cnt。從而得到區(qū)間(cluster_no,cluster_cnt),即為NTFS 文件系統(tǒng)的一個(gè)空閑區(qū)間。磁盤(pán)加載模塊記錄了0 號(hào)簇的偏移地址以及簇大小,TP 頁(yè)大小是在配置文件中預(yù)先設(shè)置的,用N 號(hào)簇的偏移地址除以TP 頁(yè)大小就可以得到N 號(hào)簇對(duì)應(yīng)的物理TP 頁(yè)號(hào)。以此類(lèi)推,用閑置簇區(qū)間可計(jì)算出對(duì)應(yīng)的嫌疑TP 頁(yè)物理區(qū)間。區(qū)間(clr_no,clr_cnt)對(duì)應(yīng)的候選起始TP 頁(yè)頁(yè)號(hào)Pstart及終止TP 頁(yè)頁(yè)號(hào)Pend計(jì)算分別為:

        通過(guò)計(jì)算,區(qū)間(cluster_no,cluster_cnt)對(duì)應(yīng)的可回收閑置TP 頁(yè)區(qū)間就是(Pstart,Pend– Pstart),即從Pstart頁(yè)號(hào)開(kāi)始的連續(xù)(Pend–Pstart)個(gè)TP 頁(yè)。

        4 回收策略

        頻繁地檢測(cè)簇位示圖,會(huì)產(chǎn)生過(guò)多無(wú)用的I/O操作,影響系統(tǒng)性能。部分解決方案采用由存儲(chǔ)管理員指定一檢測(cè)周期,周期性地全盤(pán)檢測(cè)并回收閑置空間,以平衡回收效率和系統(tǒng)I/O 性能。然而,用戶應(yīng)用的數(shù)據(jù)訪問(wèn)模式多種多樣且隨時(shí)間不斷變化,該方法難以針對(duì)每種應(yīng)用不同時(shí)刻的數(shù)據(jù)訪問(wèn)模式及時(shí)地調(diào)整回收策略。

        本文優(yōu)化了上述回收策略:當(dāng)上層應(yīng)用對(duì)數(shù)據(jù)進(jìn)行操作時(shí),NTFS 文件系統(tǒng)會(huì)自動(dòng)修改其簇位示圖。因此,實(shí)時(shí)監(jiān)控$Bitmap 區(qū)域的數(shù)據(jù),計(jì)算出可能空閑的TP 頁(yè)區(qū)間,存入檢測(cè)隊(duì)列。考慮到緩存的存在,對(duì)嫌疑TP 頁(yè)區(qū)間要進(jìn)行再次確認(rèn),在適當(dāng)時(shí)機(jī)回收確定的空閑區(qū)間,對(duì)應(yīng)基本處理流程如圖4所示。

        圖4 系統(tǒng)I/O 處理基本流程

        本文采取的回收觸發(fā)條件為:若檢測(cè)隊(duì)列中存在可能閑置的TP 頁(yè)區(qū)間則觸發(fā)回收。

        5 數(shù)據(jù)一致性

        5.1 緩存一致性問(wèn)題

        常用cache 算法有回寫(xiě)和透寫(xiě)2 種[12]。其中,透寫(xiě)緩存必須修改所有存在的數(shù)據(jù)實(shí)例,或者保證丟棄所有原數(shù)據(jù)的拷貝;而回寫(xiě)緩存一旦數(shù)據(jù)寫(xiě)到緩存中,就會(huì)發(fā)送寫(xiě)請(qǐng)求已完成信號(hào),而把數(shù)據(jù)寫(xiě)到非易失性存儲(chǔ)介質(zhì)上的實(shí)際操作將會(huì)延遲進(jìn)行。

        為了給應(yīng)用提供更快的響應(yīng),文件系統(tǒng)對(duì)其元數(shù)據(jù)和文件實(shí)體數(shù)據(jù)I/O 均采用回寫(xiě)緩存機(jī)制,這樣可以有效提高系統(tǒng)性能,但卻造成了潛在的數(shù)據(jù)丟失問(wèn)題。SAN 環(huán)境下,存儲(chǔ)設(shè)備無(wú)法感知到用戶主機(jī)緩存的存在,在存儲(chǔ)端直接讀取的用戶數(shù)據(jù)可能是過(guò)時(shí)的數(shù)據(jù),不能反映主機(jī)文件系統(tǒng)的最新空間使用情況。由于主機(jī)緩存所造成的數(shù)據(jù)一致性問(wèn)題,使得系統(tǒng)在存儲(chǔ)端很難根據(jù)讀取的文件系統(tǒng)元數(shù)據(jù)有效識(shí)別閑置空間。因?yàn)樵诖鎯?chǔ)端看到的閑置空間很可能在主機(jī)的緩存中已經(jīng)被標(biāo)識(shí)為已分配。此時(shí),若貿(mào)然進(jìn)行回收操作,很可能會(huì)破壞新寫(xiě)入的數(shù)據(jù),造成嚴(yán)重后果。

        5.2 數(shù)據(jù)一致性確認(rèn)方法

        為了避免緩存機(jī)制造成的數(shù)據(jù)不一致問(wèn)題,需要在空間回收前再次確認(rèn)數(shù)據(jù)一致性,基本流程如圖5 所示。

        圖5 回收線程中數(shù)據(jù)一致性確認(rèn)基本流程

        在任意時(shí)刻,當(dāng)檢測(cè)隊(duì)列中有待檢測(cè)區(qū)間時(shí),按順序取出檢測(cè)區(qū)間。先計(jì)算出當(dāng)前檢測(cè)區(qū)間A 對(duì)應(yīng)的嫌疑TP 頁(yè)區(qū)間B,若該嫌疑區(qū)間為空集,則順序?qū)ο乱粰z測(cè)區(qū)間進(jìn)行操作。否則,延遲時(shí)間T,計(jì)算與之前區(qū)間A 相關(guān)的區(qū)間A1 對(duì)應(yīng)的嫌疑TP 頁(yè)區(qū)間B1,若不為空集,且區(qū)間(B∩B1)不為空集,則區(qū)間(B∩B1)對(duì)應(yīng)的TP 頁(yè)確定可以回收,且更新檢測(cè)隊(duì)列。否則,說(shuō)明該區(qū)域已經(jīng)被再次操作。此時(shí),查看檢測(cè)隊(duì)列中是否還有區(qū)間,繼續(xù)如上操作。

        在滿足回收觸發(fā)條件之后,系統(tǒng)喚醒回收線程?;厥站€程讀取檢測(cè)隊(duì)列中的待檢測(cè)區(qū)間,針對(duì)待處理的當(dāng)前區(qū)間進(jìn)行閑置空間的判定。若其滿足閑置空間的條件,則使用上述方法進(jìn)行數(shù)據(jù)一致性確認(rèn):讀取寫(xiě)I/O 區(qū)間表計(jì)算其與當(dāng)前區(qū)間的交集區(qū)間,當(dāng)前區(qū)間中不在此交集區(qū)間的TP 頁(yè)確認(rèn)為當(dāng)前閑置的區(qū)間,可進(jìn)行回收,否則執(zhí)行延遲確認(rèn)。其中,延遲的數(shù)據(jù)一致性通過(guò)Linux 動(dòng)態(tài)定時(shí)器觸發(fā)延遲確認(rèn),確認(rèn)過(guò)程由系統(tǒng)工作隊(duì)列的event 線程執(zhí)行。

        6 實(shí)驗(yàn)與分析

        6.1 實(shí)驗(yàn)環(huán)境

        針對(duì)本文所述的NTFS 文件系統(tǒng)中基于簇位示圖的空間回收方法,擴(kuò)展了一個(gè)Linux 內(nèi)核模塊,應(yīng)用自動(dòng)精簡(jiǎn)配置技術(shù),實(shí)現(xiàn)了基于iSCSI 協(xié)議的存儲(chǔ)服務(wù),針對(duì)NTFS 文件系統(tǒng)的空間進(jìn)行了檢測(cè),并實(shí)現(xiàn)了自動(dòng)回收。拓?fù)浣Y(jié)構(gòu)如圖6 所示。實(shí)驗(yàn)平臺(tái)如表1 所示。

        圖6 軟件應(yīng)用平臺(tái)拓?fù)涫疽鈭D

        表1 實(shí)驗(yàn)環(huán)境說(shuō)明

        下面,首先判斷文件系統(tǒng)類(lèi)型,然后測(cè)試緩存一致性,其次測(cè)試空間回收效率,最后測(cè)試I/O 性能,并探討其間的關(guān)系。

        6.2 NTFS 文件系統(tǒng)的判斷

        文件系統(tǒng)類(lèi)型有多種,NTFS 文件系統(tǒng)因其諸多優(yōu)點(diǎn)而被廣泛使用。本文主要針對(duì)NTFS 文件系統(tǒng)做研究。首先測(cè)試文件系統(tǒng)類(lèi)型是否為NTFS,若為NTFS,則進(jìn)一步實(shí)現(xiàn)回收,若不是NTFS,則不做處理。

        設(shè)定虛擬磁盤(pán)容量為2 TB,啟動(dòng)iSCSI 服務(wù)后,當(dāng)磁盤(pán)未初始化時(shí),程序提示信息:The disc has not been initialized!當(dāng)初始化完成,格式化為NTFS 文件系統(tǒng)類(lèi)型,此時(shí),程序會(huì)加載MBR,識(shí)別NTFS 文件系統(tǒng),并記錄其相關(guān)信息,留待空間回收模塊使用。用磁盤(pán)管理查看到測(cè)試結(jié)果,如圖7 所示。

        圖7 NTFS 文件系統(tǒng)類(lèi)型識(shí)別

        6.3 一致性測(cè)試緩存

        由于主機(jī)緩存造成的數(shù)據(jù)一致性問(wèn)題,使得系統(tǒng)在存儲(chǔ)端很難根據(jù)讀取的文件系統(tǒng)元數(shù)據(jù)有效識(shí)別閑置空間。

        以NTFS 文件系統(tǒng)為例,在寫(xiě)入文件和刪除文件時(shí),對(duì)$Bitmap 數(shù)據(jù)的修改往往會(huì)遲于部分文件實(shí)體數(shù)據(jù)或目錄文件的修改。表2 反映了這種延遲現(xiàn)象,針對(duì)Windows 平臺(tái)下NTFS 文件系統(tǒng)3.1 版本,隨機(jī)測(cè)試在寫(xiě)入和刪除不同大小的文件時(shí)修改磁盤(pán)$Bitmap 操作的延遲時(shí)間td,其中該邏輯卷容量為1.1 GB,簇容量為1 024 B。

        表2 NTFS 文件系統(tǒng)磁盤(pán)$Bitmap 修改延遲時(shí)間測(cè)試結(jié)果

        可以看出,由于文件系統(tǒng)的回寫(xiě)緩存機(jī)制,使得在寫(xiě)入較小的文件時(shí),$Bitmap 元數(shù)據(jù)緩存刷新的延遲時(shí)間反而較大;而刪除文件時(shí),無(wú)論文件大小,文件系統(tǒng)寫(xiě)入的數(shù)據(jù)量基本一致,因此,延遲時(shí)間相差不大。

        這種由于緩存機(jī)制造成的數(shù)據(jù)不一致,其實(shí)質(zhì)是指示空間分配狀況的元數(shù)據(jù)所反映的存儲(chǔ)空間使用情況,與當(dāng)前實(shí)際的空間使用情況不同,未能反映最新空間分配狀態(tài)。

        在NTFS 文件系統(tǒng)中,設(shè)T 時(shí)刻系統(tǒng)檢測(cè)存儲(chǔ)端元文件$Bitmap 發(fā)現(xiàn)閑置區(qū)間A1,這只是在主機(jī)端$Bitmap 緩存數(shù)據(jù)最近一次沖洗到存儲(chǔ)端之后的空間分配狀態(tài);設(shè)此緩存沖洗時(shí)刻為T(mén)1,其中T1 <T。若在時(shí)刻T2(T1 <T2 <T)主機(jī)端寫(xiě)入文件數(shù)據(jù)并分配對(duì)應(yīng)存儲(chǔ)區(qū)間A2 且A1∩A2≠φ,則在時(shí)刻T發(fā)現(xiàn)的閑置區(qū)間A1 實(shí)際上是過(guò)時(shí)的。對(duì)區(qū)間A1 的回收會(huì)導(dǎo)致已經(jīng)寫(xiě)入的文件數(shù)據(jù)丟失,造成嚴(yán)重后果。

        由此可見(jiàn),緩存機(jī)制確實(shí)造成了數(shù)據(jù)不一致。因此,在回收過(guò)程中,維護(hù)一個(gè)寫(xiě)I/O 區(qū)間表,來(lái)保證數(shù)據(jù)的一致性非常必要。

        6.4 空間回收效率測(cè)試

        文件系統(tǒng)的空間回收效率可以用其空間使用量來(lái)衡量。分別在配置文件中更改TP 頁(yè)大小,對(duì)系統(tǒng)的空間使用量進(jìn)行測(cè)試,進(jìn)而探測(cè)其空間回收效率。

        測(cè)試條件:隨機(jī)生成文件的大小范圍為4 KB~1 MB,寫(xiě)入的文件總數(shù)為200 個(gè),總的大小為110 889 427 B。

        在測(cè)試客戶主機(jī)1 上掛載測(cè)試服務(wù)器所提供的Thin LUN(可視容量設(shè)定為2 TB),將其格式化為一個(gè)NTFS 文件系統(tǒng),記錄此時(shí)該Thin LUN 的空間使用量,即為元數(shù)據(jù)操作空間使用量(圖中格式化對(duì)應(yīng)數(shù)據(jù)值);然后將200 個(gè)測(cè)試文件寫(xiě)入該邏輯卷并記錄其空間使用量(寫(xiě)入數(shù)據(jù));接著刪除全部測(cè)試文件,記錄此時(shí)的使用量(刪除數(shù)據(jù))。

        圖8 反映了文件系統(tǒng)操作各階段的空間使用量,圖9 為回收效率測(cè)試曲線。

        從圖8 可以看出,在設(shè)定存儲(chǔ)設(shè)備和I/O 操作時(shí),TP 頁(yè)容量決定了系統(tǒng)的空間使用量和空間回收效率。當(dāng)設(shè)定較小的TP 頁(yè)時(shí),可以回收更多的空閑空間,實(shí)現(xiàn)更高效的存儲(chǔ)利用率。

        圖8 Thin LUN 空間使用量測(cè)試結(jié)果

        從圖9 看出,當(dāng)TP 頁(yè)大小設(shè)置在KB 級(jí)時(shí),回收效率可達(dá)90%以上。當(dāng)TP 頁(yè)大小設(shè)置為16 MB時(shí),回收效率下降比預(yù)期緩慢,是因?yàn)榛厥招矢喾N因素有關(guān),本次實(shí)驗(yàn)中,部分空閑元數(shù)據(jù)區(qū)域跟寫(xiě)入文件正好在同一空閑TP 頁(yè)中,恰好被回收了。

        圖9 Thin LUN 空間回收效率測(cè)試結(jié)果

        可以看出,針對(duì)傳統(tǒng)空間回收方法會(huì)額外占用系統(tǒng)資源的問(wèn)題,本文提出的基于簇位示圖的空間回收方法較好地實(shí)現(xiàn)了空閑空間的自動(dòng)檢測(cè)和智能回收,可以滿足頻繁操作對(duì)存儲(chǔ)空間的需求,極大提高了存儲(chǔ)利用率。與傳統(tǒng)回收方法相比,針對(duì)頻繁的寫(xiě)入操作,本算法節(jié)省了額外的開(kāi)銷(xiāo),具有更高效的存儲(chǔ)利用率。

        6.5 I/O 性能測(cè)試

        添加回收功能后,當(dāng)用戶進(jìn)行每次I/O 操作時(shí),系統(tǒng)都需要使用支持自動(dòng)精簡(jiǎn)配置的元數(shù)據(jù),由此進(jìn)行頻繁的讀取和寫(xiě)入,這樣會(huì)導(dǎo)致I/O 瓶頸,在提高存儲(chǔ)利用率的同時(shí),降低了I/O 性能。在測(cè)試客戶主機(jī)2 上使用Iometer 對(duì)目標(biāo)系統(tǒng)中Thin LUN 的I/O 吞吐量進(jìn)行測(cè)試。其中,Thin LUN 的可視容量設(shè)定為2 TB;根據(jù)文獻(xiàn)[13]中對(duì)文件存取模式的分析,設(shè)定Iometer 的讀操作所占比例為79%。

        圖10 顯示了當(dāng)傳輸塊大小為4 KB 時(shí),隨機(jī)I/O與順序I/O 的吞吐量。從圖中可以看出,當(dāng)塊傳輸大小確定后,順序I/O 吞吐量大于隨機(jī)I/O。在順序工作負(fù)載模式下,TP 頁(yè)大小對(duì)I/O 吞吐量影響不大,在隨機(jī)工作負(fù)載模式下,TP 頁(yè)大小對(duì)I/O 吞吐量的影響比較明顯。

        圖10 隨機(jī)I/O 與順序I/O 比較

        圖11 顯示了在隨機(jī)工作負(fù)載模式下,當(dāng)塊傳輸大小分為設(shè)置為16 KB、256 KB、1 MB 及16 MB 時(shí),I/O 吞吐量在不同TP 頁(yè)下的變化。

        圖11 I/O 性能測(cè)試

        從圖11 可以看出,當(dāng)TP 頁(yè)大小設(shè)定時(shí),傳輸塊大小越大,I/O 吞吐量越大。此外,TP 頁(yè)大小對(duì)I/O性能也有一定的影響。TP 頁(yè)越小,回收效率越高,但吞吐量不一定最大。因此,回收效率的提升對(duì)I/O性能有一定的影響。

        7 結(jié)束語(yǔ)

        本文采用自動(dòng)精簡(jiǎn)配置技術(shù)實(shí)現(xiàn)了存儲(chǔ)資源的按需分配。針對(duì)NTFS 文件系統(tǒng),提出了一種新的基于簇位示圖的空閑空間智能回收方法,解決了傳統(tǒng)空間回收方法需要占用額外系統(tǒng)資源的問(wèn)題。同時(shí),針對(duì)回寫(xiě)緩存,給出了數(shù)據(jù)一致性判斷方法,確?;厥湛臻g的準(zhǔn)確性。經(jīng)實(shí)驗(yàn)表明,本文方法可以解決緩存不一致的問(wèn)題,實(shí)現(xiàn)對(duì)NTFS 文件系統(tǒng)的自動(dòng)識(shí)別和空閑空間的智能回收,有效推遲容量預(yù)警和在線擴(kuò)容的時(shí)間,極大提高了存儲(chǔ)利用率。然而,如何在空間利用率和系統(tǒng)性能之間做出平衡和優(yōu)化,需要進(jìn)行進(jìn)一步的實(shí)驗(yàn)和研究。

        [1]Kamara S,Lauter K.Cryptographic Cloud Storage[C]//Proc.of Conference on Financial Cryptography and Data Security.Berlin,Germany:Springer,2010:136-149.

        [2]Wang Lizhe,Laszewski G,Younge A,et al.Cloud Computing:A Perspective Study[J].New Generation Computing,2010,28(2):137-146.

        [3]Veprinsky A,Michael O F,Scharland M J.Data Deduplication Using Thin Provisioning:USA,7822939[P].2010-10-26.

        [4]沈建華,羅悅懌.Flash 文件系統(tǒng)的研究與設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用研究,2005,21(12):246-248.

        [5]王 健,馮思春,陳良柱.JFFS2 文件系統(tǒng)存儲(chǔ)策略研究[J].微計(jì)算機(jī)信息,2008,24(8):68-69,83.

        [6]朱 珠.基于Hadoop 的海量數(shù)據(jù)處理模型研究和應(yīng)用[D].北京:北京郵電大學(xué),2008.

        [7]Foskett S.Monitoring Filesystem Metadata for Thin Provisioning[EB/OL].(2011-01-03).http://blog.fosketts.net/ 2011/01/03/monitoring-filesystem-metadata-thin-provisioning.

        [8]Foskett S.Thin Provisioning in Depth[EB/OL].(2011-04-01).http://searchstorage.techtarget.com/magazine Content/Thin-provisioning-in-depth.

        [9]Hines M R.,Gordon A,Silva M,et al.Applications Know Best:Performance-driven Memory Overcommit with Ginkgo[C]//Proc.of the 3rd International Conference on Cloud Computing Technology and Science.[S.l.]:IEEE Press,2011:130-137.

        [10]Fraser C,Cotichini C,Nguyen T C.Security Apparatus and Method:USA,20120275572[P].2012-11-01.

        [11]劉 偉.數(shù)據(jù)恢復(fù)技術(shù)深度揭秘[M].北京:電子工業(yè)出版社,2010.

        [12]韓樸杰,康慕寧,張 曉.自動(dòng)精簡(jiǎn)配置技術(shù)中空間回收方法的研究[J].計(jì)算機(jī)與現(xiàn)代化,2012,(12):168-173.

        [13]Vogels W.File System Usage in Windows NT 4.0[C]//Proc.of the 17th ACM Symposium on Operating Systems Principles.[S.l.]:ACM Press,1999:93-109.

        猜你喜歡
        檢測(cè)
        QC 檢測(cè)
        “不等式”檢測(cè)題
        “一元一次不等式”檢測(cè)題
        “一元一次不等式組”檢測(cè)題
        “幾何圖形”檢測(cè)題
        “角”檢測(cè)題
        “有理數(shù)的乘除法”檢測(cè)題
        “有理數(shù)”檢測(cè)題
        “角”檢測(cè)題
        “幾何圖形”檢測(cè)題
        一二三四在线视频社区3| 日本在线观看一区二区三| 国产无夜激无码av毛片| 高清亚洲精品一区二区三区| 亚洲视频专区一区二区三区 | 亚洲综合综合在线| 美利坚合众国亚洲视频| 人妻少妇精品视中文字幕免费| 老鸭窝视频在线观看| 久久国内精品自在自线图片| 午夜婷婷国产麻豆精品| 亚洲国产日韩综一区二区在性色| 美艳善良的丝袜高跟美腿| 亚洲国产精品一区二区www| 久久久久无码精品亚洲日韩| 粉嫩av一区二区在线观看| 亚洲精品一区三区三区在线| 国产又色又爽又黄刺激在线视频| 宅男噜噜噜| 波多野结衣一区二区三区视频| 青青草免费高清视频在线观看| 一区二区三区国产色综合| 亚洲av永久无码精品网址| 亚洲综合伊人制服丝袜美腿| 中文字幕一区二区va| 手机看片久久第一人妻| 幻女bbwxxxx在线视频| 中文字幕精品久久天堂一区| 免费在线观看草逼视频| av无码小缝喷白浆在线观看| 东北女人毛多水多牲交视频| 国产jk在线观看| 在线观看国产av一区二区| 精品亚洲国产成人蜜臀av| 制服丝袜人妻中文字幕在线| 女同亚洲女同精品| 成人综合亚洲欧美一区h| 成人av毛片免费大全| 中文 在线 日韩 亚洲 欧美| 日本午夜福利| 亚洲精品综合久久国产二区 |