20. Release Notes

20.1. Robin Cloud Native Storage v5.4.14-57

The Robin CNS v5.4.14-57 Release Notes document provides information about upgrade paths, new features, improvements, fixed issues, and knwon issues.

Release Date: February 12, 2025

20.1.1. Upgrade Paths

The following are the supported upgrade paths for Robin CNS v5.4.14-57:

  • Robin CNS v5.4.10-61 to Robin CNS v5.4.14-57

  • Robin CNS v5.4.8-280 to Robin CNS v5.4.14-57

Note

  • After upgrading to Robin CNS v5.4.14-57, if you are using the Robin Client outside the robincli Pod, you must upgrade to the latest version of the Robin Client.

  • If you have installed Robin CNS with the skip_postgres_operator parameter to use the Zalando PostgreSQL operator, then you must first upgrade the Zalando PostgreSQL operator to v1.11.0 or later before upgrading to Robin CNS v5.4.14-57.

20.1.2. PostgreSQL and Patroni versions

Robin CNS v5.4.14-57 includes the following Patroni and PostgreSQL versions:

  • PostgreSQL 15.7

  • Patroni 3.2.2

20.1.3. New Features

20.1.3.1. Enable or Disable robin-master-ext Service

Starting with Robin CNS v5.4.14-57, you can disable the robin-master-ext service before installation or upgrade, and you can also enable or disable it after installation or upgrade.

By default, the robin-master-ext service is created when you install Robin CNS. The robin-master-ext service allows you to access the CNS cluster using the Robin client and GUI. You can manage the service using the disable_external_service parameter available in the robin.yaml CR file.

The disable_external_service parameter is commented out in the robin.yaml CR file. If you want to disable it before installation or upgrade, you must uncomment the parameter and configure it as follows:

  • Option 0: Enable the service

  • Option 1: Disable the service

The robin.yaml CR file is included in the Robin CNS tar file.

You can enable or disable the service post-installation using the Kubectl edit robincluster -n robin command and update the disable_external_service parameter.

When the service is disabled, the robin-master-ext service deployed in the robinio namespace will be removed from the Kubernetes cluster, and it will no longer appear in the output of the kubectl get svc -n robinio command.

Robin Client and Robin CNS UI use this service to access the cluster from outside; the access will not work once this service is not available. You can manually create the Kubernetes Service, which enables you to connect to the port 29443 for accessing the CNS UI and the port 29442 for accessing the Robin Client. For more information, see Manage External Master service.

20.1.3.2. Monitor CNS Cluster Health Using RobinCluster CR

Robin CNS enables you to monitor the health of your CNS cluster using the RobinCluster CR. When you run the kubectl describe robincluster command, the output displays the health of the cluster under the Phase and phase_reason parameters of the Status section. The command output also displays relevant events under the Events section when nodes or services change their state.

The Phase parameter in the kubectl describe robincluster output displays the following states for different components in the cluster:

  • Ready

  • Degraded

  • NotReady

For more information, see Monitor cluster health using RobinCluster CR.

20.1.4. Improvements

20.1.4.1. Updated the Default Reclaim Policy for robin-patroni PVs

Starting with Robin CNS v5.4.14-57, the reclaim policy for robin-patroni PVs is now set to Retain by default.

20.1.4.2. Robin Metrics Display Node Name where Active robin-master Pod is Running

Starting with Robin CNS v5.4.14-57, the robin_server{instance} metrics output displays the node name where the active robin-master Pod is running.

You can run the following command to identify the node where the active robin-master Pod is running:

# curl -k "https://<ipaddress>:29446/metrics" | grep robin_server {instance}

Example

# curl -k https://localhost:29446/metrics | grep robin_server{instance
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
14 112k 14 16199 0 0 32398 robin_server{instance="hypervvm-72-33.robinsystems.com"} 1
100 112k 100 112k 0 0 223k 0 --:--:-- --:--:-- --:--:-- 223k

20.1.5. Fixed Issues

Reference ID

Description

PP-33597

Unable to delete a thick clone volume while hydration is in progress due to slice and snapshot reference leaks. This issue is fixed.

RSD-7614

In rare scenarios, the stormgr-server service might not recover after the network restarts. This issue is fixed.

RSD-8019

During Robin CNS installation, if pulling the Robin images takes more time than the default timeout of 15 minutes for Helm install, the Patroni Helm chart installation fails with a timeout error. This is fixed.

RSD-8674

When you set the auto_add_storage_disks parameter to 1, Robin CNS does not automatically detect and add new disks to the cluster if local PV discovery is configured. This issue is fixed.

RSD-8696

In some rare scenarios, the IOMGR service remains in the Partitioned state, blocking new mounts. This issue is fixed.

20.1.6. Known Issues

Reference ID

Description

PP-34414

Symptom

In rare scenarios, the IOMGR service might fail to open devices in the exclusive mode when it starts as other processes are using these disks. You might observe the following issues:

  • The Robin server is down.

  • All app Pods restart, and some app Pods get stuck in the ContainerCreating state.

To confirm the above issues, complete the following steps:

  1. Run the following command to check for the EVENT_DISK_FAULTED event type in the disk events:

    # robin event list --type EVENT_DISK_FAULTED
    
  2. If you notice the disk is faulted error, check the IOMGR logs for dev_open() error and the Failed to exclusively open message on the node where disks are present.

    # cat iomgr.log.0 | grep <device> | grep "dev_open"
    
  3. If you notice the Device or resource busy error in the log file, use the fuser command with the device path to confirm whether the device is in use:

# fuser /dev/disk/by-id/scsi-SATA_Micron_M500_MTFD_1401096049D5

Workaround

If the device is not in use, run the following command to restart the IOMGR service on the respective node:

# supervisorctl restart iomgr

20.1.7. Technical Support

Contact Robin Technical support for any assistance.