KVM虚拟机的迁移

系统的迁移是指把源主机上的操作系统和应用程序移动到目的主机,并且 能够在目的主机上正常运行。在没有虚拟机的时代,物理机之间的迁移依靠 的是系统备份和恢复技术。在源主机上实时备份操作系统和应用程序的状态, 然后把存储介质连接到目标主机上,最后在目标主机上恢复系统。随着虚拟机 技术的发展,系统的迁移更加灵活和多样化。

最终我们迁移的目的就是:

   简化系统维护管理 

   高系统负载均衡

   增强系统错误容忍度

   优化系统电源管理

KVM 虚拟机的热迁移 ---Live Migration: 服务器虚拟化技术是当前的热点,而虚拟机的"热迁移( Live Migration )"技术则是虚拟化技术当中的热点。
热迁移(又叫动态迁移、实时迁移),即虚拟机保存( save ) / 恢复 (restore) :将整个虚拟机的运行状态完整保存下来,同时可以快速的恢复到 原有硬件平台甚至是不同硬件平台上。恢复以后,虚拟机仍旧平滑运行,用户 不会察觉到任何差异。

优点:

1. 首先是可伸缩性比较强, IT 管理者可以在合理时间段让运行某些关键业务 的服务器适当减少工作量,以便进行更新操作系统,给应用程序打补丁等。而 到了服务高峰期,又可以弹性地进行大负载量的运算。虚拟机迁移过程完全透 明,几乎不影响使用。
2. 其次,现在的数据中心都追求环保节能, 工作量负载大的应用程序必然会 令服务器能耗增加,有了虚拟机热迁移技术,当一台物理服务器负载过大时, 系统管理员可以将其上面的虚拟机迁移到其他服务器,可有效减低数据中心服 务器的总体能耗,再通过冷却系统将数据中心的温度保持在正常水平。

效率:

1. 整体迁移时间:从源主机中迁移操作开始到目的主机上客户机服务处于不可 用状态的时间,此时源主机上客户机已经暂停服务,目的主机上的客户机还未 恢复服务。
2. 服务器停机时间:在迁移过程中,源主机和目的主机上的客户机都处于不可 用状态的时间,此时源主机上客户机已暂停,目的目的主机上客户还未恢 复服务。
3. 对服务的性能影响:不仅包括迁移后的客户机中应用程序的性能与迁移前相 对比是否有所降低,还包括迁移后对目的主机上的其他服务的性能影响。

注意事项:

1. 源宿主机和目的宿主机直接尽量用网络共享的存储系统来保存客户机磁盘镜 像。例如 NFS , ISCSI , Glusterfs 等。
2. 为了提高动态迁移的成功率,尽量在同类型 cpu的主机上面进行动态迁移, 尽管 kvm 动态迁移也支持从 Intel 平台迁移到 amd 平台。但,从安全性, 稳定度考虑不建议这样去操作!!!
3. 64 位的客户机只能运行在 64 宿主机之间的迁移,而 32 位客户机可以在 32 宿主机和 64 位宿主机之间迁移。

4. 动态迁移的源宿主机和目的宿主机对 NX 位的设置是相同,要么同为关闭状 态,要么同为打开状态。在 Intel 平台上的 linux 系统中,用" cat /proc/couinfo |grep nx " 命令可以查看是否有 NX的支持。

5. 在进行动态迁移时,被迁移客户机的名称是唯一的,在目的宿主机上不能有 与源宿主机被迁移客户机同名的客户机存在。
6. 目的宿主机和源宿主机的软件尽可能的相同。也就是同为 Vmware , KVM , Xen 等。

 迁移的种类: P2P :物理机之间的迁移 ; V2P :虚拟机迁到物理机 ;P2V :物理机迁到虚拟机 ;V2V :虚拟机迁到虚拟机

冷迁移:冷迁移就是将需要迁移的虚拟机的信息文件拷贝到其他宿主机上在进行文件恢复

冷迁移的实现:

   1、先将需要迁移的虚拟机进行关机;

   2、将需要迁移的虚拟机的磁盘文件:/var/lib/libvirt/images/ 和xml:/etc/libvit/qemu,目录的文件传送到目标宿主机中;

       1.先做静态解析:将目标主机的IP和需要迁移的虚拟机的宿主机的ip和主机名分别添加到两个宿主机的:/etc/hosts文件里

       2.传送完成后,在目标宿主机上进行恢复虚拟机:virsh define  vm-name

   3.冷迁移完成

   注意磁盘存放路径,如果传送过去的磁盘文件不在/var/lib/libvirt/images/目录下,就要在xml文件中更改默认路径

静态解析:将每一台虚机的虚拟机的IP地址和主机名添加到/etc/hosts文件中

无密钥登陆:

   1、先建立公钥和私钥:

       1.ssh-key

热迁移:实在虚拟机正在启用的情况下进行迁移的

热迁移的实现:

 例:将宿主机TESTt1中的VM1迁移到宿主机TEST2中

静态解析:将test1和test2的ip 和主机名添加到/etc/hosts文件中:

    搭建nfs服务:

      1.在TEST1中安装NFS 和RPCBIND:yum  install nfs-utils  rpcbind;

      2.在TEST1中的根目录下新建一个共享文件夹:nfsdate :mkdir  nfsdate ;更改文件夹的权限:chmod 777 nfsdate;

      3.编辑nfs的配置文件:

         vim /etc/exports

         /nfsdate  *(re,sync)

      4.启动NFS的服务:systemctl start nfs;查看NFS状态:systemctl status nfs

      5.检测是否有共享目录:showmount -e ip地址

      6.在TEST2中的根目录添加一个NFSDATE目录:mkdir nfsdate

7.对TEST2中的NFSFATE目录进行挂载:mount -t nfs test1:/nfsdate /nfsdate

8.将VM1的磁盘文件放入nfsdate目录里面,并更改xml里面的device的默认路径

9.将TEST1和TEST2的NFSDATE设置为存储池

10.把TEST1和TEST2相互添加为连接

11.对VM1进行迁移;

原文地址:https://www.cnblogs.com/zxy-5257/p/10161382.html