讀古今文學網 > OpenStack系統架構設計實戰 > 2.7.4 nova-cell >

2.7.4 nova-cell

從G版本開始,Nova為了增加橫向擴展以及分佈式、大規模(地理位置級別)部署能力,同時又不增加數據庫和消息中間件的複雜度,引入了Cell概念。並引入了新的nova-cell服務。Cell有自己的DB和AMQP,並且是樹狀結構,Cell之間使用AMQP通信。頂層的Cell稱為API Cell,有自己的nova-api。子Cell無nova-api服務,子Cell定時上報資源給父Cell,接受父Cell的調度。

在API Cell節點要部署nova-api對外提供統一服務,nova-cell負責與子cell進行通信;子Cell節點要統一部署nova-cell,如果子Cell直接接入虛擬化層,則還要部署nova-scheduler、nova-compute。nova-cell架構如圖2-7所示。

圖2-7是3個Cell級聯的情況,其中API Cell收到請求後,通過nova-cell提供的調度算法,通過消息隊列將消息轉發到子Cell節點,在子Cell節點處做與API Cell同樣的工作,選擇一個孫子Cell並繼續轉發,在孫子Cell節點上做真正的主機調度工作,選擇主機創建虛擬機。

上面的情況下,孫子Cell需要將自己連接的資源信息定時上報給子Cell,以提供調度功能使用,同樣子Cell也要將自己知道的資源信息上報給API Cell使用,這樣,每層調度時只需獲取自己掌握的資源信息即可,這就實現了每層解耦。

圖2-7 nova-cell架構