• OpenStack之虚拟机热迁移


    这里的环境是centos7版本,openstack K版

    1.在各个计算节点设置权限

    chmod 755 /var/lib/nova/instances

    2.修改各个节点的nova.conf(/etc/nova/nova.conf)

    vncserver_proxyclient_address=虚拟机IP  #
    vncserver_listen=0.0.0.0

    3.修改所有计算节点libvirt

    3.1 修改/etc/libvirt/libvirtd.conf文件:

    listen_tls = 0
    listen_tcp = 1
    tcp_port = "16509"
    listen_addr = "0.0.0.0"  #将此四行的注释去掉
    auth_tcp = "none"         #新增

    3.2 修改/etc/libvirt/qemu.conf文件:

    vnc_listen = "0.0.0.0"
    user = "root"
    group = "root" #去掉此三行的注释

    3.3 修改/etc/sysconfig/libvirtd文件,用来启用tcp的端口

    LIBVIRTD_CONFIG=/etc/libvirt/libvirtd.conf 
    LIBVIRTD_ARGS="--listen"  #同样,去掉注释

    4.重启libvirtd

    systemctl restart libvirtd.service

    测试:

    virsh -c qemu+tcp://服务器IP/system #请在服务器IP处填写你的服务器IP

    无错误提示的话即可进行迁移工作,若有错,可能是防火墙的问题。简单粗暴的做法是:

    
    


    
    方法1:直接关闭防火墙

    方法2:放行对应端口

    1.查看端口号
    [root@agent ~]# netstat -tulnp | grep libvirt tcp 0 0 0.0.0.0:16509 0.0.0.0:* LISTEN 31704/libvirtd

    附加:

    root@node1:~# nova list 查看实例
    
    root@node1:~# nova show 11fd9622-a948-4cdb-94d0-d8f2558cf179 查看需要迁移的实例
    
    root@node1:~# nova-manage service list 查看可用的计算节点
    
    root@node1:~# nova-manage service describe_resource node2 查看目标节点资源
    
    root@node1:~#nova live-migration 11fd9622-a948-4cdb-94d0-d8f2558cf179 node2 迁移成功,没有输出

    附上配置:

    [root@compute11 ~]# egrep -v "^#|^$" /etc/nova/nova.conf 
    [DEFAULT]
    allow_resize_to_same_host=true
    allow_migrate_to_same_host=true
    
    [libvirt]
    virt_type = kvm
    inject_password=false
    inject_key=false
    inject_partition=-2
    disk_cachemodes="network=writeback"
    images_type=rbd
    images_rbd_pool=vms
    images_rbd_ceph_conf= /etc/ceph/ceph.conf
    hw_disk_discard= unmap
    rbd_user = cinder
    rbd_secret_uuid = 457eb676-33da-42ec-9a8c-9293d545c337
    
    
    [root@compute11 ~]# egrep -v "^#|^$" /etc/libvirt/libvirtd.conf
    listen_tls = 0
    listen_tcp = 1
    tcp_port = "16509"
    listen_addr = "0.0.0.0"
    auth_tcp = "none" 
    
    [root@compute11 ~]# egrep -v "^#|^$" /etc/libvirt/qemu.conf
    vnc_listen = "0.0.0.0"
    user = "root"
    group = "root"
    
    
    [root@compute11 ~]# egrep -v "^#|^$" /etc/sysconfig/libvirtd
    LIBVIRTD_CONFIG=/etc/libvirt/libvirtd.conf 
    LIBVIRTD_ARGS="--listen"

     注意:不同CPU的计算有可能只能单向动态迁移;因为指令集少的计算节点可以向指令集多的计算节点迁移,而多的不能往少的计算节点迁移;

    参考:

    http://www.cnblogs.com/voidy/p/4041391.html

  • 相关阅读:
    HDU 1698 Just a Hook(线段树成段更新)
    HDU 1247 Hat's Words (map+string)
    python三大框架之一flask中cookie和session的相关操作
    python三大框架之一flask应用
    python三大框架之一(flask介绍)
    pandas中遍历dataframe的每一个元素
    Python中pandas dataframe删除一行或一列:drop函数
    gevent多协程运用
    利用selenium并使用gevent爬取动态网页数据
    使用selenium 模拟人操作请求网页
  • 原文地址:https://www.cnblogs.com/zhongguiyao/p/7920655.html
Copyright © 2020-2023  润新知