blob: 35a5188d69dfe301d0dce120be79fdc47e424c15 [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
Oleksandr Pidrepnyi27e25fa2019-05-02 14:00:40 +030033 image_conversion_dir: /var/tmp/cinder/conversion
Filip Pytlounda2a0792015-10-06 16:28:31 +020034 database:
35 engine: mysql
36 host: 127.0.0.1
37 port: 3306
38 name: cinder
39 user: cinder
40 password: pwd
41 identity:
42 engine: keystone
43 host: 127.0.0.1
44 port: 35357
45 tenant: service
46 user: cinder
47 password: pwd
48 message_queue:
49 engine: rabbitmq
50 host: 127.0.0.1
51 port: 5672
52 user: openstack
53 password: pwd
54 virtual_host: '/openstack'
root08402652018-12-28 15:04:23 +000055 client:
56 connection_params:
57 connect_retries: 50
58 connect_retry_delay: 1
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010059 backend:
60 7k2_SAS:
61 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +010062 type_name: slow-disks
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010063 host: 192.168.0.1
64 port: 22
65 user: username
66 password: pass
67 connection: FC/iSCSI
68 multihost: true
69 multipath: true
70 pool: SAS7K2
Kirill Bespalov01614c02017-07-31 17:06:09 +030071 audit:
Petr Michaleca1c7ff12016-11-29 16:32:50 +010072 enabled: false
Simon Pasquier9089de42017-02-03 16:13:22 +010073 osapi_max_limit: 500
Oleg Iurchenko83ee09a2017-10-17 18:24:28 +030074 barbican:
75 enabled: true
Filip Pytlounda2a0792015-10-06 16:28:31 +020076
77 cinder:
78 volume:
79 enabled: true
80 version: juno
Dmitry Stremkovskiy9f4ac8b2017-07-11 09:48:46 +030081 cinder_uid: 304
82 cinder_gid: 304
Dmitry Stremkovskiyef4c7d02017-07-30 16:51:52 +030083 nas_secure_file_permissions: false
84 nas_secure_file_operations: false
Dmitry Stremkovskiya5dd7992017-07-30 19:54:23 +030085 cinder_internal_tenant_user_id: f46924c112a14c80ab0a24a613d95eef
86 cinder_internal_tenant_project_id: b7455b8974bb4064ad247c8f375eae6c
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010087 default_volume_type: 7k2SaS
Michael Polenchukf0d642e2018-07-27 09:55:14 +040088 enable_force_upload: true
89 my_ip: 192.168.0.254
Oleksandr Pidrepnyida465022019-04-26 18:44:05 +030090 image_conversion_dir: /var/tmp/cinder/conversion
Filip Pytlounda2a0792015-10-06 16:28:31 +020091 database:
92 engine: mysql
93 host: 127.0.0.1
94 port: 3306
95 name: cinder
96 user: cinder
97 password: pwd
98 identity:
99 engine: keystone
100 host: 127.0.0.1
101 port: 35357
102 tenant: service
103 user: cinder
104 password: pwd
105 message_queue:
106 engine: rabbitmq
107 host: 127.0.0.1
108 port: 5672
109 user: openstack
110 password: pwd
111 virtual_host: '/openstack'
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +0100112 backend:
113 7k2_SAS:
114 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100115 type_name: 7k2 SAS disk
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +0100116 host: 192.168.0.1
117 port: 22
118 user: username
119 password: pass
120 connection: FC/iSCSI
121 multihost: true
122 multipath: true
123 pool: SAS7K2
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100124 audit:
125 enabled: false
Oleg Iurchenko83ee09a2017-10-17 18:24:28 +0300126 barbican:
127 enabled: true
Ondrej Smola74af21b2017-04-28 12:30:24 +0200128
129
Vasyl Saienkoa5de7512018-07-12 17:28:36 +0300130Volume vmware related options:
131
132.. code-block:: yaml
133
134 cinder:
135 volume:
136 backend:
137 vmware:
138 engine: vmware
139 host_username: vmware
140 host_password: vmware
141 cluster_names: vmware_cluster01,vmware_cluster02
142
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300143* The CORS parameters enablement:
Vasyl Saienkoa5de7512018-07-12 17:28:36 +0300144
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300145 .. code-block:: yaml
Ondrej Smola74af21b2017-04-28 12:30:24 +0200146
147 cinder:
148 controller:
149 cors:
150 allowed_origin: https:localhost.local,http:localhost.local
151 expose_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
152 allow_methods: GET,PUT,POST,DELETE,PATCH
153 allow_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
154 allow_credentials: True
155 max_age: 86400
Jiri Konecny2dce35f2016-04-19 16:29:52 +0200156
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300157* The client-side RabbitMQ HA setup for the controller:
Jiri Konecny2dce35f2016-04-19 16:29:52 +0200158
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300159 .. code-block:: yaml
Jiri Konecny2dce35f2016-04-19 16:29:52 +0200160
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300161 cinder:
162 controller:
163 ....
164 message_queue:
165 engine: rabbitmq
166 members:
167 - host: 10.0.16.1
168 - host: 10.0.16.2
169 - host: 10.0.16.3
170 user: openstack
171 password: pwd
172 virtual_host: '/openstack'
173 ....
Jiri Konecny2dce35f2016-04-19 16:29:52 +0200174
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300175* The client-side RabbitMQ HA setup for the volume component
Jiri Konecny2dce35f2016-04-19 16:29:52 +0200176
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300177 .. code-block:: yaml
Jiri Konecny2dce35f2016-04-19 16:29:52 +0200178
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300179 cinder:
180 volume:
181 ....
182 message_queue:
183 engine: rabbitmq
184 members:
185 - host: 10.0.16.1
186 - host: 10.0.16.2
187 - host: 10.0.16.3
188 user: openstack
189 password: pwd
190 virtual_host: '/openstack'
191 ....
Filip Pytlounda2a0792015-10-06 16:28:31 +0200192
Kirill Bespalov01614c02017-07-31 17:06:09 +0300193
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300194* Configuring TLS communications.
Kirill Bespalov01614c02017-07-31 17:06:09 +0300195
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300196 .. note:: By default, system-wide installed CA certs are used.
197 Therefore, the ``cacert_file`` and ``cacert`` parameters are
198 optional.
Kirill Bespalov01614c02017-07-31 17:06:09 +0300199
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300200 * RabbitMQ TLS:
Kirill Bespalov1550d6c2017-11-21 12:55:33 +0300201
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300202 .. code-block:: yaml
Kirill Bespalov1550d6c2017-11-21 12:55:33 +0300203
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300204 cinder:
205 controller, volume:
206 message_queue:
207 port: 5671
208 ssl:
209 enabled: True
210 (optional) cacert: cert body if the cacert_file does not exists
211 (optional) cacert_file: /etc/openstack/rabbitmq-ca.pem
212 (optional) version: TLSv1_2
Kirill Bespalov01614c02017-07-31 17:06:09 +0300213
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300214 * MySQL TLS:
Kirill Bespalov01614c02017-07-31 17:06:09 +0300215
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300216 .. code-block:: yaml
Kirill Bespalov01614c02017-07-31 17:06:09 +0300217
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300218 cinder:
219 controller:
220 database:
221 ssl:
222 enabled: True
223 (optional) cacert: cert body if the cacert_file does not exists
224 (optional) cacert_file: /etc/openstack/mysql-ca.pem
Kirill Bespalov01614c02017-07-31 17:06:09 +0300225
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300226 * Openstack HTTPS API:
Kirill Bespalov01614c02017-07-31 17:06:09 +0300227
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300228 .. code-block:: yaml
Kirill Bespalov01614c02017-07-31 17:06:09 +0300229
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300230 cinder:
231 controller, volume:
232 identity:
233 protocol: https
234 (optional) cacert_file: /etc/openstack/proxy.pem
235 glance:
236 protocol: https
237 (optional) cacert_file: /etc/openstack/proxy.pem
Kirill Bespalov01614c02017-07-31 17:06:09 +0300238
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300239* Cinder setup with zeroing deleted volumes:
Kirill Bespalov01614c02017-07-31 17:06:09 +0300240
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300241 .. code-block:: yaml
Alexander Noskov62496fb2017-02-27 16:42:54 +0100242
Filip Pytlounda2a0792015-10-06 16:28:31 +0200243 cinder:
244 controller:
245 enabled: true
246 wipe_method: zero
247 ...
248
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300249* Cinder setup with shreding deleted volumes:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200250
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300251 .. code-block:: yaml
Filip Pytlounda2a0792015-10-06 16:28:31 +0200252
253 cinder:
254 controller:
255 enabled: true
256 wipe_method: shred
257 ...
258
Oleksandr Pidrepnyida465022019-04-26 18:44:05 +0300259* Configure directory used for temporary storage during image conversion:
260
261 .. code-block:: yaml
262
263 cinder:
Oleksandr Pidrepnyi27e25fa2019-05-02 14:00:40 +0300264 controller:
265 image_conversion_dir: /var/tmp/cinder/conversion
Oleksandr Pidrepnyida465022019-04-26 18:44:05 +0300266 volume:
267 image_conversion_dir: /var/tmp/cinder/conversion
268 ...
269
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300270* Configuration of ``policy.json`` file:
Dmitry Ukov56c29072017-05-04 16:48:29 +0400271
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300272 .. code-block:: yaml
Dmitry Ukov56c29072017-05-04 16:48:29 +0400273
274 cinder:
275 controller:
276 ....
277 policy:
278 'volume:delete': 'rule:admin_or_owner'
279 # Add key without value to remove line from policy.json
280 'volume:extend':
281
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300282* Default Cinder backend ``lvm_type`` setup:
sgarbuz0901ebe2018-06-13 17:16:16 +0300283
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300284 .. code-block:: yaml
sgarbuz0901ebe2018-06-13 17:16:16 +0300285
286 cinder:
287 volume:
288 enabled: true
289 backend:
290 # Type of LVM volumes to deploy; (default, thin, or auto). Auto defaults to thin if thin is supported.
291 lvm_type: auto
292
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300293* Default Cinder setup with iSCSI target:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200294
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300295 .. code-block:: yaml
Filip Pytlounda2a0792015-10-06 16:28:31 +0200296
297 cinder:
298 controller:
299 enabled: true
Jakub Pavlik3d437df2016-04-11 22:07:50 +0200300 version: mitaka
301 default_volume_type: lvmdriver-1
Filip Pytlounda2a0792015-10-06 16:28:31 +0200302 database:
303 engine: mysql
304 host: 127.0.0.1
305 port: 3306
306 name: cinder
307 user: cinder
308 password: pwd
309 identity:
310 engine: keystone
311 host: 127.0.0.1
312 port: 35357
313 tenant: service
314 user: cinder
315 password: pwd
316 message_queue:
317 engine: rabbitmq
318 host: 127.0.0.1
319 port: 5672
320 user: openstack
321 password: pwd
322 virtual_host: '/openstack'
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +0100323 backend:
Jakub Pavlik3d437df2016-04-11 22:07:50 +0200324 lvmdriver-1:
325 engine: lvm
326 type_name: lvmdriver-1
327 volume_group: cinder-volume
Filip Pytlounda2a0792015-10-06 16:28:31 +0200328
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300329* Cinder setup for IBM Storwize:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200330
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300331 .. code-block:: yaml
Filip Pytlounda2a0792015-10-06 16:28:31 +0200332
333 cinder:
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100334 volume:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200335 enabled: true
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100336 backend:
337 7k2_SAS:
338 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100339 type_name: 7k2 SAS disk
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100340 host: 192.168.0.1
341 port: 22
342 user: username
343 password: pass
344 connection: FC/iSCSI
345 multihost: true
346 multipath: true
347 pool: SAS7K2
348 10k_SAS:
349 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100350 type_name: 10k SAS disk
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100351 host: 192.168.0.1
352 port: 22
353 user: username
354 password: pass
355 connection: FC/iSCSI
356 multihost: true
357 multipath: true
358 pool: SAS10K
359 15k_SAS:
360 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100361 type_name: 15k SAS
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100362 host: 192.168.0.1
363 port: 22
364 user: username
365 password: pass
366 connection: FC/iSCSI
367 multihost: true
368 multipath: true
369 pool: SAS15K
Filip Pytlounda2a0792015-10-06 16:28:31 +0200370
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300371* Cinder setup with NFS:
Jiri Broulik88548db2017-03-31 12:21:37 +0200372
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300373 .. code-block:: yaml
Jiri Broulik88548db2017-03-31 12:21:37 +0200374
375 cinder:
376 controller:
377 enabled: true
378 default_volume_type: nfs-driver
379 backend:
380 nfs-driver:
381 engine: nfs
382 type_name: nfs-driver
383 volume_group: cinder-volume
384 path: /var/lib/cinder/nfs
385 devices:
386 - 172.16.10.110:/var/nfs/cinder
387 options: rw,sync
388
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300389* Cinder setup with NetApp:
Jiri Broulik88548db2017-03-31 12:21:37 +0200390
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300391 .. code-block:: yaml
Alexey Chekunovf916f0c2017-05-25 13:29:45 +0400392
393 cinder:
394 controller:
395 backend:
396 netapp:
397 engine: netapp
398 type_name: netapp
399 user: openstack
400 vserver: vm1
401 server_hostname: 172.18.2.3
402 password: password
403 storage_protocol: nfs
404 transport_type: https
405 lun_space_reservation: enabled
406 use_multipath_for_image_xfer: True
Dmitry Stremkouskiffa53c02017-09-15 19:47:21 +0300407 nas_secure_file_operations: false
408 nas_secure_file_permissions: false
Alexey Chekunovf916f0c2017-05-25 13:29:45 +0400409 devices:
410 - 172.18.1.2:/vol_1
411 - 172.18.1.2:/vol_2
412 - 172.18.1.2:/vol_3
413 - 172.18.1.2:/vol_4
Jakub Pavlik94dc0c92017-06-14 14:53:23 +0200414 linux:
415 system:
416 package:
417 nfs-common:
418 version: latest
Alexey Chekunovf916f0c2017-05-25 13:29:45 +0400419
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300420* Cinder setup with Hitachi VPS:
Alexey Chekunovf916f0c2017-05-25 13:29:45 +0400421
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300422 .. code-block:: yaml
Filip Pytlounda2a0792015-10-06 16:28:31 +0200423
424 cinder:
425 controller:
426 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100427 backend:
428 hus100_backend:
marcodaa52fa2016-01-25 23:49:50 +0100429 type_name: HUS100
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100430 backend: hus100_backend
431 engine: hitachi_vsp
432 connection: FC
Filip Pytlounda2a0792015-10-06 16:28:31 +0200433
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300434* Cinder setup with Hitachi VPS with defined ``ldev`` range:
Ondrej Smola16d66bd2017-01-15 13:56:03 +0100435
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300436 .. code-block:: yaml
Ondrej Smola16d66bd2017-01-15 13:56:03 +0100437
438 cinder:
439 controller:
440 enabled: true
441 backend:
442 hus100_backend:
443 type_name: HUS100
444 backend: hus100_backend
445 engine: hitachi_vsp
446 connection: FC
447 ldev_range: 0-1000
448
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300449* Cinder setup with Ceph:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200450
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300451 .. code-block:: yaml
Filip Pytlounda2a0792015-10-06 16:28:31 +0200452
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300453 cinder:
454 controller:
455 enabled: true
456 backend:
457 ceph_backend:
458 type_name: standard-iops
459 backend: ceph_backend
sgarbuz94de9292018-09-10 10:22:39 +0300460 backend_host: ceph
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300461 pool: volumes
462 engine: ceph
463 user: cinder
464 secret_uuid: da74ccb7-aa59-1721-a172-0006b1aa4e3e
465 client_cinder_key: AQDOavlU6BsSJhAAnpFR906mvdgdfRqLHwu0Uw==
466 report_discard_supported: True
stelucz9f4986c2018-08-30 09:46:55 +0200467 image_volume_cache_enabled: False
Filip Pytlounda2a0792015-10-06 16:28:31 +0200468
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300469 .. note:: `Ceph official documentation <http://ceph.com/docs/master/rbd/rbd-openstack/>`__
Filip Pytlounda2a0792015-10-06 16:28:31 +0200470
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300471* Cinder setup with HP3par:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200472
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300473 .. code-block:: yaml
Filip Pytlounda2a0792015-10-06 16:28:31 +0200474
475 cinder:
476 controller:
477 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100478 backend:
479 hp3par_backend:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100480 type_name: hp3par
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100481 backend: hp3par_backend
482 user: hp3paruser
483 password: something
484 url: http://10.10.10.10/api/v1
485 cpg: OpenStackCPG
486 host: 10.10.10.10
487 login: hp3paradmin
488 sanpassword: something
489 debug: True
490 snapcpg: OpenStackSNAPCPG
Filip Pytlounda2a0792015-10-06 16:28:31 +0200491
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300492* Cinder setup with Fujitsu Eternus:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200493
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300494 .. code-block:: yaml
Filip Pytlounda2a0792015-10-06 16:28:31 +0200495
496 cinder:
497 volume:
498 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100499 backend:
500 10kThinPro:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100501 type_name: 10kThinPro
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100502 engine: fujitsu
503 pool: 10kThinPro
504 host: 192.168.0.1
505 port: 5988
506 user: username
507 password: pass
508 connection: FC/iSCSI
marcodaa52fa2016-01-25 23:49:50 +0100509 name: 10kThinPro
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100510 10k_SAS:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100511 type_name: 10k_SAS
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100512 pool: SAS10K
513 engine: fujitsu
514 host: 192.168.0.1
515 port: 5988
516 user: username
517 password: pass
518 connection: FC/iSCSI
marcodaa52fa2016-01-25 23:49:50 +0100519 name: 10k_SAS
Filip Pytlounda2a0792015-10-06 16:28:31 +0200520
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300521* Cinder setup with IBM GPFS filesystem:
Jakub Pavlik9703c602015-10-15 18:52:47 +0200522
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300523 .. code-block:: yaml
Jakub Pavlik9703c602015-10-15 18:52:47 +0200524
525 cinder:
526 volume:
527 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100528 backend:
529 GPFS-GOLD:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100530 type_name: GPFS-GOLD
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100531 engine: gpfs
532 mount_point: '/mnt/gpfs-openstack/cinder/gold'
marcodaa52fa2016-01-25 23:49:50 +0100533 GPFS-SILVER:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100534 type_name: GPFS-SILVER
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100535 engine: gpfs
536 mount_point: '/mnt/gpfs-openstack/cinder/silver'
Kirill Bespalov01614c02017-07-31 17:06:09 +0300537
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300538* Cinder setup with HP LeftHand:
Jakub Pavlik9f5988a2016-01-11 13:44:57 +0100539
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300540 .. code-block:: yaml
Jakub Pavlik9f5988a2016-01-11 13:44:57 +0100541
542 cinder:
543 volume:
544 enabled: true
545 backend:
546 HP-LeftHand:
547 type_name: normal-storage
548 engine: hp_lefthand
549 api_url: 'https://10.10.10.10:8081/lhos'
550 username: user
551 password: password
552 clustername: cluster1
553 iscsi_chap_enabled: false
554
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300555* Extra parameters for HP LeftHand:
Jakub Pavlika63764f2016-01-11 14:41:06 +0100556
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300557 .. code-block:: yaml
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100558
Kirill Bespalov01614c02017-07-31 17:06:09 +0300559 cinder type-key normal-storage set hplh:data_pl=r-10-2 hplh:provisioning=full
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100560
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300561* Cinder setup with Solidfire:
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100562
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300563 .. code-block:: yaml
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100564
565 cinder:
566 volume:
567 enabled: true
568 backend:
569 solidfire:
570 type_name: normal-storage
571 engine: solidfire
572 san_ip: 10.10.10.10
573 san_login: user
574 san_password: password
575 clustername: cluster1
576 sf_emulate_512: false
sergio9e6387e2018-02-19 21:13:14 +0200577 sf_api_port: 14443
578 host: ctl01
Aleksieiev, Oleksii224e8ae2018-07-13 09:43:43 -0700579 #for compatibility with old versions
580 sf_account_prefix: PREFIX
Filip Pytlounda2a0792015-10-06 16:28:31 +0200581
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300582* Cinder setup with Block Device driver:
Alexander Noskov023a0032017-06-16 09:31:59 +0200583
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300584 .. code-block:: yaml
Alexander Noskov023a0032017-06-16 09:31:59 +0200585
586 cinder:
587 volume:
588 enabled: true
589 backend:
590 bdd:
591 engine: bdd
592 enabled: true
593 type_name: bdd
594 devices:
595 - sdb
596 - sdc
597 - sdd
598
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300599* Enable cinder-backup service for ceph
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100600
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300601 .. code-block:: yaml
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100602
Ondrej Smolaed6abbf2017-04-25 11:55:44 +0200603 cinder:
604 controller:
605 enabled: true
606 version: mitaka
607 backup:
608 engine: ceph
609 ceph_conf: "/etc/ceph/ceph.conf"
610 ceph_pool: backup
611 ceph_stripe_count: 0
612 ceph_stripe_unit: 0
613 ceph_user: cinder
614 ceph_chunk_size: 134217728
615 restore_discard_excess_bytes: false
616 volume:
617 enabled: true
618 version: mitaka
619 backup:
620 engine: ceph
621 ceph_conf: "/etc/ceph/ceph.conf"
622 ceph_pool: backup
623 ceph_stripe_count: 0
624 ceph_stripe_unit: 0
625 ceph_user: cinder
626 ceph_chunk_size: 134217728
627 restore_discard_excess_bytes: false
Kirill Bespalov01614c02017-07-31 17:06:09 +0300628
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300629* Auditing filter (CADF) enablement:
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100630
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300631 .. code-block:: yaml
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100632
633 cinder:
634 controller:
635 audit:
636 enabled: true
637 ....
638 filter_factory: 'keystonemiddleware.audit:filter_factory'
639 map_file: '/etc/pycadf/cinder_api_audit_map.conf'
640 ....
641 volume:
642 audit:
643 enabled: true
644 ....
645 filter_factory: 'keystonemiddleware.audit:filter_factory'
646 map_file: '/etc/pycadf/cinder_api_audit_map.conf'
647
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300648* Cinder setup with custom availability zones:
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100649
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300650 .. code-block:: yaml
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100651
652 cinder:
653 controller:
654 default_availability_zone: my-default-zone
655 storage_availability_zone: my-custom-zone-name
656 cinder:
657 volume:
658 default_availability_zone: my-default-zone
659 storage_availability_zone: my-custom-zone-name
660
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300661 The ``default_availability_zone`` is used when a volume has been created,
662 without specifying a zone in the ``create`` request as this zone must exist
663 in your configuration.
Andrii Ostapenkob7aa34d2017-04-20 14:22:44 +0300664
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300665 The ``storage_availability_zone`` is an actual zone where the node belongs to
666 and must be specified per each node.
Andrii Ostapenkob7aa34d2017-04-20 14:22:44 +0300667
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300668* Cinder setup with custom non-admin volume query filters:
669
670 .. code-block:: yaml
Andrii Ostapenkob7aa34d2017-04-20 14:22:44 +0300671
672 cinder:
673 controller:
674 query_volume_filters:
675 - name
676 - status
677 - metadata
678 - availability_zone
679 - bootable
680
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300681* ``public_endpoint`` and ``osapi_volume_base_url``:
Andrii Ostapenkob7aa34d2017-04-20 14:22:44 +0300682
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300683 * ``public_endpoint``
684 Used for configuring versions endpoint
685 * ``osapi_volume_base_URL``
686 Used to present Cinder URL to users
Alexander Noskov62496fb2017-02-27 16:42:54 +0100687
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300688 These parameters can be useful when running Cinder under load balancer in
689 SSL.
690
691 .. code-block:: yaml
Alexander Noskov62496fb2017-02-27 16:42:54 +0100692
693 cinder:
694 controller:
695 public_endpoint_address: https://${_param:cluster_domain}:8776
696
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300697* Client role definition:
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100698
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300699 .. code-block:: yaml
Jiri Broulik47aa6b32017-07-10 18:39:15 +0200700
701 cinder:
702 client:
703 enabled: true
704 identity:
705 host: 127.0.0.1
706 port: 35357
707 project: service
708 user: cinder
709 password: pwd
710 protocol: http
711 endpoint_type: internalURL
712 region_name: RegionOne
root08402652018-12-28 15:04:23 +0000713 connection_params:
714 connect_retries: 5
715 connect_retry_delay: 1
Jiri Broulik47aa6b32017-07-10 18:39:15 +0200716 backend:
717 ceph:
718 type_name: standard-iops
719 engine: ceph
720 key:
721 conn_speed: fibre-10G
722
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300723* Barbican integration enablement:
Oleg Iurchenko83ee09a2017-10-17 18:24:28 +0300724
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300725 .. code-block:: yaml
Oleg Iurchenko83ee09a2017-10-17 18:24:28 +0300726
727 cinder:
728 controller:
729 barbican:
730 enabled: true
Jiri Broulik47aa6b32017-07-10 18:39:15 +0200731
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300732* Keystone API version specification (v3 is default):
Oleg Iurchenko6fe8e5d2018-02-20 14:26:04 +0200733
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300734 .. code-block:: yaml
Oleg Iurchenko6fe8e5d2018-02-20 14:26:04 +0200735
736 cinder:
737 controller:
738 identity:
739 api_version: v2.0
740
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300741**Enhanced logging with logging.conf**
Dmitry Kalashnik3291f542017-12-05 18:43:47 +0400742
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300743By default ``logging.conf`` is disabled.
744You can enable per-binary ``logging.conf`` by setting the following
745parameters:
Dmitry Kalashnik3291f542017-12-05 18:43:47 +0400746
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300747* ``openstack_log_appender``
748 Set to ``true`` to enable ``log_config_append`` for all OpenStack
749 services
Dmitry Kalashnik3291f542017-12-05 18:43:47 +0400750
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300751* ``openstack_fluentd_handler_enabled``
752 Set to ``true`` to enable FluentHandler for all Openstack services
Dmitry Kalashnik3291f542017-12-05 18:43:47 +0400753
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300754* ``openstack_ossyslog_handler_enabled``
755 Set to ``true`` to enable OSSysLogHandler for all Openstack services
756
757Only WatchedFileHandler, OSSysLogHandler, and FluentHandler are available.
758
759To configure this functionality with pillar:
Dmitry Kalashnik3291f542017-12-05 18:43:47 +0400760
761.. code-block:: yaml
762
763 cinder:
764 controller:
765 logging:
766 log_appender: true
767 log_handlers:
768 watchedfile:
769 enabled: true
770 fluentd:
771 enabled: true
Oleksii Chupryn688ae092018-02-07 09:49:21 +0200772 ossyslog:
773 enabled: true
Dmitry Kalashnik3291f542017-12-05 18:43:47 +0400774
775 volume:
776 logging:
777 log_appender: true
778 log_handlers:
779 watchedfile:
780 enabled: true
781 fluentd:
782 enabled: true
Oleksii Chupryn688ae092018-02-07 09:49:21 +0200783 ossyslog:
784 enabled: true
Dmitry Kalashnik3291f542017-12-05 18:43:47 +0400785
Oleksandr Shyshkoe17f67a2018-08-22 15:26:17 +0300786Enable x509 and ssl communication between Cinder and Galera cluster.
787---------------------
788By default communication between Cinder and Galera is unsecure.
Jakub Pavlikb513f132016-05-20 11:11:19 +0200789
Oleksandr Shyshko9a8196c2018-09-07 13:51:20 +0300790cinder:
791 volume:
792 database:
793 x509:
794 enabled: True
795 controller:
796 database:
797 x509:
798 enabled: True
Oleksandr Shyshkoe17f67a2018-08-22 15:26:17 +0300799
Oleksandr Shyshko9a8196c2018-09-07 13:51:20 +0300800You able to set custom certificates in pillar:
Oleksandr Shyshkoe17f67a2018-08-22 15:26:17 +0300801
802cinder:
803 controller:
804 database:
805 x509:
Oleksandr Shyshko9a8196c2018-09-07 13:51:20 +0300806 cacert: (certificate content)
807 cert: (certificate content)
808 key: (certificate content)
Oleksandr Shyshkoe17f67a2018-08-22 15:26:17 +0300809 volume:
810 database:
811 x509:
Oleksandr Shyshko9a8196c2018-09-07 13:51:20 +0300812 cacert: (certificate content)
813 cert: (certificate content)
814 key: (certificate content)
Oleksandr Shyshkoe17f67a2018-08-22 15:26:17 +0300815
816You can read more about it here:
817 https://docs.openstack.org/security-guide/databases/database-access-control.html
818
Oleksandr Bryndzii8f9e3882018-09-28 23:08:56 +0000819Cinder services on compute node with memcached caching and security strategy:
820
821.. code-block:: yaml
822
823 cinder:
824 volume:
825 enabled: true
826 ...
827 cache:
828 engine: memcached
829 members:
830 - host: 127.0.0.1
831 port: 11211
832 - host: 127.0.0.1
833 port: 11211
834 security:
835 enabled: true
836 strategy: ENCRYPT
837 secret_key: secret
838
839Cinder services on controller node with memcached caching and security strategy:
840
841.. code-block:: yaml
842
843 cinder:
844 controller:
845 enabled: true
846 ...
847 cache:
848 engine: memcached
849 members:
850 - host: 127.0.0.1
851 port: 11211
852 - host: 127.0.0.1
853 port: 11211
854 security:
855 enabled: true
856 strategy: ENCRYPT
857 secret_key: secret
858
Oleksandr Shyshkof8446ed2019-02-01 13:02:34 +0000859Cinder service supports to define iscsi_helper for lvm backend.
rootbb607002019-01-30 17:17:34 +0000860=======
Oleksandr Shyshkof8446ed2019-02-01 13:02:34 +0000861
862.. code-block:: yaml
863
864 cinder:
865 volume:
866 ...
867 backend:
868 lvm:
869 ...
870 engine: lvm
871 iscsi_helper: tgtadm
872
873Cinder service supports to define scheduler_default_filters. Which filter class names
874to use for filtering hosts when not specified in the request.
875
876.. code-block:: yaml
877
878 cinder:
879 volume:
880 ...
881 scheduler_default_filters: (filters)
882
883 cinder:
884 controller:
885 ...
886 scheduler_default_filters: (filters)
rootbb607002019-01-30 17:17:34 +0000887=======
888
889* Cinder database connection setup:
890
891.. code-block:: yaml
892
893 cinder:
894 controller:
895 enabled: True
896 ...
897 database:
898 idle_timeout: 280
899 max_pool_size: 30
900 max_retries: '-1'
901 max_overflow: 40
902 volume:
903 enabled: True
904 ...
905 database:
906 idle_timeout: 280
907 max_pool_size: 30
908 max_retries: '-1'
909 max_overflow: 40
910
Oleksandr Bryndzii3beb0852019-02-27 16:44:01 +0200911Configure cinder to use service user tokens:
912========
913Long-running operations such as snapshot can sometimes overrun the expiry of the user token.
914In such cases, post operations such as cleaning up after a snapshot can fail when the
915cinder service needs to cleanup resources.
916
917This pillar enables cinder to use service user tokens to supplement the regular user token
918used to initiate the operation. The identity service (keystone) will then authenticate
919a request using the service user token if the user token has already expired.
920
921.. code-block:: yaml
922
923 cinder:
924 controller:
925 enabled: True
926 ...
927 service_user:
928 enabled: True
929 auth_type: password
930 user_domain_id: default
931 project_domain_id: default
932 project_name: service
933 username: cinder
934 password: pswd
Oleksandr Shyshkof8446ed2019-02-01 13:02:34 +0000935
Vasyl Saienko79ecd552018-09-10 10:31:21 +0000936Upgrades
937========
938
939Each openstack formula provide set of phases (logical bloks) that will help to
940build flexible upgrade orchestration logic for particular components. The list
941of phases and theirs descriptions are listed in table below:
942
943+-------------------------------+------------------------------------------------------+
944| State | Description |
945+===============================+======================================================+
946| <app>.upgrade.service_running | Ensure that all services for particular application |
947| | are enabled for autostart and running |
948+-------------------------------+------------------------------------------------------+
949| <app>.upgrade.service_stopped | Ensure that all services for particular application |
950| | disabled for autostart and dead |
951+-------------------------------+------------------------------------------------------+
952| <app>.upgrade.pkgs_latest | Ensure that packages used by particular application |
953| | are installed to latest available version. |
954| | This will not upgrade data plane packages like qemu |
955| | and openvswitch as usually minimal required version |
956| | in openstack services is really old. The data plane |
957| | packages should be upgraded separately by `apt-get |
958| | upgrade` or `apt-get dist-upgrade` |
959| | Applying this state will not autostart service. |
960+-------------------------------+------------------------------------------------------+
961| <app>.upgrade.render_config | Ensure configuration is rendered actual version. +
962+-------------------------------+------------------------------------------------------+
963| <app>.upgrade.pre | We assume this state is applied on all nodes in the |
964| | cloud before running upgrade. |
965| | Only non destructive actions will be applied during |
966| | this phase. Perform service built in service check |
967| | like (keystone-manage doctor and nova-status upgrade)|
968+-------------------------------+------------------------------------------------------+
969| <app>.upgrade.upgrade.pre | Mostly applicable for data plane nodes. During this |
970| | phase resources will be gracefully removed from |
971| | current node if it is allowed. Services for upgraded |
972| | application will be set to admin disabled state to |
973| | make sure node will not participate in resources |
974| | scheduling. For example on gtw nodes this will set |
975| | all agents to admin disable state and will move all |
976| | routers to other agents. |
977+-------------------------------+------------------------------------------------------+
978| <app>.upgrade.upgrade | This state will basically upgrade application on |
979| | particular target. Stop services, render |
980| | configuration, install new packages, run offline |
981| | dbsync (for ctl), start services. Data plane should |
982| | not be affected, only OpenStack python services. |
983+-------------------------------+------------------------------------------------------+
984| <app>.upgrade.upgrade.post | Add services back to scheduling. |
985+-------------------------------+------------------------------------------------------+
986| <app>.upgrade.post | This phase should be launched only when upgrade of |
987| | the cloud is completed. Cleanup temporary files, |
988| | perform other post upgrade tasks. |
989+-------------------------------+------------------------------------------------------+
990| <app>.upgrade.verify | Here we will do basic health checks (API CRUD |
991| | operations, verify do not have dead network |
992| | agents/compute services) |
993+-------------------------------+------------------------------------------------------+