一、迁移简介

  迁移分为热迁移和冷迁移,冷迁移是在机器关机的状态下进行迁移,具体操作在之前的博客有体现。热迁移是在机器处于开机状态进行迁移,本次博客主要讲解热迁移。

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

  最终我们迁移的目的就是:
      简化系统维护管理
      高系统负载均衡
      增强系统错误容忍度
      优化系统电源管理

二、热迁移----live migration

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

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

三、热迁移的应用

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

  2.
系统硬件维护:当前很多操作系统都能够稳定支持 7×24
运行,但是硬件却需要定期的进行维护。如果使用虚拟机的动态迁移技术,将虚拟机从需要维护的物理机器迁移到另外一主器,等维护完成后,在将其迁回到原来的物理机器。所有的系统服务和应用程序在迁移
& 恢复后仍旧正常运行,用户不会察觉到由于硬件维护造成的中断。最终实现了我们服务不受硬件维护干扰的 7*24 小时的工作愿望。

  3. 数据库备份:对于一些大型、关键的数据库应用,备份是一项重要但复杂的工作。虚拟机的保存/ 恢复可以将数据库运行在虚拟机中,如需备份就保存虚拟机,这样数据库中的所有数据、状态都做了备份。如果数据库崩溃了,就可以通过恢复虚拟机来恢复整个数据库。

  4.
环境重现
:进行性能测试或程序调试时,都需要重现当时复杂庞大并且与实时完全一致的网络环境 ,
不仅仅是重启、配置软件,而且常常需要一定的运行时间。我们可以将各服务安装到独立的各个虚拟机,然后利用各个独立虚拟机部署我们所需的工作环境,可以大大缩短环境重现时间。

  5.
计算机共享
: 在一些公共场合用户需要共享计算机,但是由于不同的系统配置和软件需要花费大量的时间来配置和恢复。这时使用虚拟机的保存
/恢复可以很好地解决这个问题。或者也可以,在物理机上运行多个逻辑虚拟机帮助我们分配给每一个需要者一个独立,安全,稳定的环境。当因为宿主机出现问题影响虚拟机使用时,我们可以让该虚拟机漂移到其他宿主机以此来保持正常工作。

四、热迁移的优势

  1. 首先是可伸缩性比较强, IT 管理者可以在合理时间段让运行某些关键业务的服务器适当减少工作量,以便进行更新操作系统,给应用程序打补丁等。而到了服务高峰期,又可以弹性地进行大负载量的运算。虚拟机迁移过程完全透明,几乎不影响使用。

  2.
其次,现在的数据中心都追求环保节能
工作量负载大的应用程序必然会令服务器能耗增加,有了虚拟机热迁移技术,当一台物理服务器负载过大时,系统管理员可以将其上面的虚拟机迁移到其他服务器,可有效减低数据中心服务器的总体能耗,再通过冷却系统将数据中心的温度保持在正常水平。

五、热迁移的局限(缺点)

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

六、均衡虚拟机迁移的效率

   1. 整体迁移时间:从源主机中迁移操作开始到目的主机上客户机服务处于不可用状态的时间,此时源主机上客户机已经暂停服务,目的主机上的客户机还未恢复服务。

  2. 服务器停机时间:在迁移过程中,源主机和目的主机上的客户机都处于不可用状态的时间,此时源主机上客户机已暂停,目的主机上客户还未恢复服务。

  3. 对服务的性能影响:不仅包括迁移后的客户机中应用程序的性能与迁移前相对比是否有所降低,还包括迁移后对目的主机上的其他服务的性能影响。

Kvm 动态迁移,也有如下几个建议和注意事项:
  1. 源宿主机和目的宿主机直接尽量用网络共享的存储系统来保存客户机磁盘镜像。例如 NFS , ISCSI , Glusterfs 等。

  2. 为了提高动态迁移的成功率,尽量在同类型 cpu的主机上面进行动态迁移,尽管 kvm 动态迁移也支持从 Intel 平台迁移到 amd 平台。  但,从安全性,稳定度考虑不建议这样去操作!!!

  3. 64 位的客户机只能运行在 64 宿主机之间的迁移,而 32 位客户机可以在 32 宿主机和 64 位宿主机之间迁移。

  4. 在进行动态迁移时,被迁移客户机的名称是唯一的,在目的宿主机上不能有与源宿主机被迁移客户机同名的客户机存在。

  5. 目的宿主机和源宿主机的软件尽可能的相同。也就是同为 Vmware , KVM , Xen 等。

 七、v2v迁移实践

  1.环境准备

    搭建nfs服务:

      ①服务端: yum install -y nfs-utils rpcbind

           mkdir /jam

              vim /etc/exports

              /jam *(rw,sync)

            systemctl restart nfs rpcbind

       ②客户端:yum install -y nfs-utils

            mkdir /jam

            showmount -r 服务端ip

            mount -t nfs 服务端IP:/jam /jam

  2.进行迁移前准备

    服务端:复制虚拟机配置文件和存储池配置文件到/jam下

        cp -a /etc/libvirt/qemu/001.xml /jam

        cp -a /var/lib/libvirt/images/001.qcow2 /jam

        编辑虚拟机配置文件

        vim /jam/001.xml

              <source file='/jam/001.qcow2'/>

  3.进行迁移

    前提:两台宿主机之间可以远程连接

    

    

最新文章

  1. C#中的委托与事件并存的理由
  2. centos 7 相关的一些记录
  3. Linux系统编程重要细节记录(持续更新中)
  4. sizeof和strlen的区别
  5. commonlisp教程以及学习笔记-01
  6. [Asp.net mvc] 在Asp.net mvc 中使用MiniProfiler
  7. Decision Boundaries for Deep Learning and other Machine Learning classifiers
  8. TCP洪水攻击(SYN Flood)的诊断和处理
  9. WPF Customize TabControl
  10. jvm学习小结
  11. Task.WhileAll扩展方法
  12. gerrit push配置
  13. 微信公众号、H5、APP三者各有什么优势?
  14. Go语言之三驾马车
  15. php-msf 源码解读【转】
  16. Redux的中间件原理分析
  17. 用idea 创建一个spring小demo,基于xml文件配置
  18. VisualStudio移动开发(C#、VB.NET)Smobiler开发平台——AlbumView相册控件的使用方式
  19. hdu-3416(最短路+网络流)
  20. Java8 之stream

热门文章

  1. Networker软件安装
  2. 文件浏览:ls&amp;file
  3. @font-face字图标问题
  4. Laravel技巧集锦(16):使用DB::listen查找慢SQL
  5. pipeline和baseline是什么?
  6. Hadoop-No.6之文件在HDFS中的位置
  7. js实现单例
  8. POI2012 BEZ-Minimalist Security | noi.ac #537 Graph
  9. 使用matplotlib绘制常用图表(3)-其他图表绘制
  10. AtCoder AGC014E Blue and Red Tree (启发式合并)