阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Openstack Cinder创建卷错误排错过程

172次阅读
没有评论

共计 7523 个字符,预计需要花费 19 分钟才能阅读完成。

由于项目中使用的 OpenStack 一直停留在 F 版本,因此在操作系统(Ubuntu 12.04 LTS)不断更新的情况下,难免会出现各种莫名其妙的问题。

安装完 Openstack,各子模块均运行正常,开始功能测试,发现 cinder 创建 volume 命令发起之后后台报错:

2014-01-04 09:43:10 WARNING cinder.scheduler.manager [req-668ac624-60d5-488c-9e89-5cb915dc6c72 d6c0ca6fec41473f8ac53a8da4c3c38a c804f639bf4c47a29bb9aac195f4744c] Failed to schedule_create_volume: Scheduler Host Filter AvailabilityZoneFilter, CapacityFilter, CapabilitiesFilter could not be found.
2014-01-04 09:43:10 ERROR cinder.openstack.common.rpc.amqp [-] Exception during message handling
2014-01-04 09:43:10 TRACE cinder.openstack.common.rpc.amqp Traceback (most recent call last):
2014-01-04 09:43:10 TRACE cinder.openstack.common.rpc.amqp  File “/opt/stack/cinder/cinder/openstack/common/rpc/amqp.py”, line 276, in _process_data
2014-01-04 09:43:10 TRACE cinder.openstack.common.rpc.amqp    rval = self.proxy.dispatch(ctxt, version, method, **args)
2014-01-04 09:43:10 TRACE cinder.openstack.common.rpc.amqp  File “/opt/stack/cinder/cinder/openstack/common/rpc/dispatcher.py”, line 145, in dispatch
2014-01-04 09:43:10 TRACE cinder.openstack.common.rpc.amqp    return getattr(proxyobj, method)(ctxt, **kwargs)
2014-01-04 09:43:10 TRACE cinder.openstack.common.rpc.amqp  File “/opt/stack/cinder/cinder/scheduler/manager.py”, line 114, in create_volume
2014-01-04 09:43:10 TRACE cinder.openstack.common.rpc.amqp    context, ex, request_spec)
2014-01-04 09:43:10 TRACE cinder.openstack.common.rpc.amqp  File “/usr/lib/Python2.7/contextlib.py”, line 24, in __exit__
2014-01-04 09:43:10 TRACE cinder.openstack.common.rpc.amqp    self.gen.next()
2014-01-04 09:43:10 TRACE cinder.openstack.common.rpc.amqp  File “/opt/stack/cinder/cinder/scheduler/manager.py”, line 103, in create_volume
2014-01-04 09:43:10 TRACE cinder.openstack.common.rpc.amqp    filter_properties)
2014-01-04 09:43:10 TRACE cinder.openstack.common.rpc.amqp  File “/opt/stack/cinder/cinder/scheduler/filter_scheduler.py”, line 66, in schedule_create_volume
2014-01-04 09:43:10 TRACE cinder.openstack.common.rpc.amqp    filter_properties)
2014-01-04 09:43:10 TRACE cinder.openstack.common.rpc.amqp  File “/opt/stack/cinder/cinder/scheduler/filter_scheduler.py”, line 118, in _schedule
2014-01-04 09:43:10 TRACE cinder.openstack.common.rpc.amqp    filter_properties)
2014-01-04 09:43:10 TRACE cinder.openstack.common.rpc.amqp  File “/opt/stack/cinder/cinder/scheduler/host_manager.py”, line 218, in get_filtered_hosts
2014-01-04 09:43:10 TRACE cinder.openstack.common.rpc.amqp    filter_classes = self._choose_host_filters(filter_class_names)
2014-01-04 09:43:10 TRACE cinder.openstack.common.rpc.amqp  File “/opt/stack/cinder/cinder/scheduler/host_manager.py”, line 185, in _choose_host_filters
2014-01-04 09:43:10 TRACE cinder.openstack.common.rpc.amqp    raise exception.SchedulerHostFilterNotFound(filter_name=msg)
2014-01-04 09:43:10 TRACE cinder.openstack.common.rpc.amqp SchedulerHostFilterNotFound: Scheduler Host Filter AvailabilityZoneFilter, CapacityFilter, CapabilitiesFilter could not be found.

Google 到的结果大多是 G 版本更新带入的 Bug,并且已经解决:https://bugs.launchpad.net/ubuntu/+source/cinder/+bug/1126378

不过由于项目无法直接更新 G 版本 Openstack 代码,所以只能另找其他解决方法。首先排除代码近期被修改的可能。此功能在上线运行的环境中运行正常,并且同事近期的部署也未见异常,联想到出问题的环境我用了 Ubuntu-12.04.2-LTS 这个 OS 版本进行安装,而生产环境和其他同事的部署都在 Ubuntu-12.04.1-LTS 进行,所以感觉问题应该出现在 cinder 模块依赖上。

相关阅读

在 Ubuntu 12.10 上安装部署 Openstack http://www.linuxidc.com/Linux/2013-08/88184.htm

Ubuntu 12.04 OpenStack Swift 单节点部署手册 http://www.linuxidc.com/Linux/2013-08/88182.htm

OpenStack 云计算快速入门教程 http://www.linuxidc.com/Linux/2013-08/88186.htm

企业部署 OpenStack:该做与不该做的事 http://www.linuxidc.com/Linux/2013-09/90428.htm

查看 cinder 所需的依赖列表:

root@controller:/opt# cat $opestack_home/cinder/tools/pip-requires
amqplib==0.6.1
anyjson>=0.2.4
eventlet>=0.9.17
kombu==1.0.4
lockfile==0.8
lxml>=2.3
routes==1.12.3
WebOb==1.0.8
wsgiref==0.1.2
greenlet>=0.3.1
PasteDeploy==1.5.0
paste
stevedore>=0.8.0
suds==0.4
paramiko
Babel>=0.9.6
iso8601>=0.1.4
setuptools_git>=0.4
#Python-glanceclient>=0.5.0,<2
#python-keystoneclient>=0.2.0

将列表提取出来之后,用命令查看系统安装依赖的版本号,并与运行正常的环境中的结果做比对:

# while read line; do pip search $line; done < pip-requires > pip-search-1

比对之后很快发现问题,pasteDeploy 版本为 1.5.2, 估计是其他模块安装的时候带入的新版本。

PasteDeploy              – Load, configure, and compose WSGI applications and servers
  INSTALLED: 1.5.2

用 pip install pastedeploy==1.5.0 强制装回后,cinder 创建卷,挂载卷正常,排错完毕。

总结:

1. 使用老版本的开源软件需要留意依赖包更新所引入的 Bug,要么升级开源软件,要么固定依赖版本。

2. 在排除代码被改动造成的错误之后,需要注意操作系统的更新所带来的依赖不匹配。

Good Luck

转载请注明出处,谢谢 by 熊崽 Kevin!

由于项目中使用的 OpenStack 一直停留在 F 版本,因此在操作系统(Ubuntu 12.04 LTS)不断更新的情况下,难免会出现各种莫名其妙的问题。

安装完 Openstack,各子模块均运行正常,开始功能测试,发现 cinder 创建 volume 命令发起之后后台报错:

2014-01-04 09:43:10 WARNING cinder.scheduler.manager [req-668ac624-60d5-488c-9e89-5cb915dc6c72 d6c0ca6fec41473f8ac53a8da4c3c38a c804f639bf4c47a29bb9aac195f4744c] Failed to schedule_create_volume: Scheduler Host Filter AvailabilityZoneFilter, CapacityFilter, CapabilitiesFilter could not be found.
2014-01-04 09:43:10 ERROR cinder.openstack.common.rpc.amqp [-] Exception during message handling
2014-01-04 09:43:10 TRACE cinder.openstack.common.rpc.amqp Traceback (most recent call last):
2014-01-04 09:43:10 TRACE cinder.openstack.common.rpc.amqp  File “/opt/stack/cinder/cinder/openstack/common/rpc/amqp.py”, line 276, in _process_data
2014-01-04 09:43:10 TRACE cinder.openstack.common.rpc.amqp    rval = self.proxy.dispatch(ctxt, version, method, **args)
2014-01-04 09:43:10 TRACE cinder.openstack.common.rpc.amqp  File “/opt/stack/cinder/cinder/openstack/common/rpc/dispatcher.py”, line 145, in dispatch
2014-01-04 09:43:10 TRACE cinder.openstack.common.rpc.amqp    return getattr(proxyobj, method)(ctxt, **kwargs)
2014-01-04 09:43:10 TRACE cinder.openstack.common.rpc.amqp  File “/opt/stack/cinder/cinder/scheduler/manager.py”, line 114, in create_volume
2014-01-04 09:43:10 TRACE cinder.openstack.common.rpc.amqp    context, ex, request_spec)
2014-01-04 09:43:10 TRACE cinder.openstack.common.rpc.amqp  File “/usr/lib/Python2.7/contextlib.py”, line 24, in __exit__
2014-01-04 09:43:10 TRACE cinder.openstack.common.rpc.amqp    self.gen.next()
2014-01-04 09:43:10 TRACE cinder.openstack.common.rpc.amqp  File “/opt/stack/cinder/cinder/scheduler/manager.py”, line 103, in create_volume
2014-01-04 09:43:10 TRACE cinder.openstack.common.rpc.amqp    filter_properties)
2014-01-04 09:43:10 TRACE cinder.openstack.common.rpc.amqp  File “/opt/stack/cinder/cinder/scheduler/filter_scheduler.py”, line 66, in schedule_create_volume
2014-01-04 09:43:10 TRACE cinder.openstack.common.rpc.amqp    filter_properties)
2014-01-04 09:43:10 TRACE cinder.openstack.common.rpc.amqp  File “/opt/stack/cinder/cinder/scheduler/filter_scheduler.py”, line 118, in _schedule
2014-01-04 09:43:10 TRACE cinder.openstack.common.rpc.amqp    filter_properties)
2014-01-04 09:43:10 TRACE cinder.openstack.common.rpc.amqp  File “/opt/stack/cinder/cinder/scheduler/host_manager.py”, line 218, in get_filtered_hosts
2014-01-04 09:43:10 TRACE cinder.openstack.common.rpc.amqp    filter_classes = self._choose_host_filters(filter_class_names)
2014-01-04 09:43:10 TRACE cinder.openstack.common.rpc.amqp  File “/opt/stack/cinder/cinder/scheduler/host_manager.py”, line 185, in _choose_host_filters
2014-01-04 09:43:10 TRACE cinder.openstack.common.rpc.amqp    raise exception.SchedulerHostFilterNotFound(filter_name=msg)
2014-01-04 09:43:10 TRACE cinder.openstack.common.rpc.amqp SchedulerHostFilterNotFound: Scheduler Host Filter AvailabilityZoneFilter, CapacityFilter, CapabilitiesFilter could not be found.

Google 到的结果大多是 G 版本更新带入的 Bug,并且已经解决:https://bugs.launchpad.net/ubuntu/+source/cinder/+bug/1126378

不过由于项目无法直接更新 G 版本 Openstack 代码,所以只能另找其他解决方法。首先排除代码近期被修改的可能。此功能在上线运行的环境中运行正常,并且同事近期的部署也未见异常,联想到出问题的环境我用了 Ubuntu-12.04.2-LTS 这个 OS 版本进行安装,而生产环境和其他同事的部署都在 Ubuntu-12.04.1-LTS 进行,所以感觉问题应该出现在 cinder 模块依赖上。

相关阅读

在 Ubuntu 12.10 上安装部署 Openstack http://www.linuxidc.com/Linux/2013-08/88184.htm

Ubuntu 12.04 OpenStack Swift 单节点部署手册 http://www.linuxidc.com/Linux/2013-08/88182.htm

OpenStack 云计算快速入门教程 http://www.linuxidc.com/Linux/2013-08/88186.htm

企业部署 OpenStack:该做与不该做的事 http://www.linuxidc.com/Linux/2013-09/90428.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计7523字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中