日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[转]“Ceph浅析”系列之(二)—Ceph的设计思想

發(fā)布時間:2024/1/17 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转]“Ceph浅析”系列之(二)—Ceph的设计思想 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
轉(zhuǎn)載自:http://yizhaolingyan.net/?p=11


??? 分析開源項(xiàng)目,時常遇到的一個問題就是資料不足。有時間寫代碼的大牛們通常是都是沒有時間或者根本不屑于寫文檔的。而不多的文檔通常又是使用手冊之類的東 西。即便偶爾有設(shè)計文檔通常也是語焉不詳。在這種情況下,想從代碼里反向把設(shè)計思想提煉出來,畢竟不是人人都能做到的。

??????? 值得我們慶幸的是,Ceph是一個典型的起源于學(xué)術(shù)研究課題的開源項(xiàng)目。雖然學(xué)術(shù)研究生涯對于Sage而言只是其光輝事跡的短短一篇,但畢竟還是有幾篇學(xué)術(shù)文獻(xiàn)可供參考[1]。這也為我們提供了難得的,從頂層視角入手分析一個系統(tǒng)領(lǐng)域的優(yōu)秀開源項(xiàng)目的機(jī)會。本篇文章的內(nèi)容也正是筆者閱讀這些文獻(xiàn)的心得體會。

3.1??? Ceph針對的目標(biāo)應(yīng)用場景

??????? 理解Ceph的設(shè)計思想,首先還是要了解Sage設(shè)計Ceph時所針對的目標(biāo)應(yīng)用場景,換言之,“做這東西的目的是啥?”

??????? 事實(shí)上,Ceph最初針對的目標(biāo)應(yīng)用場景,就是大規(guī)模的、分布式的存儲系統(tǒng)。所謂“大規(guī)?!焙汀胺植际健?#xff0c;是指至少能夠承載PB級別的數(shù)據(jù),并且由成千上萬的存儲節(jié)點(diǎn)組成。

??????? 在大數(shù)據(jù)口號深入人心的今天,PB已經(jīng)遠(yuǎn)遠(yuǎn)不是一個激動人心的系統(tǒng)設(shè)計目標(biāo)了。但是,應(yīng)該指出,Ceph項(xiàng)目起源于04年。那是一個商用處理器以單核為主 流,常見硬盤容量只有幾十GB的年代。這和現(xiàn)在動輒6核12線程還要雙處理器、單塊硬盤3TB已經(jīng)司空見慣的情況是不可同日而語的。因此,理解這個設(shè)計目 標(biāo),應(yīng)該考慮當(dāng)時的實(shí)際情況。當(dāng)然,如前所述,Ceph的設(shè)計并沒有理論上限,所以PB級別并不是實(shí)際應(yīng)用的容量限制。

??????? 在Sage的思想中,對于這樣一個大規(guī)模的存儲系統(tǒng),是不能以靜態(tài)的眼光來看待的。對于其動態(tài)特性,筆者概括為如下三個“變化”:

  • 存儲系統(tǒng)規(guī)模的變化:這樣大規(guī)模的存儲系統(tǒng),往往不是在建設(shè)的第一天就能預(yù)料到其最終的規(guī)模,甚至是根本就不存在最終規(guī)模這個概念的。只能是隨著業(yè)務(wù)的不斷開展,業(yè)務(wù)規(guī)模的不斷擴(kuò)大,讓系統(tǒng)承載越來越大的數(shù)據(jù)容量。這也就意味系統(tǒng)的規(guī)模自然隨之變化,越來越大。

  • 存儲系統(tǒng)中設(shè)備的變化:對于一個由成千上萬個節(jié)點(diǎn)構(gòu)成的系統(tǒng),其節(jié)點(diǎn)的故障與替換必然是時常出現(xiàn)的情況。而系統(tǒng)一方面要足夠可靠,不能使業(yè)務(wù)受到這種頻繁出現(xiàn)的硬件及底層軟件問題的影響,同時還應(yīng)該盡可能智能化,降低相關(guān)維護(hù)操作的代價。

  • 存儲系統(tǒng)中數(shù)據(jù)的變化:對于一個大規(guī)模的,通常被應(yīng)用于互聯(lián)網(wǎng)應(yīng)用中的存儲系統(tǒng),其中存儲的數(shù)據(jù)的變化也很可能是高度頻繁的。新的數(shù)據(jù)不斷寫入,已有數(shù)據(jù)被更新、移動乃至刪除。這種場景需求也是設(shè)計時必須予以考慮的。

??????? 上述三個“變化”就是Ceph目標(biāo)應(yīng)用場景的關(guān)鍵特征。Ceph所具備的各種主要特性,也都是針對這些場景特征所提出的。

3.2??? 針對目標(biāo)應(yīng)用場景所提出的預(yù)期技術(shù)特性

??????? 針對上述應(yīng)用場景,Ceph在設(shè)計之初的幾個技術(shù)特性是:

  • 高可靠性。所謂“高可靠”,首先是針對存儲在系統(tǒng)中的數(shù)據(jù)而言,也即,盡可能保證數(shù)據(jù)不會丟失。其次,也包括數(shù)據(jù)寫入過程中的可靠性,也即,在用戶將數(shù)據(jù)寫入Ceph存儲系統(tǒng)的過程中,不會因?yàn)橐馔馇闆r的出現(xiàn)造成數(shù)據(jù)丟失。

  • 高 度自動化。具體包括了數(shù)據(jù)的自動replication,自動re-balancing,自動failure detection和自動failure recovery??傮w而言,這些自動化特性一方面保證了系統(tǒng)的高度可靠,一方面也保障了在系統(tǒng)規(guī)模擴(kuò)大之后,其運(yùn)維難度仍能保持在一個相對較低的水平。

  • 高可擴(kuò)展性。這里的“可擴(kuò)展”概念比較廣義,既包括了系統(tǒng)規(guī)模和存儲容量的可擴(kuò)展,也包括了隨著系統(tǒng)節(jié)點(diǎn)數(shù)增加的聚合數(shù)據(jù)訪問帶寬的線性擴(kuò)展,還包括了基于功能豐富強(qiáng)大的底層API提供多種功能、支持多種應(yīng)用的功能性可擴(kuò)展。

3.3??? 針對預(yù)期技術(shù)特性所提出的設(shè)計思路

????????針對3.2節(jié)中介紹的預(yù)期技術(shù)特性,Sage對于Ceph的設(shè)計思路基本上可以概括為以下兩點(diǎn):

  • 充分發(fā)揮存儲設(shè)備自身的計算能 力。事實(shí)上,采用具有計算能力的設(shè)備(最簡單的例子就是普通的服務(wù)器)作為存儲系統(tǒng)的存儲節(jié)點(diǎn),這種思路即便在當(dāng)時來看也并不新鮮。但是,Sage認(rèn)為這 些已有系統(tǒng)基本上都只是將這些節(jié)點(diǎn)作為功能簡單的存儲節(jié)點(diǎn)。而如果充分發(fā)揮節(jié)點(diǎn)上的計算能力,則可以實(shí)現(xiàn)前面提出的預(yù)期特性。這一點(diǎn)成為了Ceph系統(tǒng)設(shè) 計的核心思想。

  • 去 除所有的中心點(diǎn)。一旦系統(tǒng)中出現(xiàn)中心點(diǎn),則一方面引入單點(diǎn)故障點(diǎn),另一方面也必然面臨當(dāng)系統(tǒng)規(guī)模擴(kuò)大時的規(guī)模和性能瓶頸。除此之外,如果中心點(diǎn)出現(xiàn)在數(shù)據(jù) 訪問的關(guān)鍵路徑上,事實(shí)上也必然導(dǎo)致數(shù)據(jù)訪問的延遲增大。而這些顯然都是Sage所設(shè)想的系統(tǒng)中不應(yīng)該出現(xiàn)的問題。雖然在大多數(shù)系統(tǒng)的工程實(shí)踐中,單點(diǎn)故 障點(diǎn)和性能瓶頸的問題可以通過為中心點(diǎn)增加備份加以緩解,但Ceph系統(tǒng)最終采用創(chuàng)新的方法更為徹底地解決了這個問題。

3.4??? 支撐設(shè)計思路實(shí)現(xiàn)的關(guān)鍵技術(shù)創(chuàng)新

??????? 無論多么新穎奇妙的設(shè)計思路,最終落地必定需要有技術(shù)實(shí)力的支撐。而這也正是Ceph最為閃亮的地方。

??????? Ceph最為核心的技術(shù)創(chuàng)新就是前面所概括的八個字——“無需查表,算算就好”。一般而言,一個大規(guī)模分布式存儲系統(tǒng),必須要能夠解決兩個最基本的問題:

?????? 一是“我應(yīng)該把數(shù)據(jù)寫入到什么地方”。對于一個存儲系統(tǒng),當(dāng)用戶提交需要寫入的數(shù)據(jù)時,系統(tǒng)必須迅速決策,為數(shù)據(jù)分配一個存儲位置和空間。這個決策的速度 影響到數(shù)據(jù)寫入延遲,而更為重要的是,其決策的合理性也影響著數(shù)據(jù)分布的均勻性。這又會進(jìn)一步影響存儲單元壽命、數(shù)據(jù)存儲可靠性、數(shù)據(jù)訪問速度等后續(xù)問 題。

??????? 二是“我之前把數(shù)據(jù)寫到什么地方去了”。對于一個存儲系統(tǒng),高效準(zhǔn)確的處理數(shù)據(jù)尋址問題也是基本能力之一。

??????? 針對上述兩個問題,傳統(tǒng)的分布式存儲系統(tǒng)常用的解決方案是引入專用的服務(wù)器節(jié)點(diǎn),在其中存儲用于維護(hù)數(shù)據(jù)存儲空間映射關(guān)系的數(shù)據(jù)結(jié)構(gòu)。在用戶寫入/訪問數(shù) 據(jù)時,首先連接這一服務(wù)器進(jìn)行查找操作,待決定/查到數(shù)據(jù)實(shí)際存儲位置后,再連接對應(yīng)節(jié)點(diǎn)進(jìn)行后續(xù)操作。由此可見,傳統(tǒng)的解決方案一方面容易導(dǎo)致單點(diǎn)故障 和性能瓶頸,另一方面也容易導(dǎo)致更長的操作延遲。

??????? 針對這一問題,Ceph徹底放棄了基于查表的數(shù)據(jù)尋址方式,而改用基于計算的方式。簡言之,任何一個Ceph存儲系統(tǒng)的客戶端程序,僅僅使用不定期更新的 少量本地元數(shù)據(jù),加以簡單計算,就可以根據(jù)一個數(shù)據(jù)的ID決定其存儲位置。對比之后可以看出,這種方式使得傳統(tǒng)解決方案的問題一掃而空。Ceph的幾乎所 有優(yōu)秀特性都是基于這種數(shù)據(jù)尋址方式實(shí)現(xiàn)的。

??????? 至此為止,Ceph的設(shè)計思想已經(jīng)得到了較為全面深入的介紹。此后幾篇文章將依次介紹Ceph的系統(tǒng)架構(gòu)、工作原理與流程、主要特性等內(nèi)容,并聯(lián)系OpenStack,將Ceph和Swift加以對比分析。


轉(zhuǎn)載于:https://blog.51cto.com/liufu1103/1657144

總結(jié)

以上是生活随笔為你收集整理的[转]“Ceph浅析”系列之(二)—Ceph的设计思想的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。