1.什么是Nova?
Nova是Openstack云中的計算組織控制器休建,管理Openstack云中實例的生命周期的所有活動盛杰,使得nova稱為一個負(fù)責(zé)管理計算資源翼闽、網(wǎng)絡(luò)、認(rèn)證所需的可擴展性平臺笙什。
2.常用術(shù)語
- Hypervisor:虛擬機監(jiān)視器飘哨,用來建立與執(zhí)行虛擬機的部分電腦軟件、固件或硬件
- KVM:內(nèi)核虛擬化琐凭,OpenStack默認(rèn)的Hypervisor
- Qemu: KVM 的替補角色芽隆,沒有KVM的執(zhí)行效率高,不支持全虛擬化
- Flavor:用來新建虛擬機的配置列表淘正,可以認(rèn)為是創(chuàng)建虛擬機的模板
- Keypair:ssh連接訪問實例的密鑰對
- 安全組:是一個控制訪問策略的容器摆马,里面包含了各種各樣的安全組規(guī)則
- 安全組規(guī)則:用來控制實例訪問的具體策略,定義了用戶可以通過什么協(xié)議鸿吆,在遠(yuǎn)端什么主機上通過什么端口對實例進(jìn)行鏈接訪問。
3. Nova框架
3.1 Nova組件
- Nova API:提供了統(tǒng)一風(fēng)格的 RestAPI接口述呐,作為Nova組件的入口惩淳,接受用戶的請求
- Nova scheduler :負(fù)責(zé)調(diào)度,將實例分配到具體的計算節(jié)點
- Nova conductor:主要負(fù)責(zé)與Nova數(shù)據(jù)庫進(jìn)行交互
-
Nova compute:用于虛擬機實例的創(chuàng)建和管理
以及提供消息傳遞的 -
消息隊列:Nova各個組件之間的消息傳遞
和數(shù)據(jù)庫模塊:
3.2 Nova各個組件如何協(xié)作運行?
首先思犁,用戶通過CLI命令行或者h(yuǎn)orizon向Nova組件提出創(chuàng)建實例的請求時代虾,Nova API 作為Nova的入口,將會接受用戶的請求激蹲,將會以消息隊列的方式棉磨,將請求發(fā)送給Nova scheduler。
Nova scheduler從消息隊列中学辱,偵聽到Nova API的消息隊列后乘瓤,去數(shù)據(jù)庫中查詢當(dāng)前計算節(jié)點的負(fù)載和使用情況,由于Nova scheduler不能直接跟數(shù)據(jù)庫進(jìn)行交互策泣,因此衙傀,將會借助于消息隊列的方式通過Nova conductor組件,進(jìn)而與數(shù)據(jù)庫進(jìn)行交互萨咕。
然后將查詢到的結(jié)果统抬,將虛擬機實例分配到當(dāng)前負(fù)載最小,并且滿足啟動虛擬機實例的那個計算節(jié)點上危队,但最終的虛擬機實例的創(chuàng)建聪建,并不是由Nova scheduler完成(它負(fù)責(zé)實例的分配調(diào)度工作)還是要靠Nova compute來完成。
但是實例的創(chuàng)建茫陆,離不開鏡像妆偏、網(wǎng)絡(luò)等一些資源的配合,因此盅弛,Nova compute將會與Nova volume钱骂、Nova network等等一些組件通過消息隊列的方式實現(xiàn)相互的協(xié)作。最終完成虛擬機實例的創(chuàng)建挪鹏。
4. Nova的功能特性:
- 實現(xiàn)實例的生命周期的管理
- 調(diào)動管理平臺的網(wǎng)絡(luò)见秽、存儲等資源
- 提供了統(tǒng)一風(fēng)格的 RestAPI接口
- 支持KVM、VMware等透明的hypervisor
各個模塊之間通過消息隊列來進(jìn)行消息傳遞