三分鐘帶你入門瞭解openstack的Nova專案
三分鐘帶你入門瞭解openstack的Nova專案
前言
一:Nova專案
1.1:什麼是Nova?有什麼作用?
- Nova是負責提供計算資源的模組,也是OpenStack中的核心模組。OpenStack使用計算服務來託管和管理雲端計算系統
- 主要功能是負責虛擬機器例項的生命週期管理、網路管理、儲存卷管理、使用者管理以及其他的相關雲平臺管理功能。
1.2:Nova有哪些重要服務元件?
-
Nova-api服務
- 接收和響應來自終端使用者的計算API請求,對外提供一個與雲基礎設施互動的介面,也是外部可用於管理基礎設施的唯一元件
-
Nova-api-metadata服務
接收來自虛擬機器傳送的後設資料請求,Nova-api-metadata服務一般在安裝Nova-Network服務的多主機模式下使用
-
Nova-Compute服務
一個持續工作的守護程式,通過 Hypervisor的API來建立和銷燬虛擬機器例項
-
Nova- placement-api服務
- 用於追蹤記錄資源提供者目錄和資源使用情況,這些資源包括計算、儲存以及IP地址池等。
-
Nova-Conductor模組
用於Nova- Compute服務與資料庫之間,避免了由Nova- Compute服務對雲資料庫的直接訪問。它可以橫向擴充套件。但是,不要將它部署在執行Nova- Compute服務的主機節點上
-
Nova- Scheduler服務
- 接收到一個來自佇列的執行虛擬機器例項請求,然後決定在哪臺計算伺服器主機來執行該虛擬機器。通過恰當的排程演算法從可用資源池獲得一個計算服務。Nova- Scheduler服務將根據負載、記憶體、可用域的物理距離、CPU構架等資訊,並執行排程演算法,最終做出排程決策
- 最終OpenStack計算模組Nova中的各個元件是以資料庫和佇列為中心進行通訊的
1.3:Nova的後設資料工作機制是怎樣的?
工作機制
-
1、例項通過專案網路將後設資料請求傳送到neutron-ns-metadata-proxy,此時在請求中新增router-id和network-id
-
2、neutron-ns-metadata-proxy通過unix domain socket將請求傳送給neutron-metadata-agent。此時根據請求中的router-id、network-id和IP,獲取埠資訊,從而獲得instance-id和project-id(tenant-id)並加入到請求中
-
3、Neutron-metadata-agent通過內部管理網路將請求轉發給Nova-api-metadata。此時利用instance-id和project-id(tenant-id)獲取例項的後設資料
-
4、將獲取的後設資料原路返回給發出請求的例項
-
虛擬機器例項訪問後設資料服務
計算節點為虛擬機器例項使用後設資料服務來獲取指定例項的後設資料
後設資料和使用者資料都可以由例項訪問。只有頂–user-data選項和包含使用者內容的檔案被傳入到openstack server create命令,或者在圖形介面通過配置驅動器注入使用者資料時,才回出現像user_data這樣的使用者資料檔案,不過user_data不是JSON格式
1.4:VM例項化流程
- 1、首先使用者執行Nova client提供的用於建立虛擬機器的命令
- 2、Nova-api服務監聽到來自Nova client的HTTP請求,並將這些請求轉換為AMQP訊息之後加入訊息列隊
- 3、通過訊息佇列呼叫Nova-conductor服務
- 4、nova-conductor服務從訊息列隊中接收到虛擬機器例項化請求訊息後,進行一些準備工作
- 5、nova-conductor服務通過訊息列隊告訴nova-scheduler服務去選擇一個合適的計算節點來建立虛擬機器,此時nova-scheduler會獲取資料庫的內容
去選擇一個合適的計算節點來建立虛擬機器,此時nova-scheduler會獲取資料庫的內容 - 6、nova-conductor服務從nova-scheduler服務得到了合適的計算節點的資訊後,在通過訊息佇列通知nova-compute服務實現虛擬機器的建立
服務從nova-scheduler服務得到了合適的計算節點的資訊後,在通過訊息佇列通知nova-compute服務實現虛擬機器的建立
相關文章
- 三分鐘帶你入門瞭解openstack的cinder專案
- 三分鐘帶你入門瞭解openstack的keystone專案
- 三分鐘帶你入門瞭解openstack的glance專案
- 三分鐘帶入門瞭解openstack的horizon專案
- 三分鐘,帶你瞭解SSL證書
- 三分鐘帶你瞭解Steam的發展史
- 三分鐘,帶你瞭解EOS新資源模型模型
- 共享WiFi專案如何收益盈利?幾分鐘帶你瞭解這個藍海專案!WiFi
- 10分鐘帶你瞭解NLA
- 三分鐘瞭解架構的起源架構
- 三分鐘帶你理解JS原型JS原型
- 三分鐘帶你瞭解網路安全主動防禦與被動防禦!
- 三分鐘爬蟲入門爬蟲
- 5分鐘帶你瞭解Linux awk命令!Linux
- 三分鐘深入瞭解Spring底層Spring
- 三分鐘瞭解Go語言的前世今生Go
- 5分鐘帶你瞭解RabbitMQ的(普通/映象)叢集MQ
- 共享WiFi專案盈利如何?一文帶你瞭解WiFi
- OpenStack-雲端計算,虛擬化技術,初步認識OpenStack,瞭解OpenStack的結構部署以及OpenStack核心專案
- 漫畫:三分鐘瞭解敏捷開發敏捷
- DevOps是什麼?5分鐘帶你瞭解DevOpsdev
- 3分鐘帶你瞭解負載均衡服務負載
- 五分鐘帶你瞭解Django框架設計思想!Django框架
- 5分鐘帶你入門apicloud,開發appAPICloudAPP
- 三分鐘瞭解弧幕投影的製作原理
- 10分鐘帶你瞭解 Linux 系統中的 Top 命令Linux
- 1分鐘帶你瞭解var let 和 const 的區別
- 一分鐘帶你瞭解Python私有變數的用法!Python變數
- 手摸手帶你入門ionic3(三):新建專案
- 帶您探究雲端儲存的奧祕,三分鐘幫您快速瞭解OSS
- 三分鐘帶你解析Hive中的json字串(詳細!)HiveJSON字串
- 三分鐘,快速瞭解區塊鏈技術!區塊鏈
- 十分鐘,帶你瞭解 Vue3 的新寫法Vue
- 5分鐘帶你快速入門和了解 OAM Kubernetes
- Android 3分鐘帶你入門開發測試Android
- 10分鐘瞭解Android專案構建流程Android
- 帶你瞭解webpackWeb
- 三分鐘讓你快速學會BI專案的評估與診斷