王貞國
摘要:在網絡技術的發展下,云技術已經成為現階段的主要技術,有越來越多的新技術開始圍繞云技術得以研發。傳統DAS、NAS等存儲系統難以滿足IaSS環境下虛擬機對存儲容量、性能、管理、可用性的綜合需求,存在異構存儲設備管理困難、虛擬機附加存儲不能在線動態伸縮等問題。結合Ceph分布式存儲系統,構建云存儲的分布式彈性塊存儲系統,設計實現了彈性塊存儲監控管理平臺,能夠對異構存儲設備進行統一管理,并實現虛擬存儲池的動態擴容、虛擬機附加存儲的彈性伸縮。
關鍵詞:云存儲;Ceph塊存儲;動態擴容;彈性伸縮
1.引言
傳統虛擬機的存儲可以分為4類:①DAS(Direct-Attached Storage)。虛擬機數據直接存儲在本地或SSD上,以塊設備形式提供給虛擬機使用,存在擴展性不佳、管理困難等問題;②BNAS(Network-Attached Storage)。安裝管理簡單,由單獨的存儲服務器提供服務,不適合在IaaS場景下為虛擬機提供存儲服務;③SAN(Storage Area Network)。造價成本高,部署和管理困難;④基于分布式文件系統(阿里云的“盤古”)。中間多一層文件系統,降低了訪問速度。
Ceph是一個開源的、理論上可無限擴展的、具有高可靠性、高性能的分布式存儲解決方案。目前很多商業分布式存儲解決方案是在開源的Ceph基礎上發展來的,如Bigtera的VirtualStor系列產品,Hope Bay的ArkFlex云端大規模數據存儲平臺產品,SanDisk的InfiniFlash的產品IF500等產品都使用了Ceph。
本文結合Ceph分布式存儲系統,提出并實現了基于云存儲的分布式彈性塊存儲系統(Distributed Elastic Block Storage System,DEBSS)。DEBSS自底向上包括物理設備層、虛擬化層、存儲管理層、應用層。在存儲管理層部署了分布式彈性塊存儲監控管理平臺,以實現對異構存儲設備的統一管理、虛擬存儲池的動態擴容、虛擬機附加存儲的彈性伸縮,提高了虛擬機的存儲性能。
2.Ceph與其他分布式存儲方案的對比
分布式存儲除了Ceph還有Moosefs(MFS)、Glusterfs、HDFS、Lustre等很多種。本文綜合分析熊文等的論文和其他一些討論,發現Moosefs的優點是實施簡單,缺點是存在單點故障和性能瓶頸;Ceph的優點是擴展性好,可以很好的與OpenStack集成,發展很快,缺點是部分功能還不夠成熟,通過POSIX接口訪問CephFS時候,底層不穩定性使得不適合應用于生產環境;Glusterfs的優點是擴展性好,缺點是沒有MDS,因此增加了客戶端的負載,占用相當的CPU和內存,同時遍歷文件目錄時,實現較為復雜和低效,需要搜索所有的存儲節點;HDFS的優點是適合部署在大量通用、廉價硬件上,缺點是只適合特定應用場景,即一次寫入,多次讀出,做數據分析類應用;Lustre的優點是成熟,缺點是復雜,同時MDS無法擴展,存在性能瓶頸。從適用場合方面分析:Moosefs適合企業小型應用環境,存儲小文件;Ceph適合一般企業使用,如私有云平臺應用,存儲小文件;Glusterfs適合一般企業中型應用,存儲大文件,下文件讀寫效率很低;HDFS適合存儲超大數據集,做數據分析類應用;Lustre是一個并行文件系統,做高性能計算(HPC)類應用,存儲大文件,適合大型科研、企業應用,一般HPC具有計算密集型、海量數據處理等特點,在石油勘探、地震預測、氣象預報、航天航空、科學研究、機械制造、動漫渲染等領域都有應用。
3.相關研究及成果
本文主要針對“分布式彈性塊存儲”進行研究,其它分布式文件系統不進入比較范圍。
亞馬遜的EBS(Elastic Block Store)專門為Amazon EC2虛擬機提供持久性的彈性塊存儲服務,支持快照功能。EBS支持最大的1TB卷的大小,但是由于商業原因,幾乎找不到關于EBS的公開描述。
Sheepdog是由NTT的3名日本研究員開發的開源分布式塊存儲文件系統,為虛擬機提供塊存儲服務。其采用完全對稱的結構,沒有類似元數據服務的中心節點,沒有單點故障,支持快照功能,易于管理。
Ceph是加州大學Santa Cruz分校的Sage Weil(DreamHost的聯合創始人)專為博士論文設計的新一代自由軟件分布式文件系統,對外提供對象存儲、塊存儲、文件系統存儲3種功能。
Openstack云管理平臺的cinder項目為nova提供塊存儲能力,旨在解決異構存儲資源的管理問題,將異構的存儲資源以統一方式提交給上層,但是本身并不具備存儲能力,達到一種“軟件定義塊存儲”的效果。
在面向虛擬機的分布式塊存儲系統設計及實現中,設計出一種分布式塊存儲系統DBSS,采用兩個數據卷和一個日志卷的格式,提供高可用服務。
4 系統設計與實現
4.1 系統邏輯架構設計
分布式彈性塊存儲系統按照云存儲的分層架構進行設計,自底向上分為4層:物理設備層、虛擬化層、存儲管理層、應用層。
(1)物理設備層。包括各種異構的存儲設備及其它一些基礎設施。通過虛擬化技術,將異構的存儲設備整合到彈性虛擬化存儲池中,為上層提供統一的存儲服務。
(2)虛擬化層。所有數據均衡地分布到不同的存儲節點上,沒有單節點故障、支持多副本技術和自動修復功能,提高了數據的可靠性。
(3)存儲管理層。存儲管理層主要包括監控管理、接口管理以及集群管理。監控管理主要包括異構設備數量、分布式存儲集群健康狀態、虛擬化存儲池使用情況等;集群管理實現的是對存儲集群的管理,可以橫向加入存儲設備,實現虛擬存儲池的擴容。
(4)應用層。用于控制管理和分配分布式彈性塊存儲系統的管理平臺,通過監控虛擬機磁盤使用情況,動態分配和刪除虛擬機存儲資源,實現虛擬機存儲資源的彈性伸縮。
4.2 系統開發與實現
4.2.1 物理設備層Ceph分布式系統部署
本文基于Ceph搭建分布式彈性塊存儲系統,實驗環境由5臺虛擬機組成(可以根據實際的任務需求彈性擴展存儲設備),主機名分別為:Ceph{1,2,3,4},操作系統是ubuntu14.04。其中Ceph1機用來安裝ceph-deploy,部署Ceph分布式存儲系統;Ceph2用作msd(元數據服務器)和mon(監控節點);Ceph{3,4}用作osd(存儲節點)。
部署過程如下:①在deploy節點創建集群目錄;②每個節點都安裝ntp服務,設置deploy節點為ntp服務器;③配置每個節點,允許deploy節點可以無密碼登錄;④創建監控集群;⑤在所有節點上安裝Ceph;⑥部署osd節點,查看Ceph集群狀態;⑦添加mds。
4.2.2 存儲管理層部署Inkscope監控平臺
Inkscope是一款輕量級的Ceph監控管理平臺,用mongodb來進行數據信息的存儲。Inkscope由inkscopeViz、inkscopeCtrl、inkscopeProbe組成。InkscopeViz為用戶提供可視化的監控平臺;inkscopeCtrl負責監控cephrestapi;inkscopeProbe負責收集集群節點信息,分為cephProbe和sysProbe。Ceph集群的狀態是健康的,彈性塊存儲池總容量是60G,已用容量4.7G,可用容量55.3G。
4.3 應用層設計
對需要添加附加存儲的虛擬機安裝Ceph客戶端,然后將虛擬機添加到Ceph集群。在客戶端創建塊設備鏡像,將鏡像映射到塊設備,格式化塊設備,掛載到客戶端,以實現虛擬附加存儲的彈性伸縮。
4.4系統測試
針對搭建好的分布式彈性塊存儲系統,可以從虛擬存儲池的動態擴容、虛擬機附件存儲彈性伸縮兩方面進行測試。本文所有測試在均在Vmware Workstations創建的虛擬機上進行。
5 結語
本文結合Ceph分布式系統,設計并實現了分布式彈性塊存儲系統。通過實驗,實現了虛擬塊存儲資源池的動態擴容,并劃分塊存儲資源作為虛擬機的附加存儲,實現了虛擬機存儲資源的彈性伸縮。然而,本文提出的設計方法也存在一些不足,如未指定虛擬機需要添加附加存儲的指標,實驗只是通過手動添加。在后續工作中,將會在應用層設計監控平臺實現對虛擬機存儲資源的監控,動態地添加或刪除塊存儲資源,真正實現虛擬機附加存儲的彈性伸縮。
參考文獻
[1]張瑞云.計算及云儲存生態系統研究[J].電子設計工程,2013,21(8).
[2]譚鵬許.云計算環境下安全分布式存儲架構與容錯技術研究[D].解放軍信息工程大學,2013.
[3]程靚坤.基于Ceph的云存儲系統的設計與實現[D].廣州:中山大學,2014.