• 沒有找到結果。

更新目標主機的 OpenStack

第三章 跨雲的虛擬機器機制

3.2 跨雲動態轉移機制

3.2.3 跨雲機制

3.2.3.2 更新目標主機的 OpenStack

來源主機和目標主機屬於不同的 Controller Node 所管轄,當來源主機將虛擬 機器轉移到目標主機之後,目的端的資料庫不會有虛擬機器的相關資料,因此,

虛擬機器的相關資料要更新到目的端的資料庫中。參考 3.2.1OpenStack 啟動虛擬 機器機制,目的端的資料庫將進行以下更新:

1. 在 Nova 資料庫,新增虛擬機器的列表至以下表格:

(1) instances:此表格紀錄虛擬機器的基本資訊,包含運行所在的 Compute Node 名稱、使用的資源數以及目前的狀態等。轉移的虛擬機器要在此表 格中新增列表,並更新 user_id 以及 project_id 的欄位,才能使虛擬機器出

26

現在目標主機的虛擬機器列表中。更新 lauched_on、host 以及 node 欄位,

將欄位更新為目標主機的名稱,也就是虛擬機器轉移後的執行位置。

(2) instance_info_caches:此表格紀錄虛擬機器的網路資訊,更新 network_info 欄位,網路資訊由 Quantum 取得。

(3) instance_id_mappings:紀錄虛擬機器的 uuid、id 以及開啟的時間。

(4) instance_system_metadata:此表格紀錄虛擬機器所使用的相關資訊,包括 記憶體大小、核心數量、規格型別(type)以及使用的映像檔。

2. 在 Quantum 資料庫,新增虛擬機器的列表至以下表格:

(1) ports:紀錄虛擬機器的網路硬體位址(mac_address),以及使用網路的 network_id。轉移的虛擬機器要修改 network_id,修改為目標主機讓虛擬 機器使用的網路。tenant_id 的欄位也要修改,要和 instance 表格的 project_id 一樣。

(2) securitygroupportbindings:此表格和 ports 表格是連動的,轉移的虛擬機 器要修改 security_group_id,修改為屬於目標主機的 security_group。

(3) ipallocations : 此 表 格 也 是 和 ports 連 動 的 , 轉 移 的 虛 擬 機 器 要 修 改 subnet_id 和 network_id,修改為目標主機提供給虛擬機器使用的網路以 及子網路。

除了更新資料庫之外,為了要讓轉移的虛擬機器能夠使用網路,還要修改在 /var/lib/quantum/dhcp/[network_id]下的 host,host 檔案紀錄網路硬體位址對應的 網址,此檔案下的網址不能有重複,並且要和 Quantum 資料庫的紀錄一致。

27

源端上,圖十五是在虛擬機器上進行編輯文件的畫面。使用本論文修改過的 nova 模組進行動態轉移之後,圖十六為動態轉移後的目的端列表,可以看到 Source02 出現在目的端的虛擬機器列表中,圖十七為動態轉移後的虛擬機器畫面,仍然停 留在編輯文件的畫面,圖十八表示動態轉移後的虛擬機器,仍然可以繼續進行編 輯文件。

圖十一 動態轉移前的來源端虛擬機器列表

28

圖十二 動態轉移前的來源端網路連結

圖十三 動態轉移前的目的端虛擬機器列表

29

圖十四 動態轉移前的目的端網路連結

圖十五 轉移目標虛擬機器的相關資訊

30

圖十六 虛擬機器編輯文件畫面

圖十七 動態轉移後的目的端虛擬機器列表

31

圖十八 動態轉移後虛擬機器編輯文件畫面

圖十九 虛擬機器繼續編輯文件畫面

32

相關文件