![Shatadru Bandyopadhyay](/assets/img/avatar_default.png)
Add png detailing interactions between different cinder components Related-Bug: 1848361 Change-Id: If81de71d4719db2e194b95626229a73d1ed4bfb9
2.1 KiB
2.1 KiB
Cinder System Architecture
The Cinder Block Storage Service is intended to be ran on one or more nodes.
Cinder uses a sql-based central database that is shared by all Cinder services in the system. The amount and depth of the data fits into a sql database quite well. For small deployments this seems like an optimal solution. For larger deployments, and especially if security is a concern, cinder will be moving towards multiple data stores with some kind of aggregation system.
Components
Below you will find a brief explanation of the different components.
![](/openstack/cinder/media/commit/3c6c2ee6565f982ee996bfacbcf01080d04c1d9a/doc/source/images/architecture.png)
- DB: sql database for data storage. Used by all components (LINKS NOT SHOWN).
- Web Dashboard: potential external component that talks to the api.
- api: component that receives http requests, converts commands and communicates with other components via the queue or http.
- Auth Manager: component responsible for users/projects/and roles. Can backend to DB or LDAP. This is not a separate binary, but rather a python class that is used by most components in the system.
- scheduler: decides which host gets each volume.
- volume: manages dynamically attachable block devices.
- backup: manages backups of block storage devices.