openstack-manuals/doc/admin-guide/source/blockstorage_volume_number_weigher.rst
Joseph Robinson 2ce5b11b1a [User Guides] Rename Admin-Guide-Cloud to Admin-Guide
This patch changes the name of the Admin-Guide from the Cloud
Admin Guide to the Administrator guide. This affects the
filename in the repository, and references to cloud administrators
within the document texts.

1.) Changing instances of 'cloud administrator'
    to 'administrator'.

2.) Change links from '/admin-guide-cloud/' to
    '/admin-guide/' within the Admin Guide.

3.) Adjust .htaccess file.

Change-Id: I7f21a710e922981aa295afc0616de36fd819b523
Implements: blueprint user-guides-reorganised
2016-04-01 19:50:13 +09:00

2.7 KiB

Configure and use volume number weigher

OpenStack Block Storage enables you to choose a volume back end according to free_capacity and allocated_capacity. The volume number weigher feature lets the scheduler choose a volume back end based on its volume number in the volume back end. This can provide another means to improve the volume back ends' I/O balance and the volumes' I/O performance.

Enable volume number weigher

To enable a volume number weigher, set the scheduler_default_weighers to VolumeNumberWeigher flag in the cinder.conf file to define VolumeNumberWeigher as the selected weigher.

Configure multiple-storage back ends

To configure VolumeNumberWeigher, use LVMVolumeDriver as the volume driver.

This configuration defines two LVM volume groups: stack-volumes with 10 GB capacity and stack-volumes-1 with 60 GB capacity. This example configuration defines two back ends:

scheduler_default_weighers=VolumeNumberWeigher
enabled_backends=lvmdriver-1,lvmdriver-2
[lvmdriver-1]
volume_group=stack-volumes
volume_driver=cinder.volume.drivers.lvm.LVMVolumeDriver
volume_backend_name=LVM

[lvmdriver-2]
volume_group=stack-volumes-1
volume_driver=cinder.volume.drivers.lvm.LVMVolumeDriver
volume_backend_name=LVM

Volume type

Define a volume type in Block Storage:

$ cinder type-create lvm

Create an extra specification that links the volume type to a back-end name:

$ cinder type-key lvm set volume_backend_name=LVM

This example creates a lvm volume type with volume_backend_name=LVM as extra specifications.

Usage

To create six 1-GB volumes, run the cinder create --volume-type lvm 1 command six times:

$ cinder create --volume-type lvm 1

This command creates three volumes in stack-volumes and three volumes in stack-volumes-1.

List the available volumes:

# lvs
LV                                          VG              Attr      LSize  Pool Origin Data%  Move Log Copy%  Convert
volume-3814f055-5294-4796-b5e6-1b7816806e5d stack-volumes   -wi-a----  1.00g
volume-72cf5e79-99d2-4d23-b84e-1c35d3a293be stack-volumes   -wi-a----  1.00g
volume-96832554-0273-4e9d-902b-ad421dfb39d1 stack-volumes   -wi-a----  1.00g
volume-169386ef-3d3e-4a90-8439-58ceb46889d9 stack-volumes-1 -wi-a----  1.00g
volume-460b0bbb-d8a0-4bc3-9882-a129a5fe8652 stack-volumes-1 -wi-a----  1.00g
volume-9a08413b-0dbc-47c9-afb8-41032ab05a41 stack-volumes-1 -wi-a----  1.00g