[張震偉 馬雁云]
基于超元數(shù)據(jù)緩存的高速數(shù)據(jù)訪問系統(tǒng)
[張震偉 馬雁云]
存儲區(qū)域網(wǎng) 光纖通道 文件系統(tǒng) 緩存 超元數(shù)據(jù)
張震偉
華為技術有限公司,南京研究所,中級工程師,碩士研究生,非CCF會員,主要研究方向:軟件技術在通信中的應用。
馬雁云
南京郵電大學檔案館,中級工程師,碩士研究生,非CCF會員,主要研究方向:軟件技術在通信中的應用。
隨著Internet技術的迅猛發(fā)展,網(wǎng)絡上的數(shù)據(jù)信息已經(jīng)呈爆炸式增長,網(wǎng)絡服務器需要存儲的信息和數(shù)據(jù)也越來越多,對服務器存儲容量要求不斷提高,導致簡單的內(nèi)部存儲從容量上已經(jīng)無法滿足這一境況,用戶對于數(shù)據(jù)傳輸可靠性或數(shù)據(jù)傳輸速率等方面的要求也越來越高。因此,服務器存儲“外部化”已經(jīng)成為必選的策略。為服務器提供專用的外部存儲環(huán)境,充分利用最新的存儲硬件技術和網(wǎng)絡技術,才能夠最終滿足對大容量數(shù)據(jù)快速可靠的存儲、精確高效的訪問和安全穩(wěn)定的備份等需求。
1.1直連式附加存儲(Direct Attached Storage,DAS)
在存儲功能“外部化”的發(fā)展歷程中最先被設計出的存儲體系架構被稱為DAS[1,2,3,4],在現(xiàn)在的部分網(wǎng)絡環(huán)境中仍然被使用。其特點是磁盤陣列(Redundant Array of Independent Disk,RAID)等存儲設備通過總線技術直接連接到計算機的系統(tǒng)總線上,而計算機既作為應用服務器,同時作為存儲服務器,響應客戶機的訪問請求后,訪問直連的存儲設備并返回數(shù)據(jù)給客戶[5]。這是一種以服務器為中心的存儲體系結(jié)構,在更高要求的場合存在較多問題:存儲設備只存在于單一的服務器,不同服務器的存儲設備不能共享,利用率不高;不同服務器的存儲設備不能相互備份,安全性不高;當存儲設備越來越多后,需要在更長距離和服務器連接,此技術上的連線距離有限,增加存儲設備等變更操作困難;各個NAS設備之間的數(shù)據(jù)信息不容易聚合,而且NAS的集中式結(jié)構容易產(chǎn)生單點故障失效問題等[6]。為了部分解決問題,出現(xiàn)了將數(shù)據(jù)從通用的應用服務器中分離出來,建立專門的存儲子系統(tǒng)服務器的技術,跨越了機內(nèi)存儲。
這種技術通過專用電纜將服務器總線和存儲設備連接,并通過小型計算機系統(tǒng)接口(Small Computer System Interface,SCSI)協(xié)議和指令來存取數(shù)據(jù)。但本質(zhì)上這種方案和DAS還是統(tǒng)一形式,具有DAS的各種缺點。
1.2網(wǎng)絡附加存儲(Network Attached Storage,NAS)
為了解決DAS的各種問題,逐漸發(fā)展出了NAS網(wǎng)絡附加存儲技術。它通過網(wǎng)絡文件系統(tǒng)(Network File System,NFS)和公用網(wǎng)絡文件系統(tǒng)(Common Internet File System,CIFS)等標準化的協(xié)議提供文件級的數(shù)據(jù)訪問。
在NAS網(wǎng)絡中,計算機系統(tǒng)是通過文件重定向器從一個NAS中得到的數(shù)據(jù)。當一個用戶/應用試圖通過網(wǎng)絡訪問NAS中的數(shù)據(jù)時,重定向器把對本地文件系統(tǒng)的本地路徑重定向到使用TCP協(xié)議的網(wǎng)絡操作系統(tǒng)而連接到某個遠程服務器,服務器上運行的軟件提供支持多個客戶訪問的文件系統(tǒng)。
1.3區(qū)域存儲網(wǎng)絡(Storage Area Network,SAN)
SAN是通過專用高速網(wǎng)將一個或多個網(wǎng)絡存儲設備和服務器連接起來的專用存儲系統(tǒng)。如圖1 。SAN在最基本的層次上定義為互連存儲設備和服務器的專用光纖通道網(wǎng)絡,它在這些設備之間提供端到端的通訊,并允許多臺服務器獨立的訪問同一存儲設備。與局域網(wǎng)(Local Area Network,LAN)非常類似,SAN提高了計算機存儲資源的可擴展性和可靠性,使實施的成本更低,管理更輕松。
SAN網(wǎng)絡根據(jù)具體實現(xiàn)的協(xié)議不同被劃分為IP SAN和FC SAN兩種。其中IP SAN是伴隨著iSCSI協(xié)議的出現(xiàn)而逐步投入實際應用之中,它使用IP協(xié)議族,運行于高速以太網(wǎng)。而FC SAN相對目前應用更為廣泛,使用光纖通道(Fiber Channel,F(xiàn)C)協(xié)議族,運行于專門的光纖通道網(wǎng)絡之上。
圖1 SAN區(qū)域存儲網(wǎng)絡示意圖
文件系統(tǒng)是對文件存儲器空間進行組織分配,負責文件存儲并對存入的文件進行保護和檢索的系統(tǒng)[7][8]。文件系統(tǒng)中的數(shù)據(jù)一般包括兩部分:文件數(shù)據(jù)和元數(shù)據(jù)。其中,文件數(shù)據(jù)包括目錄數(shù)據(jù)和實際數(shù)據(jù);而元數(shù)據(jù)是用來組織和管理文件數(shù)據(jù)的數(shù)據(jù)。
隨著信息化時代的快速發(fā)展,各領域的數(shù)據(jù)信息量也迅速膨脹擴大。一般采用文件系統(tǒng)對海量的數(shù)據(jù)進行管理和存儲。由于這些存儲的數(shù)據(jù)需要隨時查閱或?qū)崟r更新,因此要求文件系統(tǒng)中的數(shù)據(jù)能夠方便快速地被訪問?,F(xiàn)有技術中,在對文件系統(tǒng)的數(shù)據(jù)進行訪問時,通常是通過磁頭尋道硬磁盤的方法來確定待訪問的數(shù)據(jù),即根據(jù)文件系統(tǒng)中各個磁盤之間的邏輯對應關系,查找到需要訪問的數(shù)據(jù)?,F(xiàn)有技術數(shù)據(jù)訪問方法中,定位待訪問數(shù)據(jù)都需要通過磁頭尋道硬磁盤來訪問待訪問數(shù)據(jù),這種方法由于受到磁盤機械結(jié)構的限制,導致了文件系統(tǒng)的響應時間增長,降低了服務質(zhì)量。
為了便于理解下面列舉一個訪問文件系統(tǒng)中數(shù)據(jù)的例子。例如文件系統(tǒng)中共有20個存儲塊,依次編號為0、1、2、3……19;如果此時需要訪問文件系統(tǒng)中的某一數(shù)據(jù),服務器首先找到的是第0號存儲塊,第0號存儲塊各級訪問請求中攜帶的信息(可以理解為線索信息),索引找到第3號存儲塊,在找到第3號存儲塊后,第3號存儲塊根據(jù)線索信息索引到第1號存儲塊,在找到第1號存儲塊后,第1號存儲塊根據(jù)線索信息索引找到第9號存儲塊,進而從第9號存儲塊中定位所要訪問的待訪問數(shù)據(jù)??梢?,訪問文件系統(tǒng)中的數(shù)據(jù)首先都需要經(jīng)過數(shù)個或數(shù)十個不同磁盤間相互查找的過程定位待訪問數(shù)據(jù),進而對待訪問數(shù)據(jù)進行訪問。
3.1本方案所要解決的問題
由于硬磁盤的機械結(jié)構限制,磁頭尋道時間大約要10毫秒,一個硬磁盤對隨機請求的響應率僅僅為每秒100個請求。即使是網(wǎng)絡存儲使用磁盤陣列的前提下,把請求分配到各個磁盤上,也很難突破每秒1 000個。
目前的緩存技術主要就是針對訪問過的數(shù)據(jù)進行高速的緩存,如果數(shù)據(jù)一段時間內(nèi)沒有被訪問就被替換出緩存。這種類型緩存的問題主要有兩個:
(1) 當大量訪問文件數(shù)據(jù)以后(比如拷貝巨大文件),以前緩存的目錄和文件系統(tǒng)的數(shù)據(jù)由于一段時間沒有使用就被替換出去,當訪問其他目錄的時候會出現(xiàn)一段時間非常緩慢的現(xiàn)象。這降低了服務器的服務質(zhì)量。
(2)訪問沒有訪問過的目錄或者文件花費的時間相對較長。
本方案提出了基于超元數(shù)據(jù)緩存的高速數(shù)據(jù)訪問,以使得應用服務器在訪問文件系統(tǒng)中的數(shù)據(jù),尤其是訪問目錄數(shù)據(jù)和元數(shù)據(jù)時,能夠快速響應應用服務器的數(shù)據(jù)訪問請求,提升服務質(zhì)量。
3.2 本方案實現(xiàn)的具體實施例
本方案通過在存儲網(wǎng)絡中增加獨立的緩存系統(tǒng),來加速文件系統(tǒng)的訪問速度。本方案中的緩存系統(tǒng)就是圖2中的超元數(shù)據(jù)緩存模塊。存儲系統(tǒng)是磁盤系統(tǒng)。服務器對存儲的訪問分為3類:超元數(shù)據(jù)塊的讀;超元數(shù)據(jù)塊的寫;數(shù)據(jù)塊的讀寫。
(1)元數(shù)據(jù)緩存模塊首先會從存儲系統(tǒng)中把所有的超元數(shù)據(jù)讀取出來,并且緩存。這個過程后面叫超元數(shù)據(jù)塊載入過程。
(2)超元數(shù)據(jù)緩存模塊收到服務器的文件數(shù)據(jù)塊請求。這個過程叫數(shù)據(jù)塊請求過程。
(3)超元數(shù)據(jù)緩存模塊把請求直接轉(zhuǎn)發(fā)給存儲系統(tǒng)。這個過程叫數(shù)據(jù)塊請求處理過程。
(4)超元數(shù)據(jù)緩存模塊收到服務器的元數(shù)據(jù)讀請求,直接把緩存的數(shù)據(jù)提交給服務器。這個過程叫超元數(shù)據(jù)塊讀請求處理過程。
(5)超元數(shù)據(jù)緩存模塊收到服務器的元數(shù)據(jù)寫請求,直接修改緩存中的數(shù)據(jù)。這個過程叫超元數(shù)據(jù)塊寫請求處理過程。
(6)然后把修改的緩存數(shù)據(jù)同步到存儲系統(tǒng)。
(7)檢查修改的超元數(shù)據(jù)緩存,如果有新的超元數(shù)據(jù)塊需要載入或者刪除,則載入或刪除新的超元數(shù)據(jù)塊。(在添加或刪除目錄和文件的時候可能會出現(xiàn))。
圖2 本方案實施實例
3.3本方案實施實例的數(shù)據(jù)訪問方法
代理服務器預先獲取存儲服務器的文件系統(tǒng)中所有的目錄數(shù)據(jù)和元數(shù)據(jù),并將目錄數(shù)據(jù)和元數(shù)據(jù)作為超元數(shù)據(jù)保存。本實施實例的數(shù)據(jù)訪問方法包括:接收應用服務器發(fā)起的數(shù)據(jù)訪問請求和超元數(shù)據(jù)更新操作請求。
為了為應用服務器提供其想要查找的數(shù)據(jù),首先需要接收應用服務器發(fā)起的數(shù)據(jù)訪問請求,判斷數(shù)據(jù)訪問請求是否為超元數(shù)據(jù)訪問請求,具體可以判斷數(shù)據(jù)訪問請求中索引信息指示的數(shù)據(jù)是否為目錄數(shù)據(jù)和元數(shù)據(jù)中的至少一個,如果“是”,對超元數(shù)據(jù)進行讀取或更新操作;如果“否”,將數(shù)據(jù)訪問請求發(fā)送至存儲服務器的文件系統(tǒng)。
在判斷出數(shù)據(jù)訪問請求的數(shù)據(jù)是超元數(shù)據(jù)的情況下,直接在預先保存的超元數(shù)據(jù)中找到索引信息指示的數(shù)據(jù)即可,進而根據(jù)數(shù)據(jù)訪問請求中的要求對索引信息指示的數(shù)據(jù)進行相應的讀取或更新操作。
應用服務器的數(shù)據(jù)訪問請求為超元數(shù)據(jù)訪問請求時,可以直接在預先保存的超元數(shù)據(jù)中查找,將索引信息指示的數(shù)據(jù)發(fā)送給應用服務器。
應用服務器可以對超元數(shù)據(jù)進行更新操作,更新操作包括數(shù)據(jù)增加、修改和刪除操作,針對不同的數(shù)據(jù)訪問請求,處理方法也不同,因此需要在確定數(shù)據(jù)訪問請求中索引信息指示的數(shù)據(jù)為超元數(shù)據(jù)的情況下,按照是否將原來不是超元數(shù)據(jù)的數(shù)據(jù)增加為超元數(shù)據(jù)的條件,進一步確定數(shù)據(jù)訪問請求為超元數(shù)據(jù)增加請求還是超元數(shù)據(jù)修改、刪除或讀取請求。
增加超元數(shù)據(jù),從文件系統(tǒng)中獲取超元數(shù)據(jù)中不存在的數(shù)據(jù),并加入到超元數(shù)據(jù)中。
修改超元數(shù)據(jù),可能是將一些原來不是超元數(shù)據(jù)的數(shù)據(jù)更新為超元數(shù)據(jù),也可能是將原來是超元數(shù)據(jù)的數(shù)據(jù)更新為文件數(shù)據(jù),而這些數(shù)據(jù)往往以存儲塊的形式存在的,因此,預先保存的超元數(shù)據(jù)可能就會從文件系統(tǒng)中載入新的超元數(shù)據(jù)塊,或刪除原有的超元數(shù)據(jù)塊。
上述方法不需要通過磁頭尋道硬盤的方法來訪問超元數(shù)據(jù),而是直接對緩存的超元數(shù)據(jù)進行讀取或更新操作,能夠快速響應應用服務器的超元數(shù)據(jù)訪問請求,并能夠?qū)?shù)據(jù)訪問請求對代理服務器中存儲的超元數(shù)據(jù)進行的操作同步到文件系統(tǒng)。該方法整體提升了存儲服務器的服務質(zhì)量。
3.4本方案實施實例的數(shù)據(jù)訪問裝置
本方案給出了2種數(shù)據(jù)訪問裝置:
數(shù)據(jù)訪問裝置1能夠?qū)来螆?zhí)行上述方案實施例中的步驟。緩存器預先獲取存儲服務器的文件系統(tǒng)中所有的目錄數(shù)據(jù)和元數(shù)據(jù),并將目錄數(shù)據(jù)和元數(shù)據(jù)作為超元數(shù)據(jù)保存。訪問接收模塊用于接收應用服務器發(fā)起的數(shù)據(jù)訪問請求,并將數(shù)據(jù)訪問請求發(fā)送給第一判斷模塊。第一判斷模塊用于接收訪問請求,可以是判斷數(shù)據(jù)訪問請求中索引信息指示的數(shù)據(jù)是否為目錄數(shù)據(jù)和元數(shù)據(jù)中的至少一個。
請求轉(zhuǎn)發(fā)模塊用于在第一判斷模塊的判斷結(jié)構為“否”的情形下,將數(shù)據(jù)訪問請求發(fā)送至存儲服務器的文件系統(tǒng);超元數(shù)據(jù)模塊用于在第一判斷模塊的判斷結(jié)果為“是”的情況下,對超元數(shù)據(jù)進行讀取或更新操作。超元數(shù)據(jù)操作模塊結(jié)構包括數(shù)據(jù)獲取模塊獲取數(shù)據(jù)訪問請求中索引信息指示的數(shù)據(jù);數(shù)據(jù)發(fā)送模塊用于將索引信息指示的數(shù)據(jù)發(fā)送給應用服務器,如圖3。
圖3 數(shù)據(jù)訪問裝置
數(shù)據(jù)訪問裝置2緩存器是預先獲取存儲服務器的文件系統(tǒng)中所有的目錄數(shù)據(jù)和元數(shù)據(jù),并將目錄數(shù)據(jù)和元數(shù)據(jù)作為超元數(shù)據(jù)保存。訪問接受模塊用于接收應用服務器發(fā)起的數(shù)據(jù)訪問請求,并將數(shù)據(jù)訪問請求發(fā)送給請求判斷模塊。請求判斷模塊用于接收訪問請求,判斷數(shù)據(jù)訪問請求是否為超元數(shù)據(jù)訪問請求。
請求轉(zhuǎn)發(fā)模塊用于在請求判斷模塊的判斷結(jié)構為“否”的情形下,將數(shù)據(jù)訪問請求發(fā)送至存儲服務器的文件系統(tǒng);超元數(shù)據(jù)模塊用于在請求判斷模塊的判斷結(jié)構為“是”的情況下,對超元數(shù)據(jù)進行的操作。超元數(shù)據(jù)操作模塊結(jié)構包括第二判斷模塊,判斷數(shù)據(jù)訪問請求中索引信息指示的數(shù)據(jù)中是否包括超元數(shù)據(jù)中不存在的數(shù)據(jù);第一處理模塊用于在第二判斷模塊的判斷結(jié)果為“是”時,從文件系統(tǒng)中獲取超元數(shù)據(jù)中不存在的數(shù)據(jù),并加入超元數(shù)據(jù);第二處理模塊用于在第二判斷模塊的判斷結(jié)果為“否”時,從數(shù)據(jù)訪問請求修改或刪除索引信息指示的數(shù)據(jù),如圖4。
圖4 數(shù)據(jù)訪問裝置
本方案中數(shù)據(jù)訪問裝置可以是代理服務器。代理服務器能夠預先獲取文件系統(tǒng)中所有的目錄數(shù)據(jù)和元數(shù)據(jù),并將目錄數(shù)據(jù)和元數(shù)據(jù)作為超元數(shù)據(jù)保存。之后,代理服務器接收應用服務器發(fā)起的數(shù)據(jù)訪問請求,判斷數(shù)據(jù)訪問請求中索引信息指示的數(shù)據(jù)是否為目錄數(shù)據(jù)和元數(shù)據(jù),如果是,對超元數(shù)據(jù)進行讀取或更新操作;如果否,將數(shù)據(jù)訪問請求發(fā)送至文件系統(tǒng)。代理服務器不需要通過磁頭尋道硬磁盤的方法來訪問超元數(shù)據(jù),而是直接對緩存的超元數(shù)據(jù)進行訪問,能夠快速的響應應用服務器的數(shù)據(jù)訪問請求,提升了存儲服務器的服務質(zhì)量。
3.5本方案實施的數(shù)據(jù)訪問系統(tǒng)
本方案實施的數(shù)據(jù)訪問系統(tǒng)1包括存儲器和存儲器進行通信的處理器,存儲器中存儲處理器可執(zhí)行的程序代碼,程序代碼包括:
(1)用于獲取文件系統(tǒng)中所有的目錄數(shù)據(jù)和元數(shù)據(jù),并將目錄數(shù)據(jù)和元數(shù)據(jù)作為超元數(shù)據(jù)保存;
(2)用于接收應用服務器發(fā)起的數(shù)據(jù)訪問請求;
(3)用于判斷數(shù)據(jù)訪問請求是否為超元數(shù)據(jù)訪問請求;
(4)用于在(3)的判斷結(jié)構為“是”的情況下,對超元數(shù)據(jù)進行讀取或更新操作;
(5)用于在(3)的判斷結(jié)構為“否”的情況下,將數(shù)據(jù)訪問請求發(fā)送至存儲服務器的文件系統(tǒng)。
存儲器中存儲處理器用于獲取上述程序代碼,并執(zhí)行。
數(shù)據(jù)訪問系統(tǒng)1能夠通過處理器執(zhí)行存儲器中的操作指令,完成預先獲取文件系統(tǒng)中所有的目錄數(shù)據(jù)和元數(shù)據(jù),并將目錄數(shù)據(jù)和元數(shù)據(jù)作為超元數(shù)據(jù)保存;在接收到的應用服務器發(fā)起的數(shù)據(jù)訪問請求中索引信息指示的數(shù)據(jù)為目錄數(shù)據(jù)和/或元數(shù)據(jù)時,從預先保存的超元數(shù)據(jù)中確定索引信息指示的數(shù)據(jù);在索引信息指示的數(shù)據(jù)不是超元數(shù)據(jù)時,將數(shù)據(jù)訪問請求發(fā)送至文件系統(tǒng)等操作。
本方案實施的數(shù)據(jù)訪問系統(tǒng)2包括應用服務器、代理服務器和存儲服務器。存儲服務器擁有存儲文件系統(tǒng),應用服務器用于向代理服務器發(fā)起數(shù)據(jù)訪問請求。代理服務器用于預先獲取存儲服務器的文件系統(tǒng)中所有的目錄數(shù)據(jù)和元數(shù)據(jù),并將目錄數(shù)據(jù)和元數(shù)據(jù)作為超元數(shù)據(jù)保存;接收應用服務器發(fā)起的數(shù)據(jù)訪問請求,當數(shù)據(jù)訪問請求為超元數(shù)據(jù)訪問請求時,對超元數(shù)據(jù)進行讀取或更新操作;當數(shù)據(jù)訪問請求為非超元數(shù)據(jù)訪問請求時,將數(shù)據(jù)訪問請求發(fā)送至存儲服務器的文件系統(tǒng)。
該數(shù)據(jù)訪問系統(tǒng)中代理服務器不需要通過磁頭尋道硬磁盤的方法來訪問超元數(shù)據(jù),而是直接對緩存的超元數(shù)據(jù)進行讀取或更新操作,能夠快速的響應應用服務器的超元數(shù)據(jù)訪問請求,并能夠針對超元數(shù)據(jù)訪問請求的類型不同進行不同的操作,整體提升了存儲服務器的服務質(zhì)量。
4.1 實驗環(huán)境介紹
圖 5 實驗組網(wǎng)
本實驗的網(wǎng)絡環(huán)境如圖5,網(wǎng)絡中有5個設備,兩臺服務器,一臺FC交換機,一臺磁盤陣列以及cache設備。實驗過程中cache設備并不是始終接入網(wǎng)絡的。我們通過對比網(wǎng)絡中是否接入cache設備的目錄訪問效率來觀察cache設備的作用。
兩臺服務器配置intel i7處理器,2G內(nèi)存,并在服務器上運行ubuntu 14.04。然后我們在服務器上創(chuàng)建實驗所需要的目錄環(huán)境。首先,創(chuàng)建目錄test_dir,并在該目錄下創(chuàng)建1000個子目錄,然后在各個子目錄下面繼續(xù)創(chuàng)建100個子目錄,并在這些子目錄中的最后一個子目錄存放一個目標文件target。創(chuàng)建過程由下面腳本實現(xiàn):
4.2 簡單查找實驗和數(shù)據(jù)
首先,網(wǎng)絡中并不接入cache設備,登陸服務器,接著進入test_dir目錄,最后運行time find -name target命令并記錄運行時間。
然后,網(wǎng)絡中接入cache 設備,重復執(zhí)行time find -name target命令并記錄運行時間,單位為秒。多次實驗得到圖6數(shù)據(jù):
圖6 查找文件時間
圖6中縱軸表示時間,單位是秒,橫軸表示不同次查找。從圖6中可以看到接入cache以后,服務器查找文件的性能有少量的提升。在不接入cache的情況下,服務器多次查找同一個文件所花費的時間也是會下降的,這是因為服務器會使用內(nèi)存來做緩存,從而減少磁盤的訪問。
4.3復雜查找實驗和數(shù)據(jù)
4.2節(jié)中的實驗服務器只進行文件查找操作,并沒有任何的文件讀寫操作,現(xiàn)實情況并不存在這樣簡單的場景。所以本節(jié)我們構造復雜的實驗環(huán)境,首先我們在服務器后臺運行dd if=/dev/zero of=var/test bs=8k count=100000命令,其次運行進入test_dir目錄,運行time find -name target命令。最后對比cache服務器是否接入網(wǎng)絡的數(shù)據(jù)。多次實驗得到圖7數(shù)據(jù):
圖7 復雜文件查找時間
圖7縱軸表示時間,單位是秒,橫軸表示不同查找的編號。從圖7中可以看出當服務器進行大量文件訪問的時候,同時進行文件查找的效率是很低的,并且查找時間不穩(wěn)定,極大影響了用戶的體驗。其原因是文件訪問時服務器把大量的內(nèi)存用于緩存文件的內(nèi)容,此時進行目錄查找則需要多次的訪問磁盤,導致查找性能急速下滑。而接入cache設備以后,服務器在大量訪問文件的時候,同時查找的性能保持不受到任何的影響。
本方案不需要通過磁頭尋道硬盤的方法來訪問超元數(shù)據(jù),而是直接對緩存的超元數(shù)據(jù)進行讀取或更新操作,能夠快速響應應用服務器的超元數(shù)據(jù)訪問請求,并能夠?qū)?shù)據(jù)訪問請求對代理服務器中存儲的超元數(shù)據(jù)進行的操作同步到文件系統(tǒng)。該方法整體提升了存儲服務器的服務質(zhì)量。提高服務器文件系統(tǒng)加速,尤其是訪問目錄的時候,縮短服務器集群主備切換時間。
1Gibson G A,Meter R V.Network-attached storage architecture[J].Communication of the ACM,2000,43(11):11-17
2Phillips B.Have storage area networks come of age[J].Computer,1998,31(7):10-12
3Katz R H.Network-attached storage systems[C]// Proceedings of the Conference on Scalable High Performance Computing.Williamsburg,VA,USA,1992:68-75
4趙躍龍等.一種智能網(wǎng)絡磁盤(IND)存儲系統(tǒng)結(jié)構[J].計算機學,2008,5:859
5謝勝彬等.DAS、NAS與SAN的研究與應用[J].計算機與現(xiàn)代,2003,7:8
6Yokota H.Autonomous disks for advanced database applications[C]//Proceedings of the 1999 International Symposium on Database Applications in Non-Traditional Environments(DATE'99).Kyoto,Japan,1999:435-442
7Ghemawat S,Gobioff H,Leung S.The Google file system[C]//Proceedings of the 19th ACM Symposium on Operating Systems Principles.New York,USA,2003:29-43
8Weil S A,Brandt S A,Miller E L,et al.Ceph:A scalable,high-performance distributed file system[C]//Proceedings of the 7th Symposium on Operating Systems Design and Implementation.San Diego,USA,2006:102-118
10.3969/j.issn.1006-6403.2016.09.007
2016-07-04)
針對訪問被替換出緩存的數(shù)據(jù)需要時間較長的問題,提出來一種基于超元數(shù)據(jù)的高速數(shù)據(jù)訪問系統(tǒng)。首先,代理服務器預先獲取文件系統(tǒng)中所有的目錄數(shù)據(jù)和元數(shù)據(jù),并將目錄數(shù)據(jù)和元數(shù)據(jù)作為超元數(shù)據(jù)保存,然后,接收應用服務器發(fā)起的訪問請求,當數(shù)據(jù)訪問請求為超元數(shù)據(jù)訪問請求時,對超元數(shù)據(jù)進行讀取或更新操作,當數(shù)據(jù)訪問請求為非超元數(shù)據(jù)訪問請求時,將數(shù)據(jù)訪問請求發(fā)送至存儲服務器。最后,由于代理服務器的存在,應用服務器不需要磁頭尋道硬盤來訪問超元數(shù)據(jù),直接對緩存的超元數(shù)據(jù)進行讀取或更新操作。實驗結(jié)果表明該系統(tǒng)能夠快速的響應應用服務器的數(shù)據(jù)訪問請求,提升存儲服務器的文件系統(tǒng)的服務質(zhì)量。