文·耿正臣
隨著信息技術(shù)以及信息產(chǎn)業(yè)的高速發(fā)展,以數(shù)字化、網(wǎng)絡(luò)化、智能化、智慧化為特征的信息化浪潮蓬勃興起。現(xiàn)如今,信息化在社會各個(gè)領(lǐng)域中得到了廣泛深入應(yīng)用,已成為創(chuàng)新驅(qū)動(dòng)發(fā)展的先導(dǎo)力量。信息技術(shù)的發(fā)展和應(yīng)用,也讓檔案信息資源的生成環(huán)境、生成方式、傳播媒介等產(chǎn)生了革命性變化,數(shù)字檔案資源日漸成為檔案信息資源的主要形態(tài),建立一個(gè)側(cè)重于數(shù)字檔案資源管理與服務(wù)的檔案數(shù)字資源中心也勢在必行。它可以圍繞著數(shù)字檔案生成、歸檔、管理、存儲、安全、傳播與利用等方面的特點(diǎn),利用云計(jì)算、大數(shù)據(jù)、移動(dòng)互聯(lián)網(wǎng)、可視化、物聯(lián)網(wǎng)、人工智能等新技術(shù),解決數(shù)字檔案的收集歸檔、長期存儲、信息安全、有序管理與高效利用等問題。其中,文件存儲是檔案管理系統(tǒng)中的重要組成部分,由于計(jì)算機(jī)操作系統(tǒng)自帶的文件系統(tǒng)在容量大小、容量增長速度、數(shù)據(jù)備份、數(shù)據(jù)安全等方面的表現(xiàn)都差強(qiáng)人意,所以如何長久、安全地保存電子文件、多媒體文件等就成為一個(gè)必須研究的問題。筆者認(rèn)為,檔案信息資源中心文件存儲應(yīng)采用當(dāng)下主流、業(yè)界認(rèn)可的文件存儲架構(gòu),即分布式文件存儲架構(gòu),以提高文件管理的安全性,支持大文件及海量文件的有效管理,并實(shí)現(xiàn)文件的高效傳輸。
分布式文件存儲,就是借助分布式文件存儲系統(tǒng)把大量數(shù)據(jù)分散到不同的節(jié)點(diǎn)上存儲,從而減小數(shù)據(jù)丟失的風(fēng)險(xiǎn)。分布式文件系統(tǒng)具有冗余性,部分節(jié)點(diǎn)的故障并不影響整體的正常運(yùn)行,而且即使出現(xiàn)故障的計(jì)算機(jī)存儲的數(shù)據(jù)已經(jīng)損壞,也可以由其它節(jié)點(diǎn)將損壞的數(shù)據(jù)恢復(fù)出來。因此,安全性是分布式文件系統(tǒng)最主要的特征。分布式文件系統(tǒng)通過網(wǎng)絡(luò)將大量零散的計(jì)算機(jī)連接在一起,形成一個(gè)巨大的計(jì)算機(jī)集群,使各主機(jī)均可以充分發(fā)揮其作用。此外,集群之外的計(jì)算機(jī)只需要經(jīng)過簡單的配置就可以加入到分布式文件系統(tǒng)中,具有極強(qiáng)的可擴(kuò)展能力。
主流的分布式文件系統(tǒng)架構(gòu),包括主控服務(wù)器(或稱元數(shù)據(jù)服務(wù)器、名字服務(wù)器等,通常會配置備用主控服務(wù)器以便在故障時(shí)接管服務(wù),也可以兩個(gè)都為主的模式)、多個(gè)數(shù)據(jù)服務(wù)器(或稱存儲服務(wù)器,存儲節(jié)點(diǎn)等)以及多個(gè)客戶端(客戶端可以是各種應(yīng)用服務(wù)器,也可以是終端用戶)。
分布式文件系統(tǒng)的數(shù)據(jù)存儲解決方案,歸根結(jié)底是將大問題劃分為小問題。大量的文件,均勻分布到多個(gè)數(shù)據(jù)服務(wù)器上后,每個(gè)數(shù)據(jù)服務(wù)器存儲的文件數(shù)量就少了。另外,通過使用大文件存儲多個(gè)小文件的方式,總能把單個(gè)數(shù)據(jù)服務(wù)器上存儲的文件數(shù)降到單機(jī)能解決的規(guī)模;對于很大的文件,將大文件劃分成多個(gè)相對較小的片段,存儲在多個(gè)數(shù)據(jù)服務(wù)器上,如圖1分布式數(shù)據(jù)分塊結(jié)構(gòu)圖所示。
圖1 分布式數(shù)據(jù)分塊結(jié)構(gòu)圖
應(yīng)用分布式文件存儲系統(tǒng)的優(yōu)點(diǎn)是:一提高數(shù)據(jù)安全性。分布式文件存儲系統(tǒng)中每個(gè)文件都被分割為不同大小的數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊都有多個(gè)數(shù)據(jù)副本保存在不同的存儲空間中,并使用了糾刪碼的方式來節(jié)省副本存儲空間,在文件損壞時(shí)可快速對數(shù)據(jù)進(jìn)行恢復(fù);二支持單個(gè)文件的大容量存儲,也支持海量的數(shù)據(jù)文件存儲;三提高數(shù)據(jù)吞吐量。分布式文件系統(tǒng)采用“一次性寫,多次讀”的簡單的數(shù)據(jù)一致性模型,該簡單模型大大地提高了吞吐量;四可以單次大量文件提取。通過流式數(shù)據(jù)訪問技術(shù),對數(shù)據(jù)進(jìn)行批量處理,支持應(yīng)用對系統(tǒng)的單次大量數(shù)據(jù)訪問;五可以進(jìn)行文件權(quán)限控制。通過分布式文件系統(tǒng)的權(quán)限控制,進(jìn)而增加文件使用的安全保障。理論上,分布式文件系統(tǒng)可以只有客戶端和多個(gè)數(shù)據(jù)服務(wù)器組成,客戶端根據(jù)文件名決定將文件存儲到哪個(gè)數(shù)據(jù)服務(wù)器。但其弊端是,一旦有數(shù)據(jù)服務(wù)器失效,因客戶端并不知道數(shù)據(jù)服務(wù)器宕機(jī)的消息,仍然連接它進(jìn)行數(shù)據(jù)存取,會導(dǎo)致整個(gè)系統(tǒng)的可靠性極大降低,而且完全由客戶端決定數(shù)據(jù)分配也非常不靈活,因?yàn)樗荒芨鶕?jù)文件特性制定不同的分布策略。
眾所周知,應(yīng)用系統(tǒng)執(zhí)行效率的瓶頸一般都在數(shù)據(jù)庫方面。因?yàn)閱螜C(jī)運(yùn)行的數(shù)據(jù)庫對磁盤讀寫壓力大,數(shù)據(jù)的查詢檢索在單機(jī)的計(jì)算壓力也非常大,在數(shù)據(jù)安全性方面也存在著不足。檔案信息資源中心建設(shè)中,不僅涉及了多數(shù)據(jù)庫的使用需求,還對數(shù)據(jù)庫的容量與安全有著較大的需求。因此需要采用分布式數(shù)據(jù)庫架構(gòu)來解決大數(shù)據(jù)存儲、快速數(shù)據(jù)讀寫、高數(shù)據(jù)安全性等問題。
分布式數(shù)據(jù)庫系統(tǒng)通常使用較小的計(jì)算機(jī)系統(tǒng),每臺計(jì)算機(jī)可單獨(dú)放在一個(gè)地方,每臺計(jì)算機(jī)中都可能有DBMS 的一份完整拷貝副本,或者部分拷貝副本,并具有自己局部的數(shù)據(jù)庫。位于不同地點(diǎn)的許多計(jì)算機(jī)通過網(wǎng)絡(luò)互相連接,共同組成一個(gè)完整的、全局的邏輯上集中、物理上分布的大型數(shù)據(jù)庫。分布式數(shù)據(jù)庫可分為四層,即全局外層、全局概念層、局部概念層、局部內(nèi)容。數(shù)據(jù)庫可看作為邏輯上的全局?jǐn)?shù)據(jù)庫和局部的物理數(shù)據(jù)的集合。全局?jǐn)?shù)據(jù)庫到局部數(shù)據(jù)庫由分配合分片的模式進(jìn)行描述。
水平分片是解決數(shù)據(jù)庫存儲容量限制的直接途徑,以邏輯表中的數(shù)據(jù)行記錄為單位,把原有邏輯數(shù)據(jù)庫切分成多個(gè)物理數(shù)據(jù)庫分片,表數(shù)據(jù)記錄分布存儲在各個(gè)分片上,如圖2水平分片實(shí)現(xiàn)原理所示。分布式數(shù)據(jù)庫系統(tǒng)中則實(shí)現(xiàn)了自動(dòng)水平分片,應(yīng)用無需關(guān)心某個(gè)數(shù)據(jù)該存儲在哪一塊分片上。
圖2 水平分片實(shí)現(xiàn)原理
分片架構(gòu)的特點(diǎn)是底層數(shù)據(jù)通過一定的規(guī)則,比如hash 或者range ,讓數(shù)據(jù)打散分別分布到不同的數(shù)據(jù)節(jié)點(diǎn)上,計(jì)算時(shí)底層多個(gè)節(jié)點(diǎn)共同參與計(jì)算,可以算是一種 mpp 并行計(jì)算的架構(gòu),同時(shí)數(shù)據(jù)節(jié)點(diǎn)可以擴(kuò)展,上層由協(xié)調(diào)節(jié)點(diǎn)進(jìn)行 sql 解析和轉(zhuǎn)發(fā),這是目前典型的分布式數(shù)據(jù)庫架構(gòu)。分布式數(shù)據(jù)庫三大組件,協(xié)調(diào)節(jié)點(diǎn)、數(shù)據(jù)節(jié)點(diǎn)、全局事務(wù)管理器。協(xié)調(diào)節(jié)點(diǎn)負(fù)責(zé) SQL 解析轉(zhuǎn)發(fā),充當(dāng)?shù)氖穷愃?proxy 的角色,數(shù)據(jù)節(jié)點(diǎn)負(fù)責(zé)計(jì)算和數(shù)據(jù)存儲,全局事務(wù)管理器負(fù)責(zé)全局事務(wù)一致性的保證。
應(yīng)用分布式文件存儲系統(tǒng)的優(yōu)勢是:一提高檔案數(shù)據(jù)的可靠性和可用性。當(dāng)數(shù)據(jù)和分布式數(shù)據(jù)庫軟件分布在多個(gè)節(jié)點(diǎn)上時(shí),一個(gè)節(jié)點(diǎn)可能會失敗而其他站點(diǎn)繼續(xù)運(yùn)行,因此可以提高可靠性和可用性;二數(shù)據(jù)容量更易擴(kuò)展,在分布式環(huán)境中,可是實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)庫擴(kuò)容;三更快的數(shù)據(jù)讀寫能力,分布式數(shù)據(jù)庫的讀寫分離功能能有效地加快數(shù)據(jù)讀寫速度,并對數(shù)據(jù)讀寫進(jìn)行控制。