文·耿正臣
隨著信息技術以及信息產業的高速發展,以數字化、網絡化、智能化、智慧化為特征的信息化浪潮蓬勃興起。現如今,信息化在社會各個領域中得到了廣泛深入應用,已成為創新驅動發展的先導力量。信息技術的發展和應用,也讓檔案信息資源的生成環境、生成方式、傳播媒介等產生了革命性變化,數字檔案資源日漸成為檔案信息資源的主要形態,建立一個側重于數字檔案資源管理與服務的檔案數字資源中心也勢在必行。它可以圍繞著數字檔案生成、歸檔、管理、存儲、安全、傳播與利用等方面的特點,利用云計算、大數據、移動互聯網、可視化、物聯網、人工智能等新技術,解決數字檔案的收集歸檔、長期存儲、信息安全、有序管理與高效利用等問題。其中,文件存儲是檔案管理系統中的重要組成部分,由于計算機操作系統自帶的文件系統在容量大小、容量增長速度、數據備份、數據安全等方面的表現都差強人意,所以如何長久、安全地保存電子文件、多媒體文件等就成為一個必須研究的問題。筆者認為,檔案信息資源中心文件存儲應采用當下主流、業界認可的文件存儲架構,即分布式文件存儲架構,以提高文件管理的安全性,支持大文件及海量文件的有效管理,并實現文件的高效傳輸。
分布式文件存儲,就是借助分布式文件存儲系統把大量數據分散到不同的節點上存儲,從而減小數據丟失的風險。分布式文件系統具有冗余性,部分節點的故障并不影響整體的正常運行,而且即使出現故障的計算機存儲的數據已經損壞,也可以由其它節點將損壞的數據恢復出來。因此,安全性是分布式文件系統最主要的特征。分布式文件系統通過網絡將大量零散的計算機連接在一起,形成一個巨大的計算機集群,使各主機均可以充分發揮其作用。此外,集群之外的計算機只需要經過簡單的配置就可以加入到分布式文件系統中,具有極強的可擴展能力。
主流的分布式文件系統架構,包括主控服務器(或稱元數據服務器、名字服務器等,通常會配置備用主控服務器以便在故障時接管服務,也可以兩個都為主的模式)、多個數據服務器(或稱存儲服務器,存儲節點等)以及多個客戶端(客戶端可以是各種應用服務器,也可以是終端用戶)。
分布式文件系統的數據存儲解決方案,歸根結底是將大問題劃分為小問題。大量的文件,均勻分布到多個數據服務器上后,每個數據服務器存儲的文件數量就少了。另外,通過使用大文件存儲多個小文件的方式,總能把單個數據服務器上存儲的文件數降到單機能解決的規模;對于很大的文件,將大文件劃分成多個相對較小的片段,存儲在多個數據服務器上,如圖1分布式數據分塊結構圖所示。

圖1 分布式數據分塊結構圖
應用分布式文件存儲系統的優點是:一提高數據安全性。分布式文件存儲系統中每個文件都被分割為不同大小的數據塊,每個數據塊都有多個數據副本保存在不同的存儲空間中,并使用了糾刪碼的方式來節省副本存儲空間,在文件損壞時可快速對數據進行恢復;二支持單個文件的大容量存儲,也支持海量的數據文件存儲;三提高數據吞吐量。分布式文件系統采用“一次性寫,多次讀”的簡單的數據一致性模型,該簡單模型大大地提高了吞吐量;四可以單次大量文件提取。通過流式數據訪問技術,對數據進行批量處理,支持應用對系統的單次大量數據訪問;五可以進行文件權限控制。通過分布式文件系統的權限控制,進而增加文件使用的安全保障。理論上,分布式文件系統可以只有客戶端和多個數據服務器組成,客戶端根據文件名決定將文件存儲到哪個數據服務器。但其弊端是,一旦有數據服務器失效,因客戶端并不知道數據服務器宕機的消息,仍然連接它進行數據存取,會導致整個系統的可靠性極大降低,而且完全由客戶端決定數據分配也非常不靈活,因為它不能根據文件特性制定不同的分布策略。
眾所周知,應用系統執行效率的瓶頸一般都在數據庫方面。因為單機運行的數據庫對磁盤讀寫壓力大,數據的查詢檢索在單機的計算壓力也非常大,在數據安全性方面也存在著不足。檔案信息資源中心建設中,不僅涉及了多數據庫的使用需求,還對數據庫的容量與安全有著較大的需求。因此需要采用分布式數據庫架構來解決大數據存儲、快速數據讀寫、高數據安全性等問題。
分布式數據庫系統通常使用較小的計算機系統,每臺計算機可單獨放在一個地方,每臺計算機中都可能有DBMS 的一份完整拷貝副本,或者部分拷貝副本,并具有自己局部的數據庫。位于不同地點的許多計算機通過網絡互相連接,共同組成一個完整的、全局的邏輯上集中、物理上分布的大型數據庫。分布式數據庫可分為四層,即全局外層、全局概念層、局部概念層、局部內容。數據庫可看作為邏輯上的全局數據庫和局部的物理數據的集合。全局數據庫到局部數據庫由分配合分片的模式進行描述。
水平分片是解決數據庫存儲容量限制的直接途徑,以邏輯表中的數據行記錄為單位,把原有邏輯數據庫切分成多個物理數據庫分片,表數據記錄分布存儲在各個分片上,如圖2水平分片實現原理所示。分布式數據庫系統中則實現了自動水平分片,應用無需關心某個數據該存儲在哪一塊分片上。

圖2 水平分片實現原理
分片架構的特點是底層數據通過一定的規則,比如hash 或者range ,讓數據打散分別分布到不同的數據節點上,計算時底層多個節點共同參與計算,可以算是一種 mpp 并行計算的架構,同時數據節點可以擴展,上層由協調節點進行 sql 解析和轉發,這是目前典型的分布式數據庫架構。分布式數據庫三大組件,協調節點、數據節點、全局事務管理器。協調節點負責 SQL 解析轉發,充當的是類似 proxy 的角色,數據節點負責計算和數據存儲,全局事務管理器負責全局事務一致性的保證。
應用分布式文件存儲系統的優勢是:一提高檔案數據的可靠性和可用性。當數據和分布式數據庫軟件分布在多個節點上時,一個節點可能會失敗而其他站點繼續運行,因此可以提高可靠性和可用性;二數據容量更易擴展,在分布式環境中,可是實現動態數據庫擴容;三更快的數據讀寫能力,分布式數據庫的讀寫分離功能能有效地加快數據讀寫速度,并對數據讀寫進行控制。