讀古今文學網 > OpenStack系統架構設計實戰 > 10.5 Trove創建實例過程 >

10.5 Trove創建實例過程

Trove提供了便捷的圖形操作界面,進行數據庫創建、管理等,也可以通過命令行方式實現相同的功能。下面通過Trove創建一個數據庫實例來講解Trove的工作流程。

1.創建數據庫實例

1)命令行方式,創建一個數據庫實例troveabc,並設置數據庫用戶和密碼。

trove create TROVE_INSTANCE_NAME 1---size 10 \ --databases troveabc \ --users longgeek:password \ --datastore_version 5.5 \ --datastore mysql \ --nic net-id=9cbae051-78c7-4574-968e-2cb9b0f410aa

2)通過圖形界面創建一個數據庫實例。

創建一個Trove實例,輸入實例名字,選擇一個Flavor,以及使用的Cinder-volume大小,填入要創建的數據庫名、用戶名、密碼,以及訪問限制,完成創建。

通過上面的描述我們可以看出,通過Trove可以很便捷地在雲化環境中實現對數據庫的自動化創建和管理等。在創建一個數據庫實例的過程中,包含了很多隱性的操作,那就看看在創建數據庫實例過程中,Trove調用了哪些主鍵,做了些什麼操作。

1)Tove通過OpenStack其他主鍵的API接口調用了zone、volume、neutron、Security-Group、instance等。

2)admin用戶創建的一個共享內網網絡,同時也寫在了trove.conf中。

3)在創建Trove實例時,分配5G的卷給虛擬機。

4)創建Trove實例時會自動根據datastore_type來指定一個單獨的安全組,默認開啟了相關數據庫服務端口號。

5)給實例添加網絡資源浮動IP,可以通過浮動IP連接到數據庫。

創建一個數據庫實例內容的實現流程

1)啟動VM,創建Nova實例。

2)創建數據庫實例,執行cloud-init自動擴展根分區、Metadata以及Heat模板中自定義的腳本。

3)重啟Tove-guestagent服務,而Trove-guestagent會監聽RPC消息隊列,Trove-guestagent服務啟動後,更新狀態為Running,發送RPC消息。

4)Taskmanager收到消息後,發送創建db請求。

5)Trove-guestagent收到請求後創建相應db,最後發送Active狀態消息給RPC。

6)Trove-conductor同時收到trove-guestagent Active消息後,去數據庫裡更新trove instance的狀態。