Learning Openstack part 7 Nova計(jì)算服務(wù)

Nova架構(gòu)

Nova計(jì)算服務(wù)是Openstack的核心服務(wù),Nova的架構(gòu)如下:

Nova-架構(gòu).png

Nova的服務(wù)架構(gòu)比較復(fù)雜,眾多子服務(wù)以后臺(tái)demon的形式運(yùn)行:

  • API

    • nova-api - 接受并響應(yīng)用戶(hù)請(qǐng)求
  • Compute Core

  • nova-scheduler - nova調(diào)度程序,通過(guò)定義過(guò)濾方法篩選哪個(gè)計(jì)算節(jié)點(diǎn)來(lái)運(yùn)行instance。

  • nova-compute - 通過(guò)Hypervisor api來(lái)管理虛擬機(jī)的生命周期

  • Hypervisor - 計(jì)算節(jié)點(diǎn)上運(yùn)行的虛擬機(jī)管理程序,如KVM,Xen,VMware等

  • nova-conductor - 以前版本的計(jì)算節(jié)點(diǎn)是可以直接訪問(wèn)數(shù)據(jù)庫(kù)的,出于安全和伸縮性的考慮,新的版本增加了該組件,計(jì)算節(jié)點(diǎn)的訪問(wèn)數(shù)據(jù)庫(kù)要求將托管給該服務(wù)代理。

  • Console Interface

    • nova-console - 支持多種方式訪問(wèn)控制臺(tái)
      • nova-novncproxy
      • nova-spicehtml5proxy
      • nova-xvpnvncproxy - 基于java的客戶(hù)端訪問(wèn)
    • nova-consoleauth - 為虛擬機(jī)console提供token支持
    • nova-cert - x.509證書(shū)支持
  • Database

    nova的持久性數(shù)據(jù)將存儲(chǔ)在數(shù)據(jù)庫(kù)中

    nova-database.png
  • Massage Queue - 為解耦各個(gè)子服務(wù),nova通過(guò)Message Queue來(lái)做為各個(gè)服務(wù)的消息中心。


查看nova-*各個(gè)子服務(wù)

nova-*

nova-*工作流

image.png
  1. 用戶(hù)對(duì)api發(fā)送一個(gè)創(chuàng)建虛擬機(jī)的請(qǐng)求
  2. API將請(qǐng)求發(fā)送給RabbitMQ
  3. Nova-scheduler從RabbitMQ得到請(qǐng)求,然后運(yùn)用調(diào)度算法,挑選合適的計(jì)算節(jié)點(diǎn)。
  4. Message 向指定的算節(jié)點(diǎn)的compute服務(wù)發(fā)送請(qǐng)求,節(jié)點(diǎn)的nova-compute服務(wù)調(diào)用Hypervisor創(chuàng)建好虛擬機(jī)。
  5. 在創(chuàng)建虛擬機(jī)的過(guò)程中,如果需要查詢(xún)或更新數(shù)據(jù)庫(kù),compute服務(wù)會(huì)通過(guò)message queque向conductor發(fā)送請(qǐng)求。

Instance 管理常規(guī)操作

instance-manage.png

常規(guī)操作

  • Launch、Start、Reboot、Shut Off 和 Terminate 都很好理解。
  • resize - 通過(guò)應(yīng)用不同的 flavor 調(diào)整分配給 instance 的資源。
  • Lock/Unlock - 可以防止對(duì) instance 的誤操作。
  • Pause/Suspend/Resume - 暫停當(dāng)前 instance,并在以后恢復(fù)。
    Pause 和 Suspend 的區(qū)別在于 Pause 將 instance 的運(yùn)行狀態(tài)保存在計(jì)算節(jié)點(diǎn)的內(nèi)存中,而 Suspend 保存在磁盤(pán)上。
    Pause 的優(yōu)點(diǎn)是 Resume 的速度比 Suspend 快;缺點(diǎn)是如果計(jì)算節(jié)點(diǎn)重啟,內(nèi)存數(shù)據(jù)丟失,就無(wú)法 Resume 了,而 Suspend 則沒(méi)有這個(gè)問(wèn)題。
  • snapshot - 備份實(shí)例到glance中,snapshot可以用于生成image。

故障處理

計(jì)劃內(nèi)故障處理

  • migrate - 將 instance 遷移到其他計(jì)算節(jié)點(diǎn)。
    遷移之前,instance 會(huì)被 Shut Off,支持共享存儲(chǔ)和非共享存儲(chǔ)。
  • live migrate - 與 Migrate 不同,Live Migrate 能不停機(jī)在線地遷移 instance,保證了業(yè)務(wù)的連續(xù)性。也支持共享存儲(chǔ)和非共享存儲(chǔ)(Block Migration)
  • shelve migrate - Shelve 將 instance 保存到 Glance 上,之后可通過(guò) Unshelve 重新部署。
    Shelve 操作成功后,instance 會(huì)從原來(lái)的計(jì)算節(jié)點(diǎn)上刪除。
    Unshelve 會(huì)重新選擇節(jié)點(diǎn)部署,可能不是原節(jié)點(diǎn)。

計(jì)劃外故障處理

  • instance故障
    • rescue - 用指定的啟動(dòng)盤(pán)啟動(dòng),進(jìn)入 Rescue 模式,修復(fù)受損的系統(tǒng)盤(pán)。成功修復(fù)后,通過(guò) Unrescue 正常啟動(dòng) instance。
    • rebuild - 如果 Rescue 無(wú)法修復(fù),則只能通過(guò) Rebuild 從已有的備份恢復(fù)。Instance 的備份是通過(guò) snapshot 創(chuàng)建的,所以需要有備份策略定期備份。
  • 計(jì)算節(jié)點(diǎn)故障 - 利用 共享存儲(chǔ) 上 Instance 的鏡像文件在其他計(jì)算節(jié)點(diǎn)上重建 Instance。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 第一章 OpenStack基礎(chǔ) OpenStack管理的資源及提供的服務(wù)OpenStack做為一個(gè)操作系統(tǒng),...
    sgt_tiger閱讀 13,242評(píng)論 4 72
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,695評(píng)論 19 139
  • Nova Nova,即計(jì)算服務(wù),是OpenStack計(jì)算的彈性控制器。Nova可以說(shuō)是整個(gè)云平臺(tái)最重要的組件,Op...
    邵勝奧閱讀 4,384評(píng)論 0 8
  • 昨天遇到了一個(gè)很專(zhuān)業(yè)的客戶(hù),從我們的原料供應(yīng)商到經(jīng)銷(xiāo)商,生產(chǎn)制造商,整個(gè)咨詢(xún)了一個(gè)遍。 話里行間一聽(tīng)就是內(nèi)行。因?yàn)?..
    勵(lì)志寶媽閱讀 729評(píng)論 0 0
  • 如果你能認(rèn)真對(duì)待我的每次吵架,我們便只會(huì)越吵越少,你總能明白,溝通并不一定需要等到我想要吵架的時(shí)候才需進(jìn)行。 即使...
    運(yùn)安閣主閱讀 497評(píng)論 0 0

友情鏈接更多精彩內(nèi)容