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