56
技術社區[雲棲]
存儲那些事兒(三):OpenStack的塊存儲Cinder與商業存儲的融合
OpenStack是一個美國國家航空航天局和Rackspace合作研發的雲端運算軟件,以Apache許可證授權,並且是一個自由軟件和開放源代碼項目。OpenStack是IaaS(基礎設施即服務)軟件,讓任何人都可以自行建立和提供雲端運算服務。此外,OpenStack也用作建立防火牆內的“私有雲”(Private Cloud),提供機構或企業內各部門共享資源。
Cinder提供了OpenStack的Block Service(塊服務)。類似於 Amazon 的 EBS 塊存儲服務,OpenStack 中的實例是不能持久化的,需要掛載 volume,在 volume 中實現持久化。Cinder 就是提供對 volume 實際需要的存儲塊單元的實現管理功能。這個project是從Nova裏分出來的。它的前身是Nova-Volume。雖然Nova變得越來越複雜,而塊服務又那麼重要,在Folsom版本中,Cinder就從Nova中分離出來了。因為可以和商業存儲相結合,所以存儲廠商都很積極。
下圖是OpenStack的內部架構:
下圖是Cinder的架構:
要說的一點是其實它的Component之間也是通過AMPQ進行通信的。如果想了解更多可以移步我的專欄:RabbitMQ從入門到精通
這個設計還是比較簡單的(當然Cinder現在的功能還是比較簡單的,畢竟項目開始不久):
cinder-api:負責接受和處理 Rest 請求,並將請求放入 RabbitMQ隊列。
cinder-scheduler: 處理任務隊列的任務,並根據預定策略選擇合適的 cinder-volume 節點來執行任務。目前版本的 cinder 僅僅提供了一個 Simple Scheduler, 該調度器選擇卷數量最少的一個活躍節點來創建卷。
cinder-volume: 該服務運行在存儲節點上,管理存儲空間。每個存儲節點都有一個 Volume Service,若幹個這樣的存儲節點聯合起來可以構成一個存儲資源池。為了支持不同類型和型號的存儲,當前版本的 Cinder 為 Volume Service 添加如下 drivers。當然在 Cinder 的 blueprints 當中還有一些其它的 drivers,以後的版本可能會添加進來。
- Coraid (AoE)
- EMC VMAX/VNX (iSCSI)
- GlusterFS (GlusterFS)
- HP 3PAR (iSCSI/FC)
- HP LeftHand (iSCSI)
- Huawei T-series/Dorado (iSCSI)
- IBM Storwize family/SVC (iSCSI/FC)
- IBM XIV (iSCSI), LVM (iSCSI)
- NetApp (iSCSI/NFS)
- Nexenta (iSCSI)
- NFS (NFS)
- RBD (Ceph)
- Scality SOFS (scality)
- Sheepdog (sheepdog)
- Solaris (iSCSI)
- SolidFire (iSCSI)
- Windows Server 2012 (iSCSI)
- Zadara (iSCSI)
在Havana Release中新增加的Driver如下:
- IBM GPFS
- IBM zVM
- EMC Isilon (iSCSI)
- Local disk partitions
- Hitachi HUS (DF850) (iSCSI)
- Dell Equalogic
- Violin Memory v6000 (iSCSI)
接下來看一下在OpenStack中的數據控製流圖:
唯一一點要說明的是iSCSI隻是一個實例,支持的Protocol還有FC, NFC等。
下麵我們通過SMIS來看一下EMC的設備是如何整合到OpenStack中去的:
如果深入了解一下SMIS是如何實現存儲的管理的,請移步我之前的一篇文章: 存儲那些事兒(一):異構虛擬化一種實現SMIS
如果疑問請留言討論。
尊重原創,轉載請注明出處 anzhsoft: https://blog.csdn.net/anzhsoft/article/details/20472033
參考資料:
1. https://wiki.openstack.org/w/images/3/3b/Cinder-grizzly-deep-dive-pub.pdf
2. https://wiki.openstack.org/wiki/Cinder
3. https://www.ibm.com/developerworks/cn/cloud/library/1402_chenhy_openstackstorage/
最後更新:2017-04-03 12:55:24
上一篇:
problem中Project'XX'is missing required library:'[路徑]\XXX.jar'解決方法
下一篇:
Sql Server 取出多個字段列中的最大值和最小值
存儲過程-日期遞增插入日期範圍內的假數據(哥自己原創寫了2小時)
取出視頻中有移動物體的幀
C# 二進製,十進製,十六進製 互轉
如何準備Joomla3.8?
Android TextView中文字通過SpannableString來設置超鏈接、顏色、字體等屬性
tomcat:一台機器上同時啟動兩個tomcat的注意點
雲上Docker的Spring Cloud微服務應用實踐分享
tomcat報錯INFO: Maximum number of threads (200) created for connector with address null and port 8080
【理想流】不要做虛情假意的管理 .
如何結合SEO製作一個優秀的響應式網站