Bug 1041035

Summary: [RFE][nova]: Loadbalancing for instance storage paths
Product: Red Hat OpenStack Reporter: RHOS Integration <rhos-integ>
Component: RFEsAssignee: RHOS Maint <rhos-maint>
Status: CLOSED UPSTREAM QA Contact:
Severity: low Docs Contact:
Priority: unspecified    
Version: unspecifiedCC: markmc, yeylon
Target Milestone: ---Keywords: FutureFeature
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
URL: https://blueprints.launchpad.net/nova/+spec/nova-instance-storage-loadbalancing
Whiteboard: upstream_milestone_none upstream_status_not-started upstream_definition_obsolete
Fixed In Version: Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-03-19 17:21:23 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description RHOS Integration 2013-12-12 13:28:03 UTC
Cloned from launchpad blueprint https://blueprints.launchpad.net/nova/+spec/nova-instance-storage-loadbalancing.

Description:

The default path of instance location is in /var/lib/nova/instances/#InstanceID'/

If you want LiveMigrations you are advised to have this directory on a centralized storage, for example on NFS - as explained here: http://docs.openstack.org/trunk/openstack-compute/admin/content/configuring-live-migrations.html

There might be good reasons for having more than 1 instance directory for VM deployments - for example:
- In a big lanscape you might want to have more than 1 central storage mounts, i.e. 2 NFS mounts
- In compute-nodes with multiple local raid arrays you want to distribute instances over all arrays

If you want to use more than 1 location you need:
- more directories below /var/lib/nova/instances/ with UniqueIDs
- a patch for Openstack to deploy on the directory with the least utilization

Even better would be to have a modular scheduler integrated so that it would be flexible on which algorithm the scheduler chooses the instance directories - f.e. one target for high IO VMs etc ... 

--> I already have a working implementation for scheduling instances over 2 directories based on utilization which I could commit.



Specification URL (additional information):

None