Forge Home

beegfs

Manage BeeGFS parallel filesystem installations

15,288 downloads

354 latest version

5.0 quality score

We run a couple of automated
scans to help you access a
module's quality. Each module is
given a score based on how well
the author has formatted their
code and documentation and
modules are also checked for
malware using VirusTotal.

Please note, the information below
is for guidance only and neither of
these methods should be considered
an endorsement by Puppet.

Version information

  • 1.0.0 (latest)
  • 0.8.2
  • 0.8.1
  • 0.8.0
  • 0.7.2
  • 0.7.1
  • 0.7.0
  • 0.6.0
  • 0.5.0
  • 0.4.1
  • 0.4.0
  • 0.3.2
  • 0.3.1
  • 0.3.0
  • 0.2.0
  • 0.1.3
  • 0.1.2
  • 0.1.1
  • 0.1.0
released Jun 25th 2024
This version is compatible with:
  • Puppet Enterprise 2023.8.x, 2023.7.x, 2023.6.x, 2023.5.x, 2023.4.x, 2023.3.x, 2023.2.x, 2023.1.x, 2023.0.x, 2021.7.x, 2021.6.x, 2021.5.x, 2021.4.x, 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x, 2019.8.x, 2019.7.x, 2019.5.x, 2019.4.x, 2019.3.x, 2019.2.x, 2019.1.x, 2019.0.x, 2018.1.x, 2017.3.x, 2017.2.x, 2017.1.x, 2016.4.x
  • Puppet >= 4.9.0 < 9.0.0
  • , , ,

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'deric-beegfs', '1.0.0'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add deric-beegfs
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install deric-beegfs --version 1.0.0

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.

Download

Documentation

deric/beegfs — version 1.0.0 Jun 25th 2024

puppet-beegfs

Puppet Forge Static & Spec Tests Puppet Forge Downloads

Upgrade from deric-beegfs version 0.4.x to 0.5.x

  • beegfs::storage_directory expects an Array instead of just String
  • parameter beegfs::major_version renamed to beegfs::release
  • beegfs::client::client_udp renamed to beegfs::client::client_udp_port

Usage

First of all choose which release to use, by defining:

beegfs::release: '6'

valid values are:

  • '2015.03'
  • '6'
  • '7'
  • '7.1'

You'll need one mgmtd server:

class { 'beegfs::mgmtd': }

in order to accept new storage and meta servers you have to (at least temporarily) enable allow_new_servers and allow_new_targets.

And probably many storage and meta servers:

class { 'beegfs::meta':
  mgmtd_host => 192.168.1.1,
}
class { 'beegfs::storage':
  mgmtd_host => 192.168.1.1,
}

It's easier to define shared settings for all servers at one place (Hiera, e.g. default.yaml):

beegfs::mgmtd_host: '192.168.1.1'

so that you don't have to specify mgmtd_host for each component.

defining a mount

beegfs::mount{ 'mnt-share':
  cfg => '/etc/beegfs/beegfs-client.conf',
  mnt   => '/mnt/share',
  user  => 'beegfs',
  group => 'beegfs',
}

Interfaces and networks

For meta and storage nodes you can specify interfaces for communication. The passed argument must be an array.

class { 'beegfs::meta':
  mgmtd_host => 192.168.1.1,
  interfaces => ['eth0', 'ib0'],
}
class { 'beegfs::storage':
  mgmtd_host => 192.168.1.1,
  interfaces => ['eth0', 'ib0']
}

In some cases, interfaces can have multiple ips, and only a subset of them should be used. In this case, the list of allowed subnets can be passed as the networks parameter. It should be an array if specified.

class { 'beegfs::meta':
  mgmtd_host => 192.168.1.1,
  interfaces => ['eth0', 'ib0'],
  networks => ['192.168.1.0/24'],
}

Initialization

mgmtd

If beegfs::allow_first_run_init is true you may skip this step.

beegfs-setup-mgmtd -p /mnt/myraid1/beegfs-mgmtd

meta

If beegfs::allow_first_run_init is true you may skip this step.

Example 1

Initialize metadata storage directory of first metadata server and set "storage01" as management daemon host in config file:

beegfs-setup-meta -p /mnt/myraid1/beegfs-meta -s 1 -m storage01

Hiera support

All configuration could be specified in Hiera config files. Some settings are shared between all components, like:

beegfs::mgmtd_host: '192.168.1.1'
beegfs::mgmtd::allow_new_servers: true
beegfs::mgmtd::allow_new_targets: true
beegfs::release: 6

version could be also defined exactly, like:

beegfs::version: '2015.03.r9.debian7'

for module specific setting use correct namespace, e.g.:

beegfs::meta::interfaces:
  - 'eth0'

Recent releases of Linux Kernel might include "deterministic interfaces naming" (like enp0s31f6) that requires specifying which interface should be BeeGFS instances using:

beegfs::client::interfaces:
  - "%{facts.networking.primary}"
beegfs::meta::interfaces:
  - "%{facts.networking.primary}"
beegfs::storage::interfaces:
  - "%{facts.networking.primary}"

Requirements

  • Ruby 2.0 or newer
  • at least Puppet 4.9

License

Apache License, Version 2.0

Acceptance test

Run specific image using:

BEAKER_set=debian9-5.5 rake acceptance

debug mode:

BEAKER_debug=true rake acceptance

preserve Docker container after finising test:

$ BEAKER_destroy=no rake acceptance
$ docker exec -it 98aa06308c67 bash
$ /opt/puppetlabs/bin/puppet apply /tmp/apply_manifest.pp.OveoVG

Rubocop

Update rubocop config with given target version:

 mry --target=0.70.0 .rubocop.yml