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. python pip 使用

    一.修改 pip 源 Windows 在用户目录下新建 pip\pip.ini 文件,如:C:\Users\Administrator\pip\pip.ini [global] index-url = ...

  2. Linux 查看网卡速率及版本

    查看网卡速率:ethtool 网卡名  如ethtool eth0 查看网卡驱动版本号:ethtool -i 网卡名   如ethtool -i eth0 示例: [root@nt3 ~]# etht ...

  3. sqlserver创建链接服务器连接sqlserver脚本

    示例: EXEC sp_addlinkedserver @server='MyLinkServer', --链接服务器别名 @srvproduct='', @provider='SQLOLEDB', ...

  4. linux如何离线加载docker镜像?

    1. 在已经部署了镜像的机器上获取镜像 1.1 获取镜像名 docker images 1.2 打包选中对应的镜像 docker save <image_name> -o <imag ...

  5. nginx不间断服务平滑升级

    (1)备份旧的nginx和配置文件 cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/bak_nginx #备份旧版程序 cp /usr/loc ...

  6. display:flex 布局详解(2)

    1.  flex设置元素垂直居中对齐 在之前的一篇文章中记载过如何垂直居中对齐,方法有很多,但是在学习了flex布局之后,垂直居中更加容易实现 HTML代码: <div class=" ...

  7. 机器学习 - 算法 - 集成算法 - 分类 ( Bagging , Boosting , Stacking) 原理概述

    Ensemble learning - 集成算法 ▒ 目的 让机器学习的效果更好, 量变引起质变 继承算法是竞赛与论文的神器, 注重结果的时候较为适用 集成算法 - 分类 ▒ Bagging - bo ...

  8. redis 3.2.5单机版安装、使用、systemctl管理Redis启动、停止、开机启动

    参照地址 http://www.mamicode.com/info-detail-1488639.html 前提:防火墙安装,然后打开端口,设置开机启动 一.redis源码安装 [root@host- ...

  9. koa2中间件

    在我看来,前端框架的中间件的思想来源于传统后端的切面编程(AOP)思想,比如我们常见的身份校验(JWT). axios的拦截器也是基于这种程序设计模式的. 在koa中,实际上是由一个数组对象来保存所有 ...

  10. jQuery 虚拟数字键盘代码

    先上效果:    js直接应用:  $('input').mynumkb(); 就出来效果 HTML: <input maxlength="4" type="tex ...