Ceph能做什麼?
來看這張圖:物件儲存
Ceph的底層是RADOS(Reliable Autonomic Distributed Object Store),儲存著許許多多的物件,應用程式可以透過LIBRADOS這個API或是透過Ceph提供的RADOSGW(RADOS Gateway)網頁介面存取物件。區塊設備
於LIBRADOS之上,RBD(Distributed Block Device)提供區塊設備,可以當成系統的一個區塊設備格式化並掛載,也可以提供給QEMU/KVM虛擬機使用。檔案系統
於LIBRADOS之上,CEPH FS提供檔案系統,類似NFS或SAMBA,直接掛載就可以存取。在CentOS 6核心並無法支援Ceph, 因此必須使用Ceph提供的FUSE(File system in USErspace)工具掛載,RBD使用 rbd-fuse,CEPH FS使用 ceph-fuse。CentOS 6 的QEMU/KVM也不支援,必須安裝Ceph提供的QEMU/KVM版本才能支援。但到了CentOS 7.1就都可以掛載,沒問題了。
區塊設備或是檔案系統,底層都是將資料切割成4MB大小的物件。目前物件儲存或區塊設備算是比較穩定的,但檔案系統則較不穩定些,不建議用在Production的環境。
有哪些伺服器角色?
MON (Monitor)
監控整個cluster的狀態,算是Ceph cluster的中樞,可以有多台來避免單點失效。OSD (Object storage device)
實際儲存資料,一台主機可以有多個OSD,不建議使用RAID。若發現有其他OSD故障則回報MON。MDS (Metadata server)
若有使用CEPH FS則必須有此MDS記錄檔案系統Metadata, 但目前只支援同時一台Active, 因此會造成效能瓶頸。下圖是使用者、Monitor與OSD間的關係:
下圖是使用者、Metadata server與OSD 間的關係:
- Ceph用儲存池的概念,使用者只要建立一個pool,然後就可以把物件往裡面丟,所以不能有同樣名稱的物件,否則會蓋掉舊的物件。
- 它在物件之上再建立一個PG(Placement Group)層次,一個物件是一個檔案,而PG是一個存放檔案的目錄,物件會自動被對應到PG上,一個pool裡面會有數個PG,分散在各個OSD。對使用者來說,看到的只有pool和物件。
- 一個pool可以設定物件儲存的份數(Replica)與最少的份數,一般是設定3份,最少要2份。用PG來當拷貝與遷移的單位,這樣就免去針對每個物件處理的麻煩。
順帶一提,Ceph來自台灣的瀏覽量已經進步到第12名了~~~讚!
以上只粗略介紹Ceph,沒有寫得很細,但希望能發揮拋磚引玉的效果,讓更多人一起來學習與交流。
有看看ScaleIO嗎?最後開始也變成免費的了~
回覆刪除蕃薯還沒看過ScaleIO,找個時間再來瞭解它一下,謝謝你的訊息喔~~
回覆刪除