kilo版本规避config drive热迁移失败的问题

     kilo版本存在一个bug:如果虚机是通过config drive方式启动的,那么虚机无法进行热迁移。

     原因:config drive会给虚机挂在默认是iso格式的光驱设备。此设备数据会在虚机运行的宿主机的/var/lib/nova/instances/{instance-id}/目录下创建config.disk文件。由于此文件不是存放在共享存储中。导致虚机无法进行热迁移。

     社区目前也在试图解决此问题:https://bugs.launchpad.net/nova/+bug/1246201

     但是进展比较缓慢。

     为此,尝试从nova的层面规避此问题。

     思路:

              1.在热迁移时将光盘从光驱中取出,使目的主机不需要依赖config.disk文件。

              2.设置标志位config drive为空,去注册光驱。这样,此虚机将彻底去掉光驱设备。

     上述思路的前提是,虚机只有在第一次启动时,会通过config drive取得metadata设置虚机的属性,后续的运行将不再依赖config drive中的数据。

    具体的代码修改:

    nova/virt/libvirt/dirver.py:

    此文件中首先去掉对于config drive的判断,使热迁移流程可以无障碍进行:

   

def pre_live_migration(self, context, instance, block_device_info,
                       network_info, disk_info, migrate_data=None):
    """Preparation live migration."""
  去掉下面的代码段:

 

if configdrive.required_by(instance):
        # NOTE(sileht): configdrive is stored into the block storage
        # kvm is a block device, live migration will work
        # NOTE(sileht): the configdrive is stored into a shared path
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值