高學(xué)武 姚智慧 牛中盈
摘要:傳統(tǒng)DAS、NAS等存儲系統(tǒng)難以滿足IaSS環(huán)境下虛擬機(jī)對存儲容量、性能、管理、可用性的綜合需求,存在異構(gòu)存儲設(shè)備管理困難、虛擬機(jī)附加存儲不能在線動態(tài)伸縮等問題。結(jié)合Ceph分布式存儲系統(tǒng),構(gòu)建云存儲的分布式彈性塊存儲系統(tǒng),設(shè)計實現(xiàn)了彈性塊存儲監(jiān)控管理平臺,能夠?qū)Ξ悩?gòu)存儲設(shè)備進(jìn)行統(tǒng)一管理,并實現(xiàn)虛擬存儲池的動態(tài)擴(kuò)容、虛擬機(jī)附加存儲的彈性伸縮。
關(guān)鍵詞:異構(gòu)設(shè)備;Ceph塊存儲;動態(tài)擴(kuò)容;彈性伸縮
DOIDOI:10.11907/rjdk.1511628
中圖分類號:TP301
文獻(xiàn)標(biāo)識碼:A 文章編號:1672-7800(2016)005-0018-03
0 引言
傳統(tǒng)虛擬機(jī)的存儲可以分為4類[1]:①DAS(Direct-Attached Storage)。虛擬機(jī)數(shù)據(jù)直接存儲在本地或SSD上,以塊設(shè)備形式提供給虛擬機(jī)使用,存在擴(kuò)展性不佳、管理困難等問題;②BNAS(Network-Attached Storage)。安裝管理簡單,由單獨的存儲服務(wù)器提供服務(wù),不適合在IaaS場景下為虛擬機(jī)提供存儲服務(wù);③SAN(Storage Area Network)。造價成本高,部署和管理困難;④基于分布式文件系統(tǒng)(阿里云的“盤古[2]”)。中間多一層文件系統(tǒng),降低了訪問速度。
本文結(jié)合Ceph分布式存儲系統(tǒng),提出并實現(xiàn)了基于云存儲的分布式彈性塊存儲系統(tǒng)(Distributed Elastic Block Storage System,DEBSS)。DEBSS自底向上包括物理設(shè)備層、虛擬化層、存儲管理層、應(yīng)用層[3]。在存儲管理層部署了分布式彈性塊存儲監(jiān)控管理平臺,以實現(xiàn)對異構(gòu)存儲設(shè)備的統(tǒng)一管理、虛擬存儲池的動態(tài)擴(kuò)容、虛擬機(jī)附加存儲的彈性伸縮,提高了虛擬機(jī)的存儲性能。
1 相關(guān)研究及成果
本文主要針對“分布式彈性塊存儲”進(jìn)行研究,其它分布式文件系統(tǒng)不進(jìn)入比較范圍。
亞馬遜的EBS(Elastic Block Store)專門為Amazon EC2虛擬機(jī)提供持久性的彈性塊存儲服務(wù)[4],支持快照功能。EBS支持最大的1TB卷的大小,但是由于商業(yè)原因,幾乎找不到關(guān)于EBS的公開描述[1]。
Sheepdog是由NTT的3名日本研究員開發(fā)的開源分布式塊存儲文件系統(tǒng)[5],為虛擬機(jī)提供塊存儲服務(wù)。其采用完全對稱的結(jié)構(gòu),沒有類似元數(shù)據(jù)服務(wù)的中心節(jié)點[6],沒有單點故障,支持快照功能,易于管理。
Ceph是加州大學(xué)Santa Cruz分校的Sage Weil(DreamHost的聯(lián)合創(chuàng)始人)專為博士論文設(shè)計的新一代自由軟件分布式文件系統(tǒng)[7],對外提供對象存儲、塊存儲、文件系統(tǒng)存儲3種功能[8]。
Openstack云管理平臺的cinder項目為nova提供塊存儲能力,旨在解決異構(gòu)存儲資源的管理問題,將異構(gòu)的存儲資源以統(tǒng)一方式提交給上層,但是本身并不具備存儲能力,達(dá)到一種“軟件定義塊存儲”的效果。
在面向虛擬機(jī)的分布式塊存儲系統(tǒng)設(shè)計及實現(xiàn)[1]中,設(shè)計出一種分布式塊存儲系統(tǒng)DBSS,采用兩個數(shù)據(jù)卷和一個日志卷的格式,提供高可用服務(wù)。
2 系統(tǒng)設(shè)計與實現(xiàn)
2.1 系統(tǒng)邏輯架構(gòu)設(shè)計
分布式彈性塊存儲系統(tǒng)按照云存儲的分層架構(gòu)進(jìn)行設(shè)計,自底向上分為4層:物理設(shè)備層、虛擬化層、存儲管理層、應(yīng)用層。系統(tǒng)架構(gòu)如圖1所示。
(1)物理設(shè)備層。包括各種異構(gòu)的存儲設(shè)備及其它一些基礎(chǔ)設(shè)施。通過虛擬化技術(shù),將異構(gòu)的存儲設(shè)備整合到彈性虛擬化存儲池中,為上層提供統(tǒng)一的存儲服務(wù)。
(2)虛擬化層。所有數(shù)據(jù)均衡地分布到不同的存儲節(jié)點上,沒有單節(jié)點故障、支持多副本技術(shù)和自動修復(fù)功能,提高了數(shù)據(jù)的可靠性。
(3)存儲管理層。存儲管理層主要包括監(jiān)控管理、接口管理以及集群管理。監(jiān)控管理主要包括異構(gòu)設(shè)備數(shù)量、分布式存儲集群健康狀態(tài)、虛擬化存儲池使用情況等;集群管理實現(xiàn)的是對存儲集群的管理,可以橫向加入存儲設(shè)備,實現(xiàn)虛擬存儲池的擴(kuò)容。
(4)應(yīng)用層。用于控制管理和分配分布式彈性塊存儲系統(tǒng)的管理平臺,通過監(jiān)控虛擬機(jī)磁盤使用情況,動態(tài)分配和刪除虛擬機(jī)存儲資源,實現(xiàn)虛擬機(jī)存儲資源的彈性伸縮。
2.2 系統(tǒng)開發(fā)與實現(xiàn)
2.2.1 物理設(shè)備層Ceph分布式系統(tǒng)部署
本文基于Ceph[9]搭建分布式彈性塊存儲系統(tǒng),實驗環(huán)境由5臺虛擬機(jī)組成(可以根據(jù)實際的任務(wù)需求彈性擴(kuò)展存儲設(shè)備),主機(jī)名分別為:Ceph{1,2,3,4},操作系統(tǒng)是ubuntu14.04。其中Ceph1機(jī)用來安裝ceph-deploy,部署Ceph分布式存儲系統(tǒng); Ceph2用作msd(元數(shù)據(jù)服務(wù)器)和mon(監(jiān)控節(jié)點);Ceph{3,4}用作osd(存儲節(jié)點)。4臺虛擬機(jī)的詳細(xì)信息如表1所示。
部署過程如下:①在deploy節(jié)點創(chuàng)建集群目錄;②每個節(jié)點都安裝ntp服務(wù),設(shè)置deploy節(jié)點為ntp服務(wù)器;③配置每個節(jié)點,允許deploy節(jié)點可以無密碼登錄;④創(chuàng)建監(jiān)控集群;⑤在所有節(jié)點上安裝Ceph;⑥部署osd節(jié)點,查看Ceph集群狀態(tài);⑦添加mds。
2.2.2 存儲管理層部署Inkscope監(jiān)控平臺
Inkscope是一款輕量級的Ceph監(jiān)控管理平臺,用mongodb來進(jìn)行數(shù)據(jù)信息的存儲。Inkscope由inkscopeViz、inkscopeCtrl、inkscopeProbe組成。InkscopeViz為用戶提供可視化的監(jiān)控平臺;inkscopeCtrl負(fù)責(zé)監(jiān)控cephrestapi;inkscopeProbe負(fù)責(zé)收集集群節(jié)點信息,分為cephProbe和sysProbe。部署邏輯如表2所示。
由圖可見,Ceph集群的狀態(tài)是健康的,彈性塊存儲池總?cè)萘渴?0G,已用容量4.7G,可用容量55.3G。
2.3 應(yīng)用層設(shè)計
對需要添加附加存儲的虛擬機(jī)安裝Ceph客戶端,然后將虛擬機(jī)添加到Ceph集群。在客戶端創(chuàng)建塊設(shè)備鏡像,將鏡像映射到塊設(shè)備,格式化塊設(shè)備,掛載到客戶端,以實現(xiàn)虛擬附加存儲的彈性伸縮。
3 系統(tǒng)測試
針對搭建好的分布式彈性塊存儲系統(tǒng),可以從虛擬存儲池的動態(tài)擴(kuò)容、虛擬機(jī)附件存儲彈性伸縮兩方面進(jìn)行測試。本文所有測試在均在Vmware Workstations創(chuàng)建的虛擬機(jī)上進(jìn)行。
3.1 虛擬存儲池動態(tài)擴(kuò)容
上文已基于Ceph搭建完成了分布式彈性塊存儲系統(tǒng),實驗環(huán)境是4臺ubuntu虛擬機(jī),由圖2 Inskcope監(jiān)控界面可以看到虛擬機(jī)存儲池容量是60G。現(xiàn)為節(jié)點Ceph3增加一個容量為15G的磁盤,并將其加入到虛擬存儲池中,理論上虛擬存儲池總?cè)萘縿t變?yōu)?5G。經(jīng)過試驗,虛擬存儲池由60G擴(kuò)容到75G,與理論值一致,實現(xiàn)了虛擬存儲池的動態(tài)擴(kuò)容,如圖3所示。
3.2 虛擬機(jī)附加存儲彈性伸縮
創(chuàng)建一臺ubuntu虛擬機(jī),安裝Ceph客戶端,查看其存儲如圖4所示。
根據(jù)上節(jié)中應(yīng)用層的設(shè)計,增加容量為40G的附加存儲空間,測試結(jié)果如圖5所示。
經(jīng)過試驗,為虛擬機(jī)增加了一塊40G的存儲塊設(shè)備,實現(xiàn)了虛擬機(jī)附件存儲的彈性伸縮。
4 結(jié)語
本文結(jié)合Ceph分布式系統(tǒng),設(shè)計并實現(xiàn)了分布式彈性塊存儲系統(tǒng)。通過實驗,實現(xiàn)了虛擬塊存儲資源池的動態(tài)擴(kuò)容,并劃分塊存儲資源作為虛擬機(jī)的附加存儲,實現(xiàn)了虛擬機(jī)存儲資源的彈性伸縮。然而,本文提出的設(shè)計方法也存在一些不足,如未指定虛擬機(jī)需要添加附加存儲的指標(biāo),實驗只是通過手動添加。在后續(xù)工作中,將會在應(yīng)用層設(shè)計監(jiān)控平臺實現(xiàn)對虛擬機(jī)存儲資源的監(jiān)控,動態(tài)地添加或刪除塊存儲資源,真正實現(xiàn)虛擬機(jī)附加存儲的彈性伸縮。
參考文獻(xiàn):
[1]賈博文,張文軍,李小勇.面向虛擬機(jī)的分布式塊存儲系統(tǒng)的設(shè)計及實現(xiàn)[J].微型電腦應(yīng)用,2015,31(3):32-37.
[2]周憬宇,李武軍.飛天開放平臺編程指南:阿里云計算的實踐[M].北京:電子工業(yè)出版社,2013:11-12.
[3]程靚坤.基于Ceph的云存儲系統(tǒng)的設(shè)計與實現(xiàn)[D].廣州:中山大學(xué),2014.
[4]Amazon EBS彈性塊存儲服務(wù)初探[EB/OL].http://blog.csdn.net/hereweare2009/article/details/6226218.
[5]恒天云技術(shù)分享系列11 Sheepdog簡介[EB/OL].http://www.cnblogs.com/mengfanrong/p/4553091.html.
[6]分布式存儲系統(tǒng)Sheepdog[EB/OL].http://blog.csdn.net/kidd_3/article/details/8154964.
[7]分布式文件系統(tǒng)Ceph[EB/OL].http://www.oschina.net/p/ceph/.
[8]Ceph簡介[EB/OL].http://www.cnblogs.com/mylinuxer/p/4359259.html.
[9]Ceph- Ceph 文檔本地化項目[EB/OL].http://docs.openfans.org/ceph/ceph4e2d658765876863/ceph-1.
(責(zé)任編輯:黃 ?。?/p>