前言
由於公司的業務調整,現在我又要接觸ceph這個東西,由於我接手的是一個網盤類項目,所以分布式存儲系統ceph就是我必須要學的了。現在壓力還是比較大的,從業務直接到后台核心。
大概在這幾天,我將ceph的文檔過了一遍,並且大致的了解了什么是ceph,或者說ceph的具體應用場景之類,在這里我會大致的介紹一下。
什么是ceph?它一般用在什么地方?
caph這玩意是一個分布式存儲的文件系統。在我司一般是和OpenStack苟合在一起。現在我這里的主要是私有雲平台在用。一般做大規模存儲的比較多。
ceph的具體架構是什么?或者ceph有哪些重要的服務?
其實有個圖可以說明這個問題:

使用元數據服務器,執行元數據操作(來確定數據位置)。元數據服務器管理數據位置,以及在何處存儲新數據。值得注意的是,元數據存儲在一個存儲集群(標為 “元數據 I/O”)。實際的文件 I/O 發生在客戶和對象存儲集群之間。這樣一來,更高層次的 POSIX 功能(例如,打開、關閉、重命名)就由元數據服務器管理,不過 POSIX 功能(例如讀和寫)則直接由對象存儲集群管理
ceph有什么特點?為什么要學它?
ceph 的特點,文檔上說了,可擴展,高可用,負載均衡,安全。
但是我並不想直接去抄文檔的,我自己看了一下原有的架構,結合了我自己的理解,對ceph的這幾個特點有了更深刻的認識。
首先就是可擴展,說白了就是可以隨便擴充節點,舉個例子,你現在搭建了一個ceph對象存儲系統做你自己雲平台的后台存儲,然后你現在用了三台機器做ceph集群存儲,然后你現在又買了一台機器,你就可以直接把它擴進你的ceph集群,這樣你就有四台機器做存儲了。理論上ceph支持數千個節點擴充,這就是ceph的可擴展性,他可以不斷地滿足你的存儲需求,你可以對它不斷地擴容。
高可用服務,這個就需要理解一下了,還是舉個例子,一般的情況下,如果你有四台機器四個節點做ceph存儲,現在突然有個節點掛了,一般的系統單節點進出,如果掛掉的節點是這個節點,那么系統就玩完了。ceph就不存在這個情況,它消滅了集中化,自己特有的CRUSH算法成功的結束了傳統的查表方法,把工作分攤到所有Ceph Clients和Ceph OSD上,增強了彈性擴展和高可用性。
安全這個,是我最近在研究的,所以對ceph的安全也看了一下,首先ceph有個特性叫做高可用認證,Cephx是ceph的一套認證系統,用於用戶和daemon的認證,防止攻擊。
用戶產生密鑰,Ceph monitor擁有密鑰的拷貝,他們雙方都能夠向對方證明自己擁有密鑰從而完成認證,認證過程中密鑰始終不暴露。
任何一個Ceph monitor都可以認證用戶,沒有單點故障。從monitor返回的認證數據包含一個session key,這個session key用用戶的密鑰加密,所以只有該用戶可以向ceph monitor發起請求。認證成功后,用戶可以訪問所有的OSD和MDS。
差不多現在,你應該對ceph有個基本的了解了,我現在在寫一個網盤項目,我准備邊寫邊分享自己的心得,應該還會持續更新下去。
