紅帽的大數(shù)據(jù):Gluster全方位解讀
譯文【51CTO快譯】紅帽公司宣布收購(gòu)Gluster ,后者作為GlusterFS開(kāi)源文件系統(tǒng)及Gluster存儲(chǔ)平臺(tái)軟件堆棧的開(kāi)發(fā)者受到廣泛關(guān)注。通過(guò)這種方式,紅帽公司將自己打造成了一套針對(duì)尋求類(lèi)似 Apache Hadoop 這樣大數(shù)據(jù)解決方案的客戶(hù)提供服務(wù)的一站式商店。不過(guò)它同時(shí)還買(mǎi)進(jìn)了一套文件系統(tǒng),該系統(tǒng)在基于云平臺(tái)的部署方面有著極大的潛力。如果大家還沒(méi)聽(tīng)說(shuō)過(guò)Gluster這個(gè)名頭,那么不妨詳細(xì)閱讀本文,并從中了解這家公司是如何在擴(kuò)展式網(wǎng)絡(luò)附加存儲(chǔ)領(lǐng)域鶴立雞群的。
Gluster公司簡(jiǎn)介
用這家公司自己的話(huà)說(shuō),GlusterFS是“一套可擴(kuò)展的開(kāi)源集群文件系統(tǒng),并能夠輕松為客戶(hù)提供全局命名空間、分布式前端以及高達(dá)數(shù)百PB級(jí)別的擴(kuò)展性。”這種說(shuō)法口氣可不小,但GlusterFS也確實(shí)把解決大問(wèn)題——真正的“大”問(wèn)題當(dāng)作己任。事實(shí)上,Gluster的最大容量為72 brontobyte(沒(méi)錯(cuò),這個(gè)詞已經(jīng)成為現(xiàn)實(shí),相當(dāng)于一千億億億字節(jié))。
也許GlusterFS最值得立即了解的重要細(xì)節(jié)是,它完全實(shí)現(xiàn)了網(wǎng)絡(luò)附加存儲(chǔ)的大規(guī)模擴(kuò)展而沒(méi)有借助其他人在處理大數(shù)據(jù)領(lǐng)域所使用的要素:元數(shù)據(jù)。元數(shù)據(jù)被用來(lái)描述一個(gè)給定的文件或是區(qū)塊在分布式文件系統(tǒng)中的所處位置;它同時(shí)也是網(wǎng)絡(luò)附加存儲(chǔ)解決方案在規(guī)?;矫娴闹旅觞c(diǎn)。
在某些情況下,例如Hadoop的本地HDFS,元數(shù)據(jù)正是導(dǎo)致失敗的重要元兇。而在其它情況下,它又作為線(xiàn)性性能可擴(kuò)展性的阻礙出現(xiàn),因?yàn)樗泄?jié)點(diǎn)都必須不斷與服務(wù)器(或服務(wù)器群組)保持聯(lián)系以延持整個(gè)集群的元數(shù)據(jù)——這種做法幾乎必定會(huì)帶來(lái)額外的延遲并使存儲(chǔ)硬件在等待響應(yīng)元數(shù)據(jù)請(qǐng)求的過(guò)程中處于效率低下的閑置狀態(tài)。
Gluster通過(guò)使用其自有的彈性Hash算法解決了這一問(wèn)題。憑借這種算法,Gluster集群中的每個(gè)節(jié)點(diǎn)都能夠計(jì)算得出某個(gè)特定文件的位置,而無(wú)需聯(lián)系集群內(nèi)的其它節(jié)點(diǎn)——這基本上消除了元數(shù)據(jù)追蹤及變化的必要性。正是這套方案讓GlusterFS在競(jìng)爭(zhēng)中獨(dú)占鰲頭,并使其真正能夠?qū)崿F(xiàn)自身在線(xiàn)性性能擴(kuò)展性方面的承諾。
后端部署
GlusterFS是一套用戶(hù)空間文件系統(tǒng)驅(qū)動(dòng)程序,可以被部署于任何品牌的Liniux系統(tǒng)之中(主要是RHEL或者CentOS)。換句話(huà)來(lái)說(shuō),GlusterFS的運(yùn)行完全獨(dú)立于硬件之外,因此非常便于攜帶。在預(yù)制型或者是私有云實(shí)例中,GlusterFS可以被創(chuàng)建于諸如JBOD(即簡(jiǎn)單磁盤(pán)捆綁)、DAS(即數(shù)據(jù)采集系統(tǒng))或者SAN存儲(chǔ)等商用服務(wù)器硬件之上——具體使用哪種硬件完全取決于終端用戶(hù)的選擇。而在公共云環(huán)境中,GlusterFS則可以直接被安裝在現(xiàn)有產(chǎn)品上,進(jìn)而提供更好的可擴(kuò)展性及有效性(目前Amazon及Rightscale公司都在提供類(lèi)似的產(chǎn)品)。除此之外,當(dāng)其被部署于數(shù)量與日俱增的虛擬裝置之中時(shí),Gluster的節(jié)點(diǎn)將運(yùn)作于管理程序之上——無(wú)論是預(yù)制型還是在云中。
根據(jù)數(shù)據(jù)在GlusterFS節(jié)點(diǎn)集群中的存儲(chǔ)方式,Gluster能夠以性能不同、可用性特性不同的數(shù)種方式加以部署。最簡(jiǎn)單的一種當(dāng)數(shù)只分布型,這種類(lèi)型從本質(zhì)上模擬了文件級(jí)別的RAID0分布狀況。而這種類(lèi)型中,文件只存儲(chǔ)在一個(gè)Gluster節(jié)點(diǎn)中,因此單個(gè)節(jié)點(diǎn)的故障即會(huì)導(dǎo)致數(shù)據(jù)的丟失。其實(shí)這沒(méi)什么好奇怪的,低安全性換來(lái)的是最高級(jí)別的性能表現(xiàn)以及最高效的存儲(chǔ)調(diào)用狀態(tài),因?yàn)檎麄€(gè)流程中不涉及文件備份。
對(duì)于那些要求在節(jié)點(diǎn)故障情況下仍能保證數(shù)據(jù)安全的應(yīng)用程序來(lái)說(shuō),Gluster的分布式副本模式能夠滿(mǎn)足此類(lèi)要求,該模式基本上類(lèi)似于RAID 10。在這種模式下,文件被分布在始終處于同步狀態(tài)的一對(duì)鏡像節(jié)點(diǎn)當(dāng)中。個(gè)別節(jié)點(diǎn)在發(fā)生故障時(shí)鏡像節(jié)點(diǎn)會(huì)及時(shí)補(bǔ)充,進(jìn)而保證文件的可用性不受任何影響。
最后,Gluster還支持分段模式,這是一種在執(zhí)行上非常接近標(biāo)準(zhǔn)化區(qū)塊層RAID0的模式。根據(jù)建議,該模式一般只適合用于處理超大型文件(通常要超過(guò)50GB)的存儲(chǔ)及多節(jié)點(diǎn)性能要求較高的情況。這也是惟一一個(gè)將會(huì)永遠(yuǎn)將文件拆分并將其分布于多個(gè)節(jié)點(diǎn)上的模式——其它所有模式都只在文件層面運(yùn)作。遺憾的是,鏡像與分段模式無(wú)法結(jié)合,因此要實(shí)現(xiàn)極高的可用性,必須將這套方案與硬件部署統(tǒng)一起來(lái)。
盡管我們無(wú)法在同一個(gè)Gluster集群中同時(shí)使用多種存儲(chǔ)模式,但仍然可以在同一套硬件裝置中運(yùn)行數(shù)個(gè)邏輯集群。因此,大家實(shí)際上能夠在單獨(dú)的物理硬件中并行運(yùn)行分布式備份集群及分段式集群。
除了允許在Gluster集群內(nèi)部實(shí)施分布式備份系統(tǒng)之外,不同集群間的多線(xiàn)路地域備份也是可行的。這種方案能夠被用于保護(hù)網(wǎng)站所面臨的整體故障或者為應(yīng)用程序從一個(gè)站點(diǎn)向另一個(gè)遷移的工作變得更加便捷。Gluster地域備份頗具靈活性,允許我們復(fù)制包含任意數(shù)量中間副本的各種模式(例如從A站到B站、從B站到C站及D站等等)。
應(yīng)該指出的是,Gluster集群跨物理站點(diǎn)的延展也是可行的,但這就對(duì)分布式集群內(nèi)部的同步工作在復(fù)制、大量廣域網(wǎng)帶寬及低延遲方面有著較高要求,以保證獲得令人滿(mǎn)意的性能表現(xiàn)。而在實(shí)際操作中,單獨(dú)的Gluster很可能會(huì)由于某個(gè)站點(diǎn)或是城域網(wǎng)的限制而受到影響。
客戶(hù)端訪(fǎng)問(wèn)
Gluster可以通過(guò)多種不同協(xié)議實(shí)現(xiàn)客戶(hù)端訪(fǎng)問(wèn),包括本地Gluster客戶(hù)端、NFS、CIFS、WebDAV、HTTP等等。然而,只有本地Gluster客戶(hù)端才能正常支持高可用性、大規(guī)模的并行文件訪(fǎng)問(wèn)。使用本地客戶(hù)端,所有客戶(hù)端系統(tǒng)都會(huì)在積極連接到所有集群節(jié)點(diǎn)的同時(shí),借助客戶(hù)端實(shí)施的彈性Hash算法了解到自身在拓?fù)浣Y(jié)構(gòu)中的位置,并且直接從所要求的托管節(jié)點(diǎn)處接收數(shù)據(jù)。因此,來(lái)自本地客戶(hù)端的訪(fǎng)問(wèn)將永遠(yuǎn)不會(huì)使Gluster節(jié)點(diǎn)為了滿(mǎn)足客戶(hù)端請(qǐng)求而產(chǎn)生數(shù)據(jù)交換——而且一旦某個(gè)鏡像節(jié)點(diǎn)出了故障,應(yīng)用程序可以透過(guò)Gluster分卷對(duì)其得到清楚的了解。
基于標(biāo)準(zhǔn)的NFS及CIFS都存在著嚴(yán)重的局限性,使它們無(wú)法處理這種高度并行的訪(fǎng)問(wèn)。因此,NFS及CIFS在部署中需要引入額外的軟件來(lái)管理負(fù)載平衡及保證高可用性,因?yàn)榭蛻?hù)在任何特定時(shí)段內(nèi)只能夠連接到單獨(dú)的一個(gè)存儲(chǔ)節(jié)點(diǎn)。負(fù)責(zé)處理這一問(wèn)題的往往是循環(huán)域名服務(wù)或者是與UCARP(虛擬路由冗余協(xié)議的簡(jiǎn)化版)或CTDB(用于集群存儲(chǔ)的Samba項(xiàng)目)相結(jié)合的硬件負(fù)載平衡器。
由于客戶(hù)只能在同一時(shí)間與一個(gè)節(jié)點(diǎn)建立聯(lián)系,因此讀、寫(xiě)請(qǐng)求就不得不在接入節(jié)點(diǎn)與實(shí)際存儲(chǔ)對(duì)應(yīng)內(nèi)容的節(jié)點(diǎn)之間來(lái)回奔走——這種情況比起使用本地客戶(hù)端,性能表現(xiàn)自然會(huì)大幅下降??偠灾?,使用這些協(xié)議的部署方案通常還需要一套單獨(dú)的后端網(wǎng)絡(luò),專(zhuān)門(mén)用于處理響應(yīng)客戶(hù)端請(qǐng)求所必要的節(jié)點(diǎn)流量。
管理
同Gluster 裸機(jī)存儲(chǔ)平臺(tái)共同運(yùn)行的Web GUI,再加上一套與Gluster分布式獨(dú)立體系協(xié)同合作的命令行工具,二者的結(jié)合完成了Gluster的管理工作。因此,管理這套體系的最佳人選是那些熟悉Linux系統(tǒng)管理工作的技術(shù)人員。對(duì)于某些具備一定Linux知識(shí)的人來(lái)說(shuō),整個(gè)使用過(guò)程將會(huì)非常簡(jiǎn)單,只需幾個(gè)簡(jiǎn)單的指令即可完成相當(dāng)繁雜的工作,比如添加一個(gè)新的節(jié)點(diǎn)或創(chuàng)建一個(gè)新的分卷。事實(shí)上,著名互聯(lián)網(wǎng)廣播公司Pandora所部署的、基于Gluster的250TB服務(wù)存儲(chǔ)后端也只有一位專(zhuān)門(mén)的管理人員負(fù)責(zé)打理。只要大家對(duì)Linux技巧不太陌生,又愿意拿出一、兩個(gè)小時(shí)來(lái)熟悉,Gluster簡(jiǎn)直就是手到擒來(lái)。試問(wèn),還有哪一款集群文件系統(tǒng)能夠做到這一點(diǎn)呢?
云應(yīng)用程序
除了其為了支持云環(huán)境可打造的存儲(chǔ)后端高可用性,Gluster還擁有不少能夠服務(wù)于當(dāng)下公共云基礎(chǔ)設(shè)施的巧妙應(yīng)用程序。在為如Amazon EC 2這樣追求極端高可用性的云基礎(chǔ)設(shè)施打造存儲(chǔ)系統(tǒng)時(shí),最大的挑戰(zhàn)之一就是我們真的需要 將自己的災(zāi)難恢復(fù)規(guī)劃引入其中 。盡管Amazon為其以對(duì)象為基礎(chǔ)的S3存儲(chǔ)平臺(tái)提供了強(qiáng)大的可用性支持,它仍然無(wú)法帶來(lái)與支持著EC2計(jì)算實(shí)例的在線(xiàn)EBS(即彈性區(qū)塊存儲(chǔ))產(chǎn)品同級(jí)別的服務(wù)。此外,EBS分卷的容量被限制在2TB,這就使得其很難與其它大型數(shù)據(jù)集相契合。
通過(guò)將Gluster引入EC2,大家可以徹底無(wú)視2TB的容量限制,盡情將自己的鏡像部署在EC2的可用區(qū)塊中;我們甚至能夠利用Gluster將自己的數(shù)據(jù)復(fù)制到不同的EC2可用區(qū)塊、別家云服務(wù)供應(yīng)商甚至是自己的預(yù)設(shè)基礎(chǔ)設(shè)施里。當(dāng)然,并不是每個(gè)人都需要這樣強(qiáng)度的穩(wěn)定性及可擴(kuò)展性,但對(duì)于那些需要的人而言,這很可能意味著交上了一份堪稱(chēng)偉大的答卷。
總結(jié)陳詞
很多關(guān)注紅帽公司收購(gòu)Gluster事件的分析人士都注意到除了最明顯的大數(shù)據(jù)應(yīng)用之外,對(duì)HDFS及Amazon S3 API的兼容性也即將被加入GlusterFS 3.3當(dāng)中。屆時(shí)Gluster將很可能沖破一款優(yōu)秀的大數(shù)據(jù)存儲(chǔ)文件系統(tǒng)的局限,獲得更令人矚目的成就。有了對(duì)一系列不同管理程序,包括即將到來(lái)的對(duì)OpenStack的兼容,Gluster也許會(huì)成為云后端基礎(chǔ)設(shè)施領(lǐng)域的一顆耀眼新星——無(wú)論是在公共云中還是在私有云中。
原文:Red Hat Gluster, the cloud storage monster
【編輯推薦】















 
 
 


 
 
 
 