GithubHelp home page GithubHelp logo

elastiq's Introduction

elastiq

elastiq is a lightweight Python daemon that allows a cluster of virtual machines running a batch system to scale up and down automatically.

Scale up. elastiq monitors the batch system's queue. If too many jobs are waiting, it requests new virtual machines.

Scale down. elastiq monitors cluster's virtual machines. If some machines are idle for some time, it turns them off.

EC2. elastiq communicates with the cloud via the ubiquitous EC2 interface. The boto library is used for that.

Quotas. elastiq supports a quota for a minimum and maximum number of virtual machines. It will always ensure that a minimum number of virtual machines are running, and it will never run too many virtual machines.

Plugins. elastiq can support several batch systems via plugins. It already comes with support for HTCondor.

IaaS embedded elasticity. elastiq allows to run an entire IaaS cluster that scales itself without using tools running outside the virtual cluster. Run it on the head node of your virtual cluster and it will scale it on any cloud exposing an EC2 interface.

Requirements

  • Python 2.6 or greater
  • boto

Installation

CentOS/RHEL

Pick a release and an RPM from the releases page, and install it with:

yum localinstall python-elastiq-<ver>.rpm

Debian/Ubuntu

Pick a release and a deb from the releases page, and install it with:

gdebi python-elastiq-<ver>.deb

Run in foreground

Syntax:

elastiq-real.py --config=<configfile> [--logdir=<logdir>]

Where:

  • <configfile> is the configuration file (mandatory)
  • <logdir> is a directory where to place logfiles, which are rotated periodically

If run like this, it will stay in the foreground. It is also possible to run it as a system service: a script for running it in background is provided.

Run in background

To run it in the background use the elastiqctl command. It is recommended to run it as an unprivileged user.

Syntax:

elastiqctl [start|stop|status|restart|log|conf]

Where:

  • start, stop and restart are self-explanatory;
  • status tells whether the daemon is running;
  • log shows the log of elastiq in real time (quit with Ctrl-C);
  • conf shows some configuration information like the Python version, configuration file in use and log files directory.

Default configuration

When running as unprivileged user:

  • log directory: ~/.elastiq/log
  • configuration file: ~/.elastiq/elastiq.conf

When running as root:

  • log directory: /var/log/elastiq
  • configuration file: /etc/elastiq.conf

Configuration

See the provided example elastiq.conf.example under the elastiq installation directory.

Plugins

See the htcondor.py plugin provided as an example.

elastiq's People

Contributors

dberzano avatar

Watchers

Stefano avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.