zoukankan      html  css  js  c++  java
  • 第 5 章 Nova

    Live Migrate 操作详解

     

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

     

    Live Migrate 分两种:

    1、源和目标节点没有共享存储,instance 在迁移的时候需要将其镜像文件从源节点传到目标节点,这叫做 Block Migration(块迁移)

    2、源和目标节点共享存储,instance 的镜像文件不需要迁移,只需要将 instance 的状态迁移到目标节点。

     

    源和目标节点需要满足一些条件才能支持 Live Migration:

    1、源和目标节点的 CPU 类型要一致。

    2、源和目标节点的 Libvirt 版本要一致。

    3、源和目标节点能相互识别对方的主机名称,比如可以在 /etc/hosts 中加入对方的条目。

     

    4、在源和目标节点的 /etc/nova/nova.conf 中指明在线迁移时使用 TCP 协议。

     

    5、Instance 使用 config driver 保存其 metadata。

    在 Block Migration 过程中,该 config driver 也需要迁移到目标节点。

    由于目前 libvirt 只支持迁移 vfat 类型的 config driver,所以必须在 /etc/nova/nova.conf 中明确指明 launch instance 时创建 vfat 类型的 config driver。

     

    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 libvirtd restart

     

     

    非共享存储 Block Migration

     

    流程图如下:

    1、向 nova-api 发送请求

    2、nova-api 发送消息

    3、nova-compute 执行操作

     

     

    详细分析:

    1、向 nova-api 发送请求

    客户(可以是 OpenStack 最终用户,也可以是其他程序)向API(nova-api)发送请求:“帮我将这个 Instance 从节点 A Live Migrate 到节点 B”

    源节点是 devstack-compute,目标节点是 devstack-controller,因为是非共享存储,记得将“Block Migration”勾选上。

    这里还有一个“Disk Over Commit”选项,如果勾选了此选项,nova 在检查目标节点的磁盘空间是否足够时,是以 instance 磁盘镜像文件定义的最大容量为准;

    否则,以磁盘镜像文件当前的实际大小为准。

     

    2、nova-api 发送消息

    nova-api 向 Messaging(RabbitMQ)发送了一条消息:“Live Migrate 这个 Instance”。源代码在 /opt/stack/nova/nova/compute/api.py,方法是 live_migrate。

     

    3、nova-compute 执行操作

    源和目标节点执行 Live Migrate 的操作过程如下:

    1、目标节点执行迁移前的准备工作,首先将 instance 的数据迁移过来,主要包括镜像文件、虚拟网络等资源,

    2、源节点启动迁移操作,暂停 instance

    3、在目标节点上 Resume instance

    4、在源节点上执行迁移的后处理工作,删除 instance

    5、在目标节点上执行迁移的后处理工作,创建 XML,在 Hypervisor 中定义 instance,使之下次能够正常启动。

    6、Instance 在 Live Migrate 的整个过程中不会停机,通过 Ping 操作来观察

     

     

    共享存储 Live Migration

     

    共享存储的实现方式:

    NFS 服务器

    NAS 服务器

    分布式文件系统

     

    采用 NFS 方案---搭建 NFS 环境

     

    使用 NFS 服务器,共享其目录 /opt/stack/data/nova/instances。

    devstack-compute 、devstack-controller 作为 NFS 客户端将此目录 mount 到本机

    这样 OpenStack 的 instance 在 devstack-controller 和 devstack-compute 上就实现了共享存储。

     

    共享存储的迁移过程与 Block Migrate 基本上一样,只是几个环节有点区别:

    1、向 nova-api 提交请求的时候,不能勾选“Block Migrate”

    2、因为源和目标节点都能直接访问 instance 的镜像,所以目标节点在准备阶段不需要传输镜像文件,源节点在迁移后处理阶段也无需删除 instance 的目录。

    3、只有 instance 的状态需要从源节点传输到的目标节点,整个迁移速递比 Block Migration 快很多。

    ----------------------------------------------------引用来自-----------------------------------------------------------

    https://www.cnblogs.com/CloudMan6/p/5554549.html

    https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587782&idx=1&sn=e9b08fde010d86af6f2e1ee45ff4d2f3&chksm=8d30815fba470849fa854cb5718327b2c27c3c998108cfb3ac5ecaf377a33d4486f64b785130&scene=21#wechat_redirect

  • 相关阅读:
    ios 设置本地化显示的app名称
    iOS 统一配置
    iPhoneX && iOS11 适配
    手机如何和电脑 无线连接 使用adb命令配合连接
    使用adb命令查看APP包名 和 包入口方法
    Charles下载及安装破解-自己编辑
    修改表里面里面的 所有账号的密码
    Xshell6会话管理器无意中关闭,在哪里打开
    工作中常用的Linux命令
    使用adb命令连接模拟器且安装apk
  • 原文地址:https://www.cnblogs.com/gsophy/p/11051874.html
Copyright © 2011-2022 走看看