Migrate 操作会先将Instance停掉,也就是所谓的 冷迁移 。而 Live Migrate 是热迁移,也就在线迁移,Instance不会停机,
 
Live Migrate 分两种:
 
    1、源和目标节点没有共享存储,Instance 在迁移的时候需要将其镜像文件从源节点传到目标节点,这叫做Block Migrate (块迁移)
    2、源和目标节点使用共享存储,Instance的镜像文件不需要迁移,只需要将 Instance 的状态迁移到目标节点
 
源和目标节点需要满足一些条件才能支持 Live Migrate :
 
    1、源和目标节点的CPU类型要一致
    2、源和目标节点的Libvirt版本要一致
    3、源和目标节点能互相识别对方的主机名称,比如可以在 /etc/hosts 中加入对方的条目
    4、在源和目标节点的 /etc/nova/nova.conf 中指明在线迁移时使用 TCP 协议
 
[libvirt]
live_migration_uri = qemu+tcp://stack@%s/system
cpu_mode = none
virt_type = kvm
 
    5、Instance 使用config Driver 保存其metadata。在block Migrate过程中,该config driver 也需要迁移到目标节点。由于目前libvirt 只支持 vfat 类型的config driver,所以必须在 /etc/nova/nova.conf 中指明 launch instance 时创建 config driver
 
[DEFAULT]
config_driver_format = vfat
 
    6、源和目标节点的Libvirt TCP 远程监听服务得打开,需要在下面两个配置文件中做一点配置
 
/etc/default/libvirt-bin
 
    start_libvirtd="yes"
    libvirtd_opts="-d -l"
 
 
/etc/libvirt/libvirtd.conf
 
    listen_tls = 0
    listen_tcp = 1
    unix_sock_group = "libvirtd"
    unix_sock_ro_perms = "0777"
    unix_sock_rw_perms = "0770"
    auth_unix_ro = "none"
    auth_unix_rw = "none"
    auth_tcp = "none"
 
然后重启libvirtd 服务  service libvirt-bin restart
 
下面是非共享存储操作流程
 
Web UI 操作
 
 
迁移的时候如果使用的不是共享存储,需要勾选 Block Migrate
还有一个 Disk Over Commit 选项,nova在检查目标接地那磁盘空间是否够用时,按磁盘文件定义的大小计算,否则按照磁盘文件的实际大小计算。
 
在nova-compute上
 
    1、目标节点执行迁移前的准备工作,首先将instance 的数据迁移过来,主要包括镜像文件、虚拟网络等资源,日志见 n-cpu.log
    2、源节点启动迁移操作,暂停instance
    3、在目标节点上Resume instance
    4、在源节点上执行迁移的后处理工作,删除instance
    5、在目标节点上执行迁移的后处理工作,创建XML,在Hypervisor中定义instance ,使之下次能够正常启动
 
在整个迁移过程中,长ping instance,可以发现也就是一个包的延时大了一些,可以在迁移过程中instance不会停机。
 
 
下面是共享存储迁移流程
 
有很多方式可以实现共享存储,比如可以将 instance 的镜像文件放在NFS上,或者使用NAS服务器,或者分布式文件系统。
 
我们可以使用NFS方案进行实验,将NFS路径挂载到 /opt/stack/data/nova/instances 目录
 
共享存储的迁移过程和 Block Migrate 基本上一样,只是几个环境有点区别:
 
    1、向 nova-api 提交请求的时候,不能勾选 Block Migrate
    2、因为源和目标节点都能直接访问instance 的镜像,所以目标节点在准备阶段不需要传输镜像文件,源节点在迁移后的处理阶段也不需要删除instance的目录
    3、只有instance 的状态需要从源节点传输到目标节点,整个迁移速度要快很多
 
 

O042、Live Migrate 操作的更多相关文章

  1. Live Migrate 操作 - 每天5分钟玩转 OpenStack(42)

    Migrate 操作会先将 instance 停掉,也就是所谓的“冷迁移”.而 Live Migrate 是“热迁移”,也叫“在线迁移”,instance不会停机. Live Migrate 分两种: ...

  2. Migrate Instance 操作详解 - 每天5分钟玩转 OpenStack(40)

    Migrate 操作的作用是将 instance 从当前的计算节点迁移到其他节点上. Migrate 不要求源和目标节点必须共享存储,当然共享存储也是可以的. Migrate 前必须满足一个条件:计算 ...

  3. O040、Migrate Instance 操作详解

    参考https://www.cnblogs.com/CloudMan6/p/5538599.html   Migrate 操作的作用是将instance 从当前的计算节点迁移到其他的计算节点上.   ...

  4. Unshelve Instance 操作详解 - 每天5分钟玩转 OpenStack(39)

    上一节我们 shelve instance 到 Glance,本节讨论如何通过 unshelve 操作恢复该 instance. 因为 Glance 中保存了 instance 的 image,uns ...

  5. Laravel Migrate

    artisan命令行创建migrate 格式: php artisan make:migration YourFileName 示例: php artisan make:migration creat ...

  6. OpenStack(企业私有云)万里长征第五步——虚拟机Migrate&Resize

    一.前言 上一篇文章讲了OpenStack的部署和简单操作,今天介绍一下如何实现虚拟机的Migrate以及Resize.Migrate操作和Resize操作基本上属于同一种操作,Migrate操作只是 ...

  7. rails数据库操作rake db一点心得

    问题描述,对于很多的新手rails lover来说,搞定db是件头疼的事情,当建立了一个model,测试了半天发现我草列名写错了,再过一会儿发现association里面竟然没有xxx_id,这下子s ...

  8. 1122 django中orm操作

    目录 1. 静态文件的配置 手动静态文件的访问资源 静态文件的动态绑定 2.request方法 2.1 请求方式 2.2 获取前端的请求方式 request.method 2.3 request方法 ...

  9. 1122 django属性操作orm字段数据操作

    目录 1. 静态文件的配置 手动静态文件的访问资源 静态文件的动态绑定 2.request方法 2.1 请求方式 2.2 获取前端的请求方式 request.method 2.3 request方法 ...

随机推荐

  1. HttpURLConnection 多线程下载

    影响下载的速度 * 宽带的带宽 * 服务器的限制 * 服务器的资源固定,开启的线程越多抢占的资源就越多 import java.io.InputStream; import java.io.Rando ...

  2. query和exec区别

    1.PDO::query PDO::query执行一条SQL语句,如果通过,则返回一个PDOStatement对象.PDO::query函数有个“非常好处”,就是可以直接遍历这个返回的记录集. 示例如 ...

  3. html提交表单,php在后台获取表单内容的方法_例1

    html代码:   <html>   <head>   <meta http-equiv="Content-Type" content="t ...

  4. Docker容器时间与主机时间相差8小时

    查看主机时间 [root@localhost ~]# date 2016年 07月 27日 星期三 22:42:44 CST 查看容器时间 root@b43340ecf5ef:/# date Wed ...

  5. Java相关框架概念以及思想

    1.什么是IoC Ioc—Inversion of Control,即“控制反转”,是一种思想, 一个重要的面向对象编程的法则,它能指导我们如何设计出松耦合.更优良的程序. 高内聚低耦合的设计能够让构 ...

  6. 数组中存放model去重

    在这个项目中出现"添加model数据"数组重复的情况,这就涉及到数组去重的问题了...... 1. 一开始使用的最笨的方法: 依次循环两个数组(原有的数组,选择的数组),双重for ...

  7. dtcms 手机浏览

    private string GetSitePath(string webPath, string requestPath, string requestDomain) { //获取当前域名包含的站点 ...

  8. 【HANA系列】对话SAP全球CEO孟鼎铭:未来最大的发展机遇属于中国中小企业

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]对话SAP全球CEO孟鼎铭:未来 ...

  9. EasyTouch5插件使用 EasyTouch手势检测功能

    (1)导入EasyTouch5插件,注意该插件对Unity有版本要求 (2)首先在场景中创建一个EasyTouch,这个是必需的,它是进行检测的核心组件,场景中有任何物体使用了EasyTouch的东西 ...

  10. 3分钟Markdown快速入门与使用

    Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式. 注意:图片为效果图 1 标题 #开头代表标题,几个#号代表几级,最高支持六级标题 ...