真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

為什么需要關(guān)注Ceph

這篇文章將為大家詳細講解有關(guān)為什么需要關(guān)注Ceph,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)建站是一家專業(yè)提供金門企業(yè)網(wǎng)站建設,專注與做網(wǎng)站、網(wǎng)站設計H5網(wǎng)站設計、小程序制作等業(yè)務。10年已為金門眾多企業(yè)、政府機構(gòu)等服務。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進行中。

為什么需要關(guān)注Ceph

在目前開源世界里多樣的存儲項目中,不同的項目都有側(cè)重點,而它們最終都是要為企業(yè)的IT基礎(chǔ)設施服務。那么企業(yè)IT基礎(chǔ)設施經(jīng)理們到底需要怎么樣的存儲,它們的需求得到滿足了嗎?作者嘗試根據(jù)對企業(yè)級存儲產(chǎn)品的調(diào)研歸納出如下圖。

為什么需要關(guān)注Ceph

圖一

從上圖我們可以了解到存儲接口需求、擴展、運維和成本構(gòu)成了企業(yè)級存儲產(chǎn)品的四大中心。幾乎所有的存儲產(chǎn)品包括硬件(存儲一體機,SAN)和軟件都致力于在這個方面強調(diào)自己的優(yōu)勢,它們或者考慮成本,或者強調(diào)擴展性。那么我們來看Ceph它是如何定位自己的。

為什么需要關(guān)注Ceph

圖二

Ceph通過其三大存儲接口滿足了企業(yè)的多樣需求,通過其建立之初就”大肆宣揚”的擴展性,通過其分布式架構(gòu)和致力于PB級規(guī)模存儲目標的容錯性建立了自己的需求矩陣。

為什么需要關(guān)注Ceph為什么需要關(guān)注Ceph

圖四

上圖也是Ceph可以帶來的企業(yè)IT架構(gòu)方案的變革,在了解到Ceph提供的特性后,如何達到并實現(xiàn)是每個不熟悉Ceph的人迫切需要了解的。

Ceph的架構(gòu)

還是下圖這張經(jīng)典的Ceph模塊架構(gòu)圖。

為什么需要關(guān)注Ceph

圖五

底層是Rados,也是Ceph實現(xiàn)分布式存儲的根本,所有存儲接口都是基于Rados實現(xiàn)的。Rados本身就是一個對象存儲接口,它自身維護了一個集群狀態(tài)和實現(xiàn)了數(shù)據(jù)分發(fā)的要求,我們通常也講Rados稱為Ceph Cluster,因為其上的存儲接口如CephFS都是基于其上的接口實現(xiàn)而已。

為什么底層是對象存儲模型?

與使用固定塊大小存儲比較,名字可以在一個扁平的命名空間里,可以采用可變的大小并且簡單的API就有豐富的語義。
與使用文件存儲比較,不需要難以分布的樹形層次,上傳語義不能跨越對象,不能并行化。

RADOS的組件有哪些?

OSD: 每一個disk、SSD或者RAID group或者其他一個物理存儲設備都成為一個OSD,主要負責存儲和查找對象,并且負責向該對象的復制節(jié)點分發(fā)和恢復。

Monitor: 維護集群的成員和狀態(tài),提供強一致性的決策(類似于Zookeeper的作用)

RADOS分發(fā)策略–CRUSH算法

為什么需要關(guān)注Ceph

圖六

從上圖的流程中作者嘗試解讀RADOS是如何將對象分發(fā)到不同的OSD上(OSD),首先需要了解Ceph定義的幾個存儲區(qū)域概念。Pool是一個命名空間,客戶端向RADOS上存儲對象時需要指定一個Pool,Pool通過配置文件定義并可以指定Pool的存儲OSD節(jié)點范圍和PG數(shù)量。PG是Pool內(nèi)部的概念,是對象和OSD的中間邏輯分層,對象首先會通過簡單的Hash算法來得到其存儲的PG,這個PG和對象是確定的。然后每一個PG都有一個primary OSD和幾個Secondary OSD,對象會被分發(fā)都這些OSD上存儲,而這個分發(fā)策略稱為CRUSH—Ceph的數(shù)據(jù)均勻分布的核心。需要注意的是整個CRUSH以上的流程實現(xiàn)都是在客戶端計算,因此客戶端本身需要保存一份Cluster Map,而這是從Monitor處獲得。從這里我們也可以了解到Monitor主要職責就是負責維護這份Cluster Map并保證強一致性。

CRUSH通過偽隨機算法來確保均勻的數(shù)據(jù)分布,它的輸入是PG,Cluster State和Policy,并且保證CRUSH的Object Name一樣的情況下,即使后兩者參數(shù)發(fā)生改變也會得到一致的讀取(注意是讀取)。并且這個CRUSH算法是可配置的,通過PG Number和Weight的指定可以得到不同的分布策略。這個可配置的分布策略讓Ceph的能力得到極大加強。

為什么需要關(guān)注Ceph

圖七

Ceph的使用場景

Librados

為什么需要關(guān)注Ceph

圖八

首先回顧之前看到的整個架構(gòu)圖,在上述文中我們了解了RADOS的原理和作用,然后我們聚焦在Librados,Librados提供了對RADOS的直接訪問。librados提供對C、C++、Java、Python、Ruby和PHP的支持。

為什么需要關(guān)注Ceph

圖九

librados和之后提到的RADOSGW的不同在于它是直接訪問RADOS,沒有Http協(xié)議的負載。它支持單個單項的原子操作如同時更新數(shù)據(jù)和屬性、CAS操作,同時有對象粒度的快照操作。它的實現(xiàn)是基于RADOS的插件API,因此,其實際上就是在Rados上運行的封裝庫。

RadosGW

為什么需要關(guān)注Ceph

圖十

從上圖可以看到RadosGW位于Librados之上,它主要提供RESTful接口并且兼容S3、Swfit的接口。同時RadosGW提供了Bucket的命名空間(類似于文件夾)和賬戶支持,并且具備使用記錄用于賬單目的。相對的,它增加了Http協(xié)議的負載。

RadosGW可以提供將Ceph Cluster作為分布式對象存儲的能力,如Amazon的S3范圍,Swift等。企業(yè)也可以直接使用其作為媒體數(shù)據(jù)存儲,分發(fā)等。

RBD

塊存儲是Ceph的另一大支撐點,它目前可以為虛擬機和主機(Host)提供不同路徑的塊存儲。

為什么需要關(guān)注Ceph

圖十一

上圖為Ceph Cluster為虛擬機提供塊設備支持。LibRBD是基于Librados的塊設備接口實現(xiàn),主要將一個塊設備映射為不同的對象來實現(xiàn)。通過LibRBD可以創(chuàng)建一個塊設備(Container),然后通過QEMU/KVM Attach到VM上。通過Container和VM的解耦使得塊設備可以被綁定到不同的VM上。

為什么需要關(guān)注Ceph

圖十二

上圖為Ceph Cluster為主機提供塊設備支持,通過RBD Kernel Module(rbd.ko)為主機提供塊設備。這里有一個與上述不同之處在于Librados是內(nèi)核模塊而模塊名稱為(libceph)。這是因為RBD內(nèi)核模塊需要利用同樣位于內(nèi)核空間的Librados。從這里我們可以了解到,實際上Ceph維護了數(shù)量非常多的Library,而實際上質(zhì)量是層次不齊的,這需要了解Ceph的人去合理使用。正是因為如何多樣的Library也使得Ceph的存儲接口得到多樣化,而不是讓不同的存儲接口勉強實現(xiàn)。不同的存儲接口具有完全不同的路徑。

以上兩種方式都是將一個虛擬的塊設備分片存儲在RADOS(Ceph Cluster)中,都會利用利用數(shù)據(jù)條帶化提高數(shù)據(jù)并行傳輸,都支持塊設備的快照,COW(Copy-On-Write)克隆。最重要的是RBD還支持Live migration。目前的OpenStack,CloudStack都采用第一種方式為虛擬機提供塊設備。

為什么需要關(guān)注Ceph為什么需要關(guān)注Ceph

圖十三

為什么需要關(guān)注Ceph

圖十四

上述圖示也表明了在大量VM的情況下如何使得存儲容量利用的最小化和高效性。當大量VM基于同一個Snapshot建立Volume時,所有容量不會立即得到占用,而都是COW。這個特征也是目前眾多存儲廠商在VDI解決方案一直強調(diào)的。在VDI解決方案中,存儲成本是最重要的一環(huán),利用Ceph通過Thin provisioning和數(shù)據(jù)并行化可以大大提高VDI方案的吸引力。

目前Ceph的塊存儲是大力推薦并且高速開發(fā)的模塊,因為它提供的接口對于用戶更加熟悉,并且在目前流行的OpenStack和CloudStack中可以得到廣泛接受和支持。Ceph塊存儲的計算和存儲解耦、Live migration特性、高效的快照和克隆/恢復都是引入注目的特性。

CephFS

CephFS是基于Rados實現(xiàn)的PB級分布式文件系統(tǒng),這里會引入一個新的組件MDS(Meta Data Server),它主要為兼容POSIX文件系統(tǒng)提供元數(shù)據(jù),如目錄和文件元數(shù)據(jù)。同時,MDS會將元數(shù)據(jù)也存在RADOS(Ceph Cluster)中。元數(shù)據(jù)存儲在RADOS中后,元數(shù)據(jù)本身也達到了并行化,大大加強了文件操作的速度。需要注意的是MDS并不會直接為Client提供文件數(shù)據(jù),而只是為Client提供元數(shù)據(jù)的操作。

為什么需要關(guān)注Ceph

圖十五

從上圖可以看到,Client當Open一個文件時,會查詢并更新MDS相應的元數(shù)據(jù)如文件包括的對象信息,然后再根據(jù)提供的對象信息直接從RADOS(Ceph Cluster)中直接得到文件數(shù)據(jù)。

為什么需要關(guān)注Ceph

圖十六

CephFS既然是分布式文件系統(tǒng),當面對不同的文件熱點和大小時,它需要提供數(shù)據(jù)負載均衡來避免MDS的熱點。通過上圖我們可以看到五個MDS管理著不同“面積”的目錄樹,因為不同文件的訪問熱點和大小的原因來進行動態(tài)調(diào)整。

這里還需要介紹引入MDS帶來的好處有目錄列表操作的加快,如目錄下文件大小、數(shù)量和時間等。同時,支持對文件的快照。

目前CephFS有多種使用方式:
1. Linux Kernel client: 使用”mount -t ceph 8.8.8.8:/ /mnt”可以直接掛載到本地并訪問。
2. ceph-fuse: 通過ceph-fuse可以從用戶態(tài)空間掛載CephFS如”ceph-fuse -m 192.168.0.1:6789 /home/username/cephfs”
3. libcephfs.so: 通過libcephfs可以替代HDFS來支持不同Hadoop乃至HBase。

Ceph的其他

QoS機制: Ceph Cluster支持多種QoS配置,如集群重平衡,數(shù)據(jù)恢復的優(yōu)先級配置,避免影響正常的數(shù)據(jù)通信。

Geo-replication: 基于地理位置的對象存儲

OpenStack: Ceph目前在大力融合入OpenStack,OpenStack的所有存儲(除數(shù)據(jù)庫外)都可以將Ceph作為存儲后端。如KeyStone和Swfit可以利用RadosGW,Cinder、Glance和Nova利用RBD作為塊存儲。甚至所有VM的Image都存儲在CephFS上。

目前Ceph的優(yōu)化點也非常多,目前Rados IO路徑過于復雜,線程管理得不到有限控制,如果在Rados上優(yōu)化Small IO的性能,Ceph Cluster的集群性能會得到極大提高。很多人也會擔心Ceph實現(xiàn)了如此多樣的存儲接口會不會一定降低每一個接口的性能要求。但從架構(gòu)上來說,Ceph的RADOS只是一個單純的分布式存儲機制,其上的接口看到的都是一層統(tǒng)一的存儲池,接口實現(xiàn)互相分離而不影響。

關(guān)于“為什么需要關(guān)注Ceph”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。


網(wǎng)站題目:為什么需要關(guān)注Ceph
文章源于:http://weahome.cn/article/ijdodd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部