您好,登錄后才能下訂單哦!
小編給大家分享一下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云主機如何手動遷移”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。