blob: 6c97682964062ec87f425ce5e50287bb65ba4c21 [file] [log] [blame]
OlgaGusarenko74b53f22018-06-28 17:35:48 +03001=====
2Usage
3=====
Filip Pytlounda2a0792015-10-06 16:28:31 +02004
OlgaGusarenko74b53f22018-06-28 17:35:48 +03005Cinder provides an infrastructure for managing volumes in OpenStack.
6Originally, this project was the Nova component called ``nova-volume``
7and starting from the Folsom OpenStack release it has become an independent
8project.
Filip Pytlounda2a0792015-10-06 16:28:31 +02009
OlgaGusarenko74b53f22018-06-28 17:35:48 +030010This file provides the sample configurations for different use cases:
Filip Pytlounda2a0792015-10-06 16:28:31 +020011
OlgaGusarenko74b53f22018-06-28 17:35:48 +030012* Pillar sample of a basic Cinder configuration:
Filip Pytlounda2a0792015-10-06 16:28:31 +020013
OlgaGusarenko74b53f22018-06-28 17:35:48 +030014 The pillar structure defines ``cinder-api`` and ``cinder-scheduler`` inside
15 the ``controller`` role and ``cinder-volume`` inside the to ``volume``
16 role.
17
18 .. code-block:: yaml
Filip Pytlounda2a0792015-10-06 16:28:31 +020019
20 cinder:
21 controller:
22 enabled: true
23 version: juno
Dmitry Stremkovskiy9f4ac8b2017-07-11 09:48:46 +030024 cinder_uid: 304
25 cinder_gid: 304
Dmitry Stremkovskiyef4c7d02017-07-30 16:51:52 +030026 nas_secure_file_permissions: false
27 nas_secure_file_operations: false
Dmitry Stremkovskiya5dd7992017-07-30 19:54:23 +030028 cinder_internal_tenant_user_id: f46924c112a14c80ab0a24a613d95eef
29 cinder_internal_tenant_project_id: b7455b8974bb4064ad247c8f375eae6c
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010030 default_volume_type: 7k2SaS
stelucz1f3a82f2017-09-19 18:38:13 +020031 enable_force_upload: true
Damian Szeluga0918f5a2017-04-19 12:26:56 +020032 availability_zone_fallback: True
Filip Pytlounda2a0792015-10-06 16:28:31 +020033 database:
34 engine: mysql
35 host: 127.0.0.1
36 port: 3306
37 name: cinder
38 user: cinder
39 password: pwd
40 identity:
41 engine: keystone
42 host: 127.0.0.1
43 port: 35357
44 tenant: service
45 user: cinder
46 password: pwd
47 message_queue:
48 engine: rabbitmq
49 host: 127.0.0.1
50 port: 5672
51 user: openstack
52 password: pwd
53 virtual_host: '/openstack'
root08402652018-12-28 15:04:23 +000054 client:
55 connection_params:
56 connect_retries: 50
57 connect_retry_delay: 1
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010058 backend:
59 7k2_SAS:
60 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +010061 type_name: slow-disks
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010062 host: 192.168.0.1
63 port: 22
64 user: username
65 password: pass
66 connection: FC/iSCSI
67 multihost: true
68 multipath: true
69 pool: SAS7K2
Kirill Bespalov01614c02017-07-31 17:06:09 +030070 audit:
Petr Michaleca1c7ff12016-11-29 16:32:50 +010071 enabled: false
Simon Pasquier9089de42017-02-03 16:13:22 +010072 osapi_max_limit: 500
Oleg Iurchenko83ee09a2017-10-17 18:24:28 +030073 barbican:
74 enabled: true
Filip Pytlounda2a0792015-10-06 16:28:31 +020075
76 cinder:
77 volume:
78 enabled: true
79 version: juno
Dmitry Stremkovskiy9f4ac8b2017-07-11 09:48:46 +030080 cinder_uid: 304
81 cinder_gid: 304
Dmitry Stremkovskiyef4c7d02017-07-30 16:51:52 +030082 nas_secure_file_permissions: false
83 nas_secure_file_operations: false
Dmitry Stremkovskiya5dd7992017-07-30 19:54:23 +030084 cinder_internal_tenant_user_id: f46924c112a14c80ab0a24a613d95eef
85 cinder_internal_tenant_project_id: b7455b8974bb4064ad247c8f375eae6c
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010086 default_volume_type: 7k2SaS
Michael Polenchukf0d642e2018-07-27 09:55:14 +040087 enable_force_upload: true
88 my_ip: 192.168.0.254
Filip Pytlounda2a0792015-10-06 16:28:31 +020089 database:
90 engine: mysql
91 host: 127.0.0.1
92 port: 3306
93 name: cinder
94 user: cinder
95 password: pwd
96 identity:
97 engine: keystone
98 host: 127.0.0.1
99 port: 35357
100 tenant: service
101 user: cinder
102 password: pwd
103 message_queue:
104 engine: rabbitmq
105 host: 127.0.0.1
106 port: 5672
107 user: openstack
108 password: pwd
109 virtual_host: '/openstack'
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +0100110 backend:
111 7k2_SAS:
112 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100113 type_name: 7k2 SAS disk
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +0100114 host: 192.168.0.1
115 port: 22
116 user: username
117 password: pass
118 connection: FC/iSCSI
119 multihost: true
120 multipath: true
121 pool: SAS7K2
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100122 audit:
123 enabled: false
Oleg Iurchenko83ee09a2017-10-17 18:24:28 +0300124 barbican:
125 enabled: true
Ondrej Smola74af21b2017-04-28 12:30:24 +0200126
127
Vasyl Saienkoa5de7512018-07-12 17:28:36 +0300128Volume vmware related options:
129
130.. code-block:: yaml
131
132 cinder:
133 volume:
134 backend:
135 vmware:
136 engine: vmware
137 host_username: vmware
138 host_password: vmware
139 cluster_names: vmware_cluster01,vmware_cluster02
140
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300141* The CORS parameters enablement:
Vasyl Saienkoa5de7512018-07-12 17:28:36 +0300142
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300143 .. code-block:: yaml
Ondrej Smola74af21b2017-04-28 12:30:24 +0200144
145 cinder:
146 controller:
147 cors:
148 allowed_origin: https:localhost.local,http:localhost.local
149 expose_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
150 allow_methods: GET,PUT,POST,DELETE,PATCH
151 allow_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
152 allow_credentials: True
153 max_age: 86400
Jiri Konecny2dce35f2016-04-19 16:29:52 +0200154
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300155* The client-side RabbitMQ HA setup for the controller:
Jiri Konecny2dce35f2016-04-19 16:29:52 +0200156
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300157 .. code-block:: yaml
Jiri Konecny2dce35f2016-04-19 16:29:52 +0200158
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300159 cinder:
160 controller:
161 ....
162 message_queue:
163 engine: rabbitmq
164 members:
165 - host: 10.0.16.1
166 - host: 10.0.16.2
167 - host: 10.0.16.3
168 user: openstack
169 password: pwd
170 virtual_host: '/openstack'
171 ....
Jiri Konecny2dce35f2016-04-19 16:29:52 +0200172
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300173* The client-side RabbitMQ HA setup for the volume component
Jiri Konecny2dce35f2016-04-19 16:29:52 +0200174
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300175 .. code-block:: yaml
Jiri Konecny2dce35f2016-04-19 16:29:52 +0200176
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300177 cinder:
178 volume:
179 ....
180 message_queue:
181 engine: rabbitmq
182 members:
183 - host: 10.0.16.1
184 - host: 10.0.16.2
185 - host: 10.0.16.3
186 user: openstack
187 password: pwd
188 virtual_host: '/openstack'
189 ....
Filip Pytlounda2a0792015-10-06 16:28:31 +0200190
Kirill Bespalov01614c02017-07-31 17:06:09 +0300191
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300192* Configuring TLS communications.
Kirill Bespalov01614c02017-07-31 17:06:09 +0300193
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300194 .. note:: By default, system-wide installed CA certs are used.
195 Therefore, the ``cacert_file`` and ``cacert`` parameters are
196 optional.
Kirill Bespalov01614c02017-07-31 17:06:09 +0300197
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300198 * RabbitMQ TLS:
Kirill Bespalov1550d6c2017-11-21 12:55:33 +0300199
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300200 .. code-block:: yaml
Kirill Bespalov1550d6c2017-11-21 12:55:33 +0300201
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300202 cinder:
203 controller, volume:
204 message_queue:
205 port: 5671
206 ssl:
207 enabled: True
208 (optional) cacert: cert body if the cacert_file does not exists
209 (optional) cacert_file: /etc/openstack/rabbitmq-ca.pem
210 (optional) version: TLSv1_2
Kirill Bespalov01614c02017-07-31 17:06:09 +0300211
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300212 * MySQL TLS:
Kirill Bespalov01614c02017-07-31 17:06:09 +0300213
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300214 .. code-block:: yaml
Kirill Bespalov01614c02017-07-31 17:06:09 +0300215
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300216 cinder:
217 controller:
218 database:
219 ssl:
220 enabled: True
221 (optional) cacert: cert body if the cacert_file does not exists
222 (optional) cacert_file: /etc/openstack/mysql-ca.pem
Kirill Bespalov01614c02017-07-31 17:06:09 +0300223
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300224 * Openstack HTTPS API:
Kirill Bespalov01614c02017-07-31 17:06:09 +0300225
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300226 .. code-block:: yaml
Kirill Bespalov01614c02017-07-31 17:06:09 +0300227
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300228 cinder:
229 controller, volume:
230 identity:
231 protocol: https
232 (optional) cacert_file: /etc/openstack/proxy.pem
233 glance:
234 protocol: https
235 (optional) cacert_file: /etc/openstack/proxy.pem
Kirill Bespalov01614c02017-07-31 17:06:09 +0300236
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300237* Cinder setup with zeroing deleted volumes:
Kirill Bespalov01614c02017-07-31 17:06:09 +0300238
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300239 .. code-block:: yaml
Alexander Noskov62496fb2017-02-27 16:42:54 +0100240
Filip Pytlounda2a0792015-10-06 16:28:31 +0200241 cinder:
242 controller:
243 enabled: true
244 wipe_method: zero
245 ...
246
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300247* Cinder setup with shreding deleted volumes:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200248
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300249 .. code-block:: yaml
Filip Pytlounda2a0792015-10-06 16:28:31 +0200250
251 cinder:
252 controller:
253 enabled: true
254 wipe_method: shred
255 ...
256
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300257* Configuration of ``policy.json`` file:
Dmitry Ukov56c29072017-05-04 16:48:29 +0400258
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300259 .. code-block:: yaml
Dmitry Ukov56c29072017-05-04 16:48:29 +0400260
261 cinder:
262 controller:
263 ....
264 policy:
265 'volume:delete': 'rule:admin_or_owner'
266 # Add key without value to remove line from policy.json
267 'volume:extend':
268
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300269* Default Cinder backend ``lvm_type`` setup:
sgarbuz0901ebe2018-06-13 17:16:16 +0300270
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300271 .. code-block:: yaml
sgarbuz0901ebe2018-06-13 17:16:16 +0300272
273 cinder:
274 volume:
275 enabled: true
276 backend:
277 # Type of LVM volumes to deploy; (default, thin, or auto). Auto defaults to thin if thin is supported.
278 lvm_type: auto
279
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300280* Default Cinder setup with iSCSI target:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200281
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300282 .. code-block:: yaml
Filip Pytlounda2a0792015-10-06 16:28:31 +0200283
284 cinder:
285 controller:
286 enabled: true
Jakub Pavlik3d437df2016-04-11 22:07:50 +0200287 version: mitaka
288 default_volume_type: lvmdriver-1
Filip Pytlounda2a0792015-10-06 16:28:31 +0200289 database:
290 engine: mysql
291 host: 127.0.0.1
292 port: 3306
293 name: cinder
294 user: cinder
295 password: pwd
296 identity:
297 engine: keystone
298 host: 127.0.0.1
299 port: 35357
300 tenant: service
301 user: cinder
302 password: pwd
303 message_queue:
304 engine: rabbitmq
305 host: 127.0.0.1
306 port: 5672
307 user: openstack
308 password: pwd
309 virtual_host: '/openstack'
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +0100310 backend:
Jakub Pavlik3d437df2016-04-11 22:07:50 +0200311 lvmdriver-1:
312 engine: lvm
313 type_name: lvmdriver-1
314 volume_group: cinder-volume
Filip Pytlounda2a0792015-10-06 16:28:31 +0200315
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300316* Cinder setup for IBM Storwize:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200317
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300318 .. code-block:: yaml
Filip Pytlounda2a0792015-10-06 16:28:31 +0200319
320 cinder:
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100321 volume:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200322 enabled: true
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100323 backend:
324 7k2_SAS:
325 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100326 type_name: 7k2 SAS disk
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100327 host: 192.168.0.1
328 port: 22
329 user: username
330 password: pass
331 connection: FC/iSCSI
332 multihost: true
333 multipath: true
334 pool: SAS7K2
335 10k_SAS:
336 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100337 type_name: 10k SAS disk
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100338 host: 192.168.0.1
339 port: 22
340 user: username
341 password: pass
342 connection: FC/iSCSI
343 multihost: true
344 multipath: true
345 pool: SAS10K
346 15k_SAS:
347 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100348 type_name: 15k SAS
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100349 host: 192.168.0.1
350 port: 22
351 user: username
352 password: pass
353 connection: FC/iSCSI
354 multihost: true
355 multipath: true
356 pool: SAS15K
Filip Pytlounda2a0792015-10-06 16:28:31 +0200357
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300358* Cinder setup with NFS:
Jiri Broulik88548db2017-03-31 12:21:37 +0200359
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300360 .. code-block:: yaml
Jiri Broulik88548db2017-03-31 12:21:37 +0200361
362 cinder:
363 controller:
364 enabled: true
365 default_volume_type: nfs-driver
366 backend:
367 nfs-driver:
368 engine: nfs
369 type_name: nfs-driver
370 volume_group: cinder-volume
371 path: /var/lib/cinder/nfs
372 devices:
373 - 172.16.10.110:/var/nfs/cinder
374 options: rw,sync
375
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300376* Cinder setup with NetApp:
Jiri Broulik88548db2017-03-31 12:21:37 +0200377
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300378 .. code-block:: yaml
Alexey Chekunovf916f0c2017-05-25 13:29:45 +0400379
380 cinder:
381 controller:
382 backend:
383 netapp:
384 engine: netapp
385 type_name: netapp
386 user: openstack
387 vserver: vm1
388 server_hostname: 172.18.2.3
389 password: password
390 storage_protocol: nfs
391 transport_type: https
392 lun_space_reservation: enabled
393 use_multipath_for_image_xfer: True
Dmitry Stremkouskiffa53c02017-09-15 19:47:21 +0300394 nas_secure_file_operations: false
395 nas_secure_file_permissions: false
Alexey Chekunovf916f0c2017-05-25 13:29:45 +0400396 devices:
397 - 172.18.1.2:/vol_1
398 - 172.18.1.2:/vol_2
399 - 172.18.1.2:/vol_3
400 - 172.18.1.2:/vol_4
Jakub Pavlik94dc0c92017-06-14 14:53:23 +0200401 linux:
402 system:
403 package:
404 nfs-common:
405 version: latest
Alexey Chekunovf916f0c2017-05-25 13:29:45 +0400406
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300407* Cinder setup with Hitachi VPS:
Alexey Chekunovf916f0c2017-05-25 13:29:45 +0400408
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300409 .. code-block:: yaml
Filip Pytlounda2a0792015-10-06 16:28:31 +0200410
411 cinder:
412 controller:
413 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100414 backend:
415 hus100_backend:
marcodaa52fa2016-01-25 23:49:50 +0100416 type_name: HUS100
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100417 backend: hus100_backend
418 engine: hitachi_vsp
419 connection: FC
Filip Pytlounda2a0792015-10-06 16:28:31 +0200420
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300421* Cinder setup with Hitachi VPS with defined ``ldev`` range:
Ondrej Smola16d66bd2017-01-15 13:56:03 +0100422
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300423 .. code-block:: yaml
Ondrej Smola16d66bd2017-01-15 13:56:03 +0100424
425 cinder:
426 controller:
427 enabled: true
428 backend:
429 hus100_backend:
430 type_name: HUS100
431 backend: hus100_backend
432 engine: hitachi_vsp
433 connection: FC
434 ldev_range: 0-1000
435
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300436* Cinder setup with Ceph:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200437
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300438 .. code-block:: yaml
Filip Pytlounda2a0792015-10-06 16:28:31 +0200439
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300440 cinder:
441 controller:
442 enabled: true
443 backend:
444 ceph_backend:
445 type_name: standard-iops
446 backend: ceph_backend
sgarbuz94de9292018-09-10 10:22:39 +0300447 backend_host: ceph
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300448 pool: volumes
449 engine: ceph
450 user: cinder
451 secret_uuid: da74ccb7-aa59-1721-a172-0006b1aa4e3e
452 client_cinder_key: AQDOavlU6BsSJhAAnpFR906mvdgdfRqLHwu0Uw==
453 report_discard_supported: True
stelucz9f4986c2018-08-30 09:46:55 +0200454 image_volume_cache_enabled: False
Filip Pytlounda2a0792015-10-06 16:28:31 +0200455
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300456 .. note:: `Ceph official documentation <http://ceph.com/docs/master/rbd/rbd-openstack/>`__
Filip Pytlounda2a0792015-10-06 16:28:31 +0200457
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300458* Cinder setup with HP3par:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200459
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300460 .. code-block:: yaml
Filip Pytlounda2a0792015-10-06 16:28:31 +0200461
462 cinder:
463 controller:
464 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100465 backend:
466 hp3par_backend:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100467 type_name: hp3par
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100468 backend: hp3par_backend
469 user: hp3paruser
470 password: something
471 url: http://10.10.10.10/api/v1
472 cpg: OpenStackCPG
473 host: 10.10.10.10
474 login: hp3paradmin
475 sanpassword: something
476 debug: True
477 snapcpg: OpenStackSNAPCPG
Filip Pytlounda2a0792015-10-06 16:28:31 +0200478
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300479* Cinder setup with Fujitsu Eternus:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200480
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300481 .. code-block:: yaml
Filip Pytlounda2a0792015-10-06 16:28:31 +0200482
483 cinder:
484 volume:
485 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100486 backend:
487 10kThinPro:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100488 type_name: 10kThinPro
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100489 engine: fujitsu
490 pool: 10kThinPro
491 host: 192.168.0.1
492 port: 5988
493 user: username
494 password: pass
495 connection: FC/iSCSI
marcodaa52fa2016-01-25 23:49:50 +0100496 name: 10kThinPro
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100497 10k_SAS:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100498 type_name: 10k_SAS
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100499 pool: SAS10K
500 engine: fujitsu
501 host: 192.168.0.1
502 port: 5988
503 user: username
504 password: pass
505 connection: FC/iSCSI
marcodaa52fa2016-01-25 23:49:50 +0100506 name: 10k_SAS
Filip Pytlounda2a0792015-10-06 16:28:31 +0200507
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300508* Cinder setup with IBM GPFS filesystem:
Jakub Pavlik9703c602015-10-15 18:52:47 +0200509
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300510 .. code-block:: yaml
Jakub Pavlik9703c602015-10-15 18:52:47 +0200511
512 cinder:
513 volume:
514 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100515 backend:
516 GPFS-GOLD:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100517 type_name: GPFS-GOLD
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100518 engine: gpfs
519 mount_point: '/mnt/gpfs-openstack/cinder/gold'
marcodaa52fa2016-01-25 23:49:50 +0100520 GPFS-SILVER:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100521 type_name: GPFS-SILVER
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100522 engine: gpfs
523 mount_point: '/mnt/gpfs-openstack/cinder/silver'
Kirill Bespalov01614c02017-07-31 17:06:09 +0300524
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300525* Cinder setup with HP LeftHand:
Jakub Pavlik9f5988a2016-01-11 13:44:57 +0100526
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300527 .. code-block:: yaml
Jakub Pavlik9f5988a2016-01-11 13:44:57 +0100528
529 cinder:
530 volume:
531 enabled: true
532 backend:
533 HP-LeftHand:
534 type_name: normal-storage
535 engine: hp_lefthand
536 api_url: 'https://10.10.10.10:8081/lhos'
537 username: user
538 password: password
539 clustername: cluster1
540 iscsi_chap_enabled: false
541
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300542* Extra parameters for HP LeftHand:
Jakub Pavlika63764f2016-01-11 14:41:06 +0100543
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300544 .. code-block:: yaml
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100545
Kirill Bespalov01614c02017-07-31 17:06:09 +0300546 cinder type-key normal-storage set hplh:data_pl=r-10-2 hplh:provisioning=full
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100547
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300548* Cinder setup with Solidfire:
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100549
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300550 .. code-block:: yaml
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100551
552 cinder:
553 volume:
554 enabled: true
555 backend:
556 solidfire:
557 type_name: normal-storage
558 engine: solidfire
559 san_ip: 10.10.10.10
560 san_login: user
561 san_password: password
562 clustername: cluster1
563 sf_emulate_512: false
sergio9e6387e2018-02-19 21:13:14 +0200564 sf_api_port: 14443
565 host: ctl01
Aleksieiev, Oleksii224e8ae2018-07-13 09:43:43 -0700566 #for compatibility with old versions
567 sf_account_prefix: PREFIX
Filip Pytlounda2a0792015-10-06 16:28:31 +0200568
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300569* Cinder setup with Block Device driver:
Alexander Noskov023a0032017-06-16 09:31:59 +0200570
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300571 .. code-block:: yaml
Alexander Noskov023a0032017-06-16 09:31:59 +0200572
573 cinder:
574 volume:
575 enabled: true
576 backend:
577 bdd:
578 engine: bdd
579 enabled: true
580 type_name: bdd
581 devices:
582 - sdb
583 - sdc
584 - sdd
585
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300586* Enable cinder-backup service for ceph
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100587
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300588 .. code-block:: yaml
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100589
Ondrej Smolaed6abbf2017-04-25 11:55:44 +0200590 cinder:
591 controller:
592 enabled: true
593 version: mitaka
594 backup:
595 engine: ceph
596 ceph_conf: "/etc/ceph/ceph.conf"
597 ceph_pool: backup
598 ceph_stripe_count: 0
599 ceph_stripe_unit: 0
600 ceph_user: cinder
601 ceph_chunk_size: 134217728
602 restore_discard_excess_bytes: false
603 volume:
604 enabled: true
605 version: mitaka
606 backup:
607 engine: ceph
608 ceph_conf: "/etc/ceph/ceph.conf"
609 ceph_pool: backup
610 ceph_stripe_count: 0
611 ceph_stripe_unit: 0
612 ceph_user: cinder
613 ceph_chunk_size: 134217728
614 restore_discard_excess_bytes: false
Kirill Bespalov01614c02017-07-31 17:06:09 +0300615
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300616* Auditing filter (CADF) enablement:
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100617
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300618 .. code-block:: yaml
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100619
620 cinder:
621 controller:
622 audit:
623 enabled: true
624 ....
625 filter_factory: 'keystonemiddleware.audit:filter_factory'
626 map_file: '/etc/pycadf/cinder_api_audit_map.conf'
627 ....
628 volume:
629 audit:
630 enabled: true
631 ....
632 filter_factory: 'keystonemiddleware.audit:filter_factory'
633 map_file: '/etc/pycadf/cinder_api_audit_map.conf'
634
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300635* Cinder setup with custom availability zones:
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100636
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300637 .. code-block:: yaml
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100638
639 cinder:
640 controller:
641 default_availability_zone: my-default-zone
642 storage_availability_zone: my-custom-zone-name
643 cinder:
644 volume:
645 default_availability_zone: my-default-zone
646 storage_availability_zone: my-custom-zone-name
647
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300648 The ``default_availability_zone`` is used when a volume has been created,
649 without specifying a zone in the ``create`` request as this zone must exist
650 in your configuration.
Andrii Ostapenkob7aa34d2017-04-20 14:22:44 +0300651
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300652 The ``storage_availability_zone`` is an actual zone where the node belongs to
653 and must be specified per each node.
Andrii Ostapenkob7aa34d2017-04-20 14:22:44 +0300654
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300655* Cinder setup with custom non-admin volume query filters:
656
657 .. code-block:: yaml
Andrii Ostapenkob7aa34d2017-04-20 14:22:44 +0300658
659 cinder:
660 controller:
661 query_volume_filters:
662 - name
663 - status
664 - metadata
665 - availability_zone
666 - bootable
667
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300668* ``public_endpoint`` and ``osapi_volume_base_url``:
Andrii Ostapenkob7aa34d2017-04-20 14:22:44 +0300669
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300670 * ``public_endpoint``
671 Used for configuring versions endpoint
672 * ``osapi_volume_base_URL``
673 Used to present Cinder URL to users
Alexander Noskov62496fb2017-02-27 16:42:54 +0100674
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300675 These parameters can be useful when running Cinder under load balancer in
676 SSL.
677
678 .. code-block:: yaml
Alexander Noskov62496fb2017-02-27 16:42:54 +0100679
680 cinder:
681 controller:
682 public_endpoint_address: https://${_param:cluster_domain}:8776
683
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300684* Client role definition:
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100685
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300686 .. code-block:: yaml
Jiri Broulik47aa6b32017-07-10 18:39:15 +0200687
688 cinder:
689 client:
690 enabled: true
691 identity:
692 host: 127.0.0.1
693 port: 35357
694 project: service
695 user: cinder
696 password: pwd
697 protocol: http
698 endpoint_type: internalURL
699 region_name: RegionOne
root08402652018-12-28 15:04:23 +0000700 connection_params:
701 connect_retries: 5
702 connect_retry_delay: 1
Jiri Broulik47aa6b32017-07-10 18:39:15 +0200703 backend:
704 ceph:
705 type_name: standard-iops
706 engine: ceph
707 key:
708 conn_speed: fibre-10G
709
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300710* Barbican integration enablement:
Oleg Iurchenko83ee09a2017-10-17 18:24:28 +0300711
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300712 .. code-block:: yaml
Oleg Iurchenko83ee09a2017-10-17 18:24:28 +0300713
714 cinder:
715 controller:
716 barbican:
717 enabled: true
Jiri Broulik47aa6b32017-07-10 18:39:15 +0200718
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300719* Keystone API version specification (v3 is default):
Oleg Iurchenko6fe8e5d2018-02-20 14:26:04 +0200720
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300721 .. code-block:: yaml
Oleg Iurchenko6fe8e5d2018-02-20 14:26:04 +0200722
723 cinder:
724 controller:
725 identity:
726 api_version: v2.0
727
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300728**Enhanced logging with logging.conf**
Dmitry Kalashnik3291f542017-12-05 18:43:47 +0400729
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300730By default ``logging.conf`` is disabled.
731You can enable per-binary ``logging.conf`` by setting the following
732parameters:
Dmitry Kalashnik3291f542017-12-05 18:43:47 +0400733
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300734* ``openstack_log_appender``
735 Set to ``true`` to enable ``log_config_append`` for all OpenStack
736 services
Dmitry Kalashnik3291f542017-12-05 18:43:47 +0400737
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300738* ``openstack_fluentd_handler_enabled``
739 Set to ``true`` to enable FluentHandler for all Openstack services
Dmitry Kalashnik3291f542017-12-05 18:43:47 +0400740
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300741* ``openstack_ossyslog_handler_enabled``
742 Set to ``true`` to enable OSSysLogHandler for all Openstack services
743
744Only WatchedFileHandler, OSSysLogHandler, and FluentHandler are available.
745
746To configure this functionality with pillar:
Dmitry Kalashnik3291f542017-12-05 18:43:47 +0400747
748.. code-block:: yaml
749
750 cinder:
751 controller:
752 logging:
753 log_appender: true
754 log_handlers:
755 watchedfile:
756 enabled: true
757 fluentd:
758 enabled: true
Oleksii Chupryn688ae092018-02-07 09:49:21 +0200759 ossyslog:
760 enabled: true
Dmitry Kalashnik3291f542017-12-05 18:43:47 +0400761
762 volume:
763 logging:
764 log_appender: true
765 log_handlers:
766 watchedfile:
767 enabled: true
768 fluentd:
769 enabled: true
Oleksii Chupryn688ae092018-02-07 09:49:21 +0200770 ossyslog:
771 enabled: true
Dmitry Kalashnik3291f542017-12-05 18:43:47 +0400772
Oleksandr Shyshkoe17f67a2018-08-22 15:26:17 +0300773Enable x509 and ssl communication between Cinder and Galera cluster.
774---------------------
775By default communication between Cinder and Galera is unsecure.
Jakub Pavlikb513f132016-05-20 11:11:19 +0200776
Oleksandr Shyshko9a8196c2018-09-07 13:51:20 +0300777cinder:
778 volume:
779 database:
780 x509:
781 enabled: True
782 controller:
783 database:
784 x509:
785 enabled: True
Oleksandr Shyshkoe17f67a2018-08-22 15:26:17 +0300786
Oleksandr Shyshko9a8196c2018-09-07 13:51:20 +0300787You able to set custom certificates in pillar:
Oleksandr Shyshkoe17f67a2018-08-22 15:26:17 +0300788
789cinder:
790 controller:
791 database:
792 x509:
Oleksandr Shyshko9a8196c2018-09-07 13:51:20 +0300793 cacert: (certificate content)
794 cert: (certificate content)
795 key: (certificate content)
Oleksandr Shyshkoe17f67a2018-08-22 15:26:17 +0300796 volume:
797 database:
798 x509:
Oleksandr Shyshko9a8196c2018-09-07 13:51:20 +0300799 cacert: (certificate content)
800 cert: (certificate content)
801 key: (certificate content)
Oleksandr Shyshkoe17f67a2018-08-22 15:26:17 +0300802
803You can read more about it here:
804 https://docs.openstack.org/security-guide/databases/database-access-control.html
805
Oleksandr Bryndzii8f9e3882018-09-28 23:08:56 +0000806Cinder services on compute node with memcached caching and security strategy:
807
808.. code-block:: yaml
809
810 cinder:
811 volume:
812 enabled: true
813 ...
814 cache:
815 engine: memcached
816 members:
817 - host: 127.0.0.1
818 port: 11211
819 - host: 127.0.0.1
820 port: 11211
821 security:
822 enabled: true
823 strategy: ENCRYPT
824 secret_key: secret
825
826Cinder services on controller node with memcached caching and security strategy:
827
828.. code-block:: yaml
829
830 cinder:
831 controller:
832 enabled: true
833 ...
834 cache:
835 engine: memcached
836 members:
837 - host: 127.0.0.1
838 port: 11211
839 - host: 127.0.0.1
840 port: 11211
841 security:
842 enabled: true
843 strategy: ENCRYPT
844 secret_key: secret
845
Oleksandr Shyshkof8446ed2019-02-01 13:02:34 +0000846Cinder service supports to define iscsi_helper for lvm backend.
rootbb607002019-01-30 17:17:34 +0000847=======
Oleksandr Shyshkof8446ed2019-02-01 13:02:34 +0000848
849.. code-block:: yaml
850
851 cinder:
852 volume:
853 ...
854 backend:
855 lvm:
856 ...
857 engine: lvm
858 iscsi_helper: tgtadm
859
860Cinder service supports to define scheduler_default_filters. Which filter class names
861to use for filtering hosts when not specified in the request.
862
863.. code-block:: yaml
864
865 cinder:
866 volume:
867 ...
868 scheduler_default_filters: (filters)
869
870 cinder:
871 controller:
872 ...
873 scheduler_default_filters: (filters)
rootbb607002019-01-30 17:17:34 +0000874=======
875
876* Cinder database connection setup:
877
878.. code-block:: yaml
879
880 cinder:
881 controller:
882 enabled: True
883 ...
884 database:
885 idle_timeout: 280
886 max_pool_size: 30
887 max_retries: '-1'
888 max_overflow: 40
889 volume:
890 enabled: True
891 ...
892 database:
893 idle_timeout: 280
894 max_pool_size: 30
895 max_retries: '-1'
896 max_overflow: 40
897
Oleksandr Bryndzii3beb0852019-02-27 16:44:01 +0200898Configure cinder to use service user tokens:
899========
900Long-running operations such as snapshot can sometimes overrun the expiry of the user token.
901In such cases, post operations such as cleaning up after a snapshot can fail when the
902cinder service needs to cleanup resources.
903
904This pillar enables cinder to use service user tokens to supplement the regular user token
905used to initiate the operation. The identity service (keystone) will then authenticate
906a request using the service user token if the user token has already expired.
907
908.. code-block:: yaml
909
910 cinder:
911 controller:
912 enabled: True
913 ...
914 service_user:
915 enabled: True
916 auth_type: password
917 user_domain_id: default
918 project_domain_id: default
919 project_name: service
920 username: cinder
921 password: pswd
Oleksandr Shyshkof8446ed2019-02-01 13:02:34 +0000922
Vasyl Saienko79ecd552018-09-10 10:31:21 +0000923Upgrades
924========
925
926Each openstack formula provide set of phases (logical bloks) that will help to
927build flexible upgrade orchestration logic for particular components. The list
928of phases and theirs descriptions are listed in table below:
929
930+-------------------------------+------------------------------------------------------+
931| State | Description |
932+===============================+======================================================+
933| <app>.upgrade.service_running | Ensure that all services for particular application |
934| | are enabled for autostart and running |
935+-------------------------------+------------------------------------------------------+
936| <app>.upgrade.service_stopped | Ensure that all services for particular application |
937| | disabled for autostart and dead |
938+-------------------------------+------------------------------------------------------+
939| <app>.upgrade.pkgs_latest | Ensure that packages used by particular application |
940| | are installed to latest available version. |
941| | This will not upgrade data plane packages like qemu |
942| | and openvswitch as usually minimal required version |
943| | in openstack services is really old. The data plane |
944| | packages should be upgraded separately by `apt-get |
945| | upgrade` or `apt-get dist-upgrade` |
946| | Applying this state will not autostart service. |
947+-------------------------------+------------------------------------------------------+
948| <app>.upgrade.render_config | Ensure configuration is rendered actual version. +
949+-------------------------------+------------------------------------------------------+
950| <app>.upgrade.pre | We assume this state is applied on all nodes in the |
951| | cloud before running upgrade. |
952| | Only non destructive actions will be applied during |
953| | this phase. Perform service built in service check |
954| | like (keystone-manage doctor and nova-status upgrade)|
955+-------------------------------+------------------------------------------------------+
956| <app>.upgrade.upgrade.pre | Mostly applicable for data plane nodes. During this |
957| | phase resources will be gracefully removed from |
958| | current node if it is allowed. Services for upgraded |
959| | application will be set to admin disabled state to |
960| | make sure node will not participate in resources |
961| | scheduling. For example on gtw nodes this will set |
962| | all agents to admin disable state and will move all |
963| | routers to other agents. |
964+-------------------------------+------------------------------------------------------+
965| <app>.upgrade.upgrade | This state will basically upgrade application on |
966| | particular target. Stop services, render |
967| | configuration, install new packages, run offline |
968| | dbsync (for ctl), start services. Data plane should |
969| | not be affected, only OpenStack python services. |
970+-------------------------------+------------------------------------------------------+
971| <app>.upgrade.upgrade.post | Add services back to scheduling. |
972+-------------------------------+------------------------------------------------------+
973| <app>.upgrade.post | This phase should be launched only when upgrade of |
974| | the cloud is completed. Cleanup temporary files, |
975| | perform other post upgrade tasks. |
976+-------------------------------+------------------------------------------------------+
977| <app>.upgrade.verify | Here we will do basic health checks (API CRUD |
978| | operations, verify do not have dead network |
979| | agents/compute services) |
980+-------------------------------+------------------------------------------------------+