Upgrade BeeGFS services
Use Ansible to update the BeeGFS version running on your HA cluster.
Overview
BeeGFS follows a major.minor.patch versioning scheme. BeeGFS HA Ansible roles are provided for each supported major.minor version (e.g., beegfs_ha_7_2 and beegfs_ha_7_3). Each HA role is pinned to the latest BeeGFS patch version available at the time of the Ansible collection's release.
Ansible should be used for all BeeGFS upgrades, including moving between major, minor, and patch versions of BeeGFS. To update BeeGFS you will first need to update the BeeGFS Ansible collection, which will also pull in the latest fixes and enhancements to the deployment/management automation and underlying HA cluster. Even after updating to the latest version of the collection, BeeGFS will not be upgraded until ansible-playbook is ran with the -e "beegfs_ha_force_upgrade=true" set. For additional details about each upgrade refer to the BeeGFS Upgrade documentation for your current version.
|
|
If you are upgrading to BeeGFS v8, see the Upgrade to BeeGFS v8 procedure instead. |
Tested upgrade paths
The following upgrade paths have been tested and verified:
| Original Version | Upgrade Version | Multirail | Details |
|---|---|---|---|
7.2.6 |
7.3.2 |
Yes |
Upgrading beegfs collection from v3.0.1 to v3.1.0, multirail added |
7.2.6 |
7.2.8 |
No |
Upgrading beegfs collection from v3.0.1 to v3.1.0 |
7.2.8 |
7.3.1 |
Yes |
Upgrade using beegfs collection v3.1.0, multirail added |
7.3.1 |
7.3.2 |
Yes |
Upgrade using beegfs collection v3.1.0 |
7.3.2 |
7.4.1 |
Yes |
Upgrade using beegfs collection v3.2.0 |
7.4.1 |
7.4.2 |
Yes |
Upgrade using beegfs collection v3.2.0 |
7.4.2 |
7.4.6 |
Yes |
Upgrade using beegfs collection v3.2.0 |
7.4.6 |
8.0 |
Yes |
Upgrade using the instructions in the Upgrade to BeeGFS v8 procedure. |
7.4.6 |
8.1 |
Yes |
Upgrade using the instructions in the Upgrade to BeeGFS v8 procedure. |
7.4.6 |
8.2 |
Yes |
Upgrade using the instructions in the Upgrade to BeeGFS v8 procedure. |
BeeGFS upgrade steps
The following sections provide steps to update the BeeGFS Ansible collection and BeeGFS itself. Pay special attention to any extra step(s) for updating BeeGFS major or minor versions.
Step 1: Upgrade BeeGFS collection
For collection upgrades with access to Ansible Galaxy, run the following command:
ansible-galaxy collection install netapp_eseries.beegfs --upgrade
For offline collection upgrades, download the collection from Ansible Galaxy by clicking on the desired Install Version` and then Download tarball. Transfer the tarball to your Ansible control node and run the following command.
ansible-galaxy collection install netapp_eseries-beegfs-<VERSION>.tar.gz --upgrade
See Installing Collections for more information.
Step 2: Update Ansible inventory
Make any required or desired updates to your cluster's Ansible inventory files. See the Version upgrade notes section below for details about your specific upgrade requirements. See the Ansible Inventory Overview section for general information on configuring your BeeGFS HA inventory.
Step 3: Update Ansible playbook (when updating major or minor versions only)
If you are moving between major or minor versions, in the playbook.yml file used to deploy and maintain the cluster, update the name of the beegfs_ha_<VERSION> role to reflect the desired version. For example, if you wanted to deploy BeeGFS 7.4 this would be beegfs_ha_7_4:
- hosts: all
gather_facts: false
any_errors_fatal: true
collections:
- netapp_eseries.beegfs
tasks:
- name: Ensure BeeGFS HA cluster is setup.
ansible.builtin.import_role: # import_role is required for tag availability.
name: beegfs_ha_7_4
For more details on the contents of this playbook file see the Deploy the BeeGFS HA cluster section.
Step 4: Run the BeeGFS upgrade
To apply the BeeGFS update:
ansible-playbook -i inventory.yml beegfs_ha_playbook.yml -e "beegfs_ha_force_upgrade=true" --tags beegfs_ha
Behind the scenes the BeeGFS HA role will handle:
-
Ensure the cluster is in an optimal state with each BeeGFS service located on its preferred node.
-
Put the cluster in maintenance mode.
-
Update the HA cluster components (if needed).
-
Upgrade each file node one at a time as follows:
-
Place it into standby and failover its services to the secondary node.
-
Upgrade BeeGFS packages.
-
Fallback back services.
-
-
Move the cluster out of maintenance mode.
Version upgrade notes
Upgrading from BeeGFS version 7.2.6 or 7.3.0
Changes to connection based authentication
BeeGFS version 7.3.2 and later require connection based authentication to be configured. Services will not start without either:
-
Specifying a
connAuthFile, or -
Setting
connDisableAuthentication=truein the service's configuration file.
It is highly recommended to enable connection based authentication for security. See BeeGFS Connection Based Authentication for more information.
The beegfs_ha* roles automatically generate and distribute the authentication file to:
-
All file nodes in the cluster
-
The Ansible control node at
<playbook_directory>/files/beegfs/<beegfs_mgmt_ip_address>_connAuthFile
The beegfs_client role will automatically detect and apply this file to clients when it's present.
|
|
If you did not use the beegfs_client role to configure clients, you must manually distribute the authentication file to each client and configure the connAuthFile setting in the beegfs-client.conf file. When upgrading from a BeeGFS version without connection based authentication, clients will lose access unless you disable connection based authentication during the upgrade by setting beegfs_ha_conn_auth_enabled: false in group_vars/ha_cluster.yml (not recommended).
|
For additional details and alternate configuration options, see the connection authentication configuration step in the Specify Common File Node Configuration section.