OpenStack Grizzly实例重启之后cinder-volume服务无法启动的解决办法

问题描述:Cinder组件装在Controller节点,节点发生故障重启后,发现挂载了volumn的实例无法启动,并且无法创建及挂载定的volume,查看cinder-volume服务,处于stop状态,执行启动命令发现无法启动,错误日志如下:

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
服务正常启动,问题解决。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值