由于qemu-kvm 版本不一致导致openstack迁移失败

背景: 由于openstack云平台压力过大,扩容了3台计算节点。基础环境略。

因以前扩容过计算节点,有现成的脚本,本以为这次扩容so easy,但过程却很坎坷,所以记录以下,以备后患。

流程:

上架、装机、联网,非常顺利,接下来轮到我装了,按照脚本跑了一遍,发现系统升级到centos7.5 了,这里我偷了懒(没有做本机yum 源,生产环境不可轻易升级版本,所以一定要做本地yum 源),升级就升级吧,安装openstack-nova-compute、neutron-linuxbridge-agent,顺利进行着。

测试:

先来个cirros 测试一下,可以正常创建实例

热迁移一下,

1.在dashboard 上面进行,从旧计算节点迁移到新计算节点,成功

2.新节点迁回旧节点发现报错,错误:实例热迁移到主机xxx,失败

查nova-compute的log ,发现没有任何报错,很奇怪。

3.在新节点之间做热迁移,是可以迁移成功的。

这下诡异了,开始排查问题

1.对比配置,一致

2.系统的kernel 不一致,centos 7.5 、centos7.4

3.nova 版本  不一致,一个9.1.2,一个是9.1.1

4.neutron版本一致

5.libvirtd 版本不一致,一个3.9 一个是3.2

改吧:

1.先对kernel 进行降级,这个不费事,下载旧节点kernel 版本,安装也顺利,

结果

测试热迁移,结果报错,

2.nova 版本 升级,把旧版本升级到新版本9.1.2,直接yum update openstack-nova-compute 即可,不用担心配置文件,是不会覆盖的

结果

测试还是报错

3.libvirtd 版本升级到3.9 测试还是报错

在上述3个过程中,迁移失败的时候都没有任何报错,这就很奇葩,搞得也很无从下手。

去google 寻找灵感,也没有找到合适的方法。

上述经历了一次重装机器,真心这么人( ⊙ o ⊙ )啊!

去各种openstack qq群把问题抛出来,有个qq 好友让我看看,系统messages 的日志,有没有记录以下错误

看messages 的时候发现自己遗漏一个日志,那就是libvirtd的日志,以前报错就查nova 、neutron或者是controler节点的日志,忘记了openstack 最底层就是libvirtd,找到这个实例的libvirtd 日志,如下:

tailf /var/log/libvirt/qemu/instance-0000057
instance-00000570.log  instance-00000573.log  
[root@bjyz-compute27 qemu]# tailf /var/log/libvirt/qemu/instance-00000573.log 
2018-11-14 03:41:26.879+0000: starting up libvirt version: 3.9.0, package: 14.el7_5.8 (CentOS BuildSystem <http://bugs.centos.org>, 2018-09-26-18:30:11, x86-01.bsys.centos.org), qemu version: 2.10.0(qemu-kvm-ev-2.10.0-21.el7_5.7.1), hostname: bjyz-compute27.jkabc.com
LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin QEMU_AUDIO_DRV=none /usr/libexec/qemu-kvm -name guest=instance-00000573,debug-threads=on -S -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain-10-instance-00000573/master-key.aes -machine pc-i440fx-rhel7.4.0,accel=kvm,usb=off,dump-guest-core=off -cpu Skylake-Client-IBRS,ss=on,hypervisor=on,tsc_adjust=on,pdpe1gb=on,mpx=off,xsavec=off,xgetbv1=off -m 64 -realtime mlock=off -smp 1,sockets=1,cores=1,threads=1 -uuid d5b6f7c0-c07f-455a-99c6-c9e288c7f387 -smbios 'type=1,manufacturer=RDO,product=OpenStack Compute,version=16.1.1-1.el7,serial=aef6ab5e-d517-4838-bfc8-26c8c523d939,uuid=d5b6f7c0-c07f-455a-99c6-c9e288c7f387,family=Virtual Machine' -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/domain-10-instance-00000573/monitor.sock,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc,driftfix=slew -global kvm-pit.lost_tick_policy=delay -no-hpet -no-shutdown -boot strict=on -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -device virtio-scsi-pci,id=scsi0,bus=pci.0,addr=0x4 -object secret,id=scsi0-0-0-0-secret0,data=w3czKMHbDQ+MJgLid+T/N5/dMNk3y3G6sCqQHdktWyE=,keyid=masterKey0,iv=UqhyBquz88C33+Y5oInq5A==,format=base64 -drive 'file=rbd:vms/d5b6f7c0-c07f-455a-99c6-c9e288c7f387_disk:id=cinder:auth_supported=cephx\;none:mon_host=192.168.200.20\:6789\;192.168.200.21\:6789\;192.168.200.22\:6789\;192.168.200.23\:6789\;192.168.200.24\:6789,file.password-secret=scsi0-0-0-0-secret0,format=raw,if=none,id=drive-scsi0-0-0-0,cache=writeback,discard=unmap' -device scsi-hd,bus=scsi0.0,channel=0,scsi-id=0,lun=0,drive=drive-scsi0-0-0-0,id=scsi0-0-0-0,bootindex=1 -netdev tap,fd=33,id=hostnet0,vhost=on,vhostfd=35 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=fa:16:3e:ee:e3:a1,bus=pci.0,addr=0x3 -add-fd set=2,fd=37 -chardev pty,id=charserial0,logfile=/dev/fdset/2,logappend=on -device isa-serial,chardev=charserial0,id=serial0 -device usb-tablet,id=input0,bus=usb.0,port=1 -vnc 0.0.0.0:5 -k en-us -device cirrus-vga,id=video0,bus=pci.0,addr=0x2 -incoming defer -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5 -msg timestamp=on
2018-11-14 03:41:26.879+0000: Domain id=10 is tainted: high-privileges
2018-11-14T03:41:26.935254Z qemu-kvm: -chardev pty,id=charserial0,logfile=/dev/fdset/2,logappend=on: char device redirected to /dev/pts/6 (label charserial0)
2018-11-14T03:41:27.308111Z qemu-kvm: warning: TSC frequency mismatch between VM (2099998 kHz) and host (2099997 kHz), and TSC scaling unavailable
2018-11-14 05:20:08.325+0000: initiating migration
2018-11-14 05:20:08.584+0000: shutting down, reason=migrated
2018-11-14T05:20:08.584976Z qemu-kvm: terminating on signal 15 from pid 137281 (/usr/sbin/libvirtd)

发现有个warning:qemu-kvm: warning: TSC frequency mismatch between VM (2099998 kHz) and host (2099997 kHz), and TSC scaling unavailable

艹,这个是qemu-kvm 版本不匹配啊,对比了一下新旧节点的qemu-kvm版本,确实不一样,

新节点:

qemu]# qemu-img --version
qemu-img version 2.10.0(qemu-kvm-ev-2.10.0-21.el7_5.7.1)

旧节点:

qemu-img --version
qemu-img version 2.9.0(qemu-kvm-ev-2.9.0-16.el7_4.14.1)
Copyright (c) 2003-2017 Fabrice Bellard and the QEMU Project developers


应该是这个问题了,底层版本不一样,日志肯定到不来 nova 那,这个估计也是pike 社区版的一个Bug 。

先升级节点: ##不用担心 该节点上的实例是否down ,直接

yum update qemu-img

重启

systemctl restart openstack-nova-compute libvirtd 

再次测试,openstack -nova-compute 的log 日志开始打印了,实例也顺利迁移。

此次排查经历2个工作日,血的教训,升级需谨慎,自己的坑自己填。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

石兴稳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值