W E K A
4.1
4.1
  • WEKA v4.1 documentation
  • WEKA System Overview
    • About the WEKA system
    • SSD capacity management
    • Filesystems, object stores, and filesystem groups
    • WEKA networking
    • Data lifecycle management
    • WEKA client and mount modes
    • WEKA containers architecture overview
    • Glossary
  • Getting Started with WEKA
    • Quick installation guide
    • Manage the system using the WEKA CLI
    • Manage the system using the WEKA GUI
    • Run first IOs with WEKA filesystem
    • Getting started with WEKA REST API
  • Planning and Installation
    • Prerequisites for installation
    • WEKA installation on bare metal
      • Plan the WEKA system Installation
      • Prepare the system for WEKA software installation
        • Enable the SR-IOV
      • Obtain the WEKA software installation package
      • WEKA cluster installation
        • WEKA legacy system installation process
      • Add clients
    • WEKA installation on AWS
      • Self-service portal
      • CloudFormation template generator
      • Deployment types
      • AWS outposts deployment
      • Supported EC2 instance types
      • Add clients
      • Auto scaling group
      • Troubleshooting
    • WEKA installation on Azure
    • WEKA installation on GCP
      • WEKA project description
      • Deployment on GCP using Terraform
      • GCP Terraform package description
      • Required services and supported regions
      • Supported machine types and storage
      • Auto-scale instances in GCP
      • Add clients
      • Troubleshooting
  • Performance
    • WEKA performance tests
      • Test environment details
  • WEKA Filesystems & Object Stores
    • Manage object stores
      • Manage object stores using the GUI
      • Manage object stores using the CLI
    • Manage filesystem groups
      • Manage filesystem groups using the GUI
      • Manage filesystem groups using the CLI
    • Manage filesystems
      • Manage filesystems using the GUI
      • Manage filesystems using the CLI
    • Attach or detach object store buckets
      • Attach or detach object store bucket using the GUI
      • Attach or detach object store buckets using the CLI
    • Advanced data lifecycle management
      • Advanced time-based policies for data storage location
      • Data management in tiered filesystems
      • Transition between tiered and SSD-only filesystems
      • Manual fetch and release of data
    • Mount filesystems
    • Snapshots
      • Manage snapshots using the GUI
      • Manage snapshots using the CLI
    • Snap-To-Object
      • Manage Snap-To-Object using the GUI
      • Manage Snap-To-Object using the CLI
    • Quota management
      • Manage quotas using the GUI
      • Manage quotas using the CLI
  • Additional Protocols
    • Manage the NFS protocol
      • Supported NFS client mount options
      • Manage NFS networking using the GUI
      • Manage NFS networking using the CLI
    • Manage the SMB protocol
      • Manage SMB using the GUI
      • Manage SMB using the CLI
    • Manage the S3 protocol
      • S3 cluster management
        • Manage the S3 service using the GUI
        • Manage the S3 service using the CLI
      • S3 buckets management
        • Manage S3 buckets using the GUI
        • Manage S3 buckets using the CLI
      • S3 users and authentication
        • Manage S3 users and authentication using the CLI
        • Manage S3 service accounts using the CLI
      • S3 rules information lifecycle management (ILM)
        • Manage S3 lifecycle rules using the GUI
        • Manage S3 lifecycle rules using the CLI
      • Audit S3 APIs
        • Configure audit webhook using the GUI
        • Configure audit webhook using the CLI
        • Example: How to use Splunk to audit S3
      • S3 supported APIs and limitations
      • S3 examples using boto3
  • Operation Guide
    • Alerts
      • Manage alerts using the GUI
      • Manage alerts using the CLI
      • List of alerts and corrective actions
    • Events
      • Manage events using the GUI
      • Manage events using the CLI
      • List of events
    • Statistics
      • Manage statistics using the GUI
      • Manage statistics using the CLI
      • List of statistics
    • System congestion
    • Security management
      • Obtain authentication tokens
      • KMS management
        • Manage KMS using the GUI
        • Manage KMS using the CLI
      • TLS certificate management
        • Manage the TLS certificate using the GUI
        • Manage the TLS certificate using the CLI
      • CA certificate management
        • Manage the CA certificate using the GUI
        • Manage the CA certificate using the CLI
      • Account lockout threshold policy management
        • Manage the account lockout threshold policy using GUI
        • Manage the account lockout threshold policy using CLI
      • Manage the login banner
        • Manage the login banner using the GUI
        • Manage the login banner using the CLI
    • User management
      • Manage users using the GUI
      • Manage users using the CLI
    • Organizations management
      • Manage organizations using the GUI
      • Manage organizations using the CLI
      • Mount authentication for organization filesystems
    • Expand and shrink cluster resources
      • Add a backend server in a multiple containers architecture
      • Add a backend server in a legacy architecture
      • Expand specific resources of a container
      • Shrink a cluster
    • Background tasks
    • Upgrade WEKA versions
  • Billing & Licensing
    • License overview
    • Classic license
    • Pay-As-You-Go license
  • Support
    • Prerequisites and compatibility
    • Get support for your WEKA system
    • Diagnostics management
      • Traces management
        • Manage traces using the GUI
        • Manage traces using the CLI
      • Protocols debug level management
        • Manage protocols debug level using the GUI
        • Manage protocols debug level using the CLI
      • Diagnostics data management
    • Weka Home - The WEKA support cloud
      • Local Weka Home overview
      • Local Weka Home deployment
      • Set the Local Weka Home to send alerts or events
      • Download the Usage Report or Analytics
  • Appendix
    • WEKA CSI Plugin
    • Set up the WEKAmon external monitoring
    • Set up the SnapTool external snapshots manager
  • REST API Reference Guide
Powered by GitBook
On this page
  • Overview
  • What is a non-disruptive upgrade (NDU)?
  • Upgrade workflow
  • 1. Verify prerequisites for the upgrade
  • 2. Prepare the cluster for upgrade
  • 3. Prepare the backend servers for upgrade (optional)
  • 4. Upgrade the backend servers
  • 5. Upgrade the clients
  • 6. Check the status after the upgrade
  1. Operation Guide

Upgrade WEKA versions

This page describes how to upgrade to the latest Weka software version.

PreviousBackground tasksNextLicense overview

Last updated 4 months ago

Overview

The WEKA upgrade process supports upgrading to higher minor and major versions of a WEKA system deployed in a multi-container backend architecture (MCB). MCB is supported from version 4.0.2. MCB enables non-disruptive upgrades (NDU).

Always upgrade to the latest minor version in the new major version when upgrading to a major version. This may require first upgrading to a specific minor version in the current software version, as follows:

  • To upgrade to WEKA software version 4.1.x, the minimum source version must be 4.0.2 in MCB architecture. If the source system is not in MCB architecture, it is required to convert the cluster architecture to MCB. Contact the for assistance.

  • To upgrade to WEKA software version 4.0.x, go through version 3.14.1 or above

  • To upgrade to WEKA software version 3.14.x, go through version 3.13.1 or above

  • To upgrade to WEKA software version 3.13.x, go through version 3.12.1 or above

Warning: Customers running WEKA clusters on AWS with auto-scaling groups must contact the before converting the cluster to MCB.

Note: Backend servers with Intel E810 NIC are not supported on MCB architecture, so the cluster remains in the legacy architecture (single container architecture). Contact the for assistance.

What is a non-disruptive upgrade (NDU)?

In MCB architecture, each container serves a single type of process, drive, frontend, or compute function. Therefore it is possible to upgrade one container at a time (rolling upgrade) while the remaining containers continue serving the clients with one exception that the compute containers are upgraded at once in a very short time with a minimal impact on serving IOs.

Note: Some background tasks, such as snapshot uploads or downloads, must be postponed or aborted. See the in the upgrade workflow for details.

Internal upgrade process

Once you run the upgrade command in ndu mode, the following occurs:

  1. Downloading the version and preparing all backend servers.

  2. Rolling upgrade of the drive containers.

  3. Upgrading all compute containers at once.

  4. Rolling upgrade of the frontend and protocol containers and the protocol gateways.

Related topics

WEKA containers architecture overview

Upgrade workflow

Note: Upgrading a Weka cluster with a server used for more than one of the following protocols, NFS, SMB, or S3, is not allowed. In such a case, the upgrade does not start. Contact the Customer Success Team to ensure only one additional protocol is installed on each server.

1. Verify prerequisites for the upgrade

Before upgrading the cluster, ensure the following prerequisites. Otherwise, the NDU is not possible:

  1. All the backend servers are online.

  2. Ensure you are logged in as a Cluster Admin (using a weka user login).

  3. Any rebuild has been completed.

  4. There are no outstanding alerts that still need to be addressed.

  5. There is at least 4 GB of free space in the /opt/weka directory.

  6. The NDU process requires the following tasks to be stopped. If these tasks are planned, postpone them. If the tasks are running, perform the required action.

Task
Required action
Backgrounk task name

Upload a snapshot

Wait for the snapshot upload to complete, or abort it.

STOW_UPLOAD

Create a filesystem from an uploaded snapshot

Wait for the download to complete or abort it by deleting the downloaded filesystem or snapshot. If the task is in the snapshot prefetch metadata stage, wait for the prefetch to complete or abort it. It is not possible to resume the snapshot prefetch metadata after the upgrade.

STOW_DOWNLOAD_SNAPSHOT STOW_DOWNLOAD_FILESYSTEM FILESYSTEM_SQUASH SNAPSHOT_PREFETCH

Sync a filesystem from a snapshot

Wait for the download to complete or abort it by deleting the downloaded filesystem or snapshot.

STOW_DOWNLOAD_SNAPSHOT

Detach object store bucket from a filesystem

Detaching an object store is blocked during the upgrade. If it is running, ignore it.

OBS_DETACH

Note: If you plan a multi-hop version upgrade, once an upgrade is done, a background process of converting metadata to a new format may occur (in some versions). This upgrade takes several minutes to complete before another upgrade can start. You can monitor the progress using the weka status CLI command and check if there is a data upgrade task in a RUNNING state.

2. Prepare the cluster for upgrade

Download the new software release on one of the backends using one of the following methods:

  • From the backend server, run weka version get <new-version> (<new-version> is for example, 4.1.0). Then, run weka version prepare <new-version>.

3. Prepare the backend servers for upgrade (optional)

When working with many backend servers, preparing them separately from the upgrade process in advance is possible to minimize the total upgrade time. For a small number of backend servers, this step is not required.

The preparation phase prepares all the connected backend servers for the upgrade, which includes downloading the new version and getting it ready to be applied.

Once the new version is downloaded to one of the backend servers, run the following CLI command: weka local run --container <container-name> --in <new-version> upgrade --mode ndu --prepare-only

Where:

<new-version>: Specify the new version. For example,4.1.0.

<container-name>: Specify only one container name. For example: drives0.

<upgrade mode>: For a cluster in MCB architecture, specify ndu. For a cluster in legacy architecture, the default is oneshot, so it is not required to specify it.

4. Upgrade the backend servers

Once a new software version is installed on one of the backend servers, upgrade the cluster to the new version by running the following command on the backend server.

If you already ran the preparation step, the upgrade command skips the download and preparation operations.

weka local run --container <container-name> --in <new-version> upgrade --mode <upgrade mode>

Example:

weka local run --container drives0 --in 4.1.1 upgrade --mode ndu

Adhere to the following:

  • Before switching the cluster to the new software release, the upgrade command distributes the new release to all cluster servers. It makes the necessary preparations, such as compiling the new wekafs driver.

  • If a failure occurs during the preparation, such as a disconnection of a server or failure to build a driver, the upgrade process stops and a summary message indicates the problematic server.

5. Upgrade the clients

Once all backends are upgraded, the clients remain with the existing version and continue working with the upgraded backends.

Once a stateless client is rebooted, or a complete umount and mount is performed, the stateless client is automatically upgraded to the backend version.

For stateful clients, a manual upgrade is required, usually during a maintenance window.

For a manual upgrade of both stateless or stateful clients, run the following command line on the client:

weka local upgrade

An alert is raised if there is a mismatch between the clients' and the cluster versions.

Add the --prepare-driver flag to the command for client source versions 4.0.1 and above.

Note: Clients with two or more major versions behind the version of the backends are not supported. Therefore, clients must be automatically or manually upgraded before the next cluster software major version upgrade.

6. Check the status after the upgrade

Once the upgrade is complete, verify that the cluster is in the new version by running the weka status command.

Example: The following is returned when the system is upgraded to version 4.1.0:

# weka status Weka v4.1.0 ...

The backend servers meet the of the target version.

If you perform a non-disruptive upgrade (NDU), ensure the source version is configured in a multiple containers architecture. If not, contact the to convert the source version from a single container architecture to a multiple containers architecture. This prerequisite only applies to an upgrade from source version 4.0.2 and above to 4.1.x.

For details on managing the background tasks, see the topic.

If you don't have a distribution server set, you can add it explicitly to the command. For example, to get the 4.1.0 version from , use a token as follows: weka version get 4.1.0 --from https://[GET.WEKA.IO-TOKEN]@get.weka.io Then, run weka version prepare <new-version>.

From the backend server, run the curl command described in the install tab on the new release page.

Download the new version tar file to the backend server and run the install.sh command. This method is helpful in environments without connectivity to , such as dark sites or private VPCs.

prerequisites and compatibility
Background tasks
get.weka.io
get.weka.io
get.weka.io
Verify prerequisites for the upgrade
Prepare the cluster for upgrade
Prepare the backend servers for upgrade (optional)
Upgrade the backend servers
Upgrade the clients
Check the status after the upgrade
prerequisites
Customer Success Team
Customer Success Team
Customer Success Team
Customer Success Team
NDU process at a glance