Glance架构
glance-api
glance-api 是系统后台运行的服务进程。 对外提供 REST API,响应 image 查询、获取和存储的调用。
glance-api 不会真正处理请求。 如果操作是与 image metadata(元数据)相关,glance-api 会把请求转发给 glance-registry; 如果操作是与 image 自身存取相关,glance-api 会把请求转发给该 image 的 store backend。
glance-registry
glance-registry 是系统后台运行的服务进程。 负责处理和存取 image 的 metadata,例如 image 的大小和类型。
glance支持的镜像格式
Store backend
Glance 自己并不存储 image。 真正的 image 是存放在 backend 中的。 Glance 支持多种 backend,包括
- A directory on a local file system(这是默认配置)
- GridFS
- Ceph RBD
- Amazon S3
- Sheepdog
- OpenStack Block Storage (Cinder)
- OpenStack Object Storage (Swift)
- VMware ESX
具体使用哪种 backend,是在 /etc/glance/glance-api.conf中配置的。
1 | glance image-list # 查看有哪些镜像。 |
CLI
不同服务用的命令虽然不同,但这些命令使用方式却非常类似,可以举一反三。
1. 执行命令之前,需要设置环境变量
这些变量包含用户名、Project、密码等; 如果不设置,每次执行命令都必须设置相关的命令行参数。如:
1 | . admin-openrc |
2. 各个服务的命令都有增、删、改、查的操作
其格式是
1 | CMD <obj>-create [parm1] [parm2]… |
例如 glance 管理的是 image,那么 CMD 就是 glance,obj 就是 image, 对应的命令就有:
1 | glance image-create |
再比如 neutron 负责管理网络和子网,那么 CMD 就是 neutron,obj 就是 net 和 subnet,对应的命令就有:
网络相关操作
1 | neutron net-create |
子网相关操作
1 | neutron subnet-create |
有的命令
1 | nova boot |
3. 每个对象都有 ID
delete,show 等操作都以 ID 为参数
4. 使用help查看命令的用法
例如:glance help
查看 glance image-update 的用法:
1 | glance help image-update |
Troubleshooting
日志位于 /etc/log/glance
glance主要有两个日志:glance_api.log 以及 glance_registry.log
- glance-api:记录 REST API 调用情况
- glance-registry:记录 Glance 服务处理请求的过程以及数据库操作