To be a better coder
分类: LINUX
2020-06-29 10:54:35
1)cinder-api
接收api请求,调用cinder-volume
2)cindere-volume
管理卷的服务,与volume provider协调工作,管理volume的生命周期,运行cinder-volum的服务的节点被称作为存储节点
3)cinder-scheduler
scheduler通过调度算法选择最合适的存储节点创建卷
4)volume provider
数据的存储设备,为volume提供物理存储空间
5)Message Queue
cinder 各个子服务通过消息列队实现进程间通信和相互协作
6)database
存储cinder一些数据库,一般使用mysql
1)用户 向 API 发送请求
2)api对请求做一些必要的处理后,向messaging(rabbitmq)发送信息,让scheduler创建一个volume
3) scheduler从messaging获取到api发送的消息,然后执行调度算法,从若干存储节点选出节点A
4) scheduler向messaging发送一条消息,让存储节点创建volume
5)存储节点的volume 从messaging中获取到scheduler发给它的消息,然后通过driver在volume provider上创建volume
3、cinder-volume
openstack上对volume的操作,最后都是交给cinder-volume来完成的。
cinder-volume自身并不管理整整的存储设备,存储设备是由volume provider管理的,cinder-volume与volume provider一起实现volume生命周期管理,它通过dirver架构支持多种volume provider.
cinder-volume为这些volume provider 定义了统一的接口,volume provider只需要实现这些接口,就可以Driver的形式即插即用到openstack系统中。
默认是使用LVM 逻辑卷
cinder-volume会定期向cinder报告,从而让cinder确认得知每个存储节点的空闲容量信息