Ceph布式存儲系統支持象文件快介面設計目標:
? 所組件橫向擴展
? 沒單點故障
? 普通廠商硬體使用
? 所機制都能自我管理
? 源
布式存儲應用場景相於其存儲介面現流行三種:
象存儲: 通意義鍵值存儲其介面簡單GET,PUTDEL其擴展七牛、拍SwiftS3等
2.塊存儲: 種介面通QEMUDriver或者KernelMole式存種介面需要實現linuxBlock Device介面或者QEMU提供Block Driver介面SheepdogAWSEBS青雲雲硬碟阿雲盤古系統CephRDB(RDBCeph面向塊存儲介面)
3、文件存儲: 通意義支持POSIX介面跟傳統文件系統Ext4類型區別於布式存儲提供並行化能力CephCephFS(CephFSCeph面向文件存儲介面)候GFSHDFS種非POSIX介面類文件存儲介面歸入類
提存儲種類提另外題:存儲能做統化必須要同軟體棧管理同存儲設備:SSDSATA等
Ceph提同觀點RADOS提供基礎存儲設備管理、數據控制流訪問管理提供靠持久數據存儲平台基於其我實現同介面戶實現面向同需求接比象存儲我單獨庫實現滿足同存儲需要比我塊存儲通RDP實現
統存儲並意味著所存儲都同介面同實現同軟體棧其實使用同設備管理命周期數據訪問效控制提供相合理非適合運維利於本利於軟體靠性控制機制保證我存儲靠
舉例部存儲廠商甚至網路廠商都自核軟體棧文件系內核基於其演化各種同產品線廠商要追求各產品線極致應該每產品完全獨立追求極致事實核底層技術棧需要高質量代碼、完備測試期使用Ceph布式系統並發IO、布式恢復、數據端端校驗等等關鍵實現唯實現熟系統系統些實現需要經定量級間考驗才Ceph所謂統存儲其介面堆疊式發
【Ceph其源布式存儲、其商用存儲區別處哪】
眾所周知傳統廠商立、富士通等存儲廠採用Ceph作存儲硬體載體Ceph能提供企業級存儲服務定優勢才能讓傳統存儲廠商棄採用源存儲案
1、化系統我認數據控制系統面做較遷移運維面提供較實現卻元數據瓶頸訪問數據需要經元數據伺服器查詢再尋找相應數據伺服器規模擴展遇性能瓶頸問題
2、全布式系統雖提供較數據訪問能力能高效處理客戶端LO請求卻沒提供非數據控制實現比故障處理能力足數據恢復困難跳化元數據存儲系統沒辦做強致性數據恢復
彈性數據布策略物理拓撲輸入實現高用性高持久性Ceph高性能重構體現利用CRush算數進行約束避免數據布所集群節點利用Ceph設計並提供由CRush算支持高自由化存儲集群設計實現高靠性高持久性高性能
2. 分布式存儲有哪些
問題一:當前主流分布式文件系統有哪些?各有什麼優缺點 目前幾個主流的分布式文件系統除GPFS外,還有PVFS、Lustre、PanFS、GoogleFS等。
1.PVFS(Parallel Virtual File System)項目是Clemson大學為了運行Linux集群而創建的一個開源項目,目前PVFS還存在以下不足:
1)單一管理節點:只有一個管理節點來管理元數據,當集群系統達到一定的規模之後,管理節點將可能出現過度繁忙的情況,這時管理節點將成為系統瓶頸;
2)對數據的存儲缺乏容錯機制:當某一I/O節點無法工作時,數據將出現不可用的情況;
3)靜態配置:對PVFS的配置只能在啟動前進行,一旦系統運行則不可再更改原先的配置。
2.Lustre文件系統是一個基於對象存儲的分布式文件系統,此項目於1999年在Carnegie Mellon University啟動,Lustre也是一個開源項目。它只有兩個元數據管理節點,同PVFS類似,當系統達到一定的規模之後,管理節點會成為Lustre系統中的瓶頸。
3.PanFS(Panasas File System)是Panasas公司用於管理自己的集群存儲系統的分布式文件系統。
4.GoogleFS(Google File System)是Google公司為了滿足公司內部的數據處理需要而設計的一套分布式文件系統。
5.相對其它的文件系統,GPFS的主要優點有以下三點:
1)使用分布式鎖管理和大數據塊策略支持更大規模的集群系統,文件系統的令牌管理器為塊、inode、屬性和目錄項建立細粒度的鎖,第一個獲得鎖的客戶將負責維護相應共享對象的一致性管理,這減少了元數據伺服器的負擔;
2)擁有多個元數據伺服器,元數據也是分布式,使得元數據的管理不再是系統瓶頸;
3)令牌管理以位元組作為鎖的最小單位,也就是說除非兩個請求訪問的是同一文件的同一位元組數據,對於數據的訪問請求永遠不會沖突.
問題二:分布式存儲是什麼?選擇什麼樣的分布式存儲更好? 分布式存儲系統,是將數據分散存儲在多 *** 立的設備上。傳統的網路存儲系統採用集中的存儲伺服器存放所有數據,存儲伺服器成為系統性能的瓶頸,也是可靠性和安全性的焦點,不能滿足大規模存儲應用的需要。分布式網路存儲系統採用可擴展的系統結構,利用多台存儲伺服器分擔存儲負荷,利用位置伺服器定位存儲信息,它不但提高了系統的可靠性、可用性和存取效率,還易於擴展。
聯想超融合ThinkCloud AIO超融合雲一體機是聯想針對企業級用戶推出的核心產品。ThinkCloud AIO超融合雲一體機實現了對雲管理平台、計算、網路和存儲系統的無縫集成,構建了雲計算基礎設施即服務的一站式解決方案,為用戶提供了一個高度簡化的一站式基礎設施雲平台。這不僅使得業務部署上線從周縮短到天,而且與企業應用軟體、中間件及資料庫軟體完全解耦,能夠有效提升企業IT基礎設施運維管理的效率和關鍵應用的性能
問題三:什麼是分布式存儲系統? 就是將數據分散存儲在多 *** 立的設備上
問題四:什麼是分布式數據存儲 定義:
分布式資料庫是指利用高速計算機網路將物理上分散的多個數據存儲單元連接起來組成一個邏輯上統一的資料庫。分布式資料庫的基本思想是將原來集中式資料庫中的數據分散存儲到多個通過網路連接的數據存儲節點上,以獲取更大的存儲容量和更高的並發訪問量。近年來,隨著數據量的高速增長,分布式資料庫技術也得到了快速的發展,傳統的關系型資料庫開始從集中式模型向分布式架構發展,基於關系型的分布式資料庫在保留了傳統資料庫的數據模型和基本特徵下,從集中式存儲走向分布式存儲,從集中式計算走向分布式計算。
特點:
1.高可擴展性:分布式資料庫必須具有高可擴展性,能夠動態地增添存儲節點以實現存儲容量的線性擴展。
2 高並發性:分布式資料庫必須及時響應大規模用戶的讀/寫請求,能對海量數據進行隨機讀/寫。
3. 高可用性:分布式資料庫必須提供容錯機制,能夠實現對數據的冗餘備份,保證數據和服務的高度可靠性。
問題五:分布式文件系統有哪些主要的類別? 分布式存儲在大數據、雲計算、虛擬化場景都有勇武之地,在大部分場景還至關重要。munity.emc/message/655951 下面簡要介紹*nix平台下分布式文件系統的發展歷史:
1、單機文件系統
用於操作系統和應用程序的本地存儲。
2、網路文件系統(簡稱:NAS)
基於現有乙太網架構,實現不同伺服器之間傳統文件系統數據共享。
3、集群文件系統
在共享存儲基礎上,通過集群鎖,實現不同伺服器能夠共用一個傳統文件系統。
4、分布式文件系統
在傳統文件系統上,通過額外模塊實現數據跨伺服器分布,並且自身集成raid保護功能,可以保證多台伺服器同時訪問、修改同一個文件系統。性能優越,擴展性很好,成本低廉。
問題六:分布式文件系統和分布式資料庫有什麼不同 分布式文件系統(dfs)和分布式資料庫都支持存入,取出和刪除。但是分布式文件系統比較暴力,可以當做key/value的存取。分布式資料庫涉及精煉的數據,傳統的分布式關系型資料庫會定義數據元組的schema,存入取出刪除的粒度較小。
分布式文件系統現在比較出名的有GFS(未開源),HDFS(Hadoop distributed file system)。分布式資料庫現在出名的有Hbase,oceanbase。其中Hbase是基於HDFS,而oceanbase是自己內部實現的分布式文件系統,在此也可以說分布式資料庫以分布式文件系統做基礎存儲。
問題七:分布式存儲有哪些 華為的fusionstorage屬於分布式 您好,很高興能幫助您,首先,FusionDrive其實是一塊1TB或3TB機械硬碟跟一塊128GB三星830固態硬碟的組合。我們都知道,很多超極本同樣採用了混合型硬碟,但是固態硬碟部分的容量大都只有8GB到32GB之間,這個區間無法作為系統盤來使用,只能作
問題八:linux下常用的分布式文件系統有哪些 這他媽不是騰訊今年的筆試題么
NFS(tldp/HOWTO/NFS-HOWTO/index)
網路文件系統是FreeBSD支持的文件系統中的一種,也被稱為NFS。
NFS允許一個系統在網路上與它人共享目錄和文件。通過使用NFS, 用戶和程序可以象訪問本地文件一樣訪問遠端系統上的文件。它的好處是:
1、本地工作站使用更少的磁碟空間,因為通常的數據可以存放在一台機器上而且可以通過網路訪問到。
2、用戶不必在每個網路上機器裡面都有一個home目錄。home目錄可以被放在NFS伺服器上並且在網路上處處可用。
3、諸如軟碟機、CDROM、和ZIP之類的存儲設備可以在網路上面被別的機器使用。可以減少整個網路上的可移動介質設備的數量。
開發語言c/c++,可跨平台運行。
OpenAFS(openafs)
OpenAFS是一套開放源代碼的分布式文件系統,允許系統之間通過區域網和廣域網來分享檔案和資源。OpenAFS是圍繞一組叫做cell的文件伺服器組織的,每個伺服器的標識通常是隱藏在文件系統中,從AFS客戶機登陸的用戶將分辨不出他們在那個伺服器上運行,因為從用戶的角度上看,他們想在有識別的Unix文件系統語義的單個系統上運行。
文件系統內容通常都是跨cell復制,一便一個硬碟的失效不會損害OpenAFS客戶機上的運行。OpenAFS需要高達1GB的大容量客戶機緩存,以允許訪問經常使用的文件。它是一個十分安全的基於kerbero的系統,它使用訪問控制列表(ACL)以便可以進行細粒度的訪問,這不是基於通常的Linux和Unix安全模型。開發協議IBM Public,運行在linux下。
MooseFs(derf.homelinux)
Moose File System是一個具備容錯功能的網路分布式文件統,它將數據分布在網路中的不同伺服器上,MooseFs通過FUSE使之看起來就 是一個Unix的文件系統。但有一點問題,它還是不能解決單點故障的問題。開發語言perl,可跨平台操作。
pNFS(pnfs)
網路文件系統(Network FileSystem,NFS)是大多數區域網(LAN)的重要的組成部分。但NFS不適用於高性能計算中苛刻的輸入書櫥密集型程序,至少以前是這樣。NFS標準的罪行修改納入了Parallel NFS(pNFS),它是文件共享的並行實現,將傳輸速率提高了幾個數量級。
開發語言c/c++,運行在linu下。
googleFs
據說是一個比較不錯的一個可擴展分布式文件系統,用於大型的,分布式的,對大量數據進行訪問的應用。它運行於廉價的普通硬體上,但可以提供容錯功能,它可以給大量的用戶提供性能較高的服務。google自己開發的。
問題九:分布式存儲都有哪些,並闡述其基本實現原理 神州雲科 DCN NCS DFS2000(簡稱DFS2000)系列是面向大數據的存儲系統,採用分布式架構,真正的分布式、全對稱群集體系結構,將模塊化存儲節點與數據和存儲管理軟體相結合,跨節點的客戶端連接負載均衡,自動平衡容量和性能,優化集群資源,3-144節點無縫擴展,容量、性能歲節點增加而線性增長,在 60 秒鍾內添加一個節點以擴展性能和容量。
問題十:linux 分布式系統都有哪些? 常見的分布式文件系統有,GFS、HDFS、Lustre 、Ceph 、GridFS 、mogileFS、TFS、FastDFS等。各自適用於不同的領域。它們都不是系統級的分布式文件系統,而是應用級的分布式文件存儲服務。
GFS(Google File System)
--------------------------------------
Google公司為了滿足本公司需求而開發的基於Linux的專有分布式文件系統。。盡管Google公布了該系統的一些技術細節,但Google並沒有將該系統的軟體部分作為開源軟體發布。
下面分布式文件系統都是類 GFS的產品。
HDFS
--------------------------------------
Hadoop 實現了一個分布式文件系統(Hadoop Distributed File System),簡稱HDFS。 Hadoop是Apache Lucene創始人Doug Cutting開發的使用廣泛的文本搜索庫。它起源於Apache Nutch,後者是一個開源的網路搜索引擎,本身也是Luene項目的一部分。Aapche Hadoop架構是MapRece演算法的一種開源應用,是Google開創其帝國的重要基石。
Ceph
---------------------------------------
是加州大學聖克魯茲分校的Sage weil攻讀博士時開發的分布式文件系統。並使用Ceph完成了他的論文。
說 ceph 性能最高,C++編寫的代碼,支持Fuse,並且沒有單點故障依賴, 於是下載安裝, 由於 ceph 使用 btrfs 文件系統, 而btrfs 文件系統需要 Linux 2.6.34 以上的內核才支持。
可是ceph太不成熟了,它基於的btrfs本身就不成熟,它的官方網站上也明確指出不要把ceph用在生產環境中。
Lustre
---------------------------------------
Lustre是一個大規模的、安全可靠的,具備高可用性的集群文件系統,它是由SUN公司開發和維護的。
該項目主要的目的就是開發下一代的集群文件系統,可以支持超過10000個節點,數以PB的數據量存儲系統。
目前Lustre已經運用在一些領域,例如HP SFS產品等。
3. 什麼數據存儲軟體的兼容性比較高
1. Ceph
Ceph是一個強大的存儲系統,它在同一個系統中同時提供了對象,塊(通過RBD)和文件存儲。無論您是希望在虛擬機中使用塊設備,還是將非結構化數據存儲在對象存儲中,Ceph都可以在一個平台上提供所有功能,並且還能獲得出色的靈活性。 Ceph中的所有內容都以對象的形式存儲,不管原始的數據類型是什麼,RADOS(reliable autonomic distributed object store)都會把它們當做對象來進行存儲。
RADOS層確保數據始終保持一致狀態並且可靠。Ceph會通過數據復制,故障檢測和恢復,以及跨群集節點進行數據遷移和重新平衡來實現數據一致性。 Ceph提供了一個符合POSIX的網路文件系統(CephFS),旨在實現高性能,大數據存儲以及與傳統應用程序的最大兼容。Ceph可以通過各種編程語言或者radosgw(RGW)實現無縫的訪問對象存儲,(RGW)這是一種REST介面,它與為S3和Swift編寫的應用程序兼容。另一方面,Ceph的RADOS塊設備(RBD)可以訪問在整個存儲集群中條帶化和復制的塊設備映像。
Ceph的特性
獨立、開放和統一的平台:將塊,對象和文件存儲組合到一個平台中,包括最新添加的CephFS
兼容性:您可以使用Ceph 存儲對外提供最兼容Amazon Web Services(AWS)S3的對象存儲。
精簡配置模式:分配存儲空間時,只是虛擬分配容量,在跟進使用情況佔用實際磁碟空間。這種模式提供了更多的靈活性和磁碟空間利用率。
副本:在Ceph Storage中,所有存儲的數據都會自動從一個節點復制到多個其他節點。默認任何時間群集中的都有三份數據。
自我修復:Ceph Monitors會不斷監控你的數據集。一旦出現一個副本丟失,Ceph會自動生成一個新副本,以確保始終有三份副本。
高可用:在Ceph Storage中,所有存儲的數據會自動從一個節點復制到多個其他的節點。這意味著,任意節點中的數據集被破壞或被意外刪除,在其他節點上都有超過兩個以上副本可用,保證您的數據具有很高的可用性。
Ceph很強大:您的集群可以用於任何場景。無論您希望存儲非結構化數據或為數據提供塊存儲或提供文件系統,或者希望您的應用程序直接通過librados使用您的存儲,而這些都已經集成在一個Ceph平台上了。
可伸縮性:C
4. ceph和cephfs是一個概念么
首先Ceph和CephFS不是一個概念
Ceph是分布式文件存儲系統,裡面提供了對象存儲,塊存儲和文件系統,這個文件系統也就是CephFS。所以Ceph包括了CephFS。
5. 基於linux 平台的主要分布式文件系統有哪些
常見的分布式文件系統有,GFS、HDFS、Lustre 、Ceph 、GridFS 、mogileFS、TFS、FastDFS等。各自適用於不同的領域。它們都不是系統級的分布式文件系統,而是應用級的分布式文件存儲服務。
GFS(Google File System)
--------------------------------------
Google公司為了滿足本公司需求而開發的基於Linux的專有分布式文件系統。。盡管Google公布了該系統的一些技術細節,但Google並沒有將該系統的軟體部分作為開源軟體發布。
下面分布式文件系統都是類 GFS的產品。
HDFS
--------------------------------------
Hadoop 實現了一個分布式文件系統(Hadoop Distributed File System),簡稱HDFS。
Hadoop是Apache Lucene創始人Doug Cutting開發的使用廣泛的文本搜索庫。它起源於Apache
Nutch,後者是一個開源的網路搜索引擎,本身也是Luene項目的一部分。Aapche
Hadoop架構是MapRece演算法的一種開源應用,是Google開創其帝國的重要基石。
Ceph
---------------------------------------
是加州大學聖克魯茲分校的Sage weil攻讀博士時開發的分布式文件系統。並使用Ceph完成了他的論文。
說 ceph 性能最高,C++編寫的代碼,支持Fuse,並且沒有單點故障依賴, 於是下載安裝, 由於 ceph 使用 btrfs 文件系統, 而btrfs 文件系統需要 Linux 2.6.34 以上的內核才支持。
可是ceph太不成熟了,它基於的btrfs本身就不成熟,它的官方網站上也明確指出不要把ceph用在生產環境中。
Lustre
---------------------------------------
Lustre是一個大規模的、安全可靠的,具備高可用性的集群文件系統,它是由SUN公司開發和維護的。
該項目主要的目的就是開發下一代的集群文件系統,可以支持超過10000個節點,數以PB的數據量存儲系統。
目前Lustre已經運用在一些領域,例如HP SFS產品等。
6. 在大數量級的數據存儲上,比較靠譜的分布式文件存儲有哪些
一、 Ceph
Ceph最早起源於Sage就讀博士期間的工作、成果於2004年發表,並隨後貢獻給開源社區。經過多年的發展之後,已得到眾多雲計算和存儲廠商的支持,成為應用最廣泛的開源分布式存儲平台。
二、 GFS
GFS是google的分布式文件存儲系統,是專為存儲海量搜索數據而設計的,2003年提出,是閉源的分布式文件系統。適用於大量的順序讀取和順序追加,如大文件的讀寫。注重大文件的持續穩定帶寬,而不是單次讀寫的延遲。
三、 HDFS
HDFS(Hadoop Distributed File System),是一個適合運行在通用硬體(commodity hardware)上的分布式文件系統,是Hadoop的核心子項目,是基於流數據模式訪問和處理超大文件的需求而開發的。該系統仿效了谷歌文件系統(GFS),是GFS的一個簡化和開源版本。
7. Ceph:一個 Linux PB 級分布式文件系統
Ceph 最初是一項關於存儲系統的 PhD 研究項目,由 Sage Weil 在 University of California, Santa Cruz(UCSC)實施。但是到了 2010 年 3 月底,您可以在主線 Linux 內核(從 2.6.34 版開始)中找到 Ceph 的身影。雖然 Ceph 可能還不適用於生產環境,但它對測試目的還是非常有用的。本文探討了 Ceph 文件系統及其獨有的功能,這些功能讓它成為可擴展分布式存儲的最有吸引力的備選。
「Ceph」 對一個文件系統來說是個奇怪的名字,它打破了大多數人遵循的典型縮寫趨勢。這個名字和 UCSC(Ceph 的誕生地)的吉祥物有關,這個吉祥物是 「Sammy」,一個香蕉色的蛞蝓,就是頭足類中無殼的軟體動物。這些有多觸角的頭足類動物,提供了一個分布式文件系統的最形象比喻。
開發一個分布式文件系統需要多方努力,但是如果能准確地解決問題,它就是無價的。Ceph 的目標簡單地定義為:
不幸的是,這些目標之間會互相競爭(例如,可擴展性會降低或者抑制性能或者影響可靠性)。Ceph 開發了一些非常有趣的概念(例如,動態元數據分區,數據分布和復制),這些概念在本文中只進行簡短地探討。Ceph 的設計還包括保護單一點故障的容錯功能,它假設大規模(PB 級存儲)存儲故障是常見現象而不是例外情況。最後,它的設計並沒有假設某種特殊工作負載,但是包括適應變化的工作負載,提供最佳性能的能力。它利用 POSIX 的兼容性完成所有這些任務,允許它對當前依賴 POSIX 語義(通過以 Ceph 為目標的改進)的應用進行透明的部署。最後,Ceph 是開源分布式存儲,也是主線 Linux 內核(2.6.34)的一部分。
現在,讓我們探討一下 Ceph 的架構以及高端的核心要素。然後我會拓展到另一層次,說明 Ceph 中一些關鍵的方面,提供更詳細的探討。
Ceph 生態系統可以大致劃分為四部分(見圖 1):客戶端(數據用戶),元數據伺服器(緩存和同步分布式元數據),一個對象存儲集群(將數據和元數據作為對象存儲,執行其他關鍵職能),以及最後的集群監視器(執行監視功能)。
如圖 1 所示,客戶使用元數據伺服器,執行元數據操作(來確定數據位置)。元數據伺服器管理數據位置,以及在何處存儲新數據。值得注意的是,元數據存儲在一個存儲集群(標為 「元數據 I/O」)。實際的文件 I/O 發生在客戶和對象存儲集群之間。這樣一來,更高層次的 POSIX 功能(例如,打開、關閉、重命名)就由元數據伺服器管理,不過 POSIX 功能(例如讀和寫)則直接由對象存儲集群管理。
另一個架構視圖由圖 2 提供。一系列伺服器通過一個客戶界面訪問 Ceph 生態系統,這就明白了元數據伺服器和對象級存儲器之間的關系。分布式存儲系統可以在一些層中查看,包括一個存儲設備的格式(Extent and B-tree-based Object File System [EBOFS] 或者一個備選),還有一個設計用於管理數據復制,故障檢測,恢復,以及隨後的數據遷移的覆蓋管理層,叫做 Reliable Autonomic Distributed Object Storage (RADOS)。最後,監視器用於識別組件故障,包括隨後的通知。
了解了 Ceph 的概念架構之後,您可以挖掘到另一個層次,了解在 Ceph 中實現的主要組件。Ceph 和傳統的文件系統之間的重要差異之一就是,它將智能都用在了生態環境而不是文件系統本身。
圖 3 顯示了一個簡單的 Ceph 生態系統。Ceph Client 是 Ceph 文件系統的用戶。Ceph Metadata Daemon 提供了元數據伺服器,而 Ceph Object Storage Daemon 提供了實際存儲(對數據和元數據兩者)。最後,Ceph Monitor 提供了集群管理。要注意的是,Ceph 客戶,對象存儲端點,元數據伺服器(根據文件系統的容量)可以有許多,而且至少有一對冗餘的監視器。那麼,這個文件系統是如何分布的呢?
早期版本的 Ceph 利用在 User SpacE(FUSE)的 Filesystems,它把文件系統推入到用戶空間,還可以很大程度上簡化其開發。但是今天,Ceph 已經被集成到主線內核,使其更快速,因為用戶空間上下文交換機對文件系統 I/O 已經不再需要。
因為 Linux 顯示文件系統的一個公共界面(通過虛擬文件系統交換機 [VFS]),Ceph 的用戶透視圖就是透明的。管理員的透視圖肯定是不同的,考慮到很多伺服器會包含存儲系統這一潛在因素(要查看更多創建 Ceph 集群的信息,見 參考資料 部分)。從用戶的角度看,他們訪問大容量的存儲系統,卻不知道下面聚合成一個大容量的存儲池的元數據伺服器,監視器,還有獨立的對象存儲設備。用戶只是簡單地看到一個安裝點,在這點上可以執行標准文件 I/O。
Ceph 文件系統 — 或者至少是客戶端介面 — 在 Linux 內核中實現。值得注意的是,在大多數文件系統中,所有的控制和智能在內核的文件系統源本身中執行。但是,在 Ceph 中,文件系統的智能分布在節點上,這簡化了客戶端介面,並為 Ceph 提供了大規模(甚至動態)擴展能力。
Ceph 使用一個有趣的備選,而不是依賴分配列表(將磁碟上的塊映射到指定文件的元數據)。Linux 透視圖中的一個文件會分配到一個來自元數據伺服器的 inode number(INO),對於文件這是一個唯一的標識符。然後文件被推入一些對象中(根據文件的大小)。使用 INO 和 object number(ONO),每個對象都分配到一個對象 ID(OID)。在 OID 上使用一個簡單的哈希,每個對象都被分配到一個放置組。 放置組 (標識為 PGID)是一個對象的概念容器。最後,放置組到對象存儲設備的映射是一個偽隨機映射,使用一個叫做 Controlled Replication Under Scalable Hashing (CRUSH)的演算法。這樣一來,放置組(以及副本)到存儲設備的映射就不用依賴任何元數據,而是依賴一個偽隨機的映射函數。這種操作是理想的,因為它把存儲的開銷最小化,簡化了分配和數據查詢。
分配的最後組件是集群映射。 集群映射 是設備的有效表示,顯示了存儲集群。有了 PGID 和集群映射,您就可以定位任何對象。
元數據伺服器(cmds)的工作就是管理文件系統的名稱空間。雖然元數據和數據兩者都存儲在對象存儲集群,但兩者分別管理,支持可擴展性。事實上,元數據在一個元數據伺服器集群上被進一步拆分,元數據伺服器能夠自適應地復制和分配名稱空間,避免出現熱點。如圖 4 所示,元數據伺服器管理名稱空間部分,可以(為冗餘和性能)進行重疊。元數據伺服器到名稱空間的映射在 Ceph 中使用動態子樹邏輯分區執行,它允許 Ceph 對變化的工作負載進行調整(在元數據伺服器之間遷移名稱空間)同時保留性能的位置。
但是因為每個元數據伺服器只是簡單地管理客戶端人口的名稱空間,它的主要應用就是一個智能元數據緩存(因為實際的元數據最終存儲在對象存儲集群中)。進行寫操作的元數據被緩存在一個短期的日誌中,它最終還是被推入物理存儲器中。這個動作允許元數據伺服器將最近的元數據回饋給客戶(這在元數據操作中很常見)。這個日誌對故障恢復也很有用:如果元數據伺服器發生故障,它的日誌就會被重放,保證元數據安全存儲在磁碟上。
元數據伺服器管理 inode 空間,將文件名轉變為元數據。元數據伺服器將文件名轉變為索引節點,文件大小,和 Ceph 客戶端用於文件 I/O 的分段數據(布局)。
Ceph 包含實施集群映射管理的監視器,但是故障管理的一些要素是在對象存儲本身中執行的。當對象存儲設備發生故障或者新設備添加時,監視器就檢測和維護一個有效的集群映射。這個功能按一種分布的方式執行,這種方式中映射升級可以和當前的流量通信。Ceph 使用 Paxos,它是一系列分布式共識演算法。
和傳統的對象存儲類似,Ceph 存儲節點不僅包括存儲,還包括智能。傳統的驅動是只響應來自啟動者的命令的簡單目標。但是對象存儲設備是智能設備,它能作為目標和啟動者,支持與其他對象存儲設備的通信和合作。
從存儲角度來看,Ceph 對象存儲設備執行從對象到塊的映射(在客戶端的文件系統層中常常執行的任務)。這個動作允許本地實體以最佳方式決定怎樣存儲一個對象。Ceph 的早期版本在一個名為 EBOFS 的本地存儲器上實現一個自定義低級文件系統。這個系統實現一個到底層存儲的非標准介面,這個底層存儲已針對對象語義和其他特性(例如對磁碟提交的非同步通知)調優。今天,B-tree 文件系統(BTRFS)可以被用於存儲節點,它已經實現了部分必要功能(例如嵌入式完整性)。
因為 Ceph 客戶實現 CRUSH,而且對磁碟上的文件映射塊一無所知,下面的存儲設備就能安全地管理對象到塊的映射。這允許存儲節點復制數據(當發現一個設備出現故障時)。分配故障恢復也允許存儲系統擴展,因為故障檢測和恢復跨生態系統分配。Ceph 稱其為 RADOS(見 圖 3 )。
如果文件系統的動態和自適應特性不夠,Ceph 還執行一些用戶可視的有趣功能。用戶可以創建快照,例如,在 Ceph 的任何子目錄上(包括所有內容)。文件和容量計算可以在子目錄級別上執行,它報告一個給定子目錄(以及其包含的內容)的存儲大小和文件數量。
雖然 Ceph 現在被集成在主線 Linux 內核中,但只是標識為實驗性的。在這種狀態下的文件系統對測試是有用的,但是對生產環境沒有做好准備。但是考慮到 Ceph 加入到 Linux 內核的行列,還有其創建人想繼續研發的動機,不久之後它應該就能用於解決您的海量存儲需要了。
Ceph 在分布式文件系統空間中並不是唯一的,但它在管理大容量存儲生態環境的方法上是獨一無二的。分布式文件系統的其他例子包括 Google File System(GFS),General Parallel File System(GPFS),還有 Lustre,這只提到了一部分。Ceph 背後的想法為分布式文件系統提供了一個有趣的未來,因為海量級別存儲導致了海量存儲問題的唯一挑戰。