蘇文偉 張梅
摘 要:大數據和云計算技術的廣泛使用,對數據存儲空間也提出了更加嚴格的要求。云存儲就是借助于分布式文件系統(tǒng)、集群應用等功能,將不同類型的存儲設備進行整合利用,從而實現數據存儲和業(yè)務訪問等基本功能。在云存儲服務器中,元數據是文件系統(tǒng)中主要的訪問對象,因此必須通過加強元數據管理,切實保障元數據的可用性、安全性和完整性。本文首先對元數據管理的常用技術進行了概述,隨后提出了一種基于緩存技術的云存儲元數據管理方案,最后就云網盤系統(tǒng)的功能實現展開了簡要分析。
關鍵詞:云存儲;元數據管理;緩存技術;控制系統(tǒng)
引言:在分布式文件系統(tǒng)中,元數據管理系統(tǒng)發(fā)揮著不可替代的重要價值,并且元數據管理中所用技術的配套程度,也會直接對文件系統(tǒng)的整體性能產生影響?,F階段云存儲環(huán)境下元數據的管理技術主要有哈希算法、映射法等,但是在實際應用中都存在一定的缺陷。本文提出了一種適應云存儲環(huán)境的元數據緩存替代策略,并在此基礎上提出了云網盤系統(tǒng)設計方案,對解決現階段元數據管理中存在的一些問題有一定的借鑒意義。
一、云儲存中元數據管理的概述
1、數據與元數據
云存儲中的文件內容主要包括兩種類型,一種是數據,另一種是元數據。數據就是二進制的文件內容,而元數據則是關于描述文件屬性的詳細信息。從功能定位上來看,元數據還包含了數據的一些特征或屬性,此外還可以根據外部使用和管理需求,完成定位、檢索、選擇等功能。元數據格式如表1所示。
2、元數據管理的目標
以往元數據管理只能在獨立的云存儲分布式數據管理系統(tǒng)中進行,為了更好的適應不同需求下的元數據存儲和訪問需求,需要實現跨系統(tǒng)的元數據管理,并且要保證系統(tǒng)響應的及時性和高效性,為用戶提供便捷的數據管理服務。簡單來說,基于云存儲的元數據管理目標,就是要兼顧大容量、高擴展性和高訪問效率。此外,要求元數據管理系統(tǒng)還能夠根據需求進行動態(tài)擴展,以降低后期訪問和管理的成本。
3、元數據管理的重要性
一方面,元數據作為云存儲服務器中訪問頻率最高的數據,必須要保證其可靠性和準確性,這是由系統(tǒng)運行模式決定的。云存儲中的文件被用戶訪問時,首先需要經過客戶端登錄操作,此時云存儲服務器會對訪問權限進行檢查,只有具備讀寫權限才能獲取讀取文件中包含的元數據。另外,元數據和文件數據之前存在前后邏輯關系,只有先訪問元數據,才能后訪問文件數據。這樣用戶的訪問信息就會被記錄下來,避免了非法訪問或越權操作。另一方面,元數據本身占據的存儲資源十分微小,如果在同一時間內有大量的訪問信息同時作用于小文件,可能會造成系統(tǒng)數據傳輸通道擁堵。通過技術手段加強元數據管理,可以避免此類問題的發(fā)生。
二、引入緩存技術的元數據管理策略
1、基于時間特性的策略
現階段關于時間特性的算法主要有兩種:一種是MIN算法,當云存儲服務器上的存儲空間接近上限,而此時又有新的數據需要存儲時,系統(tǒng)會根據已經設定的篩選條件,自動淘汰掉一部分緩存數據。這些緩存數據通常被系統(tǒng)認定為無價值或長期沒有被訪問的。但是MIN算法中對于系統(tǒng)設定條件的要求過于嚴格,否則會造成元數據的誤刪除。另一種是FIFO算法,同樣是在存儲服務器上的存儲空間接近上限的情況下,按照元數據存入時間的先后順序,先存入的元數據被替換掉。這種算法執(zhí)行起來較為簡單,但是管理精確性不高。
2、基于頻率特性的策略
LFU算法的原理是檢測元存儲系統(tǒng)一段時間一來訪問次數最少的數據塊,然后將其淘汰掉,并引入新的數據塊進行替代。LFU算法應用的基本前提是,云存儲服務器上的各個存儲單元或數據塊,因為頻率不同所以可以看做是相互獨立的個體。如果某一數據塊被訪問的次數越多,那么他的使用頻率就會相應的升高。系統(tǒng)可以直接記錄在某一特定時間段內數據塊的訪問次數,這樣就降低了元數據管理的難度。但是LFU算法在應用中也有一些不足,例如在運算過程中會占用較多的系統(tǒng)資源,訪問數據不能及時清除容易造成緩存污染等。
3、時間與頻率相結合的策略
LIRS算法是一種在LRU算法基礎上進行改良的新型緩存替換算法,大量的實踐已經表明LRU算法存在兩項不足,一項是在掃描緩存過程中,可能造成緩存污染,另一項是命中率不是十分理想,LIRS算法的提出正是為了解決這兩項不足,LIRS改進了LRU算法中的替換因素,這里用R來表示,R并不代表時間,而是代表每個緩存數據最后兩次的訪問之間間隔了多少個不重復的緩存數據。在算法運行中,如果現有的緩存數據需要被替換,那么該算法會根據R值作為唯一判定依據,將R值最大的緩存數據作為首選的淘汰目標。
4、基于云存儲的元數據緩存管理策略
上述幾種元數據管理方法,管理重點主要集中在如何快速查詢元數據和優(yōu)化設計元數據管理與存儲結構。但是在元數據的實際應用中,除了要重視元數據的訪問特性外,存儲容量、讀寫次數以及管理流程等,都是影響云存儲環(huán)境下元數據管理效率的關鍵因素。另外,現階段云儲存中對元數據管理能夠構成直接影響的節(jié)點主要有三方面,分別是客戶端節(jié)點、存儲控制節(jié)點和數據存儲節(jié)點。其中,存儲控制節(jié)點能夠對來自不同服務器上的元數據進行篩選處理,在元數據管理中發(fā)揮著核心作用。本文提出的一種元數據緩存管理策略,能夠將元數據以緩存形式保存早云存儲服務器中,這就降低了元數據丟失或損壞的記錄,極大的提高了元數據管理的安全性和完整性。
三、云網盤系統(tǒng)的實現
1、系統(tǒng)的結構組成
云存儲服務是位于云平臺的PaaS層的。PaaS層中,淺色部分的元數據存儲集群、數據存儲集群、賬戶管理服務器和認證與授權服務器是利用的現有的開源軟件提供一些基本的數據存儲功能。其中,元數據存儲集群采用的是MongoDB非關系數據庫,數據存儲集群采用的是FastDFS分布式文件系統(tǒng)集群,賬戶管理服務器和認證與授權服務器顧名思義提供相應的服務,是基于OpenAM對相關功能進行的封裝。
2、系統(tǒng)主體功能設計
在云存儲環(huán)境下,數據和元數據分別獨立存放,在進行系統(tǒng)主體功能設計時,也必須進行相應的元數據服務設計。此外,云存儲作為一個相對開放的環(huán)境,也需要兼顧安全性問題,這些在系統(tǒng)主體功能設計時都應當有所體現。系統(tǒng)主體功能包括:(1)元數據系統(tǒng),主要用來存儲、管理元數據;(2)存儲服務器引擎,主要完成不同服務器之間的功能調度,并為元數據提供緩存區(qū);(3)訪問控制系統(tǒng),對用戶賬戶進行管理,包括賬戶登錄、口令驗證等;(4)運維系統(tǒng),包括系統(tǒng)故障預警與處理,權限管理等。
3、存儲服務器引擎設計
存儲器服務引擎的主要功能是為整個存儲服務系統(tǒng)中的用戶提供數據接口,存儲服務引擎封裝了對訪問控制子系統(tǒng)和元數據子系統(tǒng)的REST接口訪問,稱之為代理。另外,為了方便用戶通過REST接口調用系統(tǒng)的存儲服務,存儲服務引擎提供了相應的客戶端API,它是一個jar包,客戶端程序只需要導入該jar包,就可以直接調用其中封裝了對相應REST接口進行請求的函數來調用REST服務。存儲服務引擎的邏輯結構如圖2所示。
訪問控制代理模塊和元數據緩存管理模塊如圖所示,它們也是存儲服務引擎的一部分,服務使用者對這兩類服務的調用都通過該代理進行。這兩個代理是對訪問控制子系統(tǒng)和元數據子系統(tǒng)的簡單封裝,目的是避免將這兩個子系統(tǒng)中的相關服務器暴露出來。
4、元數據緩存模塊
如上文所述,用戶的元數據訪問請求,必須先得到存儲服務引擎的響應,然后才能根據用戶訪問的關鍵字,在存儲服務器中查找是否有與之相匹配的元數據。如果有完美匹配的數據,則將其發(fā)送到客戶端,用戶可以選擇瀏覽或下載;如果沒有匹配數據,一方面是將未匹配信息反饋給用戶,同時將此條信息存儲到元數據數據庫中,當有符合關鍵詞的信息后,自動進行存儲。這樣就實現了元數據緩存模塊的自動更新和補充,為用戶查找信息提供了諸多方便。需要注意的是,元數據緩存模塊中的數據,并不會永久保存,會定期進行覆蓋和更換,對于有保存價值的數據信息應當及時轉移。
5、文件數據讀寫模塊
該模塊主要完成三部分功能,分別是:(1)文件上傳。根據單次上傳文件的完整度,可以分為整體上傳和分塊上傳兩種模式,整體上傳就是直接將文件以文件流的形式,打包發(fā)送到存儲器中,然后在云存儲服務器中記錄文件上傳信息。整體上傳由于受到傳輸流量的限制,一般只針對一些容量較小的文件。此外,在整體上傳中,如果出現網絡中斷,也會導致文件傳輸失敗,需要重新上傳。分塊上傳則彌補了這一缺陷,但是上傳時間較長。(2)文件下載。根據用戶需要,從云存儲服務器中下載制定文件到客戶端。相應的,文件下載中也分為整體下載和分塊下載,原理同上。(3)文件刪除。對于無效的或是沒有保存價值的文件,需要及時刪除,避免占用存儲空間。
6、服務器主動同步注冊
在云儲存模式下,保證數據的同步既是難點,又是重點。為了提高不同服務器中數據同步響應的速率,可以通過在系統(tǒng)外部提供數據傳輸接口的方式來實現。這種基于外部接口的數據同步,需要服務器主動發(fā)出調控指令,因此稱之為主動同步。同時,在各臺服務器中設置同樣的數據調控頻率,每隔一定時間完成一次數據對比,以便于協調不同服務器之間的數據協同性。服務器主動同步注冊的形式一般有兩種:第一種是在常規(guī)環(huán)境下,先由某一臺服務器發(fā)送注冊主動同步服務請求,對方服務器接受請求后,對比注冊信息,完成同步;第二種是出現數據異常變化的環(huán)境下,先查詢用戶主動同步的關鍵詞,然后在對方服務器中搜索到匹配的關鍵詞,然后完成元數據的替換。
7、元數據管理系統(tǒng)架構
隨著云存儲系統(tǒng)中元數據的不斷增加,傳統(tǒng)的管理方式不僅效率較低,而且不能保證元數據的安全。為了提高元數據管理效率,需要引進專門的存儲服務引擎和獨立的元數據管理服務器。兩者之間可以進行數據的交互,在元數據存儲服務引擎中,有專門的存儲單元,負責接收來自元數據管理服務器中的請求。同時,管理服務器也能夠動態(tài)的監(jiān)控云存儲系統(tǒng)的運行狀態(tài),并按照設定好的頻率,每隔一定時間發(fā)送一次運行狀態(tài)。在構建元數據管理系統(tǒng)架構時,需要依次完成“創(chuàng)建文件元數據模塊”、“發(fā)布創(chuàng)建請求”、“讀取并識別元數據模塊”等一系列操作,最終在存儲服務器中建立緩存文件,然后完成元數據的流程化管理。
8、訪問控制系統(tǒng)
為了保證云存儲環(huán)境下元數據的安全性,設置了訪問控制系統(tǒng),對所有訪問系統(tǒng)的用戶進行權限確認,只有符合權限的用戶才能夠進入系統(tǒng)內部。該系統(tǒng)主要的功能結構分別是賬戶管理模塊、賬戶認證模塊與登錄管理模。訪問控制的功能圖如圖3所示。
在整個訪問控制系統(tǒng)中,賬戶管理可以為用戶提供多種服務,包括用戶信息的錄入、存儲以及定期更新等。在該模塊設置中,系統(tǒng)的安全性尤其重要,必須要保證內部存儲用戶信息的安全與完整。賬戶認證和授權模塊,主要提供登錄和注銷服務。
9、運維管理系統(tǒng)
在整個系統(tǒng)運行過程中,需要運維管理系統(tǒng)負責做好系統(tǒng)運行工況的動態(tài)監(jiān)測。一旦系統(tǒng)運行出現問題,也可以及時發(fā)出警報,運維技術人員根據系統(tǒng)報警確定故障發(fā)生位置,進而采取針對性的處理措施,保障元數據的完整性與安全性。在整個運維管理系統(tǒng)中,最核心的部分是運維管理服務器,運維技術人員可以在服務器界面上隨時掌握系統(tǒng)的基本運行信息。服務器除了能夠接受管理員客戶端發(fā)送的各種控制指令外,還能夠在程序控制下獨立完成數據收集、指令傳達和故障碼存儲等工作。已經出現并被解決的故障,會存儲到獨立的數據庫中,這樣今后如果出現類似故障,運維系統(tǒng)就可以自動解決。
結語:在元數據管理中引入緩存技術,既是在傳統(tǒng)元數據管理方法上的一種嘗試和創(chuàng)新,同時也很好的符合了云存儲環(huán)境下用戶訪問的需求,從理論上來說具有可行性。 通過后期仿真試驗,也證明了該技術在實際應用中的價值。在仿真中,基于元數據緩存代替技術能夠有效提高系統(tǒng)服務器的相應速率,提高了系統(tǒng)允許負載,進一步提高了云存儲中元數據的管理效率。
參考文獻:
[1]崔紀鋒,張勇,李超,等.C4S2-243:面向云存儲的空間索引技術研究[C]//中國云計算與saas大會.2015.
[2]李東陽,劉鵬,田浪軍.基于SSD的云存儲主服務器元數據管理研究[J].計算機技術與發(fā)展,2013(10):68-71.