Upgrade GlusterFS

Upgrade GlusterFS

Note

This feature is available starting from the MCP 2019.2.4 maintenance update. Before enabling the feature, follow the steps described in Apply maintenance updates.

This section describes how to upgrade GlusterFS on your deployment from version 3.8 to 5.5 using three dedicated pipeline jobs.

If you do not have any services that run on top of the GlusterFS volumes except the Docker Swarm services such as Jenkins, Gerrit, LDAP, you can use the all-in-one Update GlusterFS Jenkins pipeline job that consequently executes three dedicated pipeline jobs described below with the default parameters.

Otherwise, if you do have any services that run on top of the GlusterFS volumes except the Docker Swarm services, Mirantis recommends updating the GlusterFS components separately using the granular pipeline jobs to better control the upgrade process.

Note

This procedure does not include the backup of data located on the GlusterFS volumes.

To upgrade GlusterFS to version 5.5:

  1. Log in to the Salt Master node.

  2. In infra/init.yml of your Reclass model, add the following parameter:

    parameters:
      _param:
        linux_system_repo_mcp_glusterfs_version_number: 5
    
  3. Apply the following state:

    salt '*' state.apply linux.system.repo
    
  4. Log in to your MCP cluster Jenkins web UI.

  5. Verify that you do not have any unapproved scripts in Jenkins:

    1. Navigate to Manage Jenkins > In-process script approval.
    2. Approve pending scripts if any.
  6. Upgrade GlusterFS on servers by running the Update glusterfs servers pipeline job with the following parameters as required:

    Update glusterfs servers pipeline job parameters
    Parameter Description and values
    SALT_MASTER_URL The Salt Master node host URL with the salt-api port, defaults to the jenkins_salt_api_url parameter. For example, http://172.18.170.27:6969.
    SALT_MASTER_CREDENTIALS The Salt Master credentials to use for connection, defaults to salt.
    TARGET_SERVERS Salt compound target to match the nodes to be upgraded. For example, G@osfamily:debian or *. Defaults to I@glusterfs:server.
    IGNORE_SERVER_STATUS Not recommended. Select not to validate the GlusterFS server availability before the upgrade. If some servers are unavailable, then data on a volume may be unavailable during the upgrade.
    IGNORE_NON_REPLICATED_VOLUMES Not recommended. Select to upgrade GlusterFS even with a non-replicated volume. You may lose data on the non-replicated volumes during the upgrade. Therefore, if you have such volumes, Mirantis recommends stopping them before the upgrade.

    The pipeline job workflow:

    1. Select only the TARGET_SERVERS hosts on which the new GlusterFS packages are available and not installed.
    2. Verify that all TARGET_SERVERS are available and connected to the cluster. This step is skipped if the IGNORE_SERVER_STATUS parameter is set to true.
    3. Verify that all GlusterFS volumes are replicated. This step is skipped if the IGNORE_NON_REPLICATED_VOLUMES parameter is set to true.
    4. Upgrade the GlusterFS packages on each target host one by one.

  7. Upgrade GlusterFS on clients by running the Update glusterfs clients pipeline job with the following parameters as required:

    Caution

    Except for the Docker Swarm services such as Jenkins, Gerrit, LDAP, the pipeline job ignores any other services that use the GlusterFS volumes. Therefore, Mirantis recommends stopping any not Docker Swarm-related services that use the GlusterFS volumes before running the pipeline job and upgrade clients one by one by targeting the global name of a client using the TARGET_SERVERS parameter.

    Note

    During the upgrade of the GlusterFS clients, all infrastructure services such as Jenkins, Gerrit, LDAP are unavailable for several minutes.

    Update glusterfs clients pipeline job parameters
    Parameter Description and values
    SALT_MASTER_URL The Salt Master node host URL with the salt-api port, defaults to the jenkins_salt_api_url parameter. For example, http://172.18.170.27:6969.
    SALT_MASTER_CREDENTIALS The Salt Master credentials to use for connection, defaults to salt.
    TARGET_SERVERS Salt compound target to match the nodes to be upgraded. For example, G@osfamily:debian or *. Defaults to I@glusterfs:client.
    IGNORE_SERVER_STATUS Not recommended. Select not to validate the GlusterFS server availability before the upgrade. If some servers are unavailable, then data on volumes may be unavailable during the upgrade. Mirantis recommends verifying that the cluster is fully functional and healthy before proceeding with the upgrade.
    IGNORE_SERVER_VERSION Not recommended. Select not to validate that all GlusterFS servers are upgraded to the same version. Mirantis highly recommends upgrading all GlusterFS servers before you proceed to upgrading the GlusterFS clients.

    The pipeline job workflow:

    1. Select only the TARGET_SERVERS hosts on which the new GlusterFS packages are available and not installed.
    2. Verify that all GlusterFS servers are available and connected to the cluster. This step is skipped if the IGNORE_SERVER_STATUS parameter is set to true.
    3. Verify that all GlusterFS servers have the same package version that will be installed on the GlusterFS clients. This step is skipped if the IGNORE_SERVER_VERSION parameter is set to true.
    4. Upgrade the GlusterFS package and re-mount the volumes on each host one by one.

  8. Upgrade the GlusterFS cluster.op-version option to verify that all GlusterFS servers and clients use the updated protocol. Run the Update glusterfs cluster.op-version pipeline job with the following parameters as required:

    Update glusterfs cluster.op-version pipeline job parameters
    Parameter Description and values
    SALT_MASTER_URL The Salt Master node host URL with the salt-api port, defaults to the jenkins_salt_api_url parameter. For example, http://172.18.170.27:6969.
    SALT_MASTER_CREDENTIALS The Salt Master credentials to use for connection, defaults to salt.
    CLUSTER_OP_VERSION Leave empty to use the cluster.max-op-version option value defined in GlusterFS. Otherwise, specify the value for the GlusterFS cluster.op-version option to use.
    IGNORE_SERVER_VERSION Not recommended. Select not to validate that all GlusterFS servers are upgraded.
    IGNORE_CLIENT_VERSION Not recommended. Select not to validate that all GlusterFS servers are upgraded.

    The pipeline job workflow:

    1. If CLUSTER_OP_VERSION is empty, obtain the cluster.max-op-version option value from GlusterFS.
    2. Obtain the current cluster.op-version and compare it the CLUSTER_OP_VERSION parameter value to identify whether a version update is required.
    3. Verify that all GlusterFS servers are upgraded to the version equal or above the one defined in CLUSTER_OP_VERSION. This step is skipped if the IGNORE_SERVER_VERSION parameter is set to true.
    4. Verify that all GlusterFS clients are upgraded to the version equal or above the one defined in CLUSTER_OP_VERSION. This step is skipped if the IGNORE_CLIENT_VERSION parameter is set to true.
    5. Update cluster.op-version to the value defined in CLUSTER_OP_VERSION.

  9. Optional. Recommended. Configure allowed and rejected IP addresses for the GlusterFS volumes.

See also

Update GlusterFS