Upgrade SolidFire eSDS clusters

You can use Ansible to perform non-disruptive rolling upgrades on your SolidFire eSDS cluster. Using the nar_solidfire_sds_upgrade role provided by NetApp, Ansible performs rolling upgrades one node at a time while maintaining data availability to all the volumes.

Before you begin

Ensure that the following conditions are met before you upgrade:

About this task

Here is an overview of what happens in the background during the upgrade process after you run the playbook:
Note: If an error happens during the upgrade or your cluster experiences a fault, the upgrade does not stop. It progresses to the extent that it can and prints out a list of all the nodes that were successfully and unsuccessfully upgraded. After you fix any errors, you can rerun the playbook or reject the file to complete the upgrade process.
Attention: If the upgrade fails because of a fault, you must resolve it and resume the upgrade. The cluster will remain in upgrade status until the upgrade is complete. If the fault is not cleared by Element while the cluster is in upgrade status, you must contact NetApp Support. Depending on the nature of the fault and if it is safe to do so, Support might instruct you to add the yes_i_want_to_ignore_cluster_faults variable and set to true in your upgrade playbook and re-run playbook. Do not attempt this without consulting with Support.

Procedure

  1. Run the ansible-galaxy command to install all the roles relevant to SolidFire eSDS provided by NetApp.
    The upgrade role is nar_solidfire_sds_upgrade and will be installed when you run the following command:
    $  ansible-galaxy install git+https://github.com/netapp/ansible.git
    - extracting ansible to ~/.ansible/roles/ansible
    - ansible was installed successfully
    
    You can also manually install the role by copying it from the NetApp GitHub repository and placing the role in the ~/.ansible/roles directory. NetApp provides a README file, which includes information about how to run a role.
    Note: Ensure that you always download the latest versions of the roles.
  2. Move the roles that you downloaded up one directory from where they were installed.
    $ mv ~/.ansible/roles/ansible/nar_solidfire_sds_* ~/.ansible/roles/
  3. Run the ansible-galaxy role list command to ensure that Ansible is configured to utilize the new roles.
    $ ansible-galaxy role list
    # ~/.ansible/roles
    - nar_solidfire_sds_install, (unknown version)
    - nar_solidfire_sds_upgrade, (unknown version)
    - ansible, (unknown version)
    - nar_solidfire_sds_compliance, (unknown version)
    
  4. Create the playbook to use for upgrades. If you already have a playbook and want to use that, ensure that you specify the nar_solidfire_sds_upgrade role in this playbook.
  5. Run the playbook:
    $ ansible-playbook -i inventory.yaml playbook_upgrade_sample.yaml
    The playbook name used here is an example. You must replace it with the name of your playbook. Running the playbook validates the information that you entered in the inventory file and installs the RPM on all the nodes listed in the inventory. You can check the Ansible output to verify that each node is upgraded.
  6. After the upgrade is complete, verify each node to ensure that the new version is running by using the Element UI or the cluster API.