blob: 2da3342dea33c434a4846fd090b57c37bed8a769 [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
Oleksandr Pidrepnyida465022019-04-26 18:44:05 +030089 image_conversion_dir: /var/tmp/cinder/conversion
Filip Pytlounda2a0792015-10-06 16:28:31 +020090 database:
91 engine: mysql
92 host: 127.0.0.1
93 port: 3306
94 name: cinder
95 user: cinder
96 password: pwd
97 identity:
98 engine: keystone
99 host: 127.0.0.1
100 port: 35357
101 tenant: service
102 user: cinder
103 password: pwd
104 message_queue:
105 engine: rabbitmq
106 host: 127.0.0.1
107 port: 5672
108 user: openstack
109 password: pwd
110 virtual_host: '/openstack'
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +0100111 backend:
112 7k2_SAS:
113 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100114 type_name: 7k2 SAS disk
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +0100115 host: 192.168.0.1
116 port: 22
117 user: username
118 password: pass
119 connection: FC/iSCSI
120 multihost: true
121 multipath: true
122 pool: SAS7K2
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100123 audit:
124 enabled: false
Oleg Iurchenko83ee09a2017-10-17 18:24:28 +0300125 barbican:
126 enabled: true
Ondrej Smola74af21b2017-04-28 12:30:24 +0200127
128
Vasyl Saienkoa5de7512018-07-12 17:28:36 +0300129Volume vmware related options:
130
131.. code-block:: yaml
132
133 cinder:
134 volume:
135 backend:
136 vmware:
137 engine: vmware
138 host_username: vmware
139 host_password: vmware
140 cluster_names: vmware_cluster01,vmware_cluster02
141
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300142* The CORS parameters enablement:
Vasyl Saienkoa5de7512018-07-12 17:28:36 +0300143
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300144 .. code-block:: yaml
Ondrej Smola74af21b2017-04-28 12:30:24 +0200145
146 cinder:
147 controller:
148 cors:
149 allowed_origin: https:localhost.local,http:localhost.local
150 expose_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
151 allow_methods: GET,PUT,POST,DELETE,PATCH
152 allow_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
153 allow_credentials: True
154 max_age: 86400
Jiri Konecny2dce35f2016-04-19 16:29:52 +0200155
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300156* The client-side RabbitMQ HA setup for the controller:
Jiri Konecny2dce35f2016-04-19 16:29:52 +0200157
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300158 .. code-block:: yaml
Jiri Konecny2dce35f2016-04-19 16:29:52 +0200159
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300160 cinder:
161 controller:
162 ....
163 message_queue:
164 engine: rabbitmq
165 members:
166 - host: 10.0.16.1
167 - host: 10.0.16.2
168 - host: 10.0.16.3
169 user: openstack
170 password: pwd
171 virtual_host: '/openstack'
172 ....
Jiri Konecny2dce35f2016-04-19 16:29:52 +0200173
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300174* The client-side RabbitMQ HA setup for the volume component
Jiri Konecny2dce35f2016-04-19 16:29:52 +0200175
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300176 .. code-block:: yaml
Jiri Konecny2dce35f2016-04-19 16:29:52 +0200177
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300178 cinder:
179 volume:
180 ....
181 message_queue:
182 engine: rabbitmq
183 members:
184 - host: 10.0.16.1
185 - host: 10.0.16.2
186 - host: 10.0.16.3
187 user: openstack
188 password: pwd
189 virtual_host: '/openstack'
190 ....
Filip Pytlounda2a0792015-10-06 16:28:31 +0200191
Kirill Bespalov01614c02017-07-31 17:06:09 +0300192
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300193* Configuring TLS communications.
Kirill Bespalov01614c02017-07-31 17:06:09 +0300194
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300195 .. note:: By default, system-wide installed CA certs are used.
196 Therefore, the ``cacert_file`` and ``cacert`` parameters are
197 optional.
Kirill Bespalov01614c02017-07-31 17:06:09 +0300198
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300199 * RabbitMQ TLS:
Kirill Bespalov1550d6c2017-11-21 12:55:33 +0300200
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300201 .. code-block:: yaml
Kirill Bespalov1550d6c2017-11-21 12:55:33 +0300202
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300203 cinder:
204 controller, volume:
205 message_queue:
206 port: 5671
207 ssl:
208 enabled: True
209 (optional) cacert: cert body if the cacert_file does not exists
210 (optional) cacert_file: /etc/openstack/rabbitmq-ca.pem
211 (optional) version: TLSv1_2
Kirill Bespalov01614c02017-07-31 17:06:09 +0300212
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300213 * MySQL TLS:
Kirill Bespalov01614c02017-07-31 17:06:09 +0300214
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300215 .. code-block:: yaml
Kirill Bespalov01614c02017-07-31 17:06:09 +0300216
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300217 cinder:
218 controller:
219 database:
220 ssl:
221 enabled: True
222 (optional) cacert: cert body if the cacert_file does not exists
223 (optional) cacert_file: /etc/openstack/mysql-ca.pem
Kirill Bespalov01614c02017-07-31 17:06:09 +0300224
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300225 * Openstack HTTPS API:
Kirill Bespalov01614c02017-07-31 17:06:09 +0300226
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300227 .. code-block:: yaml
Kirill Bespalov01614c02017-07-31 17:06:09 +0300228
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300229 cinder:
230 controller, volume:
231 identity:
232 protocol: https
233 (optional) cacert_file: /etc/openstack/proxy.pem
234 glance:
235 protocol: https
236 (optional) cacert_file: /etc/openstack/proxy.pem
Kirill Bespalov01614c02017-07-31 17:06:09 +0300237
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300238* Cinder setup with zeroing deleted volumes:
Kirill Bespalov01614c02017-07-31 17:06:09 +0300239
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300240 .. code-block:: yaml
Alexander Noskov62496fb2017-02-27 16:42:54 +0100241
Filip Pytlounda2a0792015-10-06 16:28:31 +0200242 cinder:
243 controller:
244 enabled: true
245 wipe_method: zero
246 ...
247
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300248* Cinder setup with shreding deleted volumes:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200249
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300250 .. code-block:: yaml
Filip Pytlounda2a0792015-10-06 16:28:31 +0200251
252 cinder:
253 controller:
254 enabled: true
255 wipe_method: shred
256 ...
257
Oleksandr Pidrepnyida465022019-04-26 18:44:05 +0300258* Configure directory used for temporary storage during image conversion:
259
260 .. code-block:: yaml
261
262 cinder:
263 volume:
264 image_conversion_dir: /var/tmp/cinder/conversion
265 ...
266
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300267* Configuration of ``policy.json`` file:
Dmitry Ukov56c29072017-05-04 16:48:29 +0400268
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300269 .. code-block:: yaml
Dmitry Ukov56c29072017-05-04 16:48:29 +0400270
271 cinder:
272 controller:
273 ....
274 policy:
275 'volume:delete': 'rule:admin_or_owner'
276 # Add key without value to remove line from policy.json
277 'volume:extend':
278
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300279* Default Cinder backend ``lvm_type`` setup:
sgarbuz0901ebe2018-06-13 17:16:16 +0300280
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300281 .. code-block:: yaml
sgarbuz0901ebe2018-06-13 17:16:16 +0300282
283 cinder:
284 volume:
285 enabled: true
286 backend:
287 # Type of LVM volumes to deploy; (default, thin, or auto). Auto defaults to thin if thin is supported.
288 lvm_type: auto
289
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300290* Default Cinder setup with iSCSI target:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200291
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300292 .. code-block:: yaml
Filip Pytlounda2a0792015-10-06 16:28:31 +0200293
294 cinder:
295 controller:
296 enabled: true
Jakub Pavlik3d437df2016-04-11 22:07:50 +0200297 version: mitaka
298 default_volume_type: lvmdriver-1
Filip Pytlounda2a0792015-10-06 16:28:31 +0200299 database:
300 engine: mysql
301 host: 127.0.0.1
302 port: 3306
303 name: cinder
304 user: cinder
305 password: pwd
306 identity:
307 engine: keystone
308 host: 127.0.0.1
309 port: 35357
310 tenant: service
311 user: cinder
312 password: pwd
313 message_queue:
314 engine: rabbitmq
315 host: 127.0.0.1
316 port: 5672
317 user: openstack
318 password: pwd
319 virtual_host: '/openstack'
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +0100320 backend:
Jakub Pavlik3d437df2016-04-11 22:07:50 +0200321 lvmdriver-1:
322 engine: lvm
323 type_name: lvmdriver-1
324 volume_group: cinder-volume
Filip Pytlounda2a0792015-10-06 16:28:31 +0200325
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300326* Cinder setup for IBM Storwize:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200327
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300328 .. code-block:: yaml
Filip Pytlounda2a0792015-10-06 16:28:31 +0200329
330 cinder:
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100331 volume:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200332 enabled: true
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100333 backend:
334 7k2_SAS:
335 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100336 type_name: 7k2 SAS disk
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100337 host: 192.168.0.1
338 port: 22
339 user: username
340 password: pass
341 connection: FC/iSCSI
342 multihost: true
343 multipath: true
344 pool: SAS7K2
345 10k_SAS:
346 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100347 type_name: 10k SAS disk
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100348 host: 192.168.0.1
349 port: 22
350 user: username
351 password: pass
352 connection: FC/iSCSI
353 multihost: true
354 multipath: true
355 pool: SAS10K
356 15k_SAS:
357 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100358 type_name: 15k SAS
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100359 host: 192.168.0.1
360 port: 22
361 user: username
362 password: pass
363 connection: FC/iSCSI
364 multihost: true
365 multipath: true
366 pool: SAS15K
Filip Pytlounda2a0792015-10-06 16:28:31 +0200367
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300368* Cinder setup with NFS:
Jiri Broulik88548db2017-03-31 12:21:37 +0200369
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300370 .. code-block:: yaml
Jiri Broulik88548db2017-03-31 12:21:37 +0200371
372 cinder:
373 controller:
374 enabled: true
375 default_volume_type: nfs-driver
376 backend:
377 nfs-driver:
378 engine: nfs
379 type_name: nfs-driver
380 volume_group: cinder-volume
381 path: /var/lib/cinder/nfs
382 devices:
383 - 172.16.10.110:/var/nfs/cinder
384 options: rw,sync
385
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300386* Cinder setup with NetApp:
Jiri Broulik88548db2017-03-31 12:21:37 +0200387
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300388 .. code-block:: yaml
Alexey Chekunovf916f0c2017-05-25 13:29:45 +0400389
390 cinder:
391 controller:
392 backend:
393 netapp:
394 engine: netapp
395 type_name: netapp
396 user: openstack
397 vserver: vm1
398 server_hostname: 172.18.2.3
399 password: password
400 storage_protocol: nfs
401 transport_type: https
402 lun_space_reservation: enabled
403 use_multipath_for_image_xfer: True
Dmitry Stremkouskiffa53c02017-09-15 19:47:21 +0300404 nas_secure_file_operations: false
405 nas_secure_file_permissions: false
Alexey Chekunovf916f0c2017-05-25 13:29:45 +0400406 devices:
407 - 172.18.1.2:/vol_1
408 - 172.18.1.2:/vol_2
409 - 172.18.1.2:/vol_3
410 - 172.18.1.2:/vol_4
Jakub Pavlik94dc0c92017-06-14 14:53:23 +0200411 linux:
412 system:
413 package:
414 nfs-common:
415 version: latest
Alexey Chekunovf916f0c2017-05-25 13:29:45 +0400416
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300417* Cinder setup with Hitachi VPS:
Alexey Chekunovf916f0c2017-05-25 13:29:45 +0400418
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300419 .. code-block:: yaml
Filip Pytlounda2a0792015-10-06 16:28:31 +0200420
421 cinder:
422 controller:
423 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100424 backend:
425 hus100_backend:
marcodaa52fa2016-01-25 23:49:50 +0100426 type_name: HUS100
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100427 backend: hus100_backend
428 engine: hitachi_vsp
429 connection: FC
Filip Pytlounda2a0792015-10-06 16:28:31 +0200430
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300431* Cinder setup with Hitachi VPS with defined ``ldev`` range:
Ondrej Smola16d66bd2017-01-15 13:56:03 +0100432
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300433 .. code-block:: yaml
Ondrej Smola16d66bd2017-01-15 13:56:03 +0100434
435 cinder:
436 controller:
437 enabled: true
438 backend:
439 hus100_backend:
440 type_name: HUS100
441 backend: hus100_backend
442 engine: hitachi_vsp
443 connection: FC
444 ldev_range: 0-1000
445
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300446* Cinder setup with Ceph:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200447
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300448 .. code-block:: yaml
Filip Pytlounda2a0792015-10-06 16:28:31 +0200449
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300450 cinder:
451 controller:
452 enabled: true
453 backend:
454 ceph_backend:
455 type_name: standard-iops
456 backend: ceph_backend
sgarbuz94de9292018-09-10 10:22:39 +0300457 backend_host: ceph
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300458 pool: volumes
459 engine: ceph
460 user: cinder
461 secret_uuid: da74ccb7-aa59-1721-a172-0006b1aa4e3e
462 client_cinder_key: AQDOavlU6BsSJhAAnpFR906mvdgdfRqLHwu0Uw==
463 report_discard_supported: True
stelucz9f4986c2018-08-30 09:46:55 +0200464 image_volume_cache_enabled: False
Filip Pytlounda2a0792015-10-06 16:28:31 +0200465
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300466 .. note:: `Ceph official documentation <http://ceph.com/docs/master/rbd/rbd-openstack/>`__
Filip Pytlounda2a0792015-10-06 16:28:31 +0200467
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300468* Cinder setup with HP3par:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200469
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300470 .. code-block:: yaml
Filip Pytlounda2a0792015-10-06 16:28:31 +0200471
472 cinder:
473 controller:
474 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100475 backend:
476 hp3par_backend:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100477 type_name: hp3par
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100478 backend: hp3par_backend
479 user: hp3paruser
480 password: something
481 url: http://10.10.10.10/api/v1
482 cpg: OpenStackCPG
483 host: 10.10.10.10
484 login: hp3paradmin
485 sanpassword: something
486 debug: True
487 snapcpg: OpenStackSNAPCPG
Filip Pytlounda2a0792015-10-06 16:28:31 +0200488
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300489* Cinder setup with Fujitsu Eternus:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200490
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300491 .. code-block:: yaml
Filip Pytlounda2a0792015-10-06 16:28:31 +0200492
493 cinder:
494 volume:
495 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100496 backend:
497 10kThinPro:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100498 type_name: 10kThinPro
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100499 engine: fujitsu
500 pool: 10kThinPro
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: 10kThinPro
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100507 10k_SAS:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100508 type_name: 10k_SAS
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100509 pool: SAS10K
510 engine: fujitsu
511 host: 192.168.0.1
512 port: 5988
513 user: username
514 password: pass
515 connection: FC/iSCSI
marcodaa52fa2016-01-25 23:49:50 +0100516 name: 10k_SAS
Filip Pytlounda2a0792015-10-06 16:28:31 +0200517
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300518* Cinder setup with IBM GPFS filesystem:
Jakub Pavlik9703c602015-10-15 18:52:47 +0200519
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300520 .. code-block:: yaml
Jakub Pavlik9703c602015-10-15 18:52:47 +0200521
522 cinder:
523 volume:
524 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100525 backend:
526 GPFS-GOLD:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100527 type_name: GPFS-GOLD
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100528 engine: gpfs
529 mount_point: '/mnt/gpfs-openstack/cinder/gold'
marcodaa52fa2016-01-25 23:49:50 +0100530 GPFS-SILVER:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100531 type_name: GPFS-SILVER
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100532 engine: gpfs
533 mount_point: '/mnt/gpfs-openstack/cinder/silver'
Kirill Bespalov01614c02017-07-31 17:06:09 +0300534
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300535* Cinder setup with HP LeftHand:
Jakub Pavlik9f5988a2016-01-11 13:44:57 +0100536
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300537 .. code-block:: yaml
Jakub Pavlik9f5988a2016-01-11 13:44:57 +0100538
539 cinder:
540 volume:
541 enabled: true
542 backend:
543 HP-LeftHand:
544 type_name: normal-storage
545 engine: hp_lefthand
546 api_url: 'https://10.10.10.10:8081/lhos'
547 username: user
548 password: password
549 clustername: cluster1
550 iscsi_chap_enabled: false
551
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300552* Extra parameters for HP LeftHand:
Jakub Pavlika63764f2016-01-11 14:41:06 +0100553
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300554 .. code-block:: yaml
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100555
Kirill Bespalov01614c02017-07-31 17:06:09 +0300556 cinder type-key normal-storage set hplh:data_pl=r-10-2 hplh:provisioning=full
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100557
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300558* Cinder setup with Solidfire:
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100559
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300560 .. code-block:: yaml
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100561
562 cinder:
563 volume:
564 enabled: true
565 backend:
566 solidfire:
567 type_name: normal-storage
568 engine: solidfire
569 san_ip: 10.10.10.10
570 san_login: user
571 san_password: password
572 clustername: cluster1
573 sf_emulate_512: false
sergio9e6387e2018-02-19 21:13:14 +0200574 sf_api_port: 14443
575 host: ctl01
Aleksieiev, Oleksii224e8ae2018-07-13 09:43:43 -0700576 #for compatibility with old versions
577 sf_account_prefix: PREFIX
Filip Pytlounda2a0792015-10-06 16:28:31 +0200578
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300579* Cinder setup with Block Device driver:
Alexander Noskov023a0032017-06-16 09:31:59 +0200580
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300581 .. code-block:: yaml
Alexander Noskov023a0032017-06-16 09:31:59 +0200582
583 cinder:
584 volume:
585 enabled: true
586 backend:
587 bdd:
588 engine: bdd
589 enabled: true
590 type_name: bdd
591 devices:
592 - sdb
593 - sdc
594 - sdd
595
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300596* Enable cinder-backup service for ceph
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100597
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300598 .. code-block:: yaml
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100599
Ondrej Smolaed6abbf2017-04-25 11:55:44 +0200600 cinder:
601 controller:
602 enabled: true
603 version: mitaka
604 backup:
605 engine: ceph
606 ceph_conf: "/etc/ceph/ceph.conf"
607 ceph_pool: backup
608 ceph_stripe_count: 0
609 ceph_stripe_unit: 0
610 ceph_user: cinder
611 ceph_chunk_size: 134217728
612 restore_discard_excess_bytes: false
613 volume:
614 enabled: true
615 version: mitaka
616 backup:
617 engine: ceph
618 ceph_conf: "/etc/ceph/ceph.conf"
619 ceph_pool: backup
620 ceph_stripe_count: 0
621 ceph_stripe_unit: 0
622 ceph_user: cinder
623 ceph_chunk_size: 134217728
624 restore_discard_excess_bytes: false
Kirill Bespalov01614c02017-07-31 17:06:09 +0300625
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300626* Auditing filter (CADF) enablement:
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100627
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300628 .. code-block:: yaml
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100629
630 cinder:
631 controller:
632 audit:
633 enabled: true
634 ....
635 filter_factory: 'keystonemiddleware.audit:filter_factory'
636 map_file: '/etc/pycadf/cinder_api_audit_map.conf'
637 ....
638 volume:
639 audit:
640 enabled: true
641 ....
642 filter_factory: 'keystonemiddleware.audit:filter_factory'
643 map_file: '/etc/pycadf/cinder_api_audit_map.conf'
644
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300645* Cinder setup with custom availability zones:
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100646
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300647 .. code-block:: yaml
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100648
649 cinder:
650 controller:
651 default_availability_zone: my-default-zone
652 storage_availability_zone: my-custom-zone-name
653 cinder:
654 volume:
655 default_availability_zone: my-default-zone
656 storage_availability_zone: my-custom-zone-name
657
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300658 The ``default_availability_zone`` is used when a volume has been created,
659 without specifying a zone in the ``create`` request as this zone must exist
660 in your configuration.
Andrii Ostapenkob7aa34d2017-04-20 14:22:44 +0300661
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300662 The ``storage_availability_zone`` is an actual zone where the node belongs to
663 and must be specified per each node.
Andrii Ostapenkob7aa34d2017-04-20 14:22:44 +0300664
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300665* Cinder setup with custom non-admin volume query filters:
666
667 .. code-block:: yaml
Andrii Ostapenkob7aa34d2017-04-20 14:22:44 +0300668
669 cinder:
670 controller:
671 query_volume_filters:
672 - name
673 - status
674 - metadata
675 - availability_zone
676 - bootable
677
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300678* ``public_endpoint`` and ``osapi_volume_base_url``:
Andrii Ostapenkob7aa34d2017-04-20 14:22:44 +0300679
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300680 * ``public_endpoint``
681 Used for configuring versions endpoint
682 * ``osapi_volume_base_URL``
683 Used to present Cinder URL to users
Alexander Noskov62496fb2017-02-27 16:42:54 +0100684
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300685 These parameters can be useful when running Cinder under load balancer in
686 SSL.
687
688 .. code-block:: yaml
Alexander Noskov62496fb2017-02-27 16:42:54 +0100689
690 cinder:
691 controller:
692 public_endpoint_address: https://${_param:cluster_domain}:8776
693
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300694* Client role definition:
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100695
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300696 .. code-block:: yaml
Jiri Broulik47aa6b32017-07-10 18:39:15 +0200697
698 cinder:
699 client:
700 enabled: true
701 identity:
702 host: 127.0.0.1
703 port: 35357
704 project: service
705 user: cinder
706 password: pwd
707 protocol: http
708 endpoint_type: internalURL
709 region_name: RegionOne
root08402652018-12-28 15:04:23 +0000710 connection_params:
711 connect_retries: 5
712 connect_retry_delay: 1
Jiri Broulik47aa6b32017-07-10 18:39:15 +0200713 backend:
714 ceph:
715 type_name: standard-iops
716 engine: ceph
717 key:
718 conn_speed: fibre-10G
719
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300720* Barbican integration enablement:
Oleg Iurchenko83ee09a2017-10-17 18:24:28 +0300721
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300722 .. code-block:: yaml
Oleg Iurchenko83ee09a2017-10-17 18:24:28 +0300723
724 cinder:
725 controller:
726 barbican:
727 enabled: true
Jiri Broulik47aa6b32017-07-10 18:39:15 +0200728
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300729* Keystone API version specification (v3 is default):
Oleg Iurchenko6fe8e5d2018-02-20 14:26:04 +0200730
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300731 .. code-block:: yaml
Oleg Iurchenko6fe8e5d2018-02-20 14:26:04 +0200732
733 cinder:
734 controller:
735 identity:
736 api_version: v2.0
737
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300738**Enhanced logging with logging.conf**
Dmitry Kalashnik3291f542017-12-05 18:43:47 +0400739
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300740By default ``logging.conf`` is disabled.
741You can enable per-binary ``logging.conf`` by setting the following
742parameters:
Dmitry Kalashnik3291f542017-12-05 18:43:47 +0400743
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300744* ``openstack_log_appender``
745 Set to ``true`` to enable ``log_config_append`` for all OpenStack
746 services
Dmitry Kalashnik3291f542017-12-05 18:43:47 +0400747
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300748* ``openstack_fluentd_handler_enabled``
749 Set to ``true`` to enable FluentHandler for all Openstack services
Dmitry Kalashnik3291f542017-12-05 18:43:47 +0400750
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300751* ``openstack_ossyslog_handler_enabled``
752 Set to ``true`` to enable OSSysLogHandler for all Openstack services
753
754Only WatchedFileHandler, OSSysLogHandler, and FluentHandler are available.
755
756To configure this functionality with pillar:
Dmitry Kalashnik3291f542017-12-05 18:43:47 +0400757
758.. code-block:: yaml
759
760 cinder:
761 controller:
762 logging:
763 log_appender: true
764 log_handlers:
765 watchedfile:
766 enabled: true
767 fluentd:
768 enabled: true
Oleksii Chupryn688ae092018-02-07 09:49:21 +0200769 ossyslog:
770 enabled: true
Dmitry Kalashnik3291f542017-12-05 18:43:47 +0400771
772 volume:
773 logging:
774 log_appender: true
775 log_handlers:
776 watchedfile:
777 enabled: true
778 fluentd:
779 enabled: true
Oleksii Chupryn688ae092018-02-07 09:49:21 +0200780 ossyslog:
781 enabled: true
Dmitry Kalashnik3291f542017-12-05 18:43:47 +0400782
Oleksandr Shyshkoe17f67a2018-08-22 15:26:17 +0300783Enable x509 and ssl communication between Cinder and Galera cluster.
784---------------------
785By default communication between Cinder and Galera is unsecure.
Jakub Pavlikb513f132016-05-20 11:11:19 +0200786
Oleksandr Shyshko9a8196c2018-09-07 13:51:20 +0300787cinder:
788 volume:
789 database:
790 x509:
791 enabled: True
792 controller:
793 database:
794 x509:
795 enabled: True
Oleksandr Shyshkoe17f67a2018-08-22 15:26:17 +0300796
Oleksandr Shyshko9a8196c2018-09-07 13:51:20 +0300797You able to set custom certificates in pillar:
Oleksandr Shyshkoe17f67a2018-08-22 15:26:17 +0300798
799cinder:
800 controller:
801 database:
802 x509:
Oleksandr Shyshko9a8196c2018-09-07 13:51:20 +0300803 cacert: (certificate content)
804 cert: (certificate content)
805 key: (certificate content)
Oleksandr Shyshkoe17f67a2018-08-22 15:26:17 +0300806 volume:
807 database:
808 x509:
Oleksandr Shyshko9a8196c2018-09-07 13:51:20 +0300809 cacert: (certificate content)
810 cert: (certificate content)
811 key: (certificate content)
Oleksandr Shyshkoe17f67a2018-08-22 15:26:17 +0300812
813You can read more about it here:
814 https://docs.openstack.org/security-guide/databases/database-access-control.html
815
Oleksandr Bryndzii8f9e3882018-09-28 23:08:56 +0000816Cinder services on compute node with memcached caching and security strategy:
817
818.. code-block:: yaml
819
820 cinder:
821 volume:
822 enabled: true
823 ...
824 cache:
825 engine: memcached
826 members:
827 - host: 127.0.0.1
828 port: 11211
829 - host: 127.0.0.1
830 port: 11211
831 security:
832 enabled: true
833 strategy: ENCRYPT
834 secret_key: secret
835
836Cinder services on controller node with memcached caching and security strategy:
837
838.. code-block:: yaml
839
840 cinder:
841 controller:
842 enabled: true
843 ...
844 cache:
845 engine: memcached
846 members:
847 - host: 127.0.0.1
848 port: 11211
849 - host: 127.0.0.1
850 port: 11211
851 security:
852 enabled: true
853 strategy: ENCRYPT
854 secret_key: secret
855
Oleksandr Shyshkof8446ed2019-02-01 13:02:34 +0000856Cinder service supports to define iscsi_helper for lvm backend.
rootbb607002019-01-30 17:17:34 +0000857=======
Oleksandr Shyshkof8446ed2019-02-01 13:02:34 +0000858
859.. code-block:: yaml
860
861 cinder:
862 volume:
863 ...
864 backend:
865 lvm:
866 ...
867 engine: lvm
868 iscsi_helper: tgtadm
869
870Cinder service supports to define scheduler_default_filters. Which filter class names
871to use for filtering hosts when not specified in the request.
872
873.. code-block:: yaml
874
875 cinder:
876 volume:
877 ...
878 scheduler_default_filters: (filters)
879
880 cinder:
881 controller:
882 ...
883 scheduler_default_filters: (filters)
rootbb607002019-01-30 17:17:34 +0000884=======
885
886* Cinder database connection setup:
887
888.. code-block:: yaml
889
890 cinder:
891 controller:
892 enabled: True
893 ...
894 database:
895 idle_timeout: 280
896 max_pool_size: 30
897 max_retries: '-1'
898 max_overflow: 40
899 volume:
900 enabled: True
901 ...
902 database:
903 idle_timeout: 280
904 max_pool_size: 30
905 max_retries: '-1'
906 max_overflow: 40
907
Oleksandr Bryndzii3beb0852019-02-27 16:44:01 +0200908Configure cinder to use service user tokens:
909========
910Long-running operations such as snapshot can sometimes overrun the expiry of the user token.
911In such cases, post operations such as cleaning up after a snapshot can fail when the
912cinder service needs to cleanup resources.
913
914This pillar enables cinder to use service user tokens to supplement the regular user token
915used to initiate the operation. The identity service (keystone) will then authenticate
916a request using the service user token if the user token has already expired.
917
918.. code-block:: yaml
919
920 cinder:
921 controller:
922 enabled: True
923 ...
924 service_user:
925 enabled: True
926 auth_type: password
927 user_domain_id: default
928 project_domain_id: default
929 project_name: service
930 username: cinder
931 password: pswd
Oleksandr Shyshkof8446ed2019-02-01 13:02:34 +0000932
Vasyl Saienko79ecd552018-09-10 10:31:21 +0000933Upgrades
934========
935
936Each openstack formula provide set of phases (logical bloks) that will help to
937build flexible upgrade orchestration logic for particular components. The list
938of phases and theirs descriptions are listed in table below:
939
940+-------------------------------+------------------------------------------------------+
941| State | Description |
942+===============================+======================================================+
943| <app>.upgrade.service_running | Ensure that all services for particular application |
944| | are enabled for autostart and running |
945+-------------------------------+------------------------------------------------------+
946| <app>.upgrade.service_stopped | Ensure that all services for particular application |
947| | disabled for autostart and dead |
948+-------------------------------+------------------------------------------------------+
949| <app>.upgrade.pkgs_latest | Ensure that packages used by particular application |
950| | are installed to latest available version. |
951| | This will not upgrade data plane packages like qemu |
952| | and openvswitch as usually minimal required version |
953| | in openstack services is really old. The data plane |
954| | packages should be upgraded separately by `apt-get |
955| | upgrade` or `apt-get dist-upgrade` |
956| | Applying this state will not autostart service. |
957+-------------------------------+------------------------------------------------------+
958| <app>.upgrade.render_config | Ensure configuration is rendered actual version. +
959+-------------------------------+------------------------------------------------------+
960| <app>.upgrade.pre | We assume this state is applied on all nodes in the |
961| | cloud before running upgrade. |
962| | Only non destructive actions will be applied during |
963| | this phase. Perform service built in service check |
964| | like (keystone-manage doctor and nova-status upgrade)|
965+-------------------------------+------------------------------------------------------+
966| <app>.upgrade.upgrade.pre | Mostly applicable for data plane nodes. During this |
967| | phase resources will be gracefully removed from |
968| | current node if it is allowed. Services for upgraded |
969| | application will be set to admin disabled state to |
970| | make sure node will not participate in resources |
971| | scheduling. For example on gtw nodes this will set |
972| | all agents to admin disable state and will move all |
973| | routers to other agents. |
974+-------------------------------+------------------------------------------------------+
975| <app>.upgrade.upgrade | This state will basically upgrade application on |
976| | particular target. Stop services, render |
977| | configuration, install new packages, run offline |
978| | dbsync (for ctl), start services. Data plane should |
979| | not be affected, only OpenStack python services. |
980+-------------------------------+------------------------------------------------------+
981| <app>.upgrade.upgrade.post | Add services back to scheduling. |
982+-------------------------------+------------------------------------------------------+
983| <app>.upgrade.post | This phase should be launched only when upgrade of |
984| | the cloud is completed. Cleanup temporary files, |
985| | perform other post upgrade tasks. |
986+-------------------------------+------------------------------------------------------+
987| <app>.upgrade.verify | Here we will do basic health checks (API CRUD |
988| | operations, verify do not have dead network |
989| | agents/compute services) |
990+-------------------------------+------------------------------------------------------+