Deploy BeeGFS clients
Optionally, Ansible can be used to configure BeeGFS clients and mount the file system.
Overview
Accessing BeeGFS file systems requires installing and configuring the BeeGFS client on each node that needs to mount the file system. This section documents how to perform these tasks using the available Ansible role.
Steps
Create the Client Inventory File
-
If needed, set up passwordless SSH from the Ansible control node to each of the hosts you want to configure as BeeGFS clients:
-
Under
host_vars/
, create a file for each BeeGFS client named<HOSTNAME>.yml
with the following content, filling in the placeholder text with the correct information for your environment: -
Optionally include one of the following if you want to use the NetApp E-Series Host Collection's roles to configure InfiniBand or Ethernet interfaces for clients to connect to BeeGFS file nodes:
-
If the network type is InfiniBand (using IPoIB):
-
If the network type is RDMA over Converged Ethernet (RoCE):
-
If the network type is Ethernet (TCP only, no RDMA):
-
-
Create a new file
client_inventory.yml
and specify the user Ansible should use to connect to each client, and the password Ansible should use for privilege escalation (this requiresansible_ssh_user
be root, or have sudo privileges):Do not store passwords in plain text. Instead, use the Ansible Vault (see the Ansible documentation for Encrypting content with Ansible Vault) or use the --ask-become-pass
option when running the playbook. -
In the
client_inventory.yml
file, list all hosts that should be configured as BeeGFS clients under thebeegfs_clients
group, and then refer to the inline comments and uncomment any additional configuration required to build the BeeGFS client kernel module on your system:When using the NVIDIA OFED drivers, make sure that beegfs_client_ofed_include_path points to the correct "header include path" for your Linux installation. For more information, see the BeeGFS documentation for RDMA support. -
In the
client_inventory.yml
file, list the BeeGFS file systems you want mounted under any previously definedvars
: -
As of BeeGFS 7.2.7 and 7.3.1 connection authentication must be configured or explicitly disabled. Depending how you choose to configure connection based authentication when specifying common file node configuration, you may need to adjust your client configuration:
-
By default the HA cluster deployment will automatically configure connection authentication, and generate a
connauthfile
that will be placed/maintained on the Ansible control node at<INVENTORY>/files/beegfs/<sysMgmtdHost>_connAuthFile
. By default the BeeGFS client role is setup to read/distribute this file to the clients defined inclient_inventory.yml
, and no additional action is needed.-
For advanced options refer to the full list of defaults included with the BeeGFS client role.
-
-
If you choose to specify a custom secret with
beegfs_ha_conn_auth_secret
specify it in theclient_inventory.yml
file as well: -
If you choose to disable connection based authentication entirely with
beegfs_ha_conn_auth_enabled
, specify that in theclient_inventory.yml
file as well:
-
For a full list of supported parameters and additional details refer to the full BeeGFS client documentation. For a complete example of a client inventory click here.
Create the BeeGFS Client Playbook File
-
Create a new file
client_playbook.yml
-
Optional: If you want to use the NetApp E-Series Host Collection's roles to configure interfaces for clients to connect to BeeGFS file systems, import the role corresponding with the interface type you are configuring:
-
If you are using are using InfiniBand (IPoIB):
-
If you are using are using RDMA over Converged Ethernet (RoCE):
-
If you are using are using Ethernet (TCP only, no RDMA):
-
-
Lastly import the BeeGFS client role to install the client software and setup the file system mounts:
For a complete example of a client playbook click here.
Run the BeeGFS Client Playbook
To install/build the client and mount BeeGFS, run the following command: