blob: 3e8decc235373e29f5c15276b95638d349b660c5 [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
Dmitry Stremkovskiyef4c7d02017-07-30 16:51:52 +030023 nas_secure_file_permissions: false
24 nas_secure_file_operations: false
Dmitry Stremkovskiya5dd7992017-07-30 19:54:23 +030025 cinder_internal_tenant_user_id: f46924c112a14c80ab0a24a613d95eef
26 cinder_internal_tenant_project_id: b7455b8974bb4064ad247c8f375eae6c
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010027 default_volume_type: 7k2SaS
Damian Szeluga0918f5a2017-04-19 12:26:56 +020028 availability_zone_fallback: True
Filip Pytlounda2a0792015-10-06 16:28:31 +020029 database:
30 engine: mysql
31 host: 127.0.0.1
32 port: 3306
33 name: cinder
34 user: cinder
35 password: pwd
36 identity:
37 engine: keystone
38 host: 127.0.0.1
39 port: 35357
40 tenant: service
41 user: cinder
42 password: pwd
43 message_queue:
44 engine: rabbitmq
45 host: 127.0.0.1
46 port: 5672
47 user: openstack
48 password: pwd
49 virtual_host: '/openstack'
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010050 backend:
51 7k2_SAS:
52 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +010053 type_name: slow-disks
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010054 host: 192.168.0.1
55 port: 22
56 user: username
57 password: pass
58 connection: FC/iSCSI
59 multihost: true
60 multipath: true
61 pool: SAS7K2
Petr Michaleca1c7ff12016-11-29 16:32:50 +010062 audit:
63 enabled: false
Simon Pasquier9089de42017-02-03 16:13:22 +010064 osapi_max_limit: 500
Filip Pytlounda2a0792015-10-06 16:28:31 +020065
66 cinder:
67 volume:
68 enabled: true
69 version: juno
Dmitry Stremkovskiy9f4ac8b2017-07-11 09:48:46 +030070 cinder_uid: 304
71 cinder_gid: 304
Dmitry Stremkovskiyef4c7d02017-07-30 16:51:52 +030072 nas_secure_file_permissions: false
73 nas_secure_file_operations: false
Dmitry Stremkovskiya5dd7992017-07-30 19:54:23 +030074 cinder_internal_tenant_user_id: f46924c112a14c80ab0a24a613d95eef
75 cinder_internal_tenant_project_id: b7455b8974bb4064ad247c8f375eae6c
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010076 default_volume_type: 7k2SaS
Filip Pytlounda2a0792015-10-06 16:28:31 +020077 database:
78 engine: mysql
79 host: 127.0.0.1
80 port: 3306
81 name: cinder
82 user: cinder
83 password: pwd
84 identity:
85 engine: keystone
86 host: 127.0.0.1
87 port: 35357
88 tenant: service
89 user: cinder
90 password: pwd
91 message_queue:
92 engine: rabbitmq
93 host: 127.0.0.1
94 port: 5672
95 user: openstack
96 password: pwd
97 virtual_host: '/openstack'
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010098 backend:
99 7k2_SAS:
100 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100101 type_name: 7k2 SAS disk
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +0100102 host: 192.168.0.1
103 port: 22
104 user: username
105 password: pass
106 connection: FC/iSCSI
107 multihost: true
108 multipath: true
109 pool: SAS7K2
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100110 audit:
111 enabled: false
Ondrej Smola74af21b2017-04-28 12:30:24 +0200112
113
114Enable CORS parameters
115
116.. code-block:: yaml
117
118 cinder:
119 controller:
120 cors:
121 allowed_origin: https:localhost.local,http:localhost.local
122 expose_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
123 allow_methods: GET,PUT,POST,DELETE,PATCH
124 allow_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
125 allow_credentials: True
126 max_age: 86400
Jiri Konecny2dce35f2016-04-19 16:29:52 +0200127
128Client-side RabbitMQ HA setup for controller
129
130.. code-block:: yaml
131
132 cinder:
133 controller:
134 ....
135 message_queue:
136 engine: rabbitmq
137 members:
138 - host: 10.0.16.1
139 - host: 10.0.16.2
140 - host: 10.0.16.3
141 user: openstack
142 password: pwd
143 virtual_host: '/openstack'
144 ....
145
146Client-side RabbitMQ HA setup for volume component
147
148.. code-block:: yaml
149
150 cinder:
151 volume:
152 ....
153 message_queue:
154 engine: rabbitmq
155 members:
156 - host: 10.0.16.1
157 - host: 10.0.16.2
158 - host: 10.0.16.3
159 user: openstack
160 password: pwd
161 virtual_host: '/openstack'
162 ....
Filip Pytlounda2a0792015-10-06 16:28:31 +0200163
164Cinder setup with zeroing deleted volumes
165
Alexander Noskov62496fb2017-02-27 16:42:54 +0100166.. code-block:: yaml
167
Filip Pytlounda2a0792015-10-06 16:28:31 +0200168 cinder:
169 controller:
170 enabled: true
171 wipe_method: zero
172 ...
173
174Cinder setup with shreding deleted volumes
175
176.. code-block:: yaml
177
178 cinder:
179 controller:
180 enabled: true
181 wipe_method: shred
182 ...
183
Dmitry Ukov56c29072017-05-04 16:48:29 +0400184Configuration of policy.json file
185
186.. code-block:: yaml
187
188 cinder:
189 controller:
190 ....
191 policy:
192 'volume:delete': 'rule:admin_or_owner'
193 # Add key without value to remove line from policy.json
194 'volume:extend':
195
Filip Pytlounda2a0792015-10-06 16:28:31 +0200196
197Default Cinder setup with iSCSI target
198
199.. code-block:: yaml
200
201 cinder:
202 controller:
203 enabled: true
Jakub Pavlik3d437df2016-04-11 22:07:50 +0200204 version: mitaka
205 default_volume_type: lvmdriver-1
Filip Pytlounda2a0792015-10-06 16:28:31 +0200206 database:
207 engine: mysql
208 host: 127.0.0.1
209 port: 3306
210 name: cinder
211 user: cinder
212 password: pwd
213 identity:
214 engine: keystone
215 host: 127.0.0.1
216 port: 35357
217 tenant: service
218 user: cinder
219 password: pwd
220 message_queue:
221 engine: rabbitmq
222 host: 127.0.0.1
223 port: 5672
224 user: openstack
225 password: pwd
226 virtual_host: '/openstack'
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +0100227 backend:
Jakub Pavlik3d437df2016-04-11 22:07:50 +0200228 lvmdriver-1:
229 engine: lvm
230 type_name: lvmdriver-1
231 volume_group: cinder-volume
Filip Pytlounda2a0792015-10-06 16:28:31 +0200232
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100233Cinder setup for IBM Storwize
Filip Pytlounda2a0792015-10-06 16:28:31 +0200234
235.. code-block:: yaml
236
237 cinder:
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100238 volume:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200239 enabled: true
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100240 backend:
241 7k2_SAS:
242 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100243 type_name: 7k2 SAS disk
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100244 host: 192.168.0.1
245 port: 22
246 user: username
247 password: pass
248 connection: FC/iSCSI
249 multihost: true
250 multipath: true
251 pool: SAS7K2
252 10k_SAS:
253 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100254 type_name: 10k SAS disk
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100255 host: 192.168.0.1
256 port: 22
257 user: username
258 password: pass
259 connection: FC/iSCSI
260 multihost: true
261 multipath: true
262 pool: SAS10K
263 15k_SAS:
264 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100265 type_name: 15k SAS
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100266 host: 192.168.0.1
267 port: 22
268 user: username
269 password: pass
270 connection: FC/iSCSI
271 multihost: true
272 multipath: true
273 pool: SAS15K
Filip Pytlounda2a0792015-10-06 16:28:31 +0200274
Jiri Broulik88548db2017-03-31 12:21:37 +0200275
276Cinder setup with NFS
277
278.. code-block:: yaml
279
280 cinder:
281 controller:
282 enabled: true
283 default_volume_type: nfs-driver
284 backend:
285 nfs-driver:
286 engine: nfs
287 type_name: nfs-driver
288 volume_group: cinder-volume
289 path: /var/lib/cinder/nfs
290 devices:
291 - 172.16.10.110:/var/nfs/cinder
292 options: rw,sync
293
294
Alexey Chekunovf916f0c2017-05-25 13:29:45 +0400295Cinder setup with NetApp
296
297.. code-block:: yaml
298
299 cinder:
300 controller:
301 backend:
302 netapp:
303 engine: netapp
304 type_name: netapp
305 user: openstack
306 vserver: vm1
307 server_hostname: 172.18.2.3
308 password: password
309 storage_protocol: nfs
310 transport_type: https
311 lun_space_reservation: enabled
312 use_multipath_for_image_xfer: True
Dmitry Stremkouskiffa53c02017-09-15 19:47:21 +0300313 nas_secure_file_operations: false
314 nas_secure_file_permissions: false
Alexey Chekunovf916f0c2017-05-25 13:29:45 +0400315 devices:
316 - 172.18.1.2:/vol_1
317 - 172.18.1.2:/vol_2
318 - 172.18.1.2:/vol_3
319 - 172.18.1.2:/vol_4
Jakub Pavlik94dc0c92017-06-14 14:53:23 +0200320 linux:
321 system:
322 package:
323 nfs-common:
324 version: latest
Alexey Chekunovf916f0c2017-05-25 13:29:45 +0400325
326
Filip Pytlounda2a0792015-10-06 16:28:31 +0200327Cinder setup with Hitachi VPS
328
329.. code-block:: yaml
330
331 cinder:
332 controller:
333 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100334 backend:
335 hus100_backend:
marcodaa52fa2016-01-25 23:49:50 +0100336 type_name: HUS100
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100337 backend: hus100_backend
338 engine: hitachi_vsp
339 connection: FC
Filip Pytlounda2a0792015-10-06 16:28:31 +0200340
Ondrej Smola16d66bd2017-01-15 13:56:03 +0100341Cinder setup with Hitachi VPS with defined ldev range
342
343.. code-block:: yaml
344
345 cinder:
346 controller:
347 enabled: true
348 backend:
349 hus100_backend:
350 type_name: HUS100
351 backend: hus100_backend
352 engine: hitachi_vsp
353 connection: FC
354 ldev_range: 0-1000
355
Filip Pytlounda2a0792015-10-06 16:28:31 +0200356Cinder setup with CEPH
357
358.. code-block:: yaml
359
360 cinder:
361 controller:
362 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100363 backend:
364 ceph_backend:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100365 type_name: standard-iops
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100366 backend: ceph_backend
367 pool: volumes
368 engine: ceph
369 user: cinder
370 secret_uuid: da74ccb7-aa59-1721-a172-0006b1aa4e3e
371 client_cinder_key: AQDOavlU6BsSJhAAnpFR906mvdgdfRqLHwu0Uw==
Michel Nederlofb43a4872017-06-20 09:36:47 +0200372 report_discard_supported: True
Filip Pytlounda2a0792015-10-06 16:28:31 +0200373
374http://ceph.com/docs/master/rbd/rbd-openstack/
375
376
377Cinder setup with HP3par
378
379.. code-block:: yaml
380
381 cinder:
382 controller:
383 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100384 backend:
385 hp3par_backend:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100386 type_name: hp3par
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100387 backend: hp3par_backend
388 user: hp3paruser
389 password: something
390 url: http://10.10.10.10/api/v1
391 cpg: OpenStackCPG
392 host: 10.10.10.10
393 login: hp3paradmin
394 sanpassword: something
395 debug: True
396 snapcpg: OpenStackSNAPCPG
Filip Pytlounda2a0792015-10-06 16:28:31 +0200397
398Cinder setup with Fujitsu Eternus
399
400.. code-block:: yaml
401
402 cinder:
403 volume:
404 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100405 backend:
406 10kThinPro:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100407 type_name: 10kThinPro
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100408 engine: fujitsu
409 pool: 10kThinPro
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: 10kThinPro
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100416 10k_SAS:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100417 type_name: 10k_SAS
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100418 pool: SAS10K
419 engine: fujitsu
420 host: 192.168.0.1
421 port: 5988
422 user: username
423 password: pass
424 connection: FC/iSCSI
marcodaa52fa2016-01-25 23:49:50 +0100425 name: 10k_SAS
Filip Pytlounda2a0792015-10-06 16:28:31 +0200426
Jakub Pavlik9703c602015-10-15 18:52:47 +0200427Cinder setup with IBM GPFS filesystem
428
429.. code-block:: yaml
430
431 cinder:
432 volume:
433 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100434 backend:
435 GPFS-GOLD:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100436 type_name: GPFS-GOLD
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100437 engine: gpfs
438 mount_point: '/mnt/gpfs-openstack/cinder/gold'
marcodaa52fa2016-01-25 23:49:50 +0100439 GPFS-SILVER:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100440 type_name: GPFS-SILVER
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100441 engine: gpfs
442 mount_point: '/mnt/gpfs-openstack/cinder/silver'
Jakub Pavlik9f5988a2016-01-11 13:44:57 +0100443
444Cinder setup with HP LeftHand
445
446.. code-block:: yaml
447
448 cinder:
449 volume:
450 enabled: true
451 backend:
452 HP-LeftHand:
453 type_name: normal-storage
454 engine: hp_lefthand
455 api_url: 'https://10.10.10.10:8081/lhos'
456 username: user
457 password: password
458 clustername: cluster1
459 iscsi_chap_enabled: false
460
Jakub Pavlika63764f2016-01-11 14:41:06 +0100461Extra parameters for HP LeftHand
Jakub Pavlika63764f2016-01-11 14:41:06 +0100462
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100463.. code-block:: yaml
464
465 cinder type-key normal-storage set hplh:data_pl=r-10-2 hplh:provisioning=full
466
marcodaa52fa2016-01-25 23:49:50 +0100467Cinder setup with Solidfire
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100468
469.. code-block:: yaml
470
471 cinder:
472 volume:
473 enabled: true
474 backend:
475 solidfire:
476 type_name: normal-storage
477 engine: solidfire
478 san_ip: 10.10.10.10
479 san_login: user
480 san_password: password
481 clustername: cluster1
482 sf_emulate_512: false
Filip Pytlounda2a0792015-10-06 16:28:31 +0200483
Alexander Noskov023a0032017-06-16 09:31:59 +0200484Cinder setup with Block Device driver
485
486.. code-block:: yaml
487
488 cinder:
489 volume:
490 enabled: true
491 backend:
492 bdd:
493 engine: bdd
494 enabled: true
495 type_name: bdd
496 devices:
497 - sdb
498 - sdc
499 - sdd
500
Ondrej Smolaed6abbf2017-04-25 11:55:44 +0200501Enable cinder-backup service for ceph
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100502
Ondrej Smolaed6abbf2017-04-25 11:55:44 +0200503.. code-block:: yaml
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100504
Ondrej Smolaed6abbf2017-04-25 11:55:44 +0200505 cinder:
506 controller:
507 enabled: true
508 version: mitaka
509 backup:
510 engine: ceph
511 ceph_conf: "/etc/ceph/ceph.conf"
512 ceph_pool: backup
513 ceph_stripe_count: 0
514 ceph_stripe_unit: 0
515 ceph_user: cinder
516 ceph_chunk_size: 134217728
517 restore_discard_excess_bytes: false
518 volume:
519 enabled: true
520 version: mitaka
521 backup:
522 engine: ceph
523 ceph_conf: "/etc/ceph/ceph.conf"
524 ceph_pool: backup
525 ceph_stripe_count: 0
526 ceph_stripe_unit: 0
527 ceph_user: cinder
528 ceph_chunk_size: 134217728
529 restore_discard_excess_bytes: false
530
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100531Enable auditing filter, ie: CADF
532
533.. code-block:: yaml
534
535 cinder:
536 controller:
537 audit:
538 enabled: true
539 ....
540 filter_factory: 'keystonemiddleware.audit:filter_factory'
541 map_file: '/etc/pycadf/cinder_api_audit_map.conf'
542 ....
543 volume:
544 audit:
545 enabled: true
546 ....
547 filter_factory: 'keystonemiddleware.audit:filter_factory'
548 map_file: '/etc/pycadf/cinder_api_audit_map.conf'
549
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100550
551Cinder setup with custom availability zones:
552
553.. code-block:: yaml
554
555 cinder:
556 controller:
557 default_availability_zone: my-default-zone
558 storage_availability_zone: my-custom-zone-name
559 cinder:
560 volume:
561 default_availability_zone: my-default-zone
562 storage_availability_zone: my-custom-zone-name
563
Andrii Ostapenkob7aa34d2017-04-20 14:22:44 +0300564
565Cinder setup with custom non-admin volume query filters:
566
567.. code-block:: yaml
568
569 cinder:
570 controller:
571 query_volume_filters:
572 - name
573 - status
574 - metadata
575 - availability_zone
576 - bootable
577
578
Alexander Noskov62496fb2017-02-27 16:42:54 +0100579public_endpoint and osapi_volume_base_url parameters:
580"public_endpoint" is used for configuring versions endpoint,
581"osapi_volume_base_URL" is used to present Cinder URL to users.
582They are useful when running Cinder under load balancer in SSL.
583
584.. code-block:: yaml
585
586 cinder:
587 controller:
588 public_endpoint_address: https://${_param:cluster_domain}:8776
589
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100590The 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)
591The storage availability zone is the actual zone where the node belongs to. Make sure to specify this per node.
592Check the documentation of OpenStack for more information
593
Jiri Broulik47aa6b32017-07-10 18:39:15 +0200594
595Client role
596
597.. code-block:: yaml
598
599 cinder:
600 client:
601 enabled: true
602 identity:
603 host: 127.0.0.1
604 port: 35357
605 project: service
606 user: cinder
607 password: pwd
608 protocol: http
609 endpoint_type: internalURL
610 region_name: RegionOne
611 backend:
612 ceph:
613 type_name: standard-iops
614 engine: ceph
615 key:
616 conn_speed: fibre-10G
617
618
Jakub Pavlikb513f132016-05-20 11:11:19 +0200619Documentation and Bugs
620============================
621
622To learn how to deploy OpenStack Salt, consult the documentation available
623online at:
624
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100625https://wiki.openstack.org/wiki/OpenStackSalt
Jakub Pavlikb513f132016-05-20 11:11:19 +0200626
627In the unfortunate event that bugs are discovered, they should be reported to
628the appropriate bug tracker. If you obtained the software from a 3rd party
629operating system vendor, it is often wise to use their own bug tracker for
630reporting problems. In all other cases use the master OpenStack bug tracker,
631available at:
632
633 http://bugs.launchpad.net/openstack-salt
634
635Developers wishing to work on the OpenStack Salt project should always base
636their work on the latest formulas code, available from the master GIT
637repository at:
638
639 https://git.openstack.org/cgit/openstack/salt-formula-cinder
640
641Developers should also join the discussion on the IRC list, at:
642
643 https://wiki.openstack.org/wiki/Meetings/openstack-salt
Filip Pytlounb0f5c1f2017-02-02 13:02:03 +0100644
645Documentation and Bugs
646======================
647
648To learn how to install and update salt-formulas, consult the documentation
649available online at:
650
651 http://salt-formulas.readthedocs.io/
652
653In the unfortunate event that bugs are discovered, they should be reported to
654the appropriate issue tracker. Use Github issue tracker for specific salt
655formula:
656
657 https://github.com/salt-formulas/salt-formula-cinder/issues
658
659For feature requests, bug reports or blueprints affecting entire ecosystem,
660use Launchpad salt-formulas project:
661
662 https://launchpad.net/salt-formulas
663
664You can also join salt-formulas-users team and subscribe to mailing list:
665
666 https://launchpad.net/~salt-formulas-users
667
668Developers wishing to work on the salt-formulas projects should always base
669their work on master branch and submit pull request against specific formula.
670
671 https://github.com/salt-formulas/salt-formula-cinder
672
673Any questions or feedback is always welcome so feel free to join our IRC
674channel:
675
676 #salt-formulas @ irc.freenode.net