Manual Installation¶
To perform a manual installation, you have to download the BeeGFS packages and set up a few basic configuration options.
It is recommended that you start by reading the first three chapters below in order to get a basic understanding of the general installation procedure. See Quick Start Guide as a reference while performing the actual installation on your system.
Download and Installation of Packages¶
Package Repositories¶
To start an installation of BeeGFS:
Visit the BeeGFS download page and follow the step-by-step directions to add the BeeGFS package repositories to your Linux distribution’s package manager.
You will need to make the repository available on all servers, either by adding it to a common boot image, or by copying it to all servers that will run BeeGFS services or mount BeeGFS.
Using your distribution’s package manager (e.g.,
apt
ordnf
) install the appropriate BeeGFS packages to each of the servers in your environment, depending which BeeGFS service(s) they will run or if they will need to mount the file system.See the package descriptions below for an overview of the available packages.
(Optional) If you are using the BeeGFS Hive Edition, add your license to
/etc/beegfs/license.pem
on the machine that will run your management service.
Note
BeeGFS can be used in heterogeneous environments with different architectures and/or distributions. For example your BeeGFS server services could run on x86 machines using Rocky Linux and your clients could be arm machines running Ubuntu.
Package Descriptions¶
The following table shows the roles that need to be defined to run BeeGFS and the corresponding package for each role. BeeGFS has been designed to allow running any combination of services (e.g., metadata and storage server) on the same node. Additional information about the roles of BeeGFS nodes can be found in Architecture.
Management Server (one node)
|
beegfs-mgmtd |
Enterprise Feature Support (optional for the management)
|
libbeegfs-license |
Metadata Server (at least one node)
|
beegfs-meta |
Storage Server (at least one node)
|
beegfs-storage |
|
beegfs-client, |
RDMA Support
|
libbeegfs-ib |
Mon - InfluxDB based Monitoring Server (optional)
|
beegfs-mon |
BeeGFS tools for administrators
|
beegfs-tools |
BeeGFS utilities for administrators
|
beegfs-utils |
Note
The management server daemon, and the optional monitoring daemon has only moderate RAM and CPU requirements. As these services are not critical for file system performance, you do not need to run them on a dedicated machine. They are typically running on the cluster master node.
- Each BeeGFS service (including the client) comes with:
a config file:
/etc/beegfs/beegfs-X
systemd units
Installation does not start any of the services directly because there are a few configuration options that need to be set before the first startup. These will be described in the following sections.
Init scripts¶
Because init scripts have been replaced by systemd on all distributions officially supported by BeeGFS, starting in BeeGFS v8 only the client includes an init script that is used in building the client module and mounting the file system (see below).
Building the Client Kernel Module¶
Most parts of BeeGFS come pre-built and ready to use when you install the packages. However, the client kernel module of BeeGFS still needs to be compiled for your specific Linux kernel version.
In addition to that, it might be necessary to install the library package for RDMA support
(libbegfs-ib
), which contains the RDMA abstraction layer of BeeGFS for userspace applications
and services.
BeeGFS Client Kernel Module¶
BeeGFS client kernel modules are automatically built on startup of the beegfs-client
service
(/etc/init.d/beegfs-client
) for the currently running Linux kernel, so no manual build step is
required. The init script will also detect client package updates and kernel updates and
automatically runs a client module rebuild on next startup.
Unlike in earlier versions, RDMA support is available by default.
If you want to use a thirdparty driver though, you have to specify it in the file /etc/beegfs/beegfs-client-autobuild.conf
like this: buildArgs=-j8 OFED_INCLUDE_PATH=/usr/src/openib/include
.
To build the client without RDMA support, add BEEGFS_NO_RDMA=1
to buildArgs
.
To force a rebuild of the client kernel modules, you need to be root on a client node and then call:
# /etc/init.d/beegfs-client rebuild
After a successful module build, the beegfs-client needs to be restarted:
# /etc/init.d/beegfs-client restart
If the client module is unable to load, dmesg
/ journalctl -k
or journalctl -u
beegfs-client
might provide useful information.
BeeGFS RDMA Library for Server Services¶
Note
This section is only relevant if you are using InfiniBand or RoCE hardware. If not, just skip to the next section.
If you have your hardware and the correspondent drivers installed, then it is only necessary to
install the libbeegfs-ib
package to use RDMA with the server services (beegfs-meta
and
beegfs-storage
).
Basic Configuration¶
There are three configuration settings that are mandatory to be set for a specific environment. The following table shows the three settings and the configuration files, in which they will be applied:
Setting |
Configuration File (in |
---|---|
Storage Paths |
|
Management Host |
|
Client Mount Directory |
|
These are the three options that need to be set before you run the services.
Storage Paths
For the management node optionally customize the path to the database using
db-file
then run/opt/beegfs/sbin/beegfs-mgmtd --init
to initialize the database and follow the steps to configure TLS.For metadata and storage nodes, use the
storeMetaDirectory
andstoreStorageDirectory
options to configure where BeeGFS should store internal data. BeeGFS stores all data in a subdirectory of an existing partition that has been formatted with any of the standard local Linux file systems (typically XFS for storage servers and ext4 for metadata servers). By default these services will automatically initialize their directories when they first start, but it is recommend you manually initialize them using/opt/beegfs/sbin/beegfs-setup-[meta|storage]
. This allows setting specific numeric IDs if desired and applies recommended settings.Note that different services on the same machine cannot share the same storage directory, so different directories have to be used, e.g.
/data/beegfs-meta
for metadata servers and/data/beegfs-storage
for storage servers.Management Host
Set the value of the
sysMgmtdHost
option in the configuration files of the metadata servers, storage servers, clients, and the optional monitoring service, to the IP address or hostname of the management daemon. This will enable automatic server discovery for the clients.Client Mount Directory
The client mount file consists of two space-separated values. The first value is the directory where you want to mount the file system, and the second value is the client configuration file for this mount point. You will typically have a line like this in the
beegfs-mounts.conf
file:/mnt/beegfs /etc/beegfs/beegfs-client.conf
It is also possible to specify multiple mount/config entries in this file (one mount/config pair per line) if you need to mount different BeeGFS instances on the same client. Optionally, you can also inform mount options for each mount/config entry. In the example below, the first line mounts a writable BeeGFS FS on
/mnt/scratch
and a read-only BeeGFS FS on/mnt/software
./mnt/scratch /etc/beegfs/beegfs-client-scratch.conf beegfs rw /mnt/software /etc/beegfs/beegfs-client-software.conf beegfs ro
When you have made the changes to the configuration files, it is time to start the BeeGFS services.
Connection authentication¶
We strongly recommend to configure connection authentication with a connAuthFile
at this point.
Please see Authentication for more information. If connection authentication is
not needed, connDisableAuthentication
has to be set to true
on all nodes.
Service Startup¶
The services will register themselves at the management server, so clients will automatically know about all available servers. The instructions below are for single instances. If you want to run multiple instances of one service on the same machine, please refer to Multi Mode.
Note
BeeGFS clients have a mount sanity check and cancel a mount operation if servers are
unreachable. If you want to mount even with unreachable servers, set sysMountSanityCheckMS=0
in
the file beegfs-client.conf
.
Use systemctl start beegfs-<service>
command to start the services.
Advanced Configuration and Tuning¶
Runtime configuration options can be queried and changed with the BeeGFS Control Tool beegfs
provided in the beegfs-tools
package. This tool is typically installed on a BeeGFS client as
some modes require a BeeGFS mount point.
The beegfs
tool does not rely on any external configuration file. Instead required configuration
is specified as using flags, or optionally exported as environment variables. For example the
management address of the file system you wish to interact with can be specified like:
beegfs node list --mgmtd-addr=hostname:8010
Alternatively you could export an environment variable to avoid having to specify the flag every
time you run the command. This could be exported once for the current session, or made persistent
using your .bashrc
file or equivalent for your shell:
export BEEGFS_MGMTD_ADDR=hostname:8010
beegfs node list
See beegfs help
for a list of all global flags. All global flags can be set using environment
variables by converting them to uppercase, replacing hyphens (-) with underscores (_) and adding the
prefix BEEGFS_
. For example auth-file
is specified as BEEGFS_AUTH_FILE=/some/path
.
On a client with an active BeeGFS mount, several configuration options can also be queried through
procfs entries (see /proc/fs/beegfs
).
Static configuration options can be set by editing the corresponding configuration files
(/etc/beegfs/beegfs-X.conf
). If you haven’t done so yet, you might want to take a look at these
files to find out which options you have in general. There is a description for each of the settings
in the corresponding configuration file.
See also
Prevent accidental registration of new nodes/targets¶
BeeGFS contains some safety options that you might want to set when your initial file system setup is complete:
registration-disable=false
inbeegfs-mgmtd.toml
forbids registration of new servers (e.g. to make sure a new server is not registered accidentally in a production environment).This does not affect client registration.
storeAllowFirstRunInit=false
inbeegfs-meta.conf
andbeegfs-storage.conf
forbids service startup if the storage directory is empty, e.g. because the corresponding RAID volume is not mounted properly.There is no corresponding setting on the management because it does not automatically initialize the database if it does not already exist.
sysMountSanityCheckMS
inbeegfs-client.conf
can be used to let the client refuse mounting the file system if not all servers are reachable.You will typically want to disable this option for clients that are running together with server services (e.g., management, metadata, or storage) on the same machine.
Backups¶
We strongly recommend to setup a backup solution like rsync
, in order to
backup the management target (often /beegfs/mgmtd/
) to a safe external location. Please keep
in mind that RAID or buddy mirroring is no replacement for an external backup.
See also