閱讀56 返回首頁    go 阿裏雲 go 技術社區[雲棲]


存儲那些事兒(三):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

  上一篇:go problem中Project'XX'is missing required library:'[路徑]\XXX.jar'解決方法
  下一篇:go Sql Server 取出多個字段列中的最大值和最小值