问题现象:cinder-volume服务无法正常启动
发生原因:重装cinder组件的时候,依赖关系存在问题,依照OpenStack文档安装cinder组件的时候,安装了一个组件叫:iscsitarget,Ubuntu上的Target服务还有另外一个包叫tgt,也能完成iscsitarget的功能,重新安装cinder-volume的时候,tgt组件被安装上了,结果占用了iscsitarget组件的3260端口,导致iscsitarget无法启动,从而cinder-volume服务也无法正常启动。
可以使用lsof命令查看端口情况,如:lsof -i:3260
解决办法:
第一步、卸载iscsitarget组件及依赖组件,重新安装cinder组件,但是将其中的iscsitarget换成tgt,如
apt-get install cinder-api cinder-scheduler cinder-volume open-iscsi tgt
第二步、修改/etc/cinder/cinder.conf文件如:
[DEFAULT]
rootwrap_config=/etc/cinder/rootwrap.conf
sql_connection = mysql://cinderUser:cinderPass@10.68.19.61/cinder
api_paste_confg = /etc/cinder/api-paste.ini
iscsi_helper=tgtadm
volume_name_template = volume-%s
volume_group = cinder-volumes
verbose = True
auth_strategy = keystone
state_path=/var/lib/cinder
volumes_dir=/var/lib/cinder/volumes
第三步、重启所有cinder服务
cd /etc/init.d/; for i in $( ls cinder-* ); do sudo service $i restart; done
问题解决。
注意:若此时cinder-volume服务还是无法启动,请检查是否还有iscsitarget的进程占用,同时检查3260端口是否被占用