Change the storage used by nodes in OSD/ROSA clusters

Solution Verified - Updated -

Environment

  • Red Hat OpenShift Service on AWS (ROSA)
    • 4
  • Red Hat OpenShift Dedicated (OSD)
    • 4

Issue

  • Can the storage of the control plane and infra nodes be changed to gp3 in OSD/ROSA?
  • Can the storage of the nodes from the default MachinePool be changed to gp3 in OSD/ROSA?
  • Is it possible to change VolumeType to gp3 for OSD and ROSA clusters?
  • Is it possible to change VolumeType to io2/io1 for OSD and ROSA clusters?
  • Can the EBS VolumeType of ROSA be changed from gp2 to gp3?

Resolution

The gp3 storage is used as the default VolumeType for nodes in OSD/ROSA clusters installed with OCP 4.10 and newer releases. It's also the default VolumeType for newly created MachinePools (even for clusters installed before gp3 was the default), but the VolumeType cannot be changed in already created MachinePools (like the default one). Refer to Create and configure MachineSets/MachinePools in OSD and ROSA for creating new MachinePools.

Note: It is currently not possible to change the VolumeType to gp3 for already created nodes (including the control plane, infra nodes and worker nodes from the default MachinePool) in clusters installed with versions prior to 4.10. Instead of that, it is possible to install a new OSD/ROSA cluster with a recent release to have the storage used by nodes configured with gp3.

Note: It is currently not possible to change the VolumeType to io2/io1.

For using gp3 as PersistentVolumes by default, refer to How to switch the default StorageClass to another one on OCP.

Root Cause

OSD and ROSA clusters installed with OCP 4.10 or newer version already have the gp3 configured as VolumeType by default.

Diagnostic Steps

Check the volumeType for the blockDevices used by all machines in OSD and ROSA clusters:

$ oc get machines -n openshift-machine-api -n openshift-machine-api -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{.spec.providerSpec.value.blockDevices}{"\n\n"}{end}'

The output will be similar to:

[machine_name]
[{"ebs":{"encrypted":true,"iops":0,"kmsKey":{"arn":""},"volumeSize":300,"volumeType":"gp3"}}]

[...]

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

Comments