blob: 4cdd914f4901c42fb58916d2cfb00137fb089b39 [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
Dmitry Ukov56c29072017-05-04 16:48:29 +0400171Configuration of policy.json file
172
173.. code-block:: yaml
174
175 cinder:
176 controller:
177 ....
178 policy:
179 'volume:delete': 'rule:admin_or_owner'
180 # Add key without value to remove line from policy.json
181 'volume:extend':
182
Filip Pytlounda2a0792015-10-06 16:28:31 +0200183
184Default Cinder setup with iSCSI target
185
186.. code-block:: yaml
187
188 cinder:
189 controller:
190 enabled: true
Jakub Pavlik3d437df2016-04-11 22:07:50 +0200191 version: mitaka
192 default_volume_type: lvmdriver-1
Filip Pytlounda2a0792015-10-06 16:28:31 +0200193 database:
194 engine: mysql
195 host: 127.0.0.1
196 port: 3306
197 name: cinder
198 user: cinder
199 password: pwd
200 identity:
201 engine: keystone
202 host: 127.0.0.1
203 port: 35357
204 tenant: service
205 user: cinder
206 password: pwd
207 message_queue:
208 engine: rabbitmq
209 host: 127.0.0.1
210 port: 5672
211 user: openstack
212 password: pwd
213 virtual_host: '/openstack'
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +0100214 backend:
Jakub Pavlik3d437df2016-04-11 22:07:50 +0200215 lvmdriver-1:
216 engine: lvm
217 type_name: lvmdriver-1
218 volume_group: cinder-volume
Filip Pytlounda2a0792015-10-06 16:28:31 +0200219
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100220Cinder setup for IBM Storwize
Filip Pytlounda2a0792015-10-06 16:28:31 +0200221
222.. code-block:: yaml
223
224 cinder:
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100225 volume:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200226 enabled: true
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100227 backend:
228 7k2_SAS:
229 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100230 type_name: 7k2 SAS disk
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100231 host: 192.168.0.1
232 port: 22
233 user: username
234 password: pass
235 connection: FC/iSCSI
236 multihost: true
237 multipath: true
238 pool: SAS7K2
239 10k_SAS:
240 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100241 type_name: 10k SAS disk
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100242 host: 192.168.0.1
243 port: 22
244 user: username
245 password: pass
246 connection: FC/iSCSI
247 multihost: true
248 multipath: true
249 pool: SAS10K
250 15k_SAS:
251 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100252 type_name: 15k SAS
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100253 host: 192.168.0.1
254 port: 22
255 user: username
256 password: pass
257 connection: FC/iSCSI
258 multihost: true
259 multipath: true
260 pool: SAS15K
Filip Pytlounda2a0792015-10-06 16:28:31 +0200261
Jiri Broulik88548db2017-03-31 12:21:37 +0200262
263Cinder setup with NFS
264
265.. code-block:: yaml
266
267 cinder:
268 controller:
269 enabled: true
270 default_volume_type: nfs-driver
271 backend:
272 nfs-driver:
273 engine: nfs
274 type_name: nfs-driver
275 volume_group: cinder-volume
276 path: /var/lib/cinder/nfs
277 devices:
278 - 172.16.10.110:/var/nfs/cinder
279 options: rw,sync
280
281
Filip Pytlounda2a0792015-10-06 16:28:31 +0200282Cinder setup with Hitachi VPS
283
284.. code-block:: yaml
285
286 cinder:
287 controller:
288 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100289 backend:
290 hus100_backend:
marcodaa52fa2016-01-25 23:49:50 +0100291 type_name: HUS100
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100292 backend: hus100_backend
293 engine: hitachi_vsp
294 connection: FC
Filip Pytlounda2a0792015-10-06 16:28:31 +0200295
Ondrej Smola16d66bd2017-01-15 13:56:03 +0100296Cinder setup with Hitachi VPS with defined ldev range
297
298.. code-block:: yaml
299
300 cinder:
301 controller:
302 enabled: true
303 backend:
304 hus100_backend:
305 type_name: HUS100
306 backend: hus100_backend
307 engine: hitachi_vsp
308 connection: FC
309 ldev_range: 0-1000
310
Filip Pytlounda2a0792015-10-06 16:28:31 +0200311Cinder setup with CEPH
312
313.. code-block:: yaml
314
315 cinder:
316 controller:
317 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100318 backend:
319 ceph_backend:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100320 type_name: standard-iops
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100321 backend: ceph_backend
322 pool: volumes
323 engine: ceph
324 user: cinder
325 secret_uuid: da74ccb7-aa59-1721-a172-0006b1aa4e3e
326 client_cinder_key: AQDOavlU6BsSJhAAnpFR906mvdgdfRqLHwu0Uw==
Filip Pytlounda2a0792015-10-06 16:28:31 +0200327
328http://ceph.com/docs/master/rbd/rbd-openstack/
329
330
331Cinder setup with HP3par
332
333.. code-block:: yaml
334
335 cinder:
336 controller:
337 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100338 backend:
339 hp3par_backend:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100340 type_name: hp3par
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100341 backend: hp3par_backend
342 user: hp3paruser
343 password: something
344 url: http://10.10.10.10/api/v1
345 cpg: OpenStackCPG
346 host: 10.10.10.10
347 login: hp3paradmin
348 sanpassword: something
349 debug: True
350 snapcpg: OpenStackSNAPCPG
Filip Pytlounda2a0792015-10-06 16:28:31 +0200351
352Cinder setup with Fujitsu Eternus
353
354.. code-block:: yaml
355
356 cinder:
357 volume:
358 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100359 backend:
360 10kThinPro:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100361 type_name: 10kThinPro
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100362 engine: fujitsu
363 pool: 10kThinPro
364 host: 192.168.0.1
365 port: 5988
366 user: username
367 password: pass
368 connection: FC/iSCSI
marcodaa52fa2016-01-25 23:49:50 +0100369 name: 10kThinPro
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100370 10k_SAS:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100371 type_name: 10k_SAS
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100372 pool: SAS10K
373 engine: fujitsu
374 host: 192.168.0.1
375 port: 5988
376 user: username
377 password: pass
378 connection: FC/iSCSI
marcodaa52fa2016-01-25 23:49:50 +0100379 name: 10k_SAS
Filip Pytlounda2a0792015-10-06 16:28:31 +0200380
Jakub Pavlik9703c602015-10-15 18:52:47 +0200381Cinder setup with IBM GPFS filesystem
382
383.. code-block:: yaml
384
385 cinder:
386 volume:
387 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100388 backend:
389 GPFS-GOLD:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100390 type_name: GPFS-GOLD
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100391 engine: gpfs
392 mount_point: '/mnt/gpfs-openstack/cinder/gold'
marcodaa52fa2016-01-25 23:49:50 +0100393 GPFS-SILVER:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100394 type_name: GPFS-SILVER
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100395 engine: gpfs
396 mount_point: '/mnt/gpfs-openstack/cinder/silver'
Jakub Pavlik9f5988a2016-01-11 13:44:57 +0100397
398Cinder setup with HP LeftHand
399
400.. code-block:: yaml
401
402 cinder:
403 volume:
404 enabled: true
405 backend:
406 HP-LeftHand:
407 type_name: normal-storage
408 engine: hp_lefthand
409 api_url: 'https://10.10.10.10:8081/lhos'
410 username: user
411 password: password
412 clustername: cluster1
413 iscsi_chap_enabled: false
414
Jakub Pavlika63764f2016-01-11 14:41:06 +0100415Extra parameters for HP LeftHand
Jakub Pavlika63764f2016-01-11 14:41:06 +0100416
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100417.. code-block:: yaml
418
419 cinder type-key normal-storage set hplh:data_pl=r-10-2 hplh:provisioning=full
420
marcodaa52fa2016-01-25 23:49:50 +0100421Cinder setup with Solidfire
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100422
423.. code-block:: yaml
424
425 cinder:
426 volume:
427 enabled: true
428 backend:
429 solidfire:
430 type_name: normal-storage
431 engine: solidfire
432 san_ip: 10.10.10.10
433 san_login: user
434 san_password: password
435 clustername: cluster1
436 sf_emulate_512: false
Filip Pytlounda2a0792015-10-06 16:28:31 +0200437
Ondrej Smolaed6abbf2017-04-25 11:55:44 +0200438Enable cinder-backup service for ceph
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100439
Ondrej Smolaed6abbf2017-04-25 11:55:44 +0200440.. code-block:: yaml
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100441
Ondrej Smolaed6abbf2017-04-25 11:55:44 +0200442 cinder:
443 controller:
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 volume:
456 enabled: true
457 version: mitaka
458 backup:
459 engine: ceph
460 ceph_conf: "/etc/ceph/ceph.conf"
461 ceph_pool: backup
462 ceph_stripe_count: 0
463 ceph_stripe_unit: 0
464 ceph_user: cinder
465 ceph_chunk_size: 134217728
466 restore_discard_excess_bytes: false
467
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100468Enable auditing filter, ie: CADF
469
470.. code-block:: yaml
471
472 cinder:
473 controller:
474 audit:
475 enabled: true
476 ....
477 filter_factory: 'keystonemiddleware.audit:filter_factory'
478 map_file: '/etc/pycadf/cinder_api_audit_map.conf'
479 ....
480 volume:
481 audit:
482 enabled: true
483 ....
484 filter_factory: 'keystonemiddleware.audit:filter_factory'
485 map_file: '/etc/pycadf/cinder_api_audit_map.conf'
486
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100487
488Cinder setup with custom availability zones:
489
490.. code-block:: yaml
491
492 cinder:
493 controller:
494 default_availability_zone: my-default-zone
495 storage_availability_zone: my-custom-zone-name
496 cinder:
497 volume:
498 default_availability_zone: my-default-zone
499 storage_availability_zone: my-custom-zone-name
500
Andrii Ostapenkob7aa34d2017-04-20 14:22:44 +0300501
502Cinder setup with custom non-admin volume query filters:
503
504.. code-block:: yaml
505
506 cinder:
507 controller:
508 query_volume_filters:
509 - name
510 - status
511 - metadata
512 - availability_zone
513 - bootable
514
515
Alexander Noskov62496fb2017-02-27 16:42:54 +0100516public_endpoint and osapi_volume_base_url parameters:
517"public_endpoint" is used for configuring versions endpoint,
518"osapi_volume_base_URL" is used to present Cinder URL to users.
519They are useful when running Cinder under load balancer in SSL.
520
521.. code-block:: yaml
522
523 cinder:
524 controller:
525 public_endpoint_address: https://${_param:cluster_domain}:8776
526
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100527The 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)
528The storage availability zone is the actual zone where the node belongs to. Make sure to specify this per node.
529Check the documentation of OpenStack for more information
530
Jakub Pavlikb513f132016-05-20 11:11:19 +0200531Documentation and Bugs
532============================
533
534To learn how to deploy OpenStack Salt, consult the documentation available
535online at:
536
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100537https://wiki.openstack.org/wiki/OpenStackSalt
Jakub Pavlikb513f132016-05-20 11:11:19 +0200538
539In the unfortunate event that bugs are discovered, they should be reported to
540the appropriate bug tracker. If you obtained the software from a 3rd party
541operating system vendor, it is often wise to use their own bug tracker for
542reporting problems. In all other cases use the master OpenStack bug tracker,
543available at:
544
545 http://bugs.launchpad.net/openstack-salt
546
547Developers wishing to work on the OpenStack Salt project should always base
548their work on the latest formulas code, available from the master GIT
549repository at:
550
551 https://git.openstack.org/cgit/openstack/salt-formula-cinder
552
553Developers should also join the discussion on the IRC list, at:
554
555 https://wiki.openstack.org/wiki/Meetings/openstack-salt
Filip Pytlounb0f5c1f2017-02-02 13:02:03 +0100556
557Documentation and Bugs
558======================
559
560To learn how to install and update salt-formulas, consult the documentation
561available online at:
562
563 http://salt-formulas.readthedocs.io/
564
565In the unfortunate event that bugs are discovered, they should be reported to
566the appropriate issue tracker. Use Github issue tracker for specific salt
567formula:
568
569 https://github.com/salt-formulas/salt-formula-cinder/issues
570
571For feature requests, bug reports or blueprints affecting entire ecosystem,
572use Launchpad salt-formulas project:
573
574 https://launchpad.net/salt-formulas
575
576You can also join salt-formulas-users team and subscribe to mailing list:
577
578 https://launchpad.net/~salt-formulas-users
579
580Developers wishing to work on the salt-formulas projects should always base
581their work on master branch and submit pull request against specific formula.
582
583 https://github.com/salt-formulas/salt-formula-cinder
584
585Any questions or feedback is always welcome so feel free to join our IRC
586channel:
587
588 #salt-formulas @ irc.freenode.net