:_mod-docs-content-type: REFERENCE
[id="block-storage-requirements_{context}"]

= {block_storage} guidelines

[role="_abstract"]
Prepare to adopt your {block_storage_first_ref}:

* Take note of the {block_storage} back ends that you use.
* Determine all the transport protocols that the {block_storage} back ends use, such as
RBD, iSCSI, FC, NFS, NVMe-TCP, and so on. You must consider them when you place the Block Storage services and when the right storage transport-related binaries are running on the {rhocp_long} nodes. For more information about each storage transport protocol, see xref:openshift-preparation-for-block-storage-adoption_storage-requirements[{OpenShiftShort} preparation for {block_storage} adoption].
* Use a {block_storage} volume service to deploy each {block_storage} volume back end.
+
For example, you have an LVM back end, a Ceph back end, and two entries in `cinderVolumes`, and you cannot set global defaults for all volume services. You must define a service for each of them:
+
[source,yaml]
----
apiVersion: core.openstack.org/v1beta1
kind: OpenStackControlPlane
metadata:
  name: openstack
spec:
  cinder:
    enabled: true
    template:
      cinderVolumes:
        lvm:
          customServiceConfig: |
            [DEFAULT]
            debug = True
            [lvm]
< . . . >
        ceph:
          customServiceConfig: |
            [DEFAULT]
            debug = True
            [ceph]
< . . . >
----
+
[WARNING]
Check that all configuration options are still valid for {rhos_acro} {rhos_curr_ver} version. Configuration options might be deprecated, removed, or added. This applies to both back-end driver-specific configuration options and other generic options.

ifeval::["{build}" != "downstream"]
There are two ways to prepare a {block_storage} configuration for adoption. You can customize the configuration or prepare a quick configuration. There is no difference in how {block_storage} operates with both methods, but you should customize the configuration whenever possible.
endif::[]


ifeval::["{build}" != "downstream"]
include::../modules/proc_preparing-block-storage-service-by-using-agnostic-config-file.adoc[leveloffset=+1]

include::../modules/con_block-storage-service-config-generation-helper-tool.adoc[leveloffset=+1]
endif::[]
