SOT
    • Introduction
    • Release notes
      • 2025.03.00
        • RC2
        • RC1
      • 2025.02.01
        • SP10
        • SP9
        • SP8
        • SP7
        • SP6
        • SP5
        • SP3
        • SP2
        • SP1
      • 2025.02.00
        • SP25
        • SP24
        • SP23
        • SP22
        • SP21
        • SP20
        • SP19
        • SP18
        • SP17
        • SP16
        • SP15
        • SP14
        • SP13
        • SP12
        • SP11
        • SP10
        • SP9
        • SP8
        • SP7
        • SP6
        • SP5
        • SP4
        • SP3
        • SP2
        • SP1
    • Getting started
      • Getting access
      • Login
      • Main screen
      • Welcome dashboard
      • Detecting process anomalies
      • Analyzing data and detecting event sequences
      • Analyzing KPIs
    • How-tos
      • Monitors on production lines
        • Configuring the automatic login in the Smart Operations Toolkit
        • Configuring the automatic login to the identity provider with the Windows user
        • Setting cookies in the browser
        • Configuring the automatic logout in the Smart Operations Toolkit
        • Configuring the command line parameters in the browser
        • Known limitations and troubleshooting
      • Try out the APIs
    • Integration guide
      • Underlying concepts
        • Underlying concepts
        • Onboarding
        • Security
        • Communication
      • Integration journey
      • Example integrations
        • Node-RED
        • Power BI
      • Overview of APIs
    • Operations manual
      • Release
      • System architecture and interfaces
      • System requirements
        • Cluster requirements
        • Database requirements
        • Support for service meshes
      • Migration from previous SOT versions
      • Setup and configuration
        • Deployment process
        • Deployment with Helm
        • Advanced configuration
        • Integrations with external secret management solutions
        • Context paths
        • Service accounts and authorizations
        • Validation tests
        • Setup click once
        • Database user setup and configuration
      • Start and shutdown
      • Regular operations
        • User management & authentication
        • How to add additional tenants
        • How to access the cluster and pods
        • Automatic module role assignments in customer tenants
        • User credentials rotation - database and messaging secrets
      • Failure handling
        • Failure handling guidelines
        • Ansible operator troubleshooting
        • How to reach BCI for unresolved issues
      • Backup and restore
      • Logging and monitoring
        • The concept and conventions
        • ELK stack
        • ELK configurations aspects for beats
        • Proxy setup for ELK
        • Health endpoints configurations
      • Known limitations
      • Supporting functions
      • Security recommendations
        • Kubernetes
        • Security Best Practices for Databases
        • Certificates
        • Threat detection tools
    • Infrastructure manual
      • Release
      • System architecture and interfaces
        • RabbitMQ version support
      • System requirements
      • Migration from previous SOT infrastructure versions
      • Setup and configuration
        • Deployment process of the SOT infrastructure Helm chart
        • Deployment with Helm
      • Start and shutdown
      • Regular operations
        • RabbitMQ
          • User management & authentication
          • Disk size change
          • Upgrade performance with high performant disk type
          • Pod management policy
      • Failure handling
        • Connection failures
        • Data safety on the RabbitMQ side
        • Fix RabbitMQ cluster partitions
        • Delete unsynchronized RabbitMQ queues
        • How to reach BCI for unresolved issues
      • Backup and restore
      • Logging and monitoring
      • Known limitations
    • Training
    • Glossary
    • Further information and contact
Smart Operations Toolkit
  • Smart Operations Toolkit
    • Deviation Processor
    • Multitenant Access Control
    • Notification Service
    • Ticket Management
    • Web Portal
  • Shopfloor Management
    • Andon Live
    • KPI Reporting
    • Operational Routines
    • Shift Book
    • Shopfloor Management Administration
  • Product & Quality
    • Process Quality
    • AI Services
  • Machine & Equipment
    • Condition Monitoring
    • Device Portal
  • Enterprise & Shopfloor Integration
    • Information Router
    • Master Data Management

SOT Learning Portal

  • Smart Operations Toolkit
  • Infrastructure manual
  • Regular operations
  • RabbitMQ
  • Upgrade performance with high performant disk type

Upgrade performance with high performant disk type

In addition to the default standard performance disk type, there is an option to turn on the high performance storageClass on certain Kubernetes storage providers.

The option is only valid on the first installation or by following the steps highlighted bellow in the section Upgrade performance with high performant disk type

If you wish to turn on high performant disk type on the first installation or a re-creation of the RabbitMQ cluster, please merge the following block into the custom-values-infra.yaml (See CustomValueFile) outside the global block.

Do not forget to set the storageClass to the correct value for your Kubernetes target deployment (the example below is for Azure platform but this is also the default value for that platform).

global:
  nexeedDeploymentTargets:
    azure:
      storageClasses:
        dedicatedHighPerformance: managed-premium
rabbitmq:
  statefulSets:
    rabbitmq:
      volume:
        performance: high

Instructions for changing the storage class without disruptions

BCI developed a specific script, called ChangeRabbitMQStorageClass.sh, capable of assisting with the change in the storage class.

Requests the script and readme file from your BCI contact.

Preparation activities

  • Check that the new storage class is available for the environment to be updated

  • Ensure RabbitMQ is in a healthy state from the K8s point of view, e.g. all pods are up and running and there are no issues.

  • Check the status of the cluster with rabbitmqctl cluster status

  • Check the status of RabbitMQ via the Management UI and ensure that there are no corrupted queues, e.g. queues that are "running" with "?" in their stats

Add overwrite for the new storage class (as instructed at the beginning of this document) to the custom-values-infra.yaml file. This is required for the new stateful set to be created with the new storage class.

Execution of script

  • Copy the script ChangeRabbitMQStorageClass.sh in a location where you can execute it from the command line.

  • Get the followings parameters before executing the script

    • <kubeconfig>: KubeConfig File Location

    • <namespace>: Namespace of where RabbitMQ is running

    • <statefulset>: Name of existing RabbitMQ StatefulSet

  • Please ensure you have a stable terminal and network connection. Otherwise, the script will not work properly and some manual steps might be required.

  • Run the script from where you have access to the K8s API for the cluster, e.g. Laptop or from a jump host with access to the K8s API. If running it from a jump host, use tools like tmux or screen to keep the session alive in case of network issues.

  • Execute the following command from where script can be accessed:

ChangeRabbitMQStorageClass.sh <kubeconfig> <namespace> <statefulset>
  • Confirm that the script can delete the old stateful set. Just enter Y in the command prompt

  • Let the script run and do not close the terminal where it is running. It is waiting for the new stateful set to be created to continue with the next steps

Deployment of new RabbitMQ changes via Helm

  • Run helm upgrade command to deploy the new changes to the RabbitMQ StatefulSet. This will create a new stateful set with the new storage class.

Finalization steps

  • Let script finish. If successful, the script will say it finalized the migration successfully.

  • Check that all new pods are using the new storage class

  • Check that all pods are healthy and running

  • Check in the management UI that all queues are healthy, e.g. no corruption, and all have "+2" mirrors, except for the exclusive queues (excl)

  • If not synchronized, e.g. some of them show +1, please restart the RabbitMQ node which is missing most of the mirrors

If the script fails

If for any reasons the script fails, you’ll have to bring the cluster back in a healthy state. After fixing the cluster, you can simply re-run the procedure - the script will only alter the pods which doesn’t use persistent volumes with the right storage class.

Contents

© Robert Bosch Manufacturing Solutions GmbH 2023-2026, all rights reserved

Changelog Corporate information Legal notice Data protection notice Third party licenses