34.理解并配置虚拟机的热迁移

    • 虚拟机的动态迁移

 

      • 虚拟机vms001从compute A迁移到B上的整个流程如下:

 

      • 首先把vms001在A上所占用的内存拷贝到B上,此时做个标记X---位图bitmat
      • 因为vms001仍旧运行在A上运行,所以其消耗的内存一直是有变化的,标记x之后的内容在B上是没有的
      • 在A上暂停vms001,vms001在A上的内存就不会再发生变化了,此时把标记X之后所产生的内存的变化拷贝到B上,此时是又一个暂停过程的,但是时间是很短的,用户几乎感觉不到。
      • vms001在A上和B上的内存就一样了,然后再B上启动虚拟机vms001,在A上关闭vms001
      • 虚拟机就顺利的迁移到B上了

 

如何配置热迁移:

 

    • 创建一个共享存储
    • 查看实例的硬盘文件存放在什么地方,然后挂载到共享存储里

 

 

 

测试nfs 可用:compute1和compute2上

 

 

    • 因为要挂在的目录是/var/lib/nova/instances/ 所以先修改共享目录的权限,防止无法存储

[root@controller ~]# chown -R 162.162 /vdisk/

[root@controller ~]# ls  /vdisk/ -dl

drwxr-xr-x. 2 nova nova 6 Feb  8 15:42 /vdisk/

 

      • nfs挂载 共享目录到/var/lib/nova/instances/ 写到fstab里:

[root@computeX~]# vim /etc/fstab

34.理解并配置虚拟机的热迁移_第1张图片

[root@computeX ~]# mount -a

[root@computeX ~]# df -Th

Filesystem        Type      Size  Used Avail Use% Mounted on

/dev/sda1         xfs        36G  1.6G   35G   5% /

devtmpfs          devtmpfs  984M     0  984M   0% /dev

tmpfs             tmpfs     993M     0  993M   0% /dev/shm

tmpfs             tmpfs     993M  8.7M  985M   1% /run

tmpfs             tmpfs     993M     0  993M   0% /sys/fs/cgroup

tmpfs             tmpfs     199M     0  199M   0% /run/user/0

controller:/vdisk nfs4       60G   12G   49G  20% /var/lib/nova/instances

 

    • 修改配置文件,开启虚拟机的热迁移功能:

[root@controller ~]# vim /etc/nova/nova.conf

 

    • 重启服务:

控制节点和计算节点

[root@controller ~]# systemctl restart openstack-nova-api.service openstack-nova-compute.service openstack-nova-conductor.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-novncproxy.service

[root@computeX ~]# systemctl restart openstack-nova-compute.service

 

    • 修改每台计算节点的libvirtd的配置文件

libvirt主要支持的功能 虚拟机管理:包括不同的领域生命周期操作,比如:启动、停止、暂停、保存、恢复和迁移。支持多种设备类型的热插拔操作,包括:磁盘、网卡、内存和CPU

 

[root@computeX ~]# vim /etc/sysconfig/libvirtd

 

 

# vim /etc/libvirt/libvirtd.conf----默认情况下,libvirtd不支持tcp,只支持tls

 

 

 

 

 

[root@computeX ~]# systemctl restart libvirtd

[root@computeX ~]# systemctl restart openstack-nova-compute.service

 

    • 每个计算节点nova用户之间要建立ssh 的信任关系

[root@compute1 ~]# getent passwd nova

nova:x:162:162:OpenStack Nova Daemons:/var/lib/nova:/sbin/nologin

[root@compute1 ~]# usermod -s /bin/bash nova

[root@compute1 ~]# echo redhat | passwd --stdin nova

Changing password for user nova.

passwd: all authentication tokens updated successfully.

[root@compute1 ~]# su - nova

-bash-4.2$ ssh-keygen -N ""

ssh-copy-id compute1

ssh-copy-id compute2

 

    • 做虚拟机的热迁移,一定要保证所有的计算节点的配置一定要一样,比如CPU/RAM等

 

创建虚拟机进行测试:

新建的vms002位于compute2上,将其热迁移到compute1上

 

执行热迁移:

34.理解并配置虚拟机的热迁移_第2张图片

成功迁移到compute1上

 

你可能感兴趣的:(RHOSP,Openstack)