blob: 7a19ad074261a45b3a8bcc5b16f5c97f42a0a8d3 [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
Dmitry Stremkovskiy9f4ac8b2017-07-11 09:48:46 +030021 cinder_uid: 304
22 cinder_gid: 304
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010023 default_volume_type: 7k2SaS
Damian Szeluga0918f5a2017-04-19 12:26:56 +020024 availability_zone_fallback: True
Filip Pytlounda2a0792015-10-06 16:28:31 +020025 database:
26 engine: mysql
27 host: 127.0.0.1
28 port: 3306
29 name: cinder
30 user: cinder
31 password: pwd
32 identity:
33 engine: keystone
34 host: 127.0.0.1
35 port: 35357
36 tenant: service
37 user: cinder
38 password: pwd
39 message_queue:
40 engine: rabbitmq
41 host: 127.0.0.1
42 port: 5672
43 user: openstack
44 password: pwd
45 virtual_host: '/openstack'
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010046 backend:
47 7k2_SAS:
48 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +010049 type_name: slow-disks
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010050 host: 192.168.0.1
51 port: 22
52 user: username
53 password: pass
54 connection: FC/iSCSI
55 multihost: true
56 multipath: true
57 pool: SAS7K2
Petr Michaleca1c7ff12016-11-29 16:32:50 +010058 audit:
59 enabled: false
Simon Pasquier9089de42017-02-03 16:13:22 +010060 osapi_max_limit: 500
Filip Pytlounda2a0792015-10-06 16:28:31 +020061
62 cinder:
63 volume:
64 enabled: true
65 version: juno
Dmitry Stremkovskiy9f4ac8b2017-07-11 09:48:46 +030066 cinder_uid: 304
67 cinder_gid: 304
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010068 default_volume_type: 7k2SaS
Filip Pytlounda2a0792015-10-06 16:28:31 +020069 database:
70 engine: mysql
71 host: 127.0.0.1
72 port: 3306
73 name: cinder
74 user: cinder
75 password: pwd
76 identity:
77 engine: keystone
78 host: 127.0.0.1
79 port: 35357
80 tenant: service
81 user: cinder
82 password: pwd
83 message_queue:
84 engine: rabbitmq
85 host: 127.0.0.1
86 port: 5672
87 user: openstack
88 password: pwd
89 virtual_host: '/openstack'
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010090 backend:
91 7k2_SAS:
92 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +010093 type_name: 7k2 SAS disk
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010094 host: 192.168.0.1
95 port: 22
96 user: username
97 password: pass
98 connection: FC/iSCSI
99 multihost: true
100 multipath: true
101 pool: SAS7K2
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100102 audit:
103 enabled: false
Ondrej Smola74af21b2017-04-28 12:30:24 +0200104
105
106Enable CORS parameters
107
108.. code-block:: yaml
109
110 cinder:
111 controller:
112 cors:
113 allowed_origin: https:localhost.local,http:localhost.local
114 expose_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
115 allow_methods: GET,PUT,POST,DELETE,PATCH
116 allow_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
117 allow_credentials: True
118 max_age: 86400
Jiri Konecny2dce35f2016-04-19 16:29:52 +0200119
120Client-side RabbitMQ HA setup for controller
121
122.. code-block:: yaml
123
124 cinder:
125 controller:
126 ....
127 message_queue:
128 engine: rabbitmq
129 members:
130 - host: 10.0.16.1
131 - host: 10.0.16.2
132 - host: 10.0.16.3
133 user: openstack
134 password: pwd
135 virtual_host: '/openstack'
136 ....
137
138Client-side RabbitMQ HA setup for volume component
139
140.. code-block:: yaml
141
142 cinder:
143 volume:
144 ....
145 message_queue:
146 engine: rabbitmq
147 members:
148 - host: 10.0.16.1
149 - host: 10.0.16.2
150 - host: 10.0.16.3
151 user: openstack
152 password: pwd
153 virtual_host: '/openstack'
154 ....
Filip Pytlounda2a0792015-10-06 16:28:31 +0200155
156Cinder setup with zeroing deleted volumes
157
Alexander Noskov62496fb2017-02-27 16:42:54 +0100158.. code-block:: yaml
159
Filip Pytlounda2a0792015-10-06 16:28:31 +0200160 cinder:
161 controller:
162 enabled: true
163 wipe_method: zero
164 ...
165
166Cinder setup with shreding deleted volumes
167
168.. code-block:: yaml
169
170 cinder:
171 controller:
172 enabled: true
173 wipe_method: shred
174 ...
175
Dmitry Ukov56c29072017-05-04 16:48:29 +0400176Configuration of policy.json file
177
178.. code-block:: yaml
179
180 cinder:
181 controller:
182 ....
183 policy:
184 'volume:delete': 'rule:admin_or_owner'
185 # Add key without value to remove line from policy.json
186 'volume:extend':
187
Filip Pytlounda2a0792015-10-06 16:28:31 +0200188
189Default Cinder setup with iSCSI target
190
191.. code-block:: yaml
192
193 cinder:
194 controller:
195 enabled: true
Jakub Pavlik3d437df2016-04-11 22:07:50 +0200196 version: mitaka
197 default_volume_type: lvmdriver-1
Filip Pytlounda2a0792015-10-06 16:28:31 +0200198 database:
199 engine: mysql
200 host: 127.0.0.1
201 port: 3306
202 name: cinder
203 user: cinder
204 password: pwd
205 identity:
206 engine: keystone
207 host: 127.0.0.1
208 port: 35357
209 tenant: service
210 user: cinder
211 password: pwd
212 message_queue:
213 engine: rabbitmq
214 host: 127.0.0.1
215 port: 5672
216 user: openstack
217 password: pwd
218 virtual_host: '/openstack'
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +0100219 backend:
Jakub Pavlik3d437df2016-04-11 22:07:50 +0200220 lvmdriver-1:
221 engine: lvm
222 type_name: lvmdriver-1
223 volume_group: cinder-volume
Filip Pytlounda2a0792015-10-06 16:28:31 +0200224
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100225Cinder setup for IBM Storwize
Filip Pytlounda2a0792015-10-06 16:28:31 +0200226
227.. code-block:: yaml
228
229 cinder:
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100230 volume:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200231 enabled: true
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100232 backend:
233 7k2_SAS:
234 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100235 type_name: 7k2 SAS disk
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100236 host: 192.168.0.1
237 port: 22
238 user: username
239 password: pass
240 connection: FC/iSCSI
241 multihost: true
242 multipath: true
243 pool: SAS7K2
244 10k_SAS:
245 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100246 type_name: 10k SAS disk
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100247 host: 192.168.0.1
248 port: 22
249 user: username
250 password: pass
251 connection: FC/iSCSI
252 multihost: true
253 multipath: true
254 pool: SAS10K
255 15k_SAS:
256 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100257 type_name: 15k SAS
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100258 host: 192.168.0.1
259 port: 22
260 user: username
261 password: pass
262 connection: FC/iSCSI
263 multihost: true
264 multipath: true
265 pool: SAS15K
Filip Pytlounda2a0792015-10-06 16:28:31 +0200266
Jiri Broulik88548db2017-03-31 12:21:37 +0200267
268Cinder setup with NFS
269
270.. code-block:: yaml
271
272 cinder:
273 controller:
274 enabled: true
275 default_volume_type: nfs-driver
276 backend:
277 nfs-driver:
278 engine: nfs
279 type_name: nfs-driver
280 volume_group: cinder-volume
281 path: /var/lib/cinder/nfs
282 devices:
283 - 172.16.10.110:/var/nfs/cinder
284 options: rw,sync
285
286
Alexey Chekunovf916f0c2017-05-25 13:29:45 +0400287Cinder setup with NetApp
288
289.. code-block:: yaml
290
291 cinder:
292 controller:
293 backend:
294 netapp:
295 engine: netapp
296 type_name: netapp
297 user: openstack
298 vserver: vm1
299 server_hostname: 172.18.2.3
300 password: password
301 storage_protocol: nfs
302 transport_type: https
303 lun_space_reservation: enabled
304 use_multipath_for_image_xfer: True
305 devices:
306 - 172.18.1.2:/vol_1
307 - 172.18.1.2:/vol_2
308 - 172.18.1.2:/vol_3
309 - 172.18.1.2:/vol_4
Jakub Pavlik94dc0c92017-06-14 14:53:23 +0200310 linux:
311 system:
312 package:
313 nfs-common:
314 version: latest
Alexey Chekunovf916f0c2017-05-25 13:29:45 +0400315
316
Filip Pytlounda2a0792015-10-06 16:28:31 +0200317Cinder setup with Hitachi VPS
318
319.. code-block:: yaml
320
321 cinder:
322 controller:
323 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100324 backend:
325 hus100_backend:
marcodaa52fa2016-01-25 23:49:50 +0100326 type_name: HUS100
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100327 backend: hus100_backend
328 engine: hitachi_vsp
329 connection: FC
Filip Pytlounda2a0792015-10-06 16:28:31 +0200330
Ondrej Smola16d66bd2017-01-15 13:56:03 +0100331Cinder setup with Hitachi VPS with defined ldev range
332
333.. code-block:: yaml
334
335 cinder:
336 controller:
337 enabled: true
338 backend:
339 hus100_backend:
340 type_name: HUS100
341 backend: hus100_backend
342 engine: hitachi_vsp
343 connection: FC
344 ldev_range: 0-1000
345
Filip Pytlounda2a0792015-10-06 16:28:31 +0200346Cinder setup with CEPH
347
348.. code-block:: yaml
349
350 cinder:
351 controller:
352 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100353 backend:
354 ceph_backend:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100355 type_name: standard-iops
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100356 backend: ceph_backend
357 pool: volumes
358 engine: ceph
359 user: cinder
360 secret_uuid: da74ccb7-aa59-1721-a172-0006b1aa4e3e
361 client_cinder_key: AQDOavlU6BsSJhAAnpFR906mvdgdfRqLHwu0Uw==
Michel Nederlofb43a4872017-06-20 09:36:47 +0200362 report_discard_supported: True
Filip Pytlounda2a0792015-10-06 16:28:31 +0200363
364http://ceph.com/docs/master/rbd/rbd-openstack/
365
366
367Cinder setup with HP3par
368
369.. code-block:: yaml
370
371 cinder:
372 controller:
373 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100374 backend:
375 hp3par_backend:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100376 type_name: hp3par
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100377 backend: hp3par_backend
378 user: hp3paruser
379 password: something
380 url: http://10.10.10.10/api/v1
381 cpg: OpenStackCPG
382 host: 10.10.10.10
383 login: hp3paradmin
384 sanpassword: something
385 debug: True
386 snapcpg: OpenStackSNAPCPG
Filip Pytlounda2a0792015-10-06 16:28:31 +0200387
388Cinder setup with Fujitsu Eternus
389
390.. code-block:: yaml
391
392 cinder:
393 volume:
394 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100395 backend:
396 10kThinPro:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100397 type_name: 10kThinPro
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100398 engine: fujitsu
399 pool: 10kThinPro
400 host: 192.168.0.1
401 port: 5988
402 user: username
403 password: pass
404 connection: FC/iSCSI
marcodaa52fa2016-01-25 23:49:50 +0100405 name: 10kThinPro
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100406 10k_SAS:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100407 type_name: 10k_SAS
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100408 pool: SAS10K
409 engine: fujitsu
410 host: 192.168.0.1
411 port: 5988
412 user: username
413 password: pass
414 connection: FC/iSCSI
marcodaa52fa2016-01-25 23:49:50 +0100415 name: 10k_SAS
Filip Pytlounda2a0792015-10-06 16:28:31 +0200416
Jakub Pavlik9703c602015-10-15 18:52:47 +0200417Cinder setup with IBM GPFS filesystem
418
419.. code-block:: yaml
420
421 cinder:
422 volume:
423 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100424 backend:
425 GPFS-GOLD:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100426 type_name: GPFS-GOLD
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100427 engine: gpfs
428 mount_point: '/mnt/gpfs-openstack/cinder/gold'
marcodaa52fa2016-01-25 23:49:50 +0100429 GPFS-SILVER:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100430 type_name: GPFS-SILVER
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100431 engine: gpfs
432 mount_point: '/mnt/gpfs-openstack/cinder/silver'
Jakub Pavlik9f5988a2016-01-11 13:44:57 +0100433
434Cinder setup with HP LeftHand
435
436.. code-block:: yaml
437
438 cinder:
439 volume:
440 enabled: true
441 backend:
442 HP-LeftHand:
443 type_name: normal-storage
444 engine: hp_lefthand
445 api_url: 'https://10.10.10.10:8081/lhos'
446 username: user
447 password: password
448 clustername: cluster1
449 iscsi_chap_enabled: false
450
Jakub Pavlika63764f2016-01-11 14:41:06 +0100451Extra parameters for HP LeftHand
Jakub Pavlika63764f2016-01-11 14:41:06 +0100452
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100453.. code-block:: yaml
454
455 cinder type-key normal-storage set hplh:data_pl=r-10-2 hplh:provisioning=full
456
marcodaa52fa2016-01-25 23:49:50 +0100457Cinder setup with Solidfire
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100458
459.. code-block:: yaml
460
461 cinder:
462 volume:
463 enabled: true
464 backend:
465 solidfire:
466 type_name: normal-storage
467 engine: solidfire
468 san_ip: 10.10.10.10
469 san_login: user
470 san_password: password
471 clustername: cluster1
472 sf_emulate_512: false
Filip Pytlounda2a0792015-10-06 16:28:31 +0200473
Alexander Noskov023a0032017-06-16 09:31:59 +0200474Cinder setup with Block Device driver
475
476.. code-block:: yaml
477
478 cinder:
479 volume:
480 enabled: true
481 backend:
482 bdd:
483 engine: bdd
484 enabled: true
485 type_name: bdd
486 devices:
487 - sdb
488 - sdc
489 - sdd
490
Ondrej Smolaed6abbf2017-04-25 11:55:44 +0200491Enable cinder-backup service for ceph
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100492
Ondrej Smolaed6abbf2017-04-25 11:55:44 +0200493.. code-block:: yaml
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100494
Ondrej Smolaed6abbf2017-04-25 11:55:44 +0200495 cinder:
496 controller:
497 enabled: true
498 version: mitaka
499 backup:
500 engine: ceph
501 ceph_conf: "/etc/ceph/ceph.conf"
502 ceph_pool: backup
503 ceph_stripe_count: 0
504 ceph_stripe_unit: 0
505 ceph_user: cinder
506 ceph_chunk_size: 134217728
507 restore_discard_excess_bytes: false
508 volume:
509 enabled: true
510 version: mitaka
511 backup:
512 engine: ceph
513 ceph_conf: "/etc/ceph/ceph.conf"
514 ceph_pool: backup
515 ceph_stripe_count: 0
516 ceph_stripe_unit: 0
517 ceph_user: cinder
518 ceph_chunk_size: 134217728
519 restore_discard_excess_bytes: false
520
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100521Enable auditing filter, ie: CADF
522
523.. code-block:: yaml
524
525 cinder:
526 controller:
527 audit:
528 enabled: true
529 ....
530 filter_factory: 'keystonemiddleware.audit:filter_factory'
531 map_file: '/etc/pycadf/cinder_api_audit_map.conf'
532 ....
533 volume:
534 audit:
535 enabled: true
536 ....
537 filter_factory: 'keystonemiddleware.audit:filter_factory'
538 map_file: '/etc/pycadf/cinder_api_audit_map.conf'
539
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100540
541Cinder setup with custom availability zones:
542
543.. code-block:: yaml
544
545 cinder:
546 controller:
547 default_availability_zone: my-default-zone
548 storage_availability_zone: my-custom-zone-name
549 cinder:
550 volume:
551 default_availability_zone: my-default-zone
552 storage_availability_zone: my-custom-zone-name
553
Andrii Ostapenkob7aa34d2017-04-20 14:22:44 +0300554
555Cinder setup with custom non-admin volume query filters:
556
557.. code-block:: yaml
558
559 cinder:
560 controller:
561 query_volume_filters:
562 - name
563 - status
564 - metadata
565 - availability_zone
566 - bootable
567
568
Alexander Noskov62496fb2017-02-27 16:42:54 +0100569public_endpoint and osapi_volume_base_url parameters:
570"public_endpoint" is used for configuring versions endpoint,
571"osapi_volume_base_URL" is used to present Cinder URL to users.
572They are useful when running Cinder under load balancer in SSL.
573
574.. code-block:: yaml
575
576 cinder:
577 controller:
578 public_endpoint_address: https://${_param:cluster_domain}:8776
579
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100580The 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)
581The storage availability zone is the actual zone where the node belongs to. Make sure to specify this per node.
582Check the documentation of OpenStack for more information
583
Jiri Broulik47aa6b32017-07-10 18:39:15 +0200584
585Client role
586
587.. code-block:: yaml
588
589 cinder:
590 client:
591 enabled: true
592 identity:
593 host: 127.0.0.1
594 port: 35357
595 project: service
596 user: cinder
597 password: pwd
598 protocol: http
599 endpoint_type: internalURL
600 region_name: RegionOne
601 backend:
602 ceph:
603 type_name: standard-iops
604 engine: ceph
605 key:
606 conn_speed: fibre-10G
607
608
Jakub Pavlikb513f132016-05-20 11:11:19 +0200609Documentation and Bugs
610============================
611
612To learn how to deploy OpenStack Salt, consult the documentation available
613online at:
614
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100615https://wiki.openstack.org/wiki/OpenStackSalt
Jakub Pavlikb513f132016-05-20 11:11:19 +0200616
617In the unfortunate event that bugs are discovered, they should be reported to
618the appropriate bug tracker. If you obtained the software from a 3rd party
619operating system vendor, it is often wise to use their own bug tracker for
620reporting problems. In all other cases use the master OpenStack bug tracker,
621available at:
622
623 http://bugs.launchpad.net/openstack-salt
624
625Developers wishing to work on the OpenStack Salt project should always base
626their work on the latest formulas code, available from the master GIT
627repository at:
628
629 https://git.openstack.org/cgit/openstack/salt-formula-cinder
630
631Developers should also join the discussion on the IRC list, at:
632
633 https://wiki.openstack.org/wiki/Meetings/openstack-salt
Filip Pytlounb0f5c1f2017-02-02 13:02:03 +0100634
635Documentation and Bugs
636======================
637
638To learn how to install and update salt-formulas, consult the documentation
639available online at:
640
641 http://salt-formulas.readthedocs.io/
642
643In the unfortunate event that bugs are discovered, they should be reported to
644the appropriate issue tracker. Use Github issue tracker for specific salt
645formula:
646
647 https://github.com/salt-formulas/salt-formula-cinder/issues
648
649For feature requests, bug reports or blueprints affecting entire ecosystem,
650use Launchpad salt-formulas project:
651
652 https://launchpad.net/salt-formulas
653
654You can also join salt-formulas-users team and subscribe to mailing list:
655
656 https://launchpad.net/~salt-formulas-users
657
658Developers wishing to work on the salt-formulas projects should always base
659their work on master branch and submit pull request against specific formula.
660
661 https://github.com/salt-formulas/salt-formula-cinder
662
663Any questions or feedback is always welcome so feel free to join our IRC
664channel:
665
666 #salt-formulas @ irc.freenode.net