【Ceph淺析筆記】Ceph是什么.md

Ceph是什么

什么是Ceph?首先我們應(yīng)該明確,Ceph是一種分布式存儲(chǔ)系統(tǒng),所謂分布式,指的是Ceph可以部署在多臺(tái)服務(wù)器上,通過多臺(tái)服務(wù)器并行處理來對(duì)外提供高性能的讀寫塊。

同時(shí)Ceph除了能提供塊存儲(chǔ),還可以提供文件存儲(chǔ)、對(duì)象存儲(chǔ)。

Ceph的優(yōu)勢

實(shí)際上Ceph不是一個(gè)才出現(xiàn)的開源項(xiàng)目,而是走過了 7年的路程,那么Ceph有什么樣的優(yōu)勢呢?

  • Ceph的優(yōu)勢在于它的設(shè)計(jì)思想:無需查表,算算就好。也就是說它可以充分利用服務(wù)器的計(jì)算能力,消除了對(duì)單一中心節(jié)點(diǎn)的依賴,可以實(shí)現(xiàn)真正的無中心結(jié)構(gòu)

    這樣Ceph的可靠性和可擴(kuò)展性都很強(qiáng),而且客戶端訪問延遲也比較少。

  • Ceph在OpenStack開源社區(qū)中備受重視。

    OpenStack是現(xiàn)在最為流行的開源云操作系統(tǒng),目前Ceph已經(jīng)成為OpenStack中呼聲最高的開源存儲(chǔ)方案之一。

Ceph的產(chǎn)生和發(fā)展

一般來說開源項(xiàng)目的來源主要有兩個(gè),一個(gè)是從學(xué)校里面的一些課題,一個(gè)是企業(yè)里面的大牛對(duì)產(chǎn)品進(jìn)行開源。Ceph就是典型的學(xué)院派,它起源于Sage Weil博士期間的課題,使用C++開發(fā)。

2011年Sage創(chuàng)建了Inktank公司以主導(dǎo)Ceph的開發(fā)和社區(qū)維護(hù)。

image.png

Ceph的設(shè)計(jì)思想

Ceph的應(yīng)用場景

要理解Ceph的設(shè)計(jì)思想,我們首先應(yīng)該研究這個(gè)東西的應(yīng)用場景,因?yàn)樗膽?yīng)用場景關(guān)系到它為什么這么設(shè)計(jì)。

Ceph最初的目標(biāo)場景是大規(guī)模、分布式存儲(chǔ)系統(tǒng),Ceph起源于04年,那個(gè)時(shí)候CPU還是單核,硬盤容量只有幾十GB,所以當(dāng)時(shí)的想法是至少能承載PB級(jí)別的數(shù)據(jù)。

而Ceph與傳統(tǒng)的存儲(chǔ)不太一樣的地方在于,它的眼光是動(dòng)態(tài)的

  • 首先是存儲(chǔ)規(guī)模是會(huì)變的。也就是可以根據(jù)業(yè)務(wù)的規(guī)模擴(kuò)展存儲(chǔ)的容量。

  • 存儲(chǔ)的設(shè)備會(huì)變。我們使用的不是高可靠性的小機(jī),而是可能發(fā)生故障的x86服務(wù)器,所以極有可能某個(gè)節(jié)點(diǎn)發(fā)生故障,那么需要在軟件層面進(jìn)行保障。

  • 存儲(chǔ)數(shù)據(jù)也會(huì)變。也就是,需要考慮到存儲(chǔ)的數(shù)據(jù)可能被增刪讀寫,而不是一層不變的。

這就是Ceph的目標(biāo)場景,它希望能應(yīng)對(duì)存儲(chǔ)容量會(huì)變,同時(shí)可以對(duì)數(shù)據(jù)進(jìn)行快速的增刪讀寫的場景,而且底層的硬件主要使用廉價(jià)的X86服務(wù)器,使用上層軟件來保證可靠性。

針對(duì)這種場景,Ceph應(yīng)具有

  • 高可靠性:

    首先存儲(chǔ)在里面的數(shù)據(jù)不會(huì)丟失,同時(shí)數(shù)據(jù)在寫入的時(shí)候,需要保證原子性。

  • 另外因?yàn)閿?shù)據(jù)會(huì)經(jīng)常遷移,而且故障了以后會(huì)有恢復(fù)的過程,我們希望Ceph能自動(dòng)完成這些工作,而不需要人為參與。

  • 高擴(kuò)展性,就是希望節(jié)點(diǎn)數(shù)增加了,數(shù)據(jù)的訪問帶寬也線性增加,不能是節(jié)點(diǎn)增加了很多,性能增加不明顯

Ceph的設(shè)計(jì)思路

那么Ceph要怎么樣實(shí)現(xiàn)高可靠、高擴(kuò)展,還要同時(shí)保證自動(dòng)化呢?

之前已經(jīng)概括過,Ceph的主要思路是

  • 充分發(fā)生節(jié)點(diǎn)的計(jì)算能力

    也就是用來代替,這就有對(duì)象存儲(chǔ)的思想了。

  • 去中心化。

    我們知道分布式架構(gòu)一般可以分為有中心的非對(duì)稱架構(gòu)和無中心對(duì)稱架構(gòu)兩種。

    非對(duì)稱架構(gòu)有Master和Slave之分,Master一般存放了數(shù)據(jù)塊與實(shí)際節(jié)點(diǎn)的映射關(guān)系,所以客戶端會(huì)先向Master查找數(shù)據(jù)塊存放的位置, 然后再訪問Slave。

    這樣的好處是簡單,缺點(diǎn)是Master節(jié)點(diǎn)會(huì)出現(xiàn)單點(diǎn)故障,而且也會(huì)成為性能瓶頸。

    而對(duì)稱節(jié)點(diǎn)中每個(gè)節(jié)點(diǎn)的地位相同,都保存了全局的映射關(guān)系,所以它們會(huì)花大量的功夫來進(jìn)行映射關(guān)系的同步,不利于擴(kuò)展。Ceph則使用了更創(chuàng)新的方法來解決這個(gè)問題。下面我們來看看它使用了什么方法?

對(duì)于一個(gè)分布式系統(tǒng),它最關(guān)鍵的要解決兩個(gè)問題:

  • “寫的問題”,也就是把數(shù)據(jù)寫到什么地方。

    寫的方法合不合理,要看最終的數(shù)據(jù)分布是否均勻,這又會(huì)進(jìn)一步影響到節(jié)點(diǎn)的訪問速度等

  • “讀的問題”,應(yīng)該從哪里去讀。

    因?yàn)樽x的概率遠(yuǎn)大于寫,所以能否高效準(zhǔn)確的找到之前存放的數(shù)據(jù)在哪里,也是存儲(chǔ)的系統(tǒng)應(yīng)該考慮的非常重要的問題。

之前我們說過對(duì)于對(duì)稱結(jié)構(gòu)的分布式系統(tǒng),它會(huì)引入專門的節(jié)點(diǎn), 在里面存放數(shù)據(jù)塊與節(jié)點(diǎn)映射關(guān)系,客戶端需要先從這個(gè)節(jié)點(diǎn)上獲取實(shí)際的位置再進(jìn)行后續(xù)的操作。

而Ceph的創(chuàng)新在于,不再使用查表的尋址方式,而是使用計(jì)算的方式。也就是一個(gè)客戶端只需要使用少量的本地元數(shù)據(jù),就可以計(jì)算出存儲(chǔ)位置。這就是Ceph最關(guān)鍵的地方。

image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本文遵循「知識(shí)共享許可協(xié)議 CC-BY-NC-SA 4.0 International」,未經(jīng)作者書面許可,不允許...
    laiwei閱讀 12,157評(píng)論 1 24
  • ceph簡介 Ceph是一個(gè)分布式存儲(chǔ)系統(tǒng),誕生于2004年,是最早致力于開發(fā)下一代高性能分布式文件系統(tǒng)的項(xiàng)目。隨...
    愛吃土豆的程序猿閱讀 6,172評(píng)論 0 21
  • 第一章 OpenStack基礎(chǔ) OpenStack管理的資源及提供的服務(wù)OpenStack做為一個(gè)操作系統(tǒng),...
    sgt_tiger閱讀 13,239評(píng)論 4 72
  • 一、概述 Ceph是一個(gè)分布式存儲(chǔ)系統(tǒng),誕生于2004年,最早致力于開發(fā)下一代高性能分布式文件系統(tǒng)的項(xiàng)目。隨著云計(jì)...
    魏鎮(zhèn)坪閱讀 49,885評(píng)論 3 54
  • “學(xué)校今天又放假了?” “嗯。” 陳曉放下書包,沉默地走進(jìn)自己的臥室,啪嗒一聲,客廳就只剩下老舊的電視機(jī)里嘈雜的廣...
    青絲常長閱讀 338評(píng)論 2 2

友情鏈接更多精彩內(nèi)容