OpenStack Grizzly实例重启之后cinder-volume服务无法启动的解决办法
2013-12-19 15:30
711 查看
问题描述:Cinder组件装在Controller节点,节点发生故障重启后,发现挂载了volumn的实例无法启动,并且无法创建及挂载定的volume,查看cinder-volume服务,处于stop状态,执行启动命令发现无法启动,错误日志如下:
1、打开文件/usr/lib/python2.7/dist-packages/cinder/volume/iscsi.py
2、在224行下边加一行代码,修改如下:
注:kwargs.pop('old_name', None)为新增加的代码
3、重启cinder-volumn服务
2013-12-19 14:44:33 INFO [cinder.service] Starting 1 workers 2013-12-19 14:44:33 INFO [cinder.service] Started child 2086 2013-12-19 14:44:33 AUDIT [cinder.service] Starting cinder-volume node (version 2013.1.3) 2013-12-19 14:44:33 ERROR [cinder.service] Unhandled exception Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/cinder/service.py", line 227, in _start_child self._child_process(wrap.server) File "/usr/lib/python2.7/dist-packages/cinder/service.py", line 204, in _child_process launcher.run_server(server) File "/usr/lib/python2.7/dist-packages/cinder/service.py", line 95, in run_server server.start() File "/usr/lib/python2.7/dist-packages/cinder/service.py", line 355, in start self.manager.init_host() File "/usr/lib/python2.7/dist-packages/cinder/volume/manager.py", line 149, in init_host self.driver.ensure_export(ctxt, volume) File "/usr/lib/python2.7/dist-packages/cinder/volume/drivers/lvm.py", line 400, in ensure_export old_name=old_name) File "/usr/lib/python2.7/dist-packages/cinder/volume/iscsi.py", line 225, in create_iscsi_target self._new_target(name, tid, **kwargs) File "/usr/lib/python2.7/dist-packages/cinder/volume/iscsi.py", line 284, in _new_target **kwargs) File "/usr/lib/python2.7/dist-packages/cinder/volume/iscsi.py", line 73, in _run self._execute(self._cmd, *args, run_as_root=True, **kwargs) File "/usr/lib/python2.7/dist-packages/cinder/utils.py", line 145, in execute 'to utils.execute: %r') % kwargs) Error: Got unknown keyword args to utils.execute: {'old_name': None}错误分析:这是OpenStack Grrizly版本的一个BUG,造成cinder-volumn服务在节点重启后无法正常启动,最新版本已经修订(本环环境的安装时间晚于bug提交时间,居然还是旧的代码,很是奇怪)https://review.openstack.org/#/c/47721/,自己通过修改源代码进行修改,修改如下:
1、打开文件/usr/lib/python2.7/dist-packages/cinder/volume/iscsi.py
2、在224行下边加一行代码,修改如下:
def create_iscsi_target(self, name, tid, lun, path, chap_auth=None, **kwargs): kwargs.pop('old_name', None) self._new_target(name, tid, **kwargs) self._new_logicalunit(tid, lun, path, **kwargs)
注:kwargs.pop('old_name', None)为新增加的代码
3、重启cinder-volumn服务
service cinder-volume restart服务正常启动,问题解决。
相关文章推荐
- 收藏一些测试工具以后能用到——网站各项性能测试的工具
- centos 搭建svn服务器
- 在.net中用Connection对象数据源的架构信息
- OpenCV 轮廓质心
- LINUX内核编译。
- Docker:通过Git部署
- 使用PXE+DHCP+Apache+Kickstart无人值守安装CentOS5.8 x86_64
- linux下的lvs三种模式及配置
- 使用浏览器访问 Linux 终端
- linux下执行多个.sql文件
- Linux 命令小汇总
- LINUX软件包的一般安装方法
- avalondock 翻译网站文章(一)
- 8则实用的Linux Shell命令
- 基于中断的linux按键驱动(mini2440)
- OpenCV成长之路(2):图像的遍历
- linux 切换用户之后变成-bash-3.2$
- ListView 使用overscroll的情况下 消除mEdgeGlowTop 和 mEdgeGlowBottom
- shell中条件判断if中的-z到-d的意思
- 一个实用的工具,查找网站快照含历史版本