一:簡介
一、概念
1. Nova和Swift是OpenStack最早的兩個元件,nova分為控制節點和計算節點。
2. 計算節點通過Nova Computer進行虛擬機器建立,通過libvirt呼叫kvm建立虛擬機器,nova之間通訊通過rabbitMQ佇列進行通訊。
3. Nova位於Openstack架構的中心,其他服務或者元件(比如Glance、Cinder、Neutron等)對它提供支援,另外它本身的架構也比較複雜。
二、作用
1. Nova是OpenStack最核心的服務模組,負責管理和維護雲端計算環境的計算資源,負責整個雲環境虛擬機器生命週期的管理。
2. Nova是OpenStack的計算服務,負責維護和管理的網路和儲存,提供計算服務。
三、體系結構
二:元件
一、nova-api:實現了RESTful API功能,是外部訪問Nova的唯一途徑。接收外部的請求並通過Message Queue將請求傳送給其他的服務元件,同時也相容EC2 API,所以也可以用EC2的管理工具對nova進行日常管理。
二、nova-scheduler:決策虛擬機器建立在哪個主機(計算節點)上。決策一個虛擬機器應該排程到某物理節點,需要分為兩個步驟:
1. 過濾(filter):過濾出可以建立虛擬機器的主機。
2. 計算權值(weight):根據權重大小進行分配,預設根據資源可用空間進行權重排序。
三、nova-compute:負責虛擬機器的生命週期管理,建立並終止虛擬機器例項的工作後臺程式hypervisor api
四、nova-conductor:計算節點訪問資料的中介軟體,nova-compute服務和資料庫之間的中介軟體。它消除了對雲資料庫的直接訪問。
五、nova-api-metadata:從例項中接收後設資料請求。nova-api-metadata服務通常在nova-network安裝時使用的是多宿主模式執行。
六、nova-placement-api:跟蹤每個計算提供者的倉庫和使用情況。
七、nova-consoleauth:用於控制檯的授權驗證,授權控制檯代理提供的使用者令牌。此服務必須執行用於控制檯代理工作。您可以執行任何型別的代理,而不是叢集配置中的單nova-consoleauth服務。
八、Queue:在守護程式之間傳遞訊息的中心。通常使用RabbitMQ也可以用另一個基於AMQP的訊息佇列,例如ZeroMQ。
三:工作流程
1. 介面或命令列通過RESTful API向keystone獲取認證資訊。
2. keystone通過使用者請求認證資訊,正確後生成token返回給對應的認證請求。
3. 介面或命令列通過RESTful API向nova-api傳送一個建立虛擬機器的請求(攜帶token)。
4. nova-api接受請求後向keystone傳送認證請求,檢視token是否為有效使用者。
5. keystone驗證token是否有效,如有效則返回有效的認證和對應的角色(注:有些操作需要有角色許可權才能操作)。
6. 通過認證後nova-api檢查建立虛擬機器引數是否有效合法後和資料庫通訊。
7. 當所有的引數有效後初始化新建虛擬機器的資料庫記錄。
8. nova-api通過rpc.call向nova-scheduler請求是否有建立虛擬機器的資源(Host ID)。
9. nova-scheduler程式偵聽訊息佇列,獲取nova-api的請求。
10. nova-scheduler通過查詢nova資料庫中計算資源的情況,並通過排程演算法計算符合虛擬機器建立需要的主機。
11. 對於有符合虛擬機器建立的主機,nova-scheduler更新資料庫中虛擬機器對應的物理主機資訊。
12. nova-scheduler通過rpc.cast向nova-compute傳送對應的建立虛擬機器請求的訊息。
13. nova-compute會從對應的訊息佇列中獲取建立虛擬機器請求的訊息。
14. nova-compute通過rpc.call向nova-conductor請求獲取虛擬機器訊息。
15. nova-conductor從訊息隊佇列中拿到nova-compute請求訊息。
16. nova-conductor根據訊息查詢虛擬機器對應的資訊。
17. nova-conductor從資料庫中獲得虛擬機器對應資訊。
18. nova-conductor把虛擬機器資訊通過訊息的方式傳送到訊息佇列中。
19. nova-compute從對應的訊息佇列中獲取虛擬機器資訊訊息。
20. nova-compute通過keystone的RESTfull API拿到認證的token,並通過HTTP請求glance-api獲取建立虛擬機器所需要映象。
21. glance-api向keystone認證token是否有效,並返回驗證結果。
22. token驗證通過,nova-compute獲得虛擬機器映象資訊(URL)。
23. nova-compute通過keystone的RESTfull API拿到認證k的token,並通過HTTP請求neutron-server獲取建立虛擬機器所需要的網路資訊。
24. neutron-server向keystone認證token是否有效,並返回驗證結果。
25. token驗證通過,nova-compute獲得虛擬機器網路資訊。
26. nova-compute通過keystone的RESTfull API拿到認證的token,並通過HTTP請求cinder-api獲取建立虛擬機器所需要的持久化儲存資訊。
27. cinder-api向keystone認證token是否有效,並返回驗證結果。
28. token驗證通過,nova-compute獲得虛擬機器持久化儲存資訊。
29. nova-compute根據instance的資訊呼叫配置的虛擬化驅動來建立虛擬機器。
四:常用操作
一、生命週期和虛擬機器管理
二、雲主機型別和安全組管理
三、網路、浮動IP、密匙和配額管理