日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

理解 Cinder 架构 - 每天5分钟玩转 OpenStack(45)

發(fā)布時間:2025/6/15 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 理解 Cinder 架构 - 每天5分钟玩转 OpenStack(45) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

從本節(jié)開始我們學習 OpenStack 的 Block Storage Service,Cinder

理解 Block Storage

操作系統(tǒng)獲得存儲空間的方式一般有兩種:

  • 通過某種協(xié)議(SAS,SCSI,SAN,iSCSI 等)掛接裸硬盤,然后分區(qū)、格式化、創(chuàng)建文件系統(tǒng);或者直接使用裸硬盤存儲數(shù)據(jù)(數(shù)據(jù)庫)

  • 通過 NFS、CIFS 等 協(xié)議,mount 遠程的文件系統(tǒng)

  • 第一種裸硬盤的方式叫做 Block Storage(塊存儲),每個裸硬盤通常也稱作 Volume(卷) 第二種叫做文件系統(tǒng)存儲。NAS 和 NFS 服務(wù)器,以及各種分布式文件系統(tǒng)提供的都是這種存儲。

    理解 Block Storage Service

    Block Storage Servicet 提供對 volume 從創(chuàng)建到刪除整個生命周期的管理。

    從 instance 的角度看,掛載的每一個 Volume 都是一塊硬盤。

    OpenStack 提供 Block Storage Service 的是 Cinder,其具體功能是:

  • 提供 REST API 使用戶能夠查詢和管理 volume、volume snapshot 以及 volume type

  • 提供 scheduler 調(diào)度 volume 創(chuàng)建請求,合理優(yōu)化存儲資源的分配

  • 通過 driver 架構(gòu)支持多種 back-end(后端)存儲方式,包括 LVM,NFS,Ceph 和其他諸如 EMC、IBM 等商業(yè)存儲產(chǎn)品和方案

  • Cinder 架構(gòu)

    下圖是 cinder 的邏輯架構(gòu)圖

    Cinder 包含如下幾個組件:

    cinder-api
    接收 API 請求,調(diào)用 cinder-volume 執(zhí)行操作。

    cinder-volume
    管理 volume 的服務(wù),與 volume provider 協(xié)調(diào)工作,管理 volume 的生命周期。運行 cinder-volume 服務(wù)的節(jié)點被稱作為存儲節(jié)點。

    cinder-scheduler
    scheduler 通過調(diào)度算法選擇最合適的存儲節(jié)點創(chuàng)建 volume。

    volume provider
    數(shù)據(jù)的存儲設(shè)備,為 volume 提供物理存儲空間。 cinder-volume 支持多種 volume provider,每種 volume provider 通過自己的 driver 與cinder-volume 協(xié)調(diào)工作。

    Message Queue
    Cinder 各個子服務(wù)通過消息隊列實現(xiàn)進程間通信和相互協(xié)作。因為有了消息隊列,子服務(wù)之間實現(xiàn)了解耦,這種松散的結(jié)構(gòu)也是分布式系統(tǒng)的重要特征。

    Database Cinder 有一些數(shù)據(jù)需要存放到數(shù)據(jù)庫中,一般使用 MySQL。數(shù)據(jù)庫是安裝在控制節(jié)點上的,比如在我們的實驗環(huán)境中,可以訪問名稱為“cinder”的數(shù)據(jù)庫。

    物理部署方案

    Cinder 的服務(wù)會部署在兩類節(jié)點上,控制節(jié)點和存儲節(jié)點。 我們來看看控制節(jié)點 devstack-controller 上都運行了哪些 cinder-* 子服務(wù)。

    cinder-api 和 cinder-scheduler 部署在控制節(jié)點上,這個很合理。

    至于 cinder-volume 也在控制節(jié)點上可能有些同學就會迷糊了:cinder-volume 不是應(yīng)該部署在存儲節(jié)點上嗎?

    要回答這個問題,首先要搞清楚一個事實: OpenStack 是分布式系統(tǒng),其每個子服務(wù)都可以部署在任何地方,只要網(wǎng)絡(luò)能夠連通。

    無論是哪個節(jié)點,只要上面運行了 cinder-volume,它就是一個存儲節(jié)點,當然,該節(jié)點上也可以運行其他 OpenStack服務(wù)。

    cinder-volume 是一頂存儲節(jié)點帽子,cinder-api 是一頂控制節(jié)點帽子。在我們的環(huán)境中,devstack-controller 同時戴上了這兩頂帽子,所以它既是控制節(jié)點,又是存儲節(jié)點。當然,我們也可以用一個專門的節(jié)點來運行 cinder-volume。

    這再一次展示了 OpenStack 分布式架構(gòu)部署上的靈活性: 可以將所有服務(wù)都放在一臺物理機上,用作一個 All-in-One 的測試環(huán)境;而在生產(chǎn)環(huán)境中可以將服務(wù)部署在多臺物理機上,獲得更好的性能和高可用。

    RabbitMQ 和 MySQL 通常是放在控制節(jié)點上的。

    另外,也可以用 cinder service list 查看 cinder-* 子服務(wù)都分布在哪些節(jié)點上

    還有一個問題:volume provider 放在那里?

    一般來講,volume provider 是獨立的。cinder-volume 使用 driver 與 volume provider 通信并協(xié)調(diào)工作。所以只需要將 driver 與 cinder-volume 放到一起就可以了。在 cinder-volume 的源代碼目錄下有很多 driver,支持不同的 volume provider。

    后面我們會以 LVM 和 NFS 這兩種 volume provider 為例討論 cinder-volume 的使用,其他 volume provider 可以查看 OpenStack 的 configuration 文檔。

    下一節(jié)我們將討論 Cinder 的這些組件如何協(xié)調(diào)工作。


    轉(zhuǎn)載于:https://blog.51cto.com/cloudman/1787719

    總結(jié)

    以上是生活随笔為你收集整理的理解 Cinder 架构 - 每天5分钟玩转 OpenStack(45)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。