在轉(zhuǎn)向大局限網(wǎng)絡(luò)運算中,要害技能如虛擬化,向x86系統(tǒng)遷移和回收快速的DevOps要領(lǐng)已經(jīng)改變了IT的生態(tài)系統(tǒng)。跟著存儲卷在IT系統(tǒng)中的陳設(shè)量不絕增加,下一個挑戰(zhàn)將會是利用最有效的方法來籌劃和打點計較、存儲和網(wǎng)絡(luò)資源以及向眾所周知的私有云提供處事。
OPENSTACK內(nèi)部
OpenStack是一個開源的云平臺項目,是由NASA提倡,Rackspace在2010作為一個項目舉辦主導(dǎo)。源代碼是由OpenStack基金會打點并在準許Apache許可下宣布,Apache許可答允自由分發(fā)和修改,但需要保存原有的版權(quán)聲明。OpenStack作為一個大局限陳設(shè)應(yīng)用平臺而深受接待;它被很多處事商用來宣布公有云平臺,一些大型組織用它來搭建私有云基本設(shè)施。需要明晰的是,OpenStack合用于大局限陳設(shè)的應(yīng)用,而對付像微軟Exchange和oracle數(shù)據(jù)庫等傳統(tǒng)的單一應(yīng)用措施則是不太合用的。
OpenStack軟件包括很多差異的模塊,對應(yīng)云情況的各個方面:
Swift:工具存儲
Cinder:塊存儲
Nova:虛擬機(VMs)/計較
Neutron:網(wǎng)絡(luò)
Horizon:儀表盤
Keystone:身份識別處事
Glance:鏡像處事
Ceilometer:遙感偵測
Heat:業(yè)務(wù)流程
Trove:數(shù)據(jù)庫即處事(DBaaS)
每個OpenStack的代碼宣布(今朝是第九個版本,冰室(Icehouse)),新項目被建設(shè)可能來自現(xiàn)有的項目或作為新項目啟動,包羅針對裸設(shè)備供給的Ironic和針對彈性的MapReduce的Sahara,都是基于OpenStack的Juno宣布。
數(shù)據(jù)處事有個中五個組件來提供。Swift是OpenStack基本設(shè)施宣布的工具存儲的子項目。塊存儲由Cinder提供,它是基于尺度的IP存儲協(xié)議,譬喻iSCSI和NFS。Glance提供VM鏡像的存儲庫,它利用基于文件系統(tǒng)的底層存儲可能Swift。Trove提供數(shù)據(jù)庫即處事(DBaaS)的本領(lǐng),而Sahara提供彈性的MapReduce本領(lǐng),也被稱為Hadoop集群存儲。在本文中,我們將重點放在Cinder和Swift這兩個主要的存儲平臺。
塊存儲CINDER
塊存儲是虛擬化基本架構(gòu)的重要構(gòu)成部門,是存儲虛擬機映像和利用的虛擬機數(shù)據(jù)的基本。Cinder在2012 Folsom版本的OpenStack宣布中被先容,而在Cinder呈現(xiàn)之前,虛擬機是短暫存在的,它們的存儲只在虛擬機生命周期內(nèi)存在。Cinder提供塊存儲打點的支持。這是到了計較(Nova)層利用iSCSI,光纖通道或NFS協(xié)議,以及一些提供后端毗連的專有協(xié)議。
Cinder接口提供了一些尺度成果,答允建設(shè)和毗連塊設(shè)備到虛擬機,譬喻建設(shè)卷、刪除卷和附加卷。更多高級的成果支持卷擴展,快照和虛擬機鏡像克隆。
很多廠商在他們現(xiàn)有硬件平臺上提供Cinder塊存儲的支持,它是通過利用Cinder的驅(qū)動將Cinder的API轉(zhuǎn)換成廠商特定硬件的呼吁實現(xiàn)的。提供Cinder支持的廠商包羅EMC(VMAX和VNX),惠普(3PAR StoreServ和StoreVirthul),HDS,IBM(所有存儲平臺),NetApp,Pure Storage和SolidFire。也有一些軟件界說的方案提供支持,像EMC的ScaleIO和Nexenta。
另外,很多軟件存儲平臺,包羅開源平臺,也能用來提供Cinder支持;這個中包羅RedHat的Ceph和GlusterFS。Ceph已經(jīng)集成到Linux內(nèi)核中,使它成為OpenStack陳設(shè)塊存儲最便捷的方法。
在2013宣布的第七個OpenStack版本(Grizzly)支持NFS,固然“嘗試”版本在Folsom這一代中就已經(jīng)支持。通過NFS,虛擬機的卷被看做是一個獨立的文件,這雷同于VMware ESXi和微軟Hyper-V的VHDs的實現(xiàn)方法。封裝的虛擬機卷作為文件答允諸如快照和克隆的高級成果。
存儲特性跟著新版本的宣布被引入到Cinder中,隨后獲得了各個存儲廠商的支持。一個全面的廠商平臺和成果列表可以或許在維基百科的OpenStack塊存儲驅(qū)動頁中被發(fā)明。
SWIFT支持工具存儲
OpenStack內(nèi)部的工具存儲是通過Swift來交付的,它實現(xiàn)了通過漫衍在OpenStack集群節(jié)點來實現(xiàn)橫向擴展的工具存儲。工具存儲的數(shù)據(jù)存儲為二進制工具,沒有詳細的參考名目。工具從Swift中存儲和取出,會利用簡樸的呼吁如PUT或GET,這些呼吁是基于HTTP(Web)協(xié)議,也稱之為RESTful API。
Swift架構(gòu)分為多個邏輯處事,包羅工具處事器,署理處事器,容器處事器和客戶處事器,放在一起歸類為一個環(huán)。數(shù)據(jù)存儲在工具處事器上,其他的組件用來存儲元數(shù)據(jù),元數(shù)據(jù)用來跟蹤每個存儲工具和打點數(shù)據(jù)的會見。
Swift中的數(shù)據(jù)彈性的打點是利用分區(qū)(zone)的觀念。一個分區(qū)代表環(huán)的一個子組件,它用來提供數(shù)據(jù)的一份拷貝,多分區(qū)用來存儲冗余數(shù)據(jù)拷貝(默認至少三個)。Swift可以利用一塊磁盤或一臺處事器來代表一個分區(qū),也可以包羅分手差異地理位置數(shù)據(jù)中心之間的數(shù)據(jù)。
同很多工具存儲一樣,Swift利用最終一致性的想法來實現(xiàn)數(shù)據(jù)的規(guī)復(fù)。這意味著在一個OpenStack集群內(nèi),,數(shù)據(jù)復(fù)制不是以同步模式來實現(xiàn)的,而利用塊存儲則可以實現(xiàn)。相反,數(shù)據(jù)復(fù)制是在分區(qū)之間以靠山歷程來實現(xiàn)的,所以假如系統(tǒng)在高負荷環(huán)境下,它大概被暫停或失敗。