Ceph在KVM虛擬化中的應用與故障處理
在一個分佈式集羣上,同時爲用戶提供對象存儲,塊存儲及文件存儲
優點: 統一存儲
無任何單點故障
數據多分冗餘
存儲容量可擴展
自動容錯及故障自愈
Ceph的三大角色組件及其作用
表現爲3個守護進程
Ceph OSD
Monitor
MDS
還有其他的一些功能組件 RADOS Getaway
Ceph OSD:Ceph Object Storage Device 主要功能包括:存儲數據,副本數據處理,數據恢復,數據回補,平衡數據分佈,並將數據相關的一些兒監控信息提供給至少2個Ceph OSD,纔能有效保存兩份數據.
Monitor:主要功能是維護集羣狀態的表組, Monitor Map,OSD Map,PG(Placement Group) map,CRUSH map
MDS:Ceph的MDS(Metadata Server)守護進程,主要保存的是Ceph文件系統的元數據. 對於Ceph的塊設備和Ceph對象存儲都不需要Ceph MDS守護進程.
Ceph的架構及應用場景
ceph的架構主要分成底層數據分佈及上層應用接口
Ceph的底層核心是RADOS(reliable,autonomous,Distributed,Object,Storage)
Ceph的本質是一個對象存儲.RADOS由兩個組件組成:OSD和Monitor
OSD主要提供存儲資源,每一個disk,SSD,RAID GROUP或者一個分區都可以成爲一個OSD,而每個OSD還將負責向該對象的負載節點分發和恢復,Monitor維護Ceph集羣並監控Ceph集羣的全局狀態,提供一致性的策略
RADOS分發策略依賴於一個名爲CRUSH(Controlled Replication Under Scalable Hashing 基於可擴展哈希算法的可控複製)的算法
Ceph的應用場景主要由它的架構確定.ceph提供對象存儲.塊存儲和文件存儲.主要有4中應用
第一類:Librados應用.通俗地說,Librados提供應用程序對RADOS的直接訪問,目前Librados已經提供了對C,C++,Java,Python,Ruby和PHP的支持,它支持單個單項的原子操作,如同時更新數據和屬性,CAS操作,同時有對象粒度的快照操作,它的實現是基於RADOS的插件API,其實際上就是在RADOS上運行的封裝庫.
第二類:RADOSGW(Reliable Autonomic Distributed Object Storage)應用,這類應用基於Librados之上,增加了HTTP協議,提供RESTful接口並且兼容S3,Swift接口
第三類:RBD(RADOS BLOCK DEVICE)應用,這類應用也是基於librados之上的,細分爲兩種應用場景
1.爲虛擬機提供塊設備,通過Librbd可以創建一個塊設備(Container),然後通過QEMU/KVM附加到VM上,通過Container和VM的解耦,使得塊設備可以被綁定到不通的VM上
2.爲主機提供塊設備.
以上兩種方式都是將一個虛擬的塊設備分片存儲在RADOS中,都會利用數據條帶化提高數據並行傳輸,都支持塊設備的快照.COW(Copy-ON-Write)克隆.最重要的是RBD還支持Live migration.
第四類:CephFS(Ceph文件系統)應用,這類應用是基於RADOS實現的PB級別分佈式文件系統,其中引入了MDS(Meta Data Server),它主要爲兼容POSIX文件系統提供元數據,比如文件目錄和文件元數據,同時MDS會將元數據存儲在RADOS中,這樣元數據本身也達到了並行化,可以大大加快文件操作的速度.
MDS本身不爲Client提供數據文件,只爲Client提供對元數據的操作,當Client打開一個文件時,會查詢並更新MDS響應的元數據,然後根據提供的對象信息直接從RADOS中得到文件信息.
Ceph-相關概念
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.