blob: f09fa697bd8121e46c727f9a4bd5edb90eb6014d [file] [log] [blame]
Mohammed Naser90128aa2024-04-29 13:21:58 -04001####################
2Cinder Configuration
3####################
4
5Cinder, the block storage service for OpenStack, can be configured to use a
6variety of storage backends. This section guides you through setting up Cinder
7with different backend technologies, each of which might require specific
8configuration steps.
9
Michiel Piscaerf7d95c52024-06-14 16:27:38 +020010Cinder can be configured with multiple backends which would all be configured
11inside of ``cinder_helm_values.conf.backends``. The documentation below explains
12how to configure a specific backend, but you can add multiple backends by
13adding additional entries to the ``cinder_helm_values.conf.backends`` dictionary.
14
Mohammed Naser90128aa2024-04-29 13:21:58 -040015********
16Ceph RBD
17********
18
19When using the integrated Ceph cluster provided with Atmosphere, no additional
20configuration is needed for Cinder. The deployment process automatically
21configures Cinder to use Ceph as the backend, simplifying setup and integration.
22
23***************
24Dell PowerStore
25***************
26
27In order to be able to use Dell PowerStore, you'll need to make sure that you
28setup the hosts inside of your storage array. You'll also need to make sure
29that they are not inside a host group or otherwise individual attachments will
30not work.
31
32You can enable the native PowerStore driver for Cinder with the following
33configuration inside your Ansible inventory:
34
35.. code-block:: yaml
36
37 cinder_helm_values:
38 storage: powerstore
39 dependencies:
40 static:
41 api:
42 jobs:
43 - cinder-db-sync
44 - cinder-ks-user
45 - cinder-ks-endpoints
46 - cinder-rabbit-init
47 scheduler:
48 jobs:
49 - cinder-db-sync
50 - cinder-ks-user
51 - cinder-ks-endpoints
52 - cinder-rabbit-init
53 volume:
54 jobs:
55 - cinder-db-sync
56 - cinder-ks-user
57 - cinder-ks-endpoints
58 - cinder-rabbit-init
59 volume_usage_audit:
60 jobs:
61 - cinder-db-sync
62 - cinder-ks-user
63 - cinder-ks-endpoints
64 - cinder-rabbit-init
65 conf:
66 cinder:
67 DEFAULT:
68 enabled_backends: powerstore
69 default_volume_type: powerstore
70 backends:
71 rbd1: null
72 powerstore:
73 volume_backend_name: powerstore
74 volume_driver: cinder.volume.drivers.dell_emc.powerstore.driver.PowerStoreDriver
75 san_ip: <FILL IN>
76 san_login: <FILL IN>
77 san_password: <FILL IN>
78 storage_protocol: <FILL IN> # FC or iSCSI
79 manifests:
80 deployment_backup: true
81 job_backup_storage_init: true
82 job_storage_init: false
83
84 nova_helm_values:
85 conf:
86 enable_iscsi: true
87
88.. admonition:: About ``conf.enable_iscsi``
89 :class: info
90
91 The ``enable_iscsi`` setting is required to allow the Nova instances to
92 expose volumes by making the `/dev` devices available to the containers,
93 not necessarily to use iSCSI as the storage protocol. In this case, the
94 PowerStore driver will use the storage protocol specified inside Cinder,
95
Michiel Piscaerf7d95c52024-06-14 16:27:38 +020096************
97Pure Storage
98************
99
100Pure maintains a native Cinder driver that can be used to integrate with the
101Pure Storage FlashArray. To enable the Pure Storage driver for Cinder, you need
102to provide the necessary configuration settings in your Ansible inventory.
103
104In order to use Pure Storage, you'll need to have the following information
105available:
106
107Volume Driver (``volume_driver``)
108 Use ``cinder.volume.drivers.pure.PureISCSIDriver`` for iSCSI,
109 ``cinder.volume.drivers.pure.PureFCDriver`` for Fibre Channel or
110 ``cinder.volume.drivers.pure.PureNVMEDriver`` for NVME connectivity.
111
112 If using the NVME driver, specify the ``pure_nvme_transport`` value, which the
113 supported values are ``roce`` or ``tcp``.
114
115Pure API Endpoint (``san_ip``)
116 The IP address of the Pure Storage array’s management interface or a domain name
117 that resolves to that IP address.
118
119Pure API Token (``pure_api_token``)
120 A token generated by the Pure Storage array that allows the Cinder driver to
121 authenticate with the array.
122
123You can use any other configuration settings that are specific to your needs
124by referencing the `Cinder Pure Storage documentation <https://docs.openstack.org/cinder/latest/configuration/block-storage/drivers/pure-storage-driver.html>`_.
125
126.. code-block:: yaml
127
128 cinder_helm_values:
129 storage: pure
130 pod:
131 useHostNetwork:
132 volume: true
133 backup: true
134 security_context:
135 cinder_volume:
136 container:
137 cinder_volume:
138 readOnlyRootFilesystem: true
139 privileged: true
140 cinder_backup:
141 container:
142 cinder_backup:
143 privileged: true
144 dependencies:
145 static:
146 api:
147 jobs:
148 - cinder-db-sync
149 - cinder-ks-user
150 - cinder-ks-endpoints
151 - cinder-rabbit-init
152 backup:
153 jobs:
154 - cinder-db-sync
155 - cinder-ks-user
156 - cinder-ks-endpoints
157 - cinder-rabbit-init
158 scheduler:
159 jobs:
160 - cinder-db-sync
161 - cinder-ks-user
162 - cinder-ks-endpoints
163 - cinder-rabbit-init
164 volume:
165 jobs:
166 - cinder-db-sync
167 - cinder-ks-user
168 - cinder-ks-endpoints
169 - cinder-rabbit-init
170 volume_usage_audit:
171 jobs:
172 - cinder-db-sync
173 - cinder-ks-user
174 - cinder-ks-endpoints
175 - cinder-rabbit-init
176 conf:
177 enable_iscsi: true
178 cinder:
179 DEFAULT:
180 default_volume_type: purestorage
181 enabled_backends: purestorage
182 backends:
183 rbd1: null
184 purestorage:
185 volume_backend_name: purestorage
186 volume_driver: <FILL IN>
187 san_ip: <FILL IN>
188 pure_api_token: <FILL IN>
189 # pure_nvme_transport:
190 use_multipath_for_image_xfer: true
191 pure_eradicate_on_delete: true
192 manifests:
193 deployment_backup: false
194 job_backup_storage_init: false
195 job_storage_init: false
196
197 nova_helm_values:
198 conf:
199 enable_iscsi: true
200
201.. admonition:: About ``conf.enable_iscsi``
202 :class: info
203
204 The ``enable_iscsi`` setting is required to allow the Nova instances to
205 expose volumes by making the `/dev` devices available to the containers,
206 not necessarily to use iSCSI as the storage protocol. In this case, the
207 Cinder instances will use the volume driver specified in ``volume_driver``.
208
Mohammed Naser90128aa2024-04-29 13:21:58 -0400209********
210StorPool
211********
212
213Using StorPool as a storage backend requires additional configuration to ensure
214proper integration. These adjustments include network settings and file system mounts.
215
216Configure Cinder to use StorPool by implementing the following settings:
217
218.. code-block:: yaml
219
220 cinder_helm_values:
221 storage: storpool
222 pod:
223 useHostNetwork:
224 volume: true
225 mounts:
226 cinder_volume:
227 volumeMounts:
228 - name: etc-storpool-conf
229 mountPath: /etc/storpool.conf
230 readOnly: true
231 - name: etc-storpool-conf-d
232 mountPath: /etc/storpool.conf.d
233 readOnly: true
234 volumes:
235 - name: etc-storpool-conf
236 hostPath:
237 type: File
238 path: /etc/storpool.conf
239 - name: etc-storpool-conf-d
240 hostPath:
241 type: Directory
242 path: /etc/storpool.conf.d
243 dependencies:
244 static:
245 api:
246 jobs:
247 - cinder-db-sync
248 - cinder-ks-user
249 - cinder-ks-endpoints
250 - cinder-rabbit-init
251 scheduler:
252 jobs:
253 - cinder-db-sync
254 - cinder-ks-user
255 - cinder-ks-endpoints
256 - cinder-rabbit-init
257 volume:
258 jobs:
259 - cinder-db-sync
260 - cinder-ks-user
261 - cinder-ks-endpoints
262 - cinder-rabbit-init
263 volume_usage_audit:
264 jobs:
265 - cinder-db-sync
266 - cinder-ks-user
267 - cinder-ks-endpoints
268 - cinder-rabbit-init
269 conf:
270 cinder:
271 DEFAULT:
272 enabled_backends: hybrid-2ssd
273 default_volume_type: hybrid-2ssd
274 backends:
275 rbd1: null
276 hybrid-2ssd:
277 volume_backend_name: hybrid-2ssd
278 volume_driver: cinder.volume.drivers.storpool.StorPoolDriver
279 storpool_template: hybrid-2ssd
280 report_discard_supported: true
281 manifests:
282 deployment_backup: false
283 job_backup_storage_init: false
284 job_storage_init: false
285
286 nova_helm_values:
287 conf:
288 enable_iscsi: true
289
290.. admonition:: About ``conf.enable_iscsi``
291 :class: info
292
293 The ``enable_iscsi`` setting is required to allow the Nova instances to
294 expose volumes by making the `/dev` devices available to the containers,
295 not necessarily to use iSCSI as the storage protocol. In this case, the
296 StorPool devices will be exposed as block devices to the containers.