blob: 3296d861cdcda0d28dcc0f5a180f013d43bcac5a [file] [log] [blame]
Filip Pytlounda2a0792015-10-06 16:28:31 +02001==============================
2Openstack Cinder Block Storage
3==============================
4
Jakub Pavlikb513f132016-05-20 11:11:19 +02005Cinder provides an infrastructure for managing volumes in OpenStack. It was
6originally a Nova component called nova-volume, but has become an independent
7project since the Folsom release.
Filip Pytlounda2a0792015-10-06 16:28:31 +02008
9Sample pillars
10==============
11
Jakub Pavlikb513f132016-05-20 11:11:19 +020012New structure divides cinder-api,cinder-scheduler to role controller and
13cinder-volume to role volume.
Filip Pytlounda2a0792015-10-06 16:28:31 +020014
15.. code-block:: yaml
16
17 cinder:
18 controller:
19 enabled: true
20 version: juno
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010021 default_volume_type: 7k2SaS
Filip Pytlounda2a0792015-10-06 16:28:31 +020022 database:
23 engine: mysql
24 host: 127.0.0.1
25 port: 3306
26 name: cinder
27 user: cinder
28 password: pwd
29 identity:
30 engine: keystone
31 host: 127.0.0.1
32 port: 35357
33 tenant: service
34 user: cinder
35 password: pwd
36 message_queue:
37 engine: rabbitmq
38 host: 127.0.0.1
39 port: 5672
40 user: openstack
41 password: pwd
42 virtual_host: '/openstack'
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010043 backend:
44 7k2_SAS:
45 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +010046 type_name: slow-disks
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010047 host: 192.168.0.1
48 port: 22
49 user: username
50 password: pass
51 connection: FC/iSCSI
52 multihost: true
53 multipath: true
54 pool: SAS7K2
Petr Michaleca1c7ff12016-11-29 16:32:50 +010055 audit:
56 enabled: false
Simon Pasquier9089de42017-02-03 16:13:22 +010057 osapi_max_limit: 500
Filip Pytlounda2a0792015-10-06 16:28:31 +020058
59 cinder:
60 volume:
61 enabled: true
62 version: juno
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010063 default_volume_type: 7k2SaS
Filip Pytlounda2a0792015-10-06 16:28:31 +020064 database:
65 engine: mysql
66 host: 127.0.0.1
67 port: 3306
68 name: cinder
69 user: cinder
70 password: pwd
71 identity:
72 engine: keystone
73 host: 127.0.0.1
74 port: 35357
75 tenant: service
76 user: cinder
77 password: pwd
78 message_queue:
79 engine: rabbitmq
80 host: 127.0.0.1
81 port: 5672
82 user: openstack
83 password: pwd
84 virtual_host: '/openstack'
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010085 backend:
86 7k2_SAS:
87 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +010088 type_name: 7k2 SAS disk
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010089 host: 192.168.0.1
90 port: 22
91 user: username
92 password: pass
93 connection: FC/iSCSI
94 multihost: true
95 multipath: true
96 pool: SAS7K2
Petr Michaleca1c7ff12016-11-29 16:32:50 +010097 audit:
98 enabled: false
Ondrej Smola74af21b2017-04-28 12:30:24 +020099
100
101Enable CORS parameters
102
103.. code-block:: yaml
104
105 cinder:
106 controller:
107 cors:
108 allowed_origin: https:localhost.local,http:localhost.local
109 expose_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
110 allow_methods: GET,PUT,POST,DELETE,PATCH
111 allow_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
112 allow_credentials: True
113 max_age: 86400
Jiri Konecny2dce35f2016-04-19 16:29:52 +0200114
115Client-side RabbitMQ HA setup for controller
116
117.. code-block:: yaml
118
119 cinder:
120 controller:
121 ....
122 message_queue:
123 engine: rabbitmq
124 members:
125 - host: 10.0.16.1
126 - host: 10.0.16.2
127 - host: 10.0.16.3
128 user: openstack
129 password: pwd
130 virtual_host: '/openstack'
131 ....
132
133Client-side RabbitMQ HA setup for volume component
134
135.. code-block:: yaml
136
137 cinder:
138 volume:
139 ....
140 message_queue:
141 engine: rabbitmq
142 members:
143 - host: 10.0.16.1
144 - host: 10.0.16.2
145 - host: 10.0.16.3
146 user: openstack
147 password: pwd
148 virtual_host: '/openstack'
149 ....
Filip Pytlounda2a0792015-10-06 16:28:31 +0200150
151Cinder setup with zeroing deleted volumes
152
Alexander Noskov62496fb2017-02-27 16:42:54 +0100153.. code-block:: yaml
154
Filip Pytlounda2a0792015-10-06 16:28:31 +0200155 cinder:
156 controller:
157 enabled: true
158 wipe_method: zero
159 ...
160
161Cinder setup with shreding deleted volumes
162
163.. code-block:: yaml
164
165 cinder:
166 controller:
167 enabled: true
168 wipe_method: shred
169 ...
170
171
172Default Cinder setup with iSCSI target
173
174.. code-block:: yaml
175
176 cinder:
177 controller:
178 enabled: true
Jakub Pavlik3d437df2016-04-11 22:07:50 +0200179 version: mitaka
180 default_volume_type: lvmdriver-1
Filip Pytlounda2a0792015-10-06 16:28:31 +0200181 database:
182 engine: mysql
183 host: 127.0.0.1
184 port: 3306
185 name: cinder
186 user: cinder
187 password: pwd
188 identity:
189 engine: keystone
190 host: 127.0.0.1
191 port: 35357
192 tenant: service
193 user: cinder
194 password: pwd
195 message_queue:
196 engine: rabbitmq
197 host: 127.0.0.1
198 port: 5672
199 user: openstack
200 password: pwd
201 virtual_host: '/openstack'
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +0100202 backend:
Jakub Pavlik3d437df2016-04-11 22:07:50 +0200203 lvmdriver-1:
204 engine: lvm
205 type_name: lvmdriver-1
206 volume_group: cinder-volume
Filip Pytlounda2a0792015-10-06 16:28:31 +0200207
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100208Cinder setup for IBM Storwize
Filip Pytlounda2a0792015-10-06 16:28:31 +0200209
210.. code-block:: yaml
211
212 cinder:
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100213 volume:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200214 enabled: true
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100215 backend:
216 7k2_SAS:
217 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100218 type_name: 7k2 SAS disk
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100219 host: 192.168.0.1
220 port: 22
221 user: username
222 password: pass
223 connection: FC/iSCSI
224 multihost: true
225 multipath: true
226 pool: SAS7K2
227 10k_SAS:
228 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100229 type_name: 10k SAS disk
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100230 host: 192.168.0.1
231 port: 22
232 user: username
233 password: pass
234 connection: FC/iSCSI
235 multihost: true
236 multipath: true
237 pool: SAS10K
238 15k_SAS:
239 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100240 type_name: 15k SAS
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100241 host: 192.168.0.1
242 port: 22
243 user: username
244 password: pass
245 connection: FC/iSCSI
246 multihost: true
247 multipath: true
248 pool: SAS15K
Filip Pytlounda2a0792015-10-06 16:28:31 +0200249
Jiri Broulik88548db2017-03-31 12:21:37 +0200250
251Cinder setup with NFS
252
253.. code-block:: yaml
254
255 cinder:
256 controller:
257 enabled: true
258 default_volume_type: nfs-driver
259 backend:
260 nfs-driver:
261 engine: nfs
262 type_name: nfs-driver
263 volume_group: cinder-volume
264 path: /var/lib/cinder/nfs
265 devices:
266 - 172.16.10.110:/var/nfs/cinder
267 options: rw,sync
268
269
Filip Pytlounda2a0792015-10-06 16:28:31 +0200270Cinder setup with Hitachi VPS
271
272.. code-block:: yaml
273
274 cinder:
275 controller:
276 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100277 backend:
278 hus100_backend:
marcodaa52fa2016-01-25 23:49:50 +0100279 type_name: HUS100
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100280 backend: hus100_backend
281 engine: hitachi_vsp
282 connection: FC
Filip Pytlounda2a0792015-10-06 16:28:31 +0200283
Ondrej Smola16d66bd2017-01-15 13:56:03 +0100284Cinder setup with Hitachi VPS with defined ldev range
285
286.. code-block:: yaml
287
288 cinder:
289 controller:
290 enabled: true
291 backend:
292 hus100_backend:
293 type_name: HUS100
294 backend: hus100_backend
295 engine: hitachi_vsp
296 connection: FC
297 ldev_range: 0-1000
298
Filip Pytlounda2a0792015-10-06 16:28:31 +0200299Cinder setup with CEPH
300
301.. code-block:: yaml
302
303 cinder:
304 controller:
305 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100306 backend:
307 ceph_backend:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100308 type_name: standard-iops
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100309 backend: ceph_backend
310 pool: volumes
311 engine: ceph
312 user: cinder
313 secret_uuid: da74ccb7-aa59-1721-a172-0006b1aa4e3e
314 client_cinder_key: AQDOavlU6BsSJhAAnpFR906mvdgdfRqLHwu0Uw==
Filip Pytlounda2a0792015-10-06 16:28:31 +0200315
316http://ceph.com/docs/master/rbd/rbd-openstack/
317
318
319Cinder setup with HP3par
320
321.. code-block:: yaml
322
323 cinder:
324 controller:
325 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100326 backend:
327 hp3par_backend:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100328 type_name: hp3par
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100329 backend: hp3par_backend
330 user: hp3paruser
331 password: something
332 url: http://10.10.10.10/api/v1
333 cpg: OpenStackCPG
334 host: 10.10.10.10
335 login: hp3paradmin
336 sanpassword: something
337 debug: True
338 snapcpg: OpenStackSNAPCPG
Filip Pytlounda2a0792015-10-06 16:28:31 +0200339
340Cinder setup with Fujitsu Eternus
341
342.. code-block:: yaml
343
344 cinder:
345 volume:
346 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100347 backend:
348 10kThinPro:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100349 type_name: 10kThinPro
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100350 engine: fujitsu
351 pool: 10kThinPro
352 host: 192.168.0.1
353 port: 5988
354 user: username
355 password: pass
356 connection: FC/iSCSI
marcodaa52fa2016-01-25 23:49:50 +0100357 name: 10kThinPro
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100358 10k_SAS:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100359 type_name: 10k_SAS
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100360 pool: SAS10K
361 engine: fujitsu
362 host: 192.168.0.1
363 port: 5988
364 user: username
365 password: pass
366 connection: FC/iSCSI
marcodaa52fa2016-01-25 23:49:50 +0100367 name: 10k_SAS
Filip Pytlounda2a0792015-10-06 16:28:31 +0200368
Jakub Pavlik9703c602015-10-15 18:52:47 +0200369Cinder setup with IBM GPFS filesystem
370
371.. code-block:: yaml
372
373 cinder:
374 volume:
375 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100376 backend:
377 GPFS-GOLD:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100378 type_name: GPFS-GOLD
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100379 engine: gpfs
380 mount_point: '/mnt/gpfs-openstack/cinder/gold'
marcodaa52fa2016-01-25 23:49:50 +0100381 GPFS-SILVER:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100382 type_name: GPFS-SILVER
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100383 engine: gpfs
384 mount_point: '/mnt/gpfs-openstack/cinder/silver'
Jakub Pavlik9f5988a2016-01-11 13:44:57 +0100385
386Cinder setup with HP LeftHand
387
388.. code-block:: yaml
389
390 cinder:
391 volume:
392 enabled: true
393 backend:
394 HP-LeftHand:
395 type_name: normal-storage
396 engine: hp_lefthand
397 api_url: 'https://10.10.10.10:8081/lhos'
398 username: user
399 password: password
400 clustername: cluster1
401 iscsi_chap_enabled: false
402
Jakub Pavlika63764f2016-01-11 14:41:06 +0100403Extra parameters for HP LeftHand
Jakub Pavlika63764f2016-01-11 14:41:06 +0100404
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100405.. code-block:: yaml
406
407 cinder type-key normal-storage set hplh:data_pl=r-10-2 hplh:provisioning=full
408
marcodaa52fa2016-01-25 23:49:50 +0100409Cinder setup with Solidfire
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100410
411.. code-block:: yaml
412
413 cinder:
414 volume:
415 enabled: true
416 backend:
417 solidfire:
418 type_name: normal-storage
419 engine: solidfire
420 san_ip: 10.10.10.10
421 san_login: user
422 san_password: password
423 clustername: cluster1
424 sf_emulate_512: false
Filip Pytlounda2a0792015-10-06 16:28:31 +0200425
Ondrej Smolaed6abbf2017-04-25 11:55:44 +0200426Enable cinder-backup service for ceph
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100427
Ondrej Smolaed6abbf2017-04-25 11:55:44 +0200428.. code-block:: yaml
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100429
Ondrej Smolaed6abbf2017-04-25 11:55:44 +0200430 cinder:
431 controller:
432 enabled: true
433 version: mitaka
434 backup:
435 engine: ceph
436 ceph_conf: "/etc/ceph/ceph.conf"
437 ceph_pool: backup
438 ceph_stripe_count: 0
439 ceph_stripe_unit: 0
440 ceph_user: cinder
441 ceph_chunk_size: 134217728
442 restore_discard_excess_bytes: false
443 volume:
444 enabled: true
445 version: mitaka
446 backup:
447 engine: ceph
448 ceph_conf: "/etc/ceph/ceph.conf"
449 ceph_pool: backup
450 ceph_stripe_count: 0
451 ceph_stripe_unit: 0
452 ceph_user: cinder
453 ceph_chunk_size: 134217728
454 restore_discard_excess_bytes: false
455
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100456Enable auditing filter, ie: CADF
457
458.. code-block:: yaml
459
460 cinder:
461 controller:
462 audit:
463 enabled: true
464 ....
465 filter_factory: 'keystonemiddleware.audit:filter_factory'
466 map_file: '/etc/pycadf/cinder_api_audit_map.conf'
467 ....
468 volume:
469 audit:
470 enabled: true
471 ....
472 filter_factory: 'keystonemiddleware.audit:filter_factory'
473 map_file: '/etc/pycadf/cinder_api_audit_map.conf'
474
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100475
476Cinder setup with custom availability zones:
477
478.. code-block:: yaml
479
480 cinder:
481 controller:
482 default_availability_zone: my-default-zone
483 storage_availability_zone: my-custom-zone-name
484 cinder:
485 volume:
486 default_availability_zone: my-default-zone
487 storage_availability_zone: my-custom-zone-name
488
Andrii Ostapenkob7aa34d2017-04-20 14:22:44 +0300489
490Cinder setup with custom non-admin volume query filters:
491
492.. code-block:: yaml
493
494 cinder:
495 controller:
496 query_volume_filters:
497 - name
498 - status
499 - metadata
500 - availability_zone
501 - bootable
502
503
Alexander Noskov62496fb2017-02-27 16:42:54 +0100504public_endpoint and osapi_volume_base_url parameters:
505"public_endpoint" is used for configuring versions endpoint,
506"osapi_volume_base_URL" is used to present Cinder URL to users.
507They are useful when running Cinder under load balancer in SSL.
508
509.. code-block:: yaml
510
511 cinder:
512 controller:
513 public_endpoint_address: https://${_param:cluster_domain}:8776
514
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100515The default availability zone is used when a volume has been created, without specifying a zone in the create request. (this zone must exist in your configuration obviously)
516The storage availability zone is the actual zone where the node belongs to. Make sure to specify this per node.
517Check the documentation of OpenStack for more information
518
Jakub Pavlikb513f132016-05-20 11:11:19 +0200519Documentation and Bugs
520============================
521
522To learn how to deploy OpenStack Salt, consult the documentation available
523online at:
524
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100525https://wiki.openstack.org/wiki/OpenStackSalt
Jakub Pavlikb513f132016-05-20 11:11:19 +0200526
527In the unfortunate event that bugs are discovered, they should be reported to
528the appropriate bug tracker. If you obtained the software from a 3rd party
529operating system vendor, it is often wise to use their own bug tracker for
530reporting problems. In all other cases use the master OpenStack bug tracker,
531available at:
532
533 http://bugs.launchpad.net/openstack-salt
534
535Developers wishing to work on the OpenStack Salt project should always base
536their work on the latest formulas code, available from the master GIT
537repository at:
538
539 https://git.openstack.org/cgit/openstack/salt-formula-cinder
540
541Developers should also join the discussion on the IRC list, at:
542
543 https://wiki.openstack.org/wiki/Meetings/openstack-salt
Filip Pytlounb0f5c1f2017-02-02 13:02:03 +0100544
545Documentation and Bugs
546======================
547
548To learn how to install and update salt-formulas, consult the documentation
549available online at:
550
551 http://salt-formulas.readthedocs.io/
552
553In the unfortunate event that bugs are discovered, they should be reported to
554the appropriate issue tracker. Use Github issue tracker for specific salt
555formula:
556
557 https://github.com/salt-formulas/salt-formula-cinder/issues
558
559For feature requests, bug reports or blueprints affecting entire ecosystem,
560use Launchpad salt-formulas project:
561
562 https://launchpad.net/salt-formulas
563
564You can also join salt-formulas-users team and subscribe to mailing list:
565
566 https://launchpad.net/~salt-formulas-users
567
568Developers wishing to work on the salt-formulas projects should always base
569their work on master branch and submit pull request against specific formula.
570
571 https://github.com/salt-formulas/salt-formula-cinder
572
573Any questions or feedback is always welcome so feel free to join our IRC
574channel:
575
576 #salt-formulas @ irc.freenode.net