最近几天闲着没事自己研究下OpenStack,第一个服务是keystone,安装起来没什么问题,安装完第二个服务glance后,按照官网进行验证的时候却发现上传镜像的时候报错了,具体报错如下:

[root@openstack ~]# openstack image create "cirros"   --file cirros-0.4.0-x86_64-disk.img   --disk-format qcow2 --container-format bare   --public
410 Gone: 存储配置中出错。已禁止将映像添加至存储器。 (HTTP N/A)

去/var/log/glance/目录下看日志发现api.log日志中的报错内容为:

存储配置中出错。已禁止将映像添加至存储器

虽说报错很明显,说是配置的问题,轻松度了一波,并检查了自己的配置都没有解决,常见的问题大概都是如下几种:

1、 /var/lib/glance/images/ 更改为 /var/lib/glance/images;
2、将[glance_store]中的default_store = file注释掉

分析完和这两种报错无关后,我大概能确认应该是和上传镜像的路径文件有关系,继续寻找,直到找到一篇歪果友人写的文章,字里行间我看到了一个关键的东西:

[root@controller glance]# ls -l
drw-r-xr-x. 2 glance glance 49 Jul 18 23:44 images
[root@controller glance]# pwd
/var/lib/glance

然后看了一眼我的:

[root@openstack ~]# ll /var/lib/glance
总用量 0
drwxr-xr-x 2 root root 6 6月   9 20:31 images
[root@openstack ~]# 

发现这个目录是我用root用户创建的,而glance服务的用户是glance,肯定是传不了的,于是改成正确的权限并重启glance,报错消失。

[root@openstack glance]#  chown  -R glance:glance images/
[root@openstack glance]# ll
总用量 0
drwxr-xr-x 2 glance glance 6 6月   9 20:31 images
[root@openstack ~]# openstack image list
+--------------------------------------+--------+--------+
| ID                                   | Name   | Status |
+--------------------------------------+--------+--------+
| d5c82aac-64cb-4fce-914d-08570ed9a852 | cirros | active |
+--------------------------------------+--------+--------+

总结一下:首先感谢提供信息的博主,问题总能找到原因,只要不放弃就能解决,特别是细节!