Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

EmuFog: Extensible and Scalable Emulation of Large-Scale Fog Computing Infrastructures

License

NotificationsYou must be signed in to change notification settings

emufog/emufog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build StatusCodacy BadgecodecovMIT License

EmuFog helps to test fog computing applications more efficiently.Instead of actual deploying large network topologies with your application to test, EmuFog helps to generate networks that can be emulated easily withMaxiNet, a distributed version of the popularMininet.This provides more realistic results than simulations and is cheaper and faster than real deployments.As an input EmuFog supports generated topologies fromBRITE or measured real world topologies fromCaida.In those networks EmuFog places fog nodes efficiently based on user defined constrains such as network latency thresholds or resource constraints.Applications for clients and fog nodes can be anything shipped in a Docker container.

Build EmuFog From Source

EmuFog is build usingKotlin 1.4 on the JDK 11.It usesGradle to include dependencies and build binaries from the source code.Therefore, this repository contains a Gradle wrapper filegradlew for Linux and macOS and agradlew.bat for Windows.

To build EmuFog simply clone the git repository

git clone https://github.com/emufog/emufog.git

change the directory to the newly added emufog directory

cd emufog/

Run the Gradlebuild task to compile the sources and run the tests.

./gradlew build

The distributions archives can be found inbuild/distributions.

distributions/├── emufog.tar└── emufog.zip

Running EmuFog

Download the latest release as an archive from thehere.

Extract the files from the archive e.g.

unzip -q emufog.zipcd emufog/bin

Run the script depending on your operating system.For Linux and macOS:

./emufog --help

and for Microsoft Windows:

./emufog.bat --help

The following steps explain how to use EmuFog in more detail.

Get A Network Topology

EmuFog currently supports two different graph data formats:

  1. TheBRITE network generator supporting the following models:
  1. TheMacroscopic Internet Topology Data Kit from Caida including measured real world internet topologies

Write The Configuration File

To specify the hardware capabilities and the software to test, EmuFog uses a configuration file containing all necessary information.The EmuFog repository contains anexemplary configuration file to get started.The parameters used are explained in the tables below in more detail.

ParameterDescription
base-addressThe base IP address of the network containing all nodes. This is the starting point and first address assigned. Format:XXX.XXX.XXX.XXX
overwrite-experiment-fileIndicates whether the output file should be overwritten in case it already exists.true to overwrite file,false to keep it.
max-fog-nodesThe maximum number of fog nodes to place in the network.
cost-thresholdThe cost function's threshold. Depends on the cost function chosen. The current implementation uses latency as a cost function.
host-device-latencyLatency to use between a placed client device at the edge of the network and its associated edge node.
host-device-bandwidthBandwidth to use between a placed client device at the edge of the network and its associated edge node. Measured in MB/s.
device-node-typesList of device containers that get assigned to the edge of the network. See below.
fog-node-typesList of possible fog node types that can be placed in the topology. See below.

The device containers use the following parameters:

ParameterDescription
container-imageDocker image to use. See below.
scaling-factorScales the workload of this device higher than 1. Defaults to1
average-device-countThe average number of devices of this type connected to an edge node.
memory-limitMemory size of this container in Bytes.
cpu-shareScaling of the CPU power. Container receives share of its value in respect to the total sum.

Fog nodes share some generic parameters with client devices. Still, all parameters are listed below.

ParameterDescription
container-imageDocker image to use. See below.
maximum-connectionsThe maximum number of connections from client devices this container can handle.
costsDeployment costs of this fog node in the network.
memory-limitMemory size of this container in Bytes.
cpu-shareScaling of the CPU power. Container receives share of its value in respect to the total sum.

A Docker container consists of:

ParameterDescription
nameName of the Docker container to use.
versionVersion of the Docker container to use. Defaults tolatest

Execute EmuFog

EmuFog requires input by the user to run.Therefore, the information can be passed via a command line interface as arguments.The following table lists the required arguments, their shortcut and their respective description.

ArgumentShortcutDescription
--Config-cPath to the configuration file to use.
--Type-tThe type of reader to use. Currently supported: BRITE and CAIDA. This argument is case insensitive.
--File-fPath to a topology file to read in. This argument can be used multiple times.
--Output-oPath to the output file to write. Defaults tooutput.py.

A call of EmuFog could look like this for Linux and macOS:

./emufog -c config.yaml -t brite -f topology.brite -o out.py

Deploy An Experiment

The final outcome of EmuFog is the network graph with the defined devices and fog nodes placed in the topology.In order to run an experiment it requires a network emulation tool executing the defined software.Currently, EmuFog supports an export for theMaxiNet emulator.Follow the instructions to set it up and run the generated experiment file.

License

Licensed under theMIT license.

About

EmuFog: Extensible and Scalable Emulation of Large-Scale Fog Computing Infrastructures

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages


[8]ページ先頭

©2009-2025 Movatter.jp