3.9 KiB
CellsV2 - Instance Groups API DB migrations
https://blueprints.launchpad.net/nova/+spec/cells-instance-groups-api-db
Instance group tables that currently reside in the cell database must be migrated to the API database. Instance groups are exposed in the API and generally accessed in the scheduler.
Problem description
Use Cases
Users wish to create instance groups that operate globally across deployments without worrying about cells implementation.
Proposed change
New instance_groups
and
instance_group_policy
and
instance_group_member
tables will be created in the API
database. The models for these will closely match the existing models in
the nova database but they will no longer have soft delete.
Methods currently located in db/sqalchemy/api.py
will be
mirrored in objects/instance_group.py
and modified to
access the API database. The InstanceGroup
and
InstanceGroupList
objects will be modified to access the
API database initially and the fall-back to the cell database if
neccessary. InstanceGroupList
methods will return items
from both the cell and API databases. These methods will, if-neccessary
remove duplicates from the returned items.
Migration methods will be created to move data from the cell to API
database. These migration methods will be added to the
online_data_migrations
nova manage command.
The Flavor
tables have already been migrated to the API
db. In general the proposed changes will follow those methods.1
Alternatives
It may be possible to leave the instance_group_member
table in the cell database as this table will grow with the number of
instances.
The InstanceGroup
function get_hosts
accesses the instance_group_member
table. It is used in
both the scheduler and the compute manager for affinity. As this table
is generally accessed outside of the cells it is likely that there would
be a greater performance hit from placing this in the cell database.
Data model impact
There will be a large data model impact as many new tables will be created in the API database. The data models have been omitted as they are essentially unchanged from those currently in the cell database.
REST API impact
None
Security impact
None
Notifications impact
None
Other end user impact
None
Performance Impact
None
Other deployer impact
Deployers must be aware of the nova-manage
command that
will perform one time data migration for the tables mentioned.
Developer impact
None
Implementation
Assignee(s)
- Primary assignee:
- Other contributors:
-
None
Work Items
- Create a new database table and database migration for
instance_groups
,instance_group_policy
andinstance_group_members
. - Modify functions in
InstanceGroup
andInstanceGroupList
to access the API database. - Create migration functions for the affected tables and add these to
online_data_migrations
command.
Dependencies
None
Testing
- Unit tests for API database access functions.
- Functional tests for data migration of instance group tables.
Documentation Impact
Documentation must mention the one time data migration tool in the
nova-manage
command and the data that is migrated.
References
History
Release Name | Description |
---|---|
Newton | Introduced |