Skip to content

Latest commit

 

History

History
73 lines (48 loc) · 3.78 KB

File metadata and controls

73 lines (48 loc) · 3.78 KB

Cloud Resource Allocation Simulator

1. Introduction

This is a Event-based Simulator for Cloud Resource Allocation Problem we researched in this Paper: Service Function Chain Embedding in Centralized and Distributed Data Centers – a Comparison

2. Installation

This Simulator is developed in Python Programming Language, using these Libraries:

  • networkx
  • simpy
  • matplotlib
  • numpy

Require Python version >= 3.6

3. Structure

alt

  • Simulator: Control simulator operations, schedule processing of SFCs, log activities, initialize other components of the simulation
  • Logger: Logging output to file
  • Substrate: Represents each Substrate Topology (Big Topo), storing the structure of the Substrate and the structure of the DC. Specific Substrates are implemented as Realizations of this class
  • Ingress: Represents Ingress nodes, having the function of generating SFC according to a given distribution
  • Application: Definition of the structure and parameters of the SFC
  • Distribution: generate the interval between 2 SFCs according to the distribution installed as Realizations of this class
  • Selector: contains the algorithm to put the SFC on the server, the algorithms are implemented as Realizations of this class
  • SubstrateSelector: contains the DC selection algorithm to set the SFC, the algorithms are implemented as Realizations of this class
  • DataCentre: represents each DC, consider whether the SFC can be put in, clear the SFC after the SFC TTL timeout

4. Customization

  • To add your Substrate Topology, create a new class that inherits the Substrate class in Substrate.py with corresponding methods. Resource specification (capacity of bandwidth) is created in substrate_topo method

  • By default, Servers and Switches in each Datacentre is organized like Fat-tree Topology. To custom this, edit DC_topo method in in your Substrate class

  • To add your Distribution, create a new class that inherits the Distribution class in Distribution.py with corresponding methods.

  • Custom Algorithm for placing SFC is implemented as an instance of Selector class