趙俊澤
(福建師范大學(xué) 光電與信息工程學(xué)院通信工程(中英合作) 福建省福州市 350000)
在信息技術(shù)不斷發(fā)展的過(guò)程中,互聯(lián)網(wǎng)內(nèi)部數(shù)據(jù)和服務(wù)種類也在不斷增加,爆炸式增長(zhǎng)的網(wǎng)絡(luò)通訊量提高了互聯(lián)網(wǎng)系統(tǒng)的負(fù)擔(dān)。主要問(wèn)題就是互聯(lián)網(wǎng)內(nèi)部資源使用率比較低,部分應(yīng)用要求大量計(jì)算與存儲(chǔ)資源,其他的系統(tǒng)資源都是空閑的[1]。對(duì)于此問(wèn)題,要求對(duì)資源和計(jì)算能力的虛擬化問(wèn)題進(jìn)行解決,從而解決海量數(shù)據(jù)的管理和存儲(chǔ)問(wèn)題,通過(guò)分布式共享機(jī)制進(jìn)一步提高服務(wù)質(zhì)量。云南計(jì)算從提出到現(xiàn)在備受業(yè)界的重視,使IT行業(yè)的發(fā)展也有所改變。云計(jì)算屬于全新計(jì)算方式,基于網(wǎng)絡(luò)基礎(chǔ)架構(gòu)的虛擬化提高了數(shù)據(jù)存儲(chǔ)和處理的能力,使基于PC的信息處理模式得到改變。本文設(shè)計(jì)云計(jì)算平臺(tái)數(shù)據(jù)存儲(chǔ)與文件管理的方案,從而快速訪問(wèn)爆炸式增長(zhǎng)數(shù)據(jù)。
通過(guò)結(jié)構(gòu)化和非結(jié)構(gòu)化的數(shù)據(jù)構(gòu)成云計(jì)算平臺(tái)數(shù)據(jù),利用分布式數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)進(jìn)行管理。針對(duì)數(shù)據(jù)集,要求分布式數(shù)據(jù)庫(kù)創(chuàng)建長(zhǎng)期存儲(chǔ)報(bào)個(gè)。用戶在表格中存儲(chǔ)數(shù)據(jù),每行都設(shè)置數(shù)列與主鍵。因?yàn)榇嬖诓煌∈璩潭龋悦繌埍砀駜?nèi)部數(shù)據(jù)排序可以利用不同列實(shí)現(xiàn)。Label數(shù)值能夠?qū)⑺行懈淖儯ㄟ^(guò)表面結(jié)構(gòu)進(jìn)行改變。
分布式數(shù)據(jù)中的每個(gè)關(guān)系庫(kù)都存在一個(gè)目錄,在此目錄中存儲(chǔ)表數(shù)據(jù)文件,文件操作為數(shù)據(jù)庫(kù)內(nèi)部封閉操作,也就是使每行作為原子元素,全部元素加鎖。在對(duì)關(guān)系表更新之后標(biāo)記更新時(shí)間。數(shù)據(jù)更新之后版本也會(huì)更新,原本的版本存在數(shù)據(jù)內(nèi)部,通過(guò)時(shí)間對(duì)數(shù)值進(jìn)行設(shè)置。圖1為MapReduee實(shí)現(xiàn)機(jī)制,每行主鍵詞為反向URL,將網(wǎng)頁(yè)內(nèi)容存儲(chǔ)到基本陣列族中,通過(guò)錨點(diǎn)列族存儲(chǔ)網(wǎng)頁(yè)鏈接文本。對(duì)于每個(gè)錨鏈只有一個(gè)版本,對(duì)時(shí)間戳標(biāo)記。但是對(duì)于內(nèi)容表項(xiàng)能夠?qū)崿F(xiàn)多項(xiàng)化的版本。
將主從服務(wù)器結(jié)構(gòu)作為基礎(chǔ)實(shí)現(xiàn)服務(wù)器體系結(jié)構(gòu)的設(shè)計(jì),利用Masster對(duì)分布式數(shù)據(jù)庫(kù)進(jìn)行管理。節(jié)點(diǎn)服務(wù)器能夠注冊(cè)內(nèi)部slave服務(wù)器節(jié)點(diǎn),如果主服務(wù)器存在故障,就會(huì)導(dǎo)致系統(tǒng)癱瘓,能夠通過(guò)雙備份冗余機(jī)制使此問(wèn)題得到解決。利用從Master切換到主Master服務(wù)器中,得出服務(wù)器列表。將節(jié)點(diǎn)和主服務(wù)器保存在節(jié)點(diǎn)內(nèi)部,在其他電腦中分配不同的服務(wù)器。之后,根據(jù)數(shù)據(jù)列表的特征函數(shù),主服務(wù)器對(duì)感知節(jié)點(diǎn)位置進(jìn)行尤為重視,通過(guò)客戶端使用戶得到節(jié)點(diǎn)位置和元數(shù)據(jù)等信息。云計(jì)算表格數(shù)據(jù)庫(kù)和傳統(tǒng)數(shù)據(jù)庫(kù)不同,云計(jì)算具備較大的映射和排序量,屬于稀疏分布類型。基于此模式的映射數(shù)據(jù)庫(kù)為鍵-數(shù)據(jù)的映射模式,能夠簡(jiǎn)化數(shù)據(jù)庫(kù)結(jié)構(gòu)。
和海量數(shù)據(jù)的分布性、異構(gòu)性與多樣性結(jié)合,充分考慮系統(tǒng)的編程,通過(guò)MVC三層架構(gòu)進(jìn)行設(shè)計(jì),具有清晰的結(jié)構(gòu),系統(tǒng)的擴(kuò)展更加方便。顯示層提供給用戶良好、易用、方便的界面,利用頁(yè)面對(duì)海量數(shù)據(jù)進(jìn)行瀏覽,高級(jí)用戶實(shí)現(xiàn)公共API接口的設(shè)置,實(shí)現(xiàn)系統(tǒng)的擴(kuò)展;業(yè)務(wù)處理層能夠處理海量海洋數(shù)據(jù),并且配置海量數(shù)據(jù)和平臺(tái)系統(tǒng);數(shù)據(jù)資源庫(kù)為平臺(tái)設(shè)計(jì)過(guò)程中的重點(diǎn),能夠存儲(chǔ)海量科學(xué)數(shù)據(jù)[2]。

圖1:為MapReduee實(shí)現(xiàn)機(jī)制

圖2:平臺(tái)的整體框架

圖3:管理節(jié)點(diǎn)函數(shù)調(diào)用結(jié)構(gòu)
對(duì)平臺(tái)功能進(jìn)行分析,劃分系統(tǒng)的結(jié)構(gòu)為:
數(shù)據(jù)訪問(wèn)層:存儲(chǔ)海量的數(shù)據(jù),在存取數(shù)據(jù)時(shí)并不是局限于某個(gè)數(shù)據(jù)操作,此層能夠?yàn)椴煌獢?shù)據(jù)提供數(shù)據(jù)庫(kù),并且訪問(wèn)數(shù)據(jù)庫(kù),使系統(tǒng)滿足海量數(shù)據(jù)處理需求,具備完備性與可擴(kuò)展性。
數(shù)據(jù)處理層:為系統(tǒng)核心層,也是設(shè)計(jì)系統(tǒng)的重點(diǎn)。利用分布式數(shù)據(jù)庫(kù)技術(shù)實(shí)現(xiàn)加載存儲(chǔ)的功能,對(duì)海量數(shù)據(jù)進(jìn)行存儲(chǔ),使處理之后數(shù)據(jù)在系統(tǒng)分布式數(shù)據(jù)庫(kù)中存儲(chǔ),保證系統(tǒng)運(yùn)行正常,圖2為平臺(tái)的整體框架。
服務(wù)器體系結(jié)構(gòu)能夠使主從服務(wù)器架構(gòu)需求得到滿足,利用Master管理主服務(wù)器和節(jié)點(diǎn)服務(wù)器。通過(guò)表格的方式使客戶端對(duì)數(shù)據(jù)進(jìn)行讀取,用戶表都是通過(guò)主鍵區(qū)分?jǐn)?shù)據(jù)集合。在物理結(jié)構(gòu)存儲(chǔ)過(guò)程中拆分多塊表,每塊都是一個(gè)節(jié)點(diǎn),劃分每個(gè)表作為多個(gè)節(jié)點(diǎn)。通過(guò)主鍵和表名區(qū)分節(jié)點(diǎn),將數(shù)據(jù)節(jié)點(diǎn)保存在表中,在多節(jié)點(diǎn)中保存所有主鍵。通過(guò)節(jié)點(diǎn)服務(wù)器對(duì)節(jié)點(diǎn)進(jìn)行管理,在客戶端對(duì)數(shù)據(jù)訪問(wèn)時(shí)還要對(duì)節(jié)點(diǎn)服務(wù)器進(jìn)行訪問(wèn)。將數(shù)據(jù)庫(kù)數(shù)據(jù)在分布式文件系統(tǒng)中保存,利用節(jié)點(diǎn)服務(wù)器使用戶得到數(shù)據(jù),通過(guò)機(jī)器運(yùn)行節(jié)點(diǎn)服務(wù)器,并且維護(hù)每個(gè)區(qū)段的節(jié)點(diǎn)。在對(duì)數(shù)據(jù)進(jìn)行跟新的時(shí)候,要修改分配節(jié)點(diǎn)服務(wù)器,此修改寫入到內(nèi)存緩存日志和服務(wù)器中,并且保存更新數(shù)據(jù),磁盤記錄文件作為日志,對(duì)更新操作進(jìn)行記錄,在操作寫入到日志后,要執(zhí)行commit()才能夠在客戶端返回。
在對(duì)數(shù)據(jù)庫(kù)讀取時(shí)具有flushcache()和compact()兩個(gè)函數(shù),前者能夠創(chuàng)建全新存儲(chǔ)文件,使緩存需要更新數(shù)據(jù)在文件中寫入;后者將全部文件合成一個(gè)大文件。另外的節(jié)點(diǎn)服務(wù)器對(duì)內(nèi)存緩存進(jìn)行訪問(wèn),假如沒(méi)有對(duì)數(shù)據(jù)緩存,就要存儲(chǔ)到磁盤中。每個(gè)列族會(huì)存儲(chǔ)大量的具體文件,利用B樹(shù)結(jié)構(gòu)對(duì)數(shù)據(jù)快速讀取。
云計(jì)算平臺(tái)中,管理節(jié)點(diǎn)能夠和客戶端通信,對(duì)系統(tǒng)節(jié)點(diǎn)信息的存儲(chǔ)進(jìn)行管理,注冊(cè)用戶信息。利用云計(jì)算系統(tǒng),用戶能夠?qū)?shù)據(jù)文件信息在子節(jié)點(diǎn)匯總存儲(chǔ),在對(duì)文件數(shù)據(jù)訪問(wèn)過(guò)程中,利用客戶端程序得到子節(jié)點(diǎn)的IP,從而得到子節(jié)點(diǎn)文件。以下數(shù)據(jù)結(jié)構(gòu)定義:

云計(jì)算平臺(tái)子節(jié)點(diǎn)對(duì)用戶文件信息和數(shù)據(jù)進(jìn)行存儲(chǔ),用戶名指的是各用戶存儲(chǔ)信息的文件名,在全部節(jié)點(diǎn)中實(shí)現(xiàn)子節(jié)點(diǎn)程序的運(yùn)同步運(yùn)行。通過(guò)客戶端和子節(jié)點(diǎn)連接實(shí)現(xiàn)文件存儲(chǔ)和訪問(wèn),管理節(jié)點(diǎn)和子節(jié)點(diǎn)沒(méi)有任何數(shù)據(jù)通信工作[3]。
管理節(jié)點(diǎn)能夠?qū)θ衷獢?shù)據(jù)進(jìn)行維護(hù),對(duì)文件完整性進(jìn)行檢查,備份文件塊,在此過(guò)程中的信息包括括文件塊、基本信息和節(jié)點(diǎn)目錄等。通過(guò)硬盤、節(jié)點(diǎn)id與內(nèi)存創(chuàng)建數(shù)據(jù)節(jié)點(diǎn)信息,其中文件塊為塊文件與用戶文件在數(shù)據(jù)節(jié)點(diǎn)存儲(chǔ)的名稱。在對(duì)文件完整性進(jìn)行檢查的過(guò)程中,還要對(duì)系統(tǒng)啟動(dòng)過(guò)程檢查。假如數(shù)據(jù)節(jié)點(diǎn)存在故障,就要維護(hù)系統(tǒng)。在備份文件塊時(shí),如果文件不滿足備份需求,要求通過(guò)數(shù)據(jù)節(jié)點(diǎn)信息備份文件塊。在日志功能中為了方便維護(hù),系統(tǒng)要記錄分塊分析和文件目錄信息。在進(jìn)行初始化的時(shí)候?qū)π畔⒅匦伦x取,在內(nèi)存中創(chuàng)建分塊表、目錄表,圖3為管理節(jié)點(diǎn)函數(shù)調(diào)用結(jié)構(gòu)。
子節(jié)點(diǎn)要將文件塊請(qǐng)求發(fā)送到客戶端中,根據(jù)客戶端id得到文件路徑,對(duì)文件塊進(jìn)行發(fā)送和讀取。處理客戶端寫文件塊的情況,以文件塊id讀寫數(shù)據(jù)位置,并且在文件塊表中實(shí)現(xiàn)文件路徑的讀取,子節(jié)點(diǎn)能夠執(zhí)行客戶端的命令,以下為結(jié)構(gòu)體:

客戶端能夠服務(wù)客戶,將終端提供給用戶。利用系統(tǒng)定義結(jié)構(gòu)使客戶端創(chuàng)建文件和目錄,對(duì)文件進(jìn)行刪除、重命名和移動(dòng)等操作,還能夠開(kāi)展移動(dòng)、重命名、刪除等操作,還能夠?qū)崿F(xiàn)文件流式讀寫。將命令輸入后,客戶端在管理節(jié)點(diǎn)中實(shí)現(xiàn)用戶請(qǐng)求的發(fā)送,利用管理節(jié)點(diǎn)得出文件塊目錄和信息,連接數(shù)據(jù)和信息節(jié)點(diǎn)。通過(guò)Linux環(huán)境運(yùn)行子節(jié)點(diǎn)和主節(jié)點(diǎn),利用所有子節(jié)點(diǎn)服務(wù)器實(shí)現(xiàn)子節(jié)點(diǎn)的運(yùn)行,利用Windows環(huán)境窗口和用戶機(jī)器實(shí)現(xiàn)測(cè)試。
對(duì)數(shù)據(jù)隔離技術(shù)重視,通過(guò)目錄映射單向指針對(duì)用戶進(jìn)行隔離。通過(guò)單向指針樹(shù)狀結(jié)構(gòu)構(gòu)成此目錄映射方式,系統(tǒng)訪問(wèn)權(quán)與目錄層具有密切關(guān)系,無(wú)法和數(shù)據(jù)進(jìn)行交叉計(jì)算。目錄上層節(jié)點(diǎn)與下層節(jié)點(diǎn)相關(guān),無(wú)法對(duì)上層節(jié)點(diǎn)訪問(wèn)。另外,最高訪問(wèn)權(quán)限為文件系統(tǒng)根目錄,具備根目錄無(wú)法分配任何應(yīng)用。所有中心節(jié)點(diǎn)都是文件夾,對(duì)下級(jí)目錄進(jìn)行存儲(chǔ),無(wú)法對(duì)文件位置和文件進(jìn)行存儲(chǔ)。只有葉子結(jié)點(diǎn)數(shù)據(jù)結(jié)構(gòu)才會(huì)對(duì)某文件具體存儲(chǔ)位置與方式進(jìn)行存儲(chǔ),此時(shí)每個(gè)應(yīng)用在訪問(wèn)文件的時(shí)候都要通過(guò)權(quán)限目錄層順著單向指針到葉子節(jié)點(diǎn),以此得到文件存儲(chǔ)的信息。
此文件目錄組織模式能夠?qū)τ脩魯?shù)據(jù)進(jìn)行隔離,利用目錄映射單向性實(shí)現(xiàn),無(wú)法隔離數(shù)據(jù)物理位置,不同的應(yīng)用數(shù)據(jù)存儲(chǔ)到物理中。此模式能夠創(chuàng)建方便的文件隔離方式,在目錄層分配之后,下級(jí)目錄還要對(duì)不同應(yīng)用進(jìn)行分配。目錄指針具備單向性的特點(diǎn),所以下級(jí)目錄無(wú)法逾越。實(shí)現(xiàn)永久自我分層,并且隔離企業(yè)用戶,尤其是類似SaaS應(yīng)用。
實(shí)現(xiàn)云計(jì)算數(shù)據(jù)存儲(chǔ)和文件管理平臺(tái)的設(shè)計(jì),在普通計(jì)算機(jī)中創(chuàng)建,實(shí)現(xiàn)信息數(shù)據(jù)的高效存儲(chǔ)和管理。目前,此云計(jì)算存儲(chǔ)平臺(tái)正在開(kāi)發(fā),系統(tǒng)具備良好易維護(hù)性、擴(kuò)展性,系統(tǒng)使用的設(shè)計(jì)方法、技術(shù)路線是有效、可行的。