openstack云主机如何手动迁移

72次阅读
没有评论

共计 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 行业资讯频道,感谢各位的阅读!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计1670字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)