# Expand PersistentVolumes

> For the complete documentation index, see [llms.txt](https://docs.redpanda.com/llms.txt). Component-specific: [streaming-full.txt](https://docs.redpanda.com/streaming-full.txt)

---
title: Expand PersistentVolumes
latest-redpanda-tag: v24.3.9
latest-console-tag: v3.7.3
latest-operator-version: v26.1.4
# EOL = End-of-Life (support lifecycle status)
page-is-nearing-eol: "false"
page-is-past-eol: "true"
page-eol-date: December 3, 2025
latest-connect-version: 4.93.0
docname: kubernetes/storage/k-resize-persistentvolumes
page-component-name: streaming
page-version: "24.3"
page-component-version: "24.3"
page-component-title: Streaming
page-relative-src-path: kubernetes/storage/k-resize-persistentvolumes.adoc
page-edit-url: https://github.com/redpanda-data/docs/edit/v/24.3/modules/manage/pages/kubernetes/storage/k-resize-persistentvolumes.adoc
description: Learn how to expand the size of your PersistentVolumes to give Redpanda brokers more storage capacity.
page-git-created-date: "2024-01-04"
page-git-modified-date: "2024-09-17"
support-status: past end-of-life
---

<!-- Source: https://docs.redpanda.com/streaming/24.3/manage/kubernetes/storage/k-resize-persistentvolumes.md -->

To give Redpanda brokers more storage, you can expand the size of PersistentVolumes (PVs). The way you expand PVs depends on the provisioner that you use.

> ⚠️ **CAUTION**
>
> Some storage operations may cause temporary disruptions to your service or require the restart of associated Pods. Plan these operations during maintenance windows or times of low usage.

## [](#expand-persistentvolumes-that-use-static-provisioners)Expand PersistentVolumes that use static provisioners

The process of resizing PVs that use a static provisioner varies depending on the way your file system is allocated. Follow the recommended process for your system. You do not need to make any configuration changes to the Redpanda Helm chart or your Redpanda custom resource.

## [](#expand-persistentvolumes-that-use-dynamic-provisioners)Expand PersistentVolumes that use dynamic provisioners

To expand a PersistentVolume that uses a dynamic provisioner, you can reconfigure the Redpanda Helm chart to increase the size specification of your Pods' PersistentVolumeClaims (PVCs). Before making this change, make sure that your StorageClass is capable of volume expansions. For a list of volumes that support volume expansion, see the [Kubernetes documentation](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#expanding-persistent-volumes-claims).

> 📝 **NOTE**
>
> When you increase the size of a PVC connected to a StatefulSet, only new Pods recognize the changed PVC size. Existing Pods remain associated with the original PVC size. Manual intervention is necessary to modify the size of PVCs for existing Pods. Not all storage drivers recognize and act upon such modifications. Before making any changes, ensure your storage driver supports this operation.

1.  Delete the StatefulSet associated with your Redpanda brokers using the `cascade=orphan` option. This action deletes the StatefulSet while leaving the Pods and their associated PVCs intact.

    ```bash
    kubectl --namespace <namespace> delete statefulset <cluster-name> --cascade=orphan
    ```

2.  Manually resize any pre-existing PVCs to your desired capacity by modifying the `spec.resources.requests.storage` field to the new size.

3.  Redeploy the StatefulSet with the updated PVC size.

    For the Redpanda data directory:

    ### Helm + Operator

    `redpanda-cluster.yaml`

    ```yaml
    apiVersion: cluster.redpanda.com/v1alpha2
    kind: Redpanda
    metadata:
      name: redpanda
    spec:
      chartRef: {}
      clusterSpec:
        storage:
          persistentVolume:
            enabled: true
            size: <custom-size>Gi
    ```

    ```bash
    kubectl apply -f redpanda-cluster.yaml --namespace <namespace>
    ```


    ### Helm


    #### --values

    `persistentvolume-size.yaml`

    ```yaml
    storage:
      persistentVolume:
        enabled: true
        size: <custom-size>Gi
    ```

    ```bash
    helm upgrade --install redpanda redpanda/redpanda --namespace <namespace> --create-namespace \
      --values persistentvolume-size.yaml --reuse-values
    ```


    #### --set

    ```bash
    helm upgrade --install redpanda redpanda/redpanda --namespace <namespace> --create-namespace \
      --set storage.persistentVolume.enabled=true \
      --set storage.persistentVolume.size=<custom-size>Gi
    ```

    For the Tiered Storage cache:

    ### Helm + Operator

    `redpanda-cluster.yaml`

    ```yaml
    apiVersion: cluster.redpanda.com/v1alpha2
    kind: Redpanda
    metadata:
      name: redpanda
    spec:
      chartRef: {}
      clusterSpec:
        storage:
          tieredStoragePersistentVolume:
            enabled: true
            size: <custom-size>Gi
    ```

    ```bash
    kubectl apply -f redpanda-cluster.yaml --namespace <namespace>
    ```


    ### Helm


    #### --values

    `persistentvolume-size.yaml`

    ```yaml
    storage:
      tieredStoragePersistentVolume:
        enabled: true
        size: <custom-size>Gi
    ```

    ```bash
    helm upgrade --install redpanda redpanda/redpanda --namespace <namespace> --create-namespace \
      --values persistentvolume-size.yaml --reuse-values
    ```


    #### --set

    ```bash
    helm upgrade --install redpanda redpanda/redpanda \
      --namespace <namespace> \
      --create-namespace \
      --set storage.tieredStoragePersistentVolume.enabled=true \
      --set storage.tieredStoragePersistentVolume.size=<custom-size>Gi
    ```


## [](#verify-persistentvolumeclaims)Verify PersistentVolumeClaims

After redeploying the StatefulSet, verify that the Redpanda Pods have claimed the required PVs.

1.  Use the following command to list the PVCs in your cluster:

    ```bash
    kubectl get pvc --namespace <namespace>
    ```

    Ensure that the PVCs related to Redpanda are in the Bound state and note the PVs to which they’re bound.

2.  Choose a Pod and describe it:

    ```bash
    kubectl describe pod <redpanda-pod-name> --namespace <namespace>
    ```


In the output, ensure the PVC is mounted to the correct path and that the source PV matches what you’ve configured.

## [](#suggested-reading)Suggested reading

[Expanding Persistent Volumes Claims](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#expanding-persistent-volumes-claims)

## Suggested labs

-   [Redpanda Iceberg Docker Compose Example](https://docs.redpanda.com/labs/docker-compose/iceberg/)
-   [Enable Unified Identity with Azure Entra ID for Redpanda and Redpanda Console](https://docs.redpanda.com/labs/docker-compose/oidc/)
-   [Owl Shop Example Application in Docker](https://docs.redpanda.com/labs/docker-compose/owl-shop/)
-   [Migrate Data with Redpanda Migrator](https://docs.redpanda.com/labs/docker-compose/redpanda-migrator/)
-   [Start a Single Redpanda Broker with Redpanda Console in Docker](https://docs.redpanda.com/labs/docker-compose/single-broker/)
-   [Start a Cluster of Redpanda Brokers with Redpanda Console in Docker](https://docs.redpanda.com/labs/docker-compose/three-brokers/)
-   [Iceberg Streaming on Kubernetes with Redpanda, MinIO, and Spark](https://docs.redpanda.com/labs/kubernetes/iceberg/)

See more

[Search all labs](https://docs.redpanda.com/labs)