Difference between revisions of "Cinder/MultiVolumeBackend"
Line 35: | Line 35: | ||
<pre><nowiki> | <pre><nowiki> | ||
+ | [DEFAULT] | ||
+ | iscsi_helper=tgtadm | ||
+ | |||
# Multi Volume Backend support | # Multi Volume Backend support | ||
multi_backend_support=True | multi_backend_support=True | ||
− | multi_backend_configs= | + | multi_backend_configs=locallvm,cluster1 |
− | [ | + | [locallvm] |
volume_driver=nova.volume.driver.ISCSIDriver | volume_driver=nova.volume.driver.ISCSIDriver | ||
+ | volume_group=cinder-volumes | ||
[cluster1] | [cluster1] | ||
volume_driver=nova.volume.san.HpSanISCSIDriver | volume_driver=nova.volume.san.HpSanISCSIDriver | ||
− | |||
san_ip=x.x.x.x | san_ip=x.x.x.x | ||
− | san_ssh_port= | + | san_ssh_port=123 |
− | san_login= | + | san_login=foo |
− | san_password= | + | san_password=bar |
san_clustername=cluster1 | san_clustername=cluster1 | ||
</nowiki></pre> | </nowiki></pre> | ||
Line 78: | Line 81: | ||
---- | ---- | ||
− | + | [[Category:Spec]] |
Revision as of 03:41, 9 August 2012
- Launchpad Entry: https://blueprints.launchpad.net/cinder/+spec/multi-volume-backends
- Created: 8 Aug 2012
- Contributors: Nirmal Ranganathan
Summary
Allow managing multi volume backends from a single volume manager. Right now there's a 1-1 mapping of manager-driver. This blueprint aims to provide suport for 1-n manager-drivers, where by certain volume drivers that really don't depend on local host storage can take advantage of this to manager multi backends without having to run multi volume managers.
The thought is to use the existing configuration sections to distinguish the various drivers to load for a single volume manager.
Release Note
- Run one or more drivers with a single volume manager.
- Adds support for volume backends within the volumes table to distinguish which driver to choose for a certain volume.
Rationale
Currently there's no way to manage multi backends, it's 1-1. This provides more flexibility for an operator manager several backends, where they could just run 2 or 3 volume managers for load balancing instead of having to run multi instances of volume managers for each of the backends plus if they need to load balance it.
User stories
No user facing impact.
Design
Provide a way in the configuration to support multiple sections per volume driver configuration.
Implementation
Sample Config
Here's how the configuration would look like with the new changes. NOTE: You can still run the regular 1-1 manager-driver with the existing configuration options.
[DEFAULT] iscsi_helper=tgtadm # Multi Volume Backend support multi_backend_support=True multi_backend_configs=locallvm,cluster1 [locallvm] volume_driver=nova.volume.driver.ISCSIDriver volume_group=cinder-volumes [cluster1] volume_driver=nova.volume.san.HpSanISCSIDriver san_ip=x.x.x.x san_ssh_port=123 san_login=foo san_password=bar san_clustername=cluster1
Code Changes
Mostly update the volume manager to support multi drivers and update the drivers to load configuration on startup rather than loading then when they need it.
Migration
Additions:
- volume_backends
- created_at - datetime
- updated_at - datetime
- deleted_at - datetime
- deleted - tinyint(1)
- id - int(11)
- name - varchar(255)
- description - varchar(255)
Modifications:
- volumes
- backend_id - int(11) Foreign key to volume_backends.id
Test/Demo Plan
TBD