blob: 30ab879fb2bfa154ad446fc85cc8b18a400b2400 [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'
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010054 backend:
55 7k2_SAS:
56 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +010057 type_name: slow-disks
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010058 host: 192.168.0.1
59 port: 22
60 user: username
61 password: pass
62 connection: FC/iSCSI
63 multihost: true
64 multipath: true
65 pool: SAS7K2
Kirill Bespalov01614c02017-07-31 17:06:09 +030066 audit:
Petr Michaleca1c7ff12016-11-29 16:32:50 +010067 enabled: false
Simon Pasquier9089de42017-02-03 16:13:22 +010068 osapi_max_limit: 500
Oleg Iurchenko83ee09a2017-10-17 18:24:28 +030069 barbican:
70 enabled: true
Filip Pytlounda2a0792015-10-06 16:28:31 +020071
72 cinder:
73 volume:
74 enabled: true
75 version: juno
Dmitry Stremkovskiy9f4ac8b2017-07-11 09:48:46 +030076 cinder_uid: 304
77 cinder_gid: 304
Dmitry Stremkovskiyef4c7d02017-07-30 16:51:52 +030078 nas_secure_file_permissions: false
79 nas_secure_file_operations: false
Dmitry Stremkovskiya5dd7992017-07-30 19:54:23 +030080 cinder_internal_tenant_user_id: f46924c112a14c80ab0a24a613d95eef
81 cinder_internal_tenant_project_id: b7455b8974bb4064ad247c8f375eae6c
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010082 default_volume_type: 7k2SaS
Michael Polenchukf0d642e2018-07-27 09:55:14 +040083 enable_force_upload: true
84 my_ip: 192.168.0.254
Filip Pytlounda2a0792015-10-06 16:28:31 +020085 database:
86 engine: mysql
87 host: 127.0.0.1
88 port: 3306
89 name: cinder
90 user: cinder
91 password: pwd
92 identity:
93 engine: keystone
94 host: 127.0.0.1
95 port: 35357
96 tenant: service
97 user: cinder
98 password: pwd
99 message_queue:
100 engine: rabbitmq
101 host: 127.0.0.1
102 port: 5672
103 user: openstack
104 password: pwd
105 virtual_host: '/openstack'
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +0100106 backend:
107 7k2_SAS:
108 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100109 type_name: 7k2 SAS disk
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +0100110 host: 192.168.0.1
111 port: 22
112 user: username
113 password: pass
114 connection: FC/iSCSI
115 multihost: true
116 multipath: true
117 pool: SAS7K2
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100118 audit:
119 enabled: false
Oleg Iurchenko83ee09a2017-10-17 18:24:28 +0300120 barbican:
121 enabled: true
Ondrej Smola74af21b2017-04-28 12:30:24 +0200122
123
Vasyl Saienkoa5de7512018-07-12 17:28:36 +0300124Volume vmware related options:
125
126.. code-block:: yaml
127
128 cinder:
129 volume:
130 backend:
131 vmware:
132 engine: vmware
133 host_username: vmware
134 host_password: vmware
135 cluster_names: vmware_cluster01,vmware_cluster02
136
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300137* The CORS parameters enablement:
Vasyl Saienkoa5de7512018-07-12 17:28:36 +0300138
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300139 .. code-block:: yaml
Ondrej Smola74af21b2017-04-28 12:30:24 +0200140
141 cinder:
142 controller:
143 cors:
144 allowed_origin: https:localhost.local,http:localhost.local
145 expose_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
146 allow_methods: GET,PUT,POST,DELETE,PATCH
147 allow_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
148 allow_credentials: True
149 max_age: 86400
Jiri Konecny2dce35f2016-04-19 16:29:52 +0200150
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300151* The client-side RabbitMQ HA setup for the controller:
Jiri Konecny2dce35f2016-04-19 16:29:52 +0200152
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300153 .. code-block:: yaml
Jiri Konecny2dce35f2016-04-19 16:29:52 +0200154
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300155 cinder:
156 controller:
157 ....
158 message_queue:
159 engine: rabbitmq
160 members:
161 - host: 10.0.16.1
162 - host: 10.0.16.2
163 - host: 10.0.16.3
164 user: openstack
165 password: pwd
166 virtual_host: '/openstack'
167 ....
Jiri Konecny2dce35f2016-04-19 16:29:52 +0200168
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300169* The client-side RabbitMQ HA setup for the volume component
Jiri Konecny2dce35f2016-04-19 16:29:52 +0200170
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300171 .. code-block:: yaml
Jiri Konecny2dce35f2016-04-19 16:29:52 +0200172
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300173 cinder:
174 volume:
175 ....
176 message_queue:
177 engine: rabbitmq
178 members:
179 - host: 10.0.16.1
180 - host: 10.0.16.2
181 - host: 10.0.16.3
182 user: openstack
183 password: pwd
184 virtual_host: '/openstack'
185 ....
Filip Pytlounda2a0792015-10-06 16:28:31 +0200186
Kirill Bespalov01614c02017-07-31 17:06:09 +0300187
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300188* Configuring TLS communications.
Kirill Bespalov01614c02017-07-31 17:06:09 +0300189
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300190 .. note:: By default, system-wide installed CA certs are used.
191 Therefore, the ``cacert_file`` and ``cacert`` parameters are
192 optional.
Kirill Bespalov01614c02017-07-31 17:06:09 +0300193
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300194 * RabbitMQ TLS:
Kirill Bespalov1550d6c2017-11-21 12:55:33 +0300195
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300196 .. code-block:: yaml
Kirill Bespalov1550d6c2017-11-21 12:55:33 +0300197
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300198 cinder:
199 controller, volume:
200 message_queue:
201 port: 5671
202 ssl:
203 enabled: True
204 (optional) cacert: cert body if the cacert_file does not exists
205 (optional) cacert_file: /etc/openstack/rabbitmq-ca.pem
206 (optional) version: TLSv1_2
Kirill Bespalov01614c02017-07-31 17:06:09 +0300207
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300208 * MySQL TLS:
Kirill Bespalov01614c02017-07-31 17:06:09 +0300209
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300210 .. code-block:: yaml
Kirill Bespalov01614c02017-07-31 17:06:09 +0300211
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300212 cinder:
213 controller:
214 database:
215 ssl:
216 enabled: True
217 (optional) cacert: cert body if the cacert_file does not exists
218 (optional) cacert_file: /etc/openstack/mysql-ca.pem
Kirill Bespalov01614c02017-07-31 17:06:09 +0300219
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300220 * Openstack HTTPS API:
Kirill Bespalov01614c02017-07-31 17:06:09 +0300221
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300222 .. code-block:: yaml
Kirill Bespalov01614c02017-07-31 17:06:09 +0300223
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300224 cinder:
225 controller, volume:
226 identity:
227 protocol: https
228 (optional) cacert_file: /etc/openstack/proxy.pem
229 glance:
230 protocol: https
231 (optional) cacert_file: /etc/openstack/proxy.pem
Kirill Bespalov01614c02017-07-31 17:06:09 +0300232
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300233* Cinder setup with zeroing deleted volumes:
Kirill Bespalov01614c02017-07-31 17:06:09 +0300234
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300235 .. code-block:: yaml
Alexander Noskov62496fb2017-02-27 16:42:54 +0100236
Filip Pytlounda2a0792015-10-06 16:28:31 +0200237 cinder:
238 controller:
239 enabled: true
240 wipe_method: zero
241 ...
242
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300243* Cinder setup with shreding deleted volumes:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200244
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300245 .. code-block:: yaml
Filip Pytlounda2a0792015-10-06 16:28:31 +0200246
247 cinder:
248 controller:
249 enabled: true
250 wipe_method: shred
251 ...
252
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300253* Configuration of ``policy.json`` file:
Dmitry Ukov56c29072017-05-04 16:48:29 +0400254
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300255 .. code-block:: yaml
Dmitry Ukov56c29072017-05-04 16:48:29 +0400256
257 cinder:
258 controller:
259 ....
260 policy:
261 'volume:delete': 'rule:admin_or_owner'
262 # Add key without value to remove line from policy.json
263 'volume:extend':
264
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300265* Default Cinder backend ``lvm_type`` setup:
sgarbuz0901ebe2018-06-13 17:16:16 +0300266
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300267 .. code-block:: yaml
sgarbuz0901ebe2018-06-13 17:16:16 +0300268
269 cinder:
270 volume:
271 enabled: true
272 backend:
273 # Type of LVM volumes to deploy; (default, thin, or auto). Auto defaults to thin if thin is supported.
274 lvm_type: auto
275
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300276* Default Cinder setup with iSCSI target:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200277
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300278 .. code-block:: yaml
Filip Pytlounda2a0792015-10-06 16:28:31 +0200279
280 cinder:
281 controller:
282 enabled: true
Jakub Pavlik3d437df2016-04-11 22:07:50 +0200283 version: mitaka
284 default_volume_type: lvmdriver-1
Filip Pytlounda2a0792015-10-06 16:28:31 +0200285 database:
286 engine: mysql
287 host: 127.0.0.1
288 port: 3306
289 name: cinder
290 user: cinder
291 password: pwd
292 identity:
293 engine: keystone
294 host: 127.0.0.1
295 port: 35357
296 tenant: service
297 user: cinder
298 password: pwd
299 message_queue:
300 engine: rabbitmq
301 host: 127.0.0.1
302 port: 5672
303 user: openstack
304 password: pwd
305 virtual_host: '/openstack'
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +0100306 backend:
Jakub Pavlik3d437df2016-04-11 22:07:50 +0200307 lvmdriver-1:
308 engine: lvm
309 type_name: lvmdriver-1
310 volume_group: cinder-volume
Filip Pytlounda2a0792015-10-06 16:28:31 +0200311
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300312* Cinder setup for IBM Storwize:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200313
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300314 .. code-block:: yaml
Filip Pytlounda2a0792015-10-06 16:28:31 +0200315
316 cinder:
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100317 volume:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200318 enabled: true
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100319 backend:
320 7k2_SAS:
321 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100322 type_name: 7k2 SAS disk
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100323 host: 192.168.0.1
324 port: 22
325 user: username
326 password: pass
327 connection: FC/iSCSI
328 multihost: true
329 multipath: true
330 pool: SAS7K2
331 10k_SAS:
332 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100333 type_name: 10k SAS disk
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100334 host: 192.168.0.1
335 port: 22
336 user: username
337 password: pass
338 connection: FC/iSCSI
339 multihost: true
340 multipath: true
341 pool: SAS10K
342 15k_SAS:
343 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100344 type_name: 15k SAS
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100345 host: 192.168.0.1
346 port: 22
347 user: username
348 password: pass
349 connection: FC/iSCSI
350 multihost: true
351 multipath: true
352 pool: SAS15K
Filip Pytlounda2a0792015-10-06 16:28:31 +0200353
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300354* Cinder setup with NFS:
Jiri Broulik88548db2017-03-31 12:21:37 +0200355
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300356 .. code-block:: yaml
Jiri Broulik88548db2017-03-31 12:21:37 +0200357
358 cinder:
359 controller:
360 enabled: true
361 default_volume_type: nfs-driver
362 backend:
363 nfs-driver:
364 engine: nfs
365 type_name: nfs-driver
366 volume_group: cinder-volume
367 path: /var/lib/cinder/nfs
368 devices:
369 - 172.16.10.110:/var/nfs/cinder
370 options: rw,sync
371
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300372* Cinder setup with NetApp:
Jiri Broulik88548db2017-03-31 12:21:37 +0200373
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300374 .. code-block:: yaml
Alexey Chekunovf916f0c2017-05-25 13:29:45 +0400375
376 cinder:
377 controller:
378 backend:
379 netapp:
380 engine: netapp
381 type_name: netapp
382 user: openstack
383 vserver: vm1
384 server_hostname: 172.18.2.3
385 password: password
386 storage_protocol: nfs
387 transport_type: https
388 lun_space_reservation: enabled
389 use_multipath_for_image_xfer: True
Dmitry Stremkouskiffa53c02017-09-15 19:47:21 +0300390 nas_secure_file_operations: false
391 nas_secure_file_permissions: false
Alexey Chekunovf916f0c2017-05-25 13:29:45 +0400392 devices:
393 - 172.18.1.2:/vol_1
394 - 172.18.1.2:/vol_2
395 - 172.18.1.2:/vol_3
396 - 172.18.1.2:/vol_4
Jakub Pavlik94dc0c92017-06-14 14:53:23 +0200397 linux:
398 system:
399 package:
400 nfs-common:
401 version: latest
Alexey Chekunovf916f0c2017-05-25 13:29:45 +0400402
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300403* Cinder setup with Hitachi VPS:
Alexey Chekunovf916f0c2017-05-25 13:29:45 +0400404
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300405 .. code-block:: yaml
Filip Pytlounda2a0792015-10-06 16:28:31 +0200406
407 cinder:
408 controller:
409 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100410 backend:
411 hus100_backend:
marcodaa52fa2016-01-25 23:49:50 +0100412 type_name: HUS100
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100413 backend: hus100_backend
414 engine: hitachi_vsp
415 connection: FC
Filip Pytlounda2a0792015-10-06 16:28:31 +0200416
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300417* Cinder setup with Hitachi VPS with defined ``ldev`` range:
Ondrej Smola16d66bd2017-01-15 13:56:03 +0100418
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300419 .. code-block:: yaml
Ondrej Smola16d66bd2017-01-15 13:56:03 +0100420
421 cinder:
422 controller:
423 enabled: true
424 backend:
425 hus100_backend:
426 type_name: HUS100
427 backend: hus100_backend
428 engine: hitachi_vsp
429 connection: FC
430 ldev_range: 0-1000
431
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300432* Cinder setup with Ceph:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200433
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300434 .. code-block:: yaml
Filip Pytlounda2a0792015-10-06 16:28:31 +0200435
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300436 cinder:
437 controller:
438 enabled: true
439 backend:
440 ceph_backend:
441 type_name: standard-iops
442 backend: ceph_backend
443 pool: volumes
444 engine: ceph
445 user: cinder
446 secret_uuid: da74ccb7-aa59-1721-a172-0006b1aa4e3e
447 client_cinder_key: AQDOavlU6BsSJhAAnpFR906mvdgdfRqLHwu0Uw==
448 report_discard_supported: True
stelucz9f4986c2018-08-30 09:46:55 +0200449 image_volume_cache_enabled: False
Filip Pytlounda2a0792015-10-06 16:28:31 +0200450
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300451 .. note:: `Ceph official documentation <http://ceph.com/docs/master/rbd/rbd-openstack/>`__
Filip Pytlounda2a0792015-10-06 16:28:31 +0200452
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300453* Cinder setup with HP3par:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200454
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300455 .. code-block:: yaml
Filip Pytlounda2a0792015-10-06 16:28:31 +0200456
457 cinder:
458 controller:
459 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100460 backend:
461 hp3par_backend:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100462 type_name: hp3par
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100463 backend: hp3par_backend
464 user: hp3paruser
465 password: something
466 url: http://10.10.10.10/api/v1
467 cpg: OpenStackCPG
468 host: 10.10.10.10
469 login: hp3paradmin
470 sanpassword: something
471 debug: True
472 snapcpg: OpenStackSNAPCPG
Filip Pytlounda2a0792015-10-06 16:28:31 +0200473
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300474* Cinder setup with Fujitsu Eternus:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200475
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300476 .. code-block:: yaml
Filip Pytlounda2a0792015-10-06 16:28:31 +0200477
478 cinder:
479 volume:
480 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100481 backend:
482 10kThinPro:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100483 type_name: 10kThinPro
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100484 engine: fujitsu
485 pool: 10kThinPro
486 host: 192.168.0.1
487 port: 5988
488 user: username
489 password: pass
490 connection: FC/iSCSI
marcodaa52fa2016-01-25 23:49:50 +0100491 name: 10kThinPro
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100492 10k_SAS:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100493 type_name: 10k_SAS
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100494 pool: SAS10K
495 engine: fujitsu
496 host: 192.168.0.1
497 port: 5988
498 user: username
499 password: pass
500 connection: FC/iSCSI
marcodaa52fa2016-01-25 23:49:50 +0100501 name: 10k_SAS
Filip Pytlounda2a0792015-10-06 16:28:31 +0200502
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300503* Cinder setup with IBM GPFS filesystem:
Jakub Pavlik9703c602015-10-15 18:52:47 +0200504
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300505 .. code-block:: yaml
Jakub Pavlik9703c602015-10-15 18:52:47 +0200506
507 cinder:
508 volume:
509 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100510 backend:
511 GPFS-GOLD:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100512 type_name: GPFS-GOLD
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100513 engine: gpfs
514 mount_point: '/mnt/gpfs-openstack/cinder/gold'
marcodaa52fa2016-01-25 23:49:50 +0100515 GPFS-SILVER:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100516 type_name: GPFS-SILVER
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100517 engine: gpfs
518 mount_point: '/mnt/gpfs-openstack/cinder/silver'
Kirill Bespalov01614c02017-07-31 17:06:09 +0300519
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300520* Cinder setup with HP LeftHand:
Jakub Pavlik9f5988a2016-01-11 13:44:57 +0100521
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300522 .. code-block:: yaml
Jakub Pavlik9f5988a2016-01-11 13:44:57 +0100523
524 cinder:
525 volume:
526 enabled: true
527 backend:
528 HP-LeftHand:
529 type_name: normal-storage
530 engine: hp_lefthand
531 api_url: 'https://10.10.10.10:8081/lhos'
532 username: user
533 password: password
534 clustername: cluster1
535 iscsi_chap_enabled: false
536
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300537* Extra parameters for HP LeftHand:
Jakub Pavlika63764f2016-01-11 14:41:06 +0100538
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300539 .. code-block:: yaml
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100540
Kirill Bespalov01614c02017-07-31 17:06:09 +0300541 cinder type-key normal-storage set hplh:data_pl=r-10-2 hplh:provisioning=full
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100542
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300543* Cinder setup with Solidfire:
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100544
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300545 .. code-block:: yaml
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100546
547 cinder:
548 volume:
549 enabled: true
550 backend:
551 solidfire:
552 type_name: normal-storage
553 engine: solidfire
554 san_ip: 10.10.10.10
555 san_login: user
556 san_password: password
557 clustername: cluster1
558 sf_emulate_512: false
sergio9e6387e2018-02-19 21:13:14 +0200559 sf_api_port: 14443
560 host: ctl01
Aleksieiev, Oleksii224e8ae2018-07-13 09:43:43 -0700561 #for compatibility with old versions
562 sf_account_prefix: PREFIX
Filip Pytlounda2a0792015-10-06 16:28:31 +0200563
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300564* Cinder setup with Block Device driver:
Alexander Noskov023a0032017-06-16 09:31:59 +0200565
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300566 .. code-block:: yaml
Alexander Noskov023a0032017-06-16 09:31:59 +0200567
568 cinder:
569 volume:
570 enabled: true
571 backend:
572 bdd:
573 engine: bdd
574 enabled: true
575 type_name: bdd
576 devices:
577 - sdb
578 - sdc
579 - sdd
580
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300581* Enable cinder-backup service for ceph
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100582
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300583 .. code-block:: yaml
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100584
Ondrej Smolaed6abbf2017-04-25 11:55:44 +0200585 cinder:
586 controller:
587 enabled: true
588 version: mitaka
589 backup:
590 engine: ceph
591 ceph_conf: "/etc/ceph/ceph.conf"
592 ceph_pool: backup
593 ceph_stripe_count: 0
594 ceph_stripe_unit: 0
595 ceph_user: cinder
596 ceph_chunk_size: 134217728
597 restore_discard_excess_bytes: false
598 volume:
599 enabled: true
600 version: mitaka
601 backup:
602 engine: ceph
603 ceph_conf: "/etc/ceph/ceph.conf"
604 ceph_pool: backup
605 ceph_stripe_count: 0
606 ceph_stripe_unit: 0
607 ceph_user: cinder
608 ceph_chunk_size: 134217728
609 restore_discard_excess_bytes: false
Kirill Bespalov01614c02017-07-31 17:06:09 +0300610
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300611* Auditing filter (CADF) enablement:
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100612
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300613 .. code-block:: yaml
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100614
615 cinder:
616 controller:
617 audit:
618 enabled: true
619 ....
620 filter_factory: 'keystonemiddleware.audit:filter_factory'
621 map_file: '/etc/pycadf/cinder_api_audit_map.conf'
622 ....
623 volume:
624 audit:
625 enabled: true
626 ....
627 filter_factory: 'keystonemiddleware.audit:filter_factory'
628 map_file: '/etc/pycadf/cinder_api_audit_map.conf'
629
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300630* Cinder setup with custom availability zones:
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100631
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300632 .. code-block:: yaml
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100633
634 cinder:
635 controller:
636 default_availability_zone: my-default-zone
637 storage_availability_zone: my-custom-zone-name
638 cinder:
639 volume:
640 default_availability_zone: my-default-zone
641 storage_availability_zone: my-custom-zone-name
642
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300643 The ``default_availability_zone`` is used when a volume has been created,
644 without specifying a zone in the ``create`` request as this zone must exist
645 in your configuration.
Andrii Ostapenkob7aa34d2017-04-20 14:22:44 +0300646
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300647 The ``storage_availability_zone`` is an actual zone where the node belongs to
648 and must be specified per each node.
Andrii Ostapenkob7aa34d2017-04-20 14:22:44 +0300649
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300650* Cinder setup with custom non-admin volume query filters:
651
652 .. code-block:: yaml
Andrii Ostapenkob7aa34d2017-04-20 14:22:44 +0300653
654 cinder:
655 controller:
656 query_volume_filters:
657 - name
658 - status
659 - metadata
660 - availability_zone
661 - bootable
662
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300663* ``public_endpoint`` and ``osapi_volume_base_url``:
Andrii Ostapenkob7aa34d2017-04-20 14:22:44 +0300664
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300665 * ``public_endpoint``
666 Used for configuring versions endpoint
667 * ``osapi_volume_base_URL``
668 Used to present Cinder URL to users
Alexander Noskov62496fb2017-02-27 16:42:54 +0100669
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300670 These parameters can be useful when running Cinder under load balancer in
671 SSL.
672
673 .. code-block:: yaml
Alexander Noskov62496fb2017-02-27 16:42:54 +0100674
675 cinder:
676 controller:
677 public_endpoint_address: https://${_param:cluster_domain}:8776
678
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300679* Client role definition:
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100680
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300681 .. code-block:: yaml
Jiri Broulik47aa6b32017-07-10 18:39:15 +0200682
683 cinder:
684 client:
685 enabled: true
686 identity:
687 host: 127.0.0.1
688 port: 35357
689 project: service
690 user: cinder
691 password: pwd
692 protocol: http
693 endpoint_type: internalURL
694 region_name: RegionOne
695 backend:
696 ceph:
697 type_name: standard-iops
698 engine: ceph
699 key:
700 conn_speed: fibre-10G
701
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300702* Barbican integration enablement:
Oleg Iurchenko83ee09a2017-10-17 18:24:28 +0300703
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300704 .. code-block:: yaml
Oleg Iurchenko83ee09a2017-10-17 18:24:28 +0300705
706 cinder:
707 controller:
708 barbican:
709 enabled: true
Jiri Broulik47aa6b32017-07-10 18:39:15 +0200710
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300711* Keystone API version specification (v3 is default):
Oleg Iurchenko6fe8e5d2018-02-20 14:26:04 +0200712
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300713 .. code-block:: yaml
Oleg Iurchenko6fe8e5d2018-02-20 14:26:04 +0200714
715 cinder:
716 controller:
717 identity:
718 api_version: v2.0
719
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300720**Enhanced logging with logging.conf**
Dmitry Kalashnik3291f542017-12-05 18:43:47 +0400721
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300722By default ``logging.conf`` is disabled.
723You can enable per-binary ``logging.conf`` by setting the following
724parameters:
Dmitry Kalashnik3291f542017-12-05 18:43:47 +0400725
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300726* ``openstack_log_appender``
727 Set to ``true`` to enable ``log_config_append`` for all OpenStack
728 services
Dmitry Kalashnik3291f542017-12-05 18:43:47 +0400729
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300730* ``openstack_fluentd_handler_enabled``
731 Set to ``true`` to enable FluentHandler for all Openstack services
Dmitry Kalashnik3291f542017-12-05 18:43:47 +0400732
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300733* ``openstack_ossyslog_handler_enabled``
734 Set to ``true`` to enable OSSysLogHandler for all Openstack services
735
736Only WatchedFileHandler, OSSysLogHandler, and FluentHandler are available.
737
738To configure this functionality with pillar:
Dmitry Kalashnik3291f542017-12-05 18:43:47 +0400739
740.. code-block:: yaml
741
742 cinder:
743 controller:
744 logging:
745 log_appender: true
746 log_handlers:
747 watchedfile:
748 enabled: true
749 fluentd:
750 enabled: true
Oleksii Chupryn688ae092018-02-07 09:49:21 +0200751 ossyslog:
752 enabled: true
Dmitry Kalashnik3291f542017-12-05 18:43:47 +0400753
754 volume:
755 logging:
756 log_appender: true
757 log_handlers:
758 watchedfile:
759 enabled: true
760 fluentd:
761 enabled: true
Oleksii Chupryn688ae092018-02-07 09:49:21 +0200762 ossyslog:
763 enabled: true
Dmitry Kalashnik3291f542017-12-05 18:43:47 +0400764
Oleksandr Shyshkoe17f67a2018-08-22 15:26:17 +0300765Enable x509 and ssl communication between Cinder and Galera cluster.
766---------------------
767By default communication between Cinder and Galera is unsecure.
Jakub Pavlikb513f132016-05-20 11:11:19 +0200768
Oleksandr Shyshkoe17f67a2018-08-22 15:26:17 +0300769You able to set custom certificates in pillar:
770controller:
771 database:
772 x509:
773 enabled: True
774
775volume:
776 database:
777 x509:
778 enabled: True
779
780cinder:
781 controller:
782 database:
783 x509:
784 cacert (certificate content)
785 cert (certificate content)
786 key (certificate content)
787 volume:
788 database:
789 x509:
790 cacert (certificate content)
791 cert (certificate content)
792 key (certificate content)
793
794You can read more about it here:
795 https://docs.openstack.org/security-guide/databases/database-access-control.html
796
Vasyl Saienko79ecd552018-09-10 10:31:21 +0000797Upgrades
798========
799
800Each openstack formula provide set of phases (logical bloks) that will help to
801build flexible upgrade orchestration logic for particular components. The list
802of phases and theirs descriptions are listed in table below:
803
804+-------------------------------+------------------------------------------------------+
805| State | Description |
806+===============================+======================================================+
807| <app>.upgrade.service_running | Ensure that all services for particular application |
808| | are enabled for autostart and running |
809+-------------------------------+------------------------------------------------------+
810| <app>.upgrade.service_stopped | Ensure that all services for particular application |
811| | disabled for autostart and dead |
812+-------------------------------+------------------------------------------------------+
813| <app>.upgrade.pkgs_latest | Ensure that packages used by particular application |
814| | are installed to latest available version. |
815| | This will not upgrade data plane packages like qemu |
816| | and openvswitch as usually minimal required version |
817| | in openstack services is really old. The data plane |
818| | packages should be upgraded separately by `apt-get |
819| | upgrade` or `apt-get dist-upgrade` |
820| | Applying this state will not autostart service. |
821+-------------------------------+------------------------------------------------------+
822| <app>.upgrade.render_config | Ensure configuration is rendered actual version. +
823+-------------------------------+------------------------------------------------------+
824| <app>.upgrade.pre | We assume this state is applied on all nodes in the |
825| | cloud before running upgrade. |
826| | Only non destructive actions will be applied during |
827| | this phase. Perform service built in service check |
828| | like (keystone-manage doctor and nova-status upgrade)|
829+-------------------------------+------------------------------------------------------+
830| <app>.upgrade.upgrade.pre | Mostly applicable for data plane nodes. During this |
831| | phase resources will be gracefully removed from |
832| | current node if it is allowed. Services for upgraded |
833| | application will be set to admin disabled state to |
834| | make sure node will not participate in resources |
835| | scheduling. For example on gtw nodes this will set |
836| | all agents to admin disable state and will move all |
837| | routers to other agents. |
838+-------------------------------+------------------------------------------------------+
839| <app>.upgrade.upgrade | This state will basically upgrade application on |
840| | particular target. Stop services, render |
841| | configuration, install new packages, run offline |
842| | dbsync (for ctl), start services. Data plane should |
843| | not be affected, only OpenStack python services. |
844+-------------------------------+------------------------------------------------------+
845| <app>.upgrade.upgrade.post | Add services back to scheduling. |
846+-------------------------------+------------------------------------------------------+
847| <app>.upgrade.post | This phase should be launched only when upgrade of |
848| | the cloud is completed. Cleanup temporary files, |
849| | perform other post upgrade tasks. |
850+-------------------------------+------------------------------------------------------+
851| <app>.upgrade.verify | Here we will do basic health checks (API CRUD |
852| | operations, verify do not have dead network |
853| | agents/compute services) |
854+-------------------------------+------------------------------------------------------+
855
856
Oleksandr Shyshkoe17f67a2018-08-22 15:26:17 +0300857**Documentation and bugs**
858======================
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300859* http://salt-formulas.readthedocs.io/
860 Learn how to install and update salt-formulas
Jakub Pavlikb513f132016-05-20 11:11:19 +0200861
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300862* https://github.com/salt-formulas/salt-formula-cinder/issues
863 In the unfortunate event that bugs are discovered, report the issue to the
864 appropriate issue tracker. Use the Github issue tracker for a specific salt
865 formula
Jakub Pavlikb513f132016-05-20 11:11:19 +0200866
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300867* https://launchpad.net/salt-formulas
868 For feature requests, bug reports, or blueprints affecting the entire
869 ecosystem, use the Launchpad salt-formulas project
Jakub Pavlikb513f132016-05-20 11:11:19 +0200870
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300871* https://launchpad.net/~salt-formulas-users
872 Join the salt-formulas-users team and subscribe to mailing list if required
Jakub Pavlikb513f132016-05-20 11:11:19 +0200873
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300874* https://github.com/salt-formulas/salt-formula-cinder
875 Develop the salt-formulas projects in the master branch and then submit pull
876 requests against a specific formula
Jakub Pavlikb513f132016-05-20 11:11:19 +0200877
OlgaGusarenko74b53f22018-06-28 17:35:48 +0300878* #salt-formulas @ irc.freenode.net
879 Use this IRC channel in case of any questions or feedback which is always
880 welcome