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

2.7.5 nova-conductor

從G版本開始,取消了nova-compute的直接數據庫訪問,而增加了一個服務nova-conductor,所有nova-compute原先需要和數據庫交互的部分,都不得直接訪問數據庫,而是通過訪問nova-conductor獲得。nova-conductor相當於Nova組件操作數據庫的一個中間件。這個主要是從兩方面考慮,一個是數據庫安全。傳統情況下每個nova-compute所運行的主機都能訪問數據庫,一旦某個主機被攻破,則數據庫也就直接暴露了,對於數據庫來說很不安全。另一個是,nova-compute與數據庫解耦更有利於nova-compute的後續升級。

不僅是nova-compute在訪問數據庫時需要和nova-conductor交互,其他Nova組件訪問數據庫也通過nova-conductor中轉。所以在啟動時,nova-conductor需要首先啟動起來。另外,隨著nova-conductor的逐步完善,nova-conductor也逐漸承接了一部分TaskAPI任務。TaskAPI任務主要包含一些比較耗時的任務,如創建虛擬機等。比如傳統模式下,nova-api收到請求消息後會發送給nova-scheduler處理,現在改為首先發給nova-conductor,再由nova-conductor發送給nova-scheduler進行調度處理。