cinder服务
cinder是openstack的块存储服务,它负责volume从创建到删除整个生命周期的管理,其中具体包括:
- 通过对外提供API,使得可以查询和管理volume、volume snapshot和volume type。
- 提供scheduler来完成volume的调度,合理优化存储资源的分配。
- 提供driver框架来支持多种存储的后端,包括LVM、ceph和其他商业存储(EMC、华为存储等等)。
组件
1、cinder-api
客户端可以将请求发送到endpoints指定的地址,向cinder-api请求操作。Cinder-api对接收到的HTTP API请求做如下处理:
- 检查客户端传入的参数是否合法有效
- 调用cinder其他子服务处理客户端请求
- 将cinder其他子服务返回的结果序列号返回给客户端
2、cinder-scheduler
创建volume时,cinder-scheduler会基于容量、volume type等条件选择出最合适的存储节点,然后让其创建volume。
3、cinder-volume
Cinder-volume在存储节点上运行,OpenStack对volume的操作,最后都是交给cinder-volume来完成的。它自己本身是不管理真正的存储设备,存储设备最后都是由volume provider来管理。Cinder-volume将LVM作为默认的volume provider。cinder-volume的作用:
- 通过driver架构支持多种volume provider
- 定期向OpenStack报告存储节点的状态
- 实现volume生命周期的管理
4、cinder-backup备份提供了三种驱动服务:ceph,TSM,swift,其中默认备份是swift。cinder驱动服务的配置在cinder.conf中是:
1 | backup_driver=cinder.backup.drivers.swift |
详细可参考这里:[https://blog.csdn.net/u010433148/article/details/54629097]
Glance服务
glance是为虚拟机的创建提供镜像的服务,我们基于OpenStack是构建基本的Iaas平台对外提供虚拟机,而虚拟机在创建时必须选择需要安装的操作系统,glance服务就是选择提供不同的操作系统镜像。
组件
- Glance-API
主要用来响应各种REST请求然后通过其他模块(主要是glance-registry组件和后端存储接口)完成镜像的上传、删除、查询等操作。可以简单的再分为两部分:一层中间件,它主要是做一些请求的解析工作(如分析出版本号),另外一部分提供实际的服务(如与镜像上传下载的后端存储接口交互)。默认绑定端口是9292。
- Glance-registry
镜像注册服务用于提供镜像元数据的REST接口,主要工作是存储或者获取镜像的元数据,与mysql进行交互,也可以简单的再细分为两部分,API和具体server。元数据是指镜像相关的一些信息(如id,size,status,location,checksum,min_disk,min_ram,owner等)真正的镜像数据保存在实际所使用的后端存储里。默认绑定端口是9191.
- Image store
严格来说image store不属于glance的组件,它只是一个接口层,提供镜像存储和查询的接口。
工作流程
1、glance-api接收REST API的请求,通过其他模块来完成诸如镜像的创建、删除、查询、获取等操作。
2、glance-registry与数据库进行交互,更新数据库中的两张表,image和image_proterties表,分别用来记录镜像的大小、格式和镜像定制化的相关信息等,