openstack排错经历

     

     整个安装过程,报错是最经常的事,毕竟openstack的很多东西都还不成熟,冷静的排错才是王道,尽管openstack错误不断,但是最终他还是能跑起来的。

     出错时候,我本着内事问百度,外事问谷歌的原则寻求帮助,另外也从网上的同行朋友处汲取帮助,可以说错误是多种多样的,这里也只能列举几种常见的错误,未尽之处,各位按照查自己的步骤,查log,查bug列表,launchpad,求助中国同行朋友,求助邮件列表里的外国朋友的顺序排错吧。

1 各组件同步数据库时候报错:

这个时候报错大体上都是数据库拒绝访问或者找不到数据库,排错方法如下:

1. 检查数据库里是否建立了相应数据库

2. 检查数据库的权限是否存在问题,ubuntu 12.04 mysql需要给本机一个权限,

添加grant all on keystone.* to ‘keystone’@'controller’ identified by ‘ruijie’;给本机一个权限

3. 检查配置文件中mysql的地址、用户名、密码是否填写正确

2 Details: [Errno 111] Connection refused

这类错误很明显是keystone和相应模块的连接问题,检查keystone的日志,如果没有相应服务的报错记录,猜测应该是其他部件的授权地址出错,有相应记录,一般是授权出错,检查各部件配置文件中的授权token是否正确,检查keystone的数据是否正确,用户、服务、endpoint是否存在。如果之前的办法还是不行,重启服务,或者直接aptget remove —purge相应组件,重新安装。

3 依赖包错误

例子:ImportError: No module named keystone.middleware.auth_token

由于swift原来是独立的项目,所以Swift安装后需要keystone的相应模块,如果没有就会报这个错误,解决方法也很简单:apt-get install python-keystone python-keystoneclient

手动安装,常常会出现这种错误,但是往往以google就能解决

4本身bug错误

ValueError: invalid literal for int() with base 10: 'true'

在启动swift代理节点的时候,很郁闷的是,我明明没改几个地方,为什么值会错误,这个错误只要将配置文件中改为delay_auth_decision = 1就可以了,大众化的bug你一问度娘,答案就出来了,如果自己没有做致命修改,基本可以怀疑是openstack的问题

5实例错误

最为普遍,也最头大,原因五花八门,表现为服务在nova-manage service list中都正常,但是启动实例时出错,这时需特别注意dashboard启动实例时出错的位置,networking?还是spaning?还是scheduler?不同阶段查看不同地方的日志,最常见的有以下几个:

1. 网络配置错误导致分配不了IP地址,如果IP地址未分配那么可能就是这个错误

解决;核对标准配置文件,检查网络配置错误

2. rabbitmq或者其他什么组件没有运行

查看日志即可发现,这个的原因又很多样,这些组件正常情况下,是不会停掉的,一般是错误修改配置后才会,回忆自己出错之前做的修改,还原回来即可修复

6 僵尸实例的产生

僵尸实例一般是非法的关闭nova或者底层虚拟机,又或者在实例错误时删除不了的错误,注意用virsh list检查底层虚拟机是否还在运行,有的话停掉,然后直接进入数据库删除。

# mysql -u root -p

Enter password:

mysql> use nova;

mysql> SET FOREIGN_KEY_CHECKS=0;

Query OK, 0 rows affected (0.00 sec)

mysql> delete from instances where id = '29';

Query OK, 1 row affected (0.04 sec)

mysql> delete from instances where id = '30';

Query OK, 1 row affected (0.04 sec)

mysql> SET FOREIGN_KEY_CHECKS=1;

Query OK, 0 rows affected (0.00 sec)

 

 

 

8月3日

root@openstack-controller:~# keystone user-list
Expecting authentication method via
  either a service token, --token or env[SERVICE_TOKEN],
  or credentials, --os_username or env[OS_USERNAME].
export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=admin
export OS_AUTH_URL=http://localhost:5000/v2.0/


root@openstack-controller:~# glance index
Failed to show index. Got error:
There was an error connecting to a server
Details: [Errno 111] Connection refused

初步判定为keystone的问题检查keystone的日志为空。。。
删除service和endpoint重试

就是glance与keystone的连接问题
应该先装好keystone后装glance
这里删除glance重新配aptget remove --purge
同时注意删除数据库


Starting proxy-server...(/etc/swift/proxy-server.conf)
Traceback (most recent call last):
  File "/usr/bin/swift-proxy-server", line 22, in <module>
    run_wsgi(conf_file, 'proxy-server', default_port=8080, **options)
  File "/usr/lib/python2.7/dist-packages/swift/common/wsgi.py", line 122, in run_wsgi
    loadapp('config:%s' % conf_file, global_conf={'log_name': log_name})
  File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 247, in loadapp
    return loadobj(APP, uri, name=name, **kw)
  File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 271, in loadobj
    global_conf=global_conf)
  File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 296, in loadcontext
    global_conf=global_conf)
  File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 320, in _loadconfig
    return loader.get_context(object_type, name, global_conf)
  File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 450, in get_context
    global_additions=global_additions)

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值