blob: 1403e3667ca630ecaddc8175d1aaffb5b81ccadc [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
stelucz1f3a82f2017-09-19 18:38:13 +020024 enable_force_upload: true
Damian Szeluga0918f5a2017-04-19 12:26:56 +020025 availability_zone_fallback: True
Filip Pytlounda2a0792015-10-06 16:28:31 +020026 database:
27 engine: mysql
28 host: 127.0.0.1
29 port: 3306
30 name: cinder
31 user: cinder
32 password: pwd
33 identity:
34 engine: keystone
35 host: 127.0.0.1
36 port: 35357
37 tenant: service
38 user: cinder
39 password: pwd
40 message_queue:
41 engine: rabbitmq
42 host: 127.0.0.1
43 port: 5672
44 user: openstack
45 password: pwd
46 virtual_host: '/openstack'
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010047 backend:
48 7k2_SAS:
49 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +010050 type_name: slow-disks
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010051 host: 192.168.0.1
52 port: 22
53 user: username
54 password: pass
55 connection: FC/iSCSI
56 multihost: true
57 multipath: true
58 pool: SAS7K2
stelucz1f3a82f2017-09-19 18:38:13 +020059 audit:
Petr Michaleca1c7ff12016-11-29 16:32:50 +010060 enabled: false
Simon Pasquier9089de42017-02-03 16:13:22 +010061 osapi_max_limit: 500
Filip Pytlounda2a0792015-10-06 16:28:31 +020062
63 cinder:
64 volume:
65 enabled: true
66 version: juno
Dmitry Stremkovskiy9f4ac8b2017-07-11 09:48:46 +030067 cinder_uid: 304
68 cinder_gid: 304
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010069 default_volume_type: 7k2SaS
stelucz1f3a82f2017-09-19 18:38:13 +020070 nable_force_upload: true
Filip Pytlounda2a0792015-10-06 16:28:31 +020071 database:
72 engine: mysql
73 host: 127.0.0.1
74 port: 3306
75 name: cinder
76 user: cinder
77 password: pwd
78 identity:
79 engine: keystone
80 host: 127.0.0.1
81 port: 35357
82 tenant: service
83 user: cinder
84 password: pwd
85 message_queue:
86 engine: rabbitmq
87 host: 127.0.0.1
88 port: 5672
89 user: openstack
90 password: pwd
91 virtual_host: '/openstack'
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010092 backend:
93 7k2_SAS:
94 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +010095 type_name: 7k2 SAS disk
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010096 host: 192.168.0.1
97 port: 22
98 user: username
99 password: pass
100 connection: FC/iSCSI
101 multihost: true
102 multipath: true
103 pool: SAS7K2
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100104 audit:
105 enabled: false
Ondrej Smola74af21b2017-04-28 12:30:24 +0200106
107
108Enable CORS parameters
109
110.. code-block:: yaml
111
112 cinder:
113 controller:
114 cors:
115 allowed_origin: https:localhost.local,http:localhost.local
116 expose_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
117 allow_methods: GET,PUT,POST,DELETE,PATCH
118 allow_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
119 allow_credentials: True
120 max_age: 86400
Jiri Konecny2dce35f2016-04-19 16:29:52 +0200121
122Client-side RabbitMQ HA setup for controller
123
124.. code-block:: yaml
125
126 cinder:
127 controller:
128 ....
129 message_queue:
130 engine: rabbitmq
131 members:
132 - host: 10.0.16.1
133 - host: 10.0.16.2
134 - host: 10.0.16.3
135 user: openstack
136 password: pwd
137 virtual_host: '/openstack'
138 ....
139
140Client-side RabbitMQ HA setup for volume component
141
142.. code-block:: yaml
143
144 cinder:
145 volume:
146 ....
147 message_queue:
148 engine: rabbitmq
149 members:
150 - host: 10.0.16.1
151 - host: 10.0.16.2
152 - host: 10.0.16.3
153 user: openstack
154 password: pwd
155 virtual_host: '/openstack'
156 ....
Filip Pytlounda2a0792015-10-06 16:28:31 +0200157
158Cinder setup with zeroing deleted volumes
159
Alexander Noskov62496fb2017-02-27 16:42:54 +0100160.. code-block:: yaml
161
Filip Pytlounda2a0792015-10-06 16:28:31 +0200162 cinder:
163 controller:
164 enabled: true
165 wipe_method: zero
166 ...
167
168Cinder setup with shreding deleted volumes
169
170.. code-block:: yaml
171
172 cinder:
173 controller:
174 enabled: true
175 wipe_method: shred
176 ...
177
Dmitry Ukov56c29072017-05-04 16:48:29 +0400178Configuration of policy.json file
179
180.. code-block:: yaml
181
182 cinder:
183 controller:
184 ....
185 policy:
186 'volume:delete': 'rule:admin_or_owner'
187 # Add key without value to remove line from policy.json
188 'volume:extend':
189
Filip Pytlounda2a0792015-10-06 16:28:31 +0200190
191Default Cinder setup with iSCSI target
192
193.. code-block:: yaml
194
195 cinder:
196 controller:
197 enabled: true
Jakub Pavlik3d437df2016-04-11 22:07:50 +0200198 version: mitaka
199 default_volume_type: lvmdriver-1
Filip Pytlounda2a0792015-10-06 16:28:31 +0200200 database:
201 engine: mysql
202 host: 127.0.0.1
203 port: 3306
204 name: cinder
205 user: cinder
206 password: pwd
207 identity:
208 engine: keystone
209 host: 127.0.0.1
210 port: 35357
211 tenant: service
212 user: cinder
213 password: pwd
214 message_queue:
215 engine: rabbitmq
216 host: 127.0.0.1
217 port: 5672
218 user: openstack
219 password: pwd
220 virtual_host: '/openstack'
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +0100221 backend:
Jakub Pavlik3d437df2016-04-11 22:07:50 +0200222 lvmdriver-1:
223 engine: lvm
224 type_name: lvmdriver-1
225 volume_group: cinder-volume
Filip Pytlounda2a0792015-10-06 16:28:31 +0200226
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100227Cinder setup for IBM Storwize
Filip Pytlounda2a0792015-10-06 16:28:31 +0200228
229.. code-block:: yaml
230
231 cinder:
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100232 volume:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200233 enabled: true
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100234 backend:
235 7k2_SAS:
236 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100237 type_name: 7k2 SAS disk
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100238 host: 192.168.0.1
239 port: 22
240 user: username
241 password: pass
242 connection: FC/iSCSI
243 multihost: true
244 multipath: true
245 pool: SAS7K2
246 10k_SAS:
247 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100248 type_name: 10k SAS disk
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100249 host: 192.168.0.1
250 port: 22
251 user: username
252 password: pass
253 connection: FC/iSCSI
254 multihost: true
255 multipath: true
256 pool: SAS10K
257 15k_SAS:
258 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100259 type_name: 15k SAS
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100260 host: 192.168.0.1
261 port: 22
262 user: username
263 password: pass
264 connection: FC/iSCSI
265 multihost: true
266 multipath: true
267 pool: SAS15K
Filip Pytlounda2a0792015-10-06 16:28:31 +0200268
Jiri Broulik88548db2017-03-31 12:21:37 +0200269
270Cinder setup with NFS
271
272.. code-block:: yaml
273
274 cinder:
275 controller:
276 enabled: true
277 default_volume_type: nfs-driver
278 backend:
279 nfs-driver:
280 engine: nfs
281 type_name: nfs-driver
282 volume_group: cinder-volume
283 path: /var/lib/cinder/nfs
284 devices:
285 - 172.16.10.110:/var/nfs/cinder
286 options: rw,sync
287
288
Alexey Chekunovf916f0c2017-05-25 13:29:45 +0400289Cinder setup with NetApp
290
291.. code-block:: yaml
292
293 cinder:
294 controller:
295 backend:
296 netapp:
297 engine: netapp
298 type_name: netapp
299 user: openstack
300 vserver: vm1
301 server_hostname: 172.18.2.3
302 password: password
303 storage_protocol: nfs
304 transport_type: https
305 lun_space_reservation: enabled
306 use_multipath_for_image_xfer: True
307 devices:
308 - 172.18.1.2:/vol_1
309 - 172.18.1.2:/vol_2
310 - 172.18.1.2:/vol_3
311 - 172.18.1.2:/vol_4
Jakub Pavlik94dc0c92017-06-14 14:53:23 +0200312 linux:
313 system:
314 package:
315 nfs-common:
316 version: latest
Alexey Chekunovf916f0c2017-05-25 13:29:45 +0400317
318
Filip Pytlounda2a0792015-10-06 16:28:31 +0200319Cinder setup with Hitachi VPS
320
321.. code-block:: yaml
322
323 cinder:
324 controller:
325 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100326 backend:
327 hus100_backend:
marcodaa52fa2016-01-25 23:49:50 +0100328 type_name: HUS100
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100329 backend: hus100_backend
330 engine: hitachi_vsp
331 connection: FC
Filip Pytlounda2a0792015-10-06 16:28:31 +0200332
Ondrej Smola16d66bd2017-01-15 13:56:03 +0100333Cinder setup with Hitachi VPS with defined ldev range
334
335.. code-block:: yaml
336
337 cinder:
338 controller:
339 enabled: true
340 backend:
341 hus100_backend:
342 type_name: HUS100
343 backend: hus100_backend
344 engine: hitachi_vsp
345 connection: FC
346 ldev_range: 0-1000
347
Filip Pytlounda2a0792015-10-06 16:28:31 +0200348Cinder setup with CEPH
349
350.. code-block:: yaml
351
352 cinder:
353 controller:
354 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100355 backend:
356 ceph_backend:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100357 type_name: standard-iops
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100358 backend: ceph_backend
359 pool: volumes
360 engine: ceph
361 user: cinder
362 secret_uuid: da74ccb7-aa59-1721-a172-0006b1aa4e3e
363 client_cinder_key: AQDOavlU6BsSJhAAnpFR906mvdgdfRqLHwu0Uw==
Michel Nederlofb43a4872017-06-20 09:36:47 +0200364 report_discard_supported: True
Filip Pytlounda2a0792015-10-06 16:28:31 +0200365
366http://ceph.com/docs/master/rbd/rbd-openstack/
367
368
369Cinder setup with HP3par
370
371.. code-block:: yaml
372
373 cinder:
374 controller:
375 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100376 backend:
377 hp3par_backend:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100378 type_name: hp3par
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100379 backend: hp3par_backend
380 user: hp3paruser
381 password: something
382 url: http://10.10.10.10/api/v1
383 cpg: OpenStackCPG
384 host: 10.10.10.10
385 login: hp3paradmin
386 sanpassword: something
387 debug: True
388 snapcpg: OpenStackSNAPCPG
Filip Pytlounda2a0792015-10-06 16:28:31 +0200389
390Cinder setup with Fujitsu Eternus
391
392.. code-block:: yaml
393
394 cinder:
395 volume:
396 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100397 backend:
398 10kThinPro:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100399 type_name: 10kThinPro
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100400 engine: fujitsu
401 pool: 10kThinPro
402 host: 192.168.0.1
403 port: 5988
404 user: username
405 password: pass
406 connection: FC/iSCSI
marcodaa52fa2016-01-25 23:49:50 +0100407 name: 10kThinPro
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100408 10k_SAS:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100409 type_name: 10k_SAS
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100410 pool: SAS10K
411 engine: fujitsu
412 host: 192.168.0.1
413 port: 5988
414 user: username
415 password: pass
416 connection: FC/iSCSI
marcodaa52fa2016-01-25 23:49:50 +0100417 name: 10k_SAS
Filip Pytlounda2a0792015-10-06 16:28:31 +0200418
Jakub Pavlik9703c602015-10-15 18:52:47 +0200419Cinder setup with IBM GPFS filesystem
420
421.. code-block:: yaml
422
423 cinder:
424 volume:
425 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100426 backend:
427 GPFS-GOLD:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100428 type_name: GPFS-GOLD
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100429 engine: gpfs
430 mount_point: '/mnt/gpfs-openstack/cinder/gold'
marcodaa52fa2016-01-25 23:49:50 +0100431 GPFS-SILVER:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100432 type_name: GPFS-SILVER
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100433 engine: gpfs
434 mount_point: '/mnt/gpfs-openstack/cinder/silver'
stelucz1f3a82f2017-09-19 18:38:13 +0200435
Jakub Pavlik9f5988a2016-01-11 13:44:57 +0100436Cinder setup with HP LeftHand
437
438.. code-block:: yaml
439
440 cinder:
441 volume:
442 enabled: true
443 backend:
444 HP-LeftHand:
445 type_name: normal-storage
446 engine: hp_lefthand
447 api_url: 'https://10.10.10.10:8081/lhos'
448 username: user
449 password: password
450 clustername: cluster1
451 iscsi_chap_enabled: false
452
Jakub Pavlika63764f2016-01-11 14:41:06 +0100453Extra parameters for HP LeftHand
Jakub Pavlika63764f2016-01-11 14:41:06 +0100454
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100455.. code-block:: yaml
456
stelucz1f3a82f2017-09-19 18:38:13 +0200457 cinder type-key normal-storage set hplh:data_pl=r-10-2 hplh:provisioning=full
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100458
marcodaa52fa2016-01-25 23:49:50 +0100459Cinder setup with Solidfire
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100460
461.. code-block:: yaml
462
463 cinder:
464 volume:
465 enabled: true
466 backend:
467 solidfire:
468 type_name: normal-storage
469 engine: solidfire
470 san_ip: 10.10.10.10
471 san_login: user
472 san_password: password
473 clustername: cluster1
474 sf_emulate_512: false
Filip Pytlounda2a0792015-10-06 16:28:31 +0200475
Alexander Noskov023a0032017-06-16 09:31:59 +0200476Cinder setup with Block Device driver
477
478.. code-block:: yaml
479
480 cinder:
481 volume:
482 enabled: true
483 backend:
484 bdd:
485 engine: bdd
486 enabled: true
487 type_name: bdd
488 devices:
489 - sdb
490 - sdc
491 - sdd
492
Ondrej Smolaed6abbf2017-04-25 11:55:44 +0200493Enable cinder-backup service for ceph
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100494
Ondrej Smolaed6abbf2017-04-25 11:55:44 +0200495.. code-block:: yaml
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100496
Ondrej Smolaed6abbf2017-04-25 11:55:44 +0200497 cinder:
498 controller:
499 enabled: true
500 version: mitaka
501 backup:
502 engine: ceph
503 ceph_conf: "/etc/ceph/ceph.conf"
504 ceph_pool: backup
505 ceph_stripe_count: 0
506 ceph_stripe_unit: 0
507 ceph_user: cinder
508 ceph_chunk_size: 134217728
509 restore_discard_excess_bytes: false
510 volume:
511 enabled: true
512 version: mitaka
513 backup:
514 engine: ceph
515 ceph_conf: "/etc/ceph/ceph.conf"
516 ceph_pool: backup
517 ceph_stripe_count: 0
518 ceph_stripe_unit: 0
519 ceph_user: cinder
520 ceph_chunk_size: 134217728
521 restore_discard_excess_bytes: false
stelucz1f3a82f2017-09-19 18:38:13 +0200522
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100523Enable auditing filter, ie: CADF
524
525.. code-block:: yaml
526
527 cinder:
528 controller:
529 audit:
530 enabled: true
531 ....
532 filter_factory: 'keystonemiddleware.audit:filter_factory'
533 map_file: '/etc/pycadf/cinder_api_audit_map.conf'
534 ....
535 volume:
536 audit:
537 enabled: true
538 ....
539 filter_factory: 'keystonemiddleware.audit:filter_factory'
540 map_file: '/etc/pycadf/cinder_api_audit_map.conf'
541
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100542
543Cinder setup with custom availability zones:
544
545.. code-block:: yaml
546
547 cinder:
548 controller:
549 default_availability_zone: my-default-zone
550 storage_availability_zone: my-custom-zone-name
551 cinder:
552 volume:
553 default_availability_zone: my-default-zone
554 storage_availability_zone: my-custom-zone-name
555
Andrii Ostapenkob7aa34d2017-04-20 14:22:44 +0300556
557Cinder setup with custom non-admin volume query filters:
558
559.. code-block:: yaml
560
561 cinder:
562 controller:
563 query_volume_filters:
564 - name
565 - status
566 - metadata
567 - availability_zone
568 - bootable
569
570
Alexander Noskov62496fb2017-02-27 16:42:54 +0100571public_endpoint and osapi_volume_base_url parameters:
572"public_endpoint" is used for configuring versions endpoint,
573"osapi_volume_base_URL" is used to present Cinder URL to users.
574They are useful when running Cinder under load balancer in SSL.
575
576.. code-block:: yaml
577
578 cinder:
579 controller:
580 public_endpoint_address: https://${_param:cluster_domain}:8776
581
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100582The 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)
583The storage availability zone is the actual zone where the node belongs to. Make sure to specify this per node.
584Check the documentation of OpenStack for more information
585
Jiri Broulik47aa6b32017-07-10 18:39:15 +0200586
587Client role
588
589.. code-block:: yaml
590
591 cinder:
592 client:
593 enabled: true
594 identity:
595 host: 127.0.0.1
596 port: 35357
597 project: service
598 user: cinder
599 password: pwd
600 protocol: http
601 endpoint_type: internalURL
602 region_name: RegionOne
603 backend:
604 ceph:
605 type_name: standard-iops
606 engine: ceph
607 key:
608 conn_speed: fibre-10G
609
610
Jakub Pavlikb513f132016-05-20 11:11:19 +0200611Documentation and Bugs
612============================
613
614To learn how to deploy OpenStack Salt, consult the documentation available
615online at:
616
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100617https://wiki.openstack.org/wiki/OpenStackSalt
Jakub Pavlikb513f132016-05-20 11:11:19 +0200618
619In the unfortunate event that bugs are discovered, they should be reported to
620the appropriate bug tracker. If you obtained the software from a 3rd party
621operating system vendor, it is often wise to use their own bug tracker for
622reporting problems. In all other cases use the master OpenStack bug tracker,
623available at:
624
625 http://bugs.launchpad.net/openstack-salt
626
627Developers wishing to work on the OpenStack Salt project should always base
628their work on the latest formulas code, available from the master GIT
629repository at:
630
631 https://git.openstack.org/cgit/openstack/salt-formula-cinder
632
633Developers should also join the discussion on the IRC list, at:
634
635 https://wiki.openstack.org/wiki/Meetings/openstack-salt
Filip Pytlounb0f5c1f2017-02-02 13:02:03 +0100636
637Documentation and Bugs
638======================
639
640To learn how to install and update salt-formulas, consult the documentation
641available online at:
642
643 http://salt-formulas.readthedocs.io/
644
645In the unfortunate event that bugs are discovered, they should be reported to
646the appropriate issue tracker. Use Github issue tracker for specific salt
647formula:
648
649 https://github.com/salt-formulas/salt-formula-cinder/issues
650
651For feature requests, bug reports or blueprints affecting entire ecosystem,
652use Launchpad salt-formulas project:
653
654 https://launchpad.net/salt-formulas
655
656You can also join salt-formulas-users team and subscribe to mailing list:
657
658 https://launchpad.net/~salt-formulas-users
659
660Developers wishing to work on the salt-formulas projects should always base
661their work on master branch and submit pull request against specific formula.
662
663 https://github.com/salt-formulas/salt-formula-cinder
664
665Any questions or feedback is always welcome so feel free to join our IRC
666channel:
667
668 #salt-formulas @ irc.freenode.net