关于在线迁移中对cpu的检查问题

因为最近一直在研究openstack的live-migration,配置好之后进行迁移过程中发现了一些问题,这里进行记录


首先是关于nfs,这个nfs服务器可以跑在任意一个节点上,只要配置好,不必非得将它部署子控制节点,这样可以减少controller的负担

其次是,在live-migration之前,要对计算节点的核进行检查,而且配置文件里对核的检查很苛刻。

比如我们的计算节点,有的是i3,有的是i5,这些节点之间的迁移就会因为核的检查不通过而不能进行迁移。通过看log文件,发现是/nova/virt/libvirt/driver.py文件里函数check_can_live_migrate_destination中的self._compare_cpu(source_cpu_info)导致出错,将这行注释后,满心欢喜的进行实验,发现还是有问题,这时问题变了,是在实际的迁移中_live_migration函数中的dom.migrateToURI(CONF.live_migration_uri % dest,   

这一行导致的错误,错误的原因还是cpu的检查

那么要想解决这个问题,要么彻底避开对cpu的检查,要么自己设计一个检查策略,不要这么苛刻

为了省事,我们现在选择了前者,也就是完全避开对cpu的检查

通过对问题的反复求证,发现问题的根结在各个instance的配置文件上,我们打开instance的配置文件(如果你没有在nova的配置文件里进行特殊指明,一般是在/var/lib/nova/instances目录下),找到相应的目录,里面有一个文件叫libvirt.xml,打开看到第28行,一般会看到cpu的匹配规则,默认应该是host-mode

因为我们想完全避开对cpu的检查,所以要对这个配置文件进行相应的更改

那么怎么进行更改呢?不能手动的对这个文件进行更改吧?

通过查阅文件,发现我们应该改的地方是/nova/virt/libvirt/driver.py这个文件里的第1975行,注意观察发现:

if mode is None:
            if CONF.libvirt_type == "kvm" or CONF.libvirt_type == "qemu":
                mode = "host-model"
            else:
                mode = "none"


意思很明显,因为openstck默认用的大多数是kvm,所以这里的mode设置成了host-model,这里也就是上面我们提到的libvirt.xml文件里的对应的配置

那么,我们把上面这几行全都注释掉,mode就成了none,这样就完全的不对cpu进行检查


经过这一番折腾,终于可以在不同的配置的计算节点之间互相的在线迁移

下面要做到是借助于libvirt对instance进行实时的监控,希望顺利

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值