124 lines
12 KiB
ReStructuredText
124 lines
12 KiB
ReStructuredText
Introduction
|
|
============
|
|
Fuel plugin for ScaleIO for enabling OpenStack to work with an **External** ScaleIO
|
|
deployment. This ScaleIO plugin for Fuel extends Mirantis OpenStack
|
|
functionality by adding support for ScaleIO block storage.
|
|
|
|
ScaleIO is a software-only solution that uses existing servers' local
|
|
disks and LAN to create a virtual SAN that has all the benefits of
|
|
external storage—but at a fraction of cost and complexity. ScaleIO
|
|
utilizes the existing local internal storage and turns it into internal
|
|
shared block storage.
|
|
|
|
The following diagram shows the plugin's high level architecture:
|
|
|
|
.. figure:: https://github.com/openstack/fuel-plugin-scaleio-cinder/blob/master/doc/images/fuel-plugin-scaleio-cinder-1.jpg
|
|
:alt: ScaleIO Fuel plugin high level architecture
|
|
|
|
ScaleIO Fuel plugin high level architecture
|
|
|
|
From the figure we can see that we need the following OpenStack roles
|
|
and services:
|
|
|
|
+---------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
|
|
| Service/Role Name | Description | Installed in |
|
|
+=================================+=============================================================================================================================================================================================================================================+=====================+
|
|
| Controller Node + Cinder Host | A node that runs network, volume, API, scheduler, and image services. Each service may be broken out into separate nodes for scalability or availability. In addition this node is a Cinder Host, that contains the Cinder Volume Manager | OpenStack Cluster |
|
|
+---------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
|
|
| Compute Node | A node that runs the nova-compute daemon that manages Virtual Machine (VM) instances that provide a wide range of services, such as web applications and analytics. | OpenStack Cluster |
|
|
+---------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
|
|
|
|
In the **external ScaleIO cluster** we have installed the following
|
|
roles and services:
|
|
|
|
+------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
|
|
| Service Name | Description | Installed in |
|
|
+==============================+======================================================================================================================================================================================================================+=====================+
|
|
| SclaeIO Gateway (REST API) | The ScaleIO Gateway Service, includes the REST API to communicate storage commands to the SclaeIO Cluster, in addtion this service is used for authentication and certificate management. | ScaleIO Cluster |
|
|
+------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
|
|
| Meta-data Manager (MDM) | Configures and monitors the ScaleIO system. The MDM can be configured in redundant Cluster Mode, with three members on three servers, or in Single Mode on a single server. | ScaleIO Cluster |
|
|
+------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
|
|
| Tie Breaker (TB) | Tie Breaker service helps determining what service runs as a master vs. a slave | ScaleIO Cluster |
|
|
+------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
|
|
| Storage Data Server (SDS) | Manages the capacity of a single server and acts as a back-end for data access.The SDS is installed on all servers contributing storage devices to the ScaleIO system. These devices are accessed through the SDS. | ScaleIO Cluster |
|
|
+------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
|
|
| Storage Data Client (SDC) | A lightweight device driver that exposes ScaleIO volumes as block devices to the application that resides on the same server on which the SDC is installed. | Openstack Cluster |
|
|
+------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
|
|
|
|
**Note:** for more information in how to deploy a ScaleIO Cluster,
|
|
please refer to the ScaleIO manuals located in the download packages for
|
|
your platform:
|
|
http://www.emc.com/products-solutions/trial-software-download/scaleio.htm
|
|
and/or `watch the demo <https://community.emc.com/docs/DOC-45019>`__
|
|
|
|
Requirements
|
|
============
|
|
|
|
These are the plugin requirements:
|
|
|
|
+--------------------------------------------------------------------------------+--------------------------------+
|
|
| Requirement | Version/Comment |
|
|
+================================================================================+================================+
|
|
| Mirantis OpenStack compatibility | >= 6.1 |
|
|
+--------------------------------------------------------------------------------+--------------------------------+
|
|
| ScaleIO Version | >= 1.32 |
|
|
+--------------------------------------------------------------------------------+--------------------------------+
|
|
| Controller and Compute Nodes' Operative System | CentOS/RHEL 6.5 |
|
|
+--------------------------------------------------------------------------------+--------------------------------+
|
|
| OpenStack Cluster (Controller/cinder-volume node) can access ScaleIO Cluster | via a TCP/IP Network |
|
|
+--------------------------------------------------------------------------------+--------------------------------+
|
|
| OpenStack Cluster (Compute nodes) can access ScaleIO Cluster | via a TCP/IP Network |
|
|
+--------------------------------------------------------------------------------+--------------------------------+
|
|
| Install ScaleIO Storage Data Client (SDC) in Controller and Compute Nodes | Plugin takes care of install |
|
|
+--------------------------------------------------------------------------------+--------------------------------+
|
|
|
|
Limitations
|
|
===========
|
|
|
|
Currently Fuel doesn't support multi-backend storage.
|
|
|
|
Configuration
|
|
=============
|
|
|
|
Plugin files and directories:
|
|
|
|
+------------------------------+--------------------------------------------------------------------------------------------------------------+
|
|
| File/Directory | Description |
|
|
+==============================+==============================================================================================================+
|
|
| Deployment\_scripts | Folder that includes the bash/puppet manifests for deploying the services and roles required by the plugin |
|
|
+------------------------------+--------------------------------------------------------------------------------------------------------------+
|
|
| Deployment\_scripts/puppet | |
|
|
+------------------------------+--------------------------------------------------------------------------------------------------------------+
|
|
| environment\_config.yaml | Contains the ScaleIO plugin parameters/fields for the Fuel web UI |
|
|
+------------------------------+--------------------------------------------------------------------------------------------------------------+
|
|
| metadata.yaml | Contains the name, version and compatibility information for the ScaleIO plugin |
|
|
+------------------------------+--------------------------------------------------------------------------------------------------------------+
|
|
| pre\_build\_hook | Mandatory file - blank for the ScaleIO plugin |
|
|
+------------------------------+--------------------------------------------------------------------------------------------------------------+
|
|
| repositories/centos | Empty Directory, the plugin scripts will download the required CentOS packages |
|
|
+------------------------------+--------------------------------------------------------------------------------------------------------------+
|
|
| repositories/Ubuntu | Empty Directory, not used |
|
|
+------------------------------+--------------------------------------------------------------------------------------------------------------+
|
|
| taks.yaml | Contains the information about what scripts to run and how to run them |
|
|
+------------------------------+--------------------------------------------------------------------------------------------------------------+
|
|
|
|
This Fuel plugin will install the ScaleIO Storage Data Client (SDC)
|
|
service on each Controller node and Compute node in the cluster. This is
|
|
necessary in order for the VMs in each compute node to utilize ScaleIO
|
|
Storage:
|
|
|
|
.. figure:: https://github.com/openstack/fuel-plugin-scaleio-cinder/blob/master/doc/images/fuel-plugin-scaleio-cinder-2.jpg
|
|
:alt: Plugin Architecture
|
|
|
|
Plugin Architecture
|
|
|
|
Before starting a deployment there are some things that you should
|
|
verify:
|
|
|
|
1. Your ScaleIO Cluster can route 10G Storage Network to all Compute
|
|
nodes as well as the Cinder Control/Manager node.
|
|
2. Create an account on the ScaleIO cluster to use as the OpenStack
|
|
Administrator account (use the login/password for this account as
|
|
san\_login/password settings).
|
|
3. Obtain the IP address from the ScaleIO cluster
|