命令上传测试镜像cirros1:root@server8:/var/log# glance image-create --name "cirros1" --file /home/wangyawen/cirros-0.3.4-x86_64-disk.img --disk-format qcow2 --container-format bare --progress。
能上传成功,但镜像状态为saving(正常为active),且报错:
500 Internal Server Error
The server has either erred or is incapable of performing the requested operation.
(HTTP 500)
查看日志:/var/log/glance/glance-api.log
2018-07-16 14:35:16.864 5885 ERROR glance.common.wsgi BackendException: The container glance does not exist in Swift. Please set the swift_store_create_container_on_put option to add container to Swift automatically.
分析:可能是swift配置的问题。
Swift是Open Stack开源云计算项目的子项目之一,为Nova 子项目提供虚机镜像存储服务。是一个多租户、高扩展性的和高可用性的对象存储系统,用于低成本地存储大量的非结构化数据;Swift通过在软件层面引入一致性哈希技术和数据冗余性,牺牲一定程度的数据一致性来达到高可用性和可伸缩性,支持多租户模式、容器和对象读写操作,适合解决互联网的应用场景下非结构化数据存储问题。
swift原理参见:https://www.cnblogs.com/nongchaoer/p/6272589.html
重新配置swift的container.ring.gz之后仍然没解决。
Vim /etc/glance/glance-api.conf
看到配置:
swift_store_user = service:glance
swift_store_key = 123456
swift_store_container = glance
用glance的账户登录openstack dashboard。(之前是admin)
问题找到了,就是这个配置信息不匹配。
解决方法:
新建一个container,叫glance。
再上传,成功。