OpenStack Compute邏輯架構中,組件中的絕大多數可分為兩種自定義編寫的Python守護進程(custom written python daemons)。
- 接收和協調API調用的WSGI應用(nova-api, glance-api, etc)
- 執行部署任務的Worker守護進程(nova-compute, nova-network, nova-schedule, etc.)
然而,邏輯架構中有兩個重要的部分,既不是自定義編寫,也不是基于Python,它們是消息隊列和數據庫。二者簡化了復雜任務(通過消息傳遞和信息共享的任務)的異步部署。
邏輯架構圖如下所示:
OpenStack Compute邏輯架構
從圖中,我們可以總結出三點:
- 終端用戶(DevOps, Developers 和其他的 OpenStack 組件)通過和nova-api對話來與OpenStack Compute交互。
- OpenStack Compute守護進程之間通過隊列(行為)和數據庫(信息)來交換信息,以執行API請求。
- OpenStack Glance基本上是獨立的基礎架構,OpenStack Compute通過Glance API來和它交互。
其各個組件的情況如下:
- Nova-api守護進程是OpenStack Compute的中心。它為所有API查詢(OpenStack API 或 EC2 API)提供端點,初始化絕大多數部署活動(比如運行實例),以及實施一些策略(絕大多數的配額檢查)。
- Nova-compute進程主要是一個創建和終止虛擬機實例的Worker守護進程。其過程相當復雜,但是基本原理很簡單:從隊列中接收行為,然后在更新數據庫的狀態時,執行一系列的系統命令執行他們。
- Nova-volume管理映射到計算機實例的卷的創建、附加和取消。這些卷可以來自很多提供商,比如,ISCSI和AoE。
- Nova-network worker守護進程類似于nova-compute和nova-volume。它從隊列中接收網絡任務,然后執行任務以操控網絡,比如創建bridging interfaces或改變iptables rules。
- Queue提供中心hub,為守護進程傳遞消息。當前用RabbitMQ實現。但是理論上能是python ampqlib支持的任何AMPQ消息隊列。
- SQL database存儲云基礎架構中的絕大多數編譯時和運行時狀態。這包括了可用的實例類型,在用的實例,可用的網絡和項目。理論上,OpenStack Compute能支持SQL-Alchemy支持的任何數據庫,但是當前廣泛使用的數據庫是sqlite3(僅適合測試和開發工作),MySQL和PostgreSQL。
- OpenStack Glance,是一個單獨的項目,它是一個compute架構中可選的部分,分為三個部分:glance-api, glance-registry and the image store. 其中,glance-api接受API調用,glance-registry負責存儲和檢索鏡像的元數據,實際的Image Blob存儲在Image Store中。Image Store可以是多種不同的Object Store,包括OpenStack Object Storage (Swift)
- 最后,user dashboard是另一個可選的項目。OpenStack Dashboard提供了一個OpenStack Compute界面來給應用開發者和devops staff類似API的功能。當前它是作為Django web Application來實現的。當然,也有其他可用的Web前端。
標簽:
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn