1. 程式人生 > >Openstack虛擬機器啟動過程

Openstack虛擬機器啟動過程

核心專案3個

  • 1.控制檯
    服務名:Dashboard

    專案名:Horizon

    功能:web方式管理雲平臺,建雲主機,分配網路,配安全組,加雲盤
  • 2.計算
    服務名:計算

    專案名:Nova

    功能:負責響應虛擬機器建立請求、排程、銷燬雲主機
  • 3.網路
    服務名:網路

    專案名:Neutron

    功能:實現SDN(軟體定義網路),提供一整套API,使用者可以基於該API實
         現自己定義專屬網路,不同廠商可以基於此API提供自己的產品實現
  • 4、儲存專案2個
    1.物件儲存

    服務名:物件儲存

    專案名:Swift

    功能:REST風格的介面和扁平的資料組織結構。RESTFUL HTTP API來保
         存和訪問任意非結構化資料,ring環的方式實現資料自動複製和高度
         可以擴充套件架構,保證資料的高度容錯和可靠性

    2.塊儲存

    服務名:塊儲存

    專案名:Cinder

    功能:提供持久化塊儲存,即為雲主機提供附加雲盤。
  • 共享服務專案3個
    1.認證服務

    服務名:認證服務

    專案名:Keystone

    功能:為訪問openstack各元件提供認證和授權功能,認證通過後,提供一
         個服務列表(存放你有權訪問的服務),可以通過該列表訪問各個元件。

    2.映象服務

    服務名:映象服務

    專案名:Glance

    功能:為雲主機安裝作業系統提供不同的映象選擇

    3.計費服務

    服務名:計費服務

    專案名:Ceilometer

    功能:收集雲平臺資源使用資料,用來計費或者效能監控
  • 高層服務專案1個
    1.編排服務

    服務名:編排服務

    專案名:Heat

    功能:自動化部署應用,自動化管理應用的整個生命週期.主要用於Paas 

虛擬機器啟動過程如下

  • 1、介面或命令列通過RESTful API向keystone獲取認證資訊。

  • 2、keystone通過使用者請求認證資訊,並生成auth-token返回給對應的認證請求。

  • 3、介面或命令列通過RESTful API向nova-api傳送一個boot instance的請求(攜帶auth-token)。

  • 4、nova-api接受請求後向keystone傳送認證請求,檢視token是否為有效使用者和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請求獲取虛擬機器訊息。(Flavor)

  • 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獲得虛擬機器持久化儲存資訊。

  • 30、nova-compute根據instance的資訊呼叫配置的虛擬化驅動來建立虛擬機器