2013-04-15 14:39:32 +00:00
=============================
Block Devices and CloudStack
=============================
2013-06-14 23:57:15 +00:00
You may use Ceph Block Device images with CloudStack 4.0 and higher through
2013-04-15 14:39:32 +00:00
`` libvirt `` , which configures the QEMU interface to `` librbd `` . Ceph stripes
block device images as objects across the cluster, which means that large Ceph
2013-06-14 23:57:15 +00:00
Block Device images have better performance than a standalone server!
2013-04-15 14:39:32 +00:00
2013-06-14 23:57:15 +00:00
To use Ceph Block Devices with CloudStack 4.0 and higher, you must install QEMU,
2013-04-15 14:39:32 +00:00
`` libvirt `` , and CloudStack first. We recommend using a separate physical host
for your CloudStack installation. CloudStack recommends a minimum of 4GB of RAM
and a dual-core processor, but more CPU and RAM will perform better. The
following diagram depicts the CloudStack/Ceph technology stack.
.. ditaa :: +---------------------------------------------------+
| CloudStack |
+---------------------------------------------------+
| libvirt |
+------------------------+--------------------------+
|
| configures
v
+---------------------------------------------------+
| QEMU |
+---------------------------------------------------+
| librbd |
+---------------------------------------------------+
| librados |
+------------------------+-+------------------------+
| OSDs | | Monitors |
+------------------------+ +------------------------+
2013-06-14 23:57:15 +00:00
.. important :: To use Ceph Block Devices with CloudStack, you must have
access to a running Ceph Storage Cluster.
2013-04-15 14:39:32 +00:00
CloudStack integrates with Ceph's block devices to provide CloudStack with a
back end for CloudStack's Primary Storage. The instructions below detail the
setup for CloudStack Primary Storage.
2014-10-01 15:01:07 +00:00
.. note :: We recommend installing with Ubuntu 14.04 or later so that
2013-04-15 14:39:32 +00:00
you can use package installation instead of having to compile
2013-05-01 09:09:11 +00:00
libvirt from source.
2014-03-04 21:24:36 +00:00
.. note :: Make sure the /tmp partition on your hypervisors is at least 25GB.
When deploying from a template from the first time /tmp will be used for
2014-04-11 11:59:31 +00:00
converting the template from QCOW2 to RAW for storage on RBD. This is no
longer valid starting from CloudStack version 4.4.0
.. note :: To use RBD with CloudStack 4.4.0 you require at least librbd version
0.67.7 (Ceph Dumpling). Otherwise template deployments and template backups
will fail. In case you use Ubuntu we recommend at least LTS version 14.04
2013-04-15 14:39:32 +00:00
Installing and configuring QEMU for use with CloudStack doesn't require any
2013-06-14 23:57:15 +00:00
special handling. Ensure that you have a running Ceph Storage Cluster. Install
QEMU and configure it for use with Ceph; then, install `` libvirt `` version
0.9.13 or higher (you may need to compile from source) and ensure it is running
with Ceph.
2013-04-15 14:39:32 +00:00
2013-05-01 09:09:11 +00:00
.. note :: Raring Ringtail (13.04) will have `` libvirt `` version 0.9.13 or higher
with RBD storage pool support enabled by default.
2013-04-15 14:39:32 +00:00
2014-10-01 15:01:07 +00:00
.. index :: pools; CloudStack
2013-06-14 23:57:15 +00:00
2013-04-15 14:39:32 +00:00
Create a Pool
=============
By default, Ceph block devices use the `` rbd `` pool. Create a pool for
CloudStack NFS Primary Storage. Ensure your Ceph cluster is running, then create
the pool. ::
ceph osd pool create cloudstack
See `Create a Pool`_ for details on specifying the number of placement groups
for your pools, and `Placement Groups`_ for details on the number of placement
groups you should set for your pools.
2014-09-08 20:24:52 +00:00
Create a Ceph User
==================
2014-01-29 10:08:08 +00:00
2014-09-08 20:24:52 +00:00
To access the Ceph cluster we require a Ceph user which has the correct
credentials to access the `` cloudstack `` pool we just created. Although we could
use `` client.admin `` for this, it's recommended to create a user with only
access to the `` cloudstack `` pool. ::
2014-01-29 10:08:08 +00:00
2014-10-01 15:01:07 +00:00
ceph auth get-or-create client.cloudstack mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=cloudstack'
2014-01-29 10:08:08 +00:00
2014-09-08 20:24:52 +00:00
Use the information returned by the command in the next step when adding the
Primary Storage.
See `User Management`_ for additional details.
2013-04-15 14:39:32 +00:00
Add Primary Storage
===================
2014-03-04 21:24:36 +00:00
To add primary storage, refer to `Add Primary Storage (4.2.0)`_ to add a Ceph block device, the steps
2013-04-15 14:39:32 +00:00
include:
#. Log in to the CloudStack UI.
#. Click **Infrastructure** on the left side navigation bar.
#. Select the Zone you want to use for Primary Storage.
#. Click the **Compute** tab.
#. Select **View All** on the `Primary Storage` node in the diagram.
#. Click **Add Primary Storage** .
#. Follow the CloudStack instructions.
- For **Protocol** , select `` RBD `` .
2014-01-29 10:08:08 +00:00
- Add cluster information (cephx is supported). Note: Do not include the `` client. `` part of the user.
2013-04-15 14:39:32 +00:00
- Add `` rbd `` as a tag.
Create a Disk Offering
======================
2014-03-04 21:24:36 +00:00
To create a new disk offering, refer to `Create a New Disk Offering (4.2.0)`_ .
Create a disk offering so that it matches the `` rbd `` tag.
The `` StoragePoolAllocator `` will choose the `` rbd ``
2013-04-15 14:39:32 +00:00
pool when searching for a suitable storage pool. If the disk offering doesn't
match the `` rbd `` tag, the `` StoragePoolAllocator `` may select the pool you
created (e.g., `` cloudstack `` ).
2012-09-06 00:24:54 +00:00
2012-08-08 21:51:10 +00:00
Limitations
2012-09-06 00:24:54 +00:00
===========
2013-05-01 09:09:11 +00:00
- CloudStack will only bind to one monitor (You can however create a Round Robin DNS record over multiple monitors)
2013-04-15 14:39:32 +00:00
- You may need to compile `` libvirt `` to use version 0.9.13 with Ubuntu.
2012-08-08 21:51:10 +00:00
2012-09-06 00:24:54 +00:00
2012-08-08 21:51:10 +00:00
2013-04-15 14:39:32 +00:00
.. _Create a Pool: ../../rados/operations/pools#createpool
.. _Placement Groups: ../../rados/operations/placement-groups
.. _Install and Configure QEMU: ../qemu-rbd
.. _Install and Configure libvirt: ../libvirt
2014-03-04 21:24:36 +00:00
.. _KVM Hypervisor Host Installation: http://cloudstack.apache.org/docs/en-US/Apache_CloudStack/4.2.0/html/Installation_Guide/hypervisor-kvm-install-flow.html
.. _Add Primary Storage (4.2.0): http://cloudstack.apache.org/docs/en-US/Apache_CloudStack/4.2.0/html/Admin_Guide/primary-storage-add.html
.. _Create a New Disk Offering (4.2.0): http://cloudstack.apache.org/docs/en-US/Apache_CloudStack/4.2.0/html/Admin_Guide/compute-disk-service-offerings.html#creating-disk-offerings
2014-10-01 15:01:07 +00:00
.. _User Management: ../../rados/operations/user-management