1. 程式人生 > >朱榮澤:“統一儲存,為雲而生——基於Ceph的儲存全家桶” – 運維派

朱榮澤:“統一儲存,為雲而生——基於Ceph的儲存全家桶” – 運維派

由工業和資訊化部指導,中國資訊通訊研究院主辦,業界知名組織雲端計算開源產業聯盟(OSCAR)承辦的2017全球雲端計算開源大會於4月19日-20日在北京國家會議中心順利召開。本文為本屆大會嘉賓分享的大會演講速記內容,敬請瀏覽。

嘉賓介紹:朱榮澤

公司職務:UMCloud儲存產品部門總監

大會演講速記

Ceph

大家下午好,我叫朱榮澤,現在給大家做一個基於Ceph的儲存全家桶。

OpenStack

這是我演講內容的一個大綱,我站在一個雲平臺的建設者角度去看雲平臺對於處理系統是怎樣的,我們怎麼選擇的,是需要大家對OpenStack有一些基本的瞭解。

Ucloud

我首先介紹一下我們來自哪裡,我們是Ucloud,一箇中國最大的廠商,MIRANTIS是美國最專業的廠商,它跟一家合資公司叫UMCloud,UMCloud在國內專門提供一些專業的產品等等。

Mirantis

我們先講一下Mirantis它的最新架構怎樣,這是一個最新的架構,主要分為三部分,全部是由開源雲件組成,中間是雲端計算平臺,上層是為各個使用者提供了容器還有虛擬機器還有裸機,裸機和虛擬機器是OpenStack提供的。

另外平臺做的事情,OpenStack是用Mirantis部署的,大家也知道之前開發了一個開發工具,能部署三百臺到五百臺是沒有問題的,我單純說的部署,不是集聯的方式,Mirantis也會遇到一些困難的問題,前幾周已經發布了將近九百個節點的一個報告,大家可以在Mirantis的部落格上查到。

中間的雲算平臺大家可以看到是普通的X86伺服器組成的,右邊是一個生命週期管理,主要是用於OpenStack叢集的升級變更,以後Mirantis雲盤不會跟某一個OpenStack繫結,會滾動上面的OpenStack,比如從最新的O板到P板或者下一個版本都可以滾動的升級,而且它跟整個Mirantis雲盤相關性是沒有很強的,而且還能動態的去修改配置。

右邊是一個運維的平臺,主要是對雲平臺進行監控和報警,我們看到整個雲平臺是會非常靈活跟敏捷的。

雲平臺

底層的儲存系統怎麼才能滿足雲平臺的需求?這是我們總結的開源平臺對處理系統的要求,五個方面。

首先對於介面來說,因為雲平臺上面跑著各種的業務和各種運營時態,所以需要基本的快儲存,快儲存可能要跟你進行對接還有提供快裝置,特別是面向網際網路的應用是需要物件儲存的,還有一些儲存應用介面,但是對於傳統儲存來說,它會比較差,不能滿足。

第二是可程式設計性,提供一個API方便整合,這樣做平臺能夠快速的呼叫一個儲存系統的資源,定義儲存資源的排程,對於傳統儲存來說它只是會提供API的介面,而且輸入是分鐘級別的,非常慢,這是跟傳統對接的時候會發現的一個問題,你也不希望我建立要幾分鐘才會建立好,這其實不符合雲平臺對系統的要求。

另外是Workload,雲盤可能會跑著各種的資料庫包括一些大資料或者像其他的一些負載,可能有一些大儲存的,或者要求低延遲的,可能需要你去滿足它的要求,但是傳統儲存會專注於某一版面,也不是太合適。

另外是擴充套件性,因為你隨著雲平臺的擴充套件你需要資源做一個相應的擴充套件,不管是容量還是效能的,而且是需要線上擴充套件的,擴充套件的時候我必須要不能宕機,因為傳統的儲存都是賣盒子的方式,擴充套件起來非常麻煩,而且需要一段的維護時間。

另外主要是一個可管理性,包括統一部署、統一監控、統一運維,這樣是可以跟雲平臺的進行整合結合,需要一個管理員就可以把整個雲平臺還有所有的網路儲存都全部管理起來,不需要另外有一套專門的儲存管理人員。

儲存

其實這樣我們就定義了我們需要的統一儲存,至少提供三種儲存介面,可以無縫的承接OpenStack或者NFS。

這是我們需要的一個統一儲存,下面的Rados為是高可用、高可靠無縫拓展的,上面是提供快速對接的,還有CephGRW是對應用直接提供的介面,而且可以使用其他的外掛,還有一個CephFS可以提供一個檔案系統的介面,也可以跟OpenStack做一個對接。

架構

這個是Ceph統一儲存的部署架構,OSD主要提供儲存資源,MON主要是維護狀態,其他主要是提供對外的服務,只提供儲存是OpenStack跟MON直接進行加護,整個叢集所有的都是全分散式的,而且沒有故障的,帶來的好處就是效能強。

Ceph

我們拿OpenStack舉例,對於OpenStack來說有很多需要使用儲存後端的,NOVA虛擬機器可以直接使用,虛擬機器可以快速的啟動,而不需要下載到本地再啟動,因為下載會速度非常慢,我通過這個儲存就可以很快,另外是一個新的平臺也可以直接的使用整個叢集的。

另外一個好處就是我經常存在這裡,虛擬機器啟動以後可以減少整個資料的複製鏈路,就把整個語音操作下發到Ceph去做,這樣就可以快速的去做,這邊是使用RADOS,這邊是MANLA。另外是個做一個計量,會把總的指標資料全部存下來,存在本地都沒有很好的解決以後尊出的高可用,假如直接用這個對接就可以讓你負責整個資料的分佈。然後就是Ceph怎麼做支援。

分散式

我們再來看一下為什麼我們Ceph是開源首選的儲存方案,作為它是一個開源的方案,這會吸引非常多的開發者,而且可程式設計性強,可以持續改進,可以在上面提供很多的創造力,做有創造性的一些工作,激發開發者的創造力,因為Ceph是一個分散式的,我可以對接一些儲存系統,做更多的推薦,讓Ceph幫我做底層的分散式和高可用高可靠,另外它是一個硬體無關的系統,好處可以激發架構師的創作力,比如我要實現減少你的工作負擔,拿我應該使用怎樣的伺服器都可以配置的。

另外它是一個合適的架構根河市的技術,因為雲平臺對於擴充套件性還有元資料處理是非常強的,比如元件分佈,對於Ceph來說可以部署在伺服器上,這可以提高拓展性。

另外一個是元資料處理,我們知道一般的系統對於分塊主要兩種方式,第一個是做一次性的,計算出我到底板塊錯在哪裡,還會做一個儲存,一些商業的儲存是查表。因為查表可以做很多高階特性,比如做消重、或者資料遷移、拍照等,但是Ceph裡面就沒有把原資料做表格的形式,而且全部通過計算得到的,這樣是有一個元資料的。

還有一個是快照和克隆,對於OpenStack吸引力非常強,這樣你就可以快速的建立一個虛擬機器,而且你可以建立快照,這個是可以實現的。還有另外一個,因為Ceph社群是非常強大的,會有BP級別的塊儲存,30PB級別的物件儲存這個都是社群的一些實踐。

優化

我們這邊可能還會存在一些問題,就是分散式帶來的複雜性,為什麼帶來複雜性,因為我們的分散式規模特別大,會對你的架構設計,因為你設計非常多的因素,特別像網路、硬體等等,主要是通過網上的架構設計。比如我們的網路架構,我後面怎麼去做一個部署,怎麼去分割網路的流量,提高它最大的效能,還有伺服器配置,我怎麼充分利用CPU、SSD還有一個網絡卡的效能。三者的效能要是能夠均衡的,可以儲存池進行規劃,還有一個CRUSH MAP的設計,你要對自己叢集的效能可靠性可用性要有一個權衡。還有你的資料流量也要權衡,還有一些自動化部署管理及優化。

另外一個問題,不同的Workload我們怎麼優化,比如有些對容量有要求,所以我們可以做一些優化服務,比如硬體配置的優化,還有作業系統引數優化,因為我們知道有缺點會做一個調優,而且把它CPU全部榨乾。

Ceph叢集

還有Ceph的引數優化,儲存池配置優化,可以做一些程式碼的優化,還有架構優化。還有大規模部署的問題,比如你部署一兩百臺Ceph叢集怎麼做,像推土機一個小時部署起來,這涉及到Ceph叢集生命週期管理,還有自動化圖形部署工具。

這是常見的一些運維操作優化,比如我們遇到一種情況,我們做一個30PB的叢集,幾乎每週都會畫換幾塊盤,操作非常頻繁,這樣我們就可以直接換盤操作直接放在我們的自動化管理介面上,快速的做一個換盤,不需要手動的換,這樣可以避免你因為手動帶來的誤操作。

下面還有一個報警的工具。我們業提供產品,會有一個平臺主要是做管理和部署,目標是一個人一小時交付大規模的Ceph叢集,像伺服器初始化都可以通過圖形化的介面做操作,這是一個自動化部署安裝流程,剛開始部署的時候可能每一步都是你需要敲命令或者用其他配置起來,通過圖形化的介面可以把這些全部變更。

故障

下面一些資料,還有故障排查,像網路故障,因為網路故障導致叢集出問題,之前我們遇到一些非常奇葩的問題,比如交換機只能過小包不能過大包。硬體故障包括CPU等等,還有作業系統,大家可以在Mirantis直接下載。謝謝大家。

文章來自微信公眾號:雲端計算開源產業聯盟