Files
openstack-ansible/doc/source/install-guide-revised-draft/overview-storage-arch.rst
Alexandra 192efa5d63 [DOCS} Further edits, corrects to draft install
Change-Id: I25df03899c3052e86cce8cb3797f605993c25a37
Implements: blueprint osa-install-guide-overhaul
2016-08-25 17:07:43 -04:00

136 lines
4.8 KiB
ReStructuredText

====================
Storage architecture
====================
OpenStack-Ansible supports Block Storage (cinder), Ephemeral storage
(nova), Image service (glance), and Object Storage (swift).
Block Storage (cinder)
~~~~~~~~~~~~~~~~~~~~~~
.. important::
The Block Storage used by each service is typically on a storage system, not
a server. An exception to this is the LVM-backed storage store; however, this is a
reference implementation and is used primarily for test environments and not
for production environments. For non-server storage systems, the ``cinder-volume``
service interacts with the Block Storage system through an API which
is implemented in the appropriate driver.
When using the cinder LVM driver, you have separate physical hosts with the
volume groups that cinder volumes will use.
Most of the other external cinder storage (For example: Ceph, EMC, NAS, and
NFS) sets up a container inside one of the infra hosts.
.. note::
The ``cinder-volume`` service cannot run in a highly available configuration.
Do not set it up on multiple hosts. If you have multiple storage
backends, set up one per volumes container.
For more information: `<https://specs.openstack.org/openstack/cinder-specs/specs/mitaka/cinder-volume-active-active-support.html>`_.
Configuring the Block Storage service
-------------------------------------
Configure ``cinder-api`` infra hosts with ``br-storage`` and ``br-mgmt``.
Configure ``cinder-volumes`` hosts with ``br-storage`` and ``br-mgmt``.
* ``br-storage`` bridge carries Block Storage traffic to compute host.
* ``br-mgmt`` bridge carries Block Storage API requests traffic.
.. note::
For production environments segregate the traffic (storage and
API request) from the hosts onto dedicated networks.
Object Storage (swift)
~~~~~~~~~~~~~~~~~~~~~~
The Object Storage proxy service container resides on one of the infra hosts
whereas the actual swift objects are stored on separate physical hosts.
.. important::
The swift proxy service is responsible for storage, retrieval, encoding, and
decoding of objects from an object server.
Configuring the Object Storage service
--------------------------------------
Ensure the swift proxy hosts are configured with ``br-mgmt`` and ``br-
storage``. Ensure storage hosts are configured with ``br-storage``. When using
dedicated replication, also ensure storage hosts are configured with ``br-
repl``.
``br-storage`` handles the retrieval and upload of objects to the storage
nodes. ``br-mgmt`` handles the API requests.
* ``br-storage`` carries traffic for the transfer of objects from the storage
hosts to the proxy and vice-versa.
* ``br-repl`` carries traffic for the replication of objects between storage
hosts, and is not needed by the proxy containers.
.. note::
``br-repl`` is optional. Replication occurs over the ``br-storage``
interface when there is no ``br-repl`` replication bridge.
Ephemeral storage (nova)
~~~~~~~~~~~~~~~~~~~~~~~~
The ``nova-scheduler`` container resides on the infra host. The
``nova-scheduler`` service determines on which host (node on
which ``nova-compute`` service is running) a particular VM
launches.
The ``nova-api-os-compute`` container resides on the infra host. The
``nova-compute`` service resides on the compute host. The
``nova-api-os-compute`` container handles the client API requests and
passes messages to the ``nova-scheduler``. The API requests may
involve operations that require scheduling (For example, instance
creation or deletion). These messages are then sent to
``nova-conductor`` which in turn pushes messages to ``nova-compute``
on the compute host.
Configuring the Ephemeral storage
---------------------------------
All nova containers on the infra hosts communicate using the AMQP service over
the management network ``br-mgmt``.
Configure the ``nova-compute`` host with ``br-mgmt`` for it to
communicate with the ``nova-conductor`` and ``br-storage`` for it to
carry traffic to the storage host. Configure the
``nova-api-os-compute`` host with the ``br-mgmt``.
* ``br-mgmt`` bridge handles the client interaction for API requests.
* ``br-storage`` bridge handles the transfer of data from the storage
hosts to the compute host and vice-versa.
.. note::
For production environments segregate the traffic (storage and
API request) from the hosts onto dedicated networks.
Image service (glance)
~~~~~~~~~~~~~~~~~~~~~~
The glance API and volume service runs in the glance container on
infra hosts.
Configuring the Image service
-----------------------------
Configure the ``glance-volume`` container to use the ``br-storage`` and
``br-mgmt`` interfaces.
* ``br-storage`` bridge carries image traffic to compute host.
* ``br-mgmt`` bridge carries Image Service API request traffic.
--------------
.. include:: navigation.txt