雲端儲存及其分散式檔案系統
轉自: https://www.cnblogs.com/langren1992/p/5432517.html
雲端儲存伴隨著雲端計算產生,作為雲端計算的先驅,它很早就進入了廣大研究人員的視野,由於其前瞻性,眾多企業都將其作為進軍雲端計算的第一步。
檔案系統 是作業系統的重要組成部分,用來管理和儲存大量的檔案資訊,負責對檔案的儲存空間進行分配和管理,並對存人其中的檔案進行保護和檢索,同時為使用者提供包括檔案建立、刪除、命名、讀寫、訪問控制等一系列功能。此外,檔案系統還可以根據存取許可權及訪問操作型別來指定使用者對檔案的存取。
分散式檔案系統除了具有本地檔案系統的所有功能外,還必須管理整個系統中所有計算機上的檔案資源,從而把整個分散式檔案資源以統一的檢視呈現給使用者。
此外,分散式檔案系統還需要隱藏內部的實現細節,對使用者和應用程式遮蔽各個計算機節點底層檔案系統之間的差異,以提供給使用者統一的訪問介面和方便的資源管理手段 。很顯然,作為一種典型的分散式系統,雲端儲存需要分散式檔案系統的底層支撐方能實現我們所希望的功能。
1 雲端計算技術
目前學術界以及工業界對雲端計算還沒形成一個統一的定義。在文獻中,雲端計算被定義為一個包含大量可用虛擬資源的資源池,該資源池一般由基礎設施提供商按照服務等級協議採用按時付費或按需付費的模式進行開發管理,其中的虛擬資源根據不同負載進行動態配置,以達到優化資源利用率的目的。
在一定程度上,我們可以認為雲端計算是分散式計算、平行計算和網格計算等計算概念的商業發展 ,其基本原理是使用者通過網際網路來應用計算機叢集上的資源。通過本地計算機連線網際網路向叢集傳送需求資訊,遠端的計算機叢集資源收到使用者需求資訊後,將為該使用者提供必要的資源並進行運算,最後將計算結果返回至本地計算機。
在上述過程中,雲端計算向使用者提供的並非計算資源,而是一種服務。雲端計算遮蔽了它的內部裝置部署細節、網路介面以及執行在其上的軟體執行機制,其只是把外部訪問介面暴露給使用者。使用者不需要了解雲的內部實現細節,只需要通過互聯網連接其外部應用介面即可獲得所需服務。
雲端計算具有規模龐大、資源虛擬化、高可靠性、可擴充套件性、通用性、以使用者為中心以及計費靈活等特點。雲環境下,使用者面對的不再是複雜的硬體和軟體資源,而是最終所需的服務,使用者從過去“購買產品”轉變到“購買服務”上來;使用者不需要購買硬體設施,也不需要為機房支付裝置供電、空調製冷、專人維護等費用,而只需支付相應資源使用費用,即可得到相應服務。
目前雲端計算技術發展迅速,和傳統預先購置和部署裝置的計算方式相比,其獨特的按需付費和彈性擴充套件的資源供給方式具有明顯的效能優勢,因此,其必將成為未來最值得推廣和應用的技術之一。
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是一個輕量級分散式檔案系統,其體系架構如圖所示,整個檔案系統由客戶端(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控制、使用者請求區分、資料副本策略以及排程機制等很多方面。本文工作將為我們對雲端儲存技術進行更深入的研究提供基礎支撐。
相關文章
- 必須掌握的分散式檔案儲存系統—HDFS分散式
- 分散式檔案儲存系統 fastdfs 的 Composer 包釋出!分散式AST
- Hadoop 三劍客之 —— 分散式檔案儲存系統 HDFSHadoop分散式
- python如何分散式儲存檔案?Python分散式
- juicefs:一個基於Redis和雲物件儲存的分散式POSIX檔案系統UIRedis物件分散式
- 分散式檔案系統HDFS,大資料儲存實戰(一)分散式大資料
- CEPH分散式儲存搭建(物件、塊、檔案三大儲存)分散式物件
- 分散式檔案系統和物件儲存魔力象限,右上角都有誰?分散式物件
- 分散式檔案系統分散式
- Bayou複製分散式儲存系統分散式
- GFS分散式檔案系統、結合實驗分析各種儲存卷的特點。深入刨析分散式儲存的方式。分散式
- 分散式檔案儲存FastDFS(七)FastDFS配置檔案詳解分散式AST
- 分散式檔案儲存庫MinIO可還行?分散式
- 分散式檔案系統-HDFS分散式
- HDFS分散式檔案系統分散式
- 360自研分散式海量小檔案儲存系統的設計與實現分散式
- 分散式儲存系統可靠性:系統量化估算分散式
- 04 磁碟儲存和檔案系統
- 分散式儲存系統可靠性如何估算?分散式
- 分散式kv儲存系統之Etcd叢集分散式
- cephFS分散式檔案系統操作分散式
- FastDFS-分散式檔案系統AST分散式
- 部署GPS分散式檔案系統分散式
- 分散式檔案系統之 FastDFS分散式AST
- [上海][PPLabs][分散式加密雲端儲存專案][招聘golang工程師/web後端工程師]分散式加密Golang工程師Web後端
- [上海][PPLabs][分散式加密雲端儲存專案][招聘golang工程師/web後端工程師分散式加密Golang工程師Web後端
- 分散式儲存與傳統網路儲存系統相比有哪些區別分散式
- 分散式檔案系統(HDFS)與 linux系統檔案系統 對比分散式Linux
- nodejs 使用七牛雲端儲存上傳檔案NodeJS
- SpringBoot使用阿里OSS實現檔案雲端儲存Spring Boot阿里
- 大資料檔案儲存系統HDFS大資料
- docker檔案系統分層儲存原理Docker
- 杉巖PACS影像系統分散式儲存架構分散式架構
- 分散式系統技術:儲存之資料庫分散式資料庫
- 分散式系統中資料儲存方案實踐分散式
- AspNetCore分散式檔案上傳系統NetCore分散式
- GFS分散式檔案系統部署解析分散式
- 檔案系統不適合作為分散式儲存後端:來自Ceph演變10年的經驗教訓 - blogspot分散式後端
- 分散式檔案儲存hdfs簡介及常用命令分散式