首页 OpenStack-Train云平台部署之“实例热迁移”

OpenStack-Train云平台部署之“实例热迁移”

技术张儿 2020-7-26 0 41
标签: OpenStack

10.2 实例热迁移

# 为什么需要实例热迁移。因为是开机状态下迁移。
# 默认迁移失败的,所以需要配置一下。
1.png

2.png


10.2.1 修改用户的uidgid

# 主要原因是uid和gid不一样。
# openstack迁移操作严格要求控制节点和计算节点的uid、gid一摸一样。
# 可以通过id nova和id neutron查看

# 首先查看控制节点的
[root@controller ~]# id nova
uid=162(nova) gid=162(nova) groups=162(nova),99(nobody)
[root@controller ~]# id neutron
uid=992(neutron) gid=989(neutron) groups=989(neutron)

# 再查看计算节点
[root@compute01 ~]# id nova
uid=162(nova) gid=162(nova) groups=162(nova),99(nobody),107(qemu),992(libvirt)
[root@compute01 ~]# id neutron
uid=994(neutron) gid=991(neutron) groups=991(neutron)

# 通过上面查看出来neutron用户uid和gid不一样,下面做一下修改


# 停止计算节点所有nova和neutron相关的服务,避免有进程占用用户的uid和gid
systemctl stop neutron-linuxbridge-agent.service
systemctl stop libvirtd.service
systemctl stop openstack-nova-compute.service

# 修改uid和gid(修改为和控制节点一样的uid和gid)
[root@compute01 ~]# usermod -u 992 neutron
[root@compute01 ~]# groupmod -g 989 neutron

# neutron用户的家目录下面的文件属主和属组会在usermod和groupmod命令执行后自动修改成新的uid、gid对应的属主属组,但是其他文件目录需要手动修改。手动修改的命令也比较简单。

# 找到修改之前的uid和gid进行修改
[root@compute01 ~]# find / -user 994 -exec chown -h neutron {} \;
[root@compute01 ~]# find / -group 991 -exec chgrp -h neutron {} \;

# 最后验证查看
# 查看994uid和991gid的文件已经没有了
[root@compute01 ~]# find / -user 994
[root@compute01 ~]# find / -group 991

# 查看992uid和989gid的文件已经出现了。证明修改成功
[root@compute01 ~]# find / -user 992
[root@compute01 ~]# find / -group 989

10.2.2 配置libvirtd文件

# 修改/etc/libvirt/libvirtd.conf
[root@compute01 ~]# vim /etc/libvirt/libvirtd.conf
[root@compute01 ~]# egrep -vn "^$|^#" /etc/libvirt/libvirtd.conf
listen_tls = 0
listen_tcp = 1
tcp_port = "16509"
listen_addr = "10.0.0.31" #设置为计算节点的ip地址
auth_tcp = "none"

# 修改/etc/sysconfig/libvirtd
[root@compute01 ~]# vim /etc/sysconfig/libvirtd
LIBVIRTD_ARGS="--listen" #取消注释

# 启动相关计算节点服务
systemctl restart libvirtd.service
systemctl restart openstack-nova-compute.service
systemctl restart neutron-linuxbridge-agent.service

# 验证
[root@compute01 ~]# netstat -nltp|grep 16509 
3.png

# 测试连接
[root@compute01 ~]# virsh -c qemu+tcp://compute02/system
Welcome to virsh, the virtualization interactive terminal.

Type:  'help' for help with commands
       'quit' to quit

virsh #

10.2.3 测试迁移

# 在前端web页面测试下迁移操作进行测试
4.png

S版本需要安装conntrack-tools
# 迁移成功查看nova日志还是报错
2019-11-19 16:26:40.157 266910 ERROR neutron.agent.linux.utils [-] Rootwrap error running command: ['conntrack', '-D', '-f', 'ipv4', '-d', '10.0.0.150', '-w', '4097']: RemoteError:
# 在所有计算节点安装如下
yum install conntrack-tools -y
systemctl restart libvirtd.service
systemctl restart openstack-nova-compute.service
systemctl restart neutron-linuxbridge-agent.service



# 如果迁移始终不成功请重启控制节点和所有的计算节点
# 重启控制节点恢复rabbitmq
[root@controller ~]# rabbitmqctl stop
Stopping and halting node rabbit@controller
[root@controller ~]# rabbitmq-server -detached
Warning: PID file not written; -detached was passed.

# 重启之后再次测试迁移成功没出现任何报错
# 测试迁移进行查看日志


# 控制节点查看迁移日志
[root@controller ~]# tail -f /var/log/nova/nova-conductor.log

# 计算节点查看日志
[root@compute01 ~]# tail -f /var/log/nova/nova-compute.log
[root@compute02 ~]# tail -f /var/log/nova/nova-compute.log
5.png


作者: 技术张儿 本文发布于2020-7-26 12:27:17
免责声明:本文仅代表作者个人观点。