隨著信息化程度的不斷提高,全球數據日益膨脹。面對當前PB級的海量數據存儲需求,傳統的存儲系統在容量和性能的擴展上存在瓶頸。云存儲以其擴展性強、性價比高、容錯性好等優勢得到了業界的廣泛認同。云存儲伴隨著云計算產生,作為云計算的先驅,它很早就進入了廣大研究人員的視野,由于其前瞻性,眾多企業都將其作為進軍云計算的第一步。
文件系統 是操作系統的重要組成部分,用來管理和存儲大量的文件信息,負責對文件的存儲空間進行分配和管理,并對存人其中的文件進行保護和檢索,同時為用戶提供包括文件創建、刪除、命名、讀寫、訪問控制等一系列功能。此外,文件系統還可以根據存取權限及訪問操作類型來指定用戶對文件的存取。
分布式文件系統除了具有本地文件系統的所有功能外,還必須管理整個系統中所有計算機上的文件資源,從而把整個分布式文件資源以統一的視圖呈現給用戶。此外,分布式文件系統還需要隱藏內部的實現細節,對用戶和應用程序屏蔽各個計算機節點底層文件系統之間的差異,以提供給用戶統一的訪問接口和方便的資源管理手段 。很顯然,作為一種典型的分布式系統,云存儲需要分布式文件系統的底層支撐方能實現我們所希望的功能。
1 云計算技術
目前學術界以及工業界對云計算還沒形成一個統一的定義。在文獻[3]中,云計算被定義為一個包含大量可用虛擬資源的資源池,該資源池一般由基礎設施提供商按照服務等級協議采用按時付費或按需付費的模式進行開發管理,其中的虛擬資源根據不同負載進行動態配置,以達到優化資源利用率的目的。
在一定程度上,我們可以認為云計算是分布式計算、并行計算和網格計算等計算概念的商業發展 ,其基本原理是用戶通過互聯網來應用計算機集群上的資源。通過本地計算機連接互聯網向集群發送需求信息,遠端的計算機集群資源收到用戶需求信息后,將為該用戶提供必要的資源并進行運算,最后將計算結果返回至本地計算機。在上述過程中,云計算向用戶提供的并非計算資源,而是一種服務。云計算屏蔽了它的內部設備部署細節、網絡接口以及運行在其上的軟件運行機制,其只是把外部訪問接口暴露給用戶。用戶不需要了解云的內部實現細節,只需要通過互聯網連接其外部應用接口即可獲得所需服務。
云計算具有規模龐大、資源虛擬化、高可靠性、可擴展性、通用性、以用戶為中心以及計費靈活等特點。云環境下,用戶面對的不再是復雜的硬件和軟件資源,而是最終所需的服務,用戶從過去“購買產品”轉變到“購買服務”上來;用戶不需要購買硬件設施,也不需要為機房支付設備供電、空調制冷、專人維護等費用,而只需支付相應資源使用費用,即可得到相應服務。
目前云計算技術發展迅速,和傳統預先購置和部署設備的計算方式相比,其獨特的按需付費和彈性擴展的資源供給方式具有明顯的性能優勢,因此,其必將成為未來最值得推廣和應用的技術之一。
2 云存儲系統
云存儲是實現云計算系統架構中的一個重要組成部分。隨著信息技術的不斷發展,全球數據規模日益膨脹。由于傳統的SAN (Storage Arew Network) 或NAS(Network Attached Storage) 存儲技術在存儲容量和可擴展性上存在瓶頸,并且在硬件設備的部署數量上也存在一定限制,這使得用戶升級系統的成本大大增加。云存儲采用可擴展的分布式文件系統,并使用廉價的Pc機來進行系統部署,從而使得整體存儲架構能夠保持極低的成本。
云存儲是通過集群應用、網格技術、分布式文件系統等,將網絡中大量類型各異的存儲設備整合起來,并對外提供數據存儲和業務訪問功能的系統。簡單來說,云存儲是對虛擬化存儲資源的管理和使用。云存儲是存儲領域一個新的概念,其目前已成為學術界和工業界的一個研究熱點。區別于傳統的存儲技術,云存儲提供了更好的可擴展性,當需增加存儲能力時,只需添加服務器即可實現,而不需要對存儲系統的結構進行重新設計;同時隨著存儲能力的增加,云存儲系統的性能不會下降。
云存儲專注于解決云計算中海量數據的存儲問題,它既可以給云計算技術提供專業的存儲解決方案,又可以獨立發布存儲服務。云存儲將存儲作為服務,它將分別位于網絡中不同位置的大量類型各異的存儲設備通過集群應用、網格技術和分布式文件系統等集合起來協同工作,通過應用軟件進行業務管理,并通過統一的應用接口對外提供數據存儲和業務訪問功能。在使用一個獨立的存儲設備時,我們需要了解該設備的型號、接口以及該設備所使用的傳輸協議;如果使用云存儲,則不存在上述問題。對用戶來說,云存儲系統中的所有設備都是透明的,用戶不必關心云存儲系統內部是如何實現的,也無需了解存儲的提供方式和底層基礎,任何一個授權用戶都可以通過網絡來使用云存儲系統提供的數據存儲和業務訪問服務。
目前,云存儲的興起正在顛覆傳統的存儲系統架構,其正以良好的可擴展性、性價比和容錯性等優勢得到業界的廣泛認同。
3 云存儲分布式文件系統
由上節討論可知,云存儲系統具有良好的可擴展性、容錯性,以及內部實現對用戶透明等特性,這一切都離不開分布式文件系統的支撐。現有的云存儲分布式文件系統包括GFS、HDFS、Lustre、FastDFS、PVFS、GPFS、PFS、Ceph和TFS等。它們的許多設計理念類似,同時也各有特色。下面對現有的分布式文件系統進行詳細介紹。
3.1 Google File System (GFS)
GFS是一個可擴展的分布式文件系統,其主要用于處理大的分布式數據密集型應用。GFS的一大特色就是其運行于大量普通的廉價硬件上,通過GFS文件系統提供容錯功能,并給大量用戶提供可處理海量數據的高性能服務。和傳統標準相比,GFS文件規模巨大,其主要用來處理大文件。此外,GFS大多通過直接追加新數據來改變文件,而非覆蓋現有數據,一旦數據寫入完成,文件就僅支持讀操作。
3.2 Lustre文件系統
Lustre文件系統是一種典型的基于對象存儲技術 的分布式文件系統, 目前,該文件系統已經廣泛用于國外許多高性能計算機構,如美國能源部、Sandia國家實驗室、Pacific Northwest國家實驗室等。Top500機器中有多臺均采用的是Lustre文件系統。
Lustre文件系統的大文件性能良好 ,其通過基于對象的數據存儲格式,將同一數據文件分為若干個對象分別存儲于不同的對象存儲設備。大文件I/O操作被分配到不同的對象存儲設備上并行實施,從而實現很大的聚合帶寬。此外,由于Lustre融合了傳統分布式文件系統的特色和傳統共享存儲文件系統的設計理念,因此其具有更加有效的數據管理機制、全局數據共享、基于對象存儲、存儲智能化,以及可快速部署等一系列優點。盡管如此,由于Lustre采用分布式存儲結構將元數據和數據文件分開存儲,訪問數據之前需要先訪問元數據服務器,這一過程增加了網絡開銷,從而使得Lustre的小文件I/O操作性能較差。
3.3 FastDFS文件系統
FastDFS是一個輕量級分布式文件系統,其體系架構如圖3所示,整個文件系統由客戶端(Cli—ent)、跟蹤器(Tracker)和存儲節點(Storage)三部分組成。系統服務端有Tracker和Storage兩個角色,Tracker用來負責作業的調度和負載均衡,Storage則用于存儲文件,并負責管理文件。為支持大容量的數據存儲,Storage采用分卷或分組的數據組織方式;存儲系統可由一個或多個卷組成,一個卷可以由一臺或多臺存儲服務器構建。同一個卷下的多臺存儲服務器中的數據文件都是相同的,卷與卷之間的文件則相互獨立,通過這種數據組織方式,可以很好地實現數據冗余備份以及系統負載均衡的目的。
圖 FastDFS文件系統體系結構示意圖
3.4 Parallel Virtual File System (PVFS)
由Clemson大學設計并成功開發的PVFS是一種構建在Linux操作系統之上的開源并行虛擬文件系統。PVFS基于傳統的C/S架構進行設計,整個文件系統由管理結點、計算結點和I/0結點三大部分組成,管理結點負責處理文件的元數據,計算節點用來執行各種計算任務,I/0結點則主要負責數據文件的存儲和讀寫,并負責給計算結點提供所需的數據。在整個集群系統范圍內,PVFS使用一致的全局命名空間,另外,PVFS應用對象存儲的概念,將數據文件條塊化為多個對象并分別存儲到多個存儲結點上。由于在網絡通信方面,PVFS只支持TCP網絡通信協議,這使得其靈活性不足;此外,由于PVFS應用對象存儲的概念進行數據文件的存儲,其在處理小文件時性能也不太理想。
3.5 General Parallel File System (GPFS)
GPFS的前身是Tiger Shark多媒體文件系統,其是IBM專為Linux集群系統設計的并行共享文件系統。在系統結構上,GPFS主要借鑒了IBM Linux集群系統中的虛擬共享磁盤技術,計算節點可以通過使用交換網絡來同時并行訪問系統中多個磁盤中的數據,并依賴這一訪問方式來實現較高的I/O帶寬。GPFS的主要特點包括:通過循環的方式將大文件存儲在不同的磁盤上,同時通過合并操作來處理小文件的讀寫,使用動態選舉的元數據結點來管理元數據;此外,GPFS還具有基于日志的失效節點的自動恢復策略以及集中式的數據鎖機制。
3.6 Parallel File System (PFS)
Sun公司的PFS分布式文件系統可以很好地支持高性能和可擴展的I/O操作,其主要設計思想是將文件分布在多個磁盤和服務器上,并將存放文件的多個設備邏輯上看成一個虛擬磁盤來統一管理。很顯然,PFS可以同時跨越多個存儲系統,可以將整個PFS中的所有存儲設備都看成是這個虛擬磁盤的一部分;當有多個節點同時訪問同一文件時,PFS可以并行地為這些節點提供訪問服務。PFS分布式文件系統構建于Solaris操作系統之上,主要包括宿主節點、計算節點、I/O從屬節點和I/O主機節點。宿主節點是PFS提供給其它系統的人口,只有成功登錄到宿主節點的用戶才是合法的,才可以訪問PFS內部的數據文件。計算節點主要用來管理PFS系統的通信和內存資源。L/O主機節點則主要負責文件系統的目錄管理和存儲塊管理,同時為存儲數據文件提供讀寫服務。I/O從屬節點僅用來處理磁盤的讀寫操作和空白塊的分配工作。
3.7 Ceph云存儲文件系統
Ceph是Califomia大學Santa Cruz分校的Sage Weil設計的一種云存儲分布式文件系統。Ceph云存儲文件系統的主要目標是設計基于POSIX的無節點故障分布式文件系統,并且數據文件具有容錯和無縫復制功能。Ceph文件系統具有三大特點,首先,其使用多個元數據服務器來構建系統的命名空間,這顯著強化了元數據服務器的并發訪問功能;其次,在元數據服務器上,Ceph文件系統采用了動態的子樹劃分技術,并支持元數據服務器的負載遷移,可以很好地實現元數據的負載均衡;最后,Ceph文件系統提供基于對象存儲設備的對象文件系統,并將數據文件作為一個存儲對象來對待,這有效地提高了數據文件的讀寫效率。
3.8 Taobao File System (TFS)
Taobao file system (TFS)是由淘寶開發的云存儲文件系統,其主要面向海量非結構化數據存儲問題提供服務。TFS部署在普通的Linux集群上,為淘寶網提供高可靠、高并發的大量小文件數據存儲服務。TFS采用扁平化的數據組織結構將文件名映射到文件的物理地址,簡化了文件訪問流程,一定程度上優化了系統讀寫性能。
一個TFS集群由兩個NameServer節點和多個DataServer節點組成,TFS的服務程序都是作為一個用戶級的程序運行在普通Linux機器上。TFS將眾多的小文件合并成大文件,并稱這個大文件為Block,Block存儲在DataServer上,每個Block在TFS系統內均擁有唯一的Id號。NameServer負責維護block與DataServer之間的映射關系。NameServer采用HA結構,即雙機互為熱備份,來實現容災功能,兩臺NameServer同時運行,其中一臺為主節點,另外一臺作為備用節點。當主NameServer節點出現故障后,迅速將備份NameServer切換為主節點并對外提供服務。
4 結語
自云計算技術出現以來,隨著科學技術的不斷發展,以及學術界和工業界的不斷推進,云計算應用不斷發展壯大,云存儲也逐漸從理論走向實踐。本文首先對云計算技術進行介紹,然后引出云存儲的概念,并對云存儲的技術原理、性能優勢等進行分析,同時指出分布式文件系統是實現云存儲系統高可擴展、高容錯性、高性價比等一系列性能優勢的基礎保障。最后對現有的云存儲分布式文件系統進行詳細而深入的討論。在云存儲的發展和應用過程中,近年來不斷有新的熱點出現并被廣泛討論和研究,如云存儲數據中心部署、云存儲QoS控制、用戶請求區分、數據副本策略以及調度機制等很多方面。本文工作將為我們對云存儲技術進行更深入的研究提供基礎支撐。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/
本文標題:云存儲及其分布式文件系統研究
本文網址:http://www.guhuozai8.cn/html/consultation/1083977942.html