2. Current Nova and Cinder
cinder-api
REST
nova-api
RPC
REST
RPC
VM VM server-side
cinder-volume
volume driver
Storage
Control
client-side
nova-compute volume driver
client-side
volume driver
iSCSI, etc. Storage
VM host
3. Nova still has many client-side
volume drivers.
Complex client-side cinder-api
REST
volume capability and
nova-api
many volume drivers
RPC
in nova-compute
REST
RPC
VM VM server-side
cinder-volume
volume driver
Storage
Control
nova-compute client-side
volume driver
iSCSI, etc. Storage
VM host
4. nova-compute has to make many REST
requests to attach/detach a volume.
complex
REST REST requests cinder-api
nova-apiattachment/
per
detachment
RPC
REST
RPC
VM VM server-side
cinder-volume
volume driver
Storage
Control
nova-compute client-side
volume driver
iSCSI, etc. Storage
VM host
5. We have to use same version of
Nova and Cinder.
Old
REST transaction
REST cinder-api
for attachment/
nova-api
detachment
RPC
may be changed.
REST
RPC
VM VM Old old
cinder-volume volume driver
Storage
Control
nova-compute client-side
volume driver Server/client-side volume
drivers may not keep
iSCSI, etc.
VM host compatibility
Storage
between versions.
6. Other software has to implement
volume drivers to use Cinder service.
cinder-api
RPC
VM VM
REST
OpenNebula, Volume drivers in
CloudStack nova-compute
cinder-volume
server-side
and so on
can't be volume driver
used with
programs written in
Storage
Control
client-side Java/C/Ruby/...
volume driver
iSCSI, etc. Storage
VM host
7. cinder-agent
● nova-compute should drop most of client-side
volume capability and drivers.
● Take them to new client-side service of cinder.
client-side new!
volume driver
nova-compute cinder-agent
VM host
8. Nova and Cinder with cinder-agent
REST
nova-api
cinder-api
REST
VM RPC VM
RPC
nova-compute
server-side
cinder-volume
volume driver
RPC
cinder-agent
Storage
Control
client-side
volume driver
client-side
volume driver
iSCSI, etc. Storage
VM host
9. nova-compute becomes simple.
REST
nova-api
cinder-api
REST
VM RPC VM
RPC
nova-compute
server-side
cinder-volume
without driver
volume
RPC
cinder-agent
client-side volume
Storage
Control
client-side
volume driver capability and drivers
client-side
volume driver
iSCSI, etc. Storage
VM host
10. REST Request to attach/detach a
volume becomes simple.
REST
Only one REST request
nova-api
cinder-api
to attach/detach a volume.
REST
VM RPC VM
RPC
nova-compute
server-side
cinder-volume
volume driver
RPC
cinder-agent
Storage
Control
client-side
volume driver
client-side
volume driver
Complex transactions
between server/client-side
iSCSI, etc. Storage
volume capability
VM host
via Cinder RPC
11. Nova can be used with
newer/older version of Cinder.
REST
Simple REST request
nova-api Older
to attach/detach a volume cinder-api
is easy to keep its compatibility.
REST
VM RPC VM
RPC
nova-compute
Older server-side
cinder-volume volume driver
RPC
Older cinder-agent
Storage
Control
client-side
volume driver
client-side
volume driver
iSCSI, etc. Storage
VM host
12. It's easy to use other software
with Cinder.
cinder-api
REST
VM VM VM
RPC
OpenNebula, CloudStack
and so on
server-side
cinder-volume
cinder-agent volume driver
RPC
cinder-agent
client-side
Storage
Control
client-side
volume driver
client-side
volume driver
client-side
volume driver
Other software just makes
volume driver a simple REST request
to attach/detach a volume.
iSCSI, etc. Storage
VM host
13. Conclusion
Benefit of cinder-agent:
– makes nova-compute simple and free for volume.
– makes REST requests to attach/detach a volume
simple and easy to keep its compatibility.
– allows to use Nova with newer/older Cinder.
– makes other software easy to use Cinder.
Cinder becomes a stand-alone software
by cinder-agent.