Multi-tenancy isolation with aggregates

Registered by Belmiro Moreira on 2013-01-15

Multi-tenancy isolation with aggregates.
The goal is to schedule instances from specific tenants to selected aggregate(s).

In different cases is necessary to isolate instances from specific tenant(s). This means that they can only be created in a set of hosts. To define the set of hosts we can use "aggregates".

The idea is to create a new scheduler filter "AggregateMultiTenancyIsolation" that handles this use-case:

If an aggregate has the metadata filter_tenant_id=<TENANT_ID> all hosts that are in the aggregate can only create instances from that tenant_id.
An host can belong to different aggregates. So, a host can create instances from different tenants if the different aggregates have defined the metadata filter_tenant_id=<TENANT_ID>.

If a host doesn't belongs to any aggregate it can create instances from all tenants. Also, if a host belongs to aggregates that don't define the metadata filter_tenant_id it can create instances from all tenants.

Using Availability Zones can't solve this problem because a host can only be in one availability zone, also the filter "AggregateInstanceExtraSpecsFilter" doesn't help because it requires creating new and exclusive flavors for each tenant that needs isolation.

Blueprint information

Status:
Complete
Approver:
Vish Ishaya
Priority:
Low
Drafter:
None
Direction:
Approved
Assignee:
Belmiro Moreira
Definition:
Approved
Series goal:
Accepted for grizzly
Implementation:
Implemented
Milestone target:
milestone icon 2013.1
Started by
Belmiro Moreira on 2013-01-15
Completed by
Thierry Carrez on 2013-02-20

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/multi-tenancy-aggregates,n,z

Addressed by: https://review.openstack.org/20566
    Multi-tenancy isolation with aggregates

Addressed by: https://review.openstack.org/20565
    Multi-tenancy isolation with aggregates

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.