雅虎百億億次計算級別的ceph存儲
任何超大規模的巨頭們都不會去等待IT產業的技術被發明來滿足他們自己應用的需求,但是當在一個合適的時間一個可替代的開源項目成長足夠成熟,巨 頭們通常會做出跨式越部署以使自己的軟件到開源平臺上述況這是很精確的,從雅虎的門戶網站上可以看到目前正在進行中伴隨著雅虎公司從自家對象存儲轉移到一 個不久的將成為百萬兆類的系統上而且該系統是基于開源ceph,一種稱作瑞士軍刀的存儲。
這樣的跳轉不常見因為對于超大規模的公司來說傾向于推出超出他們部署的規格的任何技術,如開源或者其它技術,當然通常是開源的。尤其是已經發生 的。舉一個例子,ThePlatform這周早前就有過討論媒體巨頭已經使用一種自定義版本的Cassandra的NoSQL數據庫作為后臺來控制流媒體 來提供服務和用戶交互就在去年秋天Cassandra就推出商業級版本DataStax。雅虎正在進行一個大的飛躍比目前的情況,那就是通過轉變自家的 MObStor非結構化對象存儲系統到ceph,除非這是一個經過仔細考慮過的問題,Brad McMillen,雅虎架構工程師告訴The Platform說.
信息技術所有的開始都從查看圖片
雅虎是一個創新著在上規模的對象存儲領域,伴隨著臉書的Haystack系統以及亞馬遜的Amazon S3系統Mosso云文件系統一種基于Rackspace Hosting’s(公有云托管)的Swfit對象存儲,現在屬于openstack云控制器的一部分在一些有關雅虎和臉書的案例中,存儲的有數億級別的 圖片,處理pb級的容量,這樣的情況引起很多的擔心以至于每家公司都發明了他們自己的系統來更有效的存儲這些圖片,亞馬遜和Rackspace選擇對象存 儲作為他們公有云的一部分,假設客戶也很想創建云應用存放豐富的媒體在這些平臺。
所有的對象存儲系統在上述提到-如Haystack, MObStor, S3, Cloud Files/Swift 等被創建因為常規的文件系統存儲陣列有一個非常大的元數據開銷那就是需要跟蹤對象在集群中的存儲地方。對象存儲剛好是忽略一個文件系統并放任何數據在一個 bucket,使用一個key類似于一個文件名或者一個web的地址找到數據在一個集內。這些可以使元數據的開銷更小因為這里沒有來自文件系統來瓶頸。
初期的雅虎圖片服務器是一個,從十幾年前就特別關注非結構化數據存儲系統,這個系統是一個遵循較為復雜且普遍的對象存儲系統被雅虎叫做 MObStor,它是在開在2009年雅虎公開提出的。雅虎對圖片分享站Flickr在2005年的收購大大加劇了其需要一種如對象存儲的技術,但 MObStor是卻是雅虎應用用來儲存JavaScript和HTML代碼以及富媒體的,雅虎的工程師給MObStor在2010年夏天的一個更新,當然 這是一個較新的更改,
這也成為六個月后在系統的處理能力增長了4X(倍)的一個因素。這也是雅虎當時公布其運行在專有的被稱作直接對象數據庫結構Direct Object Repository Architecture (DORA)之上,MObStor的一個新后臺它被稱這是一個集群對象存儲系統,在很多方面類似于Ceph。MObStor是雅虎程序當遇到需要保存非結 構話的東西(可理解為需要保存的內容跟普通存儲數據結構在磁盤的存儲)的寫入到以DORA為后臺系統過程的接口像圖片視頻以及其他新聞類的數據,DORA 開始就被設計成運行在普通硬件和存儲應用上,雅虎當時還不太明確這些意味著什么,但是DORA后端的特點已經承認雅虎的想法是在做對象存儲基于廉價的系統 之上。
我們將操作數以百計p級別的,并且我不知道別人在Ceph社區誰將做這些。如果我們不是最大的,那么我們就會成為最大的產品用戶,而且我們很可能發現適合我們規模的版本。你只要看雅虎的規模而不要看傳統的規模。
經過一些改進,McMillen說當你累加所有服務和數據中心的對象、塊和文件存儲到一起你會發現雅虎已經有EB級的存儲能力在一個博客發帖討論 過雅虎為了Flickr圖片共享服務而讓MObStor到ceph的遷移,公司說到這些來自用戶的存儲超過250十億個的對象分布著500PB的圖片、視 頻、郵件、博客帖子。并且這樣的對象存儲還在呈每年百分之20-25速度增長。
MObStor的“完整特性”依據的是McMillen和廣泛的部署在雅虎。這樣雅虎為什么會投入到一個不同技術,
在MObStor被廣泛的應用和重視的條件下,不管怎樣這些都涉及到了錢。
首先,MObStor是一個閉源程序,這意味著雅虎不得不創建、擴展、支撐工具完全依靠他們自己。通過廣泛的吸取Hadoop數據分析平臺,由雅虎創建開源,現在有一只資深的軟件工程師改進,這個平臺表明社區開發的價值。
我會說最大的原因轉向ceph是因為我們僅僅想降低存儲費用,McMillen解釋說。我們的存儲已經增長了許多,我們在以減少盡可能多成本為目的,有盡可能多的選擇來而不是堅守一個系統,一種技術,一種硬件架構。
原創的MObStor對象存儲是被設計用來運行在存儲陣列有RAID之上的動態數據保護來保證文件安全。伴隨著DORA雅虎加入了選項用來復制數 據通過跨隊列在存儲集群里。RAID和復制帶來了一個很大的開銷,而 McMillen卻不愿意透漏出任何有關MObStor與ceph的對比在這個方面。但是他曾經提到過與傳統對象存儲系統的對比的調查結果,這個開銷對于 3副本來說是200%,伴隨著糾刪碼技術運用到ceph及其他的對象存儲,你能降低到40-60%的開銷,這些能在雅虎安裝調試ceph中看 到,McMillen說最接近的40%的開銷在糾刪碼保護校驗來確定數據的原始性。這個意味著雅虎能存儲一樣容量的數據在ceph里卻只用了一半的容量來 存儲并且實現了對象存儲而且還是三個副本。
MObStor/DORA不支持糾刪碼的設置,雅虎將不得不將這個移植到該系統上,這就意味著將有很多的開發和測試的工作量產生。ceph在另一 方面,就是為了百億億級別部署而設計而且有糾刪碼技術保證數據的內建。(有了糾刪碼,少量無結構數據碎片和分散存儲,或者如果一部分丟失,糾刪碼算法可以 用來重建丟失數據)
云對象存儲
最新ceph基礎系統在雅虎的部署被叫做云對象存儲,它在去年秋天已經被雅虎stack的Flickr部門 開始被校審。Flickr有"多PB級別"的ceph產量管理上,在本年度雅虎計劃增加10個基數來達到“輕量過百PB級別”據McMillen所說,作 為推出ceph-based云對象存儲其將隸屬于Flickr旗下,雅虎郵箱,Tumblr(輕量博客)。(McMillen說Flickr已經有超過這 樣存儲很多的空間,而這些將讓他聽到在MObStor 一些時間)
雅虎也曾經關注過swift和Gluster文件系統來作為一些特有選擇在他們尋找一個新的對象存儲系統,最終他們不注意力放在了ceph上。首 先,McMillen說ceph有吸引力的地方在支持對象和塊存儲兩者于一身,且未來某天的(很有希望的)文件系統存儲,如果ceph社區永遠有效處理問 題。
“并不是所有雅虎的存儲都適當做對象存儲,但是很多卻適合“McMillen這樣說到。“我們正在使用塊存儲,但是這些使用距離對象存儲并不遙 遠。有關我們喜歡ceph愿意之一,除了因為它具有糾刪碼而低成本之外,而且還因為是開源的項目可快速在開發社區,并且它是一個單一的塊存儲和對象存儲存 儲系統。所以替換單獨存儲系統從塊存儲和對象存儲之間,我們可以靈活的從一種技術棧獲得兩種使用方法。而且如果ceph一個有穩定的文件系統,我們今天絕 對會使用
ceph社區-后臺是Red Hat,其已經在一年前計劃以175 百萬獲得ceph管理Inktank 。
當ceph可以在單個集群擴展到百億億級別的存儲系統,McMillen說雅虎正在實施將ceph放在一個pod架構中這將能夠更好的預測性能和更好錯誤隔離比一個單一集群,這看起來像他們所說的
在雅虎云對象存儲,每一個節點(被稱作一個對象存儲設備),有60TB的存儲這些都基于X86的服務器上。雅虎已經嘗試過每個節點配置12-72 個設備,并且沒有透露出硬件配置的COS服務。每個集群有54個這樣的節點,總容量可達3.2 pb。向外擴展這些服務,雅虎復制這些pods并使用哈希算法來打破無結構數據橫跨pods問題還有節點之間的使用糾刪碼。
依靠在應用,雅虎正在使用常規的硬件驅動和磁盤服務shingled magnetic recording (SMR)技術,這些有不同能力和花費;SSDs也被部署到了COS服務提供高速I/O速度。
雅虎正在使用8/3糾刪碼在他的變體ceph中,這說明8份中的三份服務或者驅動在某個共享對象合一失敗卻仍然可以訪問的到。這是常規級別的糾刪 碼在ceph所應用的。但是雅虎已經計劃了一個11/3的糾刪碼變體ceph,這意味著11中的三個驅動或者服務可以失敗,且更重要的是這個可以提高 40%的讀寫延遲。(雅虎計劃回饋這個改進給ceph社區,通過這個方法,它能讓自己參與到“Hummer“版本中去,根據McMillen的說法)公司 已經做出了一系列調整來使ceph變現出更好的性能,如下圖:
加入了糾刪碼更改,雅虎已經想出一個共享bucket索引的方法,那就是一個索引保持跟蹤對象存儲到一個bucket(這是一個亞馬遜術語一個對 象存儲容量的單位)通常ceph實現bucket索引在一個單一的幾節點上,但是雅虎的工程師知道如何切分和跨節點高可用且提高性能。雅虎也想出一個方法 限制速率數據恢復是從磁盤或服務器出現故障時,恢復提高延遲約60%。
與此同時,雅虎自立支持自己的實現ceph,但是McMillen說公司與RehHat有一個很好的關系而且他們也不反對一些想法使用RedHat提供的技術。但是雅虎正處于一個大量消耗之中,而這與超大規模ceph有關,這也許是他們現在唯一的選擇。
“我們將會操作在數以百計pb級別,而且我們不知道那人是誰也不知道誰會ceph社區做什么“,McMillen說。”如果我們不是最大的開發 者,那么我們將是最大的產品用戶。我們也許能發現我們合理共享某個規模所適合的版本。你只需要關注在雅虎使用的級別而不用去管傳統使用的級別。我們會提交 所有關于使用的版本問題的工作,我相信社會團體會利用我們所提供的這些數據。
</div>