KVM虚拟机在不同主机之间的迁移,是个复杂的问题,有非常多的解决方案,但是不同的解决方案都有其优点和缺点,下面来分析下当前几种可用的KVM虚拟机迁移的方案。
1. 虚拟机迁移过程中数据的传输(磁盘镜像和内存数据)
  通常有两种常用的数据传输方式:
  -- 基于hypervisor的传输机制,即通过host之间连接来进行数据传输
  -- 基于libvirtd的传输机制,即两个libvirtd进程之间的数据传输
(1)基于hypervisor的数据传输
       这种传输方式具有最低的overload,因为传输的是裸数据,不支持数据的加密。另外,因为依赖于hypervisor的网络,所以需要对hypervisor networks进行一些特定的配置,比如打开某些端口。

(2)基于libvirtd的数据传输
   这种传输方式支持加密,是通过libvirt内建的RPC协议来进行数据的传输的,但是缺点是除了传输裸数据外,还需要传输一些额外的数据,这对镜像尺寸很大的虚拟机来说是个大问题。优点是由于不依赖与hypervisor network,所以不需要hypervisor对network做过多的配置,仅仅打开某个指定的port即可。

(2)虚拟机迁移过程中的控制流

带有管理端的直接迁移,这种迁移方式是由一个管理客户端发起,管理客户端完全控制整个迁移流程,所以它必须能够且有权限访问源主机和目的主机上libvirtd的权限,因为外加一个管理客户端,所以不需要源libvirtd和目的libvirtd之间进行直接的交流,只需要按照管理客户端的指示来办事就好了。这种方式的优点是:
   If the client application crashes, or otherwise loses its connection to libvirtd during the migration process, an attempt will be made to abort the migration and restart the guest CPUs on the source host. There may be scenarios where this cannot be safely done, in which cases the guest will be left paused on one or both of the hosts

带有管理端的点对点的迁移,这种迁移方式下,管理客户端至于源libvirtd交互,然后源libvirtd完全控制整个迁移过程。优点是,即使管理客户端挂掉了,迁移还是能正常完成的。

KVM虚拟机迁移原理分析相关推荐

  1. KVM虚拟机迁移到VMWare

    1.在linux下面用一下命令装换img文件为vmkd文件: #qemu-img convert test.img –O vmdk /tmp/test.vmdk 2.拷贝test.vmdk到本地,在v ...

  2. java虚拟机内部原理分析

    一.JVM的生命周期 JVM实例的诞生:当启动一个Java程序时,一个JVM实例就产生了,任何一个拥有public static void main(String[]args)函数的class都可以作 ...

  3. KVM虚拟机系统迁移

    KVM迁移 将运行在一台KVM虚拟机上的操作系统和应用程序无缝地迁移到另一台KVM虚拟机上的过程.KVM迁移可以实现虚拟机的负载均衡.故障恢复等功能. KVM迁移过程中涉及到两个主要角色:源主机和目标 ...

  4. kvm虚拟机静态和动态迁移

    一.kvm虚拟机静态迁移 1.静态迁移就是虚拟机在关机状态下,拷贝虚拟机虚拟磁盘文件与配置文件到目标虚拟主机中,实现的迁移. (1)虚拟主机各自使用本地存储存放虚拟机磁盘文件 本文实现基于本地磁盘存储 ...

  5. KVM——迁移KVM虚拟机

    一.KVM虚拟机迁移的方式 KVM平台中的KVM虚拟机迁移分为以下两种: (1)冷迁移(静态迁移) 我们存放虚拟机磁盘的目录都是挂在的一个nfs文件系统的磁盘,进行冷迁移时,只要在目标主机上挂载这个n ...

  6. 华为云迁移工具推荐最佳实践:KVM虚拟化迁移到华为云

    1.迁移需求分析 KVM虚拟化是当前开源虚拟化技术下大家使用比较多的,而且现在好多云底层都是使用的KVM虚拟化作为云平台虚拟化技术底座,华为云也是全面应用了KVM虚拟化技术,所以在将本地KVM的虚拟化 ...

  7. KVM动态迁移与性能优化

    一.迁移概述 虚拟机的迁移是指在VMM(Virtual Machine Monitor)上运行的虚拟机系统,能够被转移到其它物理机上的VMM上运行 1.KVM迁移类型 静态迁移 静态迁移也叫做常规迁移 ...

  8. KVM虚拟机源代码分析

    1,KVM结构及工作原理 1.1  KVM结构 KVM基本结构有两部分组成.一个是KVM Driver ,已经成为Linux 内核的一个模块.负责虚拟机的创建,虚拟内存的分配,虚拟CPU寄存器的读写以 ...

  9. kvm虚拟机安装esxi服务器,VMware vSphere虚拟机迁移至KVM virt-v2v方案

    VMware虚拟机迁移至KVM涉及到磁盘格式转换,因为VMware虚拟机使用的是VMFS文件系统,对应到虚拟机磁盘是VMDK.而KVM使用RAW或者qcow2的格式较多.格式转换那必须离线进行.之前试 ...

最新文章

  1. 去大厂面试,说了没高并发经验,面试官还是抓着这个问!
  2. python做啥用-python主要用于做什么
  3. 1.7 Appium依赖添加
  4. Codeforces 1284E New Year and Castle Building (计算几何)
  5. IBASE archive write processing report RIBARCHA
  6. Java 8新特性(二)
  7. python字符串填充_填充函数(Python)字符串.zfi
  8. struts2 mysql配置文件路径_Struts2(四)Struts2配置文件的配置
  9. Python NumPy教程
  10. VC ODBC使用总结
  11. php提示Undefined index的解决方法
  12. 前中后序遍历的递归与非递归算法,层序遍历
  13. 如何把无限循环小数转换成分数形式
  14. 老大难的 Java ClassLoader 再不理解就老了
  15. echarts-----修改折线图背景横线
  16. WebGL,Cesium以及GeoJSON数据的简单介绍
  17. 【vi】vi编辑器卡死解决方法
  18. Codeforces A. Commentary Boxes
  19. Android平台根据分辨率计算屏幕尺寸,基于物理尺寸来验证手机和平板应用合并的可行性
  20. html表单选择城市,基于weui的城市选择器(city-picker)

热门文章

  1. python 科学计算设计_《Python科学计算-(第2版)》怎么样_目录_pdf在线阅读 - 课课家教育...
  2. Charbonnier Loss
  3. Hadoop优势,生态圈
  4. HTMLCSSJavaScript个人入门自学笔记
  5. windows简单TCP通信 C++
  6. 大白菜安装服务器linux,通过U盘安装Debian
  7. phpcmsV9找配置文件修改JS/CSS/IMG/APP_PATH、upload_path的路径?
  8. phpcms留言板功能的实现
  9. 迪杰斯特拉c++_常用十大算法之 其九·迪杰斯特拉算法【日后详细补充】
  10. thinkPHP仿QQ飞车手游模拟抽奖源码