# Ceph Object Storage

### Ceph 分散式檔案系統是一套相當成熟的儲存系統, 不僅免費、開放原始碼, 也相當的可靠以及穩定. Ceph 系統不僅僅可以提供平行化的效能, 還有自動備份、資料遷移等等的功能

## 三個節點都要安裝Ceph

![](https://529150212-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh81JtaIQ84bwQqz_Wh%2F-LqYbWC36r5KFE3yM96l%2F-LqYbfR8Gjo1z-9uOA84%2Fimage.png?alt=media\&token=b5e0ab85-37fe-44e4-9e99-7cbb9f3fcecf)

![](https://529150212-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh81JtaIQ84bwQqz_Wh%2F-LqYbWC36r5KFE3yM96l%2F-LqYbv-VD51IFVeHpmy-%2Fimage.png?alt=media\&token=e74ee070-801e-47c2-8cc6-ecf4674f06f4)

![](https://529150212-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh81JtaIQ84bwQqz_Wh%2F-LqYbWC36r5KFE3yM96l%2F-LqYc4vI11iwi_zcx-iN%2Fimage.png?alt=media\&token=9d4389c7-1d8c-4753-aae2-c41fe5b01f6b)

第二台安裝

![](https://529150212-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh81JtaIQ84bwQqz_Wh%2F-LqYdOlEfNiSboV75eZS%2F-LqYdPr492Vww68vVy7x%2Fimage.png?alt=media\&token=a968843b-748e-4162-975c-91b98b4c1a3b)

![](https://529150212-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh81JtaIQ84bwQqz_Wh%2F-LqYdgrY2UjhwRjkGRK9%2F-LqYdhl7eV0oOYhi2CCc%2Fimage.png?alt=media\&token=82463c0a-c6bb-4044-85c4-c3aa97344173)

## 建立osd

![](https://529150212-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh81JtaIQ84bwQqz_Wh%2F-LqYdgrY2UjhwRjkGRK9%2F-LqYgSj2yhluys49TeyU%2Fimage.png?alt=media\&token=299478a8-01dd-4837-bbac-a4467f8a38ff)

![](https://529150212-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh81JtaIQ84bwQqz_Wh%2F-LuoDSTdSsFI1f40Rn2Z%2F-LuoGqR38-NgOHXkdPgf%2Fimage.png?alt=media\&token=d40dfcbb-0fe2-47e6-9de7-98ca4fa37ed4)

![](https://529150212-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh81JtaIQ84bwQqz_Wh%2F-LuoGssx1jD50cPEhfUf%2F-LuoHOhBpAnf6fj_RllN%2Fimage.png?alt=media\&token=bfd62dbf-7874-405a-8639-532c4ba1be88)

![](https://529150212-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh81JtaIQ84bwQqz_Wh%2F-LuoHQrqfEGuPgFG7nP0%2F-LuoIF42SHrmjmRVx71H%2Fimage.png?alt=media\&token=404b8321-541f-4698-927d-1558c5117032)

建立Ceph Pools

![](https://529150212-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh81JtaIQ84bwQqz_Wh%2F-Lqj647ExMH-yoVYG2bx%2F-Lqj6Pa1sOwzobNQ7Wks%2Fimage.png?alt=media\&token=053bec72-8f69-45a4-b3e2-641175f9a49e)

![](https://529150212-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh81JtaIQ84bwQqz_Wh%2F-Lqj647ExMH-yoVYG2bx%2F-Lqj6lLd3ByR-ZJZOy9d%2Fimage.png?alt=media\&token=37e34734-8611-4f1b-b77d-65805cd049da)

MDS 是 option的，建立 cephFS才需要

![](https://529150212-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh81JtaIQ84bwQqz_Wh%2F-Lqj9U4VnBZKaexFu1UU%2F-LqjJWTbdvlloAKcU3jC%2Fimage.png?alt=media\&token=7b4b50fd-7848-4439-88dc-f5ad98d541cd)

![](https://529150212-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh81JtaIQ84bwQqz_Wh%2F-LqZ4ZNtCY6Mgv8a1FZZ%2F-LqZ4a1KMXOnt4uLc-YX%2Fimage.png?alt=media\&token=a154a149-8d8f-49c4-bf6e-6d30b9a9e650)

**Ceph存儲集群至少需要一個Ceph Monitor，Ceph Manager和Ceph OSD（對象存儲守護進程）。運行Ceph Filesystem客戶端時也需要Ceph元數據服務器（ Metadata Server ）。**

Ceph OSDs: Ceph OSD 守護進程（ceph-osd）的功能是存儲數據，處理數據的復制、恢復、回填、再均衡，並通過檢查其他 OSD 守護進程的心跳來向 Ceph Monitors 提供一些監控信息。冗余和高可用性通常至少需要3個Ceph OSD。當 Ceph 存儲集群設定為有2個副本時，至少需要2個 OSD 守護進程，集群才能達到 active+clean 狀態（ Ceph 默認有3個副本，但你可以調整副本數）。

Monitors: Ceph Monitor（ceph-mon） 維護著展示集群狀態的各種圖表，包括監視器圖、 OSD 圖、歸置組（ PG ）圖、和 CRUSH 圖。 Ceph 保存著發生在Monitors 、 OSD 和 PG上的每一次狀態變更的歷史信息（稱為 epoch ）。監視器還負責管理守護進程和客戶端之間的身份驗證。冗余和高可用性通常至少需要三個監視器。

Managers: Ceph Manager守護進程（ceph-mgr）負責跟蹤運行時指標和Ceph集群的當前狀態，包括存儲利用率，當前性能指標和系統負載。Ceph Manager守護進程還托管基於python的插件來管理和公開Ceph集群信息，包括基於Web的Ceph Manager Dashboard和 REST API。高可用性通常至少需要兩個管理器。

MDSs: Ceph 元數據服務器（ MDS ）為 Ceph 文件系統存儲元數據（也就是說，Ceph 塊設備和 Ceph 對象存儲不使用MDS ）。元數據服務器使得 POSIX 文件系統的用戶們，可以在不對 Ceph 存儲集群造成負擔的前提下，執行諸如 ls、find 等基本命令。

軟體定義儲存，同時支援區塊式儲存、物件式儲存、檔案系統層級儲存

Ceph的底層是叢集式的伺服器環境，若想要擴充儲存容量與使用規模，只需將更多臺伺服器加入叢集即可。而在這樣的環境下，Ceph也具備很高的可靠度，能自動修復和管理，資料也會同時複寫到多臺節點，一旦叢集中的節點發生故障情形時，不會影響整個儲存系統的運作，以及導致資料毀損。

我們可以把 Ceph 的目標可以簡單定義為以下：

* 容易擴充到 PB 級別的儲存容量
* **在不同負載情況下的高效能（每秒輸入/輸出操作數\[IPOS]、帶寬）**

Ceph以單一架構，同時提供物件、區塊、檔案的儲存，藉由RADOS函式庫中介，程式可直接存取底層叢集，並提供物件儲存閘道、區塊儲存裝置來對應存取，也可搭配元資料伺服器來提供檔案系統服務，而底層則是由多個RADOS節點組成的叢集所構成，可橫向擴充數千個節點，並以此提供PB、甚至EB等級的儲存空間。

​

![資料來源：Red Hat、迎棧科技，iThome整理，2015年9月](https://s4.itho.me/sites/default/files/images/730%20%E5%B0%81%E9%9D%A23%20\(P_28_29\)-600-1.png)

RADOS（Reliable, Autonomic Distributed Object Store），顧名思義，它提供了一個可靠、能自我管理的分散式物件儲存區。

![](https://529150212-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh81JtaIQ84bwQqz_Wh%2F-LqocFpEHsjve8gdlGmb%2F-Lqocms8JhDl1Nw6pvCa%2Fimage.png?alt=media\&token=7bf2819a-acb5-484d-bbac-bc0ae2a2470d)

狀態是HEALTH\_WARN，Monitor clock skew detected

ceph叢集監控狀態是HEALTH\_WARN， clock skew detected on mon.cephmon154, Monitor clock skew detected

說明2個mon之間的時間相差超過允許值了，需要做同步。

clock skew detected on mon.pve1

Log報錯資訊：

```
mon.pve1 clock skew 0.0668655s > max 0.05s (latency 0.00100117s)
```

【解決方法】在ceph上面/etc/ceph/ceph.conf中設定monitor間的允許時鐘偏移最大值

\[mon]

mon clock drift allowed = 2 #允許在mon之間差多少時間，預設為0.050秒

重啟ceph

\#service ceph restart
