Testing Site Testing Site

skip to navigation
skip to content

openfoam-cloud 1.0.1

OpenFOAM cloud backend application

Installing from GitHub

Clone the repository

git clone https://github.com/mikelangelo-project/openfoam-cloud.git

Install required Python packages

pip install -r requirements.txt

Installing via pip

pip install openfoam-cloud

Setup

Install the following required packages

  • capstan
  • snap
  • grafana: sudo apt-get install grafana
  • influxdb: sudo apt-get install influxdb

Copy local settings

cp ofcloud/ofcloud/local_settings.py{.example,}

Edit local settings to reflect your environment

OPENFOAM_BASENAME       = 'http://openfoam.example.com'
GRAFANA_BASENAME        = 'http://grafana.example.com'

S3_ACCESS_KEY_ID        = 'your-s3-key'
S3_SECRET_ACCESS_KEY    = 'your-s3-secret-key'
S3_HOST                 = 's3-host'
S3_PORT                 = 8443

SNAP_SERVICE            = 'snap-api-root'
INFLUX_DB_HOST          = 'influxdb-host'
INFLUX_DB_PORT          = 8086
INFLUX_DB_NAME          = 'snap'
INFLUX_DB_USER          = 'admin'
INFLUX_DB_PASS          = 'admin'

# Dedicated openfoam network settings
OPENFOAM_NETWORK_PREFIX = 'openfoam'
OPENFOAM_NETWORK_CIDR = 'your desired network CIDR'
OPENFOAM_NETWORK_ALLOCATION_POOL_START = 'your IP allocation range start'
OPENFOAM_NETWORK_ALLOCATION_POOL_END = 'your IP allocation range end'
OPENFOAM_NETWORK_GATEWAY_IP = 'your gateway IP usually the first IP in CIDR range'

# Scheduler daemon settings
SCHEDULER_REFRESH_INTERVAL_SECONDS = 'desired scheduler daemon refresh interval in seconds'

# OpenFOAM simulations save their results on a NFS server as is evident from the NFS_IP setting. The
# LOCAL_NFS_MOUNT_LOCATION setting tells the scheduler daemon where to prepare simulation case files, capstan package etc.
# This folder should have the NFS location mounted (example /mnt/OpenFOAM_results) except when the scheduler runs on
# the NFS machine itself, then this can point directly to the exported directory (for instance '/export/OpenFOAM_results/')
LOCAL_NFS_MOUNT_LOCATION = 'path to folder with mounted NFS location'

# Network file storage server ip address
NFS_IP = 'nfs server ip'

# Location on the NFS server where OpenFOAM case files and results will be saved
NFS_SERVER_MOUNT_FOLDER = 'location on the nfs server, where simulation case files and results are saved'

# Maximum number of launch retries of one instance. When this limit is reached, the simulation instance enters the
# 'FAILED' state
OPENFOAM_SIMULATION_MAX_RETRIES = 3

# Overrides the number of maximum NOVA vcpu's used. Example: openstack allows use of maximum 24 vcpus. Our setting
# allows only 12. The scheduler_deamon will run new simulations until 12 vcpu's are used on nova.
# If this setting value is higher than nova's max VCPU quota, the latter will be respected.
OPENFOAM_MAX_CPU_USAGE = 18

# Overrides the number of maximum NOVA instances used. Example: openstack allows use of 10 instances. Our setting
# allows only 5. The scheduler_deamon will run new simulations until 5 oinstances are used on nova.
# If this setting value is higher than nova's max instance quota, the latter will be respected.
OPENFOAM_MAX_INSTANCE_USAGE = 8

Running

Ensure snap, influxdb and grafana are running. Define a datasource for influxdb in grafana.

  • snap: /opt/snap/bin/snapd -t 0 -a /opt/snap/plugin
  • influxdb: /etc/init.d/influxdb start
  • grafana: /etc/init.d/grafana-server start

Then launch the OpenFOAM backend

python manage.py runserver 0.0.0.0:8008

Next launch the OpenFOAM scheduler daemon

python manage.py runscheduler

Acknowledgements

This project has been conducted within the RIA MIKELANGELO project (no. 645402), started in January 2015, and co-funded by the European Commission under the H2020-ICT- 07-2014: Advanced Cloud Infrastructures and Services programme.

 
File Type Py Version Uploaded on Size
openfoam-cloud-1.0.1.tar.gz (md5) Source 2017-09-14 33KB