溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Nova 組件詳解 - 每天5分鐘玩轉(zhuǎn) OpenStack(26)

發(fā)布時(shí)間:2020-06-25 12:05:31 來源:網(wǎng)絡(luò) 閱讀:2658 作者:CloudMan6 欄目:數(shù)據(jù)庫

Nova 組件詳解 - 每天5分鐘玩轉(zhuǎn) OpenStack(26)

本節(jié)開始,我們將詳細(xì)講解 Nova 的各個(gè)子服務(wù)。

前面架構(gòu)概覽一節(jié)知道 Nova 有若干 nova-* 的子服務(wù),下面我們將依次學(xué)習(xí)最重要的幾個(gè)。
今天先討論 nova-api 和 nova-conductor。

nova-api

Nova-api 是整個(gè) Nova 組件的門戶,所有對(duì) Nova 的請(qǐng)求都首先由 nova-api 處理。 Nova-api 向外界暴露若干 HTTP REST API 接口。 在 keystone 中我們可以查詢 nova-api 的 endponits。

Nova 組件詳解 - 每天5分鐘玩轉(zhuǎn) OpenStack(26)

客戶端就可以將請(qǐng)求發(fā)送到 endponits 指定的地址,向 nova-api 請(qǐng)求操作。 當(dāng)然,作為最終用戶的我們不會(huì)直接發(fā)送 Rest AP I請(qǐng)求。 OpenStack CLI,Dashboard 和其他需要跟 Nova 交換的組件會(huì)使用這些 API。

Nova-api 對(duì)接收到的 HTTP API 請(qǐng)求會(huì)做如下處理: 1. 檢查客戶端傳人的參數(shù)是否合法有效 2. 調(diào)用 Nova 其他子服務(wù)的處理客戶端 HTTP 請(qǐng)求 3. 格式化 Nova 其他子服務(wù)返回的結(jié)果并返回給客戶端

nova-api 接收哪些請(qǐng)求? 簡(jiǎn)單的說,只要是跟虛擬機(jī)生命周期相關(guān)的操作,nova-api 都可以響應(yīng)。 大部分操作都可以在 Dashboard 上找到。

打開Instance管理界面

Nova 組件詳解 - 每天5分鐘玩轉(zhuǎn) OpenStack(26)

點(diǎn)擊下拉箭頭,列表中就是 nova-api 可執(zhí)行的操作。

Nova 組件詳解 - 每天5分鐘玩轉(zhuǎn) OpenStack(26)

OpenStack 用術(shù)語 “Instacne” 來表示虛擬機(jī),后面我們將統(tǒng)一使用這個(gè)術(shù)語。

nova-conductor

nova-compute 需要獲取和更新數(shù)據(jù)庫中 instance 的信息。 但 nova-compute 并不會(huì)直接訪問數(shù)據(jù)庫,而是通過 nova-conductor 實(shí)現(xiàn)數(shù)據(jù)的訪問。

Nova 組件詳解 - 每天5分鐘玩轉(zhuǎn) OpenStack(26)

這樣做有兩個(gè)顯著好處:

  1. 更高的系統(tǒng)安全性

  2. 更好的系統(tǒng)伸縮性

更高的安全性

在 OpenStack 的早期版本中,nova-compute 可以直接訪問數(shù)據(jù)庫,但這樣存在非常大的安全隱患。 因?yàn)?nova-compute 這個(gè)服務(wù)是部署在計(jì)算節(jié)點(diǎn)上的,為了能夠訪問控制節(jié)點(diǎn)上的數(shù)據(jù)庫,就必須在計(jì)算節(jié)點(diǎn)的 /etc/nova/nova.conf 中配置訪問數(shù)據(jù)庫的連接信息,比如

[database] connection = mysql+pymysql://root:secret@controller/nova?charset=utf8

試想任意一個(gè)計(jì)算節(jié)點(diǎn)被******,都會(huì)導(dǎo)致部署在控制節(jié)點(diǎn)上的數(shù)據(jù)庫面臨極大風(fēng)險(xiǎn)。

為了解決這個(gè)問題,從 G 版本開始,Nova 引入了一個(gè)新服務(wù) nova-conductor,將 nova-compute 訪問數(shù)據(jù)庫的全部操作都放到 nova-conductor 中,而且 nova-conductor 是部署在控制節(jié)點(diǎn)上的。 這樣就避免了 nova-compute 直接訪問數(shù)據(jù)庫,增加了系統(tǒng)的安全性。

更好的伸縮性

nova-conductor 將 nova-compute 與數(shù)據(jù)庫解耦之后還帶來另一個(gè)好處:提高了 nova 的伸縮性。

nova-compute 與 conductor 是通過消息中間件交互的。 這種松散的架構(gòu)允許配置多個(gè) nova-conductor 實(shí)例。 在一個(gè)大規(guī)模的 OpenStack 部署環(huán)境里,管理員可以通過增加 nova-conductor 的數(shù)量來應(yīng)對(duì)日益增長(zhǎng)的計(jì)算節(jié)點(diǎn)對(duì)數(shù)據(jù)庫的訪問。

下一節(jié)我們討論計(jì)算節(jié)點(diǎn)調(diào)度服務(wù) nova-scheduler.


Nova 組件詳解 - 每天5分鐘玩轉(zhuǎn) OpenStack(26)

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI