zoukankan      html  css  js  c++  java
  • OpenStack 冷热迁移

    什么是热迁移

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

    openstack热迁移

    OpenStack有两种在线迁移类型:live migration和block migration。Livemigration需要实例保存在NFS共享存储中,这种迁移主要是实例的内存状态的迁移,速度应该会很快。Block migration除了实例内存状态要迁移外,还得迁移磁盘文件,速度会慢些,但是它不要求实例存储在共享文件系统中。

    NFS允许一个系统在网络上与他人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。

    热迁移条件:

    1.计算节点之间可以通过主机名互相访问

    2.计算节点和控制节点的nova uid和gid保持一致

    3.vncserver_proxyclient_address和vncserver_listen 监听的是本地IP

    4.必须有共享存储,实例存放在共享存储中,且每个计算节点都可以访问共享存储。否则只能使用块迁移

    添加live_migration_flag

    修改nova的配置文件,在[libvirt] 段下 添加如下字段

    live_migration_flag="VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_PERSIST_DEST,VIR_MIGRATE_TUNNELLED"

    修改libvirt配置

    配置versh免密码连接,修改/etc/libvirt/libvirtd.conf

    添加如下配置

    listen_tls = 0

    listen_tcp = 1

    tcp_port = "16509"

    listen_addr = "172.16.201.8" #根据自己的计算节点IP改写

    auth_tcp = "none"

    修改/etc/sysconfig/libvirtd 添加如下参数

    LIBVIRTD_CONFIG=/etc/libvirt/libvirtd.conf

    LIBVIRTD_ARGS="--listen"

    重启libvirt

    systemctl restart libvirtd.service

    查看监听端口:

    [root@compute1 ~]# netstat -lnpt | grep libvirtd

    tcp 0 0 172.16.206.6:16509 0.0.0.0:* LISTEN 9852/libvirtd

    测试:

    在compute1节点上:

    virsh -c qemu+tcp://compute2/system

    在compute2节点上

    virsh -c qemu+tcp://compute1/system

    如果能无密码连接上去,表示配置没问题

    • 查看所有实例

    nova list

    • 查看需要迁移虚拟机实例

    nova show f3d749ba-98e1-4624-9782-6da729ad164c

    • 查看可用的计算节点
      nova-manage service list
    • 查看目标节点资源
      nova-manage service describe_resource computer1
    • 开始迁移,正常无任何回显

    nova live-migration 8da00f69-05f6-4425-9a8a-df56b79a474f computer1

    • 也可以通过dashboard 节点迁移
      用节点迁移需要使用admin管理员用户执

    冷迁移配置

    冷迁移需要启动nova账户,并配置ssh 免密码认证

    usermod -s /bin/bash nova

    su - nova

    ssh-keygen -t rsa

    #生成密钥

    cp -fa id_rsa.pub authorized_keys

    将密钥复制到所有计算节点的/var/lib/nova/.ssh下,并设置权限为nova用户

    编辑/etc/nova/nova.conf的配置文件,修改下面参数

    allow_resize_to_same_host=True

    scheduler_default_filters=RetryFilter,AvailabilityZoneFilter,RamFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter

    在计算节点重启nova服务

    systemctl restart openstack-nova-compute

    在controller节点重启nova 相关服务

    systemctl restart openstack-nova-api.service openstack-nova-scheduler.service

    北丐洪七公--Jeff
    Dignity comes from strength, strength comes from struggle!
    本文版权归作者和博客园共有,欢迎转载,未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    用Asp获取Dll加密新闻内容
    Silverlight编译范围
    c++连接mssql
    委托理解
    NClass,终于找到了可以绘制类图的工具了!
    RIATasks: A Simple Silverlight CRUD Example (using View Model)
    PetaPoco使用
    匿名方法,Action,Func以及lambda的区别
    第一个c++
    System.Threading中Thread和Task区别
  • 原文地址:https://www.cnblogs.com/wangyifu/p/7741944.html
Copyright © 2011-2022 走看看