kvm虚拟机迁移

1、迁移简介

迁移:
系统的迁移是指把源主机上的操做系统和应用程序移动到目的主机,而且可以在目的主机上正常运行。在没有虚拟机的时代,物理机之间的迁移依靠的是系统备份和恢复技术。在源主机上实时备份操做系统和应用程序的状态,而后把存储介质链接到目标主机上,最后在目标主机上恢复系统。随着虚拟机技术的发展,系统的迁移更加灵活和多样化
最终咱们迁移的目的就是:
  简化系统维护管理
  高系统负载均衡
  加强系统错误容忍度
  优化系统电源管理node

2、热迁移

KVM 虚拟机的热迁移 ---Live Migration:
服务器虚拟化技术是当前的热点,而虚拟机的“热迁移( LiveMigration )”技术则是虚拟化技术当中的热点

热迁移(又叫动态迁移、实时迁移),即虚拟机保存( save ) / 恢复(restore) :将整个虚拟机的运行状态完整保存下来,同时能够快速的恢复到原有硬件平台甚至是不一样硬件平台上。恢复之后,虚拟机仍旧平滑运行,用户不会察觉到任何差异

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

3、热迁移的应用   

  1. 虚拟机的热迁移技术最初是被用于双机容错或者负载均衡:当宿主机出现软硬件故障致使服务异常时,虚拟机可漂移到另外主机上,或者在集群中依据工做负载量的大小,选择更换宿主机与否来保证自身良好的服务提供性   数据库

  2. 系统硬件维护:当前不少操做系统都可以稳定支持 7×24 运行,可是硬件却须要按期的进行维护。若是使用虚拟机的动态迁移技术,将虚拟机从须要维护的物理机器迁移到另一主器,等维护完成后,在将其迁回到原来的物理机器。全部的系统服务和应用程序在迁移 & 恢复后仍旧正常运行,用户不会察觉到因为硬件维护形成的中断。最终实现了咱们服务不受硬件维护干扰的 7*24 小时的工做愿望
  3. 数据库备份:对于一些大型、关键的数据库应用,备份是一项重要但复杂的工做。虚拟机的保存/ 恢复能够将数据库运行在虚拟机中,如需备份就保存虚拟机,这样数据库中的全部数据、状态都作了备份。若是数据库崩溃了,就能够经过恢复虚拟机来恢复整个数据库
  4. 环境重现:进行性能测试或程序调试时,都须要重现当时复杂庞大而且与实时彻底一致的网络环境 , 不只仅是重启、配置软件,并且经常须要必定的运行时间。咱们能够将各服务安装到独立的各个虚拟机,而后利用各个独立虚拟机部署咱们所需的工做环境,能够大大缩短环境重现时间
  5. 计算机共享: 在一些公共场合用户须要共享计算机,可是因为不一样的系统配置和软件须要花费大量的时间来配置和恢复。这时使用虚拟机的保存 /恢复能够很好地解决这个问题。或者也能够,在物理机上运行多个逻辑虚拟机帮助咱们分配给每个须要者一个独立,安全,稳定的环境。当由于宿主机出现问题影响虚拟机使用时,咱们可让该虚拟机漂移到其余宿主机以此来保持正常工做vim

4、热迁移的优点   

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

5、热迁移的局限

进行虚拟机的热迁移也有很多的限制。例如VMotion 在进行迁移以前,管理软件会检测目标服务器的 X86 架构是否与原服务器兼容。包括存储设备以及处理器,虚拟机必须放到共享的存储里,CPU 的类型也要同样,不只不能一个是英特尔,一个是 AMD ,甚至相同厂商不一样产品线的CPU 也不行,好比英特尔至强和奔腾服务器

6、衡量虚拟机迁移的效率   

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

Kvm 动态迁移,也有以下几个建议和注意事项:
  1. 源宿主机和目的宿主机直接尽可能用网络共享的存储系统来保存客户机磁盘镜像。例如 NFS , ISCSI , Glusterfs 等。
  2. 为了提升动态迁移的成功率,尽可能在同类型 cpu的主机上面进行动态迁移,尽管 kvm 动态迁移也支持从 Intel 平台迁移到 amd 平台。但,从安全性,稳定度考虑不建议这样去操做!!!
  3. 64 位的客户机只能运行在 64 宿主机之间的迁移,而 32 位客户机能够在32 宿主机和 64 位宿主机之间迁移
  4. 动态迁移的源宿主机和目的宿主机对 NX 位的设置是相同,要么同为关闭状态,要么同为打开状态。在 Intel 平台上的 linux 系统中,用“ cat/proc/cpuinfo |grep nx ” 命令能够查看是否有 NX的支持。
NX ,全名为“ No eXecute”,即“禁止运行”,是应用在 CPU 的一种技术,用做把存储器区域分隔为只供存储处理器指令集,或只供数据使用。任何使用 NX 技术的存储器,表明仅供数据使用,所以处理器的指令集并不能在这些区域存储。这种技术可防止大多数的缓冲溢出攻击,即一些恶意程序,把自身的恶意指令集放在其余程序的数据存储区并运行,从而把整台计算机控制。
  5. 在进行动态迁移时,被迁移客户机的名称是惟一的,在目的宿主机上不能有与源宿主机被迁移客户机同名的客户机存在。
  6. 目的宿主机和源宿主机的软件尽量的相同。也就是同为 Vmware ,KVM , Xen 等。网络

7、v2v迁移实践

实验环境准备:
一、两台主机之间能相互解析主机名(两台主机编辑文件)
# vim /etc/hosts
  192.168.83.13 node1
  192.168.83.32 node2
二、关闭防火墙和selinux
三、下载nfs服务
  # yum -y isntall nfs-utils rcphind
四、配置 / 开启 NFS 服务共享 NFS Server 上的目录: /nfsdate
五、编辑虚机配置文件
  # virsh edit vm1
  将文件默认保存路径改为共享目录的路径
六、备份一份虚机的配置文件,而后取消定义域,而且从新定义
  # cp /etc/libvirt/qemu/vm1.xml /root
  # virsh undefine vm2
  # virsh define vm2
七、目标主机进行挂载,挂载点须要和共享文件的路径一致
  # mount -t nfs 192.168.83.13:/nfsdate /nfsdate
八、到virt-manager中去迁移正在运行的虚机,迁移的目标主机须要在源主机中添加了virsh远程管理架构

8、冷迁移

一、虚机必须关机
二、将镜像文件拷贝到目标主机上去
  # scp /var/lib/libvirt/images/vm2.qcow2 192.168.83.23:/var/lib/libvirt/images
三、将启动配置文件拷贝到目标主机
  # scp /etc/libvirt/qemu/vm2.xml 192.168.83.23:/root
四、在目标主机中定义域
  # virsh define /root/vm2.xml负载均衡

相关文章
相关标签/搜索