天天看點

存儲那些事兒(三):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的内部架構:

存儲那些事兒(三):OpenStack的塊存儲Cinder與商業存儲的融合

下圖是cinder的架構:

存儲那些事兒(三):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中的資料控制流圖:

存儲那些事兒(三):OpenStack的塊存儲Cinder與商業存儲的融合

     唯一一點要說明的是iscsi隻是一個執行個體,支援的protocol還有fc, nfc等。

     下面我們通過smis來看一下emc的裝置是如何整合到openstack中去的:

存儲那些事兒(三):OpenStack的塊存儲Cinder與商業存儲的融合

    如果深入了解一下smis是如何實作存儲的管理的,請移步我之前的一篇文章:

存儲那些事兒(一):異構虛拟化一種實作smis

    如果疑問請留言讨論。

尊重原創,轉載請注明出處 anzhsoft: http://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. http://www.ibm.com/developerworks/cn/cloud/library/1402_chenhy_openstackstorage/