Skip to content

Control plane of Crystal's SDS system. It is composed by the Crystal API and the distributed controllers.

Notifications You must be signed in to change notification settings

Crystal-SDS/controller

Repository files navigation

Crystal Controller

This repository contains the code of Crystal Controller, the Software-Defined-Storage (SDS) REST API in the IOStack architecture. It is a Django project that implements the REST API needed to handle filters, storlets and policies on top of Openstack Swift object-storage system. This API also includes a set of python processes who use the PyActor middleware, an Object Oriented implementation of the Actor model. This part allows to create simple policies using a DSL (integrated in the Crystal Controller API) and to deploy them as an actor process, who analyze the system data thanks to the monitoring system, and allows to set or remove filters to tenants depending on the established policy.

To build the APIs in an easy way we use Django REST Framework.

Requirements

Installation

  1. Clone the Crystal controller repository
git clone https://github.com/Crystal-SDS/controller /usr/share/crystal-controller
  1. Install Python package dependencies:
pip install -r /usr/share/crystal-controller/requirements.txt
  1. Edit Crystal controller settings file api/api/settings.py: configure Swift proxy IP and port, Keystone IP, OpenStack credentials, Redis location, RabbitMQ credentials.
  2. You can start the controller running the following command from the source folder (/usr/share/crystal-controller/api):
python manage.py runserver 0.0.0.0:9000
  1. Alternatively, it is possible to start the controller by using an Apache Http Server. Copy the config file to the Apache sites folder, and enable it.
cp /usr/share/crystal-controller/etc/apache2/sites-available/crystal_controller.conf /etc/apache2/sites-available/
a2ensite crystal_controller
service apache2 reload

Usage

API usage is detailed in the API specification.

A convenient web dashboard is also available to simplify these API calls. Refer to the dashboard overview for detailed information.

Tests

Run unit tests from the source folder (./api) with the following command: python manage.py test

Support

Please open an issue for support.

Contributing

Please contribute using Github Flow. Create a branch, add commits, and open a pull request.

For more information, please visit crystal-sds website.

About

Control plane of Crystal's SDS system. It is composed by the Crystal API and the distributed controllers.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published