/mcemu

Multi-Cloud Simulation + Emulation framework (MC-SIM/MC-EMU)

Primary LanguagePython

Multi-Cloud Simulation + Emulation framework (MC-SIM/MC-EMU):
Targeted failures of compute, storage and networking resouces
Copyright (C) 2015, 2016 Josef Spillner <josef.spillner@zhaw.ch>
========================================================================

The framework allows for investigating advanced multi-cloud
configurations including a determination of data fragment distributions
for constrained dispersal. The emulation enforces simulated failures on
target services.

Dispersing or secret-sharing fragmented data with a selective amount of
redundancy onto heterogeneous storage or transmission targets is a
challenge when having to determine the optimal distribution assignment.
There are multiple determination schemes, but most do not consider all
constraints, such as a maximum overall transmission price or elastically
scalable storage services. The multi-cloud simulation tools help
determining the distribution with multiple schemes in parallel. They
also allow for comparing the schemes based on their result quality and
execution time.

Simple availability calculation for a service with varying amount of
redundancy:

% ./calculation/calc-availability.py precise simulations/goldstandardservices.ini

Comparative execution of distribution determination schemes with certain
limits for overall availability, capacity and price, as well as execution
runtime:

% ./calculation/calc-distribution.py generated 0.90 9 20.23 0.001 all

% Graphical tool MC-SIM to execute and analyse the schemes individually:

% cd mcsim/
% ./mcsim

Emulation script for availability changes over time of storage services and
services in general, with execution support for web/file servers (storage),
containers (compute) and proxies (network):

% cd emulation/
% ./mcemu-server ../simulations/scenario.ini gatling convergence
% # after modifying dockerhook.py - IP address and SSH key:
% ./mcemu-server ../simulations/cna.ini docker convergence