1. 程式人生 > >ceph學習筆記之二RADOS

ceph學習筆記之二RADOS

ceph sds

Ceph學習筆記之二RADOS

一、RADOS架構

在RADOS架構中主要包含2個部分組件:

1MONMonitor

由少量的Monitor節點構成的強耦合,小規模集群;負責管理Cluster Map。

2OSDObject Storage Device

由數量可變的 大規模磁盤設備組成的集群,負責存儲所有Object數據。

二、Monitor詳解

在前面已經簡單對其MON進行描述,在這個地方我們再次對MON進行詳細解讀。正如其名Monitor是負責監視整個集群運行狀態的,這些信息都是由維護集群成員的守護進程來提供的,如各節點之間的狀態、集群配置等信息。Ceph Monitor Map包括:OSD Map、PG Map、MDS Map和CRUSH等,這些Map統稱為集群Map。

1Monitor Map

包括有關Monitor節點端到端的信息,其中包括Ceph集群ID,Monitor主機名和IP地址、端口號,以及版本信息、更改信息。通過下面命令查看Monitor Map信息:

# ceph mon dump

技術分享

2OSD Map

包括集群ID 、OSD Map版本信息、更改信息;以及Pool相關信息,如:Pool名稱、PoolID、類型、副本數、PGP;同時還有OSD信息,如OSD數量、狀態、OSD權重、最近清潔間隔和OSD主機信息,可通過下面命令查看OSD Map信息:

# ceph osd dump

3PG Map

包括PG版本、時間戳、最新OSD Map版本信息、空間使用比例、以及沾滿比例;同時包含每個PG ID、對象數目、狀態、OSD狀態等信息;使用下面命令查看PG Map信息:

# ceph pg dump

4CRUSH 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節點。

三、Ceph OSD詳解

OSD是Ceph存儲集群最重要的組件,OSD將數據以對象的形式存儲到集群中每個節點的物理磁盤上。

Ceph集群一般都包含多個OSD,對於任何讀寫操作請求,Client端從CephMonitor獲取ClusterMap之後,Client將直接與OSD進行I/O操作交互,使得數據讀寫過程更為迅速。

1OSD副本特性介紹

Ceph核心功能特性包括高可靠、自動平衡、自動恢復和一致性。對於Ceph OSD而言,基於配置的副本數,Ceph提供通過分布在多節點上的副本來實現,使得Ceph具有高可用性及容錯性。OSD中的每個對象都有一個主副本,若幹個從副本。這些副本默認情況下是分布在不同節點上的,這就是Ceph作為分布式存儲系統的集中體現。每個OSD都可能是某些對象的主OSD;同時也可能成為其他對象的從OSD。從OSD受主OSD的控制,在某些情況下從OSD也會成為主OSD。例如:在磁盤故障時Ceph OSD Deamon的智能對等機制將協同其他OSD執行恢復操作,此時存儲對象的從OSD將被提升為主OSD,同時,新的從副本也將重新生成,這樣就保證了Ceph的可靠和一致。

2Ceph 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中,這樣可以節約大量的文件系統檢測時間。

3Ceph日誌文件系統

在使用了BTRFS和XFS文件系統的OSD中,在提交數據到後端硬件磁盤之前,Ceph首先將數據寫入一個存儲區域,該區域稱為Journal;Journal可以用一個單獨的SSD磁盤做Journal,或者使用OSD自身的一個分區;如果要使Ceph得到較好的性能建議使用獨立的SSD磁盤做Journal日誌。其I/O流程如圖:

技術分享

Ceph的任何寫操作首先是寫Journal日誌,然後每隔5秒將Journal中的數據刷寫到後端硬件磁盤。

本文出自 “無詺IT小站” 博客,謝絕轉載!

ceph學習筆記之二RADOS