aboutsummaryrefslogtreecommitdiff
path: root/doc/source/reference/cinder-guide.rst
diff options
context:
space:
mode:
Diffstat (limited to 'doc/source/reference/cinder-guide.rst')
-rw-r--r--doc/source/reference/cinder-guide.rst166
1 files changed, 166 insertions, 0 deletions
diff --git a/doc/source/reference/cinder-guide.rst b/doc/source/reference/cinder-guide.rst
new file mode 100644
index 000000000..937e99ac8
--- /dev/null
+++ b/doc/source/reference/cinder-guide.rst
@@ -0,0 +1,166 @@
+.. _cinder-guide:
+
+===============
+Cinder in Kolla
+===============
+
+Overview
+========
+
+Cinder can be deploying using Kolla and supports the following storage
+backends:
+
+* ceph
+* hnas_iscsi
+* hnas_nfs
+* iscsi
+* lvm
+* nfs
+
+LVM
+===
+
+When using the ``lvm`` backend, a volume group will need to be created on each
+storage node. This can either be a real physical volume or a loopback mounted
+file for development. Use ``pvcreate`` and ``vgcreate`` to create the volume
+group. For example with the devices ``/dev/sdb`` and ``/dev/sdc``:
+
+::
+
+ <WARNING ALL DATA ON /dev/sdb and /dev/sdc will be LOST!>
+
+ pvcreate /dev/sdb /dev/sdc
+ vgcreate cinder-volumes /dev/sdb /dev/sdc
+
+During development, it may be desirable to use file backed block storage. It
+is possible to use a file and mount it as a block device via the loopback
+system. ::
+
+
+ free_device=$(losetup -f)
+ fallocate -l 20G /var/lib/cinder_data.img
+ losetup $free_device /var/lib/cinder_data.img
+ pvcreate $free_device
+ vgcreate cinder-volumes $free_device
+
+Enable the ``lvm`` backend in ``/etc/kolla/globals.yml``:
+
+::
+
+ enable_cinder_backend_lvm: "yes"
+
+.. note ::
+ There are currently issues using the LVM backend in a multi-controller setup,
+ see `_bug 1571211 <https://launchpad.net/bugs/1571211>`__ for more info.
+
+NFS
+===
+
+To use the ``nfs`` backend, configure ``/etc/exports`` to contain the mount
+where the volumes are to be stored::
+
+ /kolla_nfs 192.168.5.0/24(rw,sync,no_root_squash)
+
+In this example, ``/kolla_nfs`` is the directory on the storage node which will
+be ``nfs`` mounted, ``192.168.5.0/24`` is the storage network, and
+``rw,sync,no_root_squash`` means make the share read-write, synchronous, and
+prevent remote root users from having access to all files.
+
+Then start ``nfsd``::
+
+ systemctl start nfs
+
+On the deploy node, create ``/etc/kolla/config/nfs_shares`` with an entry for
+each storage node::
+
+ storage01:/kolla_nfs
+ storage02:/kolla_nfs
+
+Finally, enable the ``nfs`` backend in ``/etc/kolla/globals.yml``::
+
+ enable_cinder_backend_nfs: "yes"
+
+Validation
+==========
+
+Create a volume as follows:
+
+::
+
+ $ openstack volume create --size 1 steak_volume
+ <bunch of stuff printed>
+
+Verify it is available. If it says "error" here something went wrong during
+LVM creation of the volume. ::
+
+ $ openstack volume list
+ +--------------------------------------+--------------+-----------+------+-------------+
+ | ID | Display Name | Status | Size | Attached to |
+ +--------------------------------------+--------------+-----------+------+-------------+
+ | 0069c17e-8a60-445a-b7f0-383a8b89f87e | steak_volume | available | 1 | |
+ +--------------------------------------+--------------+-----------+------+-------------+
+
+Attach the volume to a server using:
+
+::
+
+ openstack server add volume steak_server 0069c17e-8a60-445a-b7f0-383a8b89f87e
+
+Check the console log added the disk:
+
+::
+
+ openstack console log show steak_server
+
+A ``/dev/vdb`` should appear in the console log, at least when booting cirros.
+If the disk stays in the available state, something went wrong during the
+iSCSI mounting of the volume to the guest VM.
+
+Cinder LVM2 back end with iSCSI
+===============================
+
+As of Newton-1 milestone, Kolla supports LVM2 as cinder back end. It is
+accomplished by introducing two new containers ``tgtd`` and ``iscsid``.
+``tgtd`` container serves as a bridge between cinder-volume process and a
+server hosting Logical Volume Groups (LVG). ``iscsid`` container serves as
+a bridge between nova-compute process and the server hosting LVG.
+
+In order to use Cinder's LVM back end, a LVG named ``cinder-volumes`` should
+exist on the server and following parameter must be specified in
+``globals.yml`` ::
+
+ enable_cinder_backend_lvm: "yes"
+
+For Ubuntu and LVM2/iSCSI
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+``iscsd`` process uses configfs which is normally mounted at
+``/sys/kernel/config`` to store discovered targets information, on centos/rhel
+type of systems this special file system gets mounted automatically, which is
+not the case on debian/ubuntu. Since ``iscsid`` container runs on every nova
+compute node, the following steps must be completed on every Ubuntu server
+targeted for nova compute role.
+
+ - Add configfs module to ``/etc/modules``
+ - Rebuild initramfs using: ``update-initramfs -u`` command
+ - Stop ``open-iscsi`` system service due to its conflicts
+ with iscsid container.
+
+ Ubuntu 16.04 (systemd):
+ ``systemctl stop open-iscsi; systemctl stop iscsid``
+
+ - Make sure configfs gets mounted during a server boot up process. There are
+ multiple ways to accomplish it, one example:
+ ::
+
+ mount -t configfs /etc/rc.local /sys/kernel/config
+
+Cinder back end with external iSCSI storage
+===========================================
+
+In order to use external storage system (like one from EMC or NetApp)
+the following parameter must be specified in ``globals.yml`` ::
+
+ enable_cinder_backend_iscsi: "yes"
+
+Also ``enable_cinder_backend_lvm`` should be set to "no" in this case.