Ceph學習筆記之二RADOSnode
1、RADOS架構後端
在RADOS架構中主要包含2個部分組件:bash
1、MON(Monitor)架構
由少許的Monitor節點構成的強耦合,小規模集羣;負責管理Cluster Map。分佈式
2、OSD(Object Storage Device)ide
由數量可變的 大規模磁盤設備組成的集羣,負責存儲全部Object數據。性能
2、Monitor詳解學習
在前面已經簡單對其MON進行描述,在這個地方咱們再次對MON進行詳細解讀。正如其名Monitor是負責監視整個集羣運行狀態的,這些信息都是由維護集羣成員的守護進程來提供的,如各節點之間的狀態、集羣配置等信息。Ceph Monitor Map包括:OSD Map、PG Map、MDS Map和CRUSH等,這些Map統稱爲集羣Map。spa
1、Monitor Map 線程
包括有關Monitor節點端到端的信息,其中包括Ceph集羣ID,Monitor主機名和IP地址、端口號,以及版本信息、更改信息。經過下面命令查看Monitor Map信息:
# ceph mon dump
2、OSD Map
包括集羣ID 、OSD Map版本信息、更改信息;以及Pool相關信息,如:Pool名稱、PoolID、類型、副本數、PGP;同時還有OSD信息,如OSD數量、狀態、OSD權重、最近清潔間隔和OSD主機信息,可經過下面命令查看OSD Map信息:
# ceph osd dump
3、PG Map
包括PG版本、時間戳、最新OSD Map版本信息、空間使用比例、以及沾滿比例;同時包含每一個PG ID、對象數目、狀態、OSD狀態等信息;使用下面命令查看PG Map信息:
# ceph pg dump
4、CRUSH Map
包含集羣存儲設備信息,故障域層次結構和存儲數據時定義失敗域、規則信息,能夠經過如下命令查看:
# ceph osd crush dump
Monitor對資源的需求
Ceph Monitor是個輕量化的守護進程,在常規狀況下不須要太多的系統資源;入門級CPU、千兆網卡便可知足大部分場景;同時Monitor節點須要有足夠的磁盤空間來存儲集羣日誌,一個健康的集羣產生幾MB到幾GB的日誌;然而若是集羣不正常、存儲需求增長、打開低等級的日誌信息的話,將會產生大量的日誌,增長磁盤空間存儲日誌信息。
Monitor節點設計
一個典型的Ceph集羣包含多個Monitor節點,一個多Monitor節點Ceph架構經過肯定的Monitor節點數來選擇Leader,在Ceph集羣中有多個Monitor節點時,Monitor節點數應爲奇數,最低的要求是至少有一個Monitor節點,一般在設計Monitor節點數量推薦值爲3,既爲3個Monitor節點。
3、Ceph OSD詳解
OSD是Ceph存儲集羣最重要的組件,OSD將數據以對象的形式存儲到集羣中每一個節點的物理磁盤上。
Ceph集羣通常都包含多個OSD,對於任何讀寫操做請求,Client端從CephMonitor獲取ClusterMap以後,Client將直接與OSD進行I/O操做交互,使得數據讀寫過程更爲迅速。
1、OSD副本特性介紹
Ceph核心功能特性包括高可靠、自動平衡、自動恢復和一致性。對於Ceph OSD而言,基於配置的副本數,Ceph提供經過分佈在多節點上的副原本實現,使得Ceph具備高可用性及容錯性。在OSD中的每一個對象都有一個主副本,若干個從副本。這些副本默認狀況下是分佈在不一樣節點上的,這就是Ceph做爲分佈式存儲系統的集中體現。每一個OSD均可能是某些對象的主OSD;同時也可能成爲其餘對象的從OSD。從OSD受主OSD的控制,在某些狀況下從OSD也會成爲主OSD。例如:在磁盤故障時Ceph OSD Deamon的智能對等機制將協同其餘OSD執行恢復操做,此時存儲對象的從OSD將被提高爲主OSD,同時,新的從副本也將從新生成,這樣就保證了Ceph的可靠和一致。
2、Ceph OSD架構及文件系統
OSD架構實現由物理磁盤驅動器,在其之上的Linux文件系統以及OSD服務組成。Linux文件系統的擴展屬性提供了:對象狀態、快照、元數據內部信息。
Ceph OSD目前支持的文件系統主要有:BTRFS、XFS、EXT4
BTRFS
BTRFS文件系統格式的OSD相比XFS和EXT4提供了最好的性能。BTRFS主要優勢:
(1) 擴展性
BTRFS設計目標是應對大型機器對文件系統的擴展性要求。Extent、B-Tree和動態inode建立等特性保證了BTRFS在大型機器上仍有不錯的表現。總體性能不會隨系統容量增長而下降。
(2) 數據一致性
當系統面臨不可預料的硬件故障時,BTRFS採用COW事物技術保證文件系統的一致性。BTRFS還支持校驗和、避免了未知的錯誤出現,傳統的文件系統沒法作到。
(3) 多設備管理
BTRFS支持建立快照和克隆。BTRFS還能管理多個物理設備。
BTRFS結合Ceph使得BTRFS中的諸多優勢的快照,Journal of Parallel(並行日誌)等優點使BTRFS在表現較爲突出。然而不幸的是目前BTRFS還不能達到生產環境中要求的健壯性。所以不建議在Ceph集羣中使用。
XFS
一種高性能的日誌文件系統,XFS特別擅長處理大文件,同時提供平滑的數據傳輸。在CentOS7中已將XFS+LVM做爲默認文件系統。
(1) 分配組
XFS文件系統內部被分爲多個「分配組」,它們是文件系統的等長線性存儲區。每一個分配組各自管理本身的inode和剩餘空間。文件和文件夾能夠跨越分配組。這種特性爲XFS提供了可伸縮和並行的特性;多個線程和進程能夠同時在同一個文件系統上執行I/O操做。
(2) 條帶化分配
在條帶化RAID陣列上建立XFS文件系統時,能夠指定一個「條帶數據單元」。這能夠保證數據分配、inode分配,以及內部日誌被對齊到該條帶單元上。以此最大化吞吐。
(3) 基於Extent的分配方式
XFS文件系統中的文件用到的塊由變長Extent管理,每個Extent描述了一個或多個連續的塊。
(4)擴展性
XFS經過實現擴展文件屬性給文件提供了多個數據流,使文件能夠被附加多個名、值對;文件名是一個最大長度爲256字節的,以Null字符結尾的可打印字符串。其關聯值可包含多達64KB的二進制數據。擴展性能夠被添加到任意一種XFS inode上,包含符號鏈接、設備節點和目錄。
缺點:XFS不能很好的處理Ceph寫入過程的Journal問題。
EXT4
第4代擴展文件系統,是Linux系統下的日誌文件系統,是EXT3文件系統的後續版本。
(1) 大型文件系統
EXT4文件系統能夠支持最高1EB的分區與最大16TB的文件
(2) Extents
EXT4引進了Extent文件存儲方式,以替換EXT2/3使用的塊映射方式。Extent指的是一連串的連續實體塊,這種方式能夠增長大型文件的效率並減小分裂文件。
(3) 日誌校驗和
EXT4使用校驗和的特性來提升文件系統的可靠性,由於日誌是磁盤上被讀取最頻繁的部分之一。
(4) 快速文件系統檢查
EXT4將未使用的區塊標記在inode中,這樣能夠節約大量的文件系統檢測時間。
3、Ceph日誌文件系統
在使用了BTRFS和XFS文件系統的OSD中,在提交數據到後端硬件磁盤以前,Ceph首先將數據寫入一個存儲區域,該區域稱爲Journal;Journal能夠用一個單獨的SSD磁盤作Journal,或者使用OSD自身的一個分區;若是要使Ceph獲得較好的性能建議使用獨立的SSD磁盤作Journal日誌。其I/O流程如圖:
Ceph的任何寫操做首先是寫Journal日誌,而後每隔5秒將Journal中的數據刷寫到後端硬件磁盤。