CAS虚拟机迁移虚拟机卡住。
参考官网文档《H3C CAS云计算管理平台 虚拟机快照、迁移、备份常见问题与排查手册》
在线迁移虚拟机至其他主机,迁移超时时间设置为零。进行迁移时,任务台中迁移任务的进度卡在99%,卡住时间较长。
该问题一般是由于管理网带宽不足,虚拟机内存变化率超过网络迁移速度而导致的。
问题排查方法:在迁移源主机后台执行virsh domjobinfo vmname命令来查询迁移的详细情况。排查时多执行几次,查看内存的变化情况,如果确实有变化,则表示内存的变化率比较大。
问题解决方法共有三种,请选择其中一种进行处理,在条件允许的情况下,优先考虑暂停源虚拟机。
· 暂停源主机完成迁移,在主机后台执行virsh suspend vmname命令暂停虚拟机,使其可以完成迁移。需要注意的是,此操作会影响虚拟机的业务运行。
· 修改迁移downtime,默认值为300sms,可以临时修改大一点。执行virsh migrate-setmaxdowntime vm-name –downtime 1000命令,将downtime修改为1000ms,该时间相当于业务中断时间,即暂停1000ms以完成迁移。
· 取消迁移任务,在主机后台执行virsh domjobabort vmname命令,使得迁移任务失败,可以在网络状况好转后尝试重新迁移。需要注意的是,此操作可能会对虚拟机数据的一致性产生影响,请谨慎操作。
在线迁移虚拟机卡在99%,任务无法结束,目的端主机中后台查看到虚拟机处于暂停状态。
需要查看虚拟机堆栈信息,libvirt日志或者qemu日志进行定位。
(1) 首先确定虚拟机迁移的源CVK主机
(2) SSH源CVK主机登录后台,执行virsh list –-all命令查看该虚拟机的ID。
(3) 通过执行virsh list --all命令查看目的CVK的主机情况。如下图所示,可看出该虚拟机处于paused状态。
(4) 执行virsh qemu-monitor-command 11 --hmp --cmd info migrate命令在源CVK主机后台,查看该虚拟机迁移的内存剩余情况,其中“11”为源CVK上待迁移虚拟机的ID。
(5) 可以执行watch "virsh qemu-monitor-command 11 --hmp --cmd info migrate"命令持续查。
(6) 如果确认remaining ram始终在变化,则建议等待。
(7) 如果remaining ram为0或者无变化,建议执行virsh suspend 11命令暂停虚拟机,将虚拟机迁移到目的CVK中。需要注意的是,该操作会影响虚拟机业务的运行。
(8) 在目的CVK后台可以看到虚拟机已经running。
(9) 在CVM管理页面,看到迁移任务为100%完成
在线迁移主机和存储,任务台进度卡在99%,卡住时间较长。
该问题的原因可能有两个:
· 可能是存储性能差,存储没有迁移完成。
· 另一个可能是内存没有迁移完成。
问题排查方法:
· 在目的主机上执行ps -ef | grep scp查看是否有SCP拷贝的进程,同时在源主机执行virsh domjobinfo vmname命令查询迁移的详细情况,如果目的主机看到有SCP拷贝的进程,源主机还没有真正的迁移任务,则此时迁移还未真正开始,此阶段卡住的话,一般是虚拟机存储比较大,或者是存储性能比较差。
· 如果在源主机执行virsh domjobinfo vmname命令查询到了迁移的详细情况,说明此时已经开始迁移,可能会遇到问题一提到的内存变化率太大,无法迁移完成的情况。
问题解决方法:
· 如果当前操作正处于使用SCP进行文件拷贝的阶段,并且进度较慢,建议耐心等待直至拷贝完毕。若确有紧急情况需取消操作,一种可行的方法是重启Tomcat服务:首先终止Tomcat进程(kill tomcat),随后重新启动Tomcat(start tomcat)。需要注意的是,该方法潜在存在一定的问题和风险,因此并不推荐采用此种做法。
用户可以通过目的主机存储池的已用空间和虚拟机磁盘的总大小以及虚拟机存储的迁移速度,大致评估存储迁移的剩余时间。
· 如果是处于内存无法迁移完成的阶段,可以参考迁移超时时间设置为0时,迁移虚拟机任务卡在99%章节,将虚拟机暂停或者临时修改迁移downtime,以便完成迁移。
一些较早版本的CAS以不中断业务方式升级至E0730分支E0730P08及后续版本,若虚拟机硬件版本低于2.12,在通过以更改主机方式迁移虚拟机至其他主机时会出现虚拟机暂停,业务中断。
在E0730P08版本开始合入postcopy迁移新特性,该特性在虚拟机硬件版本低于2.12时不适配,导致升级至目标版本后从界面迁移虚拟机出现暂停。
问题解决方法:
· 1、建议沟通停机窗口修改硬件版本至2.12及以上版本,将虚拟机关机或重启后后再进行迁移;
· 2、如果虚拟机没有停机窗口,可在升级至目标版本后迁移虚拟机前临时关闭postcopy功能。
虚拟机在线迁移失败,报错internal error: Missing Monitor reply object。
libvirt 报错internal error: Missing Monitor reply object,该报错指向不明,能确定的是qemu进程未能正常运行,具体需要查看虚拟机的qemu日志。
问题解决方法:
· qemu日志中显示error while loading state for instance …/virtio-net,表示虚拟机中virtio 网卡状态出现了不一致,一般怀疑是虚拟机内部系统出了问题,可以通过VNC连接虚拟机,禁用网卡再重新启用,如果还有问题,请尝试关闭虚拟机,将其迁移至其他主机再尝试运行。
· qemu日志中显示unknown savevm section or instance …/virtio-blk,表示原迁移主机与目的主机的内部磁盘设备不一致。一般是由于热删除磁盘时,内部出现正在使用或未知问题导致的;或者在版本在升级过程中,虚拟机qemu版本未真正生效,又进行磁盘热添加操作等。可以执行如下命令,检查磁盘设备是否一致。如果确定是由于该问题引起的故障,需要关闭虚拟机并迁移至其他主机,消除磁盘设备的不一致。
virsh domblklist vm-name//列出虚拟机的块设备(如磁盘)列表。可以帮助检查当前虚拟机配置中的磁盘设备情况,如设备数量、路径、类型等。
virsh qemu-monitor-command vm-name -hmp info block//获取 QEMU 内部的块设备信息。可以详细列出虚拟机当前使用的块设备的状态、类型、后端信息等。用于检查运行中的虚拟机块设备和实际配置是否一致。
virsh qemu-monitor-command vm-name -hmp info pci//获取虚拟机 PCI 设备的信息。这可以帮助检查虚拟机中的 PCI 设备配置,包括 Virtio-blk 设备在 PCI 总线中的情况。通过此命令可以确认设备的热插拔操作是否成功,设备是否在期望的位置等。
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作