Integrate lunr block storage

Registered by Shannon Ward

The block storage service is being implemented as a separate project called lunr. This blueprint is for supporting and integrating that service into nova.

An API-fronted iSCSI-based block storage service that aims to offer moderate performance with a very low cost/GB of capacity. The service is composed in a 3-tier architecture.

1. Front-End API
2. Controller
2. Driver & Storage Subsystem

A basic description of each major component is described below:

Front-End API
 - Serves as the CRUD interface to consumers of storage
 - Request rate-limiting mechanisms are imposed here
 - List of API methods
   - Create Volume
   - List Volumes
   - List Performance of a Volume (IOPS)
   - List Usage of a Volume (I/O transactions aggregated over some time period)
   - Update Volume (metadata)
   - Delete Volume
   - Create Snapshot
   - List Snapshots
   - Update Snapshot (metadata)
   - Delete Snapshot

Controller
- Responsible for intelligent allocation and de-allocation of storage volumes across storage nodes
- Responsible for coordinating migration of volumes across storage nodes
- Responsible for coordination snapshot movement to/from Swift (Object Storage)
- Responsible for collecting IOPS metrics for performance and usage

Driver & Storage Subsystem
- Responsible for delivering a moderate level of performance and capacity
- Responsible as the target of an iSCSI session (a hypervisor would serve as the initiator)
- Responsible for generating IOPS metrics for performance and usage

Blueprint information

Status:
Complete
Approver:
Vish Ishaya
Priority:
High
Drafter:
Chuck Thier
Direction:
Needs approval
Assignee:
Chuck Thier
Definition:
Obsolete
Series goal:
None
Implementation:
Not started
Milestone target:
None
Completed by
Chuck Thier

Related branches

Sprints

Whiteboard

I have marked this blueprint as obsolete due to the change in scope of Lunr.

This blueprint is for the integration of the proposed BSaaS with nova

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.