Split storage actions, computing and networking

Registered by Valeriy Ponomaryov

For the moment Manila has different share drivers that implement storage activities, computing and networking all in one module using only neutron network plugin in some cases.

We should split it to logical parts:
1) share driver (storage activities)
2) compute helper (share server supply)
3) networking helper (network related logic)

as interfaces that should be implemented.

Details:

(1) share driver will implement all main interfaces:
- create/delete share f/wo snapshot
- create/delete snapshot
- allow/deny access

For getting share server it will use one of provided "compute helpers".

(2) compute helper will implement interfaces of share server creation and deletion. It will use "networking helper"
Possible implementation:
- Nova and VMs
- Ironic and hardware hosts
- storage-based (vservers in NetApp cDOT, etc...)

(3) networking helper will handle all network-related stuff, like:
- no network creation, no share server creation, usage of predefined share server (analog of so called single-tenancy)
- no network creation, share server creation with address from predefined network (combination of single and multi tenancy)
- creation of network (using either neutron or no-network), creation of share server (analog of so called multi-tenancy)

See pic with share driver - compute helper cooperation:
https://docs.google.com/drawings/d/1qUCBzIBnxDSJElWHydLlMIQAZznJttrYjr0thP1O-N4/edit?usp=sharing

For more details see following wiki page:
https://wiki.openstack.org/wiki/Manila/specs/split-storage-actions-computing-and-networking

Blueprint information

Status:
Complete
Approver:
Ben Swartzlander
Priority:
Undefined
Drafter:
Valeriy Ponomaryov
Direction:
Needs approval
Assignee:
None
Definition:
Obsolete
Series goal:
Proposed for kilo
Implementation:
Not started
Milestone target:
None
Completed by
Valeriy Ponomaryov

Related branches

Sprints

Whiteboard

Wiki page: https://wiki.openstack.org/wiki/Manila/specs/split-storage-actions-computing-and-networking

Draft of work items (vponomaryov):

Interfaces
1) Create interface of compute helper: TODO
2) Create interface of networking helper: TODO

Implementations
3) Implement Nova compute helper (part of existing "service_instance" module): TODO
4) Implement Ironic/hardware compute helper: TODO
5) Split cDOT computing to separate module as its additional "compute helper": TODO

Other TBD
6) use compute helpers within GlusterFS: TODO
...

!!!!!!!!!!!!!!!!!!

THIS BP won't be implemented, because main idea will duplicate functionality of Cinder and it is contrary to requirements for OpenStack projects.

So, if someone wants to use Nova VMs for share provisioning, he should use generic driver for it and enable appropriate driver in Cinder.

Ironic share servers can be developed separately as part of generic driver.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.