Ceph-相關概念

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中得到文件信息.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章