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

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

[role="_abstract"]
As stateful applications, Kafka and ZooKeeper store data on disk. 
Strimzi supports three storage types for this data:

* Ephemeral (Recommended for development only)
* Persistent
* JBOD (*Kafka only* not ZooKeeper)

When configuring a `Kafka` resource, you can specify the type of storage used by the Kafka broker and its corresponding ZooKeeper node. You configure the storage type using the `storage` property in the following resources:

* `Kafka.spec.kafka`
* `Kafka.spec.zookeeper`

The storage type is configured in the `type` field.

Refer to the schema reference for more information on storage configuration properties:

* link:{BookURLConfiguring}#type-EphemeralStorage-reference[`EphemeralStorage` schema reference^]
* link:{BookURLConfiguring}#type-PersistentClaimStorage-reference[`PersistentClaimStorage` schema reference^]
* link:{BookURLConfiguring}#type-JbodStorage-reference[`JbodStorage` schema reference^]

WARNING: The storage type cannot be changed after a Kafka cluster is deployed.

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

include::../../modules/configuring/ref-storage-ephemeral.adoc[leveloffset=+1]

include::../../modules/configuring/ref-storage-persistent.adoc[leveloffset=+1]

include::../../modules/configuring/proc-resizing-persistent-volumes.adoc[leveloffset=+1]

include::../../modules/configuring/ref-storage-jbod.adoc[leveloffset=+1]

include::../../modules/configuring/proc-adding-volumes-to-jbod-storage.adoc[leveloffset=+1]

include::../../modules/configuring/proc-removing-volumes-from-jbod-storage.adoc[leveloffset=+1]
