openstack學習筆記3

3.5. Cinder塊存儲
存儲是虛擬機不可缺少的關鍵設備,openstack參考了亞馬遜的EBS,爲虛擬機提供持久化的塊設備存儲。最常見的示例是爲虛擬機增加一個新的硬盤,這個硬盤就是塊設備,如果虛擬機是linux操作系統,那麼會將硬盤識別爲sdb,sdc;如果是windows,則會識別爲新的硬盤,此時需要格式化:
在學習openstack彈性雲存儲之前,先分析常見的存儲概念,一般來說,從網絡結構上劃分,可以將存儲劃分爲直連式存儲(DAS),網絡接入存儲(NAS)和存儲區域網絡(SAN)。
直連式存儲(dirct attached storage)DAS:我們常見的物理機包含硬盤,通過主機的服務總線連接提供存儲服務。DAS這種直連方式能夠解決單臺服務器的存儲空間擴展,高性能傳輸需求,以塊設備的方式提供存儲服務,例如我們常看到的/dev/sda,/dev/sdb
網絡接入存儲(network attached storage )NAS:是獨立於物理主機,單獨爲網絡數據存儲而開發的一種文件服務器。NAS服務器集中連接了所有的網絡數據存儲設備(如各種磁盤陣列,磁帶,光盤機等),存儲容量可以較好的得到擴展,同時由於這種網絡存儲方式是NAS服務器獨立承擔的,所以對原來的網絡服務器性能基本上沒什麼影響,可以確保整個網絡性能不受影響。NAS提供了一個簡單,高相價比,高可用性,高擴展性和低成本的網絡存儲解決方案。NAS與DAS最大的區別就是NAS採用了文件系統方式,而DAS採用的是塊設備,一般需要格式化成EXT3或者NTF等文件系統後再使用。NAS存儲一般採用NFS協議的方式,實現不同主機之間文件共享。
存儲區域網絡(storage area network )SAN:不是把所有的存儲設備集中安裝在一個專門的NAS服務器中,而是將存儲設備通過交換機連接起來,形成存儲網絡,根據網絡連接的協議不同又分爲基於以太網TCP/IP的ISCSI協議的IP-SAN,基於Fibre Channel技術的FC-SAN。兩者不同的本質不是連接介質的不同,而是採用的網絡傳輸協議不同。IP-SAN也可以採用光纖連接。在IP-SAN中,千兆-萬兆以太網交換機代替了昂貴且只有FC-SAN專用的光纖交換機;客戶端的initiator或者iscsi卡代替了價格較高的主機HBA卡,具有ISCSI接口的高性價比的存儲設備代替了光纖磁盤陣列。
就大規模的生產環境而言,一般都採用SAN。對於Nova而言,從創建之初就明確了“基於標準化的硬件設施”實現雲計算服務。Nova採用了iscsi協議的存儲方式,基於標準化的物理主機存儲節點實現存儲擴容。而Cinder就是Nova-Volume需求的擴展,是從Nova中分離出來的一個集中式的塊存儲。
如圖所示:計算節點和存儲節點是分離的,存儲節點物理機上的存儲設備通過存儲網絡爲塊存儲設備提供提供服務
這裏寫圖片描述
Nova-Volume的物理部署
這裏寫圖片描述
那我們先來看一下早期Nova-Volume的存儲設計的特點:
 計算節點物理機提供計算能力,重點是提供CPU,內存,在配置上,它對存儲要求不高,僅需單個硬盤或固態用於安裝Hypervisor。
 存儲節點物理服務器採用低頻CPU,內存,多硬盤的機架式服務器,比如可掛載多個硬盤的4U節點服務器。
 無需採購昂貴的磁盤陣列及搭配FC交換機,通過普通機架服務器即可實現存儲服務,並具備高可擴展性。
nova-volume存儲適配有多種方式,有基於ISCSI的IP-SAN方式,集羣文件系統Ceph方式。
在Folsom版本後引入了Cinder項目,目前Cinder是openstack中的獨立的項目,實現原理和nova-volume類似,不同的是Cinder實現起來更復雜,但支持的存儲適配器更多。
Cinder與openstack其他模塊的設計理念一致,一切皆API,從實現角度來說與Nova類似,包括API,調度(scheduler)和存儲適配(Cinder-Volume)
從下面的這張圖中可以看出來,nova-compute虛擬機管理開通雲硬盤時,可以使用原有的nova-volume自帶的api,訪問nova-volume提供的雲硬盤管理服務。在F版之後提供了Cinder的api,訪問更多Cinder提供的彈性雲存儲能力。
Cinder包括API,Scheduler和存儲適配(Cinder-Volume) 3個服務,其中Cinder-Volume可以部署到多個節點上。
調度器cinder-scheduler與nova-scheduler類似,根據服務尋找合適的存儲服務器cinder-volume,發送消息至cinder-volume節點,由cinder-volume提供彈性雲存儲服務。
這裏寫圖片描述
cinder-volume是存儲適配,爲什麼說是適配,因爲在實際生產環境中,有很多的存儲服務廠商,包括IBM,HP,NetApp;有各種存儲訪問協議,如ISCSI,NFS等。那麼如何在生產環境中使用這些存儲廠商提供的存儲設備?這就需要進行適配。
每個Cinder-Volume可以對應一個或者是一類存儲設備,比如多個NFS的存儲可以用一個Cinder-Volume來管理,如下圖所示:
這裏寫圖片描述
根據目前看來,openstack在Folsom版之後的版本提供的存儲適配Driver已經能支持主流的廠商,且基本夠用。
所有的存儲設備中使用的連接協議基本都是ISCSI和NFS兩種,從計算節點使用的角度來講,他們都差不多,但是整體過程有差異:
 在存儲設備上劃分存儲單元,創建存儲,這一點不同廠家實現的機制都不同,接口也沒有標準化。F版後,很多廠家增加了適配驅動支持。
 掛載至計算節點上並讓虛擬機可以識別,在這一點上兩者大同小異,因爲客戶端(計算節點)都是基於ISCSI或者是NFS協議連接的。
ISCSI適配:
下面以剖析一下比較通用的機架式服務器ISCSI適配和NFS適配:
ISCSI適配:
nova-volume和cinder支持將其所在的機架式服務器上的硬盤作爲存儲資源,通過ISCSI的方式提供給虛擬機使用。該方案的特點是性價比高,機架式服務器上的硬盤資源成本相對於專業的磁盤陣列來說很有優勢。例如R510上滿配上硬盤16TB只需5萬元費用,相比磁盤陣列幾十萬的費用而言價格相對低廉,且性能方面也不差,在應用系統對性能和穩定性不是很苛刻的情況下,非常實用。
ISCSI是(internet smal computer system interface)的縮寫,它是一種基於因特網及SCSI-3協議下的存儲技術,有IETF提出,並於2003年2月11日成爲正式的標準。
ISCSI的目的是用IP協議將存儲設備連接在一起,通過在IP網絡上傳送SCSI命令和數據,ISCSI推動了數據在網絡之間的傳遞,同時也促進了數據的遠距離管理。由於其出色的數據傳輸能力,ISCSI被認爲是促進存儲區域網(SAN)市場快速發展的關鍵因素之一。因爲IP網絡的廣泛應用,ISCSI能夠在LAN\WAN甚至在internet上進行數據傳送,使得數據的存儲不再受地域的限制。ISCSI技術的核心是TCP/IP網絡上傳輸SCSI協議,即使用TCP/IP報文和ISCSI報文封裝SCSI報文,使得SCSI命令和數據可以在普通以太網絡上進行傳輸。
這裏寫圖片描述
目前ISCSI的後端存儲架構一般分爲三種:
 控制器架構:它的所有控制、轉換節點都是由硬件芯片或嵌入式設備組成的,這些組成部分由存儲廠商更具SCSI協議進行專門設計和實現。由於各個芯片工作的單一性,使得這種架構的整體數據處理性能很高,而且運行更加穩定。
PC架構。它由一臺性能高效、穩定的普通計算機(x86服務器),通過ISCSI Target等軟件實現ISCSI功能。
PC+TOE架構:這種架構是在PC架構上加入TCP減負引擎網卡,把原本由CPU包裝、拆解ISCSI數據到TCP協議包的操作,轉由網卡中的專用芯片來完成,從而減輕CPU的壓力,提高整體數據處理性能,這個方式需要專門的網卡支持。
那麼openstack如何提供基於機架式服務器方式的軟件ISCSI服務?
 存儲節點部署上cinder-volume後,作爲存儲target提供塊存儲服務。通過物理卷PV,卷組VG,邏輯卷LV的卷管理方式分配存儲空間,基於邏輯卷LV創建邏輯單元(LUN).
 計算節點nova-compute作爲存儲客戶端Initiator,查找存儲節點上的邏輯存儲單元LUN,並掛載至本機,識別爲塊設備,並分派塊設備給虛擬機。
這裏寫圖片描述
存儲具體實現機制如圖:
這裏寫圖片描述
nova存儲實現機制包括以下幾個關鍵環節:
 nova-api調用nova-compute主機接口run_instance。
 nova-compute調用存儲接口volume-api的create方法,創建存儲。
 volume-api存儲接口將存儲信息通過調度方式發送至調度引擎scheduler。
 調度引擎scheduler根據一定的算法,選擇具體一個存儲節點,發指令至該節點cinder-volume
 cinder-volume接收到創建雲硬盤(create_volume)指令值,創建邏輯卷LV,併發布邏輯單元(LUN)
 nova-compute接收到雲硬盤創建成功的反饋後,調用其虛擬化實現,如Libvirt Driver的SCSI實現,實現ISCSI initiator連接至對應的存儲邏輯單元LUN,將該塊設備分配給虛擬機。

NFS適配:
NFS是Network File System的簡寫,即網絡文件系統。NAS網絡連接式存儲都是採用NFS協議對外提供服務的,與ISCSI類的直接塊存儲不同的是:NFS是文件系統,可以理解爲文件夾,NAS最大的特性就是偏重文件共享,客戶終端機連接上NAS服務器後,NAS文件和目錄在所有客戶端上可見,並且可以訪問,如圖所示:
NAS存儲與ISCSI的SAN存儲相比,具有簡單靈活,價格適中等特性,在中小企業應用較多。
Cinder對NAS提供標準的NFS協議支持。
這裏寫圖片描述
Cinder-volume連接多個NFS服務器,在計算節點上掛載對應的NFS文件目錄,例如NAS1服務器上的NAS1:/data/12342342目錄掛載到具體計算節點上,計算節點就能夠識別該文件系統中所有的文件。
創建雲硬盤時,其實就是通過命令在NFS共享文件夾NAS1:/data/12342342/創建一個文件,如10GB文件,通過虛擬化技術添加到虛擬機中,虛擬機識別爲一個塊設備,這樣塊設備存儲的創建和掛在基本完成。
這裏寫圖片描述
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章