// This assembly is included in the following assemblies:
//
// assembly-config.adoc

[id='assembly-storage-{context}']
= Configuring Kafka storage

[role="_abstract"]
Strimzi supports different Kafka storage options.
You can choose between the following basic types:

Ephemeral storage:: Ephemeral storage is temporary and only persists while a pod is running. 
When a pod is deleted, the data is lost, though data can be recovered in a highly available environment. 
Due to its transient nature, ephemeral storage is only recommended for development and testing environments.

Persistent storage:: Persistent storage retains data across pod restarts and system disruptions, making it ideal for production environments. 

JBOD (Just a Bunch of Disks) storage allows you to configure your Kafka cluster to use multiple disks or volumes as ephemeral or persistent storage. 

.JBOD storage (multiple volumes)
When specifying JBOD storage, you must still decide between using ephemeral or persistent volumes for each disk. 
Even if you start with only one volume, using JBOD allows for future scaling by adding more volumes as needed, and that is why it is always recommended.

NOTE: Persistent, ephemeral, and JBOD storage types cannot be changed after a Kafka cluster is deployed. 
However, you can add or remove volumes of different types from the JBOD storage.
You can also create and migrate to node pools with new storage specifications.

.Tiered storage (advanced)

Tiered storage, currently available as an early access feature, provides additional flexibility for managing Kafka data by combining different storage types with varying performance and cost characteristics. 
It allows Kafka to offload older data to cheaper, long-term storage (such as object storage) while keeping recent, frequently accessed data on faster, more expensive storage (such as block storage).

Tiered storage is an add-on capability. 
After configuring storage (ephemeral, persistent, or JBOD) for Kafka nodes, you can configure tiered storage at the cluster level and enable it for specific topics using the `remote.storage.enable` topic-level configuration.

include::../../modules/configuring/con-considerations-for-data-storage.adoc[leveloffset=+1]

//KRaft storage
include::../../modules/configuring/con-config-storage-kraft.adoc[leveloffset=+1]
include::../../modules/configuring/proc-managing-storage-node-pools.adoc[leveloffset=+2]
include::../../modules/configuring/proc-managing-storage-affinity-node-pools.adoc[leveloffset=+2]
//ZooKeeper storage
include::../../modules/configuring/con-config-storage-zookeeper.adoc[leveloffset=+1]
//tiered storage
include::../../modules/configuring/ref-storage-tiered.adoc[leveloffset=+1]