openstack云主机如何手动迁移

本文主要介绍"openstack云主机怎么手动迁移",希望能够解决您遇到有关问题,下面我们一起来看这篇 "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云主机怎么手动迁移" 就介绍到这。希望大家多多支持编程宝库

本文主要介绍"PostgreSQL优化器的示例分析",希望能够解决您遇到有关问题,下面我们一起来看这篇 "PostgreSQL优化器的示例分析" 文章。简介PostgreSQL 的开发源自上世纪80年代 ...