nova volume #8

Supports: precise
Add to new model


OpenStack is a reliable cloud infrastructure. Its mission is to produce
the ubiquitous cloud computing platform that will meet the needs of public
and private cloud providers regardless of size, by being simple to implement
and massively scalable.
OpenStack Compute, codenamed Nova, is a cloud computing fabric controller. In
addition to its "native" API (the OpenStack API), it also supports the Amazon
Nova is intended to be modular and easy to extend and adapt. It supports many
different hypervisors (KVM and Xen to name a few), different database backends
(SQLite, MySQL, and PostgreSQL, for instance), different types of user
databases (LDAP or SQL), etc.
This is the package you will install on your storage nodes.

Openstack Nova Volume service provides EBS-like storage to Openstack instances.

This charm will configure Nova volume on a given unit to serve logical volumes
over iSCSI via the nova-volume service. All communication between nova-volume
and the rest of the Openstack deployment happens over the database and
messaging queue thus the charm has two required relations: mysql:shared-db and

To deploy along side an existing Openstack deployment, simply:

juju deploy --repository=. local:nova-volume
juju add-relation mysql nova-volume
juju add-relation rabbitmq nova-volume

Assuming the rest of the Openstack cloud is functioning properly,
the volume service will come online.

Overview of config options and corresponding defaults:

nova-release: distro

From which installation source to install the required Nova packages.
The default is to install from the Ubuntu archive. You may also specify
one of the following:
- trunk: upstream trunk PPA (ppa:nova-core/trunk)
- milestone: upstream milestone PPA (ppa:nova-core/milestone)
- milestone-proposed: upstream milestone PPA
- A valid PPA with in LP PPA format: ppa:myaccount/ppaname
- A custom URL formated ala:
'deb http://host/ubuntu oneiric main'
You may append a GPG Key ID to the end of the line after a |,
and the charm will attempt to import it from

block-device: sdb

Nova Volume requires a volume group be created from which to carve out
logical volumes. This block device will be initialized as the physical volume
that backs this volume group.

You may use either /dev/, , or
/path/to/file[|size]. In the third format, '|size' is optional, defaulting
to 5G. Example: "/var/lib/nova-volumes/my-vol.img|2G". The size parameter
is passed to 'truncate --size'

volume-group: nova-volumes

The volume group to create and use when creating new volumes.

overwrite: false

By default, LVM2 and the charm will refuse to initialize a block device
that has existing LVM signatures or is mounted. If this is set to true, the
charm will attempt to unmount the block device if is mounted and wipe any
traces of LVM from it, prior to initializing it as a new volume group. BEWARE

rabbit-user: nova

Username with which to request access to the messaging queue.

rabbit-vhost: nova

Name of the RabbitMQ virtual host to access. This must be the same across all
Nova components.

db-user: nova

Database user with which to request access to the shared MySQL database.

nova-db: nova

Database to request access to. This must be the same across all Nova


(string) The *available* block device to create LVM volume group upon.
(string) Comma separated list of key=value config flags to be set in nova.conf.
(string) Username for database access
(string) Database name
(string) Repository from which to install. May be one of the following: distro (default), ppa:somecustom/ppa, a deb url sources entry, or a supported Cloud Archive release pocket. Supported Cloud Archive sources include: cloud:precise-folsom, cloud:precise-folsom/updates, cloud:precise-folsom/staging, cloud:precise-folsom/proposed. Note that updating this setting to a source that is known to provide a later version of OpenStack will trigger a software upgrade.
(string) If 'true', charm will attempt to overwrite storage containing previous filesystems or LVM, assuming it is not in use.
(string) Username used to access rabbitmq queue
(string) Rabbitmq vhost
(string) Name of volume group to create on top of block-device