共計 1670 個字符,預計需要花費 5 分鐘才能閱讀完成。
丸趣 TV 小編給大家分享一下 openstack 云主機如何手動遷移,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
1、手動將 vm 數據鏡像文件從一個主機遷移到另一個主機(僅僅是拷貝就可以了)
一般在 /var/lib/docker/volumes/nova_compute/_data/instances/ 這個目錄下,uuid 對應相應的文件目錄
將云主機所對應的目錄全部拷貝到目標主機虛機所在目錄
scp -r 767adf2f-b1ee-4121-a90d-baf025dd9e40 10.200.100.17:/var/lib/docker/volumes/nova_compute/_data/instances (UUID)
進入目標主機 更改目錄屬主屬組
docker exec -it nova_libvirt bash
cd /var/lib/nova/instances
chown -R nova:nova 767adf2f-b1ee-4121-a90d-baf025dd9e40
2、更改數據庫
登陸控制節點數據庫更改三張表的內容
instances
ml2_port_bindings
ml2_port_binding_levels
記住以前的配置,虛機在那個主機上(以便出錯回滾)
更新 vm 的主機信息
use nova // 使用 nova 數據庫
select *from instances where uuid= 767adf2f-b1ee-4121-a90d-baf025dd9e40 // 讀取 uuid 為后邊那個的云主機的信息,找個地拷貝存儲一下
update instances set launched_on= 10-200-100-17 ,host= 10-200-100-17 ,node= 10-200-100-17 where uuid= 767adf2f-b1ee-4121-a90d-baf025dd9e40 // 更新該云主機所在的主機為目標機器(10.200.100.17)
device_id 和云主機 uuid 是同一個
use neutron // 使用 neutron 數據庫
找到云主機所使用 port_id
select *from ports where device_id= 767adf2f-b1ee-4121-a90d-baf025dd9e40 \G//port_id 是輸出的結果中對應的值那個
找到云主機 port_id 綁定的主機
select *from ml2_port_bindings where port_id= 266fc080-cb1c-4ff3-87a6-7bd0b59c47c6 \G //port_id 是上個查詢的結果 // 結果同樣保存一下
更新綁定的主機 host
update ml2_port_bindings set host= 10-200-100-17 where port_id= 266fc080-cb1c-4ff3-87a6-7bd0b59c47c6 // 更新主機 目標(10.200.100.17)
更新 ml2_port_binding_levels
select *from ml2_port_binding_levels where port_id= 266fc080-cb1c-4ff3-87a6-7bd0b59c47c6 \G // 同樣保存一樣
update ml2_port_binding_levels set host= 10-200-100-17 where port_id= 266fc080-cb1c-4ff3-87a6-7bd0b59c47c6
nova reset-state –active 767adf2f-b1ee-4121-a90d-baf025dd9e40
最后硬重起 vm,就可以成功啟動該 vm
假若 vm 啟動失敗
vm 的 instances 表 vm_state 將會被值為 error,如果這時想恢復,則需要將該狀態設置為 stopped,或者其他狀態
上述操作回滾即可
看完了這篇文章,相信你對“openstack 云主機如何手動遷移”有了一定的了解,如果想了解更多相關知識,歡迎關注丸趣 TV 行業資訊頻道,感謝各位的閱讀!