標籤:雲端運算 openstack sheepdog Block Storage 效能最佳化
原文:http://www.hengtianyun.com/download-show-id-101.html
Block Storage,簡單來說就是提供了塊裝置儲存的介面。使用者需要把Block Storage卷附加到虛擬機器(或者裸機)上後才可以與其互動。這些卷都是持久的,它們可以被從運行執行個體上解除或者重新附加而資料保持完整不變。OpenStack 中的執行個體是不能持久化的,需要掛載 volume,在 volume 中實現持久化。Cinder 就是提供對 volume 實際需要的儲存塊單元的實現管理功能。
1.單機Block Storage1.1 LVM
LVM是 Logical Volume Manager(邏輯卷管理)的簡寫,它由Heinz Mauelsha- gen在Linux 2.4核心上實現。LVM將一個或多個硬碟的分區在邏輯上集合,相當於一個大硬碟來使用,當硬碟的空間不夠使用的時候,可以繼續將其它的硬碟的分區加入其中,這樣可以實現磁碟空間的動態管理,相對於普通的磁碟分割有很大的靈活性。
與傳統的磁碟與分區相比,LVM為電腦提供了更高層次的磁碟儲存。它使系統管理員可以更方便的為應用與使用者指派儲存空間。在LVM管理下的儲存卷可以按需要隨時改變大小與移除(可能需對檔案系統工具進行升級)。LVM也允許按使用者組對儲存卷進行管理,允許管理員用更直觀的名稱(如“sales”、 “development”)代替物理磁碟名(如“sda”、“sdb”)來標識儲存卷。
Device-mapper是一種支援邏輯卷管理的通用裝置映射機制,為儲存資源管理的塊裝置驅動提供了一個高度模組化的核心架構。LVM是基於Device-mapper的使用者程式實現。
Device-mapper在核心中它通過一個模組化的Target Driver外掛程式實現對IO請求的過濾或者重新導向工作,當前已經實現的Target Driver外掛程式包括軟Raid、軟加密、邏輯卷條帶、多重路徑、鏡像、快照等。整個 device mapper 機制由兩部分組成–核心空間的 device mapper 驅動、使用者空間的device mapper 庫以及它提供的 dmsetup 工具。核心中主要提供完成這些策略所需要的機制。Device-mapper 使用者空間相關部分主要負責配置具體的策略和控制邏輯,比如邏輯裝置和哪些物理裝置建立映射,怎麼建立這些映射關係等等,而具體過濾和重新導向 IO 請求的工作由核心中相關程式碼完成。
LVM使得檔案系統可以跨多個磁碟,因此大小不會受物理磁碟的限制。可以在系統運行狀態下動態地擴充檔案系統大小。可以增加新磁碟到 LVM 的儲存池中。可以鏡像的方式冗餘重要資料到多個物理磁碟上。還能很方便地匯出整個卷組,並匯入到另外一台機器上。
然而LVM缺點也是明顯的,當卷組中的一個磁碟損壞時,整個卷組都會受影響。僅支援有限個檔案系統類型的減小操作(ext3不支援減少檔案系統大小的操作)。因為加入了額外的操作,儲存效能會受影響。
1.2 SAN
存放區域網路(SAN)是一種高速網路或子網路,提供在電腦與儲存系統之間的資料轉送。存放裝置是指一張或多張用以儲存電腦資料的磁碟裝置。一個 SAN 網路由負責網路連接的通訊結構、負責組織串連的管理層、儲存組件以及電腦系統構成,從而保證資料轉送的安全性和力度。
大部分SAN使用SCSI協議在伺服器和存放裝置之間傳輸和溝通,通過在SCSI之上建立不同鏡像層,可以實現儲存網路的串連。常見的有iSCSI,FCP,Fibre Channel over Ethernet等。
SAN通常需要在專用存放裝置中建立,而iSCSI是基於TCP/IP的SCSI映射,通過iSCSI協議和Linux iSCSI項目我們可以在常見的PC機上建立SAN儲存。
SAN有兩個較大的缺陷:成本和複雜性,特別是在光纖通道中這些缺陷尤其明顯。使用光纖通道的情況下,合理的成本大約是1千兆或者兩千兆大概需要五萬到六萬美金。從另一個角度來看,雖然新推出的基於iSCSI的SAN解決方案大約只需要兩萬到三萬美金,但是其效能卻無法和光纖通道相比較。在價格上的差別主要是由於iSCSI技術使用的是現在已經大量生產的吉位元乙太網路硬體,而光纖通道技術要求特定的價格昂貴的裝置。
2. 分布式Block Storage
在面對極具彈性的儲存需求和效能要求下,單機或者獨立的SAN越來越不能滿足企業的需要。分布式Block Storage可以為任何物理機或者虛擬機器提供持久化的Block Storage裝置,管理塊裝置的建立、刪除和attach/deattach。支援強大的快照功能,快照可以用來恢複或者建立新的塊裝置。分布式儲存系統能夠提供不同IO效能要求的塊裝置。能夠滿足動態擴充的要求。
目前,開源的分布式Block Storage有Ceph,GlusterFS,Sheepdog等。與Ceph相比,最大優勢就是代碼短小好維護和hack的成本很小。Sheepdog也有很多Ceph不支援的特性,比如說Multi-Disk, Cluster-wide Snapshot等。
在文中,日本NTT的研究人員對比了sheepdog,glusterfs以及ceph在各種情況下的讀寫效能,這份測試在今年的5月份的日本openstack大會上公布。在大部分情況下,sheepdog的讀寫速度都比glusterfs以及ceph表現的出色。
3. openstackBlock Storage3.1 儲存架構
3.2 Cinder簡介
Cinder是OpenStack中提供Block Storage服務的API架構。它並沒有實現對塊裝置的管理和實際服務,而是為後端不同的儲存結構提供了統一的介面[2],不同的塊裝置服務廠商在Cinder中實現其驅動支援以與OpenStack進行整合。後端的儲存可以是DAS、NAS、SAN,Object Storage Service或者Distributed File System。Cinder的Block Storage資料完整性、可用性保障是由後端儲存提供的。
【恒天雲技術分享系列10】OpenStackBlock Storage技術