CloudUltra虚拟机创建异步失败的解决方法
本文最后更新于 547 天前,其中的信息可能已经有所发展或是发生改变。

解决之前先来看一下现在的环境,目前的生产环境是 CloudUltra V4.4(OpenStack底层) 搭配惠普3Par盘阵存储的虚拟化集群。

问题描述

系统在创建虚拟机时3-7秒左右就提示失败,错误内容为 createVirtualMachine 异步失败。尝试创建云硬盘也会爆出相同的错误。但是此时所有虚拟机运行良好,已创建的硬盘可以挂载并使用。

解决思路

之前曾经出现过这个问题,当时属于RabbitMQ集群出现异常,但是计划排查时遇到了问题:在之前的情况下,根据失败ID在haihe服务器上查看openstack-gateway.log(/var/log/haihe/openstack-gateway/openstack-gateway.log)日志,可以通过日志中的 OS-EXT-SRV-ATTR:host 参数上确定该虚拟机分配的计算节点,但是这里观看的参数为 null ,代表该虚拟机尚未分配计算节点就进入了异常状态。

此时尝试使用rabbitmq卡顿的方法来解决问题,在所有控制节点上执行了以下命令:

执行后再次尝试创建虚拟机,问题依旧。此时考虑到另一种可能导致异步失败的原因,既然创建云硬盘依旧报警,有一定概率是3par出现问题。登录3par执行命令:

观察输出,大部分节点均为ready状态,不存在loss_sync。到机房查看光模块也都正常。到这里可以暂时排除硬件问题,继续检查服务状态,还是3par上执行:

这里发现了异常,CU的链接是通过3par的Web Services API的,所以正常情况下不应出现空列表,这个情况代表CU已经无法对3par进行操作,只能使用以前创建的存储了。此时到haihe服务器使用telnet 3par_ip 8008 命令无法正常访问,怀疑是服务出了问题。

检查3par是否开启了http端口,输出中HTTP_State状态为Enable。怀疑3par服务卡死,重启wsapi。

启动成功后,再次使用showwsapisession命令,发现连接数依旧是空。此时可以判断是CU底层的cinder出现了问题。在所有的控制节点上执行下列命令重启cinder服务:

重启后,观察日志文件volume.log(/var/log/cinder/volume.log),当出现Driver post PRC initialization completed successfully. 时意味着该服务已经重启成功。重启后在3par上查看wsapisession,发现有haihe节点没有成功的重新连接,此时还需在haihe上执行下列命令以重启haihe的3par agent。

重启后,再次创建云主机或硬盘,很快创建成功,问题解决。

结论

分配计算节点后异步失败,查看计算节点日志和rabbitmq队列是否堆积,大概率是队列卡死导致。(清理队列,重启服务)

没有分配节点,查是否3par连接失败或服务失败。(参考上文重启对应服务)

虚拟机异步失败大部分都是由于存储导致的,切记。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇