OpenStack其實(shí)有三個(gè)與存儲(chǔ)相關(guān)的組件,這三個(gè)組件被人熟知的程度和組件本身出現(xiàn)時(shí)間的早晚是相符的,按熟悉程度排列如下:
Swift——提供對(duì)象存儲(chǔ) (Object Storage),在概念上類似于Amazon S3服務(wù),不過swift具有很強(qiáng)的擴(kuò)展性、冗余和持久性,也兼容S3 API
Glance——提供虛機(jī)鏡像(Image)存儲(chǔ)和管理,包括了很多與Amazon AMI catalog相似的功能。(Glance的后臺(tái)數(shù)據(jù)從最初的實(shí)踐來看是存放在Swift的)。
Cinder——提供塊存儲(chǔ)(Block Storage),類似于Amazon的EBS塊存儲(chǔ)服務(wù),目前僅給虛機(jī)掛載使用。
(Amazon一直是OpenStack設(shè)計(jì)之初的假象對(duì)手和挑戰(zhàn)對(duì)象,所以基本上關(guān)鍵的功能模塊都有對(duì)應(yīng)項(xiàng)目。除了上面提到的三個(gè)組件,對(duì)于AWS中的重要的EC2服務(wù),OpenStack中是Nova來對(duì)應(yīng),并且保持和EC2 API的兼容性,有不同的方法可以實(shí)現(xiàn))
三個(gè)組件中,Glance主要是虛機(jī)鏡像的管理,所以相對(duì)簡(jiǎn)單;Swift作為對(duì)象存儲(chǔ)已經(jīng)很成熟,連CloudStack也支持它。Cinder是比較新出現(xiàn)的塊存儲(chǔ),設(shè)計(jì)理念不錯(cuò),并且和商業(yè)存儲(chǔ)有結(jié)合的機(jī)會(huì),所以廠商比較積極。
Swift
關(guān)于Swift的架構(gòu)和部署討論,除了官方網(wǎng)站,網(wǎng)上也有很多文章,這里就不重復(fù)。(也可以參考我之前在OpenStack中國(guó)行活動(dòng)中上海站演講的PPT)。從開發(fā)上看,最近也沒有太大的結(jié)構(gòu)性調(diào)整,所以我想主要說說比較適用的應(yīng)用領(lǐng)域好了。
從我所了解的實(shí)際案例來看,Swift出現(xiàn)的領(lǐng)域有4個(gè),(應(yīng)該還有更多,希望大家看到實(shí)際用例能夠指教)
1.網(wǎng)盤
Swift的對(duì)稱分布式架構(gòu)和多proxy多節(jié)點(diǎn)的設(shè)計(jì)導(dǎo)致它從基因里就適合于多用戶大并發(fā)的應(yīng)用模式,最典型的應(yīng)用莫過于類似Dropbox的網(wǎng)盤應(yīng)用,Dropbox去年底已經(jīng)突破一億用戶數(shù),對(duì)于這種規(guī)模的訪問,良好的架構(gòu)設(shè)計(jì)是能夠支撐的根本原因。
Swift的對(duì)稱架構(gòu)使得數(shù)據(jù)節(jié)點(diǎn)從邏輯上看處于同級(jí)別,每臺(tái)節(jié)點(diǎn)上同時(shí)都具有數(shù)據(jù)和相關(guān)的元數(shù)據(jù)。并且元數(shù)據(jù)的核心數(shù)據(jù)結(jié)構(gòu)使用的是哈希環(huán),一致性哈希算法對(duì)于節(jié)點(diǎn)的增減都只需重定位環(huán)空間中的一小部分?jǐn)?shù)據(jù),具有較好的容錯(cuò)性和可擴(kuò)展性。另外數(shù)據(jù)是無狀態(tài)的,每個(gè)數(shù)據(jù)在磁盤上都是完整的存儲(chǔ)。這幾點(diǎn)綜合起來保證了存儲(chǔ)的本身的良好的擴(kuò)展性。
另外和應(yīng)用的結(jié)合上,Swift是說HTTP協(xié)議這種語言的,這使得應(yīng)用和存儲(chǔ)的交互變得簡(jiǎn)單,不需要考慮底層基礎(chǔ)構(gòu)架的細(xì)節(jié),應(yīng)用軟件不需要進(jìn)行任何的修改就可以讓系統(tǒng)整體擴(kuò)展到非常大的程度。
2.IaaS公有云
Swift在設(shè)計(jì)中的線性擴(kuò)展,高并發(fā)和多租戶支持等特性,使得它也非常適合做為IaaS的選擇,公有云規(guī)模較大,更多的遇到大量虛機(jī)并發(fā)啟動(dòng)這種情況,所以對(duì)于虛機(jī)鏡像的后臺(tái)存儲(chǔ)具體來說,實(shí)際上的挑戰(zhàn)在于大數(shù)據(jù)(超過G)的并發(fā)讀性能,Swift在OpenStack中一開始就是作為鏡像庫的后臺(tái)存儲(chǔ),經(jīng)過RACKSpace上千臺(tái)機(jī)器的部署規(guī)模下的數(shù)年實(shí)踐,Swift已經(jīng)被證明是一個(gè)成熟的選擇。
另外如果基于IaaS要提供上層的SaaS 服務(wù),多租戶是一個(gè)不可避免的問題,Swift的架構(gòu)設(shè)計(jì)本身就是支持多租戶的,這樣對(duì)接起來更方便。
3.備份歸檔
RackSpace的主營(yíng)業(yè)務(wù)就是數(shù)據(jù)的備份歸檔,所以Swift在這個(gè)領(lǐng)域也是久經(jīng)考驗(yàn),同時(shí)他們還延展出一種新業(yè)務(wù)--“熱歸檔”。由于長(zhǎng)尾效應(yīng),數(shù)據(jù)可能被調(diào)用的時(shí)間窗越來越長(zhǎng),熱歸檔能夠保證應(yīng)用歸檔數(shù)據(jù)能夠在分鐘級(jí)別重新獲取,和傳統(tǒng)磁帶機(jī)歸檔方案中的數(shù)小時(shí)而言,是一個(gè)很大的進(jìn)步。
4. 移動(dòng)互聯(lián)網(wǎng)和CDN
移動(dòng)互聯(lián)網(wǎng)和手機(jī)游戲等產(chǎn)生大量的用戶數(shù)據(jù),數(shù)據(jù)量不是很大但是用戶數(shù)很多,這也是Swift能夠處理的領(lǐng)域。
至于加上CDN,如果使用Swift,云存儲(chǔ)就可以直接響應(yīng)移動(dòng)設(shè)備,不需要專門的服務(wù)器去響應(yīng)這個(gè)HTTP的請(qǐng)求,也不需要在數(shù)據(jù)傳輸中再經(jīng)過移動(dòng)設(shè)備上的文件系統(tǒng),直接是用HTTP 協(xié)議上傳云端。如果把經(jīng)常被平臺(tái)訪問的數(shù)據(jù)緩存起來,利用一定的優(yōu)化機(jī)制,數(shù)據(jù)可以從不同的地點(diǎn)分發(fā)到你的用戶那里,這樣就能提高訪問的速度,我最近看到Swift的開發(fā)社區(qū)有人在討論視頻網(wǎng)站應(yīng)用和Swift的結(jié)合,竊以為是值得關(guān)注的方向。
Glance
Glance比較簡(jiǎn)單,是一個(gè)虛機(jī)鏡像的存儲(chǔ)。向前端nova(或者是安裝了Glance-client的其他虛擬管理平臺(tái))提供鏡像服務(wù),包括存儲(chǔ),查詢和檢索。這個(gè)模塊本身不存儲(chǔ)大量的數(shù)據(jù),需要掛載后臺(tái)存儲(chǔ)(Swift,S3……)來存放實(shí)際的鏡像數(shù)據(jù)。
Glance主要包括下面幾個(gè)部分:
·API service: glance-api 主要是用來接受Nova的各種api調(diào)用請(qǐng)求,將請(qǐng)求放入RBMQ交由后臺(tái)處理,。
·Glacne-registry 用來和MySQL數(shù)據(jù)庫進(jìn)行交互,存儲(chǔ)或者獲取鏡像的元數(shù)據(jù),注意,剛才在Swift中提到,Swift在自己的Storage Server中是不保存元數(shù)據(jù)的,這兒的元數(shù)據(jù)是指保存在MySQL數(shù)據(jù)庫中的關(guān)于鏡像的一些信息,這個(gè)元數(shù)據(jù)是屬于Glance的。
·Image store: 后臺(tái)存儲(chǔ)接口,通過它獲取鏡像,后臺(tái)掛載的默認(rèn)存儲(chǔ)是Swift,但同時(shí)也支持Amazon S3等其他的鏡像。
Glance從某種角度上看起來有點(diǎn)像虛擬存儲(chǔ),也提供API,可以實(shí)現(xiàn)比較完整的鏡像管理功能。所以理論上其他云平臺(tái)也可以使用它。
Glance比較簡(jiǎn)單,又限于云內(nèi)部,所以沒啥可以多展開討論的,不如看看新出來的塊存儲(chǔ)組件Cinder,目前我對(duì)Cinder基本的看法是總體的設(shè)計(jì)不錯(cuò),細(xì)節(jié)和功能還有很多需要完善的地方,離一個(gè)成熟的產(chǎn)品還有點(diǎn)距離。
Cinder
OpenStack到F版本有比較大的改變,其中之一就是將之前在Nova中的部分持久性塊存儲(chǔ)功能(Nova-Volume)分離了出來,獨(dú)立為新的組件Cinder。它通過整合后端多種存儲(chǔ),用API接口為外界提供塊存儲(chǔ)服務(wù),主要核心是對(duì)卷的管理,允許對(duì)卷,卷的類型,卷的快照進(jìn)行處理。
Cinder包含以下三個(gè)主要組成部分
API service:Cinder-api 是主要服務(wù)接口, 負(fù)責(zé)接受和處理外界的API請(qǐng)求,并將請(qǐng)求放入RabbitMQ隊(duì)列,交由后端執(zhí)行。 Cinder目前提供Volume API V2
Scheduler service: 處理任務(wù)隊(duì)列的任務(wù),并根據(jù)預(yù)定策略選擇合適的Volume Service節(jié)點(diǎn)來執(zhí)行任務(wù)。目前版本的cinder僅僅提供了一個(gè)Simple Scheduler, 該調(diào)度器選擇卷數(shù)量最少的一個(gè)活躍節(jié)點(diǎn)來創(chuàng)建卷。
Volume service: 該服務(wù)運(yùn)行在存儲(chǔ)節(jié)點(diǎn)上,管理存儲(chǔ)空間,塔處理cinder數(shù)據(jù)庫的維護(hù)狀態(tài)的讀寫請(qǐng)求,通過消息隊(duì)列和直接在塊存儲(chǔ)設(shè)備或軟件上與其他進(jìn)程交互。每個(gè)存儲(chǔ)節(jié)點(diǎn)都有一個(gè)Volume Service,若干個(gè)這樣的存儲(chǔ)節(jié)點(diǎn)聯(lián)合起來可以構(gòu)成一個(gè)存儲(chǔ)資源池。
Cinder通過添加不同廠商的指定drivers來為了支持不同類型和型號(hào)的存儲(chǔ)。目前能支持的商業(yè)存儲(chǔ)設(shè)備有EMC 和IBM的幾款,也能通過LVM支持本地存儲(chǔ)和NFS協(xié)議支持NAS存儲(chǔ),所以Netapp的NAS應(yīng)該也沒問題,好像華為也在努力中。我前段時(shí)間還在Cinder的blueprints看到IBM的GPFS分布式文件系統(tǒng),在以后的版本應(yīng)該會(huì)添加進(jìn)來
到目前為止,Cinder主要和OpenStack的Nova內(nèi)部交互,為之提供虛機(jī)實(shí)例所需要的卷Attach上去,但是理論上也可以單獨(dú)向外界提供塊存儲(chǔ)。
部署上,可以把三個(gè)服務(wù)部署在一臺(tái)服務(wù)器,也可以獨(dú)立部署到不同物理節(jié)點(diǎn)
現(xiàn)在Cinder還是不夠成熟,有幾個(gè)明顯的問題還沒很好解決,一是支持的商業(yè)存儲(chǔ)還不夠多,而且還不支持FC SAN,另外單點(diǎn)故障隱患沒解決,內(nèi)部的schedule調(diào)度算法也太簡(jiǎn)單。另外由于它把各種存儲(chǔ)整合進(jìn)來又加了一層,管理倒是有辦法了,但是效率肯定是有影響,性能肯定有損耗,但這也是沒辦法的事了。
OpenStack通過兩年多發(fā)展,變得越來越龐大。目前光存儲(chǔ)就出現(xiàn)了三種:對(duì)象存儲(chǔ)、鏡像存儲(chǔ)和塊存儲(chǔ)。這也是為了滿足更多不同的需求,體現(xiàn)出開源項(xiàng)目靈活快速的特性?偟恼f來,當(dāng)選擇一套存儲(chǔ)系統(tǒng)的時(shí)候,如果考慮到將來會(huì)被多個(gè)應(yīng)用所共同使用,應(yīng)該視為長(zhǎng)期的決策。OpenStack作為一個(gè)開放的系統(tǒng),最主要是解決軟硬件供應(yīng)商鎖定的問題,可以隨時(shí)選擇新的硬件供應(yīng)商,將新的硬件和已有的硬件組成混合的集群,統(tǒng)一管理,當(dāng)然也可以替換軟件技術(shù)服務(wù)的提供商,不用動(dòng)應(yīng)用。這是開源本身的優(yōu)勢(shì)!
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:OpenStack里的三種存儲(chǔ)
本文網(wǎng)址:http://www.ezxoed.cn/html/consultation/1083968411.html