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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

OpenStack(四)——Nova组件

發(fā)布時間:2024/2/28 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OpenStack(四)——Nova组件 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

OpenStack(四)——Nova組件

  • 一、Nova計算服務(wù)
  • 二、Nova的架構(gòu)
  • 三、Nova組件介紹
    • 1、API
    • 2、Scheduler
      • ①、Nova調(diào)度器類型
      • ②、調(diào)度器調(diào)度過程
    • 3、Compute
      • ①、主要功能
      • ②、工作過程
    • 4、Conductor
    • 5、PlacementAPI
  • 四、Nova的Cell架構(gòu)
    • 1、單cell架構(gòu)
      • 舉例:創(chuàng)建虛擬機

一、Nova計算服務(wù)

  • 計算服務(wù)是openstack最核心的服務(wù)之一,負責(zé)維護和管理云環(huán)境的計算資源,它在openstack項目中代號是nova。
  • Nova自身并沒有提供任何虛擬化能力,它提供計算服務(wù),使用不同的虛擬化驅(qū)動來與底層支持的Hypervisor(虛擬機管理器)進行交互。所有的計算實例(虛擬服務(wù)器)由Nova進行生命周期的調(diào)度管理(啟動、掛起、停止、刪除等)
  • Nova需要keystone、glance、neutron、cinder和swift等其他服務(wù)的支持,能與這些服務(wù)集成,實現(xiàn)如加密磁盤、裸金屬計算實例等。

二、Nova的架構(gòu)

  • DB:用于數(shù)據(jù)存儲的sql數(shù)據(jù)庫
  • API:用于接收HTTP請求、轉(zhuǎn)換命令、通過消息隊列或HTTP與其他組件通信的nova組件
  • Scheduler:用于決定哪臺計算節(jié)點承載計算實例的nova調(diào)度器
  • Network:管理IP轉(zhuǎn)發(fā)、網(wǎng)橋或虛擬局域網(wǎng)的nova網(wǎng)絡(luò)組件
  • Compute:管理虛擬機管理器與虛擬機支架你通信的nova計算組件
  • Conductor:處理需要協(xié)調(diào)(構(gòu)建虛擬機或調(diào)整虛擬機大小)的請求,或處理對象轉(zhuǎn)換

三、Nova組件介紹

1、API

  • API是客戶訪問nova的http接口,它由nova-api服務(wù)實現(xiàn),nova-api服務(wù)接收和響應(yīng)來自最終用戶的計算api請求。作為openstack對外服務(wù)的最主要接口,nova-api提供了一個集中的可以查詢所有api的端點。
  • 所有對nova的請求都首先由nova-api處理。API提供REST標準調(diào)用服務(wù),便于與第三方系統(tǒng)集成。
  • 最終用戶不會直接改送RESTful API請求,而是通過openstack命令行、dashbord和其他需要跟nova交換的組件來使用這些API。
  • 只要跟虛擬機生命周期相關(guān)的操作,nova-api都可以響應(yīng)
  • Nova-api對接收到的HTTP API請求做以下處理:
    • 檢查客戶端傳入的參數(shù)是否合法有效
    • 調(diào)用nova其他服務(wù)來處理客戶端HTTP請求
    • 格式化nova其他子服務(wù)返回結(jié)果并返回給客戶端
  • Nova-api是外部訪問并使用nova提供的各種服務(wù)的唯一途徑,也是客戶端和nova之間的中間層

2、Scheduler

  • Scheduler可譯為調(diào)度器,由nova-scheduler服務(wù)實現(xiàn),主要解決的是如何選擇在哪個計算節(jié)點上啟動實例的問題。它可以應(yīng)用多種規(guī)則,如果考慮內(nèi)存用率、cpu負載率、cpu構(gòu)架(intel/amd)等多種因素,根據(jù)一定的算法,確定虛擬機實例能夠運行在哪一臺計算服務(wù)器上。Nova-scheduler服務(wù)會從隊列中接收一個虛擬機實例的請求,通過讀取數(shù)據(jù)庫的內(nèi)容,從可用資源池中選擇最合適的計算節(jié)點來創(chuàng)建的虛擬機實例。
  • 創(chuàng)建虛擬機實例時,用戶會提出資源需求,如cpu、內(nèi)存、磁盤各需要多少。Openstack將這些需求定義在實例類型中,用戶只需指定使用哪個實例類型就可以了

①、Nova調(diào)度器類型

  • 隨機調(diào)度器(chance scheduler):從所有正常運行nova-compute服務(wù)的節(jié)點中隨機選擇。
  • 過濾器調(diào)度器(filter scheduler):根據(jù)指定的過濾條件以及權(quán)重選擇最佳的計算節(jié)點。Filter又稱為篩選器
  • 緩存調(diào)度器(caching scheduler):可看作隨機調(diào)度器的一種特殊類型,在隨機調(diào)度的基礎(chǔ)上將主機資源信息緩存在本地內(nèi)存中,然后通過后臺的定時任務(wù)定時從數(shù)據(jù)庫中獲取最新的主機資源信息。

②、調(diào)度器調(diào)度過程

  • 【1】通過指定的過濾器選擇滿足條件的計算節(jié)點,比如內(nèi)存使用率小于50%,可以使用多個過濾器依次進行過濾。
  • 【2】對過濾之后的主機列表進行權(quán)重計算并排序,選擇最他的計算節(jié)點來創(chuàng)建虛擬機實例。

3、Compute

①、主要功能

  • Nova-compute在計算節(jié)點上運行,負責(zé)管理節(jié)點上的實例。通常一個主機運行一個Nova-compute服務(wù),一個實例部署在哪個可用的主機上取決于調(diào)度算法。OpenStack對實例的操作,最后都是提交給Nova-compute來完成。
  • Nova-compute可分為兩類,一類是定向openstack報告計算節(jié)點的狀態(tài),另一類是實現(xiàn)實例生命周期的管理。

簡單來說:
1、負責(zé)執(zhí)行具體的與實例生命周期/管理實例相關(guān)的工作
2、報告節(jié)點狀態(tài)(寫入數(shù)據(jù)庫,保證scheduler讀取數(shù)據(jù)庫,數(shù)據(jù)庫信息的實時性、celimetor,監(jiān)控和管理openstack實例資源并匯入給用戶/openstack本身/運維人員)

②、工作過程

  • 定期向OpenStack報告計算節(jié)點的狀態(tài)
    • 每隔一段時間,nova-compute就會報告當前計算節(jié)點的資源使用情況和nova-compute服務(wù)狀態(tài)。
    • nova-compute是通過Hypervisor的驅(qū)動獲取這些信息的。
  • 實現(xiàn)虛擬機實例生命周期的管理
    • OpenStack對虛擬機實例最主要的操作都是通過nova-compute實現(xiàn)的。
    • 創(chuàng)建、關(guān)閉、重啟、掛起、恢復(fù)、中止、調(diào)整大小、遷移、快照
    • 以實例創(chuàng)建為例來說明nova-compute的實現(xiàn)過程。
      • 為實例準備資源
      • 創(chuàng)建實例的鏡像文件
      • 創(chuàng)建實例的XML定義文件
      • 創(chuàng)建虛擬網(wǎng)絡(luò)并啟動實例

4、Conductor

  • 由nova-conductor模塊實現(xiàn),旨在為數(shù)據(jù)庫的訪問提供一層安全保障。Nova-conductor作為nova-compute服務(wù)與數(shù)據(jù)庫之間交互的中介,避免了直接訪問由nova-compute服務(wù)創(chuàng)建對接數(shù)據(jù)庫。
  • Nova-compute訪問數(shù)據(jù)庫的全部操作都改到novaconductor中,nova-conductor作為對數(shù)據(jù)庫操作的一個代理,而且nova-conductor是部署在控制節(jié)點上的。
  • Nova-conductor有助于提高數(shù)據(jù)庫的訪問性能,nova-compute可以創(chuàng)建多個線程使用遠程過程調(diào)用(RPC)訪問nova-conductor。
  • 在一個大規(guī)模的openstack部署環(huán)境里,管理員可以通過增加nova-conductor的數(shù)量來應(yīng)付日益增長的計算節(jié)點對數(shù)據(jù)庫的訪問量

5、PlacementAPI

  • 以前對資源的管理全部由計算節(jié)點承擔(dān),在統(tǒng)計資源使用情況時,只是簡單的將所有計算節(jié)點的資源情況累加起來,但是系統(tǒng)中還存在外部資源,這些資源由外部系統(tǒng)提供。如ceph、nfs等提供的存儲資源等。面對多種多樣的資源提供者,管理員需要統(tǒng)一的、簡單的管理接口來統(tǒng)計系統(tǒng)中資源使用情況,這個接口就是PlacementAPI。
  • PlacementAPl由nova-placement-api服務(wù)來實現(xiàn),旨在追蹤記錄資源提供者的目錄和資源使用情況。
  • 被消費的資源類型是按類進行跟蹤的。如計算節(jié)點類、共享存儲池類、IP地址類等。

四、Nova的Cell架構(gòu)

  • 當openstack nova集群的規(guī)模變大時,數(shù)據(jù)庫和消息隊列服務(wù)就會出現(xiàn)瓶頸問題。Nova為提高水平擴展及分布式、大規(guī)模的部署能力,同時又不增加數(shù)據(jù)庫和消息中間件的復(fù)雜度,引入了Cell概念。
  • Cell可譯為單元。為支持更大規(guī)模的部署,openstack較大的nova集群分成小的單元,每個單元都有自己的消息隊列和數(shù)據(jù)庫,可以解決規(guī)模增大時引起的瓶頸問題。在Cell中,Keystone、Neutron、Cinder、Glance等資源是共享的。
  • API節(jié)點上的數(shù)據(jù)庫
  • nova_api數(shù)據(jù)庫中存放全局信息,這些全局數(shù)據(jù)表是從nova庫遷過來的,如flavor (實例模型) 、 instance groups (實例組)、quota (配額)
  • nova_cello數(shù)據(jù)庫的模式與nova一樣,主要用途就是當實例調(diào)度失敗時,實例的信息不屬于任何一個Cell,因而存放到nova_cell0數(shù)據(jù)庫中。

1、單cell架構(gòu)

舉例:創(chuàng)建虛擬機

  • Nova-api 接收、響應(yīng)請求
  • 交給conductor處理/協(xié)調(diào)
    • conductor——》scheduler調(diào)度器——》最適合創(chuàng)建虛擬機的節(jié)點
  • 如果scheduler調(diào)度失敗
    • 將調(diào)度失敗的信息,存放在cell0中
    • nova-api會讀取cell0數(shù)據(jù)庫,獲取到失敗的信息/原因,返回給客戶端
  • 如果scheduler調(diào)度成功
    • conductor就會將這個任務(wù)交給cell1處理(rabbitmq-cell接收、響應(yīng))
    • rabbitmq-cell——》conductor-cell——》交給節(jié)點上的compute進行具體創(chuàng)建——》compute匯報給cell1數(shù)據(jù)庫——》響應(yīng)給conductor-cell——》rabbitmq-cell——》nova的conductor
    • nova-conductor接收到cell的返回之后,保存在api數(shù)據(jù)庫中(保存實例創(chuàng)建成功的信息)
    • nova-api組件,會讀取api數(shù)據(jù)庫,返回/響應(yīng)給客戶端

總結(jié)

以上是生活随笔為你收集整理的OpenStack(四)——Nova组件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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