資料來源:Red Hat、迎棧科技,iThome整理製表,2015年9月
在軟體定義儲存的領域當中,Ceph目前是最被各界看好的平臺,有越來越多的雲端服務業者和企業採用,除了因為它是開放原始碼軟體,取得容易,本身的運作架構也非常具有特色,對於企業想要更開放的儲存架構,並能用較低成本來儲存大量資料,兼顧對於系統與資料可靠度等種種需求,也都滿足到,因此後勢看漲。
例如,Ceph最令人津津樂道的是,能同時支援區塊式儲存、物件式儲存、檔案系統層級儲存,這些都是基於同一個函式庫之上的應用,日後要支援更多類型的儲存環境,也能繼續延伸,等於一開始就預留了功能擴充彈性。因此你只需要一套系統架構,就能搞定。
此外,Ceph的底層是叢集式的伺服器環境,若想要擴充儲存容量與使用規模,只需將更多臺伺服器加入叢集即可。而在這樣的環境下,Ceph也具備很高的可靠度,能自動修復和管理,資料也會同時複寫到多臺節點,一旦叢集中的節點發生故障情形時,不會影響整個儲存系統的運作,以及導致資料毀損。
超靈活!Ceph的三層式基本架構 |
Ceph以單一架構,同時提供物件、區塊、檔案的儲存,藉由RADOS函式庫中介,程式可直接存取底層叢集,並提供物件儲存閘道、區塊儲存裝置來對應存取,也可搭配元資料伺服器來提供檔案系統服務,而底層則是由多個RADOS節點組成的叢集所構成,可橫向擴充數千個節點,並以此提供PB、甚至EB等級的儲存空間。 資料來源:Red Hat、迎棧科技,iThome整理,2015年9月 |
處處著眼擴充性的架構,是Ceph能應用在多種場景的關鍵
放眼既有的商用企業級軟硬體儲存系統,與開放原始碼的儲存系統,為什麼各家產品都不能面面俱到,而Ceph憑什麼可以這麼神?它的運作架構是支撐這些應用的重要基礎。
就最底層的資料儲存方式而言,Ceph是一套分散的物件式儲存系統,它使用了一種演算法CRUSH(Controlled Replication Under Scalable Hashing),能讓資料以偽亂數模式分布,提升資料物件在儲存裝置上的放置效率,而且不需依賴一套集中式目錄來對應,同時還可以將這些分散的物件,複寫到其他異質的結構化儲存叢集環境中。
若以實際的部署架構來觀察Ceph儲存環境的運作,可以分為三層:儲存叢集、函式庫、服務存取介面。
儲存叢集:RADOS
Ceph的儲存叢集(Storage Cluster),又稱為RADOS(Reliable, Autonomic Distributed Object Store),顧名思義,它提供了一個可靠、能自我管理的分散式物件儲存區。這個叢集是居於Ceph架構底層的軟體儲存系統,整個環境的資料都放在這裡,具有自我修復與管理的能力,並且是以自動運作的OSD儲存節點,以及輕量的Monitor監控程式組成。
● Ceph OSD Daemon:又稱為OSD,這是指物件儲存的系統服務程式(Object Storage Daemon),主要作用是負責儲存資料,彼此之間會自動同步複寫或回復所存放的資料,也定期對監控器程式回傳自身的硬碟與資料健康狀態。基本上,伺服器內的每一臺硬碟都會配備一個OSD程式,也可以設定每一個RAID群組配備一個OSD。
若用戶端想要存取裡面放置的資料物件,最終也是透過OSD來服務。
● Ceph Monitor,可簡稱Monitor或MON,可維持叢集分布圖的主要版本,並提供給儲存叢集的用戶端存取,這個程式能掌握整個叢集的各個成員與狀態,一群Monitor程式之間也會相互支援,就算其中一支程式故障,還是能持續運作。而且,它會驗證來自用戶端的請求,但不對用戶端提供資料物件存取服務。
函式庫:RADOS Library
若要存取儲存叢集裡面所放置的物件資料,Ceph主要是透過一個稱為LIBRADOS的函式庫,提供了原生的應用程式存取介面,又稱為Ceph Storage Cluster Protocol或Ceph Protocol。
使用者可自行開發應用程式,以這些API直接存取Ceph儲存叢集的節點,和裡面的OSD和Monitor溝通,而非透過HTTP協定存取,因此負擔較低。目前LIBRADOS可支援的程式語言,有C、C++、Python、 PHP、Java。
服務存取介面:Ceph Clients
基於LIBRADOS,Ceph預設提供了幾個基本的儲存服務存取介面,它們可統稱為Ceph Clients。
● Ceph Object Storage:又稱為Ceph物件閘道或RADOS Gateway(RADOSGW,亦可簡稱為RGW),提供RESTful的API介面,可相容於Amazon S3雲端儲存服務,以及OpenStack的物件式儲存Swift。透過RADOSGW來存取Ceph儲存叢集時,主要是透過LIBRGW這個函式庫,即可達到直接存取的效果。
● Ceph Block Device:Ceph提供的區塊儲存裝置,又稱為RADOS Block Device(RBD),該區塊裝置可隨時調整大小,兼具精簡空間配置(thin-provisioned)、快照、一比一複製(clone)等特性,系統也能將區塊裝置分割多個區段,存放在不同的儲存叢集,以提升存取效能。
RBD目前支援主流的Linux核心(2.6.39以上),以及QEMU/KVM的Hypervisor(即將推出針對Xen的原生支援),也可整合在OpenStack的環境下。而這些虛擬機器或OpenStack系統,透過RBD來存取Ceph儲存叢集時,主要是借助LIBRBD這個函式庫來直接存取。
● Ceph Filesystem:Ceph檔案系統服務(CephFS)提供POSIX相容的檔案系統,可供使用者掛載,以便存取檔案或資料夾,而方式有兩種:以CephFS的核心物件(Kernel Object)來存取,或是使用者空間下的檔案系統(Filesystem in User Space,FUSE)而用。
若要運用Ceph這個檔案系統服務,用戶還需要在儲存叢集中,部署Ceph Metadata Server(MDS)伺服器,與其互動。而以檔案系統的存取流程來說,用戶端可運用CephFS核心物件或CephFS的FUSE檔案系統,接著,透過CephFS的函式庫LIBCEFS,來存取Ceph系統通用的LIBRADOS函式庫,然後再通往Ceph儲存叢集,存取OSD、Monitor和MDS。
架構上,CephFS相較於其他對於應用程式直接存取、物件式儲存、區塊式儲存作法,有些出入,但整體而言,仍算是大同小異。
MDS會儲存檔案系統的元資料,裡面記載了目錄(directory)、檔案擁有權、存取模式等資料,並在記憶體內載入,MDS可簡化作業系統的存取動作,像是列出目錄清單或變更目錄,而不需動用到OSD來幫忙,可減輕儲存叢集的負擔,因此,特地將元資料從所有儲存資料分離出來的作法,也有助於提高檔案系統本身的效能。
基於上述的運作架構,我們可以看到Ceph將整個儲存系統分隔出多個層面。
以縱向的角度而言,Ceph由上而下提供了服務存取介面、中介函式庫、儲存叢集,共有三大位階,其中的函式庫,又可細分上下層──上層針對不同的儲存服務,下層則是針對整個儲存叢集。
而以橫向的角度而言,Ceph在上層的服務方面,區分為四大路線:應用程式直接存取、物件式儲存、區塊式儲存、檔案系統;而下層的儲存叢集裡面,則分為OSD、Monitor、MDS,兼顧了儲存應用與管理的多樣性。
想要理解Ceph架構,其實並不難,看得出來,它將整個儲存系統原本緊緊綑綁軟硬體的架構,拆分出來,也因此想要橫向擴展,變得更容易。但是,在基本架構的技術用語上沒有統一,同個架構元件有好幾種別名,會讓想了解Ceph的人感到疑惑。
例如,大多數狀況下,元件名稱會冠上RADOS,像是RADOS Gateway、RADOS Block Device,分別代表物件式儲存和區塊式儲存,但到了檔案系統的存取時,是稱為Ceph File System,而非RADOS File System。
容錯力高!RADOS儲存叢集的基本架構 |
要使Ceph能夠成為高可靠度、高擴充性的儲存環境,它所採用的RADOS服務是重要基礎。RADOS架構包含了儲存節點和監控器,而其中的儲存節點,又可區分為OSD、檔案系統與硬碟等三大部分。 資料來源:Red Hat、迎棧科技,iThome整理,2015年9月 |
致命傷:儲存效能,以及企業現有儲存環境介接相容性,有待加強
Ceph的優點非常多,在OpenStack應用環境下固然相當熱門,然而,若應用在企業內部的資料中心環境,仍有不少部分需要多多改良。
首先是所提供的儲存效能,Ceph採開放式架構,然而本身能否提供最佳儲存效能,則需要進一步調校。根據Intel在2015年IDF開發者論壇上,所發表的Ceph效能測試數據,與預設的組態相比,經過調校後,在區塊式儲存的讀寫效能,可提升到將近2倍,甚至接近4倍。
為此,儲存大廠EMC在今年舉辦的用戶大會上,還特別用Ceph和他們的軟體定義儲存ScaleIO相比,大作文章。根據他們的測試結果,當儲存節點同樣採用固態硬碟時,ScaleIO的IOPS效能是Ceph的6.7倍,反應時間也比Ceph快上24倍;若不限制硬碟類型,ScaleIO的效能是Ceph的15倍。
針對這樣的結果,目前提供Ceph技術服務的迎棧科技(InwinSTACK)工程師傅遠佳表示,對EMC而言,ScaleIO本身的效能應該經過最佳化,但無法確定他們對於比較的Ceph環境的效能是否也調校到最好狀態。評測是否公允,我們難以論斷,但Ceph效能的確存在著可調校空間,而這就需要一定的經驗,必須求助於專家或顧問。
Ceph另外一個不足之處,是對於應用在企業既有IT環境的整備度。
以區塊式儲存而言,Ceph對於KVM的Hypervisor支援度最好,但對於市面上兩大伺服器虛擬化平臺──VMware vSphere與微軟Hyper-V,相關的支援卻付之闕如,根據Ceph的發展藍圖,近期之內,Hyper-V支援應該會先推出,而對於VMware環境的支援,目前還不明朗。
另外,Ceph對於NFS與CIFS的支援,也不夠理想,因此,在實際應用的場景中,Red Hat會建議用旗下的另一套軟件儲存系統GlusterFS來支應。
就硬體環境而言,Ceph的儲存叢集雖然是以通用的x86伺服器所組成,價格比一般儲存設備要低廉,然而,因為系統需要持續動態分散負載,OSD也需要計算出資料存放的位置、複寫,並維持叢集分布資訊,所以,處理器需要密集運算;同時,許多資料會載入伺服器的記憶體,整體而言,這套系統對於處理器核心與記憶體容量的要求,並不低。
根據Ceph的硬體建議需求,一臺OSD對應1顆處理器核心、1GB記憶體與一臺硬碟。但由於硬碟容量有大小之分,連帶增加對於系統記憶體的需求,迎棧科技業務部技術顧問賴啟勛建議,若配置的是4TB硬碟,他們認為,對應的伺服器記憶體容量需提高到4GB。
此外,仍須考量到伺服器部署規模,要架構出Ceph儲存環境,需要多臺伺服器組成叢集,並搭配RADOS Gateway、Monitor,在初期建置時,設備數量可能比一般儲存設備還要多。
Ceph本家的Red Hat Ceph Storage
Calamari是一套針對Ceph儲存叢集提供管理與監控功能的系統,當中提供了儀表板化網頁介面,管理者從這裡可執行部署OSD的工作。圖中可看到儲存叢集內部署了320臺OSD,每個綠色小圓點就是一臺OSD,若底色相同,表這些OSD位於同一臺伺服器,例如0到39同在一臺伺服器內。(圖片來源/迎棧科技)
與Ceph系出同門的Bigtera VirtualStor
Bigtera基於Ceph所發展的VirtualStor,在網頁管理介面上,提供了豐富的儲存系統狀態儀表版,管理者對於儲存叢集的現況能一目了然。(圖片來源/Bigtera)
Ceph引發開放式軟體儲存新浪潮
由於能同時支撐多種儲存形式、規模與容量易於擴展、高可用性等優勢,Ceph已成為許多人建置OpenStack環境時搭配的儲存系統首選,不僅超越其他開放原始碼儲存軟體,更把一些既有的儲存大廠產品遠遠拋在腦後。
根據OpenStack基金會2015年最新的使用者調查報告,在上線環境中採用的區塊式儲存系統,僅NetApp以11%的比例擠進第4名,Ceph卻拿到44%的占有率,而且比前次調查又增加了7%,而其他儲存廠商,像是EMC、HP 3PAR、SolidFire、Dell EqualLogic都在1%到5%之間徘徊,情何以堪。在企業採用OpenStack意願逐漸提高的同時,這些廠商若無法突破困境,未來在這樣的應用場景繼續延燒下,勢必更為邊緣化。
而反觀開放原始碼軟體陣營,Ceph已取得一馬當先之勢,背後更有許多系統廠商的奧援。
Linux系統軟體廠商
例如,Red Hat在2014年買下Ceph的母公司Inktank,除了以該平臺來擴充旗下儲存方案的陣容,改名為Red Hat Ceph Storage,並且緊密整合到自家的OpenStack版本──Red Hat Enterprise Linux OpenStack Platform。
無獨有偶,另一家企業級Linux大廠SUSE,也基於Ceph的開放原始碼軟體,而推出了SUSE Enterprise Storage,並且也整合在旗下最新的OpenStack版本SUSE OpenStack Cloud 5。
本身也是Linux與OpenStack系統供應商的Canonical,他們也支援Ceph,但他們在今年5月的OpenStack高峰會上,發表了Ubuntu Advantage Storage的軟體定義儲存產品,其中包含了4種開放原始碼軟體,Ceph就是其中之一。
伺服器廠商
有些伺服器廠商也特別針對Ceph,推出了解決方案。例如Dell和Red Hat合作,推出了雲解決方案與對應的參考架構(Dell Red Hat Cloud Solution),而Red Hat Ceph Storage就是他們建議的其中一種儲存系統,而Ceph儲存節點所用的伺服器,主要是Dell PowerEdge R730xd,該款伺服器可在2U尺寸的機箱內,配置28臺硬碟(24臺2.5吋硬碟,以及4臺NVMe固態硬碟)。
另一家伺服器廠商Supermicro,也是和Red Hat合作,並於去年宣布Ceph物件式儲存叢集方案,當中包含了機櫃、監控節點(Monitor)、物件式儲存服務節點(OSD)、網路交換器。到了今年他們提供更多選擇,提供了Red Hat Ceph Storage環境建置的最佳化橫向擴展儲存方案,其中有6到7臺專用機型。
技術服務廠商
而在OpenStack生態下,臺灣目前也有一些協助企業建置這類雲環境的廠商,可以特別針對Ceph儲存環境的應用,提供相關的技術服務。例如,迎棧科技(InwinSTACK)設立了Ceph的技術諮詢服務,並能協助用戶部署Ceph儲存環境,最近,他們正在協助一家位於新竹科學園區的公司,進行Ceph環境的建置,但該用戶純粹是為了內部儲存擴充需求,而不是為了建置OpenStack。
儲存廠商
除了開放原始碼軟體的應用與技術支援服務,也有一些新興廠商以Ceph程式碼核心為基礎,而加以改良,而推出了整合軟硬體、並強化更多企業環境應用功能的儲存設備。例如,大兆科技(Bigtera)旗下VirtualStor系列,有三套產品: SDS Controller、Scaler、Converger,就是基於這樣的方式所發展出來的。
在這幾款應用設備中,Bigtera將Ceph程式碼最佳化,並且針對企業環境中常見的網路儲存環境,提供支援,例如iSCSI、FC、NFS、CIFS和WebDAV的相容,以及Windows AD與LDAP身分認證整合。同時,該公司也簡化系統的安裝、部署與管理,並強化效能、延展性、可靠度、安全性。
Ceph與既有儲存系統的比較 |
資料來源:OpenStack Operations Guide,2015年9月 |