Openstack-Queens优化方案·热迁移

热迁移(Live Migration)也称动态迁移、实时迁移。其过程是:首先保存实例的所有运行状态,然后快速地恢复,甚至恢复到新的计算节点,并且在整个过程中,用户是无感的。

要使用热迁移的最基本条件是实例存放在共享存储中,且所有计算节点都能访问共享存储,否则只能采用块迁移,符合该基本条件后,再检查如下关键条件:

  • 所有计算节点的nova用户的uid和gid是否相同
  • 所有计算节点的nova和libvirt的参数配置是否正确
  • 所有计算节点的openstack-nova-compute服务是否正常运行
  • 所有计算节点是否能相互访问
  • 待迁移的虚拟机的运行状态是否正常
  • 目标宿主机的资源是否充足

配置

修改所有计算节点上的nova配置,并重启compute服务。

vi /etc/nova/nova.conf

[libvirt]
live_migration_flag="VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_PERSIST_DEST,VIR_MIGRATE_TUNNELLED"

修改所有计算节点的libvirt配置,并重启libvirtd应用。

vi /etc/libvirt/libvirtd.conf

listen_tls = 0
listen_tcp = 1
tcp_port = "16509"
listen_addr = "172.16.101.34" #本机IP
auth_tcp = "none"

vi /etc/sysconfig/libvirtd

LIBVIRTD_CONFIG=/etc/libvirt/libvirtd.conf
LIBVIRTD_ARGS="--listen"

检查免密登录是否正常,在各计算节点上访问其他计算节点:

virsh -c qemu+tcp://node35/system

迁移

在控制节点通过如下步骤对实例进行热迁移:

nova list #查看所有实例
nova show {实例ID} #查看实例详情
nova-manage service list #查看可用的计算节点
nova-manage service describe_resource {目标节点} #查看目标节点资源
nova live-migration {实例ID} {目标节点} #热迁移实例至新计算节点

也可以在dashboard中对实例进行热迁移操作。

重要说明

以上方案仅实现了计划内热迁移,如果计算节点意外宕机,且该节点不在集群内,则实例无法自动漂移至新节点。

还请各位高手指点如何实现自动迁移!

赞 (0) 打赏

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

感谢您的支持与帮助

支付宝扫一扫打赏

微信扫一扫打赏