Skip to main content
BeeGFS on NetApp with E-Series Storage

Overview and requirements

Contributors mcwhiteside

Use any NetApp E/EF-Series storage systems as BeeGFS block nodes and x86 servers as BeeGFS file nodes when deploying BeeGFS high availability clusters using Ansible.

Tip Definitions for terminology used throughout this section can be found on the terms and concepts page.

Introduction

While NetApp verified architectures provide predefined reference configurations and sizing guidance, some customers and partners may prefer to design custom architectures better suited to particular requirements or hardware preferences. One of the primary benefits of choosing BeeGFS on NetApp is the ability to deploy BeeGFS shared-disk HA clusters using Ansible, simplifying cluster management and improving reliability with NetApp authored HA components. The deployment of custom BeeGFS architectures on NetApp is still done using Ansible, maintaining an appliance-like approach on a flexible range of hardware.

This section outlines the general steps needed to deploy BeeGFS file systems on NetApp hardware and use of Ansible to configure BeeGFS file systems. For details on best practices surrounding the design of BeeGFS file systems and optimized examples please refer to the NetApp verified architectures section.

Deployment Overview

Generally deploying a BeeGFS file system involves the following steps:

  • Initial set up:

    • Install/cable hardware.

    • Set up file and block nodes.

    • Set up an Ansible control node.

  • Define the BeeGFS file system as an Ansible inventory.

  • Run Ansible against file and block nodes to deploy BeeGFS.

    • Optionally to set up clients and mount BeeGFS.

Subsequent sections will cover these steps in more detail.

Note

Ansible handles all software provisioning and configuration tasks including:

  • Creating/mapping volumes on block nodes.

  • Formatting/tuning volumes on file nodes.

  • Installing/configuring software on file nodes.

  • Establishing the HA cluster and configuring BeeGFS resources and file system services.

Requirements

Support for BeeGFS in Ansible is released on Ansible Galaxy as a collection of roles and modules that automate the end-to-end deployment and management of BeeGFS HA clusters.

BeeGFS itself is versioned following a <major>.<minor>.<patch> versioning scheme and the collection maintains roles for each supported <major>.<minor> version of BeeGFS, for example BeeGFS 7.2 or BeeGFS 7.3. As updates to the collection are released the patch version in each role will be updated to point at the latest available BeeGFS version for that release branch (example: 7.2.8). Each version of the collection is also tested and supported with specific Linux distributions and versions, currently Red Hat for file nodes, and RedHat and Ubuntu for clients. Running other distributions is not supported, and running other versions (especially other major versions) is not recommended.

Ansible Control Node

This node will contain the inventory and playbooks used to manage BeeGFS. It requires:

  • Ansible 6.x (ansible-core 2.13)

  • Python 3.6 (or later)

  • Python (pip) packages: ipaddr and netaddr

It is also recommend you setup passwordless SSH from the control node to all BeeGFS file nodes and clients.

BeeGFS File Nodes

File nodes must run RedHat 9.3 and have access to the HA repository containing required packages (pacemaker, corosync, fence-agents-all, resource-agents). For example the following command can be executed to enable the appropriate repository on RedHat 9:

subscription-manager repo-override repo=rhel-9-for-x86_64-highavailability-rpms --add=enabled:1

BeeGFS Client Nodes

A BeeGFS client Ansible role is available to install the BeeGFS client package and manage BeeGFS mount(s). This role has been tested with RedHat 8.4 and Ubuntu 22.04.

If you are not using Ansible to setup the BeeGFS client and mount BeeGFS, any BeeGFS supported Linux distribution and kernel can be used.