Giter Club home page Giter Club logo

docker-beegfs's Introduction

BeeGFS on Docker

BeeGFS is the leading parallel cluster file system, developed with a strong focus on performance and designed for very easy installation and management.

Host setup

Kernel module

First the beegfs kernel module needs to be loaded:

modprobe beegfs

If it hasn't been built either copy ./beegfs.ko into /lib/modules/3.10.0-327.18.2.el7.x86_64/updates/fs/beegfs_autobuild/beegfs.ko if the kernel version matches (built on CentOS 7.2.1511). Otherwise install beegfs-client, then:

cd /opt/beegfs/src/client/beegfs_client_module_XXX/build
make beegfs

Path to kernel headers may be incorrect; to fix it up:

ln -s 3.10.0-327.18.2.el7.x86_64/ /usr/src/kernels/3.10.0-327.18.2.el7.x86_64/

SELinux

In order for BeeGFS to function properly SELinux needs to be disabled on the host too.

Build containers

You can skip building the images if you're using the images from the Docker Hub:

docker-compose -f docker-compose.dev.yml build

Run containers

docker-compose up

or to force them to the background with:

docker-compose start

If you have enable the client (see caveats section below):

Verify the client has mounted the file system:

host# docker exec -ti dockerbeegfs_client_1 beegfs-df

Otherwise you can use beegfs-df from another client instead.

Setup description

The storage container uses a volume for the storage directory /data. By default the docker-compose.yml will use ~/beegfs_storage on the host. This ensures that all files will be persistent across container restarts.

The hostname of the storage container is encoded into /data/originalNodeID. This container therefore has a fixed hostname node03.dockerbeegfs. If this is not desired the aforementioned file must be removed between storage container restarts or it will fail to start again:

"Error: NodeID has changed from 'e2a56526a0b9' to 'ee6886c9c982'. Shutting down... (File: /data/originalNodeID)"

Node names

The containers/hostnames vs. service mapping is equivalent to what's used in the Quickstart Guide

Caveats

The client container (node04) may sometimes have issues stopping cleanly and may actually hog the Docker daemon itself at times. This is most likely related to the fact it's using the external kernel module. The container is only included for demonstration purposes and not started by default.

If you want to write to a BeeGFS cluster from within a Docker container you should use the docker-volume-beegfs plugin instead. It exposes a Docker native volume to your containers.

Environment variables

  • BEEGFS_LOGLEVEL: 0 - 5 (default: 3)
  • metadata-specific:
    • METADATA_SERVICE_ID default: 2
  • storage-specific:
    • STORAGE_SERVICE_ID default: 3
    • STORAGE_TARGET_ID default: 301

Support

These images are provided free of charge by RedCoolBeans. Various security measures have not been implemented or added in these images. For supported and security hardened images with BeeGFS, please contact us.

Copyright and license

MIT, please see the LICENSE file.

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

docker-beegfs's People

Contributors

jasperla avatar reinerj avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

docker-beegfs's Issues

volume for metadata and mgmtd

Hi,

Why did you not set a volume for the metadata and the management containers as you do for the storage container ?
Did you forget or it's just useless ?

Thanks in advance for your answer, and sorry for my bad english ;)

Thomas.

Not able to start beegfs-client docker container

Hi Team

I used Dockerfile in client folder to create image , below are parameters I changed as I have a running Beegfs cluster.
BEEGFS_VERSION 6 ---> 7.2.5
RUN /opt/beegfs/sbin/beegfs-setup-client -m node01 ---> -m <ip_address>

The goal is to create 10~100 docker containers as clients and run benchmarks on all clients to check real performance of beegfs

Below is the trace when running the image , please let me know what else to be configured before running beegfs-clint docker containers . I am not using docker-compose as I have a physical setup up and running . I just need to increase clients exponentially .

[root@lustre-client auto]# docker run --privileged -it precisesingh/beegfs-client:1.0 bash

  • Mounting directories from /etc/beegfs/beegfs-mounts.conf
    mount: /mnt/beegfs: unknown filesystem type 'beegfs'.
    (3) Mar20 07:25:17 Main [StreamLis] >> Listening for TCP connections: Port 8006
    (1) Mar20 07:25:17 Main [App] >> BeeGFS Helper Daemon Version: 7.2.5
    (1) Mar20 07:25:17 Main [App] >> Client log messages will be prefixed with an asterisk (*) symbol.
    (3) Mar20 07:25:17 Main [App] >> Usable NICs: eth0(TCP)

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.