openstack云計(jì)算cinder架構(gòu)及各組件功能介紹
一 cinder各組件
1、cinder主要組成:
#cinder-api #cinder-scheduler #cinder-volume
2、cinder各組件功能:
Cinder-api
是 cinder 服務(wù)的 endpoint,提供 rest 接口,負(fù)責(zé)處理 client 請求,并將 RPC 請求發(fā)送至 cinder-scheduler 組件。
Cinder-scheduler
負(fù)責(zé) cinder 請求調(diào)度,其核心部分就是 scheduler_driver, 作為 scheduler manager 的 driver,負(fù)責(zé) cinder-volume 具體的調(diào)度處理,發(fā)送 cinder RPC 請求到選擇的 cinder-volume。
Cinder-volume
負(fù)責(zé)具體的 volume 請求處理,由不同后端存儲提供 volume 存儲空間。目前各大存儲廠商已經(jīng)積極地將存儲產(chǎn)品的 driver 貢獻(xiàn)到 cinder 社區(qū)
3、nova與cinder的工作原理類似
nova主要組成:
#nova-api #nova-scheduler #nova-compute #nova-conductor
二 cinder架構(gòu)圖
openstack組件間通信:調(diào)用各組件api提供的rest接口,組件內(nèi)通信:基于rpc(遠(yuǎn)程過程調(diào)用)機(jī)制,而rpc機(jī)制是基于AMQP模型實(shí)現(xiàn)的
從rpc使用的角度出發(fā),nova,neutron,和cinder的流程是相似的,我們以cinder為例闡述rpc機(jī)制
參考鏈接:https://developer.ibm.com/
三 RPC機(jī)制
Openstack 組件內(nèi)部的 RPC(Remote Producer Call)機(jī)制的實(shí)現(xiàn)是基于 AMQP(Advanced Message Queuing Protocol)作為通訊模型,從而滿足組件內(nèi)部的松耦合性。AMQP 是用于異步消息通訊的消息中間件協(xié)議
AMQP 模型有四個(gè)重要的角色:
Exchange
:根據(jù) Routing key 轉(zhuǎn)發(fā)消息到對應(yīng)的 Message Queue 中
Routing key
:用于 Exchange 判斷哪些消息需要發(fā)送對應(yīng)的 Message Queue
Publisher
:消息發(fā)送者,將消息發(fā)送的 Exchange 并指明 Routing Key,以便 Message Queue 可以正確的收到消息
Consumer
:消息接受者,從 Message Queue 獲取消息
消息發(fā)布者 Publisher 將 Message 發(fā)送給 Exchange 并且說明 Routing Key。Exchange 負(fù)責(zé)根據(jù) Message 的 Routing Key 進(jìn)行路由,將 Message 正確地轉(zhuǎn)發(fā)給相應(yīng)的 Message Queue。監(jiān)聽在 Message Queue 上的 Consumer 將會從 Queue 中讀取消息。
Routing Key 是 Exchange 轉(zhuǎn)發(fā)信息的依據(jù),因此每個(gè)消息都有一個(gè) Routing Key 表明可以接受消息的目的地址,而每個(gè) Message Queue 都可以通過將自己想要接收的 Routing Key 告訴 Exchange 進(jìn)行 binding,這樣 Exchange 就可以將消息正確地轉(zhuǎn)發(fā)給相應(yīng)的 Message Queue。
Publisher可以分為4類:
- Direct Publisher發(fā)送點(diǎn)對點(diǎn)的消息;
- Topic Publisher采用“發(fā)布——訂閱”模式發(fā)送消息;
- Fanout Publisher發(fā)送廣播消息的發(fā)送;
- Notify Publisher同Topic Publisher,發(fā)送 Notification 相關(guān)的消息。
Exchange可以分為3類:
- 1.Direct Exchange根據(jù)Routing Key進(jìn)行精確匹配,只有對應(yīng)的 Message Queue 會接受到消息;
- 2.Topic Exchange根據(jù)Routing Key進(jìn)行模式匹配,只要符合模式匹配的Message Queue都會收到消息;
- 3.Fanout Exchange將消息轉(zhuǎn)發(fā)給所有綁定的Message Queue。
AMQP消息模型
RPC 發(fā)送請求
Client 端發(fā)送 RPC 請求由 publisher 發(fā)送消息并聲明消息地址,consumer 接收消息并進(jìn)行消息處理,如果需要消息應(yīng)答則返回處理請求的結(jié)果消息。
OpenStack RPC 模塊提供了 rpc.call,rpc.cast, rpc.fanout_cast 三種 RPC 調(diào)用方法,發(fā)送和接收 RPC 請求。
1.rpc.call 發(fā)送 RPC 請求并返回請求處理結(jié)果,請求處理流程如圖 5 所示,由 Topic Publisher 發(fā)送消息,Topic Exchange 根據(jù)消息地址進(jìn)行消息轉(zhuǎn)發(fā)至對應(yīng)的 Message Queue 中,Topic Consumer 監(jiān)聽 Message Queue,發(fā)現(xiàn)需要處理的消息則進(jìn)行消息處理,并由 Direct Publisher 將請求處理結(jié)果消息,請求發(fā)送方創(chuàng)建 Direct Consumer 監(jiān)聽消息的返回結(jié)果
圖5.RPC.call消息流程
2.rpc.cast 發(fā)送 RPC 請求無返回,請求處理流程如圖 6 所示,與 rpc.call 不同之處在于,不需要請求處理結(jié)果的返回,因此沒有 Direct Publisher 和 Direct Consumer 處理。
圖 6. RPC.cast 消息流程
3.rpc.fanout_cast 用于發(fā)送 RPC 廣播信息無返回結(jié)果
圖 7. RPC.fanout 消息處理
以上就是openstack云計(jì)算cinder架構(gòu)及各組件功能介紹的詳細(xì)內(nèi)容,更多關(guān)于openstack云計(jì)算cinder架構(gòu)組件的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Openstack 創(chuàng)建項(xiàng)目和虛擬機(jī)詳細(xì)介紹
這篇文章主要介紹了Openstack 創(chuàng)建項(xiàng)目和虛擬機(jī)詳細(xì)介紹的相關(guān)資料,這里舉例說明如何實(shí)現(xiàn),圖文教程,需要的朋友可以參考下2016-11-11基于CentOS的OpenStack環(huán)境部署詳細(xì)教程(OpenStack安裝)
這篇文章主要介紹了基于CentOS的OpenStack環(huán)境部署(OpenStack安裝),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08Centos7環(huán)境準(zhǔn)備openstack pike的安裝
本篇文章主要介紹了Centos7環(huán)境準(zhǔn)備openstack pike的安裝,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-03-03OpenStack Mitaka 版本中的 domain 和 admin詳解
這篇文章主要介紹了OpenStack Mitaka 版本中的 domain 和 admin詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-03-03簡單談?wù)凮penStack中的網(wǎng)絡(luò)隔離
這篇文章主要介紹了簡單談?wù)凮penStack中的網(wǎng)絡(luò)隔離的相關(guān)資料,需要的朋友可以參考下2017-03-03OpenStack 創(chuàng)建windows鏡像實(shí)現(xiàn)步驟
這篇文章主要介紹了 OpenStack 創(chuàng)建windows鏡像實(shí)現(xiàn)步驟的相關(guān)資料,需要的朋友可以參考下2016-11-11OpenStack Ceilometer用MongoDB解決占用磁盤空間過大問題
這篇文章主要介紹了OpenStack Ceilometer用MongoDB解決占用磁盤空間過大問題的相關(guān)資料,Ceilometer使用MongoDB作為數(shù)據(jù)庫,不斷進(jìn)行采樣,導(dǎo)致數(shù)據(jù)量膨脹,占用過多的磁盤空間,這里提供解決辦法,需要的朋友可以參考下2016-12-12openstack使用openvswitch實(shí)現(xiàn)vxlan的方法
這篇文章主要介紹了openstack使用openvswitch實(shí)現(xiàn)vxlan的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-03-03