OpenStack服务启动故障排除经验-阿里云开发者社区

开发者社区> 技术小胖子> 正文

OpenStack服务启动故障排除经验

简介:
+关注继续查看

今天同事在配置OpenStack的计算节点(在CentOS 7上部署)时遇到一个问题,发现在控制节点上运行nova service-list发现只有4行,没有nova-compute service,让我帮他排查。

提前透露原因:这位同事在/etc/nova/nova.conf配置文件中verbose = True 写成了 verbose =Ture,我也是检查了半天(两眼对了3遍)没看出来,有点汗!

根据我以前掌握的经验,OpenStack的部署过程遇到的问题可归纳总结为配置文件问题、配置步骤缺失等,因为通常计算机不会犯错,犯错的只有人类……

故障通常有以下几种情况:

  1. 时间同步问题,两(多)个节点间时间不同步

  2. 数据库问题,权限问题,数据库缺失,表结构不存在(数据库建立表结构时出错),用户名密码错误等

  3. 软件包没有正确安装,例如国外的源网络存在波动或网站存在故障或网站临时修改了源的路径等都会导致软件包安装出现重大错误,而安装的人却没有发现

  4. 配置文件中配置出错,这种错误最为常见,往往一个不易引人注意的错误就会出现问题,就如本文刚开始的第二段所说的一样,诸如此类还有把0写成o,把1写成l,service写成server等

  5. 网络接口地址用错,例如这次的排错步骤中还发现控制节点上的endpoint-list发现public url用的是错误地址,如本地环回地址而不是管理接口地址

  6. 服务用户缺失,一般由软件bug或软件安装不正确导致,如以前有rabbitmq需要的rabbitmq不存在,导致rabbitmq的guest密码不可修改等问题。

  7. 文件权限问题,如配置文件在更换后没有配置文件权限,例如本来是root:nova的文件所有者,被换成了root:root,一定会出现服务无法正常运行的问题。

通常排错方法总结如下:

  1. 检查软件日志和系统日志,这是第一步就要做的,如果没有生成软件日志就考虑查看系统日志,可以将/var/log/messages文件清空再执行一下相关的命令,查看此文件中的日志,可以在执行命令后没有生成日志的情况下使用此方法解决这一问题(在今天的故障排除中具有关键作用)。

  2. 删除软件包时要用rpm –e packages而不要用yum erase packages,以免删除还需要用的依赖包

  3. 保留(备份)配置文件,重新安装软件包,yum reinstall packages

  4. 执行完不确定执行结果的命令后,用echo $?检查执行结果,0为没有错,1以上为有严重错误,如执行su -s /bin/sh -c "nova-manage db sync" nova时,如果遇到前面所说的数据库问题中的权限问题等就会出错,但此命令结束后并不报错。

  5. 认真比对配置文件,把注释行和空白行全部清除再做对比,grep –v \# /filepath/filename | grep –v ^$可以实现删除注释行和空白行

  6. 坚定信念,计算机不会犯错,别人能成功,那一定是自己的错!

此次故障是如何排除的:

  1. 首先发现在控制节点上运行nova service-list发现只有4行,没有nova-compute service,可以联想到计算节点上的计算服务没有运行

  2. 经过执行systemctl status openstack-nova-compute.service -l查看详细结果,发现服务没有运行,而且显示openstack-nova-compute.service start request repeated too quickly, refusing to start. Unit systemd-journald.socket entered failed state.

  3. 此时查看nova-compute的日志文件/var/log/nova/nova-compute.log时发现文件不存在

  4. 因此,应该立刻联想到,配置文件(/etc/nova/nova.conf)一定有问题,但因为对比了2-3次后依然没有确定问题

  5. 此后我又检查了系统时间、数据库、文件权限、备份配置文件后重新安装软件包等是否存在问题,结果都全部正常,最后想到第7个步骤

  6. 可以通过系统日志查看服务启动失败的原因,先将/var/log/messages文件清空(true > /var/log/messages),再重启openstack-nova-compute.service

  7. 再观察/var/log/messages文件的内容,发现提示nova配置文件中非法的布尔型值ture,

  8. 因此在配置文件(/etc/nova/nova.conf)中找到ture的位置,将此单词改为正确的true,重新启动

  9. 在控制节点上执行校验命令nova service-list,确定无其他问题,successfully!

end




本文转自 urey_pp 51CTO博客,原文链接:http://blog.51cto.com/dgd2010/1587808,如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Openfire服务器配置(Windows)
源码配置完成后,输入http://127.0.0.1:9090/即可打开Openfire服务器后台管理页。 设置语言。点击Continue,建议配置时切勿选择中文,否则后面的配置中可能会出现乱码。
1003 0
VMware虚拟机错误提示:锁定文件失败 打不开磁盘 未能启动虚拟机
版权声明:转载请联系本人,感谢配合!本站地址:http://blog.csdn.net/nomasp https://blog.csdn.net/NoMasp/article/details/51559592 背景 突然Ubuntu就崩了,再重启就一直失败。
1082 0
使用OpenApi完成云服务器ECS续费管理
在除了可以在ECS控制台或者售卖页进行云服务器续费之外,阿里云 对于包年包月的云服务器的生命周期是非常重要的,如果云服务器资源不能按时的续费将可能导致服务器被锁定。所以我们需要API方便的知道和检查资源的到期时间。
4435 0
使用OpenApi弹性创建云服务器ECS
除了可以在ECS控制台或者售卖页创建ECS之外,您可以使用OpenApi代码来弹性的创建和管理ECS。这里使用Python来作例子。 开通按量付费产品,您的账户余额不得少于100元,更多的需求参见ECS 使用须知,您需要在阿里云的费用中心确保自己的余额充足。
5904 0
使用OpenApi弹性管理云服务器ECS
阿里云的云服务器ECS除了提供控制台来进行日常的管理和资源创建,还提供了OpenApi来进行资源的管理和定制开发。通过OpenApi您可以更加灵活的管理和配置云服务器。 阿里云提供了SDK来包装OpenApi,可以让您将云服务器的管理集成到您的已有系统中。
10045 0
13262
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载